Initial credit card payment
To create a token, you first need to make a successful initial credit card payment. To do this, we will use the Order:Create API
1.1 API Reference
The Order.Create API reference, including the option to execute real-time requests, can be found at: https://developer.pay.nl/reference/api_create_order-1
1.2 Authentication
Authentication occurs via Basic Authentication using:
- Token code (AT-…) as the username and API token (hash of 40 characters) as the password or
- Service ID (SL-…) as the username and the secret as the password.
You can find the Token code and the API token under the "Merchant" -> "Company information" tab in the PAY. Admin Panel.
You can find the Service ID and the secret under the tab "Settings" -> "Sales locations" in the PAY. Admin Panel. The Service ID is the unique reference of the sales location and starts with SL-… You can find the corresponding secret by clicking on the data icon of the relevant sales location. The secret, a 40- character hash, is displayed at the top of the popup.
1.3 Request
A request via the Order:Create API looks something like this:
curl --request POST \
--url https://connect.pay.nl/v1/orders \
--header 'accept: application/json' \
--header 'authorization: Basic dG9rZW46ZWQ2Nzg3OTQyOWM0ODkwYT*******A==' \
--header 'content-type: application/json' \
--data '
{
"amount": {
"value": 1
},
"serviceId": "SL-1234-5678",
"description": "Test recurring",
"exchangeUrl": "https://demo.pay.nl/exchange.php",
"paymentMethod": {
"id": 706
}
}In this example, a 1 cent transaction is initiated via sales location SL-1234-5678 using paymentMethod.id. 706. You can also use the following paymentMethod.Id to initiate the transaction:
- 3141 (Visa)
- 3138 (Mastercard)
1.4 Response
A response via the Order:Create API looks something like this:
{
"id": "6a7b2ee1-4744-8689-1dda-73786230441b",
"type": "sale",
"serviceId": "SL-1234-5678",
"description": "Test recurring",
"reference": null,
"manualTransferCode": "1000 0475 2220 8063",
"orderId": "52425598078X2333",
"uuid": "a93a7378-6230-441b-4752-2208063a441b",
"customerKey": null,
"status": {
"code": 50,
"name": "in_progress",
"action": "PENDING"
},
"receipt": null,
"integration": {
"pointOfInteraction": null,
"test": false
},
"splitPayments": [],
"stats": {
"extra1": null,
"extra2": null,
"extra3": null,
"tool": null,
"info": null,
"object": null,
"promotorId": null,
"domainId": null
},
"transferData": {},
"amount": {
"value": 1,
"currency": "EUR"
},
"authorizedAmount": {
"value": 0,
"currency": "EUR"
},
"capturedAmount": {
"value": 0,
"currency": "EUR"
},
"checkoutData": null,
"payments": [
{
"id": "6a7b2ee1-4744-88b0-276b-047522208063",
"paymentMethod": {
"id": 706,
"input": []
},
"billingLineId": null,
"customerType": null,
"customerKey": null,
"customerId": null,
"customerName": null,
"customerMethod": null,
"ipAddress": null,
"secureStatus": false,
"paymentVerificationMethod": 0,
"status": {
"code": 50,
"name": "paying",
"action": "PENDING"
},
"currencyAmount": {
"value": 1,
"currency": "EUR"
},
"amount": {
"value": 1,
"currency": "EUR"
},
"authorizedAmount": {
"value": 0,
"currency": "EUR"
},
"capturedAmount": {
"value": 0,
"currency": "EUR"
},
"supplierData": null,
"recurring": true,
"externalId": "6a7b2ee1474488b0276b0475222080634744eabc"
}
],
"createdAt": "2026-08-11T16:17:05+02:00",
"createdBy": "AT-0041-4031",
"modifiedAt": "2026-08-11T16:17:05+02:00",
"modifiedBy": null,
"expiresAt": "2026-09-08T16:17:05+02:00",
"completedAt": null,
"links": {
"status": "https://connect.pay.nl/v1/orders/6a7b2ee1-4744-8689-1dda-73786230441b/status",
"abort": "https://connect.pay.nl/v1/orders/6a7b2ee1-4744-8689-1dda-73786230441b/abort",
"approve": "https://connect.pay.nl/v1/orders/6a7b2ee1-4744-8689-1dda-73786230441b/approve",
"decline": "https://connect.pay.nl/v1/orders/6a7b2ee1-4744-8689-1dda-73786230441b/decline",
"void": "https://connect.pay.nl/v1/orders/6a7b2ee1-4744-8689-1dda-73786230441b/void",
"capture": "https://connect.pay.nl/v1/orders/6a7b2ee1-4744-8689-1dda-73786230441b/capture",
"captureAmount": "https://connect.pay.nl/v1/orders/6a7b2ee1-4744-8689-1dda-73786230441b/capture/amount",
"captureProducts": "https://connect.pay.nl/v1/orders/6a7b2ee1-4744-8689-1dda-73786230441b/capture/products",
"debug": "https://checkout.pay.nl/to/checkout/6a7b2ee1-4744-8689-1dda-73786230441b/with/debugging/6a7b2ee1474486891dda73786230441b",
"checkout": "https://4744eabc-secure.pay.nl/start/47522208063X441b/6a7b2ee1474488b0276b0475222080634744eabc/NL/?locale=nl_NL",
"redirect": "https://4744eabc-secure.pay.nl/start/47522208063X441b/6a7b2ee1474488b0276b0475222080634744eabc/NL/?locale=nl_NL"
}
}
1.5 Retrieve the token
After the initial credit card payment has been successfully completed, PAY. sends a token exchange call to your configured exchange endpoint. This exchange call contains the recurring_id, which is required to initiate subsequent recurring payments
Example:
{
"order_id": "52425598078X2333",
"payment_session_id": "3116527583",
"transactionId": "EX-9652-3643-8452",
"recurring_id": "VY-9212-9171-2390",
"recurring_token": "c1747bf4d38cd6af76ca0d2ffe373987b666305e27dd8b5501a5facf90a99bffe",
"customer_name": "John Doe",
"customer_id": "427592******6155",
"customer_key": "3b7d968cfc4cfcdc389f3f93275bcefc333f5f85ff6b892cc0e4c3f1a1792a2f68e7c486ec951d69dde6b6483d6c6df7d0e25a05f26ce593353379b2e625270f",
"customer_reference": null,
"label": null,
"action": "token"
}Make sure to store the recurring_id in your system and link it to the corresponding customer.
Updated about 20 hours ago