返金の作成
成功した課金に対して全額または一部返金を発行します。資金は自動的に顧客の元の支払い方法に返金されます。
リクエストパラメータ
必須 - 1項目必須パラメータ
`id`STRING(required)
返金する課金ID(パスパラメータ)。課金は成功済み、キャプチャ済み、かつ返金可能である必要があります。
推奨 - 1項目推奨パラメータ
追加 - 2項目追加パラメータ
レスポンス
200
返金成功返金が正常に作成されました。処理状態を確認するにはstatusフィールドを確認してください。
レスポンスの内容:
object- 値は "refund"id- 返金識別子(rfnd_*)livemode- 本番モードまたはテストモードlocation- 返金オブジェクトへのAPIパスacquirer_reference_number- カードネットワークに送信された参照番号amount- 最小通貨単位での返金額approval_code- 承認済み取引の参照番号capture- キャプチャ参照charge- 関連する課金ID(展開可能)currency- ISO 4217の3文字通貨コードfunding_amount- 決済通貨での金額funding_currency- 決済通貨コードmerchant_name- サブマーチャント名(Payfacのみ)merchant_uid- サブマーチャントID(Payfacのみ)metadata- 返金に添付されたカスタムメタデータstatus- 現在の返金ステータス(pending、successful、failed)terminal- 元の販売時点情報transaction- 関連するトランザクションID(展開可能)voided- 返金がボイドとして処理されたかどうかcreated_at- 返金作成タ イムスタンプ(ISO 8601)
400
不正なリクエストリクエストの検証に失敗しました。詳細はエラーメッセージを確認してください。
よくある原因:
- 無効な課金IDの形式
- 金額が返金可能残高を超過
- 無効なメタデータ形式
- 金額が最小値(1単位)を下回る
401
認証エラー認証に失敗しました。APIキーが無効または不足しています。
よくある原因:
- Authorizationヘッダーがない
- シークレットキーが無効
- シークレットキーの代わりにパブリックキーを使用
- HTTP Basic Auth形式が不正
404
見つかりません課金が見つかりません。
よくある原因:
- 課金IDが不正
- 課金が別のアカウントに属している
- 課金IDの入力ミスまたは形式エラー
422
処理不可能なエンティティ課金を返金できません。
よくある原因:
- 課金が成功していない(まだ保留中または失敗)
- 課金がすでに全額返金済み
- 返金額が利 用可能残高を超過
- 課金に15回以上の部分返金がある(最大制限)
- 課金が365日以上前(一部の支払い方法ではより短い期間)
5xx
サーバーエラーサーバー側のエラーが発生しました。これらはまれですが、適切に処理する必要があります。
対処方法:
- 指数バックオフでリクエストを再試行
- status.omise.coでサービス障害を確認
- 詳細なガイダンスはエラー処理を参照
コードサンプル
- cURL
- Ruby
- Python
- Node.js
- PHP
- Java
- C#
- Go
curl https://api.omise.co/charges/chrg_test_5xuy4w91xqz7d1w9u0t/refunds \
-X POST \
-u skey_test_5xuy4w91xqz7d1w9u0t: \
-d "amount=50000"
require 'omise'
Omise.api_key = 'skey_test_5xuy4w91xqz7d1w9u0t'
refund = Omise::Charge.refund('chrg_test_5xuy4w91xqz7d1w9u0t', {
amount: 50000
})
import omise
omise.api_secret = 'skey_test_5xuy4w91xqz7d1w9u0t'
refund = omise.Charge.refund('chrg_test_5xuy4w91xqz7d1w9u0t',
amount=50000
)
const omise = require('omise')({
secretKey: 'skey_test_5xuy4w91xqz7d1w9u0t'
});
const refund = await omise.charges.refund('chrg_test_5xuy4w91xqz7d1w9u0t', {
amount: 50000
});
<?php
define('OMISE_SECRET_KEY', 'skey_test_5xuy4w91xqz7d1w9u0t');
$charge = OmiseCharge::retrieve('chrg_test_5xuy4w91xqz7d1w9u0t');
$refund = $charge->refund([
'amount' => 50000
]);
Client client = new Client.Builder()
.secretKey("skey_test_5xuy4w91xqz7d1w9u0t")
.build();
Refund refund = client.charges().refund("chrg_test_5xuy4w91xqz7d1w9u0t")
.amount(50000L)
.send();
var client = new Client("skey_test_5xuy4w91xqz7d1w9u0t");
var refund = await client.Charges.Refund("chrg_test_5xuy4w91xqz7d1w9u0t", new CreateRefundRequest
{
Amount = 50000
});
client, _ := omise.NewClient(
"pkey_test_5xuy4w91xqz7d1w9u0t",
"skey_test_5xuy4w91xqz7d1w9u0t",
)
refund, _ := client.CreateRefund(&operations.CreateRefund{
ChargeID: "chrg_test_5xuy4w91xqz7d1w9u0t",
Amount: 50000,
})
エラーコードと結果コード
一般的なエラーコード
| コード | 説明 | 解決方法 |
|---|---|---|
bad_request | パラメータが不足または無効 | 必須フィールドがすべて入力されているか確認 |
authentication_failure | 無効なAPIキー | シークレットキーが正しいか確認 |
not_found | 課金IDが存在しない | 課金IDが正しいか確認 |
charge_not_refundable | 課金を返金できない | 課金ステータスがsuccessfulか確認 |
insufficient_refundable_amount | 金額が利用可能残高を超過 | charge.amount - charge.refunded_amountを確認 |
too_many_refunds | すでに15回の返金が作成済み | 1つの課金に対して最大15回の部分返金 |
refund_period_expired | 課金が返金期間を超過 | 課金は365日以内である必要があります |
返金ステータスコード
| ステータス | 説明 |
|---|---|
pending | 返金処理中 |
successful | 返金が正常に完了 |
failed | 返金に失敗(まれ) |
API認証情報
試してみる
必須 - 1項目
推奨 - 1項目
追加 - 2項目
あなたのIP:
...読み込み中...