One-off payments

Learn how to handle one-off payment scenarios via Hosted Checkout

Use this for: single payments via Card, Apple Pay, Google Pay, or Pay by Bank (SIP).

This setup is used when you want to collect payment immediately without storing the customer's payment credentials for future use. Typical use cases include:

  • Selling one-time products or services (e.g. e-commerce purchases)
  • Accepting immediate repayments or account top-ups
  • Providing a way for customers to resolve failed recurring payments (common in lending and subscriptions)
  • Situations where no future billing or subscription is required

For this scenario, providing a customer_id is optional, but recommended if you want to link the payment to a customer record for reporting, reconciliation, or to enable one-click checkout for returning customers.

Read more about the one-click checkout feature here.

When you're ready to accept a payment, initiate Hosted Checkout by sending a request to the payment-links API endpoint. This request defines how the checkout behaves — including whether a payment is taken, credentials are stored, or both.


Minimum Fields Required

The table below highlights the key fields required to support the One-off Payment scenario.

FieldTypeRequiredDescription
transaction.order_idstringUnique reference assigned by you for the payment request
transaction.amountnumberMust be greater than 0
transaction.currencystringMust be set to gbp to offer Pay by Bank. Other payment types support additional currencies

Example Request

The example below shows a valid request to initiate Hosted Checkout for a One-off Payment using minimal fields. The customer can complete the payment using cards, digital wallets (Apple Pay and Google Pay), or Pay by Bank.

{
  "transaction": {
    "order_id": "e93aaf85-af8c-a6ae-89ba-0867905f9123",
    "amount": 5.99,
    "currency": "gbp"
  }
}

Enabling 3D Secure

To allow customers to authenticate using EMV 3-D Secure (3DS) for card payments, you must include the fields below in your request. For other payment methods, customers authenticate directly with their bank or wallet provider, so these fields are not needed.

Required Fields

FieldTypeRequiredDescription
tdsobjectNANA
tds.is_activebooleanEnables the use of EMV 3-D Secure to authenticate the cardholder.
tds.contact_urluriLink to the contact us / support page of your website
customerobjectNANA
billingobjectNANA
emailstringRecommendedThe customer's email address.
billing.line_1stringRecommendedThe first line of the customer's address.
billing.postcodestringThe postcode of the customer's address.
billing.country_codestringRecommendedThe ISO 3166 2-character code of the customer's address.

Note: If a customer_id is provided and tds.is_active is set to true, you don’t need to include the additional 3DS fields in the request — as long as the information is already stored against the customer record.


Example Request

The example below shows the minimum fields required to process a one-off card payment with 3D Secure enabled:

{
  "transaction": {
    "order_id": "e93aaf85-af8c-a6ae-89ba-0867905f9123",
    "amount": 15.00,
    "currency": "gbp"
  },
  "tds": {
    "is_active": true,
    "contact_url": "https://merchant.example.com/support"
  },
  "billing": {
    "address": {
      "line_1": "152 Aldgate Drive",
      "postcode": "E1 7RT",
      "country_code": "GB"
    },
    "email": "[email protected]"
  }
}

Additional Requirements for MCC 6012 (Financial Services)

If your business operates under Merchant Category Code (MCC) 6012 — typically lenders, or other financial services — card schemes require additional information to be submitted with each transaction.

This applies to all card payments, including one-off and recurring transactions. The purpose is to ensure greater transparency for consumers and reduce disputes in regulated financial sectors.

FieldTypeRequiredDescription
customerobjectNANA
customer.last_namestringThe customer’s last name.
customer.dobstringThe customer's date of birth.

Example Request

The example below shows the minimum fields required to process a one-off card payment for a business operating under MCC 6012:

{
  "transaction": {
    "order_id": "a91b4e32-6d1f-4975-9bdf-04c42c457951",
    "amount": 150.00,
    "currency": "gbp"
  },
  "customer": {
    "last_name": "Smith",
    "dob": "1988-07-15"
  }

Note: If a customer_id is provided, you don’t need to include the additional MCC 6012 fields in the request — as long as this information is already stored against the customer record. If the data does not exist on the customer, the request will fail validation.