API REFERENCE
Get Token
Applies to: obtaining a Token through the YabandPay hosted payment page
YabandPay’s Hosted Payment Page (HPP) is a ready-to-use payment page fully maintained by YabandPay. Merchants can accept payments securely by hosting sensitive PCI data within YabandPay’s system. The form can be embedded in the merchant’s checkout flow as an iframe or a redirect page.
After the payer completes a standard credit card transaction on the YabandPay hosted payment page and gives consent, YabandPay converts sensitive cardholder data into a random string (a Token) to remove identifying information. The Token can be used for the following payments:
- Users can pay with one click on the checkout page without entering credit card details.
- Merchants can use this Token for recurring payments, subscription charges, and similar purposes.
[!TIP|style:flat] Workflow
- Enable Token payments. Contact your account manager to activate the Token payment feature.
- Obtain user consent. When enabling express payments (Token payments) for consumers, you must clearly inform users and obtain their consent to avoid potential disputes.
- Get a Token. First, initiate a standard credit card transaction. YabandPay returns a payment url. After the user completes payment through that url and gives consent, YabandPay returns the Token in an asynchronous notification using the payment_token_object parameter.
- Initiate a Token payment. Include the Token in the payment_token_object variable. If Token validation succeeds, YabandPay processes the Token payment. If validation fails, YabandPay returns an error. In that case, we recommend initiating another standard credit card transaction to obtain a Token and then initiating payment again.
| Parameter | Type | Description | Required |
|---|---|---|---|
| user | String | Cashier account UID | Required |
| sign | String | Signature | Required |
| method | String | v3.CreateCardPayments | Required |
| time | Long | Timestamp | Required |
- Parameters
| Parameter | Type | Description | Required |
|---|---|---|---|
| pay_method | String | online | Required |
| sub_pay_method | String | Cards HPP | Required |
| operation | String | 10.Create Token only; 11.Token for sales; 12.Token for authorisation | Required |
| order_id | String | Merchant order ID | Required |
| 3ds_initiate | String | 3ds settings. 01. 3ds verification must be enabled; | Required |
| cardinfo | String | Card information | Treat the value of cardinfo as a string (fields within cardinfo do not need to be included in sorting) |
| cardinfo.card_holder | string | Cardholder name | Required |
| cardinfo.card_number | string | Card number | Required |
| cardinfo.expiration_month | string | Card expiration month, MM | Required |
| cardinfo.expiration_year | string | Card expiration year, YYYY | Required |
| cardinfo.cvc | string | CVC (storing the CVC in any form violates PCI DSS requirements) | Required |
| amount | String | Numeric amount. For example, € 24.99 must be written as 24.99. If operation is 10, set amount=0 | Required |
| currency | String | ISO 4217 currency code, for example EUR or CHF | Required |
| description | String | Order description | Required |
| form_type | String | Type of the returned url. Default: 01. 01.completed, 02.iframe | Optional |
| demo | String | Custom field | Optional |
| string | Cardholder email | Required | |
| timeout | String | Expiration time in minutes (0-1440) | Required |
| redirect_url | String | Redirect URL after payment | Optional |
| notify_url | String | Asynchronous notification URL after payment | Required |
| request_id | String | Unique request ID; a combination of digits and letters at least 24 characters is recommended | Required |
Signature example:
Sorted parameters concatenated into a URL-style query string
"3ds_initiate=01&amount=0.1¤cy=EUR&description=test&email=JohnSmith@gmail.com&form_type=01&method=v3.CreateCardPayments¬ify_url=https://www.yabandpay.com/notify&operation=11&order_id=1725875388&pay_method=online&request_id=dxktqiedfpkswnripi631ppg6fl2uoym&sub_pay_method=Cards HPP&time=1725875388&timeout=30&user=YOUR_CASHIER_UID"
Sign stringA using secret_key
The resulting signature is:
"YOUR_SIGNATURE"
Request example:
{
"user": "YOUR_CASHIER_UID",
"sign": "YOUR_SIGNATURE",
"method": "v3.CreateCardPayments",
"time": 1725875388,
"data": {
"3ds_initiate": "01",
"description": "test",
"timeout": "30",
"pay_method": "online",
"sub_pay_method": "Cards HPP",
"operation": "11",
"form_type": "01",
"order_id": 1725875388,
"amount": "0.1",
"currency": "EUR",
"email": "JohnSmith@gmail.com",
"notify_url": "https://www.yabandpay.com/notify",
"request_id": "dxktqiedfpkswnripi631ppg6fl2uoym"
}
}
Response example:
{
"status": true,
"code": "200",
"data": {
"order_id": "YOUR_ORDER_ID",
"trade_id": "2b2aa1af-6e97-4c01-8c52-86200bf66c82",
"amount": "0.1",
"currency": "EUR",
"url": "https://pay.yabandpay.com/pay_method/Y3JlZGl0Y2FyZA==/MmIyYWExYWYtNmU5Ny00YzAxLThjNTItODYyMDBiZjY2Yzgy",
"state": "processing"
},
"message": "",
"response_id": "202409091749500451314672"
}
Additional information:
MIT & CIT :
MIT = Merchant Initiated subsequent transactions. Token payments initiated by the merchant.
CIT = Cardholder Initiated Subsequent transactions. Token payments involving the customer. When activating payments, specify whether you need MIT or CIT so the appropriate mode can be configured.
Payment result:
-
A successful request returns "status": true.
-
A failed request returns "status": false.
Redirect the customer to the returned url. After entering card details and completing payment at this url, the customer is redirected to redirect_url. We strongly recommend using both Query Order and Asynchronous Notifications to keep payment statuses accurate and up to date.
Returned Token:
-
After the customer grants authorization and the payment succeeds, YabandPay returns payment_token_object through an asynchronous notification.
-
If the customer does not grant authorization or does not complete payment, the asynchronous notification does not return payment_token_object.
3DS low-value exemption:
Transactions within the following limits may qualify as low-value transactions. If the order amount is less than or equal to the applicable amount below, transaction code 02 (low-value exemption) may be used with approval.
| # | Currency | Amount |
|---|---|---|
| 1 | EUR | 30 |
| 2 | DKK | 225 |
| 3 | GBP | 27 |
| 4 | SEK | 310 |
| 5 | ISK | 5000 |
| 6 | NOK | 325 |
| 7 | CHF | 32 |
| 8 | PLN | 135 |
| 9 | USD | 36 |
Response codes:
| Status | Code | Message |
|---|---|---|
| true | 200 | |
| false | -1000 | Internal error |
| false | -403 | The signature Error |
| false | -2001 | The user not exist |
| false | -3001 | Required field is missing |
| false | -4118 | Incorrect request ID |
| false | -4120 | No operational permissions |
