openapi: 3.0.1 info: title: 3DS 3DS actions Payment Pages API description: "Protect your business and meet regulatory requirements by verifying your customer's identity.\n\n__Authentication header__\n ```\n Authorization: {your_credentials}\n ```\nReplace `{your_credentials}` with your base64-encoded Basic Auth username and password given to your by your Worldpay Implementation Manager.\n

\n\nYou **must** use the `Authorization` header for any request you send to our 3DS API.\n\n__Accept/Content-Type header__\n ```\n Content-Type: application/vnd.worldpay.verifications.customers-v3.hal+json\n Accept: application/vnd.worldpay.verifications.customers-v3.hal+json\n ```\nWe use the Accept header to identify which version of our API you are using. You must use the Accept header for any request you send to our 3DS API.\n\nWe require the Content-Type header if the request you're sending includes a request body, and if the HTTP method is a `POST` or a `PUT`.\n

\n\n\n__DNS whitelisting__ \nWhitelist the following URLs:\n* `https://try.access.worldpay.com/`\n* `https://access.worldpay.com/`\n\nPlease ensure you use DNS whitelisting, not explicit IP whitelisting." version: '3' x-metadata: category: - 3DS - SCA Exemptions business: - Enterprise catalog-list: true generated: false servers: - url: https://try.access.worldpay.com description: Test (Try) - url: https://access.worldpay.com description: Live security: - BasicAuth: [] tags: - name: Payment Pages paths: /payment_pages: post: operationId: create parameters: - description: Used to identify individual requests made to our API. in: header name: WP-CorrelationId required: true schema: type: string pattern: ^[0-9a-zA-Z_-]{1,64}$ - description: The name of the client calling the API. in: header name: User-Agent required: false schema: type: string requestBody: content: application/vnd.worldpay.payment_pages-v1.hal+json: examples: Guest Card Payment (all fields): value: transactionReference: MyTransaction123 merchant: entity: POxxxxxxxxx narrative: line1: line1 value: currency: GBP amount: 123 description: Mind Palace Ltd billingAddressName: Sherlock Holmes billingAddress: firstName: John lastName: Watson address1: 221B Baker Street address2: Marylebone address3: Westminster postalCode: NW1 6XE city: London state: Greater London countryCode: GB resultURLs: successURL: https://mindpalace-website/result/success pendingURL: https://mindpalace-website/result/pending failureURL: https://mindpalace-website/result/failure errorURL: https://mindpalace-website/result/error cancelURL: https://mindpalace-website/result/cancel expiryURL: https://mindpalace-website/result/expiry riskData: shipping: firstName: James lastName: Moriarty address: city: Durham address1: The Palatine Centre address2: Durham University address3: Stockton Road state: County Durham countryCode: GB postalCode: DH1 3LE phoneNumber: 01189998819999197253 method: verifiedAddress nameMatchesAccountName: false email: james.moriarty@example.com timeFrame: nextDay custom: string1: foo number1: '1' string2: foo number2: '1' string3: foo number3: '1' string4: foo number4: '1' string5: foo number5: '1' string6: foo number6: '1' string7: foo number7: '1' string8: foo number8: '1' string9: foo number9: '1' account: shopperId: '1234' dateOfBirth: '1835-04-01' history: createdAt: '1876-06-01' modifiedAt: '1876-08-13' paymentAccountEnrolledAt: '1876-06-01' passwordModifiedAt: '1876-06-01' type: fidoAuthenticator previousSuspiciousActivity: false email: sherlock.holmes@example.com transaction: firstName: James lastName: Moriarty phoneNumber: 01189998819999197253 preOrderDate: '1876-08-13' reorder: false history: attemptsLastYear: 3 completedLastSixMonths: 4 attemptsLastDay: 2 shippingAddressFirstUsedAt: '1876-06-01' addCardsLastDay: 1 giftCardsPurchase: totalValue: amount: 10000 currency: GBP quantity: 1 hostedCustomization: backgroundColor: '#FFFFFF' color: '#000000' page: backgroundColor: '#333333' color: '#FFFFFF' border: color: '#CCCCCC' width: 1px style: solid radius: 4px fonts: family: - Comic Sans MS buttons: backgroundColor: '#FF0' color: '#333333' border: style: solid color: '#0FF' width: 3px radius: 0px fonts: family: - Comic Sans MS hover: backgroundColor: '#DDF' color: '#111111' border: color: '#BBBBBB' width: 2px style: dotted radius: 0px fonts: family: - Comic Sans MS focus: backgroundColor: '#DFD' color: '#222222' border: color: '#CCCCCC' width: 2px style: solid radius: 0px fonts: family: - Comic Sans MS inputs: backgroundColor: '#FFFFFF' color: '#000000' border: style: solid width: 2px radius: 2px color: '#FFF' fonts: family: - Comic Sans MS placeholder: color: '#001' validation: ok: color: '#00F' error: color: '#F00' hover: backgroundColor: '#FF0000' color: '#7F0000' border: color: '#0FF' width: 1px style: solid radius: 2px fonts: family: - Comic Sans MS placeholder: color: '#AAAAAA' validation: ok: color: '#00CC00' error: color: '#CC0000' focus: backgroundColor: '#0240FF' color: '#001F7F' border: color: '#0FF' width: 1px style: solid radius: 2px fonts: family: - Comic Sans MS placeholder: color: '#BBBBBB' validation: ok: color: '#009900' error: color: '#990000' fonts: family: - Comic Sans MS hostedProperties: showBillingAddress: EDIT showShippingAddress: HIDE showCountryList: 'false' showLanguageList: 'false' showContactDetails: HIDE sendURLParameters: 'true' showPoweredByWorldPay: 'true' showCancelButton: 'true' showChangePaymentMethodButton: 'false' disableStrictUrls: 'true' showHeader: 'true' showFooter: 'true' showCardIcons: 'false' paymentButtonLabel: makePayment showCardholderName: 'true' showPaymentDetailsHeader: 'true' passBackErrorReasons: 'true' maskCardDetails: 'false' googlePayButtonColour: black googlePayButtonLabel: long applePayButtonType: plain applePayButtonStyle: black settlement: auto: true cancelOn: cvcNotMatched: disabled expiry: '600' Guest Card Payment (mandatory fields): value: transactionReference: MyTransaction123 merchant: entity: POxxxxxxxxx narrative: line1: Mind Palace Ltd value: currency: GBP amount: 123 Guest card payment (using customisation_id): value: transactionReference: MyTransaction123 merchant: entity: POxxxxxxxxx narrative: line1: Mind Palace Ltd value: currency: GBP amount: 123 customisation_id: Customisationidvalue1 Request 3DS and FraudSight off: value: transactionReference: MyTransaction123 merchant: entity: POxxxxxxxxx narrative: line1: '' value: currency: GBP amount: 123 description: Mind Palace Ltd billingAddressName: Sherlock Holmes billingAddress: firstName: John lastName: Watson address1: 221B Baker Street address2: Marylebone address3: Westminster postalCode: NW1 6XE city: London state: Greater London countryCode: GB resultURLs: successURL: https://mindpalace-website/result/success pendingURL: https://mindpalace-website/result/pending failureURL: https://mindpalace-website/result/failure errorURL: https://mindpalace-website/result/error cancelURL: https://mindpalace-website/result/cancel expiryURL: https://mindpalace-website/result/expiry riskData: shipping: firstName: James lastName: Moriarty address: city: Durham address1: The Palatine Centre address2: Durham University address3: Stockton Road state: County Durham countryCode: GB postalCode: DH1 3LE phoneNumber: 01189998819999197253 method: verifiedAddress nameMatchesAccountName: false email: james.moriarty@example.com timeFrame: nextDay custom: string1: foo number1: '1' string2: foo number2: '1' string3: foo number3: '1' string4: foo number4: '1' string5: foo number5: '1' string6: foo number6: '1' string7: foo number7: '1' string8: foo number8: '1' string9: foo number9: '1' account: shopperId: '1234' dateOfBirth: '1835-04-01' history: createdAt: '1876-06-01' modifiedAt: '1876-08-13' paymentAccountEnrolledAt: '1876-06-01' passwordModifiedAt: '1876-06-01' type: fidoAuthenticator previousSuspiciousActivity: false email: sherlock.holmes@example.com transaction: firstName: James lastName: Moriarty phoneNumber: 01189998819999197253 preOrderDate: '1876-08-13' reorder: false history: attemptsLastYear: 3 completedLastSixMonths: 4 attemptsLastDay: 2 shippingAddressFirstUsedAt: '1876-06-01' addCardsLastDay: 1 giftCardsPurchase: totalValue: amount: 10000 currency: GBP quantity: 1 fraud: type: disabled threeDS: type: disabled expiry: '600' Store a Card - card on file (all fields): value: transactionReference: MyTransaction123 merchant: entity: POxxxxxxxxx narrative: line1: Mind Palace Ltd value: currency: GBP amount: 123 description: Optional text displayed on HPP to your customer billingAddress: address1: 221B Baker Street address2: Marylebone address3: Westminster postalCode: NW1 6XE city: London state: Greater London countryCode: GB resultURLs: successURL: https://mindpalace-website/result/success pendingURL: https://mindpalace-website/result/pending failureURL: https://mindpalace-website/result/failure errorURL: https://mindpalace-website/result/error cancelURL: https://mindpalace-website/result/cancel expiryURL: https://mindpalace-website/result/expiry riskData: shipping: firstName: James lastName: Moriarty address: city: Durham address1: The Palatine Centre address2: Durham University address3: Stockton Road state: County Durham countryCode: GB postalCode: DH1 3LE phoneNumber: 01189998819999197253 method: verifiedAddress nameMatchesAccountName: false email: james.moriarty@example.com timeFrame: nextDay custom: string1: foo number1: '1' string2: foo number2: '1' string3: foo number3: '1' string4: foo number4: '1' string5: foo number5: '1' string6: foo number6: '1' string7: foo number7: '1' string8: foo number8: '1' string9: foo number9: '1' account: dateOfBirth: '1835-04-01' history: createdAt: '1876-06-01' modifiedAt: '1876-08-13' paymentAccountEnrolledAt: '1876-06-01' passwordModifiedAt: '1876-06-01' type: worldpay previousSuspiciousActivity: false email: sherlock.holmes@example.com transaction: firstName: James lastName: Moriarty phoneNumber: 01189998819999197253 preOrderDate: '1876-08-13' reorder: false history: attemptsLastYear: 3 completedLastSixMonths: 4 attemptsLastDay: 2 shippingAddressFirstUsedAt: '1876-06-01' addCardsLastDay: 1 giftCardsPurchase: totalValue: amount: 123 currency: GBP quantity: 1 createToken: type: worldpay namespace: SHOPPER_ID_1234567890 description: Test Token Description optIn: ASK customerAgreement: type: cardOnFile storedCardUsage: first expiry: '600' Store a Card - card on file (mandatory fields): value: transactionReference: MyTransaction123 merchant: entity: POxxxxxxxxx narrative: line1: Mind Palace Ltd value: currency: GBP amount: 123 createToken: type: worldpay namespace: SHOPPER_ID_1234567890 description: Test Token Description optIn: ASK customerAgreement: type: cardOnFile storedCardUsage: first Store a Card - subscription (all fields): value: transactionReference: MyTransaction123 merchant: entity: POxxxxxxxxx narrative: line1: Mind Palace Ltd value: currency: GBP amount: 123 description: Optional text displayed on HPP to your customer billingAddress: address1: 221B Baker Street address2: Marylebone address3: Westminster postalCode: NW1 6XE city: London state: Greater London countryCode: GB resultURLs: successURL: https://mindpalace-website/result/success pendingURL: https://mindpalace-website/result/pending failureURL: https://mindpalace-website/result/failure errorURL: https://mindpalace-website/result/error cancelURL: https://mindpalace-website/result/cancel expiryURL: https://mindpalace-website/result/expiry riskData: shipping: firstName: James lastName: Moriarty address: city: Durham address1: The Palatine Centre address2: Durham University address3: Stockton Road state: County Durham countryCode: GB postalCode: DH1 3LE phoneNumber: 01189998819999197253 method: verifiedAddress nameMatchesAccountName: false email: james.moriarty@example.com timeFrame: nextDay custom: string1: foo number1: '1' string2: foo number2: '1' string3: foo number3: '1' string4: foo number4: '1' string5: foo number5: '1' string6: foo number6: '1' string7: foo number7: '1' string8: foo number8: '1' string9: foo number9: '1' account: dateOfBirth: '1835-04-01' history: createdAt: '1876-06-01' modifiedAt: '1876-08-13' paymentAccountEnrolledAt: '1876-06-01' passwordModifiedAt: '1876-06-01' type: worldpay previousSuspiciousActivity: false email: sherlock.holmes@example.com transaction: firstName: James lastName: Moriarty phoneNumber: 01189998819999197253 preOrderDate: '1876-08-13' reorder: false history: attemptsLastYear: 3 completedLastSixMonths: 4 attemptsLastDay: 2 shippingAddressFirstUsedAt: '1876-06-01' addCardsLastDay: 1 giftCardsPurchase: totalValue: amount: 123 currency: GBP quantity: 1 createToken: type: worldpay namespace: SHOPPER_ID_1234567890 description: Test Token Description optIn: ASK customerAgreement: type: subscription storedCardUsage: first expiry: '600' Store a Card - subscription (mandatory fields): value: transactionReference: MyTransaction123 merchant: entity: POxxxxxxxxx narrative: line1: Mind Palace Ltd value: currency: GBP amount: 123 createToken: type: worldpay namespace: SHOPPER_ID_1234567890 description: Test Token Description optIn: ASK customerAgreement: type: subscription storedCardUsage: first Take Payment from a Stored Card - card on file (all fields): value: transactionReference: MyTransaction123 merchant: entity: POxxxxxxxxx narrative: line1: Mind Palace Ltd value: currency: GBP amount: 123 description: Optional text displayed on HPP to your customer billingAddress: firstName: John lastName: Watson address1: 221B Baker Street address2: Marylebone address3: Westminster postalCode: NW1 6XE city: London state: Greater London countryCode: GB resultURLs: successURL: https://mindpalace-website/result/success pendingURL: https://mindpalace-website/result/pending failureURL: https://mindpalace-website/result/failure errorURL: https://mindpalace-website/result/error cancelURL: https://mindpalace-website/result/cancel expiryURL: https://mindpalace-website/result/expiry riskData: shipping: firstName: James lastName: Moriarty address: city: Durham address1: The Palatine Centre address2: Durham University address3: Stockton Road state: County Durham countryCode: GB postalCode: DH1 3LE phoneNumber: 01189998819999197253 method: verifiedAddress nameMatchesAccountName: false email: james.moriarty@example.com timeFrame: nextDay custom: string1: foo number1: '1' string2: foo number2: '1' string3: foo number3: '1' string4: foo number4: '1' string5: foo number5: '1' string6: foo number6: '1' string7: foo number7: '1' string8: foo number8: '1' string9: foo number9: '1' account: dateOfBirth: '1835-04-01' history: createdAt: '1876-06-01' modifiedAt: '1876-08-13' paymentAccountEnrolledAt: '1876-06-01' passwordModifiedAt: '1876-06-01' type: guestUser previousSuspiciousActivity: false email: sherlock.holmes@example.com transaction: firstName: James lastName: Moriarty phoneNumber: 01189998819999197253 preOrderDate: '1876-08-13' reorder: false history: attemptsLastYear: 3 completedLastSixMonths: 4 attemptsLastDay: 2 shippingAddressFirstUsedAt: '1876-06-01' addCardsLastDay: 1 giftCardsPurchase: totalValue: amount: 10000 currency: GBP quantity: 1 paymentInstrument: type: card/tokenized href: https://try.access.worldpay.com/tokens/eyJrIjoxLCJkIjoialRBL0FFelBzcnZpNCtzRGNRemh0NzI0NE1rdUtjMUFJdjYxVnlibWZuUT0ifQ customerAgreement: type: cardOnFile storedCardUsage: subsequent expiry: '600' Take Payment from a Stored Card -card on file (mandatory fields): value: transactionReference: MyTransaction123 merchant: entity: POxxxxxxxxx narrative: line1: Mind Palace Ltd value: currency: GBP amount: 123 paymentInstrument: type: card/tokenized href: https://try.access.worldpay.com/tokens/eyJrIjoxLCJkIjoialRBL0FFelBzcnZpNCtzRGNRemh0NzI0NE1rdUtjMUFJdjYxVnlibWZuUT0ifQ customerAgreement: type: cardOnFile storedCardUsage: subsequent schema: $ref: '#/components/schemas/Transaction' description: The transaction to create. responses: '200': content: application/vnd.worldpay.payment_pages-v1.hal+json: examples: Successful response: description: Successful response value: url: https://payments.worldpay.com/app/hpp/integration/transaction/xxxxxxxxxxxxxxxxxxxx&cs=yyyyyy _links: self: href: https://access.worldpay.com/paymentQueries/payments?transactionReference=174420000000000 schema: $ref: '#/components/schemas/SuccessfulCreateTransactionResponse' description: Transaction creation was successful '400': content: application/vnd.worldpay.payment_pages-v1.hal+json: examples: Invalid request response: description: Invalid request response value: errorName: invalidRequest message: Invalid request. schema: $ref: '#/components/schemas/AwpApiErrorResponse' description: Bad request '401': content: application/vnd.worldpay.payment_pages-v1.hal+json: examples: Unauthorized response: description: Unauthorized response value: errorName: unauthorized message: Invalid authentication schema: $ref: '#/components/schemas/AwpApiErrorResponse' description: Unauthorized '500': content: application/vnd.worldpay.payment_pages-v1.hal+json: examples: Internal error response: description: Internal error response value: errorName: internalErrorOccurred message: An internal problem occurred with your request, please try again. schema: $ref: '#/components/schemas/AwpApiErrorResponse' description: Internal server error summary: Create a new transaction tags: - Payment Pages components: schemas: FocusButtons: type: object description: Styles applied when the button receives focus (e.g. via keyboard navigation or user interaction). properties: backgroundColor: type: string description: 'Hex color code for background color. You can use three digit or six digit codes (e.g. #FFO or #DD99CC).' maxLength: 20 minLength: 0 pattern: ^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$ border: $ref: '#/components/schemas/Border' description: Border settings, including color, width, and style. color: type: string description: 'Hex color code for text color. You can use three digit or six digit codes (e.g. #FFO or #DD99CC).' maxLength: 20 minLength: 0 pattern: ^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$ fonts: $ref: '#/components/schemas/Fonts' RiskDataHistory: type: object description: History of the customer's account. properties: createdAt: type: string description: The ISO 8601 date of when the customer's account was created. pattern: ^([0-9]{4})(-)(1[0-2]|0[1-9])\2(3[01]|0[1-9]|[12][0-9])$ modifiedAt: type: string description: The ISO 8601 date of when the customer's account was last modified. pattern: ^([0-9]{4})(-)(1[0-2]|0[1-9])\2(3[01]|0[1-9]|[12][0-9])$ passwordModifiedAt: type: string description: The ISO 8601 date of when the customer's account password was last modified. pattern: ^([0-9]{4})(-)(1[0-2]|0[1-9])\2(3[01]|0[1-9]|[12][0-9])$ paymentAccountEnrolledAt: type: string description: The ISO 8601 date of when the payment account was added to the customer's account. pattern: ^([0-9]{4})(-)(1[0-2]|0[1-9])\2(3[01]|0[1-9]|[12][0-9])$ Fonts: type: object description: Defines font styling options for text displayed on the payment pages, including the list of preferred font families. properties: family: type: array description: List of preferred font families for text on the payment page (e.g Arial, Times New Roman). items: type: string description: List of preferred font families for text on the payment page (e.g Arial, Times New Roman). maxLength: 50 minLength: 0 maxItems: 20 minItems: 0 CreateToken: type: object description: An object that instructs us to create a token for the payment details supplied. properties: description: type: string description: 'A description of your token. If not supplied, a default description is created for you. ' maxLength: 255 minLength: 1 pattern: ^([^&<]*)$ namespace: type: string description: A namespace is used to group up to 16 cards, e.g. for one customer. A card can exist in more than one namespace. maxLength: 64 minLength: 1 optIn: type: string description: 'Used to choose how the customer could opt into their payment details being tokenized. SILENT - (default value) The card details are always saved (you must already have their consent to do this) NOTIFY - The card details are always saved (you must already have their consent to do this) and your customer will see this within our hosted payment pages ASK - The card details are saved if your customer provides their consent. This adds a "Save payment details" tickbox to the page, which they tick to opt-in, or ignore to opt-out. ' enum: - SILENT - NOTIFY - ASK type: type: string description: The type of token to be created. enum: - worldpay required: - optIn - type RiskDataAccount: type: object description: Object containing all customer account related risk data. properties: dateOfBirth: type: string description: The date of birth of the customer. pattern: ^([0-9]{4})(-)(1[0-2]|0[1-9])\2(3[01]|0[1-9]|[12][0-9])$ email: type: string description: The customer's email address. maxLength: 128 minLength: 3 pattern: ^(.+@.+\..+)?$ history: $ref: '#/components/schemas/RiskDataHistory' previousSuspiciousActivity: type: boolean description: Indicates whether there's been suspicious activity in the past. shopperId: type: string description: A unique identifier of the customer. maxLength: 128 minLength: 1 type: type: string description: 'The type of account being used by the customer. guestUser - Order placed without full merchant account registration (no password) registeredUser- Order placed with full merchant account registration (password entered) federatedAccount - Using a Federated ID issuerCredentials- Using issuer credentials thirdPartyAuthentication - Using third party authentication fidoAuthenticator - FIDO authentication standard ' pattern: guestUser|registeredUser|federatedAccount|issuerCredentials|thirdPartyAuthentication|fidoAuthenticator ValidationStatus: type: object description: Styling properties for validation status messages, defining colors for success or error states. properties: color: type: string description: 'Hex color code defining the style of the validation messages. You can use three digit or six digit codes (e.g. #FFO or #DD99CC).' maxLength: 20 minLength: 0 pattern: ^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$ Placeholder: type: object description: Defines styling options for placeholder text in input fields. properties: color: type: string description: 'Hex color code for the placeholder text. You can use three digit or six digit codes (e.g. #FFO or #DD99CC).' maxLength: 20 minLength: 0 pattern: ^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$ Links: type: object description: Object including a link allowing you to query our [Payment Queries API](/access/products/payment-queries) to retrieve the `paymentId` with which you can manage your payment. properties: self: $ref: '#/components/schemas/TransactionResponseLink' ThreeDS: type: object description: An object containing 3DS authentication preferences, which you can use to turn 3DS off. properties: type: type: string description: The 3DS type. enum: - disabled RiskDataGiftCardsPurchase: type: object description: Provided when the order is being used to purchase a gift card. properties: quantity: type: integer format: int32 description: The number of gift cards being purchased. maximum: 99 minimum: 1 totalValue: $ref: '#/components/schemas/RiskDataTotalValue' RiskDataTransaction: type: object description: Object containing all customer transaction related risk data. properties: firstName: type: string description: Customer's first name. maxLength: 22 minLength: 1 giftCardsPurchase: $ref: '#/components/schemas/RiskDataGiftCardsPurchase' history: $ref: '#/components/schemas/RiskDataTransactionHistory' lastName: type: string description: Customer's last name. maxLength: 22 minLength: 1 phoneNumber: type: string description: Customer's phone number. maxLength: 20 minLength: 4 pattern: ^[0-9]*$ preOrderDate: type: string description: Expected ISO 8601 date that a pre-ordered purchase will be available. pattern: ^([0-9]{4})(-)(1[0-2]|0[1-9])\2(3[01]|0[1-9]|[12][0-9])$ reorder: type: boolean description: Indicates whether this transaction is a reorder of a previous order. Value: type: object description: The payment amount. properties: amount: type: integer format: int64 description: The payment amount. This is a whole number with an exponent e.g. if exponent is two, 250 is 2.50. minimum: 1 currency: type: string description: The three character currency code. See list of supported currencies. required: - amount RiskDataShipping: type: object description: Object containing all data related to how the order will be shipped. properties: address: $ref: '#/components/schemas/RiskDataShippingAddress' email: type: string description: The email address used for an electronic delivery. maxLength: 128 minLength: 3 pattern: ^(.+@.+\..+)?$ firstName: type: string description: The first name of the shipping address. maxLength: 22 minLength: 1 lastName: type: string description: The last name of the shipping address. maxLength: 22 minLength: 1 method: type: string description: 'The shipping method used. billingAddress - Ship to customers billing address verifiedAddress- Ship to another verified address on file with merchant otherAddress- Ship to address that is different than billing address store - Ship to store (store address should be populated on request) digital - Digital goods unshippedTickets - Travel and event tickets, not shipped other - Other ' pattern: billingAddress|verifiedAddress|otherAddress|store|digital|unshippedTickets|other nameMatchesAccountName: type: boolean description: Indicates whether the customer's name matches the name used for the shipping address. timeFrame: type: string description: The timeframe to ship the purchased goods. pattern: electronic|twoDaysPlus|nextDay|sameDay PaymentInstrument: type: object description: An object that contains the payment type and details. discriminator: mapping: card/tokenized: '#/components/schemas/TokenPaymentInstrument' propertyName: type properties: type: type: string description: The type of instrument. required: - type BillingAddress: type: object description: An object containing the billing address information. properties: address1: type: string description: Address line 1. maxLength: 85 minLength: 0 address2: type: string description: Address line 2. maxLength: 85 minLength: 0 address3: type: string description: Address line 3. maxLength: 85 minLength: 0 city: type: string description: Address city. maxLength: 50 minLength: 0 countryCode: type: string description: The supported ISO 3166-1 alpha-2 country code. firstName: type: string description: The customer's first name. maxLength: 22 minLength: 1 lastName: type: string description: The customer's last name. maxLength: 22 minLength: 1 postalCode: type: string description: 'Required for all countries except the following: * IE' maxLength: 15 minLength: 0 state: type: string description: Address state or region. maxLength: 50 minLength: 0 FocusableButtons: type: object description: Defines hover and focus styling for buttons on the HPP page. properties: backgroundColor: type: string description: 'Hex color code for background color. You can use three digit or six digit codes (e.g. #FFO or #DD99CC).' maxLength: 20 minLength: 0 pattern: ^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$ border: $ref: '#/components/schemas/Border' color: type: string description: 'Hex color code for text color. You can use three digit or six digit codes (e.g. #FFO or #DD99CC).' maxLength: 20 minLength: 0 pattern: ^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$ focus: $ref: '#/components/schemas/FocusButtons' description: Styles applied when the button receives focus (e.g. via keyboard navigation or user interaction). fonts: $ref: '#/components/schemas/Fonts' description: Font styling properties, including family and size. hover: $ref: '#/components/schemas/HoverButtons' description: Styles applied when the button is hovered over by a pointing device(where supported). Settlement: type: object description: A value when specified allows you to turn auto settlement off. The default behavior is "true" and there is nothing to specify. properties: auto: type: boolean cancelOn: $ref: '#/components/schemas/CancelOn' HoverButtons: type: object description: Styles applied when the button is hovered over by a pointing device (where supported). properties: backgroundColor: type: string description: 'Hex color code for background color. You can use three digit or six digit codes (e.g. #FFO or #DD99CC).' maxLength: 20 minLength: 0 pattern: ^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$ border: $ref: '#/components/schemas/Border' description: Border settings, including color, width, and style. color: type: string description: 'Hex color code for text color. You can use three digit or six digit codes (e.g. #FFO or #DD99CC).' maxLength: 20 minLength: 0 pattern: ^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$ fonts: $ref: '#/components/schemas/Fonts' description: Font styling properties, including family and size. Narrative: type: object description: The text that appears on your customer's statement. Used to identify the merchant. properties: line1: type: string description: line1 is used to provide basic details about the merchant. pattern: ^[a-zA-Z0-9\-\.\,\ ]*$ required: - line1 Validation: type: object description: Styling properties for validation messages in input fields, including success and error indicators. properties: error: $ref: '#/components/schemas/ValidationStatus' ok: $ref: '#/components/schemas/ValidationStatus' RiskData: type: object description: Data used for fraud and risk protection. properties: account: $ref: '#/components/schemas/RiskDataAccount' custom: $ref: '#/components/schemas/RiskDataCustom' shipping: $ref: '#/components/schemas/RiskDataShipping' transaction: $ref: '#/components/schemas/RiskDataTransaction' CancelOn: type: object description: Optional object to control skip auto-cancel behavior for CVC mismatch. properties: cvcNotMatched: type: string description: Must be `disabled` to skip auto-cancel on CVC mismatch. example: disabled ResultURLs: type: object description: An object containing the different URLs we redirect your customers to when we receive the payment result. We recommend that you provide us with your custom result URLs. properties: cancelURL: type: string description: When your customer cancels a transaction, we redirect that customer to the cancel URL. errorURL: type: string description: When we receive the payment result for an erroneous payment, we redirect your customer to the error URL. expiryURL: type: string description: When a customer leaves the payment transaction uncompleted within the maximum allowed time frame, we redirect your customer to the expiry URL. failureURL: type: string description: When a payment fails, we redirect your customer to the failure URL. pendingURL: type: string description: When we receive the payment result for a pending payment transaction, we redirect your customer to the pending URL. successURL: type: string description: When we receive the payment result for a successful payment, we redirect your customer to the success URL. HostedProperties: type: object description: Add properties customization to allow merchants to specify the look of the payment page. properties: applePayButtonStyle: type: string description: 'Change the color displayed on the Apple Pay button. Accepts values: black, white-outline, white.' maxLength: 20 minLength: 0 applePayButtonType: type: string description: 'Change the text displayed on the Apple Pay button. Accepts values: plain, book, buy, check-out, donate, set-up, subscribe, add-money, contribute, order, reload, rent, support, tip, top-up.' maxLength: 20 minLength: 0 disableStrictUrls: type: string description: 'When set to true/false, append the additional information after/before the result URL query string. Accepts boolean values: true or false.' maxLength: 20 minLength: 0 googlePayButtonColour: type: string description: 'Change the color displayed on the Google Pay button. Accepts values: white or black.' maxLength: 20 minLength: 0 googlePayButtonLabel: type: string description: 'Change the text displayed on the Google Pay button. Accepts values: long or short.' maxLength: 20 minLength: 0 maskCardDetails: type: string description: 'Hidden card and CVC number as they are typed. Accepts boolean values: true or false.' maxLength: 20 minLength: 0 passBackErrorReasons: type: string description: 'Append error reasons to the result URL. Accepts boolean values: true or false.' maxLength: 20 minLength: 0 paymentButtonLabel: type: string description: 'Options to change the payment button text. Accepts values: makePayment, submitPayment, buyNow, payNow, pay, saveAccount, saveCard, save, add, addCard, bookNow, continue.' maxLength: 20 minLength: 0 sendURLParameters: type: string description: 'Send url parameters in the callback. Accepts boolean values: true or false.' maxLength: 20 minLength: 0 showBillingAddress: type: string description: 'Displays the billing address of the customer on the payment pages. Accepts ENUM values: SHOW, HIDE, and EDIT.' maxLength: 20 minLength: 0 showCancelButton: type: string description: 'Display the cancel button that lets customer cancel the payment. Accepts boolean values: true or false.' maxLength: 20 minLength: 0 showCardIcons: type: string description: 'Display logos for card payments on the payment page. Accepts boolean values: true or false.' maxLength: 20 minLength: 0 showCardholderName: type: string description: 'Display the card holder name on the payment page. Accepts boolean values: true or false.' maxLength: 20 minLength: 0 showChangePaymentMethodButton: type: string description: 'Display the change payment method button to let customer return to the payment method selection page. Accepts boolean values: true or false.' maxLength: 20 minLength: 0 showContactDetails: type: string description: 'Displays the contact details of the customer on the payment pages. Accepts ENUM values: SHOW, HIDE, and EDIT.' maxLength: 20 minLength: 0 showCountryList: type: string description: 'Displays a drop-down list of countries on the payment pages. Accepts boolean values: true or false.' maxLength: 20 minLength: 0 showFooter: type: string description: 'Display the worldpay copyright information footer on the payment page. Accepts boolean values: true or false.' maxLength: 20 minLength: 0 showHeader: type: string description: 'Display the selected logo and associated space around the logo Accepts boolean values: true or false.' maxLength: 20 minLength: 0 showLanguageList: type: string description: 'Displays a drop-down list of languages on the payment pages. Accepts boolean values: true or false.' maxLength: 20 minLength: 0 showPaymentDetailsHeader: type: string description: 'Display the payment header on the payment page. Accepts boolean values: true or false.' maxLength: 20 minLength: 0 showPoweredByWorldPay: type: string description: 'The "Powered by Worldpay" logo (referring to "worldpay" on the payment pages) is displayed while content is being displayed on a payment page. Accepts boolean values: true or false.' maxLength: 20 minLength: 0 showShippingAddress: type: string description: 'Displays the shipping address of the customer on the payment pages. Accepts ENUM values: SHOW, HIDE, and EDIT.' maxLength: 20 minLength: 0 RiskDataTransactionHistory: type: object description: Object containing details of the last transaction. properties: addCardsLastDay: type: integer format: int32 description: Number of attempts to add a card in the last 24hrs. maximum: 999 minimum: 0 attemptsLastDay: type: integer format: int32 description: Number of transactions (successful or abandoned) for this cardholder account within the last 24 hours. maximum: 999 minimum: 0 attemptsLastYear: type: integer format: int32 description: Number of transactions (successful or abandoned) for this cardholder account within the last year. maximum: 999 minimum: 0 completedLastSixMonths: type: integer format: int32 description: Number of purchases with this customer account during the previous six months. maximum: 9999 minimum: 0 shippingAddressFirstUsedAt: type: string description: The ISO 8601 date of when the shipping address, used for this transaction, was first used. pattern: ^([0-9]{4})(-)(1[0-2]|0[1-9])\2(3[01]|0[1-9]|[12][0-9])$ RiskDataShippingAddress: type: object properties: address1: type: string description: Address line 1. maxLength: 80 minLength: 1 address2: type: string description: Address line 2. maxLength: 80 minLength: 0 address3: type: string description: Address line 3. maxLength: 80 minLength: 0 city: type: string description: Address city. maxLength: 50 minLength: 1 countryCode: type: string description: The supported ISO 3166-1 alpha-2 country code. maxLength: 2 minLength: 2 pattern: ^[A-Z]{2}$ phoneNumber: type: string description: Address phone number. maxLength: 20 minLength: 4 pattern: ^[0-9]*$ postalCode: type: string description: Address postal code or zip number. maxLength: 15 minLength: 1 state: type: string description: Address state or region. maxLength: 30 minLength: 1 required: - address1 - city - countryCode - postalCode Merchant: type: object description: An object that contains information about the merchant. properties: entity: type: string description: Used to route the request in Access Worldpay, created as part of on-boarding. maxLength: 32 minLength: 1 pattern: ^([A-Za-z0-9]+[A-Za-z0-9 ]*)?$ required: - entity TransactionResponseLink: type: object properties: href: type: string description: Link to query our database by `transactionReference` which gives you the `paymentId`. You can then use this to make follow on actions such as cancelling and refunding a payment. CustomerAgreement: type: object description: Contains specific customer agreements for the transaction. If this is present, then the creationToken must also be present. properties: storedCardUsage: type: string description: 'How the card is being used. ' enum: - first - subsequent x-enumDescriptions: first: Use this when storing a card. Applicable when `type` is "cardOnFile" or "subscription". subsequent: Use this when taking payment with a previously stored card. Only applicable for `type` "cardOnFile". type: type: string description: 'The processing arrangement agreed with your customer. ' enum: - cardOnFile - subscription x-enumDescriptions: cardOnFile: Use this for Cardholder Initiated Transactions (CITs). subscription: Use this where subsequent payments are processed without the cardholder being present aka Merchant Initiated Transactions (MITs). Subsequent payments must be submitted directly through the [Payments API](/products/payments/openapi). required: - storedCardUsage - type AwpApiErrorResponse: type: object properties: errorName: type: string message: type: string Transaction: type: object description: The request used to setup a new HPP URL. properties: billingAddress: $ref: '#/components/schemas/BillingAddress' createToken: $ref: '#/components/schemas/CreateToken' customerAgreement: $ref: '#/components/schemas/CustomerAgreement' customisation_id: type: string description: A unique value generated by us that represents [the channel in the Payment Page Designer](/products/hosted-payment-pages/configuration#select-channel). If not sent, the "default" channel settings apply. You can overwrite individual customization styles and properties by using the `hostedCustomization` and `hostedProperties` objects. maxLength: 21 minLength: 21 pattern: ^[A-Za-z0-9\_\-]*$ description: type: string description: An optional text, when supplied is displayed to your customer on payment pages. maxLength: 128 minLength: 0 expiry: type: integer format: int64 default: 3600 description: Allows you to configure the duration, in seconds, your customer can access the payment link. maximum: 2592000 minimum: 300 fraud: $ref: '#/components/schemas/Fraud' hostedCustomization: $ref: '#/components/schemas/Customisation' hostedProperties: $ref: '#/components/schemas/HostedProperties' locale: type: string description: A BCP 47 locale tag, from the specified list. If set to null or absent from the request, will default to English (en). enum: - ar - bg - bs - ca - cs - cy - da - de - en - el - es - es-CO - et - fi - fr - ga - he - hi - hr - hu - it - ja - ko - lt - lv - nl - 'no' - pl - pt - pt-BR - ro - ru - si - sk - sl - sv - th - tr - ua - zh - zh-TW merchant: $ref: '#/components/schemas/Merchant' narrative: $ref: '#/components/schemas/Narrative' paymentInstrument: oneOf: - $ref: '#/components/schemas/TokenPaymentInstrument' resultURLs: $ref: '#/components/schemas/ResultURLs' riskData: $ref: '#/components/schemas/RiskData' settlement: $ref: '#/components/schemas/Settlement' threeDS: $ref: '#/components/schemas/ThreeDS' transactionReference: type: string description: A unique reference generated by you that is used to identify a payment throughout its lifecycle. maxLength: 64 minLength: 1 pattern: ^[a-zA-Z0-9\-\_\/\!\@\#\$\%\(\)\*\=\.\:\;\?\[\]\{\}\~\+]*$ value: $ref: '#/components/schemas/Value' required: - merchant - narrative - transactionReference - value FocusableInputs: type: object description: Defines styling for button interaction states on the HPP page. properties: backgroundColor: type: string description: 'Hex color code for background color. You can use three digit or six digit codes (e.g. #FFO or #DD99CC).' maxLength: 20 minLength: 0 pattern: ^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$ border: $ref: '#/components/schemas/Border' color: type: string description: 'Hex color code for text color. You can use three digit or six digit codes (e.g. #FFO or #DD99CC).' maxLength: 20 minLength: 0 pattern: ^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$ focus: $ref: '#/components/schemas/Inputs' description: Styles applied when the input receives focus (e.g. via keyboard navigation or user interaction). fonts: $ref: '#/components/schemas/Fonts' description: Font styling properties, including family and size. hover: $ref: '#/components/schemas/Inputs' description: Styles applied when the input is hovered over by a pointing device (where supported). placeholder: $ref: '#/components/schemas/Placeholder' description: Custom styling for placeholder text on input fields. validation: $ref: '#/components/schemas/Validation' description: Custom styling for validation messages on input fields. Fraud: type: object properties: type: type: string description: You can use this to disable FraudSight for this request. enum: - disabled RiskDataCustom: type: object description: An object containing all data that can be used to configure manual fraud rules. properties: number1: type: string description: Custom numeric value you can use to configure manual fraud rules. number2: type: string description: Custom numeric value you can use to configure manual fraud rules. number3: type: string description: Custom numeric value you can use to configure manual fraud rules. number4: type: string description: Custom numeric value you can use to configure manual fraud rules. number5: type: string description: Custom numeric value you can use to configure manual fraud rules. number6: type: string description: Custom numeric value you can use to configure manual fraud rules. number7: type: string description: Custom numeric value you can use to configure manual fraud rules. number8: type: string description: Custom numeric value you can use to configure manual fraud rules. number9: type: string description: Custom numeric value you can use to configure manual fraud rules. string1: type: string description: Custom string value you can use to configure manual fraud rules. string2: type: string description: Custom string value you can use to configure manual fraud rules. string3: type: string description: Custom string value you can use to configure manual fraud rules. string4: type: string description: Custom string value you can use to configure manual fraud rules. string5: type: string description: Custom string value you can use to configure manual fraud rules. string6: type: string description: Custom string value you can use to configure manual fraud rules. string7: type: string description: Custom string value you can use to configure manual fraud rules. string8: type: string description: Custom string value you can use to configure manual fraud rules. string9: type: string description: Custom string value you can use to configure manual fraud rules. RiskDataTotalValue: type: object description: The payment amount. properties: amount: type: integer format: int32 description: The amount being placed on the gift card. minimum: 0 currency: type: string description: The three character currency code. See list of supported currencies. maxLength: 3 minLength: 3 pattern: ^[A-Z]{3}$ required: - amount - currency SuccessfulCreateTransactionResponse: type: object description: Response for when a HPP URL is created. properties: _links: $ref: '#/components/schemas/Links' url: type: string description: The URL where your customer can be redirected to, to complete their payment. Customisation: type: object description: Add CSS options for each payment to customize the look and feel of the payment page. properties: backgroundColor: type: string description: 'Background color for the payment page in hex format. You can use three digit or six digit codes (e.g. #FFO or #DD99CC).' maxLength: 20 minLength: 0 pattern: ^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$ buttons: $ref: '#/components/schemas/FocusableButtons' color: type: string description: 'Text color for the payment page in hex format. You can use three digit or six digit codes (e.g. #FFO or #DD99CC).' maxLength: 20 minLength: 0 pattern: ^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$ fonts: $ref: '#/components/schemas/Fonts' inputs: $ref: '#/components/schemas/FocusableInputs' page: $ref: '#/components/schemas/Page' Page: type: object description: Defines default styling for the payment page. These settings apply globally unless overridden by more specific component styles (e.g buttons, inputs). properties: backgroundColor: type: string description: 'Hex color code for background color. You can use three digit or six digit codes (e.g. #FFO or #DD99CC).' maxLength: 20 minLength: 0 pattern: ^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$ border: $ref: '#/components/schemas/Border' color: type: string description: 'Hex color code for text color. You can use three digit or six digit codes (e.g. #FFO or #DD99CC).' maxLength: 20 minLength: 0 pattern: ^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$ fonts: $ref: '#/components/schemas/Fonts' Border: type: object description: Defines border styling options for elements on the payment page, including color, width, radius and style. properties: color: type: string description: 'Defines border color in hex format. You can use three digit or six digit codes (e.g. #FFO or #DD99CC).' maxLength: 20 minLength: 0 pattern: ^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$ radius: type: string description: Defines border radius in pixels (0-10), must include `px` suffix. maxLength: 20 minLength: 0 pattern: (([1-2]?[0-9])|30)px style: type: string description: 'Border style allowed values: solid, none, dotted, dashed, double.' maxLength: 20 minLength: 0 pattern: solid|none|dotted|dashed|double width: type: string description: Defines border width in pixels (0-10), must include `px` suffix. maxLength: 20 minLength: 0 pattern: ([0-9]|10)px Inputs: type: object description: Defines custom styling options for input fields including placeholder text and validation messages. properties: backgroundColor: type: string description: 'Hex color code for background color. You can use three digit or six digit codes (e.g. #FFO or #DD99CC).' maxLength: 20 minLength: 0 pattern: ^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$ border: $ref: '#/components/schemas/Border' color: type: string description: 'Hex color code for text color. You can use three digit or six digit codes (e.g. #FFO or #DD99CC).' maxLength: 20 minLength: 0 pattern: ^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$ fonts: $ref: '#/components/schemas/Fonts' placeholder: $ref: '#/components/schemas/Placeholder' validation: $ref: '#/components/schemas/Validation' TokenPaymentInstrument: type: object allOf: - $ref: '#/components/schemas/PaymentInstrument' - type: object properties: href: type: string description: The URL to an Access token. We return this after token creation via the API or webhook callback. required: - href - type securitySchemes: BasicAuth: type: http scheme: basic