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.


Did this page help you?