Skip to main content

構築するもの

Multi-Currency Payment API (v2) では、多数の通貨と現地の決済ネットワークで資金を回収 (Payin) し、支払 (Payout) できます。対応するのは、APAC、アフリカ、ラテンアメリカにおける銀行振込、バーチャル口座、モバイルマネー、電子ウォレット、QR の各方式です。資金は通貨ごとの Treasury Account へ精算され、自動的に消込されます。
中核となる設計上の原則は、決済手段とその必須項目が動的であることです。対応範囲と要件は国と通貨によって異なるため、ハードコードするのではなく、利用できる手段とその入力スキーマを常に実行時に取得してください。

事前準備

  • 加盟店アカウントと app-id / secret-key
  • サンドボックス https://api.cleverhub.co、本番環境 https://api-merchant.helloclever.co
  • Webhook のエンドポイント(TLS 1.2、公開、商用証明書)。
  • ベースパス:Payin は POST /v2/payins、Payout は POST /v2/payouts
gst: true は、AUD で取引するオーストラリアの加盟店に限り設定してください。それ以外の通貨では gst: false に設定します。

Payin:資金の回収

1

Payin の手段を取得する

アカウントや地域で対応している手段の一覧を取得します。
2

Payin の必須項目を取得する

選択した手段について、その固有の必須入力項目を取得します。
3

Payin を作成する

手段の名称と、前の手順で取得した必須項目を指定して POST /v2/payins を実行します。
4

シミュレーションする(サンドボックスのみ)

テストのために Payin Request Simulation を呼び出し、取引を完了状態へ進めます。
手順 1〜2 は手段ごとに一度だけ必要です。その後は同じ手段と項目の構成を再利用できます。

手段ごとの挙動

一部の手段は、短い遅延の後に pay_code を Webhook へ返します。これには、顧客が支払いを完了するために使う情報が含まれます。
bank_nametransfer_idbranch_codebranch_nameaccount_numberaccount_nameaccount_typetransfer_nameexpired_timestamp を返します。

MWK と TZS の銀行振込における受取人の検証

mw_bank_mwktz_bank_tzs は処理の前に受取人を検証し、指定が必要な項目は user_type によって変わります。
これらの項目は現地ネットワークにおける受取人の検証のために収集されるもので、コンタクトの KYC のフローとは別のものです。どちらの手段も require_kyc: falserequire_contact: false を返します。パラメーターは手段ごとに変わり得るため、フォームを構築する前に必ず Get payin required fields で現在の要件を確認してください。
一部の手段では、送信の前に対応事業者の一覧(銀行コード、電子ウォレットなど)から選択する必要があります。たとえば sa_eft_zarmy_bank_fpx_myrth_qrpay_thbbw_bank_bwp、そして暗号資産での精算に crypto_tickercrypto_wallet_address を使う br_pix_brl が該当します。Payin を作成する前に、その手段の現在の事業者一覧を取得してください。
金額の丸めVNDJPYXAFKRWXOF では、処理中にその通貨が対応する精度へ金額が丸められるため、取引に記録される金額が送信した値とわずかに異なる場合があります。消込は、送信した値ではなく API のレスポンスと Webhook のペイロードにある金額に対して行ってください。金額の丸めを参照してください。

作成した後

  • 消込には Get payin requests in a periodGet payin details を使います。
  • 決済後の操作には Refund payinCancel payin を使います。
  • ステータスが received または return_received に変わると Webhook が発火します。

Payout:資金の送金

1

Payout の手段を取得する

対応している送金の手段を取得します。
2

Payout の必須項目を取得する

選択した手段の必須項目を取得します。
3

Payout を作成する

POST /v2/payouts:必須項目を指定して開始します。
手順 1〜2 は手段ごとに一度だけ必要です。

Payout のステータス

事業者の一覧と補助エンドポイント

多くの Payout の手段では、送信の前に対応一覧から銀行や電子ウォレットを選択する必要があります。対象は vn_bank_vndph_bank_phpng_bank_ngnsa_bank_zarke_bank_keske_mobile_money_kesgh_mobile_money_ghscm_mobile_money_xafci_mobile_money_xofmy_bank_myrmy_ewallet_*_myr の一群(touchngo、finexus、boost、bigpay、shopeepay、gxbank、merchantrade)、br_bank_brlth_bank_thbbw_bank_bwpph_qrph_php です。 補助エンドポイント:
  • vn_bank_vnd:支店コードが必要な場合は Get Branch Codes を使ってください。
  • kr_bank_krw:対応銀行の最新の一覧を取得するには Required Field API を使ってください。
  • VND Bank Lookup:ベトナムの口座向けに、専用の照会(QR の内容を使う方法など)が利用できます。

作成した後

  • 消込には Get payout requests in a periodGet payout details を使います。
  • フローのテストには Payout Simulation(サンドボックス)を使います。
  • 将来の実行が設定された Payout には Cancel a Scheduled Payout を使います。

関連リソース

  • BalanceGet balance detail と履歴):支払の前に通貨ごとの残高を確認します。
  • CustomerContact のエンドポイント:支払人と受取人の情報を保存し、取引をまたいで再利用します。
Payout の資金は、蓄積された Payin とトップアップからなる通貨ごとの残高から充当されます。Payout を開始する前に、該当する通貨の残高が満たされていることを確認してください。

Webhook の取り扱い

作成の呼び出しで webhook_notification.endpoint_urlauthorization_header を指定してください。すべての配信に対して 200 OK を返し、重複を冪等に処理してください。200 以外のレスポンスは 15 分間隔で3回リトライされます。リクエストごとに異なる authorization_header を使ってください。