POST /api/actions/refund-ticket/resubmit-ticket
認証: マーチャント API Key(サーバー間)。
Resubmit は 返金チケットの作成 のリクエスト構造を再利用し、修正対象のチケットを識別する ticketId を追加します。元の paymentId は既存のチケットにバインドされており、変更できません。
リクエストボディ
| フィールド | 型 | 必須 | 説明 |
|---|---|---|---|
ticketId | string | 必須 | 修正対象の返金チケット Short ID(例:TKT_3bVzrkD0FJjFdZNLk8Ualx) |
reason | string | 必須 | 修正後の理由 |
requestedAmount.amount | string | 必須 | 修正後の返金額(表示形式、> 0 かつ ≤ payment.amount) |
requestedAmount.currency | string | 必須 | ISO 4217 コード、支払い通貨と一致する必要あり |
refundTicketMerchantExternalId は resubmit 全体で 変更不可 — チケット作成後は変更できません。
成功レスポンス (200)
versionNumber がインクリメントします。チケットはレビュー待ちに再投入されます(buyer 発起は pending、merchant 発起は processing)。
エラーレスポンス
リトライポリシー:4xx は一切リトライしない — リクエストを修正してから再送信。5xx は指数バックオフでリトライ(5s 開始、最大 3 回)。
| ステータス | errors[0].message | 意味 | 推奨処理 |
|---|---|---|---|
| 400 | Missing required field: ticketId | ticketId が指定されていない | ticketId を追加して再送信 |
| 400 | Expected format: TKT_xxx, got "..." | ticketId Short ID のデコード失敗 | ticketId フォーマットを修正して再送信 |
| 400 | Invalid requestedAmount.amount format | 金額文字列が解析できない | 表示形式("10.50" など)を使用 |
| 401 | Unauthorized | API Key 署名が無効 | 認証ヘッダーを確認 |
| 403 | Submitter is not the original ticket owner | 呼び出し元がチケット作成者ではない | 元の提出者のみが resubmit 可能 |
| 404 | Ticket not found | チケットが存在しないか、呼び出し元に属していない | ticketId を確認 |
| 409 | Ticket status is X, only rejected/failed can be resubmitted | チケットが resubmit 可能な状態ではない | rejected / failed を待つか、新規チケット作成 |
| 409 | Requested amount exceeds payment amount | 修正後金額が payment.amount を超過 | 金額を修正 |
| 500 | Internal server error | サーバ側の予期しない障害 | 指数バックオフでリトライ(5s 開始、最大 3 回) |