トランザクショントークン – CREATE
トランザクショントークンオブジェクトに対するCREATEリクエストには以下が必要です。(括弧内は入力箇所)
トランザクショントークンを作成した後はトランザクショントークンIDを指定して課金 / 定期課金を行ってください。
- シークレット(Headerの
{secret}
部分) - アプリトークン(Headerの
{jwt}
部分)
【注意】決済手段がクレジットカードの場合
トランザクショントークン – CREATE リクエストは、クレジットカード情報を加盟店サイト内に入力させ、本サービスのAPIに送信します。
このリクエストを行うには PCI DSS に準拠している必要があります。
PCI DSSに準拠していない場合はこのリクエストを行えないことに注意してください。
PCI DSSに準拠していてトランザクショントークン – CREATE リクエストの利用を希望する場合は、当社までご連絡ください。
クレジットカード以外の決済手段の場合は、当社へ連絡不要でトランザクショントークン – CREATE リクエストを行えます。
リクエスト
CommandとHeader
curl --request POST
--url https://api.univapay.com/tokens
--header 'Authorization: Bearer {secret}.{jwt}'
--header 'Content-type: application/json'
利用できるパラメータ
リクエストのbodyに含めることができるパラメータは以下です。
フィールド 赤字は必須 ※は条件付き必須 | データ型 | 備考 |
---|---|---|
payment_type | string | card (クレジットカード決済), paidy (Paidy決済), online (オンラインモバイル決済)※, konbini (コンビニ決済), bank_transfer (銀行振込決済)のいずれか※ online はワンタイムトークンのみ指定可能 |
type | string | トークンの種類を参照 特定の支払い手段により種類が制限される場合あり 繰り返しに設定されていて、アカウントに無限に課金可能なトークンを作成する権限がない場合は、 usage_limit パラメーターを指定する必要あり |
usage_limit | string | このトークンがリカーリングトークンの場合に使用できる頻度 無限に課金可能なリカーリングトークンを作成する権限がある場合は空白可 |
email※ | string | メールアドレス ※payment_typeがonlineのみ任意・それ以外は必須 |
ip_address※ | string | 消費者のデバイスのIPv4アドレス ※we_chat_online(web, http_get)の場合 |
metadata | object | メタデータを参照 |
metadata.univapay-reference-id | string (フリーフォーマット) | 任意の値 |
metadata.univapay-customer-id | string (UUID) | 顧客ID |
data | object | 支払い手段ごとに必要な情報が異なり、下記記載箇所よりそれぞれ詳細のパラメータを参照card (カードデータ), konbini (コンビニ決済データ), online (オンライン払いデータ)のいずれか |
カードデータ
フィールド 赤字は必須 ※は条件付き必須 | データ型 | 備考 |
---|---|---|
data.cardholder | string | クレジットカードの所有者の名前 |
data.card_number | string | カード番号 |
data.exp_month | string | 有効期限(月) |
data.exp_year | string | 有効期限(年) |
data.cvv | string | CVV値 |
data.line1 | string | 住所1 |
data.line2 | string | 住所2 |
data.state | string | 住所の州/地域/都道府県 |
data.city | string | 住所の市町村区 |
data.country | string | 国 (ISO 3166-1形式のアルファベット2文字の国コード) |
data.zip | string | 郵便番号 |
data.phone_number.country_code | string | 電話番号の国コード |
data.phone_number.local_number | string | 電話番号 |
cvv_authorize.enabled | boolean | セキュリティコード認証機能が有効かどうか デフォルト値:false |
cvv_authorize.currency | string (ISO-4217) | 認証を行う通貨 デフォルト値:加盟店の基本通貨 |
コンビニ決済データ
フィールド 赤字は必須 ※は条件付き必須 | データ型 | 備考 |
---|---|---|
data.customer_name | string | 消費者名 |
data.phone_number.country_code | string | 電話番号の国コード 日本の番号のみ可能 |
data.phone_number.local_number | string | 消費者の電話番号 |
data.convenience_store | string | 消費者が支払いを選択したコンビニエンスストアseven_eleven , family_mart , lawson , mini_stop , seico_mart , pay_easy , circle_k , sunkus , daily_yamazaki , yamazaki_daily_store のいずれか |
data.expiration_period | string (ISO-8601 Duration) | 支払いの有効期限(作成日から最短30分最大60日間) デフォルトの値:30日間 例: P7D ※課金:Createで支払い期限日時を指定した場合はそちらを優先 |
data.expiration_time_shift | string (ISO-8601 Time with Timezone) | expiration_period を考慮した上で設定する時間例: expiration_period を追加した後の有効期限が2023-06-01T15:00:00+09:00の場合、expiration_time_shift を09:00:00+09:00と設定すると有効期限は2023-06-01T09:00+09:00※このフィールドが設定されている場合、 expiration_period は1日以上※コンビニ決済の場合のみ利用可能 ※セブンイレブン、セイコーマート/他支払(サークルK/サンクス/ペイジー)は時刻指定が利用できないためこのフィールドは無効 |
オンライン払いデータ
オンライン払いを選択した場合、課金を作成後QR事業者側の支払い画面を呼び出すためのURLが必要です。
イシュアトークンを取得するリクエストを別途送る必要があります。
詳しくはこちらをご覧ください。
フィールド 赤字は必須 ※は条件付き必須 | データ型 | 備考 |
---|---|---|
data.brand | string | 使用する支払いゲートウェイalipay_online (Alipay China),alipay_plus_online (Alipay+),pay_pay_online (Pay Pay),we_chat_online (WeChat Pay),d_barai_online (d払い)のいずれか |
data.call_method | string | クライアントが要求した実行方法http_get , http_post , sdk , web , app のいずれかsdk :ペイメントプロバイダーが提供するSDKで直接使用することweb :特定のAPIを拡張した特殊なブラウザ環境で直接使用することapp :ペイメントプロバイダーが提供するSDKのネイティブアプリ環境での利用http_get またはhttp_post を使用すると、issuer_token を新しいブラウザウィンドウまたは適切な対応するHTTPメソッドのiframe内で直接実行することが可能以下のブランドでは、以下の呼び出し方法に対応 – alipay_online: http_get , http_get_mobile , sdk (miniapp), app – alipay_plus_online: http_get , http_get_mobile , sdk (miniapp), app – pay_pay_online: http_post – we_chat_online: http_get (H5), sdk (miniapp), app (in-app), web (official account)※ http_get (H5)の場合、リクエスト前に利用予定のウェブブラウザのドメインをサポートデスクへ連絡する必要あり– d_barai_online: http_post |
data.user_identifier | string | 通常、ペイメントゲートウェイアプリケーションによって提供される、消費者のデバイスを一意に識別することができる消費者固有の識別子 不正行為を防止するために一部の決済事業者が要求しているもの これらのコールメソッドの以下のブランドでは、消費者固有の識別子の提供が必要 – we_chat_online : sdk (miniapp), web (official account) |
data.os_type | string | 使っているモバイルデバイスのOSandroid ,ios のいずれかこれらのコールメソッドの以下のブランドでは提供が必要 – alipay_plus_online : http_get_mobile , app |
銀行振込支払データ
フィールド 赤字は必須 ※は条件付き必須 | データ型 | 備考 |
---|---|---|
data.brand | string | 使用する支払いゲートウェイaozora_bank GMOあおぞらネット銀行のみ指定可能 |
Bodyの記述例
curl --request POST
--url https://api.univapay.com/tokens
--header 'Authorization: Bearer {secret}.{jwt}
'
--header 'Content-type: application/json'
--data "{
"payment_type": "card",
"email": "test@test.com",
"type":"recurring",
"data": {
"cardholder": "TARO YAMADA",
"card_number": "4000020000000000",
"exp_month": "12",
"exp_year": "2034",
"cvv": "123",
"phone_number": {
"country_code": "1",
"local_number": "8029854583"
},
"cvv_authorize": {
"enabled": "true",
"currency": "JPY"
}
}
}"
レスポンス
下記はBodyの記述例でリクエストした場合の例です。
CodeとHeader
- Code:
201
- Header:
Content-Type: application/json
Body
{
"id": "11ef32a7-3a71-8662-803f-1bc27702eeec",
"store_id": "11edf541-c42d-653c-8c3d-dfe0a55f95c0",
"email": "test@test.com",
"payment_type": "card",
"active": true,
"mode": "test",
"type": "recurring",
"usage_limit": null,
"confirmed": null,
"metadata": {},
"created_on": "2024-06-25T03:58:49.321896Z",
"updated_on": "2024-06-25T03:58:49.321896Z",
"last_used_on": null,
"data": {
"card": {
"cardholder": "TARO YAMADA",
"exp_month": 12,
"exp_year": 2099,
"card_bin": "400002",
"last_four": "0000",
"brand": "visa",
"card_type": "credit",
"country": "US",
"category": null,
"issuer": "RIVER VALLEY CREDIT UNION",
"sub_brand": "none"
},
"billing": {
"line1": "123 abc st",
"line2": "apt 123",
"state": "OR",
"city": "Portland",
"country": "US",
"zip": "12345",
"phone_number": {
"country_code": 1,
"local_number": "8029854583"
}
},
"cvv_authorize": {
"enabled": false,
"status": null,
"charge_id": null,
"credentials_id": null,
"currency": null
},
"cvv_authorize_check": {
"status": null,
"charge_id": null,
"date": null
}
}
}