{
  "openapi": "3.0.1",
  "info": {
    "title": "3DS",
    "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 Implementation Manager.\n<br /> <br />\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<br /><br />\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"
    }
  ],
  "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.\n\n",
        "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"
                },
                "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"
                  },
                  "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
                          }
                        ]
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/verifications/customers/3ds/authentication": {
      "post": {
        "summary": "Initiate the 3DS authentication",
        "description": "Authenticate your customer by submitting order and risk data.\n\n",
        "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"
                },
                "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"
                  },
                  "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"
                          }
                        ]
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/verifications/customers/3ds/verification": {
      "post": {
        "summary": "Verify the 3DS challenge response",
        "description": "Verify the results of a challenged authentication.\n\n",
        "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"
                          }
                        ]
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "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."
          }
        }
      },
      "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."
          }
        }
      },
      "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."
      },
      "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."
      },
      "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"
      },
      "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 |"
      },
      "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)"
      },
      "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"
      },
      "transactionId": {
        "maxLength": 64,
        "minLength": 1,
        "type": "string",
        "description": "Directory server transaction Id, if provided should be used in the payment authorization authentication object"
      },
      "version": {
        "maxLength": 10,
        "minLength": 1,
        "type": "string",
        "description": "The version of 3DS used to process the transaction."
      },
      "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"
          }
        }
      },
      "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."
          }
        }
      },
      "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.\n- `noPreference`\n- `noChallengeRequested`\n- `challengeRequested`\n- `challengeMandated`\n- `noChallengeRequestedTRAPerformed`\n"
          },
          "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.__\n- `01` - Cardholder selected cancel\n- `02` - Reserved for future use\n- `03` - Authentication timed out\n- `04` and `05` - Authentication timed out at ACS provider\n- `06` - Transaction error\n- `07` - Unknown\n- `08` - Transaction timed out at SDK\n"
          },
          "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_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"
              }
            ],
            "discriminator": {
              "mapping": {
                "card/front": "#/components/schemas/card_front",
                "card/tokenized": "#/components/schemas/card_tokenized",
                "card/networkToken": "#/components/schemas/card_networktoken"
              },
              "propertyName": "type"
            }
          }
        }
      },
      "3DS_deviceDataInitialize_200_response": {
        "required": [
          "outcome",
          "transactionReference",
          "deviceDataCollection"
        ],
        "type": "object",
        "properties": {
          "outcome": {
            "type": "string",
            "format": "initialized",
            "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_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_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_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"
          }
        }
      },
      "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"
          }
        }
      },
      "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"
          }
        }
      },
      "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_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"
                  }
                ],
                "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"
                  },
                  "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_authenticate_200_response": {
        "title": "authenticated",
        "required": [
          "outcome"
        ],
        "type": "object",
        "properties": {
          "outcome": {
            "enum": [
              "challenged",
              "notEnrolled",
              "unavailable",
              "authenticationFailed",
              "authenticated",
              "signatureFailed",
              "bypassed"
            ],
            "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_authenticate_challenged_200_response": {
        "title": "challenged",
        "required": [
          "outcome"
        ],
        "type": "object",
        "properties": {
          "outcome": {
            "enum": [
              "challenged",
              "notEnrolled",
              "unavailable",
              "authenticationFailed",
              "authenticated",
              "signatureFailed",
              "authenticationOutage",
              "bypassed"
            ],
            "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_200_response_cartes_bancaires": {
        "title": "authenticated (Cartes Bancaires)",
        "required": [
          "outcome"
        ],
        "type": "object",
        "properties": {
          "outcome": {
            "enum": [
              "challenged",
              "notEnrolled",
              "unavailable",
              "authenticationFailed",
              "authenticated",
              "signatureFailed",
              "authenticationOutage",
              "bypassed"
            ],
            "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."
          }
        }
      },
      "3DS_authenticate_200_response_authentication_failed": {
        "title": "authenticationFailed",
        "required": [
          "outcome"
        ],
        "type": "object",
        "properties": {
          "outcome": {
            "enum": [
              "challenged",
              "notEnrolled",
              "unavailable",
              "authenticationFailed",
              "authenticated",
              "signatureFailed",
              "authenticationOutage",
              "bypassed"
            ],
            "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_authenticate_200_response_unavailable": {
        "title": "unavailable",
        "required": [
          "outcome"
        ],
        "type": "object",
        "properties": {
          "outcome": {
            "enum": [
              "challenged",
              "notEnrolled",
              "unavailable",
              "authenticationFailed",
              "authenticated",
              "signatureFailed",
              "authenticationOutage",
              "bypassed"
            ],
            "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"
          }
        }
      },
      "3DS_authenticate_200_response_authentication_outage": {
        "title": "authenticationOutage",
        "required": [
          "outcome"
        ],
        "type": "object",
        "properties": {
          "outcome": {
            "enum": [
              "challenged",
              "notEnrolled",
              "unavailable",
              "authenticationFailed",
              "authenticated",
              "signatureFailed",
              "authenticationOutage",
              "bypassed"
            ],
            "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"
          }
        }
      },
      "3DS_authenticate_200_response_bypassed": {
        "title": "bypassed",
        "required": [
          "outcome"
        ],
        "type": "object",
        "properties": {
          "outcome": {
            "enum": [
              "challenged",
              "notEnrolled",
              "unavailable",
              "authenticationFailed",
              "authenticated",
              "signatureFailed",
              "authenticationOutage",
              "bypassed"
            ],
            "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"
          }
        }
      },
      "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_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_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_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."
              }
            }
          }
        }
      },
      "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"
          }
        }
      },
      "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"
          }
        }
      },
      "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_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"
          }
        }
      },
      "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"
          }
        }
      },
      "links": {
        "title": "Links",
        "type": "object",
        "additionalProperties": true
      },
      "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"
          }
        }
      }
    },
    "securitySchemes": {
      "BasicAuth": {
        "type": "http",
        "scheme": "basic"
      }
    },
    "examples": {
      "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
            }
          }
        }
      },
      "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-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
            }
          }
        }
      },
      "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"
          }
        }
      },
      "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"
              }
            ]
          }
        }
      },
      "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-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"
              }
            }
          }
        }
      },
      "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"
              }
            }
          }
        }
      },
      "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"
              }
            }
          }
        }
      },
      "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"
            }
          }
        }
      },
      "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"
            }
          }
        }
      },
      "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"
          }
        }
      },
      "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"
          }
        }
      },
      "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-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"
              }
            ]
          }
        }
      },
      "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-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-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"
          }
        }
      },
      "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"
          }
        }
      },
      "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"
              }
            ]
          }
        }
      },
      "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"
              }
            ]
          }
        }
      },
      "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"
              }
            ]
          }
        }
      }
    }
  },
  "security": [
    {
      "BasicAuth": []
    }
  ]
}