step5
手順5 - 売上、キャンセル、返金について
オーソリを取得する
処理は paymentIntentに設定した値 により異なりますので、以下をご確認ください。
- Authorize
- AuthorizeWithCapture
- Confirm
ECサイト上で決済を完了した時点でオーソリを取得済みですので、特に作業は必要ありません。
ECサイト上で決済を完了した時点でオーソリを取得済みですので、特に作業は必要ありません。
この場合、ECサイト上で決済を完了した時点ではオーソリを取得していません。そのため、Complete Checkout Session APIのレスポンスで返された chargePermissionId
をパラメータで指定して Create Charge API
を実行します。
売上請求する
処理は paymentIntentに設定した値 により異なりますので、以下をご確認ください。
- Authorize
- AuthorizeWithCapture
- Confirm
- (その他)再オーソリ後売上請求未実施の場合
Charge(オーソリ / 仮売上)のみ完了している状態ですので、商品の配送手続きが完了したら 売上請求のためのAPIを実行します。
売上請求には、Complete Checkout Session APIのレスポンスで返された chargeId
をパラメータで指定してCapture Charge API
を実行します。
決済のタイミングで売上請求まで完了していますので、売上請求APIを実行する必要はありません。
上記 "オーソリを取得する"で記載したとおり、まずはCreate Charge APIを実行してオーソリを取得します。
- Create Chargeの際captureNowパラメータをtrueで実行している場合は、オーソリ取得の際に売上請求も同時に完了しているため、別途売上請求する必要はありません。
- Create Chargeの際captureNowパラメータをfalseで実行している場合は、Create Charge APIのレスポンスで返された
chargeId
をパラメータで指定してCapture Charge API
を実行します。
売上請求のためのAPIを実行します。
売上請求には、Create Charge APIのレスポンスで返された chargeId
をパラメータで指定してCapture Charge API
を実行します。
- Complete Checkout Session APIでCharge(オーソリ)を取得した後(またはCreate Charge APIで再オーソリ取得後)7日以上経ってから Capture Charge をした場合は、非同期処理となります。非同期処理はこちらを参照ください。
- ただし・・・sandboxでは常に同期処理となってしまいます。もしも非同期での検証をしたい場合は、シミュレーション文字列を利用することで短時間ですが非同期を再現することができます。シミュレーション文字列に利用方法は以下のページを参照してください。
インテグレーションガイド - シミュレーション文字列の使用 - ChargeとCaptureには1:1の関係性があります。例えば、複数商品を一度のCheckout Sessionで決済したが、発送時期がバラバラになる(=Captureのタイミングが異なる)場合は、それぞれの商品ごとにChargeを生成し直してから Captureする必要があります(その場合は、すでに取得済みのChargeをCancel Chargeし、その後それそれの金額でCreate Chargeしてから、各ChargeごとにCapture Chargeします)。
オーソリをキャンセルする
売上請求前のCharge(オーソリ)はキャンセルすることができます。キャンセルする際には、chargeId
をパラメータに指定してCancel Charge API
を実行します。
※ただし、Cancel Chargeではオーソリをキャンセルするだけで注文自体をキャンセルするわけでありません。注文自体をキャンセルする場合は「注文をキャンセルする」に記載の対応を実施してください。
すでに売上請求まで完了してる場合はキャンセルできませんので、代わりに「返金」することになります。 下段の「売上完了後の決済をキャンセルする = 返金する」を参照ください。
注文をキャンセルする
売上請求前は、注文自体をキャンセルすることができます。キャンセルする際には Complete Checkout Session APIのレスポンスに含まれる Charge Permission ID
をパラメータに指定して Close Charge Permission API
を実行します。
この際、Close Charge Permission APIのリクエストボディに cancelPendingCharges = true をセットすると、生きている Charge (オーソリ)も同時にキャンセルすることができます。
売上請求まで完了している場合はキャンセルできません。 この場合は返金処理することになります。下段の「売上完了後の決済をキャンセルする = 返金する」を参照ください。
売上完了後の決済をキャンセルする = 返金する
売上請求が完了している決済は、"キャンセル" することはできません。
代わりに、返金することになります。
返金する場合は、chargeId
をパラメータで指定して Create Refund API
を実行します。
返金処理は常に非同期処理となります。非同期処理はこちらを参照ください。
ただし・・・sandboxでは常に同期処理となってしまいます。もしも非同期での検証をしたい場合は、シミュレーション文字列を利用することで短時間ですが非同期を再現することができます。シミュレーション文字列に利用方法は以下のページを参照してください。
インテグレーションガイド - シミュレーション文字列の使用
再オーソリする
処理は paymentIntentに設定した値 により異なりますので、以下をご確認ください。
- Authorize
- AuthorizeWithCapture
- Confirm
Complete Checkout Session API実行時に Charge(オーソリ)を生成しています。ただし、Chargeには有効期限があり30日間のみ有効です。
たとえば、Chargeを生成してから実売上(Capture Charge API実行)までに30日以上期間が空く場合は、新たなChargeを生成(再オーソリ)しないと売上請求ができません。
再オーソリする場合は、Complete Checkout Session APIのレスポンスに含まれる chargePermissionid
をパラメータに指定し、貴社のタイミング(オーソリを取得したいタイミング)で Create Charge API
を実行しオーソリを取得します(場合により、売上請求も一気に行います)。
APIが成功すると、新たなchargeId
が返りますので、これを注文情報に紐づけて保存してください。
すでに売上請求まで完了していますので、再オーソリできません。
- Create Chargeの際captureNowパラメータをtrueで実行している場合は、オーソリ取得の際に売上請求も同時に完了しているため、再オーソリできません。
- Create Chargeの際captureNowパラメータをfalseで実行している場合は、Create Charge生成後売上請求せずに30日間が経過するとオーソリの有効期限が切れますので、Complete Checkout Session APIのレスポンスに含まれる
chargePermissionid
をパラメータに指定し、貴社のタイミング(オーソリを取得したいタイミング)でCreate Charge API
を実行しオーソリを取得します(場合により、売上請求も一気に行います)。
APIが成功すると、新たなchargeId
が返りますので、これを注文情報に紐づけて保存してください。