openapi: 3.0.1
info:
title: 3DS 3DS actions Verifications 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: Verifications
paths:
/verifications/customers/3ds/deviceDataInitialization:
post:
summary: Generate required data for 3DS Device Data Collection
description: 'Allow card issuers to perform Device Data Collection to fingerprint your customer''s device.
'
operationId: deviceDataInitialize
parameters:
- in: header
name: Content-Type
required: true
schema:
type: string
example: application/vnd.worldpay.verifications.customers-v3.hal+json
- in: header
name: Accept
required: true
schema:
type: string
example: application/vnd.worldpay.verifications.customers-v3.hal+json
requestBody:
content:
application/vnd.worldpay.verifications.customers-v3.hal+json:
schema:
$ref: '#/components/schemas/3DS_deviceDataInitialize'
examples:
card/front:
$ref: '#/components/examples/ddc-card'
card/tokenized:
$ref: '#/components/examples/ddc-token'
card/networkToken:
$ref: '#/components/examples/ddc-networktoken'
card/wallet+googlepay:
$ref: '#/components/examples/ddc-googlepay'
No payment instrument provided (only jwt returned):
$ref: '#/components/examples/ddc-request'
responses:
'200':
description: The data for the device data collection has been generated
content:
application/vnd.worldpay.verifications.customers-v3.hal+json:
schema:
$ref: '#/components/schemas/3DS_deviceDataInitialize_200_response'
examples:
card/front:
$ref: '#/components/examples/ddc-jwt-bin'
card/tokenized:
$ref: '#/components/examples/ddc-jwt-bin'
card/networkToken:
$ref: '#/components/examples/ddc-jwt-bin'
Wallet token already authenticated:
$ref: '#/components/examples/already-authenticated'
No payment instrument provided (only jwt returned):
$ref: '#/components/examples/ddc-jwt-only'
'400':
description: The request has encountered validation errors
content:
application/vnd.worldpay.verifications.customers-v3.hal+json:
schema:
$ref: '#/components/schemas/3DS_deviceDataInitialize_400_response'
examples:
The request is missing a mandatory field `transactionReference`:
description: The request does not have a mandatory field `transactionReference`
value:
message: The json body provided does not match the expected schema
errorName: bodyDoesNotMatchSchema
validationErrors:
- errorName: stringIsTooShort
jsonPath: $.transactionReference
message: Transaction reference must be between 1 and 64 characters inclusive
_links:
3ds:deviceDataInitialize:
href: $serverUrl/verifications/customers/3ds/deviceDataInitialization
curies:
- href: $serverUrl/rels/verifications/customers/3ds/{rel}
templated: true
name: 3ds
The request contains an invalid `Content-Type` header:
description: The request contains an invalid `Content-Type` header
value:
message: Provided request contains a header with an invalid value
errorName: headerHasInvalidValue
headerName: Content-Type
_links:
3ds:deviceDataInitialize:
href: $serverUrl/verifications/customers/3ds/deviceDataInitialization
curies:
- href: $serverUrl/rels/verifications/customers/3ds/{rel}
name: 3ds
templated: true
'502':
description: Invalid response received from upstream
content:
application/vnd.worldpay.verifications.customers-v3.hal+json:
schema:
$ref: '#/components/schemas/3DS_deviceDataInitialize_502_response'
examples:
An invalid response is received from upstream:
description: An invalid response is received from upstream
value:
path: /verifications/customers/3ds/deviceDataInitialization
status: 502
message: Service Unavailable
errorName: serviceUnavailable
_links:
3ds:deviceDataInitialize:
href: $serverUrl/verifications/customers/3ds/deviceDataInitialization
curies:
- href: $serverUrl/rels/verifications/customers/3ds/{rel}
name: 3ds
templated: true
'503':
description: The requested service is unavailable
content:
application/vnd.worldpay.verifications.customers-v3.hal+json:
schema:
$ref: '#/components/schemas/3DS_deviceDataInitialize_503_response'
examples:
The requested service is unavailable:
description: The requested service is unavailable
value:
message: Service Unavailable
errorName: serviceUnavailable
_links:
3ds:deviceDataInitialize:
href: $serverUrl/verifications/customers/3ds/deviceDataInitialization
curies:
- href: $serverUrl/rels/verifications/customers/3ds/{rel}
name: 3ds
templated: true
tags:
- Verifications
/verifications/customers/3ds/authentication:
post:
summary: Initiate the 3DS authentication
description: 'Authenticate your customer by submitting order and risk data.
'
operationId: authenticate
parameters:
- in: header
name: Content-Type
schema:
type: string
example: application/vnd.worldpay.verifications.customers-v3.hal+json
- in: header
name: Accept
schema:
type: string
example: application/vnd.worldpay.verifications.customers-v3.hal+json
requestBody:
content:
application/vnd.worldpay.verifications.customers-v3.hal+json:
schema:
$ref: '#/components/schemas/3DS_authenticate'
examples:
card/front:
$ref: '#/components/examples/authentication-card'
card/tokenized:
$ref: '#/components/examples/authentication-token'
card/networkToken:
$ref: '#/components/examples/authentication-networktoken'
card/wallet+googlepay:
$ref: '#/components/examples/authentication-googlepay'
Minimum Recommended (web):
$ref: '#/components/examples/authentication-card-recommended-web'
Minimum Recommended (native):
$ref: '#/components/examples/authentication-card-recommended-native'
responses:
'200':
description: The authentication has been created
content:
application/vnd.worldpay.verifications.customers-v3.hal+json:
schema:
anyOf:
- $ref: '#/components/schemas/3DS_authenticate_200_response'
- $ref: '#/components/schemas/3DS_authenticate_200_response_cartes_bancaires'
- $ref: '#/components/schemas/3DS_authenticate_challenged_200_response'
- $ref: '#/components/schemas/3DS_authenticate_200_response_authentication_failed'
- $ref: '#/components/schemas/3DS_authenticate_200_response_unavailable'
- $ref: '#/components/schemas/3DS_authenticate_200_response_bypassed'
- $ref: '#/components/schemas/3DS_authenticate_200_response_authentication_outage'
examples:
authenticated:
$ref: '#/components/examples/authentication-authenticated'
authenticated (Cartes Bancaires):
$ref: '#/components/examples/authentication-authenticated-cartesbancaires'
alreadyAuthenticated:
$ref: '#/components/examples/already-authenticated'
challenged:
$ref: '#/components/examples/authentication-challenged'
authenticationFailed:
$ref: '#/components/examples/authentication-authentication-failed'
unavailable:
$ref: '#/components/examples/authentication-unavailable'
authenticationOutage:
$ref: '#/components/examples/authentication-authentication-outage'
bypassed:
$ref: '#/components/examples/authentication-bypassed'
'400':
description: The request has encountered validation errors
content:
application/vnd.worldpay.verifications.customers-v3.hal+json:
schema:
$ref: '#/components/schemas/3DS_authenticate_400_response'
examples:
The request is missing a mandatory field `merchant`:
description: The request does not have a mandatory field `merchant`
value:
message: The json body provided does not match the expected schema
errorName: bodyDoesNotMatchSchema
validationErrors:
- errorName: fieldIsMissing
jsonPath: $.merchant
message: Merchant must be provided
_links:
3ds:authenticate:
href: $serverUrl/verifications/customers/3ds/authentication
3ds:verify:
href: $serverUrl/verifications/customers/3ds/verification
curies:
- href: $serverUrl/rels/verifications/customers/3ds/{rel}
templated: true
name: 3ds
The request contains an invalid `Content-Type` header:
description: The request contains an invalid `Content-Type` header
value:
message: Provided request contains a header with an invalid value
errorName: headerHasInvalidValue
headerName: Content-Type
_links:
3ds:authenticate:
href: $serverUrl/verifications/customers/3ds/authentication
3ds:verify:
href: $serverUrl/verifications/customers/3ds/verification
curies:
- href: $serverUrl/rels/verifications/customers/3ds/{rel}
name: 3ds
templated: true
The request is using an invalid HTTP method:
description: The request is using an invalid HTTP method
value:
errorName: methodNotAllowed
allowedMethods:
- POST
message: Method GET not allowed for this request
_links:
3ds:authenticate:
href: $serverUrl/verifications/customers/3ds/authentication
3ds:verify:
href: $serverUrl/verifications/customers/3ds/verification
curies:
- href: $serverUrl/rels/verifications/customers/3ds/{rel}
name: 3ds
templated: true
'502':
description: Invalid response received from upstream
content:
application/vnd.worldpay.verifications.customers-v3.hal+json:
schema:
$ref: '#/components/schemas/3DS_authenticate_502_response'
examples:
An invalid response is received from upstream:
description: An invalid response is received from upstream
value:
path: /verifications/customers/3ds/authentication
status: 502
message: Service Unavailable
errorName: serviceUnavailable
_links:
3ds:authenticate:
href: $serverUrl/verifications/customers/3ds/authentication
3ds:verify:
href: $serverUrl/verifications/customers/3ds/verification
curies:
- href: $serverUrl/rels/verifications/customers/3ds/{rel}
templated: true
name: 3ds
'503':
description: The requested service is unavailable
content:
application/vnd.worldpay.verifications.customers-v3.hal+json:
schema:
$ref: '#/components/schemas/3DS_authenticate_503_response'
examples:
The requested service is unavailable:
description: The requested service is unavailable
value:
path: /verifications/customers/3ds/authentication
status: 503
message: Service Unavailable
errorName: serviceUnavailable
_links:
3ds:authenticate:
href: $serverUrl/verifications/customers/3ds/authentication
3ds:verify:
href: $serverUrl/verifications/customers/3ds/verification
curies:
- href: $serverUrl/rels/verifications/customers/3ds/{rel}
templated: true
name: 3ds
tags:
- Verifications
/verifications/customers/3ds/verification:
post:
summary: Verify the 3DS challenge response
description: 'Verify the results of a challenged authentication.
'
operationId: verify
parameters:
- in: header
name: Content-Type
schema:
type: string
example: application/vnd.worldpay.verifications.customers-v3.hal+json
- in: header
name: Accept
schema:
type: string
example: application/vnd.worldpay.verifications.customers-v3.hal+json
requestBody:
content:
application/vnd.worldpay.verifications.customers-v3.hal+json:
schema:
$ref: '#/components/schemas/3DS_verify'
examples:
Verification:
$ref: '#/components/examples/verification-request'
responses:
'200':
description: The challenge was successful - obtain the authentication data for onward use
content:
application/vnd.worldpay.verifications.customers-v3.hal+json:
schema:
anyOf:
- $ref: '#/components/schemas/3DS_verify_200_response'
- $ref: '#/components/schemas/3DS_verify_200_response_failed'
- $ref: '#/components/schemas/3DS_verify_200_response_unavailable'
- $ref: '#/components/schemas/3DS_verify_200_response_signature_failed'
examples:
authenticated:
$ref: '#/components/examples/verification-authenticated'
authenticationFailed:
$ref: '#/components/examples/verification-authentication-failed'
unavailable:
$ref: '#/components/examples/verification-unavailable'
signatureFailed:
$ref: '#/components/examples/verification-signature-failed'
'400':
description: The request has encountered validation errors
content:
application/vnd.worldpay.verifications.customers-v3.hal+json:
schema:
$ref: '#/components/schemas/3DS_verify_400_response'
examples:
The request contains invalid characters:
description: The request contains invalid characters in `transactionReference` and `merchant.entity` fields
value:
path: /verifications/customers/3ds/verification
status: 400
message: The json body provided does not match the expected schema
errorName: bodyDoesNotMatchSchema
validationErrors:
- errorName: stringFailedRegexCheck
jsonPath: $.merchant.entity
message: Entity must be alphanumeric with optional spaces
- errorName: stringFailedRegexCheck
jsonPath: $.transactionReference
message: 'Transaction reference characters must be alphanumeric or one of the following: _!@#$%()*=-.:;?[]{}~`/+'
_links:
3ds:authenticate:
href: $serverUrl/verifications/customers/3ds/authentication
3ds:verify:
href: $serverUrl/verifications/customers/3ds/verification
curies:
- href: $serverUrl/rels/verifications/customers/3ds/{rel}
templated: true
name: 3ds
The request contains an invalid `Content-Type` header:
description: The request contains an invalid `Content-Type` header
value:
path: /verifications/customers/3ds/verification
status: 400
message: Provided request contains a header with an invalid value
errorName: headerHasInvalidValue
headerName: Content-Type
_links:
3ds:authenticate:
href: $serverUrl/verifications/customers/3ds/authentication
3ds:verify:
href: $serverUrl/verifications/customers/3ds/verification
curies:
- href: $serverUrl/rels/verifications/customers/3ds/{rel}
name: 3ds
templated: true
The request is using an invalid HTTP method:
description: The request is using an invalid HTTP method
value:
message: Method GET not allowed for this request
errorName: methodNotAllowed
allowedMethods:
- POST
_links:
3ds:authenticate:
href: $serverUrl/verifications/customers/3ds/authentication
3ds:verify:
href: $serverUrl/verifications/customers/3ds/verification
curies:
- href: $serverUrl/rels/verifications/customers/3ds/{rel}
templated: true
name: 3ds
'502':
description: Invalid response received from upstream
content:
application/vnd.worldpay.verifications.customers-v3.hal+json:
schema:
$ref: '#/components/schemas/3DS_authenticate_502_response'
examples:
An invalid response is received from upstream:
description: An invalid response is received from upstream
value:
path: /verifications/customers/3ds/authentication
status: 502
message: Service Unavailable
errorName: serviceUnavailable
_links:
3ds:authenticate:
href: $serverUrl/verifications/customers/3ds/authentication
3ds:verify:
href: $serverUrl/verifications/customers/3ds/verification
curies:
- href: $serverUrl/rels/verifications/customers/3ds/{rel}
templated: true
name: 3ds
'503':
description: The requested service is unavailable
content:
application/vnd.worldpay.verifications.customers-v3.hal+json:
schema:
$ref: '#/components/schemas/3DS_authenticate_503_response'
examples:
The requested service is unavailable:
description: The requested service is unavailable
value:
path: /verifications/customers/3ds/authentication
status: 503
message: Service Unavailable
errorName: serviceUnavailable
_links:
3ds:authenticate:
href: $serverUrl/verifications/customers/3ds/authentication
3ds:verify:
href: $serverUrl/verifications/customers/3ds/verification
curies:
- href: $serverUrl/rels/verifications/customers/3ds/{rel}
templated: true
name: 3ds
tags:
- Verifications
components:
schemas:
3DS_verify_200_response_unavailable:
title: unavailable
type: object
properties:
outcome:
enum:
- authenticated
- authenticationFailed
- unavailable
- signatureFailed
type: string
description: Outcome of the previously posted authentication request.
transactionReference:
maxLength: 64
minLength: 1
type: string
description: A unique reference for authentication that was passed in the request.
status:
$ref: '#/components/schemas/status'
_links:
$ref: '#/components/schemas/links'
3DS_authenticate:
required:
- transactionReference
- merchant
- instruction
- deviceData
- challenge
type: object
properties:
transactionReference:
$ref: '#/components/schemas/transactionReference'
merchant:
required:
- entity
type: object
description: An object that contains information about the merchant and API level configuration.
properties:
entity:
maxLength: 64
minLength: 1
pattern: ^[A-Za-z0-9 ]*$
type: string
description: Used to route the request in Access Worldpay, created as part of on-boarding.
overrideName:
type: string
maxLength: 25
minLength: 1
pattern: ^[^><&'\"]*
description: Used to override the merchant name that's both submitted to issuers as well as displayed to the customer in the authentication process. PayFac merchants should submit the name of their submerchant.
acquirerId:
type: string
maxLength: 20
minLength: 1
example: '01234567'
pattern: ^[0-9]*$
description: Instructs the issuer that the following authorization will be completed with an external acquirer
instruction:
required:
- value
- paymentInstrument
type: object
description: The object that contains all the payment information related to the authentication request.
properties:
value:
required:
- amount
- currency
type: object
description: An object that contains information about the value of the authentication.
properties:
amount:
maximum: 99999999999
minimum: 0
type: integer
description: The authentication amount. This is a whole number with an exponent e.g. if exponent is two, 250 is 2.50. You can find the relevant exponent in our [currency table](/products/reference/supported-countries-currencies#iso-currency-codes). The authentication amount should be equal to the authorization amount. We recommend you delay authentication until the amount is known, or ensure it's greater than the total transaction amount.
currency:
maxLength: 3
minLength: 3
pattern: ^[A-Z]{3}$
type: string
description: The three digit currency code. See list of [supported currencies](/products/reference/supported-countries-currencies#iso-currency-codes)
paymentInstrument:
oneOf:
- $ref: '#/components/schemas/card_front'
- $ref: '#/components/schemas/card_tokenized'
- $ref: '#/components/schemas/card_networktoken'
- $ref: '#/components/schemas/card_wallet_googlepay'
description: An object that contains the card details or token location.
discriminator:
mapping:
card/front: '#/components/schemas/card_front'
card/tokenized: '#/components/schemas/card_tokenized'
card/networkToken: '#/components/schemas/card_networktoken'
card/wallet+googlepay: '#/components/schemas/card_wallet_googlepay'
propertyName: type
deviceData:
required:
- acceptHeader
- userAgentHeader
type: object
description: Object containing device data information.
properties:
acceptHeader:
maxLength: 2048
minLength: 1
type: string
description: Used by the issuer to check if the customer's browser is compatible with the issuer challenge display.
userAgentHeader:
maxLength: 2048
minLength: 1
type: string
description: Used by issuers as part of risk analysis and correctly displaying the challenge. Must conform to RFC 7321 E.g. `Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:47.0)`.
collectionReference:
maxLength: 200
type: string
description: For web this is the `sessionId` in the post message response from the Device Data Collection form. For iOS/Android SDK this is the `consumerSessionId` returned as part of SDK initialization. It is __highly recommended__ you provide this, not doing so will increase issuer challenges.
browserLanguage:
maxLength: 8
minLength: 1
type: string
description: ' Your customer''s browser language that can be used by the issuer in risk analysis. Must conform to the language tags defined by IETF. E.g. en-GB, fr-FR. '
ipAddress:
type: string
description: " A unique identifier for your customer's physical location that\n can be used by the issuer in risk analysis. Must be in IPv4 or IPv6 format.\nE.g. 192.0.0.0. "
browserJavaEnabled:
type: boolean
description: Defines whether Java is enabled on your customers browser.
browserColorDepth:
type: string
description: The color depth of your customers browser
enum:
- '1'
- '4'
- '8'
- '15'
- '16'
- '24'
- '32'
- '48'
browserScreenHeight:
type: integer
pattern: ^[0-9]{1,6}$
description: Defines the pixel height of the customers browser.
browserScreenWidth:
type: integer
pattern: ^[0-9]{1,6}$
description: Defines the pixel width of the customers browser.
timeZone:
pattern: ^[+-]?\d{1,4}$
type: string
description: " Time zone offset in minutes between UTC and your customer's browser local time. \nExample time zone offset values in minutes: \nIf UTC -5 hours: \n`300` \n`+300` \nIf UTC +5 hours: \n`-300` \n "
browserJavascriptEnabled:
type: boolean
description: Defines whether Javascript is enabled on your customers browser.
challenge:
required:
- returnUrl
type: object
description: An object that contains challenge related information.
properties:
returnUrl:
minLength: 1
type: string
format: uri
description: URL the issuer will use to notify the challenge has been completed.
preference:
enum:
- noPreference
- noChallengeRequested
- challengeRequested
- challengeMandated
- noChallengeRequestedTRAPerformed
type: string
description: Preference regarding issuer displaying challenge to the customer. The interpretation of this field varies from issuer to issuer, so we cannot guarantee any particular behavior on their part as a result of you setting this field.
x-enumDescriptions:
noPreference: Default (decision to challenge owned by issuer)
noChallengeRequested: Prefer no challenge performed
challengeRequested: Prefer challenge is performed
challengeMandated: Local or regional mandates meaning a challenge must be performed. For SCA mandated countries you should use `challengeMandated` in the authentication request as part of the first CIT payment in an MIT series
noChallengeRequestedTRAPerformed: Prefer no challenge performed due to an exemption to SCA. Only use this when Transaction Risk Analysis (TRA) has been performed using an approved third party vendor and an SCA exemption has been recommended for the authentication.
windowSize:
default: 390x400
enum:
- 390x400
- 250x400
- 500x600
- 600x400
- fullPage
type: string
description: Specify the challenge window size (width x height) that the issuer should use.
riskData:
type: object
description: Object containing additional risk data.
properties:
account:
type: object
description: Object containing all customer account related risk data.
properties:
previousSuspiciousActivity:
type: boolean
description: Whether there is a record of previous suspicious activity.
type:
enum:
- guestUser
- registeredUser
- federatedAccount
- issuerCredentials
- thirdPartyAuthentication
- fidoAuthenticator
type: string
description: Type of account the current customer has.
x-enumDescriptions:
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
email:
maxLength: 128
minLength: 3
pattern: ^.+@.+$
type: string
description: The customer's email address. We recommend you provide at least one of either `transaction.phoneNumber` or `account.email`
history:
type: object
description: Object containing customer's account history.
properties:
createdAt:
type: string
format: date
description: When the account was created. Provide in ISO 8601 format.
example: '2019-11-18'
modifiedAt:
type: string
format: date
description: When the account was last modified. Provide in ISO 8601 format.
example: '2020-05-12'
passwordModifiedAt:
type: string
format: date
description: When the account password was last changed. Provide in ISO 8601 format.
example: '2021-03-15'
paymentAccountEnrolledAt:
type: string
format: date
description: Date the payment account was added to the cardholder account. Provide in ISO 8601 format.
example: '2021-06-20'
transaction:
type: object
description: Object containing all customer transaction related risk data.
properties:
reorder:
type: boolean
description: If this is a repeat of a previous order.
preOrderDate:
type: string
format: date
description: Expected date that a pre-ordered purchase will be available. Provide in ISO 8601 format.
example: '2021-12-25'
firstName:
maxLength: 22
minLength: 1
type: string
description: Customer's first name.
lastName:
maxLength: 22
minLength: 1
type: string
description: Customer's last name.
phoneNumber:
maxLength: 20
minLength: 4
pattern: ^[0-9]*$
type: string
description: Customer's phone number.
history:
type: object
description: Object containing details of the last transaction.
properties:
attemptsLastDay:
maximum: 999
minimum: 0
type: integer
description: Number of transactions (successful or abandoned) for this cardholder account within the last 24 hours.
attemptsLastYear:
maximum: 999
minimum: 0
type: integer
description: Number of transactions (successful or abandoned) for this cardholder account within the last year.
completedLastSixMonths:
maximum: 9999
minimum: 0
type: integer
description: Number of purchases with this customer account during the previous six months.
addCardsLastDay:
maximum: 999
minimum: 0
type: integer
description: Number of attempts to add a card in the last 24hrs.
shippingAddressFirstUsedAt:
type: string
format: date
description: When the shipping address used for the transaction was first used. Provide in ISO 8601 format.
example: '2021-06-20'
giftCardsPurchase:
type: object
description: Object containing information on whether the order is being used to purchase a gift card.
properties:
totalValue:
required:
- amount
- currency
type: object
description: Object containing information on value of the gift cards being purchase.
properties:
amount:
maximum: 99999999999
minimum: 0
type: integer
description: The amount being placed on the gift card. If provided, must include `totalValue.currency`.
currency:
maxLength: 3
minLength: 3
pattern: ^[A-Z]{3}$
type: string
description: The three digit currency code. If provided must include `totalValue.amount`.
quantity:
maximum: 99
minimum: 0
type: integer
description: The number of gift cards being purchased.
shipping:
type: object
description: Object containing all data related to how the order will be shipped.
properties:
nameMatchesAccountName:
type: boolean
description: If customer name on account is identical to the shipping name.
method:
enum:
- billingAddress
- verifiedAddress
- otherAddress
- store
- digital
- unshippedTickets
- other
type: string
description: Field containing information on shipping method chosen by customer.
x-enumDescriptions:
billingAddress: Ship to customer's 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
timeFrame:
enum:
- electronic
- twoDaysPlus
- nextDay
- sameDay
type: string
description: Timeframe chosen by customer for delivery.
email:
maxLength: 128
minLength: 3
pattern: ^.+@.+$
type: string
description: The email address used for an electronic delivery.
address:
type: object
required:
- address1
- city
- postalCode
- countryCode
- stateCode
description: An object containing the shipping address information.
properties:
address1:
type: string
maxLength: 80
minLength: 1
description: Shipping address line 1
address2:
type: string
maxLength: 80
minLength: 1
description: Shipping address line 2
address3:
type: string
maxLength: 80
minLength: 1
description: Shipping address line 3
postalCode:
type: string
maxLength: 15
minLength: 1
description: Postcode of shipping address
city:
maxLength: 15
type: string
description: Shipping address city
countryCode:
type: string
maxLength: 2
minLength: 2
description: Shipping address country code
stateCode:
type: string
maxLength: 2
minLength: 1
description: Shipping address state. Should only be provided following the `ISO-3611-2` two-character sub division (e.g.“CA” for California).
phoneNumber:
type: string
maxLength: 20
minLength: 4
pattern: ^[0-9]*$
description: Shipping recipient's phone number.
3DS_deviceDataInitialize_502_response:
required:
- message
- errorName
type: object
properties:
path:
type: string
maxLength: 2048
minLength: 1
description: The request URI path
status:
maxLength: 3
minLength: 3
type: integer
description: The HTTP status returned from server
message:
type: string
maxLength: 2048
minLength: 1
description: The error description message
errorName:
type: string
maxLength: 2048
minLength: 1
description: The unique error name
_links:
$ref: '#/components/schemas/links'
3DS_authenticate_200_response_unavailable:
title: unavailable
required:
- outcome
type: object
properties:
outcome:
enum:
- alreadyAuthenticated
- authenticated
- authenticationFailed
- authenticationOutage
- bypassed
- challenged
- notEnrolled
- signatureFailed
- unavailable
type: string
description: The outcome of the authentication request.
transactionReference:
maxLength: 64
minLength: 1
type: string
description: A unique reference for authentication that was passed in the request.
_links:
$ref: '#/components/schemas/links'
enrolled:
maxLength: 1
minLength: 1
type: string
description: "Status of authentication eligibility. \n\n- `Y` - Bank is participating in 3DS\n- `N` - Bank is not participating in 3DS\n- `U` - The Directory Server (DS) or Access Control Server (ACS) were not available at the time of the request\n- `B` - Merchant authentication rule is triggered to bypass authentication (3DS premium only)"
status:
maxLength: 2
minLength: 1
type: string
description: "Indicates the outcome of the authentication or verification request. \n\n- `Y` - Successful authentication\n- `N` - Failed authentication\n- `U` - Unable to complete authentication\n- `A` - Successful attempts authentication\n- `C` - Challenged authentication\n- `R` - Authentication rejected (merchant _must not_ submit for authorization)\n- `I` - Exemption acknowledged"
3DS_deviceDataInitialize_200_response:
required:
- outcome
- transactionReference
type: object
properties:
outcome:
type: string
enum:
- initialized
- alreadyAuthenticated
description: Outcome of the device data initialization request
transactionReference:
maxLength: 64
minLength: 1
type: string
description: A unique reference for authentication. For example, e-commerce order code.
deviceDataCollection:
$ref: '#/components/schemas/deviceDataCollection'
_links:
$ref: '#/components/schemas/links'
3DS_authenticate_200_response:
title: authenticated
required:
- outcome
type: object
properties:
outcome:
enum:
- alreadyAuthenticated
- authenticated
- authenticationFailed
- authenticationOutage
- bypassed
- challenged
- notEnrolled
- signatureFailed
- unavailable
type: string
description: The outcome of the authentication request.
transactionReference:
maxLength: 64
minLength: 1
type: string
description: A unique reference for authentication that was passed in the request.
acsTransactionId:
$ref: '#/components/schemas/acsTransactionId'
status:
$ref: '#/components/schemas/status'
enrolled:
$ref: '#/components/schemas/enrolled'
authentication:
$ref: '#/components/schemas/authentication'
_links:
$ref: '#/components/schemas/links'
3DS_verify_400_response:
required:
- message
- errorName
type: object
properties:
path:
type: string
maxLength: 2048
minLength: 1
description: The request URI path
status:
maxLength: 3
minLength: 3
type: integer
description: The HTTP status returned from server
message:
type: string
maxLength: 2048
minLength: 1
description: The error description message
errorName:
type: string
maxLength: 2048
minLength: 1
description: The unique error name
headerName:
type: string
maxLength: 2048
minLength: 1
description: The name of the header containing invalid value
allowedMethods:
type: array
description: List of HTTP methods that are allowed
items:
type: string
validationErrors:
description: Object containing details of validation errors occurred
type: array
items:
$ref: '#/components/schemas/validation_errors'
_links:
$ref: '#/components/schemas/links'
3DS_verify_200_response:
title: authenticated
type: object
properties:
outcome:
enum:
- authenticated
- authenticationFailed
- unavailable
- signatureFailed
type: string
description: Outcome of the previously posted authentication request.
acsTransactionId:
$ref: '#/components/schemas/acsTransactionId'
status:
$ref: '#/components/schemas/status'
enrolled:
$ref: '#/components/schemas/enrolled'
authentication:
$ref: '#/components/schemas/authentication'
transactionReference:
maxLength: 64
minLength: 1
type: string
description: A unique reference for authentication that was passed in the request.
_links:
$ref: '#/components/schemas/links'
deviceDataCollection:
required:
- jwt
- url
type: object
description: Object containing device data collection related information
properties:
jwt:
maxLength: 2048
minLength: 1
type: string
description: A digitally signed token that contains additional details required for DDC.
url:
maxLength: 2048
minLength: 1
type: string
description: A `POST` action on the DDC form. Used to redirect to the issuers DDC page.
bin:
maxLength: 6
minLength: 6
type: string
description: First six digits of the card number (Bank Identification Number), used as part of DDC. Returned if a token resource, network payment token or card number is included in the request.
3DS_authenticate_503_response:
required:
- message
- errorName
type: object
properties:
path:
type: string
maxLength: 2048
minLength: 1
description: The request URI path
status:
maxLength: 3
minLength: 3
type: integer
description: The HTTP status returned from server
message:
type: string
maxLength: 2048
minLength: 1
description: The error description message
errorName:
type: string
maxLength: 2048
minLength: 1
description: The unique error name
_links:
$ref: '#/components/schemas/links'
3DS_authenticate_200_response_authentication_outage:
title: authenticationOutage
required:
- outcome
type: object
properties:
outcome:
enum:
- alreadyAuthenticated
- authenticated
- authenticationFailed
- authenticationOutage
- bypassed
- challenged
- notEnrolled
- signatureFailed
- unavailable
type: string
description: The outcome of the authentication request.
transactionReference:
maxLength: 64
minLength: 1
type: string
description: A unique reference for authentication that was passed in the request.
_links:
$ref: '#/components/schemas/links'
card_networktoken:
required:
- type
- tokenNumber
- cardExpiryDate
type: object
properties:
type:
type: string
format: card/networkToken
description: An identifier for the `paymentInstrument` being used.
cardExpiryDate:
required:
- month
- year
type: object
description: Object containing card expiry information
properties:
month:
maximum: 12
minimum: 1
type: integer
description: Card expiry month
year:
maximum: 9999
minimum: 1
type: integer
description: Card expiry year
tokenNumber:
maxLength: 19
minLength: 10
pattern: ^[0-9]*$
type: string
description: The network token number
cardHolderName:
$ref: '#/components/schemas/cardHolderName'
billingAddress:
$ref: '#/components/schemas/billingAddress'
links:
title: Links
type: object
additionalProperties: true
authenticationResponseCartesBancaires:
type: object
description: Object that contains authentication related information.
properties:
version:
$ref: '#/components/schemas/version'
eci:
$ref: '#/components/schemas/eci'
authenticationValue:
$ref: '#/components/schemas/authenticationValue'
transactionId:
$ref: '#/components/schemas/transactionId'
cryptogramAlgorithm:
maxLength: 99999
minLength: 1
type: string
description: Indicates the algorithm used to generate the cryptogram. __Returned for Cartes Bancaires authentications only__ and must be applied in the following authorization request.
challengePreference:
maxLength: 64
minLength: 1
type: string
description: 'Indicates the preferred challenge behavior. __Returned for Cartes Bancaires authentications only__ and must be applied in the following authorization request.
- `noPreference`
- `noChallengeRequested`
- `challengeRequested`
- `challengeMandated`
- `noChallengeRequestedTRAPerformed`
'
authenticationFlow:
maxLength: 64
minLength: 1
enum:
- challenge
- frictionless
type: string
description: Indicates which flow the customer has been directed to. __Returned for Cartes Bancaires authentications only__ and must be applied in the following authorization request.
statusReason:
maxLength: 2
minLength: 1
type: string
description: Provides further information relating to the outcome of the authentication. Returned for failed authentications only. __Returned for Cartes Bancaires authentications only.__
cancellationIndicator:
maxLength: 2
minLength: 0
type: string
description: 'An indicator as to why the authentication was cancelled. __Returned for Cartes Bancaires authentications only.__
- `01` - Cardholder selected cancel
- `02` - Reserved for future use
- `03` - Authentication timed out
- `04` and `05` - Authentication timed out at ACS provider
- `06` - Transaction error
- `07` - Unknown
- `08` - Transaction timed out at SDK
'
networkScore:
maxLength: 2
minLength: 0
type: string
description: The global score calculated by the Cartes Bancaires scoring platform. __Returned for Cartes Bancaires authentications only__.
brand:
maxLength: 64
minLength: 0
type: string
description: The card brand used in the authentication. __Returned for Cartes Bancaires authentications only__ and must be applied in the following authorization.
3DS_verify_200_response_failed:
title: authenticationFailed
type: object
properties:
outcome:
enum:
- authenticated
- authenticationFailed
- unavailable
- signatureFailed
type: string
description: Outcome of the previously posted authentication request.
authentication:
$ref: '#/components/schemas/authentication'
transactionReference:
maxLength: 64
minLength: 1
type: string
description: A unique reference for authentication that was passed in the request.
acsTransactionId:
$ref: '#/components/schemas/acsTransactionId'
status:
$ref: '#/components/schemas/status'
enrolled:
$ref: '#/components/schemas/enrolled'
_links:
$ref: '#/components/schemas/links'
card_front:
required:
- type
- cardNumber
- cardExpiryDate
type: object
properties:
type:
type: string
format: card/front
description: An identifier for the `paymentInstrument` being used.
cardHolderName:
$ref: '#/components/schemas/cardHolderName'
cardExpiryDate:
required:
- month
- year
type: object
description: Object containing card expiry information
properties:
month:
maximum: 12
minimum: 1
type: integer
description: Card expiry month
year:
maximum: 9999
minimum: 1
type: integer
description: Card expiry year
cardNumber:
maxLength: 19
minLength: 10
pattern: ^[0-9]*$
type: string
description: Clear card number (PAN)
billingAddress:
$ref: '#/components/schemas/billingAddress'
validation_errors:
type: object
required:
- errorName
- jsonPath
- message
properties:
errorName:
maxLength: 2048
minLength: 1
type: string
description: Unique name of the validation error
jsonPath:
maxLength: 2048
minLength: 1
type: string
description: Location of the field in request body for which the error occurred
message:
maxLength: 2048
minLength: 1
type: string
description: Error description message
3DS_authenticate_200_response_cartes_bancaires:
title: authenticated (Cartes Bancaires)
required:
- outcome
type: object
properties:
outcome:
enum:
- alreadyAuthenticated
- authenticated
- authenticationFailed
- authenticationOutage
- bypassed
- challenged
- notEnrolled
- signatureFailed
- unavailable
type: string
description: The outcome of the authentication request.
transactionReference:
maxLength: 64
minLength: 1
type: string
description: A unique reference for authentication that was passed in the request.
acsTransactionId:
$ref: '#/components/schemas/acsTransactionId'
status:
$ref: '#/components/schemas/status'
enrolled:
$ref: '#/components/schemas/enrolled'
authentication:
$ref: '#/components/schemas/authenticationResponseCartesBancaires'
_links:
$ref: '#/components/schemas/links'
description: Shipping recipient's phone number.
transactionReference:
maxLength: 64
minLength: 1
pattern: ^[-A-Za-z0-9_!@#$%()*=.:;?\[\]{}~`/+]*$
type: string
description: A unique reference for authentication. For example, e-commerce order code. Use the same transactionReference across all 3 potential request types (deviceDataInitialization, authentication, verification).
merchant:
required:
- entity
type: object
description: An object that contains information about the merchant and API level configuration.
properties:
entity:
maxLength: 64
minLength: 1
pattern: ^[A-Za-z0-9 ]*$
type: string
description: Used to route the request in Access Worldpay, created as part of on-boarding.
3DS_deviceDataInitialize_503_response:
required:
- message
- errorName
type: object
properties:
path:
type: string
maxLength: 2048
minLength: 1
description: The request URI path
status:
maxLength: 3
minLength: 3
type: integer
description: The HTTP status returned from server
message:
type: string
maxLength: 2048
minLength: 1
description: The error description message
errorName:
type: string
maxLength: 2048
minLength: 1
description: The unique error name
_links:
$ref: '#/components/schemas/links'
transactionId:
maxLength: 64
minLength: 1
type: string
description: Directory server transaction Id, if provided should be used in the payment authorization authentication object
eci:
maxLength: 2
minLength: 1
type: string
description: "Electronic Commerce Indicator (ECI). Indicates the outcome of the 3DS authentication. \n\n| ECI | Meaning | \n|---|---| \n| 02 or 05 | Fully Authenticated Transaction | \n| 01 or 06 | Attempted Authentication Transaction | \n| 00 or 07 | Non 3-D Secure Transaction | \n\n| Scheme | Value | \n|---|---| \n| Mastercard | 02, 01, 00 |\n| Visa | 05, 06, 07 |\n| Amex | 05, 06, 07 | \n| JCB | 05, 06, 07 |\n| Diners | 05, 06, 07 |"
version:
maxLength: 10
minLength: 1
type: string
description: The version of 3DS used to process the transaction.
acsTransactionId:
maxLength: 36
minLength: 1
type: string
description: An identifier assigned by the Access Control Server (ACS) to identify a single transaction. Used primarily for Mastercard 3RI subsequent transactions to link the subsequent transaction back to a previous cardholder authentication. Can be disregarded unless otherwise needed.
3DS_deviceDataInitialize:
required:
- transactionReference
- merchant
type: object
properties:
transactionReference:
$ref: '#/components/schemas/transactionReference'
merchant:
$ref: '#/components/schemas/merchant'
paymentInstrument:
oneOf:
- $ref: '#/components/schemas/card_front'
- $ref: '#/components/schemas/card_tokenized'
- $ref: '#/components/schemas/card_networktoken'
- $ref: '#/components/schemas/card_wallet_googlepay'
discriminator:
mapping:
card/front: '#/components/schemas/card_front'
card/tokenized: '#/components/schemas/card_tokenized'
card/networkToken: '#/components/schemas/card_networktoken'
card/wallet+googlepay: '#/components/schemas/card_wallet_googlepay'
propertyName: type
card_tokenized:
required:
- type
- href
type: object
properties:
type:
type: string
format: card/tokenized
description: An identifier for the `paymentInstrument` being used.
href:
minLength: 1
type: string
description: An `http` address that contains your link to an Access Token
3DS_verify:
required:
- transactionReference
- challenge
- merchant
type: object
properties:
transactionReference:
$ref: '#/components/schemas/transactionReference'
merchant:
required:
- entity
type: object
description: An object that contains information about the merchant and API level configuration.
properties:
entity:
maxLength: 64
minLength: 1
pattern: ^[A-Za-z0-9 ]*$
type: string
description: Used to route the request in Access Worldpay, created as part of on-boarding.
challenge:
required:
- reference
type: object
description: Object containing challenge related information in case of a "challenged" flow
properties:
reference:
maxLength: 20
minLength: 20
pattern: (^[A-Za-z0-9]*$)
type: string
description: The challenge reference obtained from the previous authentication request, in case the customer was redirected to a "challenged" flow.
billingAddress:
required:
- address1
- city
- postalCode
- countryCode
type: object
description: An object containing the billing address information.
properties:
city:
maxLength: 15
minLength: 1
type: string
description: Billing address city
address1:
maxLength: 80
minLength: 1
type: string
description: Billing address line 1
postalCode:
maxLength: 15
minLength: 1
type: string
description: Billing address postal code, [See country codes with optional postalCode](/products/reference/supported-countries-currencies#postalcode-optional)
countryCode:
maxLength: 2
minLength: 2
pattern: ^[A-Z]{2}$
type: string
description: Billing address country code
state:
maxLength: 30
minLength: 1
type: string
description: Billing address state. Should only be provided following the `ISO-3611-2` two-character sub division (e.g.“CA” for California). We recommend you provide this for US and China addresses.
address2:
maxLength: 80
type: string
description: Billing address line 2
address3:
maxLength: 80
type: string
description: Billing address line 3
cardHolderName:
maxLength: 255
minLength: 1
type: string
description: The name on your customer's card. This is not a mandatory field, however we recommend that you supply this to improve authentication rates.
3DS_authenticate_challenged_200_response:
title: challenged
required:
- outcome
type: object
properties:
outcome:
enum:
- alreadyAuthenticated
- authenticated
- authenticationFailed
- authenticationOutage
- bypassed
- challenged
- notEnrolled
- signatureFailed
- unavailable
type: string
description: The outcome of the authentication request.
transactionReference:
maxLength: 64
minLength: 1
type: string
description: A unique reference for authentication that was passed in the request.
authentication:
type: object
description: Object that contains authentication related information.
properties:
version:
$ref: '#/components/schemas/version'
challenge:
$ref: '#/components/schemas/challengeResponse'
_links:
$ref: '#/components/schemas/links'
3DS_authenticate_502_response:
required:
- message
- errorName
type: object
properties:
path:
type: string
maxLength: 2048
minLength: 1
description: The request URI path
status:
maxLength: 3
minLength: 3
type: integer
description: The HTTP status returned from server
message:
type: string
maxLength: 2048
minLength: 1
description: The error description message
errorName:
type: string
maxLength: 2048
minLength: 1
description: The unique error name
_links:
$ref: '#/components/schemas/links'
card_wallet_googlepay:
required:
- type
- walletToken
type: object
properties:
type:
enum:
- card/wallet+googlepay
type: string
walletToken:
type: string
description: The encrypted wallet token returned by Google
example: '{"protocolVersion":"ECv1","signature":"MEQCIH6Q4OwQ0jAceFEkGF0JID6sJNXxOEi4r+mA7biRxqBQAiAondqoUpU/bdsrAOpZIsrHQS9nwiiNwOrr24RyPeHA0Q\u003d\u003d","signedMessage":"{\"tag\":\"jpGz1F1Bcoi/fCNxI9n7Qrsw7i7KHrGtTf3NrRclt+U\\u003d\",\"ephemeralPublicKey\":\"BJatyFvFPPD21l8/uLP46Ta1hsKHndf8Z+tAgk+DEPQgYTkhHy19cF3h/bXs0tWTmZtnNm+vlVrKbRU9K8+7cZs\\u003d\",\"encryptedMessage\":\"mKOoXwi8OavZ\"}"}'
billingAddress:
required:
- postalCode
- countryCode
type: object
description: Contains the billing address information.
properties:
address1:
type: string
description: First line of the address. Required if `city` is provided.
address2:
type: string
description: Second line of the address.
address3:
type: string
description: Third line of the address.
city:
type: string
description: City. Required if `address1` is provided.
postalCode:
type: string
description: Post code. Required, but an empty value can be provided for specific countries (e.g., `IE`).
state:
type: string
description: State/province in max 3 characters.
countryCode:
type: string
description: Must be provided in [ISO 3166-1 Alpha-2 format](/products/reference/supported-countries-currencies#iso-country-codes).
challengeResponse:
type: object
description: Object containing challenge related information in case of a "challenged" flow
properties:
reference:
maxLength: 20
minLength: 1
type: string
description: This links the authentication response to the subsequent challenge form and verification request.
url:
maxLength: 2048
minLength: 1
type: string
description: POST action on the challenge form. Used to redirect to the issuers challenge page as part of the challenge form.
jwt:
maxLength: 2048
minLength: 1
type: string
description: A digitally signed token that contains additional details, such as the URL to return to after the challenge screen. Expires in `10` minutes on Try and `30 sec` on Live
payload:
maxLength: 2048
minLength: 1
type: string
description: JSON container with extra data required for the challenge. This is used by the native SDK (iOS/Android) only.
3DS_deviceDataInitialize_400_response:
required:
- message
- errorName
type: object
properties:
path:
type: string
maxLength: 2048
minLength: 1
description: The request URI path
status:
maxLength: 3
minLength: 3
type: integer
description: The HTTP status returned from server
message:
type: string
maxLength: 2048
minLength: 1
description: The error description message
errorName:
type: string
maxLength: 2048
minLength: 1
description: The unique error name
headerName:
type: string
maxLength: 2048
minLength: 1
description: The name of the header containing invalid value
allowedMethods:
type: array
description: List of HTTP methods that are allowed
items:
type: string
validationErrors:
description: Object containing details of validation errors occurred
type: array
items:
$ref: '#/components/schemas/validation_errors'
_links:
$ref: '#/components/schemas/links'
3DS_verify_200_response_signature_failed:
title: signatureFailed
type: object
properties:
outcome:
enum:
- authenticated
- authenticationFailed
- unavailable
- signatureFailed
type: string
description: Outcome of the previously posted authentication request.
authentication:
$ref: '#/components/schemas/authentication'
transactionReference:
maxLength: 64
minLength: 1
type: string
description: A unique reference for authentication that was passed in the request.
_links:
$ref: '#/components/schemas/links'
authentication:
type: object
description: Object that contains authentication related information.
properties:
version:
$ref: '#/components/schemas/version'
eci:
$ref: '#/components/schemas/eci'
authenticationValue:
$ref: '#/components/schemas/authenticationValue'
transactionId:
$ref: '#/components/schemas/transactionId'
3DS_authenticate_200_response_bypassed:
title: bypassed
required:
- outcome
type: object
properties:
outcome:
enum:
- alreadyAuthenticated
- authenticated
- authenticationFailed
- authenticationOutage
- bypassed
- challenged
- notEnrolled
- signatureFailed
- unavailable
type: string
description: The outcome of the authentication request.
transactionReference:
maxLength: 64
minLength: 1
type: string
description: A unique reference for authentication that was passed in the request.
acsTransactionId:
$ref: '#/components/schemas/acsTransactionId'
status:
$ref: '#/components/schemas/status'
enrolled:
$ref: '#/components/schemas/enrolled'
authentication:
$ref: '#/components/schemas/authentication'
authenticationValue:
maxLength: 64
minLength: 1
type: string
description: "A cryptographic value that provides evidence of the outcome of a 3DS verification. \n- Visa - Cardholder Authentication Verification Value (CAVV)\n- Mastercard - Universal Cardholder Authentication Field (UCAF)\n"
3DS_authenticate_400_response:
required:
- message
- errorName
type: object
properties:
path:
type: string
maxLength: 2048
minLength: 1
description: The request URI path
status:
maxLength: 3
minLength: 3
type: integer
description: The HTTP status returned from server
message:
type: string
maxLength: 2048
minLength: 1
description: The error description message
errorName:
type: string
maxLength: 2048
minLength: 1
description: The unique error name
headerName:
type: string
maxLength: 2048
minLength: 1
description: The name of the header containing invalid value
allowedMethods:
type: array
description: List of HTTP methods that are allowed
items:
type: string
validationErrors:
description: Object containing details of validation errors occurred
type: array
items:
$ref: '#/components/schemas/validation_errors'
_links:
$ref: '#/components/schemas/links'
3DS_authenticate_200_response_authentication_failed:
title: authenticationFailed
required:
- outcome
type: object
properties:
outcome:
enum:
- alreadyAuthenticated
- authenticated
- authenticationFailed
- authenticationOutage
- bypassed
- challenged
- notEnrolled
- signatureFailed
- unavailable
type: string
description: The outcome of the authentication request.
transactionReference:
maxLength: 64
minLength: 1
type: string
description: A unique reference for authentication that was passed in the request.
acsTransactionId:
$ref: '#/components/schemas/acsTransactionId'
status:
$ref: '#/components/schemas/status'
enrolled:
$ref: '#/components/schemas/enrolled'
authentication:
$ref: '#/components/schemas/authentication'
_links:
$ref: '#/components/schemas/links'
examples:
authentication-authentication-failed:
description: Issuer failed the authentication without providing the option for a challenge
value:
outcome: authenticationFailed
transactionReference: Memory265-13/08/1876
acsTransactionId: fe007a6e-315f-4cdf-98ca-28a9e40e3581
status: N
enrolled: Y
authentication:
version: 2.1.0
eci: '07'
transactionId: c5b808e7-1de1-4069-a17b-f70d3b3b1645
_links:
3ds:authenticate:
href: https://try.access.worldpay.com/verifications/customers/3ds/authentication
curies:
- href: https://try.access.worldpay.com/rels/verifications/customers/3ds/{rel}
templated: true
name: 3ds
verification-unavailable:
description: An example of a verification request to return the 3DS authentication data
value:
outcome: unavailable
transactionReference: Memory265-13/08/1876
_links:
3ds:authenticate:
href: https://try.access.worldpay.com/verifications/customers/3ds/authentication
3ds:verify:
href: https://try.access.worldpay.com/verifications/customers/3ds/verification
curies:
- href: https://try.access.worldpay.com/rels/verifications/customers/3ds/{rel}
templated: true
name: 3ds
ddc-jwt-bin:
description: Initialize the device data collection using the card number, worldpay token or network token
value:
outcome: initialized
transactionReference: Memory265-13/08/1876
deviceDataCollection:
jwt: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJPcmdVbml0SWQiOiJPcmdVbml0IiwiaXNzIjoiYXBpSWQiLCJleHAiOjE1NjI5MjMzNDYsImlhdCI6MTU2MjkyMzQwNiwianRpIjoiYTAzMWVhOGEtN2E0Zi00YTQwLWI1NjMtOTUzMzYzMzVhZGNmIn0.0IK74OIXBxFsxqeOURJz1TFnz14ZTbFJTdTWo9cHUJQ
url: https://ddcUrl.example.com
bin: '555555'
_links:
3ds:authenticate:
href: https://try.access.worldpay.com/verifications/customers/3ds/authentication
curies:
- href: https://try.access.worldpay.com/rels/verifications/customers/3ds/{rel}
templated: true
name: 3ds
authentication-token:
description: An example of a 3DS2 Authentication request containing a token which results in an authenticated response
value:
transactionReference: Memory265-13/08/1876
merchant:
entity: default
overrideName: Baskerville Sanctuary
acquirerId: '01234567'
instruction:
paymentInstrument:
type: card/tokenized
href: https://try.access.worldpay.com/tokens/MTIzNDU2Nzg5MDEyMzQ1Ng
value:
currency: GBP
amount: 250
deviceData:
collectionReference: 0_3XXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXX6b5
acceptHeader: text/html
userAgentHeader: Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:47.0)
browserLanguage: en-GB
browserJavaEnabled: true
browserColorDepth: '15'
browserScreenHeight: 1200
browserScreenWidth: 900
timeZone: '-300'
browserJavascriptEnabled: true
ipAddress: 192.0.0.0
challenge:
windowSize: 600x400
preference: noPreference
returnUrl: http://payment.example.com
riskData:
account:
previousSuspiciousActivity: false
type: registeredUser
email: test@test.com
history:
createdAt: '2019-11-18'
modifiedAt: '2019-11-18'
passwordModifiedAt: '2019-10-15'
paymentAccountEnrolledAt: '2019-11-18'
transaction:
reorder: true
preOrderDate: '2019-11-18'
firstName: John
lastName: Appleseed
phoneNumber: '00000000000'
history:
attemptsLastDay: 2
attemptsLastYear: 6
completedLastSixMonths: 6
addCardsLastDay: 5
shippingAddressFirstUsedAt: '2018-09-18'
giftCardsPurchase:
totalValue:
currency: GBP
amount: 10
quantity: 4
shipping:
nameMatchesAccountName: false
method: verifiedAddress
timeFrame: nextDay
email: sherlock.holmes@example.com
address:
address1: Disneyland
address2: Disneyland Drive
address3: Adventure Park
postalCode: DL1 2CA
city: Anaheim
stateCode: CA
countryCode: GB
phoneNumber: 01911234321
verification-signature-failed:
description: An example of a verification request to return the 3DS authentication data
value:
outcome: signatureFailed
transactionReference: Memory265-13/08/1876
authentication:
version: 1.0.2
eci: '02'
_links:
3ds:authenticate:
href: https://try.access.worldpay.com/verifications/customers/3ds/authentication
curies:
- href: https://try.access.worldpay.com/rels/verifications/customers/3ds/{rel}
templated: true
name: 3ds
already-authenticated:
description: The token is already SCA compliant.
value:
outcome: alreadyAuthenticated
transactionReference: Memory265-13/08/1876
authentication-bypassed:
description: Bypass the authentication flow using Cardinal rules engine configuration. Part of 3DS premium
value:
outcome: bypassed
transactionReference: Memory265-13/08/1876
acsTransactionId: fe007a6e-315f-4cdf-98ca-28a9e40e3581
status: Y
enrolled: B
authentication:
version: 2.1.0
eci: '07'
transactionId: c5b808e7-1de1-4069-a17b-f70d3b3b1645
authentication-googlepay:
description: Authentication request with Google Pay token
value:
transactionReference: Memory265-13/08/1876
merchant:
entity: default
overrideName: Baskerville Sanctuary
acquirerId: '01234567'
instruction:
paymentInstrument:
type: card/wallet+googlepay
walletToken: '{"protocolVersion":"ECv1","signature":"MEQCIH6Q4OwQ0jAceFEkGF0JID6sJNXxOEi4r+mA7biRxqBQAiAondqoUpU/bdsrAOpZIsrHQS9nwiiNwOrr24RyPeHA0Q\u003d\u003d","signedMessage":"{\"tag\":\"jpGz1F1Bcoi/fCNxI9n7Qrsw7i7KHrGtTf3NrRclt+U\\u003d\",\"ephemeralPublicKey\":\"BJatyFvFPPD21l8/uLP46Ta1hsKHndf8Z+tAgk+DEPQgYTkhHy19cF3h/bXs0tWTmZtnNm+vlVrKbRU9K8+7cZs\\u003d\",\"encryptedMessage\":\"mKOoXwi8OavZ\"}"}'
value:
currency: GBP
amount: 250
deviceData:
collectionReference: 0_3XXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXX6b5
acceptHeader: text/html
userAgentHeader: Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:47.0)
browserLanguage: en-GB
browserJavaEnabled: true
browserColorDepth: '15'
browserScreenHeight: 1200
browserScreenWidth: 900
timeZone: '-300'
browserJavascriptEnabled: true
ipAddress: 192.0.0.0
challenge:
windowSize: 600x400
preference: noPreference
returnUrl: http://payment.example.com
riskData:
account:
previousSuspiciousActivity: false
type: registeredUser
email: sherlock.holmes@example.com
history:
createdAt: '2019-11-18'
modifiedAt: '2019-11-18'
passwordModifiedAt: '2019-10-15'
paymentAccountEnrolledAt: '2019-11-18'
transaction:
reorder: true
preOrderDate: '2019-11-18'
firstName: Sherlock
lastName: Holmes
phoneNumber: '00000000000'
history:
attemptsLastDay: 2
attemptsLastYear: 6
completedLastSixMonths: 6
addCardsLastDay: 5
shippingAddressFirstUsedAt: '2018-09-18'
giftCardsPurchase:
totalValue:
currency: GBP
amount: 10
quantity: 4
shipping:
nameMatchesAccountName: false
method: verifiedAddress
timeFrame: nextDay
email: sherlock.holmes@example.com
address:
address1: Disneyland
address2: Disneyland Drive
address3: Adventure Park
postalCode: DL1 2CA
city: Anaheim
stateCode: CA
countryCode: GB
phoneNumber: 01911234321
ddc-request:
description: Initialize the device data collection without a payment instrument. Only the JWT is returned.
value:
transactionReference: Memory265-13/08/1876
merchant:
entity: default
authentication-authentication-outage:
description: A downstream service within the 3DS ecosystem is unavailable; you can attempt authorization
value:
outcome: authenticationOutage
transactionReference: Memory265-13/08/1876
_links:
3ds:authenticate:
href: https://try.access.worldpay.com/verifications/customers/3ds/authentication
curies:
- href: https://try.access.worldpay.com/rels/verifications/customers/3ds/{rel}
templated: true
name: 3ds
authentication-unavailable:
description: Error/Timeout whilst attempting authentication
value:
outcome: unavailable
transactionReference: Memory265-13/08/1876
status: U
enrolled: U
_links:
3ds:authenticate:
href: https://try.access.worldpay.com/verifications/customers/3ds/authentication
curies:
- href: https://try.access.worldpay.com/rels/verifications/customers/3ds/{rel}
templated: true
name: 3ds
authentication-card-recommended-native:
description: Minimum recommended key:values for native (iOS/Android) to meet EMVco guidelines and ensure healthy authentication rates. See [How much data to provide](/products/3ds/android-ios/authentication/#how-much-data-to-provide) for details.
value:
transactionReference: Memory265-13/08/1876
merchant:
entity: default
instruction:
paymentInstrument:
type: card/front
cardHolderName: Sherlock Holmes
cardNumber: '4444333322221111'
cardExpiryDate:
month: 5
year: 2035
billingAddress:
address1: 221B Baker Street
address2: Marylebone
address3: Westminster
postalCode: NW1 6XE
city: London
countryCode: GB
value:
currency: GBP
amount: 250
deviceData:
collectionReference: 0_3XXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXX6b5
acceptHeader: text/html
userAgentHeader: Mozilla/5.0 (iPhone14,6; U; CPU iPhone OS 15_4 like Mac OS X) AppleWebKit/602.1.50 (KHTML, like Gecko) Version/10.0 Mobile/19E241 Safari/602.1
ipAddress: 192.0.0.0
challenge:
returnUrl: http://payment.example.com
riskData:
account:
email: sherlock.holmes@example.com
transaction:
firstName: Sherlock
lastName: Holmes
phoneNumber: '00000000000'
verification-authentication-failed:
description: An example of a verification request to return the 3DS authentication data
value:
outcome: authenticationFailed
transactionReference: Memory265-13/08/1876
acsTransactionId: fe007a6e-315f-4cdf-98ca-28a9e40e3581
status: N
enrolled: Y
authentication:
version: 2.2.0
eci: '00'
transactionId: N+en2I5+ZK/kQqk69wXdI8XIPg8=
_links:
3ds:authenticate:
href: https://try.access.worldpay.com/verifications/customers/3ds/authentication
curies:
- href: https://try.access.worldpay.com/rels/verifications/customers/3ds/{rel}
templated: true
name: 3ds
authentication-challenged:
description: Issuer challenge required based on a risk assessment they have performed
value:
outcome: challenged
transactionReference: Memory265-13/08/1876
authentication:
version: 2.1.0
challenge:
reference: '123456789'
url: https://ChallengePageUrl.example.com
jwt: VGhpcyBpcyBhIGJhc2UgNjQgZW5jb2RlZCBleGFtcGxlIG9mIGEgM0RTICJwYXlsb2FkIg==
payload: eyJtZXNzYWdlVHlwZSI6IkNSZXEiLCJtZXNzYWdlVmVyc2lvbiI6IjIuMS4wIiwidGhyZWVE
_links:
3ds:verify:
href: https://try.access.worldpay.com/verifications/customers/3ds/verification
curies:
- href: https://try.access.worldpay.com/rels/verifications/customers/3ds/{rel}
templated: true
name: 3ds
authentication-authenticated:
description: Successful frictionless authentication
value:
outcome: authenticated
transactionReference: Memory265-13/08/1876
acsTransactionId: fe007a6e-315f-4cdf-98ca-28a9e40e3581
status: Y
enrolled: Y
authentication:
version: 2.1.0
authenticationValue: MAAAAAAAAAAAAAAAAAAAAAAAAAA=
eci: '05'
transactionId: c5b808e7-1de1-4069-a17b-f70d3b3b1645
ddc-googlepay:
description: Initialize the DDC using a Google Pay token
value:
transactionReference: Memory265-13/08/1876
merchant:
entity: default
paymentInstrument:
type: card/wallet+googlepay
walletToken: '{"protocolVersion":"ECv1","signature":"MEQCIH6Q4OwQ0jAceFEkGF0JID6sJNXxOEi4r+mA7biRxqBQAiAondqoUpU/bdsrAOpZIsrHQS9nwiiNwOrr24RyPeHA0Q\u003d\u003d","signedMessage":"{\"tag\":\"jpGz1F1Bcoi/fCNxI9n7Qrsw7i7KHrGtTf3NrRclt+U\\u003d\",\"ephemeralPublicKey\":\"BJatyFvFPPD21l8/uLP46Ta1hsKHndf8Z+tAgk+DEPQgYTkhHy19cF3h/bXs0tWTmZtnNm+vlVrKbRU9K8+7cZs\\u003d\",\"encryptedMessage\":\"mKOoXwi8OavZ\"}"}'
authentication-card-recommended-web:
description: Minimum recommended key:values for web integration to meet EMVco guidelines and ensure healthy authentication rates. See [How much data to provide](/products/3ds/web/authentication/#how-much-data-to-provide) for details.
value:
transactionReference: Memory265-13/08/1876
merchant:
entity: default
instruction:
paymentInstrument:
type: card/front
cardHolderName: Sherlock Holmes
cardNumber: '4444333322221111'
cardExpiryDate:
month: 5
year: 2035
billingAddress:
address1: 221B Baker Street
address2: Marylebone
address3: Westminster
postalCode: NW1 6XE
city: London
countryCode: GB
value:
currency: GBP
amount: 250
deviceData:
collectionReference: 0_3XXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXX6b5
acceptHeader: text/html
userAgentHeader: Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:47.0)
browserLanguage: en-GB
browserJavaEnabled: true
browserColorDepth: '15'
browserScreenHeight: 1200
browserScreenWidth: 900
timeZone: '-300'
browserJavascriptEnabled: true
ipAddress: 192.0.0.0
challenge:
returnUrl: http://payment.example.com
riskData:
account:
email: sherlock.holmes@example.com
transaction:
firstName: Sherlock
lastName: Holmes
phoneNumber: '00000000000'
ddc-networktoken:
description: Initialize the device data collection using a Network Payment Token
value:
transactionReference: Memory265-13/08/1876
merchant:
entity: default
paymentInstrument:
type: card/networkToken
tokenNumber: '4444333322221111'
cardExpiryDate:
month: 5
year: 2035
authentication-card:
description: An example of a 3DS2 Authentication request containing card details which results in an authenticated response
value:
transactionReference: Memory265-13/08/1876
merchant:
entity: default
overrideName: Baskerville Sanctuary
acquirerId: '01234567'
instruction:
paymentInstrument:
type: card/front
cardHolderName: Sherlock Holmes
cardNumber: '4444333322221111'
cardExpiryDate:
month: 5
year: 2035
billingAddress:
address1: 221B Baker Street
address2: Marylebone
address3: Westminster
postalCode: NW1 6XE
city: London
countryCode: GB
value:
currency: GBP
amount: 250
deviceData:
collectionReference: 0_3XXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXX6b5
acceptHeader: text/html
userAgentHeader: Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:47.0)
browserLanguage: en-GB
browserJavaEnabled: true
browserColorDepth: '15'
browserScreenHeight: 1200
browserScreenWidth: 900
timeZone: '-300'
browserJavascriptEnabled: true
ipAddress: 192.0.0.0
challenge:
windowSize: 600x400
preference: noPreference
returnUrl: http://payment.example.com
riskData:
account:
previousSuspiciousActivity: false
type: registeredUser
email: sherlock.holmes@example.com
history:
createdAt: '2019-11-18'
modifiedAt: '2019-11-18'
passwordModifiedAt: '2019-10-15'
paymentAccountEnrolledAt: '2019-11-18'
transaction:
reorder: true
preOrderDate: '2019-11-18'
firstName: Sherlock
lastName: Holmes
phoneNumber: '00000000000'
history:
attemptsLastDay: 2
attemptsLastYear: 6
completedLastSixMonths: 6
addCardsLastDay: 5
shippingAddressFirstUsedAt: '2018-09-18'
giftCardsPurchase:
totalValue:
currency: GBP
amount: 10
quantity: 4
shipping:
nameMatchesAccountName: false
method: verifiedAddress
timeFrame: nextDay
email: sherlock.holmes@example.com
address:
address1: Disneyland
address2: Disneyland Drive
address3: Adventure Park
postalCode: DL1 2CA
city: Anaheim
stateCode: CA
countryCode: GB
phoneNumber: 01911234321
verification-request:
description: An example of a verification request to return the 3DS authentication data
value:
transactionReference: Memory265-13/08/1876
merchant:
entity: default
challenge:
reference: 1xoKSqTvmLvhRYBsaE60
verification-authenticated:
description: An example of a verification request to return the 3DS authentication data
value:
outcome: authenticated
transactionReference: Memory265-13/08/1876
acsTransactionId: fe007a6e-315f-4cdf-98ca-28a9e40e3581
status: Y
enrolled: Y
authentication:
version: 2.1.0
authenticationValue: MAAAAAAAAAAAAAAAAAAAAAAAAAA=
eci: '05'
transactionId: c5b808e7-1de1-4069
ddc-token:
description: Initialize the device data collection using a Worldpay Token
value:
transactionReference: Memory265-13/08/1876
merchant:
entity: default
paymentInstrument:
type: card/tokenized
href: https://try.access.worldpay.com/tokens/MTIzNDU2Nzg5MDEyMzQ1Ng
ddc-card:
description: Initialize the device data collection using the card number
value:
transactionReference: Memory265-13/08/1876
merchant:
entity: default
paymentInstrument:
type: card/front
cardHolderName: Sherlock Holmes
cardNumber: '4444333322221111'
cardExpiryDate:
month: 5
year: 2035
authentication-authenticated-cartesbancaires:
description: Successful frictionless authentication (Cartes Bancaires)
value:
outcome: authenticated
transactionReference: Memory265-13/08/1876
acsTransactionId: fe007a6e-315f-4cdf-98ca-28a9e40e3581
status: Y
enrolled: Y
authentication:
version: 2.1.0
authenticationValue: AJkBBkhgQQAAAE4gSEJydQAAAAA=
eci: '05'
transactionId: be122acf-0ba7-4eff-aa5b-fb53e9ad2f87
cryptogramAlgorithm: '1'
challengePreference: challengeMandated
authenticationFlow: frictionless
brand: cartesBancaires
ddc-jwt-only:
description: Initialize the device data collection without a payment instrument. Only the JWT is returned.
value:
outcome: initialized
transactionReference: Memory265-13/08/1876
deviceDataCollection:
jwt: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJPcmdVbml0SWQiOiJPcmdVbml0IiwiaXNzIjoiYXBpSWQiLCJleHAiOjE1NjI5MjMzNDYsImlhdCI6MTU2MjkyMzQwNiwianRpIjoiYTAzMWVhOGEtN2E0Zi00YTQwLWI1NjMtOTUzMzYzMzVhZGNmIn0.0IK74OIXBxFsxqeOURJz1TFnz14ZTbFJTdTWo9cHUJQ
url: https://ddcUrl.example.com
_links:
3ds:authenticate:
href: https://try.access.worldpay.com/verifications/customers/3ds/authentication
curies:
- href: https://try.access.worldpay.com/rels/verifications/customers/3ds/{rel}
templated: true
name: 3ds
authentication-networktoken:
description: An example of a 3DS2 Authentication request containing a network payment token which results in an authenticated response
value:
transactionReference: Memory265-13/08/1876
merchant:
entity: default
overrideName: Baskerville Sanctuary
acquirerId: '01234567'
instruction:
paymentInstrument:
type: card/networkToken
tokenNumber: '4444333322221111'
cardExpiryDate:
month: 5
year: 2035
billingAddress:
address1: 221B Baker Street
address2: Marylebone
address3: Westminster
postalCode: NW1 6XE
city: London
countryCode: GB
value:
currency: GBP
amount: 250
deviceData:
collectionReference: 0_3XXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXX6b5
acceptHeader: text/html
userAgentHeader: Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:47.0)
browserLanguage: en-GB
browserJavaEnabled: true
browserColorDepth: '15'
browserScreenHeight: 1200
browserScreenWidth: 900
timeZone: '-300'
browserJavascriptEnabled: true
ipAddress: 192.0.0.0
challenge:
windowSize: 600x400
preference: noPreference
returnUrl: http://payment.example.com
riskData:
account:
previousSuspiciousActivity: false
type: registeredUser
email: sherlock.holmes@example.com
history:
createdAt: '2019-11-18'
modifiedAt: '2019-11-18'
passwordModifiedAt: '2019-10-15'
paymentAccountEnrolledAt: '2019-11-18'
transaction:
reorder: true
preOrderDate: '2019-11-18'
firstName: Sherlock
lastName: Holmes
phoneNumber: '00000000000'
history:
attemptsLastDay: 2
attemptsLastYear: 6
completedLastSixMonths: 6
addCardsLastDay: 5
shippingAddressFirstUsedAt: '2018-09-18'
giftCardsPurchase:
totalValue:
currency: GBP
amount: 10
quantity: 4
shipping:
nameMatchesAccountName: false
method: verifiedAddress
timeFrame: nextDay
email: sherlock.holmes@example.com
address:
address1: Disneyland
address2: Disneyland Drive
address3: Adventure Park
postalCode: DL1 2CA
city: Anaheim
stateCode: CA
countryCode: GB
phoneNumber: 01911234321
securitySchemes:
BasicAuth:
type: http
scheme: basic