Last Updated: 19 March 2024 | Change Log

Coming Soon - The Payments API is for preview only and subject to change.

Setup a recurring payment

Create a initial customer agreement to perform subsequent recurring payments. Either using API only or our Checkout SDK for low PCI hosted card fields.

Main objects for this scenario:

  • customerAgreement - used to indicate the customer has agreed to you storing their card for the purpose of a recurring payment
  • tokenCreation - include if you're storing the card as a Worldpay Token
Info

instruction.value.amount - Set this to 0 if no initial payment is being made. An account verification is performed instead of a full payment request.

Important: You must have agreement from your customer to store their card details.

  1. API only
  2. Checkout SDK

Collect the card details and send an API request with these details to the Payments resource.

Request

  1. Plain card
  2. Token
  3. Recommended Key-values

Basic example to illustrate the core values required

{
    "transactionReference": "Memory265-13/08/1876",
    "merchant": {
        "entity": "default"
    },
    "instruction": {
        "tokenCreation": {
            "type": "WorldPay"
        },
        "customerAgreement": {
            "type": "subscription",
            "storedCardUsage":"first"
        },
        "method": "card",
        "paymentInstrument": {
            "type": "plain",
            "cardNumber": "4000000000001091",
                "expiryDate": {
                "month": 5,
                "year": 2035
            }
        },
        "narrative": {
            "line1": "trading name"
        },
        "value": {
            "currency": "GBP",
            "amount": 42
        }
    }
}

Enable additional features

Fraud assessmentPrevent fraudulent transactions.
3DS authenticationShift Liability to the issuer / for EEA countries this is required as part of SCA compliance.
SCA ExemptionsMeet SCA compliance without the added friction of 3DS.
Not Applicable
Auto SettlementRequest that payment authorizations are automatically sent for settlement (sometimes referred to as "capture").
Set instruction.settlement.auto to true in the payments request.

Response

For responses see the API reference.