実売上化
このページで扱うトピック
本ドキュメントでは、カード決済処理における2つのステップであるオーソリ(Authorization)とキャプチャ(Capture)について説明し、Omiseが提供するキャプチャの種類(自動キャプチャ、全額手動キャプチャ、単発部分キャプチャを含む)を紹介します。なお、単発部分キャプチャはOmise Thailandと契約している加盟店のみご利用いただけます。
クイックリファレンス
| キャプチャの種類 | authorization_type |
使用するタイミング | 利用可否 |
|---|---|---|---|
| 自動キャプチャ | — | デフォルトの動作。手動操作なしで、全額が即座に(または設定した遅延時間の後に)キャプチャされる | すべての加盟店 |
| 全額手動キャプチャ | final_auth(デフォルト) |
全額を一度の操作で手動キャプチャしたい場合 | すべての加盟店 |
| 単発部分キャプチャ | pre_auth |
オーソリした全額より少ない金額をキャプチャする可能性がある場合 | Omise Thailandと契約している加盟店のみ |
| 複数回部分キャプチャ | — | 同じchargeを複数回キャプチャする場合 | 現在サポートされていません |
Omiseのキャプチャの仕組みを初めて利用する方は、オーソリとキャプチャについてで基本的な概念を確認してください。すでにご存知の場合は、上記の表から必要なキャプチャの種類とコード例へ直接進んでください。
オーソリとキャプチャについて
オーソリとキャプチャは、カード決済を完了させるための2つのステップです。
オーソリは、加盟店がチェックアウト時に顧客のカードに対してchargeを開始したときに行われます。この過程で、決済処理会社はカード発行会社に問い合わせ、口座に十分な残高があり、正常な状態であることを確認します。条件を満たしている場合、取引金額は決済完了まで保留された状態になります。事前にカードのオーソリを行うことで、実際に金額を引き落とすことなく、支払い方法が有効であることとカード保有者が本人であることを確認でき、チャージバックの防止にも役立ちます。
オーソリ有効期間、すなわちオーソリが有効な状態を維持する期間は、金額をキャプチャする必要がある期限を定めます。この期間は国によって異なりますが、通常は7日間です。オーソリ有効期間内に金額がキャプチャされなかった場合、その金額は自動的に解除され、chargeのステータスはreversedに変わります。
キャプチャとは、取引を完了させるプロセスです。顧客の口座から資金が引き落とされ、加盟店の口座に送金されることで、取引のステータスが保留中(pending)から完了(complete)に変わります。
キャプチャの種類
キャプチャの方法には、自動と手動の2種類があります。
自動キャプチャ
自動キャプチャでは、キャプチャディレイ(capture delay、オーソリからキャプチャまでの時間)と呼ばれる設定可能な遅延時間の経過後に、支払いが自動的にキャプチャされます。デフォルトではこの遅延時間は0であるため、オーソリの直後に支払いがキャプチャされます。
手動キャプチャ
手動キャプチャでは、オーソリの有効期限が切れる前に、加盟店が支払いごとに明示的にキャプチャをリクエストする必要があります。
手動キャプチャには、次の種類があります。
- 全額手動キャプチャ
- 単発部分キャプチャ (Omise Thailandと契約している加盟店のみご利用いただけます)
- 複数回部分キャプチャ (現在サポートされていません — 複数回部分キャプチャを参照してください)
オーソリタイプの選択
手動キャプチャのchargeでは、オーソリした金額とキャプチャしようとする金額の関係を示すために authorization_type パラメータを使用します。
authorization_type=final_auth(デフォルト) — オーソリした金額が最終的な金額であることを示します。一般的な手動キャプチャで使用し、chargeは一度だけ、全額でキャプチャできます。authorization_type=pre_auth— オーソリした金額が見積もりであり、実際にキャプチャする金額より多い可能性があることを示します。単発部分キャプチャのように、オーソリした全額より少ない金額をキャプチャする見込みがある場合に使用します。
警告: 加盟店が商品やサービスを提供しなかった場合、そのchargeをキャプチャしないでください。THB 0でのキャプチャリクエストはサポートされていません。capture_amount=0 を送信すると、0ではなくオーソリした金額全額がキャプチャされます。回収するつもりのないオーソリをキャプチャしてしまうことを避けるため、金額0でのキャプチャリクエストを送信するのではなく、オーソリを期限切れにして自動的に解除させてください。
全額手動キャプチャ
全額手動キャプチャでは、オーソリした金額の全額がキャプチャされます。
処理の流れは次のとおりです。
オーソリが成功すると、加盟店は商品を配送し、その後オーソリした金額全額をキャプチャします。オーソリが失敗した場合、その時点で処理は終了します。
全額手動キャプチャ: chargeのオーソリ
次の例は、カードトークンを使用してTHB 70のchargeをオーソリする例です。全額手動キャプチャでは常に全額をキャプチャするため、この例ではデフォルト値である authorization_type=final_auth を明示的に指定しています。
curl https://api.omise.co/charges \
-u $OMISE_SECRET_KEY: \
-d "amount=7000" \
-d "currency=THB" \
-d "capture=false" \
-d "card=$TOKEN_ID" \
-d "authorization_type=final_auth"
全額手動キャプチャ: オーソリ金額全額のキャプチャ
次の例は、THB 70の全額キャプチャを示しています。
curl https://api.omise.co/charges/$FULL_UNCAPTURED_CHARGE_ID/capture \
-u $OMISE_SECRET_KEY: \
-d "capture_amount=7000"
単発部分キャプチャ
重要: 単発部分キャプチャは、Omise Thailandと契約している加盟店のみご利用いただけます。
次の例は、単発部分キャプチャを示しています。
顧客がTHB 70相当の商品を購入するとします。このときカードはTHB 70でオーソリされます。しかし、加盟店がTHB 40相当の商品しか配送できなかったとします。最終的な請求額はTHB 40となり、これが顧客のカードに請求される金額です。オーソリされたもののキャプチャされなかった残りのTHB 30は、確保が解除され顧客に返却されます。
注: 顧客のカードにTHB 40を請求するこのtransactionが、単発部分キャプチャです。
処理の流れは次のとおりです。
オーソリが成功すると、加盟店は注文の一部を配送し、その分だけカードに請求します。残りの確保分はシステムが自動的に解除します。オーソリが失敗した場合、その時点で処理は終了します。
単発部分キャプチャ: 有効化
単発部分キャプチャは、対象となる加盟店であればデフォルトで有効になっており、特別な設定は必要ありません。ただし、Omise Thailandと契約している加盟店のみご利用いただけます。ご自身のアカウントが対象かどうか不明な場合は、Omiseの担当営業チームにお問い合わせください。
単発部分キャプチャ: chargeのオーソリ
次の例は、カードトークンを使用してTHB 70のchargeをオーソリする例です。加盟店はこの金額の一部のみをキャプチャする見込みであるため、この例では authorization_type=pre_auth を指定しています。
curl https://api.omise.co/charges \
-u $OMISE_SECRET_KEY: \
-d "amount=7000" \
-d "currency=THB" \
-d "capture=false" \
-d "card=$TOKEN_ID" \
-d "authorization_type=pre_auth"
単発部分キャプチャ: 一部金額のキャプチャ
次の例は、THB 40の単発部分キャプチャを示しています。
curl https://api.omise.co/charges/$PARTIAL_UNCAPTURED_CHARGE_ID/capture \
-u $OMISE_SECRET_KEY: \
-d "capture_amount=4000"
複数回部分キャプチャ
現時点では、Omiseは複数回部分キャプチャをサポートしていません。
よくある質問
単発部分キャプチャはデフォルトで有効になっていますか?それともリクエストが必要ですか? 対象となる加盟店であればデフォルトで有効になっており、特別な設定は必要ありません。ただし、Omise Thailandと契約している加盟店のみご利用いただけます。ご自身のアカウントが対象かどうか不明な場合は、Omiseの担当営業チームにお問い合わせください。
1つのchargeに対して複数回キャプチャする(複数回の部分キャプチャを行う)ことはできますか? 現時点ではできません。Omiseはまだ複数回部分キャプチャをサポートしていないため、オーソリされた各chargeは、全額または一部の金額のいずれかで一度だけキャプチャできます。
単発部分キャプチャの後、キャプチャされなかった残額は手動で解除する必要がありますか? いいえ。オーソリした全額より少ない金額をキャプチャした場合、Omiseが残りの金額の確保を自動的に解除します。別途対応する必要はありません。
オーソリ有効期間内にchargeをキャプチャしなかった場合、どうなりますか?
キャプチャされなかった金額は自動的に解除され、chargeのステータスはreversedに変わります。
authorization_type=pre_auth と authorization_type=final_auth の違いは何ですか?
オーソリした金額が見積もりであり、実際にキャプチャする金額より多い可能性がある場合は pre_auth を使用します。これは主に単発部分キャプチャで使用します。一般的な手動キャプチャでは、デフォルトの final_auth を使用します。この場合、オーソリした金額は最終的な金額であり、一度だけ全額でキャプチャできます。
加盟店が何も配送しなかった場合など、THB 0でキャプチャしようとするとどうなりますか?
想定とは異なる動作になります。THB 0でのキャプチャはサポートされていません。capture_amount=0 を送信すると、0ではなくオーソリした金額全額がキャプチャされます。加盟店が代金を回収するつもりがない場合は、キャプチャを試みず、オーソリを期限切れにして自動的に解除させてください。