Giftcards & Vouchers

For Giftcard & Vouchers you can use the redirect flow via the TGU or the Direct Payment Processing. It is also to use the Giftcard Information API's and redeem API's to send the data of the Giftcard to PAY.

If the allowed giftcard value is less than the total order amount you can send the Giftcard data in the Giftcard Block via the instore, EmbeddedCardPayment or a transaction started in Redirect flow.


Using the redirect flow

When you create an order through our Order:Create API, you can provide a cardnumber and pincode as input. Use (at least) the following info in the request.

{
  "serviceId": "SL-1234-1234",
  "paymentMethod": {
    "id": 1714,
    "input": {
      "cardNumber": "6299201############",
      "pincode": "123123"
    }
  },
  "amount": {
    "value": 10,
    "currency": "EUR"
  }
}

Use the recipe below to get a step by step walktrough

PaymentMethod id 1714 indicates that a Giftcard payment needs to be started.



Successful response

If the giftcard/voucher is successfully charged the following response is returned

{
    "id": "...",
    "serviceId": "SL-1234-1234",
    "description": null,
    "reference": null,
    "manualTransferCode": "1234 1234 1234 2134",
    "orderId": "...",
    "uuid": "...",
    "customerKey": "...",
    "status": {
        "code": 100,
        "action": "PAID"
    },
    "receipt": null,
    "integration": {
        "test": false
    },
    "amount": {
        "value": 1,
        "currency": "EUR"
    },
    "authorizedAmount": {
        "value": 0,
        "currency": "EUR"
    },
    "capturedAmount": {
        "value": 1,
        "currency": "EUR"
    },
    "checkoutData": null,
    "payments": [
        {
            "id": "...",
            "paymentMethod": {
                "id": 815,
                "input": {
                    "cardNumber": "6299201############",
                    "pincode": "123123"
                }
            },
            "customerType": null,
            "customerKey": "11f2365950119362500e06af693e380b",
            "customerId": "",
            "customerName": null,
            "ipAddress": null,
            "secureStatus": false,
            "paymentVerificationMethod": 0,
            "status": {
                "code": 100,
                "action": "PAID"
            },
            "currencyAmount": {
                "value": 1,
                "currency": "EUR"
            },
            "amount": {
                "value": 1,
                "currency": "EUR"
            },
            "authorizedAmount": {
                "value": 0,
                "currency": "EUR"
            },
            "capturedAmount": {
                "value": 1,
                "currency": "EUR"
            },
            "supplierData": null
        }
    ],
    "createdAt": "2024-09-23T13:28:35+02:00",
    "createdBy": "AT-0041-3959",
    "modifiedAt": "2024-09-23T13:28:36+02:00",
    "modifiedBy": null,
    "expiresAt": "2024-09-23T14:28:35+02:00",
    "completedAt": "2024-09-23T13:28:36+02:00",
    "links": {
        "status": "https://connect.payments.nl/v1/orders/.../status",
        "abort": "https://connect.payments.nl/v1/orders/.../abort",
        "approve": "https://connect.payments.nl/v1/orders/.../approve",
        "decline": "https://connect.payments.nl/v1/orders/.../decline",
        "void": "https://connect.payments.nl/v1/orders/.../void",
        "capture": "https://connect.payments.nl/v1/orders/.../capture",
        "captureAmount": "https://connect.payments.nl/v1/orders/.../capture/amount",
        "captureProducts": "https://connect.payments.nl/v1/orders/.../capture/products",
        "checkout": "https://checkout.payments.nl/to/return/...",
        "redirect": "https://checkout.payments.nl/to/return/..."
    }
}


Partial payments

If the card could not fully cover the amount of the payment, a partial payment is initiated. In this case, a link is provided where the enduser can finalise the payment. The initial payment will be held on an authorized state, until the full order is complete. Only upon completion of the entire order the giftcards be deducted.

In the response a redirectURL is returned. Redirect the end user to this URL to finalize the order, using another giftcard or another payment method (depending what is enabled on your sales location).

Example response in case of a partial payment

{
    "id": "...",
    "serviceId": "SL-1234-1234",
    "description": null,
    "reference": null,
    "manualTransferCode": "1234 1234 1234 1234",
    "orderId": "...",
    "uuid": "...",
    "customerKey": null,
    "status": {
        "code": 20,
        "action": "PENDING"
    },
    "receipt": null,
    "amount": {
        "value": 10,
        "currency": "EUR"
    },
    "authorizedAmount": {
        "value": 1,
        "currency": "EUR"
    },
    "capturedAmount": {
        "value": 0,
        "currency": "EUR"
    },
    "checkoutData": null,
    "payments": [
        {
            "id": "...",
            "paymentMethod": {
                "id": 1714,
                "input": {
                    "cardNumber": "...",
                    "pincode": "..."
                }
            },
            "customerType": null,
            "customerKey": null,
            "customerId": null,
            "customerName": null,
            "ipAddress": null,
            "secureStatus": false,
            "paymentVerificationMethod": 0,
            "status": {
                "code": 95,
                "action": "AUTHORIZE"
            },
            "currencyAmount": {
                "value": 1,
                "currency": "EUR"
            },
            "amount": {
                "value": 1,
                "currency": "EUR"
            },
            "authorizedAmount": {
                "value": 1,
                "currency": "EUR"
            },
            "capturedAmount": {
                "value": 0,
                "currency": "EUR"
            },
            "supplierData": null
        }
    ],
    "createdAt": "2024-09-23T12:51:14+02:00",
    "createdBy": "AT-0041-3959",
    "modifiedAt": "2024-09-23T12:51:20+02:00",
    "modifiedBy": null,
    "expiresAt": "2024-10-21T12:51:14+02:00",
    "completedAt": null,
    "links": {
        "status": "...",
        "abort": "...",
        "approve": "...",
        "decline": "...",
        "void": "...",
        "capture": "...",
        "captureAmount": "...",
        "captureProducts": "...",
        "debug": "...",
        "checkout": "...",
        "redirect": "..."
    }
}