The Payment Records API
Stripe 上でも Stripe 以外でも、決済履歴を統一して管理できます。
Payment Records API を使用して、すべての支払いの台帳を管理することができます。Stripe を通じて決済処理している場合 (Stripe での支払い) や、サードパーティーの決済代行業者を利用している場合 (Stripe 外での支払い) は、この API を使用することで支払いの履歴をまとめて記録できます。
Payment Records API を使用して、以下の操作が可能です。
- サードパーティーの決済代行業者を通じて支払いを行い、その結果を Stripe に報告することで、サブスクリプションや Radar などのプロダクトの全機能を利用できるようになります。
- キャプチャーごとに追跡できる高度な決済フロー (マルチキャプチャーなど) を作成する。
- サードパーティーおよびパートナーが開始した支払い (Stripe が指示したカード取引を含む) を追跡する。
PaymentIntents との関係
Payment Intents API を使用して、さまざまな決済フローを管理することができます。ただし、高度なユースケースでは、より緻密に記録された支払い履歴を要求されることがほとんどです。
アプリケーションが Stripe で PaymentIntents を使用して支払いを受け付け、さらに Stripe 外でも別の決済代行業者を介して支払いを受け付けている場合、PaymentRecords を完全な記録システムとして使用できます。Orchestration を有効にしている場合:
- Stripe での支払い:Stripe は、PaymentIntent ごとに PaymentRecord を自動で作成します。
- Stripe 外での支払い:Payment Records API を使用して支払いデータを報告することで、PaymentRecords を手動で作成できます。
PaymentRecords を利用すると、Stripe プロダクト間の相互運用が可能になります。サブスクリプション (Smart Retries を使用) などのプロダクトや外部で支払われた請求書では、支払い結果を追跡するためのコアツールとして PaymentRecords を使用します。
Orchestration が有効になっている PaymentIntent に関連付けられている PaymentRecord を取得するには、以下の手順に従います。
PaymentRecords の作成・管理
PaymentRecord は支払いの記録であり、関連するすべての試行や結果が含まれます。これは、支払いのライフサイクルとステータスを把握するための主要な参照情報として機能します。
各 PaymentRecord は、支払いを処理するための試行情報を示す PaymentAttemptRecords を複数持ちます。この構造が、成功、再試行、失敗の追跡を可能にしています。
新しい支払いの報告
Stripe 外での支払いを報告するには、金額、決済手段、決済代行業者、関連するタイムスタンプなど、取引に関する詳細情報を用いて PaymentRecord を作成します。Stripe は、提供されたデータを使用して、関連する PaymentAttemptRecord を自動的に作成します。このデータは、レスポンスで latest_ と表示されています。
失敗した支払い試行の報告
失敗した支払い試行を報告することで、Stripe は決済フロー全体を把握し、他のプロダクト (Smart Retries など) を機能させることができます。支払いが失敗した場合は、既存の PaymentRecord ID を参照し、その失敗時刻を渡すことで失敗を報告します。
失敗した支払いの再試行
ユーザーが失敗した支払いを複数回再試行することがあります。その際、同じ PaymentRecord を使用して、新たな支払い試行を報告できます。再試行では、同一または別の決済手段と決済代行業者を利用することが可能です。
支払い状況の把握
PaymentRecord は、ダッシュボードやレポートシステムに使用できます。レコードは 1 つしかないため、他の決済代行業者と Stripe との間でモデルの差異を調整する必要がなくなります。
PaymentRecord の取得
PaymentRecord は、ID を使用して取得できます。オーケストレーションされた支払いの場合、これは PaymentIntent レスポンスで返されます。過去に行われた支払いについては、PaymentIntent の ID を使用して PaymentRecord を取得することもできます。
最新の PaymentAttemptRecord は PaymentRecord で取得できます。また、Payment Attempt Records API を使用して取得することも可能です。Charges API を使用する支払い履歴については、Charge ID を使用して PaymentAttemptRecord を取得します。
{ "processor_details": { "type": "processor_a", }, "latest_payment_attempt_record": "{{PAYMENT_ATTEMPT_RECORD_ID}}", "amount_guaranteed": { "value": 10000, "currency": "usd", }, "payment_method_details": { "payment_method": "{{PAYMENT_METHOD_ID}}", "type": "card", }, } ...
PaymentAttemptRecord の取得
複数回支払いを試みた場合 (たとえば、支払いが別の決済代行業者で失敗したものの、Stripe での再試行が成功した場合)、PaymentRecord の latest_ には最新の試行が表示されます。PaymentAttemptRecord をクエリすると、すべての試行を表示できます。
{ "object": "list", "data": [{ "id": "par_124", "amount_requested": 10000, "amount_guaranteed": 10000, "amount_failed": 0, }, { "id": "par_123", "amount_requested": 10000, "amount_guaranteed": 0, "amount_failed": 10000, }] } ...
ダッシュボードでも支払いを確認することが可能です。