銀行振込 – APIへのリクエスト
本ガイドは、銀行振込における各API処理の補足説明です。
銀行振込に必要な消費者の情報には、カード番号のような保護が必要な情報は含まれていないため、決済を行うシステムがPCI DSSに準拠していない場合でもAPIへのリクエストでトークンを作成できます。
以下では、本サービスのウィジェットやリンクフォームを使用せず、加盟店さま側で支払ページを作成しAPIで処理する場合のフローを説明します。
1.トークン作成
消費者の情報をトークン化して保存します。
詳細は、APIリファレンス「トランザクショントークン – CREATE」を確認してください。
リクエストBody例
{
"payment_type" : "bank_transfer",
"type" : "one_time",
"email" : "demo@univapay.com",
"data" : {
"brand" : "aozora_bank"
},
"metadata": {
"memberid" : "12345"
}
}
2.課金作成
作成したトークンに対して課金申込を行います。
詳細は、APIリファレンス「課金 – CREATE」を確認してください。
リクエストBody例
{
"transaction_token_id": "11ed00f1-da1b-c4d2-b420-37b91ef1b282",
"amount": "100",
"currency": "jpy",
"metadata": {
"orderid": "12345"
}
}
3.課金の取得
課金申込の結果を取得します。
詳細は、APIリファレンス「課金 – GET」を確認してください。
が確認できたら正常に課金申込が完了し、消費者からの振込待ちの状態です。"status": "awaiting"
ウェブフックで結果を受信することも可能です。
(ウェブフックのイベント名はcharge_updated
です。)
レスポンス / ウェブフック Body 例
{
"id": "11ed07f5-345d-4308-a4c9-9f6b3663e18f",
"store_id": "11ec9f7f-fb01-2620-af32-af7eb1bedc1a",
"transaction_token_id": "11ed07f5-2da0-18ce-96f7-9f06340a7a87",
"transaction_token_type": "one_time",
"subscription_id": null,
"merchant_transaction_id": null,
"requested_amount": 100,
"requested_currency": "JPY",
"requested_amount_formatted": 100,
"charged_amount": 100,
"charged_currency": "JPY",
"charged_amount_formatted": 100,
"only_direct_currency": false,
"capture_at": null,
"descriptor": null,
"descriptor_phone_number": null,
"status": "awaiting",
"error": null,
"metadata": {
"orderid": 123456
},
"mode": "live",
"created_on": "2022-07-20T06:28:44.521327Z"
}
4.トークン取得(任意)
課金申込後に発行した口座の支店や口座番号の情報を取得できます。
詳細は、APIリファレンス「トランザクショントークン – GET」を確認してください。
口座情報は、レスポンスの”data”
の値として反映されます。
口座情報が反映されるタイミングは、トランザクショントークンを作成した時ではなく、課金申込が成功して
になった時以降です。"status": "awaiting"
レスポンス Body例
{
"id": "11ed00f1-da1b-c4d2-b420-37b91ef1b282",
"store_id": "11ec9f7f-fb01-2620-af32-af7eb1bedc1a",
"email": "demo@univapay.com",
"payment_type": "bank_transfer",
"active": true,
"mode": "live",
"type": "recurring",
"usage_limit": null,
"confirmed": null,
"metadata": {
"customer_id": 12345
},
"created_on": "2022-07-11T08:17:06.47037Z",
"updated_on": "2022-07-26T09:37:05.663521Z",
"last_used_on": "2022-07-26T09:37:05.666269Z",
"data": {
"brand": "aozora_bank",
"bank_code": "0310",
"bank_name": "GMOあおぞらネット銀行",
"branch_name": "アジサイ",
"branch_code": "123",
"account_holder_name": "カ)ユニヴア ペイキヤスト",
"account_number": "1234567"
}
}
5.課金の取得
APIリクエストで入金結果および振込期限切れの結果を取得します。
詳細は、APIリファレンス「課金 – GET」を確認してください。
ウェブフックで結果を受信することも可能です。
(ウェブフックのイベント名はcharge_finished
です。)
レスポンス Body例
{
id: "11ed00f1-f0c4-1ca2-b754-db0d9311d5a0",
store_id: "11ec9f7f-fb01-2620-af32-af7eb1bedc1a",
transaction_token_id: "11ed00f1-da1b-c4d2-b420-37b91ef1b282",
transaction_token_type: "one_time",
subscription_id: null,
merchant_transaction_id: null,
requested_amount: 100,
requested_currency: "JPY",
requested_amount_formatted: 100, //元々の申込金額
charged_amount: 100,
charged_currency: "JPY",
charged_amount_formatted: 100, //実際の入金額
only_direct_currency: false,
capture_at: null,
descriptor: null,
descriptor_phone_number: null,
status: "successful",
error: null,
metadata: {
"orderid": 123456
},
mode: "live",
created_on: "2022-07-11T08:17:44.481834Z"
}
状況は、課金の状態"status"
および入金額"charged_amount_formatted"
から確認できます。