Last Updated: 19 March 2024 | Change Log

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

Store a card only

Create a customer agreement to store card details for future customer initiated transactions (CIT). No initial payment is being made.

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 details.
  • tokenCreation - include if you're storing the card as a Worldpay Token.
  • instruction.value.amount - Set this to 0 so no initial payment is made. An account verification is performed instead.
  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. 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": "cardOnFile",
            "storedCardUsage":"first"
        },
        "method": "card",
        "paymentInstrument": {
            "type": "plain",
            "cardNumber": "4000000000001091",
                "expiryDate": {
                "month": 5,
                "year": 2035
            }
        },
        "narrative": {
            "line1": "trading name"
        },
        "value": {
            "currency": "GBP",
            "amount": 0
        }
    }
}

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.