API REFERENCE
Tokenbetalingen
Van toepassing op: betalingen met Token starten - creditcards
Nadat de betaler een standaardcreditcardtransactie op de gehoste betaalpagina van YabandPay heeft voltooid en toestemming heeft gegeven, zet YabandPay de gevoelige kaarthoudergegevens om in een willekeurige numerieke tekenreeks (een Token), zodat de gegevens niet meer naar de kaarthouder te herleiden zijn. Het Token kan voor de volgende betalingen worden gebruikt:
- Klanten kunnen met één klik op de checkoutpagina betalen zonder creditcardgegevens in te voeren.
- Handelaren kunnen het Token gebruiken voor terugkerende betalingen, abonnementskosten en vergelijkbare doeleinden.
[!TIP|style:flat] Workflow
- Schakel Token-betalingen in. Neem contact op met uw accountmanager om de Token-betaalfunctie te activeren.
- Verkrijg toestemming van de gebruiker. Wanneer u expressbetalingen (Token-betalingen) voor consumenten inschakelt, moet u gebruikers duidelijk informeren en hun toestemming verkrijgen om mogelijke geschillen te voorkomen.
- Verkrijg een Token. Start eerst een standaardcreditcardtransactie. YabandPay retourneert een betaal-URL. Nadat de gebruiker via die URL heeft betaald en toestemming heeft gegeven, retourneert YabandPay het Token in een asynchrone melding met de parameter payment_token_object.
- Start een Token-betaling. Neem het Token op in de variabele payment_token_object. Als de Token-validatie slaagt, verwerkt YabandPay de betaling. Als de validatie mislukt, retourneert YabandPay een fout. In dat geval raden we aan opnieuw een standaardcreditcardtransactie te starten om een Token te verkrijgen en daarna de betaling opnieuw te starten.
| Parameter | Type | Beschrijving | Verplicht |
|---|---|---|---|
| user | String | Kassiersaccount UID | Verplicht |
| sign | String | Signature | Verplicht |
| method | String | v3.CreateCardPayments | Verplicht |
| time | Long | Timestamp | Verplicht |
- Parameters
| Parameter | Type | Beschrijving | Verplicht |
|---|---|---|---|
| pay_method | String | online | Verplicht |
| sub_pay_method | String | Token | Verplicht |
| operation | String | 11.Token for sales 12.Token for authorisation; | Verplicht |
| order_id | String | Merchant order ID | Verplicht |
| 3ds_initiate | String | 01. Enable 3DS verification; 02. Disable 3DS (requires activation approval); 03. SCA exemption (requires activation approval). | Verplicht |
| sca_exemption | String | LowValue | 3ds_initiate=03 Required |
| amount | String | Bedrag als numerieke tekenreeks. Voer bijvoorbeeld 24.99 in voor € 24.99. | Verplicht |
| currency | String | ISO 4217 currency code, for example EUR or CHF | Verplicht |
| payment_token_object | String | Payment Token | Verplicht |
| description | String | Bestelomschrijving | Verplicht |
| demo | String | Aangepast veld | Optioneel |
| timeout | String | Vervaltijd in minuten (0-1440) | Verplicht |
| notify_url | String | URL voor asynchrone melding na betaling | Verplicht |
| request_id | String | Unieke aanvraag-ID; aanbevolen wordt een combinatie van cijfers en letters van ten minste 24 tekens | Verplicht |
Signature example:
Sorted parameters concatenated into a URL-style query string
"3ds_initiate=01&amount=1¤cy=EUR&description=test&method=v3.CreateCardPayments¬ify_url=https://www.yabandpay.com/notify&operation=11&order_id=1725875543&pay_method=online&payment_token_object=VnXaRabcsedfsSlPFZXavcsdfasdEFDd&request_id=hjf5lv32i40lh7oh86j6az98tnscwv37&sub_pay_method=Token&time=1725875543&timeout=0&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": 1725875543,
"data": {
"3ds_initiate": "01",
"description": "test",
"timeout": "0",
"pay_method": "online",
"sub_pay_method": "Token",
"operation": "11",
"order_id": 1725875543,
"amount": "1",
"currency": "EUR",
"payment_token_object": "VnXaRabcsedfsSlPFZXavcsdfasdEFDd",
"notify_url": "https://www.yabandpay.com/notify",
"request_id": "hjf5lv32i40lh7oh86j6az98tnscwv37"
}
}
Response example:
{
"status": true,
"code": "200",
"data": {
"order_id": "YOUR_ORDER_ID",
"trade_id": "109bb0e9-e1fb-49cb-c537-ec944f33c388",
"amount": "1.00",
"currency": "EUR",
"state": "paid"
},
"message": "",
"response_id": "202409091752241912726578"
}
Aanvullende informatie:
MIT & CIT:
MIT = Merchant Initiated subsequent transactions. Token-betalingen die door de handelaar worden gestart.
CIT = Cardholder Initiated Subsequent transactions. Token-betalingen waarbij de klant betrokken is. Geef bij het activeren van betalingen aan of u MIT of CIT nodig hebt, zodat de juiste modus kan worden ingesteld.
Resultaat van het antwoord:
-
Een geslaagde aanvraag retourneert "status": true.
-
Bij een mislukte aanroep wordt "status": false geretourneerd. Als u Invalid Token ontvangt, raden we aan HPP Token opnieuw aan te roepen om een nieuw Token te verkrijgen.
De API retourneert de betalingsstatus synchroon. We raden sterk aan zowel Order Query als Asynchronous Notifications te gebruiken om de betalingsstatus te synchroniseren en bij te werken, zodat de betalingsinformatie in realtime actueel blijft. a) Als de bestelstatus state gelijk is aan paid, is de betaling geslaagd; b) als de bestelstatus state gelijk is aan authorized, is de autorisatie geslaagd. Roep na een geslaagde autorisatie de API voor het incasseren van de autorisatie aan om het bedrag te incasseren.
Vrijstelling van 3DS voor lage bedragen:
Transacties tot de onderstaande limieten komen mogelijk in aanmerking als transactie met een laag bedrag. Als het bestelbedrag niet hoger is dan het toepasselijke bedrag hieronder, mag transactiecode 02 (vrijstelling voor lage bedragen) met goedkeuring worden gebruikt.
| # | 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 | -4119 | Invalid Token |
| false | -4120 | No operational permissions |
