Payments

Payment is one of the most complicated parts of the ordering process as it involves external payment providers and there are a number of different ways to pay. This section combines payment flows with the order completion step of the API as the two are often linked (and in many cases, one and the same).

Supported payment methods

Member payment cards

An authenticated member may use a stored member payment card to pay for their order via an embedded payment.

The embedded payment user interface will automatically render the list of available payment cards for the authenticated member, allowing them to make an embedded payment without manually entering their card details.

Web Payment Module

Embedded and redirect payments via the Digital Platform are processed through the Web Payment Module application. The Web Payment Module application ensures Vista software can't access full credit card information.

There are several key points to be aware of:

  • Only a single Web Payment Module payment can be made against an in-progress order.
  • An embedded payment cannot be combined with a redirect payment and vice versa.
  • A Web Payment Module payment can be combined with a member balance (points) payment and/or one or more gift card payments.
  • A Web Payment Module payment must be completed as the final stage of a non-zero value order, after any gift card and/or member balance payments have been made.
  • The order will be automatically completed after the Web Payment Module payment is completed.
  • Zero value orders, or orders paid entirely via gift cards, vouchers, and/or member balance payments should be completed via the CreateOrderCompletion endpoint instead of via a Web Payment Module payment.

Retrieving configured payment methods

The client application can query what payment methods are available using the GetWebPaymentMethods endpoint.

Copy
Copied
{
  "webPaymentMethods": [
    {
      "type": "Redirect",
      "isDefault": true,
      "id": 1,
      "name": {
        "text": "Your Redirect Payment Provider",
        "translations": []
      },
      "displayPriority": 1,
      "isRecurringBillingSupported": false
    },
    {
      "type": "Embedded",
      "isDefault": false,
      "id": 2,
      "name": {
        "text": "Your Embedded Payment Provider",
        "translations": []
      },
      "displayPriority": 4,
      "isRecurringBillingSupported": true
    }
  ]
}