MPR - 複数部分返金
DEUNA が管理する複数部分返金について、集約、カットオフルール、最終返金、ステータス、金額制限を含めて設定方法と運用方法を説明します。
複数部分返金(MPR)では、加盟店が複数の部分返金リクエストを送信し、DEUNA が累積額を 1 件の返金としてプロセッサに送信します。複数の返金処理を受け付けられない接続、または返金処理に集約が必要な接続向けの、DEUNA 管理の互換モードです。
MPR は支払いプロセッサ接続ごとに構成されます。プロセッサネイティブの複数返金とは異なり、MPR では最終ではないリクエストがシーケンスの終了まで DEUNA にバッファリングされます。ネイティブ対応では、対象となる各返金を個別にプロセッサへ送信できます。
MPR のライフサイクル#
- 次のような、返金可能額が確定した支払いから開始します:
processed,captured、またはpartial_captured. - 部分払い戻し金額を送信します。
- DEUNA は、累積可能な払い戻し可能な残高に対してリクエストを検証し、プロセッサを呼び出すことなくバッファリングします。
- 1 つ以上の払い戻し金額がバッファリングされている間、支払いは
partial_refunding. - DEUNAは、次のいずれかの条件が満たされた場合にシーケンスを終了します。
- 累積された要求金額が、払い戻し可能な金額に達します。
- 要求に以下のいずれかが含まれる。
"final_refund": true. - 保存された払い戻しカットオフに達します。
- DEUNAは、蓄積された金額を、単一の返金処理としてプロセッサに送信します。
- 返金処理で確認された金額が、完全な返金可能な残高を返した場合、決済は
refundedとなります。返金可能な残高の一部のみを返した場合、決済はpartial_refunded.
バッファリングされたリクエストは返金の意図を記録するものであり、顧客に資金が返されたことを証明するものではありません。
返金処理の期限と時間制限#
MPRの返金処理には、以下のルールがあります。
- 指定された数値から整数を設定する 1~45暦日.
- 最初の非最終的な返金処理が記録された時点で、クロックが開始されます。
- DEUNA は絶対期限を
refund_cutoff_atに保存します。後続の部分返金によって、この期限が延長またはリセットされることはありません。 - 期限は、対象となるカレンダー日の終了までであり、固定された日数後の同じ時間ではありません。
- 接続設定の変更は、既存の決済に設定された期限を上書きしません。
- 保存された上限に達した場合、支払いは上限処理担当者が累積した返金を提出する資格を得ます。 処理は、その日の最終秒に保証されません。 別の商社の返金に対する猶予期間に依存しないでください。
たとえば、1日間の上限の場合、月曜日に蓄積された最初の非最終的な返金は、火曜日の終わりに処理される資格を得ます。 厳密には同じ時間に処理されるわけではありません。
API経由でシーケンスを終了#
使用します final_refund 現在のリクエストと、上限に達するまでの累積されたすべての残高を、上限処理の待機なしに送信します。 JSON形式のブール値として送信してください。
{
"amount": 100,
"reason": "Item returned",
"final_refund": true
}返金可能な総額に到達すると、シーケンスは自動的に終了します。 final_refund この場合、追加の確認は不要です。
金額とシーケンスルール#
- 累積された要求された返金総額は、確認された返金可能な総額を超えてはなりません。
- DEUNAは、新しいリクエストの検証時に、以前に蓄積された返金を考慮します。
- 最終的な返金操作は、MPRシーケンスを終了します。 そのシーケンスに対する後の返金リクエストは拒否されます。
- DEUNAは、蓄積されたMPRリクエストに対して、リクエスト数に制限を設けていません。 返金可能な残高と上限が、プラットフォームの有効な制限です。
- 最後のレスポンスのみから残高を計算しないでください。 特に、リクエストが重複する場合、最新の支払い、その操作履歴、および確認された金額を使用してください。
- キャプチャ処理が未完了の場合、返金は接続ごとに異なります。未確認の金額を返金するには、DEUNAがその接続に対して、キャプチャと返金の同時処理を承認している必要があります。
ステータスとエラー処理#
| ステータス | MPRフローにおける意味 | 加盟店の対応 |
|---|---|---|
processed, captured、または partial_captured | 確認済みの金額は返金対象となります。 | 確認済みの返金可能な残高に対して返金金額を計算します。 |
partial_refunding | 1つ以上の返金金額がキューに格納されているか、処理中です。 | 返金を保留し、確認を待ちます。 |
refunding | 返金可能な残高または残高が処理中です。 | 結果を確認してください。 |
partial_refunded | 一部の金額がプロセッサによって確認されました。 | 確認された返金金額を記録し、残高を調整します。 |
refunded | 返金可能な残高が完全に返金されました。 | 最終的な返金完了を記録します。 |
カットオフ処理またはプロセッサ呼び出しが失敗した場合、ローカルで支払いを返金済みにマークしないでください。DEUNAは、適切なカットオフ処理を再試行できます。繰り返し発生する未解決の失敗の場合、運用レビューが必要です。支払いを取得し、操作が確認された状態になるまで、ウェブフックを消費します。単独のタイムアウトは、最終的な返金結果ではありません。
完全な移行テーブルについては、 決済ワークフロー & ステータスを参照してください。 重複するリクエストについては、 同時決済と返金.
MPRの設定#
接続の設定について、DEUNA の TAM と連携してください:
| 設定 | 要件 |
|---|---|
| 機能の状態 | 選択されたプロセッサ接続に対してMPRが有効 |
| 返金カットオフ | 必須: 1–45 暦日 |
| プロセッサの機能 | 最終的な累積金額に対する返金サポート |
管理画面で、キュー内のリクエスト、累積された返金金額、残りの返金可能な金額、および利用可能な場合は予定されているカットオフを、注文の詳細と返金操作履歴を使用して監視します。
MPCとMPRは同じ接続で有効にできます。キャプチャと返金カットオフは独立しており、一方を変更しても他には影響しません。