openapi: 3.0.1
info:
  title: Payments API
  description: >
    __Authentication__


    Set your headers 


    ```   

    Authorization: {your_credentials}    

    Content-Type: application/json    

    WP-Api-Version: 2024-06-01\n

    ```    


    Replace `{your_credentials}` with your base64-encoded Basic Auth username
    and password.  


    __DNS Whitelisting__


    Whitelist the following URLs:    

    * `https://try.access.worldpay.com/`

    * `https://access.worldpay.com/`


    Please ensure you use DNS whitelisting, not explicit IP whitelisting. When
    you make a request within Access Worldpay, you should always cache the
    response returned. 


    __API Collection__


    A full set of API examples based on different scenarios. 


    |&nbsp; | &nbsp; |

    |:----------------:|-------------|

    | <a href="/collections/access/payments/20240601/insomnia_collection.json"
    download="wp-payments-api-insomnia">Download Insomnia Collection </a>  |
    [Setup & environment config](./collections/index.md#instructions) |

    | <a href="/collections/access/payments/20240601/postman_collection.json"
    download="wp-payments-api-postman">Download Postman Collection </a>  |
    [Setup & environment config](./collections/index.md#instructions) |
  contact:
    name: Chamaeleon
  license:
    name: Worldpay
    url: developers.worldpay.com/license
  version: '2024-06-01'
servers:
  - url: https://try.access.worldpay.com
    description: Try
  - url: https://access.worldpay.com
    description: Live
security:
  - BasicAuth: []
paths:
  /api/payments:
    post:
      summary: Submit a payment request
      description: Initiate Payment
      operationId: payment
      parameters:
        - name: WP-Api-Version
          in: header
          description: The API version
          required: true
          schema:
            type: string
            description: The API version
            example: '2024-06-01'
            enum:
              - '2024-06-01'
          example: '2024-06-01'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PaymentRequest'
            examples:
              Card payment:
                $ref: '#/components/examples/card-payment'
              Card payment (auto settlement enabled):
                $ref: '#/components/examples/card-payment-auto-settlement'
              Card payment (with 3DS authentication):
                $ref: '#/components/examples/card-payment-3ds'
              Card payment (with Fraud assessment):
                $ref: '#/components/examples/card-payment-fraud'
              Card payment using Checkout session:
                $ref: '#/components/examples/card-payment-checkout'
              Card payment & store a card (Token):
                $ref: '#/components/examples/store-card-token'
              Use a stored card (Token):
                $ref: '#/components/examples/use-stored-card-token'
              Use a stored card (Token) & Checkout CVC session:
                $ref: '#/components/examples/use-stored-card-checkout-cvc'
              Use Google Pay encrypted payload:
                $ref: '#/components/examples/google-pay-encrypted'
              Use Apple Pay encrypted payload:
                $ref: '#/components/examples/apple-pay-encrypted'
              Setup a subscription payment:
                $ref: '#/components/examples/setup-recurring-subscription'
              Setup a subscription with no initial payment:
                $ref: '#/components/examples/setup-recurring-subscription-zero'
              Setup an installment payment (merchant):
                $ref: '#/components/examples/setup-recurring-installment-merchant'
              Setup an installment payment (Latin America):
                $ref: '#/components/examples/setup-recurring-installment-latam'
              Subsequent subscription payment:
                $ref: '#/components/examples/subsequent-recurring-subscription'
              Subsequent installment payment (merchant):
                $ref: >-
                  #/components/examples/subsequent-recurring-installment-merchant
              Unscheduled payment:
                $ref: '#/components/examples/recurring-unscheduled'
              Store a card only:
                $ref: '#/components/examples/store-card-only-token'
        required: true
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaymentsResponse201'
              examples:
                authorized:
                  $ref: '#/components/examples/authorized-201'
                3dsDeviceDataRequired:
                  $ref: '#/components/examples/3ds-device-data-required-201'
                fraudHighRisk:
                  $ref: '#/components/examples/fs-highrisk'
                refused:
                  $ref: '#/components/examples/refused-201'
        '202':
          description: Accepted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaymentsResponse202'
              examples:
                sentForSettlement:
                  $ref: '#/components/examples/sent-for-settlement-202'
                sentForCancellation:
                  $ref: '#/components/examples/sent-for-cancellation-202'
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationErrorResponse'
              examples:
                Bad request:
                  $ref: '#/components/examples/400'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                Unauthorized:
                  $ref: '#/components/examples/401'
        '404':
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                Not found:
                  $ref: '#/components/examples/404'
        '406':
          description: Not acceptable
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HeaderErrorResponse'
              examples:
                Not acceptable:
                  $ref: '#/components/examples/406'
        '415':
          description: Unsupported media type
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                Unsupported media type:
                  $ref: '#/components/examples/415'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                Internal server error:
                  $ref: '#/components/examples/500'
      x-noTag: noTag
      x-orderingPosition: '1'
  /api/payments/{linkData}/3dsDeviceData:
    post:
      tags:
        - 3DS Actions
      summary: Supply 3DS device data
      description: Gather additional device data
      operationId: supply3dsDeviceData
      parameters:
        - name: linkData
          in: path
          required: true
          schema:
            type: string
        - name: WP-Api-Version
          in: header
          description: The API version
          required: true
          schema:
            type: string
            description: The API version
            example: '2024-06-01'
            enum:
              - '2024-06-01'
          example: '2024-06-01'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DeviceDataRequest'
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeviceDataResponse201'
              examples:
                3dsChallenged:
                  $ref: '#/components/examples/3ds-challenged-201'
                authorized:
                  $ref: '#/components/examples/authorized-3ds-frictionless-201'
                refused:
                  $ref: '#/components/examples/refused-201'
                3dsUnavailable:
                  $ref: '#/components/examples/3ds-unavailable-201'
                3dsAuthenticationFailed:
                  $ref: '#/components/examples/3ds-authentication-failed-201'
        '202':
          description: Accepted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeviceDataResponse202'
              examples:
                sentForSettlement:
                  $ref: '#/components/examples/sent-for-settlement-202'
                sentForCancellation:
                  $ref: '#/components/examples/sent-for-cancellation-202'
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationErrorResponse'
              examples:
                Bad request:
                  $ref: '#/components/examples/400'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                Unauthorized:
                  $ref: '#/components/examples/401'
        '406':
          description: Not acceptable
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HeaderErrorResponse'
              examples:
                Not acceptable:
                  $ref: '#/components/examples/406'
        '415':
          description: Unsupported media type
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                Unsupported media type:
                  $ref: '#/components/examples/415'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                Internal server error:
                  $ref: '#/components/examples/500'
      x-orderingPosition: '2'
  /api/payments/{linkData}/3dsChallenges:
    post:
      tags:
        - 3DS Actions
      summary: Continue with payment after 3DS challenge
      description: Verify authentication challenge
      operationId: complete3dsChallenge
      parameters:
        - name: linkData
          in: path
          required: true
          schema:
            type: string
        - name: WP-Api-Version
          in: header
          description: The API version
          required: true
          schema:
            type: string
            description: The API version
            example: '2024-06-01'
            enum:
              - '2024-06-01'
          example: '2024-06-01'
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ChallengeResponse201'
              examples:
                authorized:
                  $ref: '#/components/examples/authorized-3ds-frictionless-201'
                refused:
                  $ref: '#/components/examples/refused-201'
                3dsUnavailable:
                  $ref: '#/components/examples/3ds-unavailable-201'
                3dsAuthenticationFailed:
                  $ref: '#/components/examples/3ds-authentication-failed-201'
        '202':
          description: Accepted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ChallengeResponse202'
              examples:
                sentForSettlement:
                  $ref: '#/components/examples/sent-for-settlement-202'
                sentForCancellation:
                  $ref: '#/components/examples/sent-for-cancellation-202'
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationErrorResponse'
              examples:
                Bad request:
                  $ref: '#/components/examples/400'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                Unauthorized:
                  $ref: '#/components/examples/401'
        '406':
          description: Not acceptable
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HeaderErrorResponse'
              examples:
                Not acceptable:
                  $ref: '#/components/examples/406'
        '415':
          description: Unsupported media type
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                Unsupported media type:
                  $ref: '#/components/examples/415'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                Internal server error:
                  $ref: '#/components/examples/500'
      x-orderingPosition: '3'
  /api/payments/{linkData}/refunds:
    post:
      tags:
        - Payments Lifecycle
      summary: Submit a payment refund request
      description: Refund a payment
      operationId: refund
      parameters:
        - name: linkData
          in: path
          required: true
          schema:
            type: string
        - name: WP-Api-Version
          in: header
          description: The API version
          required: true
          schema:
            type: string
            description: The API version
            example: '2024-06-01'
            enum:
              - '2024-06-01'
          example: '2024-06-01'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RefundRequest'
      responses:
        '202':
          description: Accepted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RefundResponse'
              examples:
                sentForRefund:
                  $ref: '#/components/examples/sent-for-refund-202'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                Unauthorized:
                  $ref: '#/components/examples/401'
        '404':
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                Not found:
                  $ref: '#/components/examples/404'
        '406':
          description: Not acceptable
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HeaderErrorResponse'
              examples:
                Not acceptable:
                  $ref: '#/components/examples/406'
        '415':
          description: Unsupported media type
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                Unsupported media type:
                  $ref: '#/components/examples/415'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                Internal server error:
                  $ref: '#/components/examples/500'
      x-orderingPosition: '4'
  /api/payments/{linkData}/partialRefunds:
    post:
      tags:
        - Payments Lifecycle
      summary: Submit a payment partial refund request
      description: Partially refund a payment
      operationId: partialRefund
      parameters:
        - name: linkData
          in: path
          required: true
          schema:
            type: string
        - name: WP-Api-Version
          in: header
          description: The API version
          required: true
          schema:
            type: string
            description: The API version
            example: '2024-06-01'
            enum:
              - '2024-06-01'
          example: '2024-06-01'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PaymentsPartialRefundRequest'
            examples:
              sentForPartialRefund:
                $ref: '#/components/examples/partial-refund'
        required: true
      responses:
        '202':
          description: Accepted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PartialRefundResponse'
              examples:
                sentForPartialRefund:
                  $ref: '#/components/examples/sent-for-partial-refund-202'
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationErrorResponse'
              examples:
                Bad request:
                  $ref: '#/components/examples/400'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                Unauthorized:
                  $ref: '#/components/examples/401'
        '404':
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                Not found:
                  $ref: '#/components/examples/404'
        '406':
          description: Not acceptable
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HeaderErrorResponse'
              examples:
                Not acceptable:
                  $ref: '#/components/examples/406'
        '415':
          description: Unsupported media type
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                Unsupported media type:
                  $ref: '#/components/examples/415'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                Internal server error:
                  $ref: '#/components/examples/500'
      x-orderingPosition: '5'
  /api/payments/{linkData}/partialSettlements:
    post:
      tags:
        - Payments Lifecycle
      summary: Submit a payment partial settle request
      description: Partially settle a payment
      operationId: partialSettle
      parameters:
        - name: linkData
          in: path
          required: true
          schema:
            type: string
        - name: WP-Api-Version
          in: header
          description: The API version
          required: true
          schema:
            type: string
            description: The API version
            example: '2024-06-01'
            enum:
              - '2024-06-01'
          example: '2024-06-01'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PaymentsPartialSettleRequest'
            examples:
              sentForSettlement:
                $ref: '#/components/examples/partial-settle'
        required: true
      responses:
        '202':
          description: Accepted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PartialSettleResponse'
              examples:
                sentForSettlement:
                  $ref: '#/components/examples/sent-for-partial-settlement-202'
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationErrorResponse'
              examples:
                Bad request:
                  $ref: '#/components/examples/400'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                Unauthorized:
                  $ref: '#/components/examples/401'
        '404':
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                Not found:
                  $ref: '#/components/examples/404'
        '406':
          description: Not acceptable
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HeaderErrorResponse'
              examples:
                Not acceptable:
                  $ref: '#/components/examples/406'
        '415':
          description: Unsupported media type
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                Unsupported media type:
                  $ref: '#/components/examples/415'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                Internal server error:
                  $ref: '#/components/examples/500'
      x-orderingPosition: '6'
  /api/payments/{linkData}/cancellations:
    post:
      tags:
        - Payments Lifecycle
      summary: Submit a payment cancel request
      description: Cancel a payment
      operationId: cancel
      parameters:
        - name: linkData
          in: path
          required: true
          schema:
            type: string
        - name: WP-Api-Version
          in: header
          description: The API version
          required: true
          schema:
            type: string
            description: The API version
            example: '2024-06-01'
            enum:
              - '2024-06-01'
          example: '2024-06-01'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CancelRequest'
      responses:
        '202':
          description: Accepted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CancelResponse'
              examples:
                sentForCancellation:
                  $ref: '#/components/examples/sent-for-cancellation-202'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                Unauthorized:
                  $ref: '#/components/examples/401'
        '404':
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                Not found:
                  $ref: '#/components/examples/404'
        '406':
          description: Not acceptable
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HeaderErrorResponse'
              examples:
                Not acceptable:
                  $ref: '#/components/examples/406'
        '415':
          description: Unsupported media type
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                Unsupported media type:
                  $ref: '#/components/examples/415'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                Internal server error:
                  $ref: '#/components/examples/500'
      x-orderingPosition: '7'
  /api/payments/{linkData}/settlements:
    post:
      tags:
        - Payments Lifecycle
      summary: Submit a payment settle request
      description: Settle a payment
      operationId: settle
      parameters:
        - name: linkData
          in: path
          required: true
          schema:
            type: string
        - name: WP-Api-Version
          in: header
          description: The API version
          required: true
          schema:
            type: string
            description: The API version
            example: '2024-06-01'
            enum:
              - '2024-06-01'
          example: '2024-06-01'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SettleRequest'
      responses:
        '202':
          description: Accepted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SettleResponse'
              examples:
                sentForSettlement:
                  $ref: '#/components/examples/sent-for-settlement-202-2'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                Unauthorized:
                  $ref: '#/components/examples/401'
        '404':
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                Not found:
                  $ref: '#/components/examples/404'
        '406':
          description: Not acceptable
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HeaderErrorResponse'
              examples:
                Not acceptable:
                  $ref: '#/components/examples/406'
        '415':
          description: Unsupported media type
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                Unsupported media type:
                  $ref: '#/components/examples/415'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                Internal server error:
                  $ref: '#/components/examples/500'
      x-orderingPosition: '8'
  /api/payments/{linkData}:
    get:
      tags:
        - Payments Lifecycle
      summary: Payment query request
      description: Query a payment
      operationId: queryEvents
      parameters:
        - name: linkData
          in: path
          required: true
          schema:
            type: string
        - name: WP-Api-Version
          in: header
          description: The API version
          required: true
          schema:
            type: string
            description: The API version
            example: '2024-06-01'
            enum:
              - '2024-06-01'
          example: '2024-06-01'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/QueryEventsResponse'
              examples:
                Query Response Example:
                  $ref: '#/components/examples/query-202'
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationErrorResponse'
              examples:
                Bad request:
                  $ref: '#/components/examples/400'
        '404':
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                Not found:
                  $ref: '#/components/examples/404'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                Internal server error:
                  $ref: '#/components/examples/500'
      x-orderingPosition: '9'
components:
  schemas:
    SettleRequest:
      type: object
    ErrorResponse:
      type: object
      properties:
        errorName:
          type: string
        message:
          type: string
    HeaderErrorResponse:
      type: object
      properties:
        errorName:
          type: string
        message:
          type: string
        headerName:
          type: string
    PaymentsActionPartialRefund:
      type: object
      properties:
        href:
          type: string
        method:
          type: string
          default: POST
      description: Partially refund the payment.
    PaymentsActionRefund:
      type: object
      properties:
        href:
          type: string
        method:
          type: string
          default: POST
      description: Fully refund the payment. See [details](../payments-lifecycle/refund)
    PaymentsLink:
      type: object
      properties:
        self:
          $ref: '#/components/schemas/Self'
      description: Return details about the status of the payment
    Self:
      type: object
      properties:
        href:
          type: string
    SettleActionList:
      type: object
      properties:
        refundPayment:
          $ref: '#/components/schemas/PaymentsActionRefund'
        partiallyRefundPayment:
          $ref: '#/components/schemas/PaymentsActionPartialRefund'
    SettleResponse:
      type: object
      properties:
        outcome:
          type: string
          enum:
            - 3dsDeviceDataRequired
            - authorized
            - 3dsChallenged
            - sentForSettlement
            - sentForCancellation
            - refused
            - 3dsAuthenticationFailed
            - 3dsUnavailable
            - fraudHighRisk
            - sentForRefund
            - sentForPartialRefund
        _links:
          $ref: '#/components/schemas/PaymentsLink'
        _actions:
          $ref: '#/components/schemas/SettleActionList'
    RefundRequest:
      type: object
    RefundResponse:
      type: object
      properties:
        outcome:
          type: string
          enum:
            - 3dsDeviceDataRequired
            - authorized
            - 3dsChallenged
            - sentForSettlement
            - sentForCancellation
            - refused
            - 3dsAuthenticationFailed
            - 3dsUnavailable
            - fraudHighRisk
            - sentForRefund
            - sentForPartialRefund
        _links:
          $ref: '#/components/schemas/PaymentsLink'
    PaymentsPartialSettleRequest:
      required:
        - reference
        - value
      type: object
      properties:
        reference:
          type: string
        value:
          $ref: '#/components/schemas/Value'
    Value:
      required:
        - amount
        - currency
      type: object
      properties:
        currency:
          type: string
          description: ' The three character currency code. See list of <a href="https://developer.worldpay.com/products/access/reference/useful-tables/#currency-codes">supported currencies</a> '
          example: USD
        amount:
          type: integer
          description: >-
            The payment amount. Implied decimal. For example, 250 GBP = £2.50

            When set to `0` will perform a card verification instead of a
            payment as part of a new `customerAgreement`.
          format: int32
          example: 250
    ValidationErrorResponse:
      type: object
      properties:
        errorName:
          type: string
        message:
          type: string
        jsonPath:
          type: string
        validationErrors:
          type: array
          items:
            $ref: '#/components/schemas/ValidationErrorResponse'
    PartialSettleActionList:
      type: object
      properties:
        refundPayment:
          $ref: '#/components/schemas/PaymentsActionRefund'
        partiallyRefundPayment:
          $ref: '#/components/schemas/PaymentsActionPartialRefund'
        partiallySettlePayment:
          $ref: '#/components/schemas/PaymentsActionPartialSettle'
        cancelPayment:
          $ref: '#/components/schemas/PaymentsActionCancel'
    PartialSettleResponse:
      type: object
      properties:
        outcome:
          type: string
          enum:
            - 3dsDeviceDataRequired
            - authorized
            - 3dsChallenged
            - sentForSettlement
            - sentForCancellation
            - refused
            - 3dsAuthenticationFailed
            - 3dsUnavailable
            - fraudHighRisk
            - sentForRefund
            - sentForPartialRefund
        _links:
          $ref: '#/components/schemas/PaymentsLink'
        _actions:
          $ref: '#/components/schemas/PartialSettleActionList'
    PaymentsActionCancel:
      type: object
      properties:
        href:
          type: string
        method:
          type: string
          default: POST
      description: Cancel the payment. See [details](../payments-lifecycle/cancel)
    PaymentsActionPartialSettle:
      type: object
      properties:
        href:
          type: string
        method:
          type: string
          default: POST
      description: >-
        Partially settle the payment. See
        [details](../payments-lifecycle/partialsettle) including what to add in
        the request body.
    PaymentsPartialRefundRequest:
      required:
        - reference
        - value
      type: object
      properties:
        reference:
          type: string
        value:
          $ref: '#/components/schemas/Value'
    PartialRefundActionList:
      type: object
      properties:
        partiallyRefundPayment:
          $ref: '#/components/schemas/PaymentsActionPartialRefund'
    PartialRefundResponse:
      type: object
      properties:
        outcome:
          type: string
          enum:
            - 3dsDeviceDataRequired
            - authorized
            - 3dsChallenged
            - sentForSettlement
            - sentForCancellation
            - refused
            - 3dsAuthenticationFailed
            - 3dsUnavailable
            - fraudHighRisk
            - sentForRefund
            - sentForPartialRefund
        _links:
          $ref: '#/components/schemas/PaymentsLink'
        _actions:
          $ref: '#/components/schemas/PartialRefundActionList'
    CancelRequest:
      type: object
    CancelResponse:
      type: object
      properties:
        outcome:
          type: string
          enum:
            - 3dsDeviceDataRequired
            - authorized
            - 3dsChallenged
            - sentForSettlement
            - sentForCancellation
            - refused
            - 3dsAuthenticationFailed
            - 3dsUnavailable
            - fraudHighRisk
            - sentForRefund
            - sentForPartialRefund
        _links:
          $ref: '#/components/schemas/PaymentsLink'
    DeviceDataRequest:
      type: object
      properties:
        collectionReference:
          type: string
          description: ' Add the `sessionId` provided in the postMessage of the device data collection form. <br><br>__Note:__ If device data collection fails you can attempt the payment without this value. Submit this request without the collectionReference '
          example: 0_3XXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXX6b5
    Advice:
      type: object
      properties:
        code:
          type: string
      description: Contains suggested next actions for this request.
    Authentication:
      type: object
      properties:
        version:
          maxLength: 10
          minLength: 1
          type: string
          description: The version of 3DS used to process the transaction.
          example: 2.2.0
        type:
          type: string
        authenticationValue:
          type: string
        eci:
          maxLength: 2
          minLength: 1
          type: string
          description: >-
            Electronic Commerce Indicator (ECI). Indicates the outcome of the
            3DS authentication.
        transactionId:
          maxLength: 64
          minLength: 1
          type: string
          description: A transaction identifier.
      description: Object that contains authentication related information.
    AuthorizationActionList:
      type: object
      properties:
        cancelPayment:
          $ref: '#/components/schemas/PaymentsActionCancel'
        settlePayment:
          $ref: '#/components/schemas/PaymentsActionSettle'
        partiallySettlePayment:
          $ref: '#/components/schemas/PaymentsActionPartialSettle'
    BillingAddress:
      required:
        - address1
        - city
        - countryCode
      type: object
      properties:
        address1:
          maxLength: 80
          minLength: 1
          type: string
          description: Address line 1
        address2:
          maxLength: 80
          minLength: 1
          type: string
          description: Address line 2
        address3:
          maxLength: 80
          minLength: 1
          type: string
          description: Address line 3
        postalCode:
          maxLength: 15
          minLength: 1
          type: string
          description: |2-

             Required for all countries except the following:            * IE
        city:
          maxLength: 50
          minLength: 1
          type: string
          description: Address City
        state:
          maxLength: 30
          minLength: 1
          type: string
          description: Address State
        countryCode:
          type: string
          description: >-
            Must be provided in [ISO 3166-1 alpha-2
            format](/products/access/reference/useful-tables#iso-country-codes).
          format: ISO 3166-1 alpha-2
    CardAuthorizedPaymentResponse:
      type: object
      properties:
        outcome:
          type: string
          enum:
            - 3dsDeviceDataRequired
            - authorized
            - 3dsChallenged
            - sentForSettlement
            - sentForCancellation
            - refused
            - 3dsAuthenticationFailed
            - 3dsUnavailable
            - fraudHighRisk
            - sentForRefund
            - sentForPartialRefund
        transactionReference:
          maxLength: 64
          minLength: 1
          pattern: ^[-A-Za-z0-9_!@#$%()*=.:;?\[\]{}~`/+]*$
          type: string
          description: ' A unique reference generated by you that is used to identify a payment throughout its lifecycle. '
        issuer:
          $ref: '#/components/schemas/Issuer'
        riskFactors:
          type: array
          description: ' Any risk factors which have been identified for the authorization. This section will not appear if no risks are identified. '
          items:
            $ref: '#/components/schemas/RiskFactor'
        fraud:
          $ref: '#/components/schemas/Fraud'
        threeDS:
          $ref: '#/components/schemas/Verification'
        token:
          $ref: '#/components/schemas/Token'
        schemeReference:
          type: string
          description: An object containing information returned by the scheme.
        _links:
          $ref: '#/components/schemas/PaymentsLink'
        _actions:
          $ref: '#/components/schemas/AuthorizationActionList'
        paymentInstrument:
          $ref: '#/components/schemas/PaymentsResponsePaymentInstrument'
    CardExpiryDate:
      required:
        - month
        - year
      type: object
      properties:
        year:
          type: integer
          format: int32
          example: 2025
        month:
          type: integer
          format: int32
          example: 5
    ChallengeInfo:
      type: object
      properties:
        reference:
          type: string
          example: uswuxaOZm7onSjO664M1
        url:
          type: string
          example: https://centinelapistag.cardinalcommerce.com/V2/Cruise/StepUp
        jwt:
          type: string
          example: >-





            eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJPcmdVbml0SWQiOiI2NjAzMDA3YWJlMjMxZTM1ZTNmNTRjODkiLCJPYmplY3RpZnlQYXlsb2FkIjpmYWxzZSwiaXNzIjoiNjYwMzAwN2ExNmRkOWE3ZTZhMDMzNDA3IiwiUmV0dXJuVXJsIjoiaHR0cDovL3BheW1lbnQuZXhhbXBsZS5jb20iLCJQYXlsb2FkIjoie1wiUGF5bG9hZFwiOlwiZXlKdFpYTnpZV2RsVkhsd1pTSTZJa05TWlhFaUxDSnRaWE56WVdkbFZtVnljMmx2YmlJNklqSXVNUzR3SWl3aWRHaHlaV1ZFVTFObGNuWmxjbFJ5WVc1elNVUWlPaUl4WlRNMllqUmxOeTFoTnpNMExUUXhabU10T0RrMFppMDJaVFU0TWpNMll6WXhaRFlpTENKaFkzTlVjbUZ1YzBsRUlqb2lOR1ZrT1dReU1HUXRZekEwTUMwMFlqbGhMVGd5TUdFdE9ERTFNelUwTlRoaVpqZGxJaXdpWTJoaGJHeGxibWRsVjJsdVpHOTNVMmw2WlNJNklqQTBJbjBcIixcIkFDU1VybFwiOlwiaHR0cHM6XFwvXFwvMW1lcmNoYW50YWNzc3RhZy5jYXJkaW5hbGNvbW1lcmNlLmNvbVxcL01lcmNoYW50QUNTV2ViXFwvY3JlcS5qc3BcIixcIlRyYW5zYWN0aW9uSWRcIjpcInVzd3V4YU9abTdvblNqTzY2NE0xXCJ9IiwiZXhwIjoxNzEyMzE4MjI1LCJpYXQiOjE3MTIzMTc2MjUsImp0aSI6IjJhZmQzYzBjLWYzNzEtNDNkMC1iNTkyLTJhYzY5MjkxODdmOSJ9.cL8rPZkdHmatwrmV990NzmAmPe9nxrp65A8gm6ifprQ
        payload:
          type: string
          example: >-


            eyJtZXNzYWdlVHlwZSI6IkNSZXEiLCJtZXNzYWdlVmVyc2lvbiI6IjIuMS4wIiwidGhyZWVEU1NlcnZlclRyYW5zSUQiOiIxZTM2YjRlNy1hNzM0LTQxZmMtODk0Zi02ZTU4MjM2YzYxZDYiLCJhY3NUcmFuc0lEIjoiNGVkOWQyMGQtYzA0MC00YjlhLTgyMGEtODE1MzU0NThiZjdlIiwiY2hhbGxlbmdlV2luZG93U2l6ZSI6IjA0In0
    ChallengedActionList:
      type: object
      properties:
        complete3dsChallenge:
          $ref: '#/components/schemas/PaymentsActionComplete3dsChallenge'
    ChallengedResponse:
      type: object
      properties:
        outcome:
          type: string
          enum:
            - 3dsDeviceDataRequired
            - authorized
            - 3dsChallenged
            - sentForSettlement
            - sentForCancellation
            - refused
            - 3dsAuthenticationFailed
            - 3dsUnavailable
            - fraudHighRisk
            - sentForRefund
            - sentForPartialRefund
        transactionReference:
          maxLength: 64
          minLength: 1
          pattern: ^[-A-Za-z0-9_!@#$%()*=.:;?\[\]{}~`/+]*$
          type: string
          description: ' A unique reference generated by you that is used to identify a payment throughout its lifecycle. '
        authentication:
          $ref: '#/components/schemas/Authentication'
        challenge:
          $ref: '#/components/schemas/ChallengeInfo'
        _actions:
          $ref: '#/components/schemas/ChallengedActionList'
    ConflictPaymentInstrument:
      type: object
      properties:
        type:
          type: string
        cardNumber:
          type: string
        cardHolderName:
          type: string
        cardExpiryDate:
          $ref: '#/components/schemas/CardExpiryDate'
        billingAddress:
          $ref: '#/components/schemas/BillingAddress'
    CreateTokenResponseConflicts:
      type: object
      properties:
        conflictsExpiryDateTime:
          type: string
        paymentInstrument:
          $ref: '#/components/schemas/ConflictPaymentInstrument'
    DeviceDataResponse201:
      type: object
      properties:
        transactionReference:
          maxLength: 64
          minLength: 1
          pattern: ^[-A-Za-z0-9_!@#$%()*=.:;?\[\]{}~`/+]*$
          type: string
          description: ' A unique reference generated by you that is used to identify a payment throughout its lifecycle. '
        outcome:
          type: string
          enum:
            - 3dsDeviceDataRequired
            - authorized
            - 3dsChallenged
            - sentForSettlement
            - sentForCancellation
            - refused
            - 3dsAuthenticationFailed
            - 3dsUnavailable
            - fraudHighRisk
            - sentForRefund
            - sentForPartialRefund
      discriminator:
        propertyName: outcome
        mapping:
          authorized: '#/components/schemas/CardAuthorizedPaymentResponse'
          refused: '#/components/schemas/PaymentRefusedResponse'
          3dsChallenged: '#/components/schemas/ChallengedResponse'
          3dsAuthenticationFailed: '#/components/schemas/UnsuccessfulAuthenticationResponse'
          3dsUnavailable: '#/components/schemas/PaymentsResponse'
    ExpiryDate:
      required:
        - month
        - year
      type: object
      properties:
        year:
          type: integer
          format: int32
          example: 2028
        month:
          type: integer
          format: int32
          example: 6
    Fraud:
      type: object
      properties:
        outcome:
          type: string
          description: ' outcome of the fraud assessment. `highRisk` outcomes stop the transaction before payment. '
          enum:
            - lowRisk
            - highRisk
            - review
            - error
            - lowRisk(silentMode)
            - highRisk(silentMode)
            - review(silentMode)
            - error(silentMode)
        score:
          type: number
          description: ' The score calculated by the fraud assessment, set score thresholds are used to define lowRisk, highRisk and review outcomes '
          format: double
          example: 44
      description: Details of the outcome of the Fraud assessment
    Issuer:
      type: object
      properties:
        authorizationCode:
          type: string
      description: An object containing information returned by the issuer.
    PaymentRefusedResponse:
      type: object
      properties:
        outcome:
          type: string
          enum:
            - 3dsDeviceDataRequired
            - authorized
            - 3dsChallenged
            - sentForSettlement
            - sentForCancellation
            - refused
            - 3dsAuthenticationFailed
            - 3dsUnavailable
            - fraudHighRisk
            - sentForRefund
            - sentForPartialRefund
        transactionReference:
          maxLength: 64
          minLength: 1
          pattern: ^[-A-Za-z0-9_!@#$%()*=.:;?\[\]{}~`/+]*$
          type: string
          description: ' A unique reference generated by you that is used to identify a payment throughout its lifecycle. '
        advice:
          $ref: '#/components/schemas/Advice'
        riskFactors:
          type: array
          description: ' Any risk factors which have been identified for the authorization. This section will not appear if no risks are identified. '
          items:
            $ref: '#/components/schemas/RiskFactor'
        fraud:
          $ref: '#/components/schemas/Fraud'
        token:
          $ref: '#/components/schemas/Token'
        refusalDescription:
          type: string
          description: Additional context on the refusal.
        refusalCode:
          type: string
          description: Response code for the request.
        threeDS:
          $ref: '#/components/schemas/Verification'
        paymentInstrument:
          $ref: '#/components/schemas/PaymentsResponsePaymentInstrument'
    PaymentsActionComplete3dsChallenge:
      type: object
      properties:
        href:
          type: string
        method:
          type: string
          default: POST
      description: >-
        Resume the payment following the 3DS challenge being completed by the
        customer. See [details](../3ds-actions/complete3dschallenge)
    PaymentsActionSettle:
      type: object
      properties:
        href:
          type: string
        method:
          type: string
          default: POST
      description: Fully settle the payment. See [details](../payments-lifecycle/settle)
    PaymentsResponse:
      type: object
      properties:
        transactionReference:
          maxLength: 64
          minLength: 1
          pattern: ^[-A-Za-z0-9_!@#$%()*=.:;?\[\]{}~`/+]*$
          type: string
          description: ' A unique reference generated by you that is used to identify a payment throughout its lifecycle. '
        outcome:
          type: string
          enum:
            - 3dsDeviceDataRequired
            - authorized
            - 3dsChallenged
            - sentForSettlement
            - sentForCancellation
            - refused
            - 3dsAuthenticationFailed
            - 3dsUnavailable
            - fraudHighRisk
            - sentForRefund
            - sentForPartialRefund
    PaymentsResponsePaymentInstrument:
      type: object
      properties:
        type:
          type: string
        cardBin:
          type: string
        lastFour:
          type: string
        countryCode:
          type: string
        expiryDate:
          $ref: '#/components/schemas/ExpiryDate'
        cardBrand:
          type: string
        fundingType:
          type: string
        category:
          type: string
        issuerName:
          type: string
        paymentAccountReference:
          type: string
    RiskFactor:
      type: object
      properties:
        risk:
          type: string
          enum:
            - notChecked
            - notMatched
            - notSupplied
            - verificationFailed
        detail:
          type: string
          enum:
            - address
            - postcode
        type:
          type: string
          enum:
            - avs
            - cvc
            - riskProfile
      description: ' Any risk factors which have been identified for the authorization. This section will not appear if no risks are identified. '
    Token:
      type: object
      properties:
        href:
          type: string
          example: >-
            https://try.access.worldpay.com/tokens/eyJrIjoxLCJkIjoiUW5rZHBXZDZ1MzBBY0I0MTVJQUdPeGE3ZkFobE1lTjJyYk05eDZxQUJ2RT0ifQ
        tokenId:
          type: string
          example: '9997095516055002467'
        tokenExpiryDateTime:
          type: string
          example: '2024-04-12T11:49:56Z'
        cardNumber:
          type: string
          example: 4000********1091
        cardHolderName:
          type: string
          example: Sherlock Holmes
        cardExpiry:
          $ref: '#/components/schemas/CardExpiryDate'
        bin:
          type: string
          example: '400000'
        fundingType:
          type: string
          example: debit
        countryCode:
          type: string
        schemeReference:
          type: string
          example: '060720116005060'
        conflicts:
          $ref: '#/components/schemas/CreateTokenResponseConflicts'
      description: Details of the token created
    UnsuccessfulAuthenticationResponse:
      type: object
      properties:
        transactionReference:
          maxLength: 64
          minLength: 1
          pattern: ^[-A-Za-z0-9_!@#$%()*=.:;?\[\]{}~`/+]*$
          type: string
          description: ' A unique reference generated by you that is used to identify a payment throughout its lifecycle. '
        outcome:
          type: string
          enum:
            - 3dsDeviceDataRequired
            - authorized
            - 3dsChallenged
            - sentForSettlement
            - sentForCancellation
            - refused
            - 3dsAuthenticationFailed
            - 3dsUnavailable
            - fraudHighRisk
            - sentForRefund
            - sentForPartialRefund
        authentication:
          $ref: '#/components/schemas/Authentication'
    Verification:
      type: object
      properties:
        outcome:
          type: string
          description: If the request was authenticated successfully
          default: authenticated
        issuerResponse:
          type: string
          description: ' If the issuer decides to challenge the customer or proceed (frictionless) '
          enum:
            - frictionless
            - challenged
      description: Details of the outcome of the 3DS authentication
    DeviceDataResponse202:
      type: object
      properties:
        transactionReference:
          maxLength: 64
          minLength: 1
          pattern: ^[-A-Za-z0-9_!@#$%()*=.:;?\[\]{}~`/+]*$
          type: string
          description: ' A unique reference generated by you that is used to identify a payment throughout its lifecycle. '
        outcome:
          type: string
          enum:
            - 3dsDeviceDataRequired
            - authorized
            - 3dsChallenged
            - sentForSettlement
            - sentForCancellation
            - refused
            - 3dsAuthenticationFailed
            - 3dsUnavailable
            - fraudHighRisk
            - sentForRefund
            - sentForPartialRefund
      discriminator:
        propertyName: outcome
        mapping:
          sentForSettlement: '#/components/schemas/SentForSettlementResponse'
          sentForCancellation: '#/components/schemas/SentForCancellationResponse'
    SentForCancellationResponse:
      type: object
      properties:
        outcome:
          type: string
          enum:
            - 3dsDeviceDataRequired
            - authorized
            - 3dsChallenged
            - sentForSettlement
            - sentForCancellation
            - refused
            - 3dsAuthenticationFailed
            - 3dsUnavailable
            - fraudHighRisk
            - sentForRefund
            - sentForPartialRefund
        transactionReference:
          maxLength: 64
          minLength: 1
          pattern: ^[-A-Za-z0-9_!@#$%()*=.:;?\[\]{}~`/+]*$
          type: string
          description: ' A unique reference generated by you that is used to identify a payment throughout its lifecycle. '
        issuer:
          $ref: '#/components/schemas/Issuer'
        schemeReference:
          type: string
          description: An object containing information returned by the scheme.
        riskFactors:
          type: array
          description: ' Any risk factors which have been identified for the authorization. This section will not appear if no risks are identified. '
          items:
            $ref: '#/components/schemas/RiskFactor'
        fraud:
          $ref: '#/components/schemas/Fraud'
        threeDS:
          $ref: '#/components/schemas/Verification'
        token:
          $ref: '#/components/schemas/Token'
        _links:
          $ref: '#/components/schemas/PaymentsLink'
        paymentInstrument:
          $ref: '#/components/schemas/PaymentsResponsePaymentInstrument'
    SentForSettlementActionList:
      type: object
      properties:
        refundPayment:
          $ref: '#/components/schemas/PaymentsActionRefund'
        partiallyRefundPayment:
          $ref: '#/components/schemas/PaymentsActionPartialRefund'
    SentForSettlementResponse:
      type: object
      properties:
        outcome:
          type: string
          enum:
            - 3dsDeviceDataRequired
            - authorized
            - 3dsChallenged
            - sentForSettlement
            - sentForCancellation
            - refused
            - 3dsAuthenticationFailed
            - 3dsUnavailable
            - fraudHighRisk
            - sentForRefund
            - sentForPartialRefund
        transactionReference:
          maxLength: 64
          minLength: 1
          pattern: ^[-A-Za-z0-9_!@#$%()*=.:;?\[\]{}~`/+]*$
          type: string
          description: ' A unique reference generated by you that is used to identify a payment throughout its lifecycle. '
        issuer:
          $ref: '#/components/schemas/Issuer'
        schemeReference:
          type: string
          description: An object containing information returned by the scheme.
        riskFactors:
          type: array
          description: ' Any risk factors which have been identified for the authorization. This section will not appear if no risks are identified. '
          items:
            $ref: '#/components/schemas/RiskFactor'
        fraud:
          $ref: '#/components/schemas/Fraud'
        threeDS:
          $ref: '#/components/schemas/Verification'
        token:
          $ref: '#/components/schemas/Token'
        _links:
          $ref: '#/components/schemas/PaymentsLink'
        _actions:
          $ref: '#/components/schemas/SentForSettlementActionList'
        paymentInstrument:
          $ref: '#/components/schemas/PaymentsResponsePaymentInstrument'
    ChallengeResponse201:
      type: object
      properties:
        transactionReference:
          maxLength: 64
          minLength: 1
          pattern: ^[-A-Za-z0-9_!@#$%()*=.:;?\[\]{}~`/+]*$
          type: string
          description: ' A unique reference generated by you that is used to identify a payment throughout its lifecycle. '
        outcome:
          type: string
          enum:
            - 3dsDeviceDataRequired
            - authorized
            - 3dsChallenged
            - sentForSettlement
            - sentForCancellation
            - refused
            - 3dsAuthenticationFailed
            - 3dsUnavailable
            - fraudHighRisk
            - sentForRefund
            - sentForPartialRefund
      discriminator:
        propertyName: outcome
        mapping:
          authorized: '#/components/schemas/CardAuthorizedPaymentResponse'
          refused: '#/components/schemas/PaymentRefusedResponse'
          3dsAuthenticationFailed: '#/components/schemas/UnsuccessfulAuthenticationResponse'
          3dsUnavailable: '#/components/schemas/PaymentsResponse'
    ChallengeResponse202:
      type: object
      discriminator:
        propertyName: outcome
        mapping:
          sentForSettlement: '#/components/schemas/SentForSettlementResponse'
          sentForCancellation: '#/components/schemas/SentForCancellationResponse'
    AccountHistory:
      type: object
      properties:
        createdAt:
          type: string
          description: Date the customer account was created.
        modifiedAt:
          type: string
          description: Date the customer account was last modified.
        passwordModifiedAt:
          type: string
          description: Date the password for the customer account was last modified.
        paymentAccountEnrolledAt:
          type: string
          description: Date the payment account was added to the cardholder account.
      description: Customer account history.
    ApplepayPaymentsInstruction:
      required:
        - method
        - narrative
        - paymentInstrument
        - value
      type: object
      properties:
        method:
          type: string
          description: The method of instruction.
          enum:
            - applepay
        paymentInstrument:
          required:
            - type
            - walletToken
          type: object
          properties:
            type:
              type: string
              description: The type of instrument.
              enum:
                - encrypted
            walletToken:
              type: string
            billingAddress:
              $ref: '#/components/schemas/BillingAddress'
        narrative:
          $ref: '#/components/schemas/Narrative'
        value:
          $ref: '#/components/schemas/Value'
        debtRepayment:
          type: boolean
          description: ' A flag which identifies a payment as being for the purpose of repaying a debt.'
        settlement:
          $ref: '#/components/schemas/Settlement'
        customer:
          $ref: '#/components/schemas/Customer'
        shipping:
          $ref: '#/components/schemas/Shipping'
        recipient:
          $ref: '#/components/schemas/PaymentsRecipient'
        consumerBillPayment:
          type: boolean
          description: ' An attribute that identifies a bill payment paid by providers on behalf of consumers. If you are registered with Visa as a Consumer of the Bill Payment Service (CBPS), you must set this to `true` for any payments associated with the CBPS. '
    CardPaymentsInstruction:
      required:
        - method
        - narrative
        - paymentInstrument
        - value
      type: object
      properties:
        method:
          type: string
          description: The method of instruction.
          enum:
            - card
        paymentInstrument:
          required:
            - type
          type: object
          properties:
            type:
              type: string
              description: The type of instrument.
          discriminator:
            propertyName: type
            mapping:
              plain: '#/components/schemas/PaymentsCardPlainPaymentInstrument'
              token: '#/components/schemas/TokenPaymentInstrument'
              checkout: '#/components/schemas/SessionPaymentInstrument'
        narrative:
          $ref: '#/components/schemas/Narrative'
        tokenCreation:
          $ref: '#/components/schemas/TokenCreation'
        value:
          $ref: '#/components/schemas/Value'
        debtRepayment:
          type: boolean
          description: ' A flag which identifies a payment as being for the purpose of repaying a debt.'
        fraud:
          $ref: '#/components/schemas/PaymentsFraud'
        threeDS:
          $ref: '#/components/schemas/PaymentsThreeDS'
        settlement:
          $ref: '#/components/schemas/Settlement'
        customer:
          $ref: '#/components/schemas/Customer'
        shipping:
          $ref: '#/components/schemas/Shipping'
        customerAgreement:
          $ref: '#/components/schemas/PaymentsCustomerAgreement'
        recipient:
          $ref: '#/components/schemas/PaymentsRecipient'
        consumerBillPayment:
          type: boolean
          description: ' An attribute that identifies a bill payment paid by providers on behalf of consumers. If you are registered with Visa as a Consumer of the Bill Payment Service (CBPS), you must set this to `true` for any payments associated with the CBPS. '
    Challenge:
      required:
        - returnUrl
      type: object
      properties:
        returnUrl:
          type: string
          description: ' Once the customer completes the challenge page the issuer redirects/posts to the returnUrl in order for you to resume the session. It must be the full URL path.  '
        windowSize:
          type: string
          description: ' Specify the challenge window size (width x height) that the issuer should use. This is to better tailor the experience to the customers device. Default is 390x400. '
          default: 390x400
          enum:
            - 250x400
            - 390x400
            - 600x400
            - 500x600
            - fullPage
        preference:
          type: string
          description: ' Set a preference for how the Issuer decides on a 3DS challenge. challengeMandated will be automatically set by verified payments for the first CIT payment in an MIT series or when storing cards (token creation). '
          enum:
            - noPreference
            - noChallengeRequested
            - challengeRequested
            - challengeMandated
      description: An object containing 3DS challenge preferences and configuration.
    Custom:
      type: object
      properties:
        number1:
          type: integer
          format: int32
        number2:
          type: integer
          format: int32
        number3:
          type: integer
          format: int32
        number4:
          type: integer
          format: int32
        number5:
          type: integer
          format: int32
        number6:
          type: integer
          format: int32
        number7:
          type: integer
          format: int32
        number8:
          type: integer
          format: int32
        number9:
          type: integer
          format: int32
        string1:
          maxLength: 100
          minLength: 1
          type: string
        string2:
          maxLength: 100
          minLength: 1
          type: string
        string3:
          maxLength: 100
          minLength: 1
          type: string
        string4:
          maxLength: 100
          minLength: 1
          type: string
        string5:
          maxLength: 100
          minLength: 1
          type: string
        string6:
          maxLength: 100
          minLength: 1
          type: string
        string7:
          maxLength: 100
          minLength: 1
          type: string
        string8:
          maxLength: 100
          minLength: 1
          type: string
        string9:
          maxLength: 100
          minLength: 1
          type: string
      description: >-
        Additional values specific to your order that can be used to create
        manual fraud rules.
    Customer:
      type: object
      properties:
        customerId:
          maxLength: 128
          minLength: 1
          type: string
          description: Unique identifier used by the ecommerce system for the customer.
        firstName:
          maxLength: 22
          minLength: 1
          type: string
          description: Customer's first name.
        lastName:
          maxLength: 22
          minLength: 1
          type: string
          description: Customer's last name.
        phone:
          maxLength: 20
          minLength: 4
          pattern: ^[0-9]*$
          type: string
          description: Customer's phone number.
        dateOfBirth:
          type: string
          description: Customer's date of birth.
          format: date
        email:
          maxLength: 128
          minLength: 1
          type: string
          description: Customers's email address used for the ecommerce account.
        ipAddress:
          type: string
          description: |2-
             A unique identifier for your customer's physical location that
                        can be used by the issuer in risk analysis. Must be in IPv4 or IPv6 format.
            E.g. 192.0.0.0. 
        documentReference:
          maxLength: 50
          minLength: 1
          pattern: ^[-A-Za-z0-9_\-/\\*~+.,&()]*$
          type: string
          description: Required for domestic processing in some Latin American countries.
    DeviceData:
      required:
        - acceptHeader
        - userAgentHeader
      type: object
      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 3DS 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. '
        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. '
        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
          description: Defines the pixel height of the customers browser.
          format: int32
        browserScreenWidth:
          type: integer
          description: Defines the pixel width of the customers browser.
          format: int32
        timeZone:
          pattern: ^[+-]?\d{1,4}$
          type: string
          description: |2-
             Time zone offset in minutes between UTC and your customer's browser local time.  
            Example time zone offset values in minutes:  
            If UTC -5 hours:  
            `300`  
            `+300`  
            If UTC +5 hours:  
            `-300`  
             
        browserJavascriptEnabled:
          type: boolean
          description: Defines whether Javascript is enabled on your customers browser.
        channel:
          type: string
          description: Determines the channel that the transaction came through.
          enum:
            - browser
            - native
      description: An object containing device dat`a for 3DS & Fraud assessment.
    GooglepayPaymentsInstruction:
      required:
        - method
        - narrative
        - paymentInstrument
        - value
      type: object
      properties:
        method:
          type: string
          description: The method of instruction.
          enum:
            - googlepay
        paymentInstrument:
          required:
            - type
            - walletToken
          type: object
          properties:
            type:
              type: string
              description: The type of instrument.
              enum:
                - encrypted
            walletToken:
              type: string
            billingAddress:
              $ref: '#/components/schemas/BillingAddress'
        narrative:
          $ref: '#/components/schemas/Narrative'
        value:
          $ref: '#/components/schemas/Value'
        debtRepayment:
          type: boolean
          description: ' A flag which identifies a payment as being for the purpose of repaying a debt.'
        settlement:
          $ref: '#/components/schemas/Settlement'
        customer:
          $ref: '#/components/schemas/Customer'
        shipping:
          $ref: '#/components/schemas/Shipping'
        recipient:
          $ref: '#/components/schemas/PaymentsRecipient'
        consumerBillPayment:
          type: boolean
          description: ' An attribute that identifies a bill payment paid by providers on behalf of consumers. If you are registered with Visa as a Consumer of the Bill Payment Service (CBPS), you must set this to `true` for any payments associated with the CBPS. '
    InstallmentPlan:
      required:
        - numberOfInstallments
      type: object
      properties:
        numberOfInstallments:
          type: integer
          description: >-
            Number of installments that the requested amount should be broken
            into.
          format: int32
      description: Required only for `latinAmerica` installment type.
    Merchant:
      required:
        - entity
      type: object
      properties:
        entity:
          maxLength: 32
          minLength: 1
          pattern: ^([A-Za-z0-9]+[A-Za-z0-9 ]*)?$
          type: string
          description: ' Used to route the request in Access Worldpay, created as part of on-boarding. '
          example: default
        mcc:
          pattern: ^\d{4}$
          type: string
          description: ' You can apply a merchant category code (mcc) to an individual request. You can only provide an mcc if we have enabled the dynamic mcc feature during boarding. If enabled but not provided, merchant.mcc defaults to a configured value. '
      description: An object that contains information about the merchant.
    Narrative:
      required:
        - line1
      type: object
      properties:
        line1:
          maxLength: 24
          minLength: 1
          pattern: ^[a-zA-Z0-9 ,./-]*$
          type: string
          description: line1 is used to provide basic details about the merchant.
        line2:
          maxLength: 24
          minLength: 1
          pattern: ^[a-zA-Z0-9 ,./-]*$
          type: string
          description: ' line2 is used for additional context about the payment or merchant. E.g. Order number or Merchant phone number. '
      description: >-
        The text that appears on your customer's statement. Used to identify the
        merchant.
    PaymentRequest:
      required:
        - instruction
        - merchant
        - transactionReference
      type: object
      properties:
        transactionReference:
          maxLength: 64
          minLength: 1
          pattern: ^[-A-Za-z0-9_!@#$%()*=.:;?\[\]{}~`/+]*$
          type: string
          description: ' A unique reference generated by you that is used to identify a payment throughout its lifecycle. '
        merchant:
          $ref: '#/components/schemas/Merchant'
        instruction:
          $ref: '#/components/schemas/PaymentsInstruction'
    PaymentsCardOnFileCustomerAgreement:
      required:
        - storedCardUsage
        - type
      type: object
      allOf:
        - $ref: '#/components/schemas/PaymentsCustomerAgreement'
        - type: object
          properties:
            type:
              type: string
              enum:
                - cardOnFile
            storedCardUsage:
              type: string
              description: ' Set to `first` to store a card or `subsequent` to use a previously stored card. '
              enum:
                - first
                - subsequent
    PaymentsCardPlainPaymentInstrument:
      required:
        - cardNumber
        - expiryDate
        - type
      type: object
      allOf:
        - $ref: '#/components/schemas/PaymentsPaymentInstrument'
        - type: object
          properties:
            type:
              type: string
              enum:
                - plain
            cardHolderName:
              maxLength: 255
              minLength: 1
              type: string
              description: >-


                The name on your customer's card. Required if 
                instruction.tokenCreation is present. However we recommend that
                you supply this to improve authentication rates.
              example: Sherlock Holmes
            cardNumber:
              maxLength: 19
              minLength: 12
              type: string
              description: Customer's card number.
              example: '4000000000001091'
            expiryDate:
              $ref: '#/components/schemas/ExpiryDate'
            cvc:
              maxLength: 4
              minLength: 3
              pattern: '[0-9]*$'
              type: string
              description: >-


                CVC is a unique set of 3 or 4 numbers on the back of the card.
                Our API checks to see if the CVC supplied matches the CVC held
                by the issuing bank.
              example: '123'
            billingAddress:
              $ref: '#/components/schemas/BillingAddress'
    PaymentsCustomerAgreement:
      required:
        - type
      type: object
      properties:
        type:
          type: string
          description: The processing arrangement agreed with your customer.
      description: ' Contains specific customer agreements for the transaction. '
      discriminator:
        propertyName: type
        mapping:
          cardOnFile: '#/components/schemas/PaymentsCardOnFileCustomerAgreement'
          subscription: '#/components/schemas/PaymentsSubscriptionCustomerAgreement'
          installment: '#/components/schemas/PaymentsInstallmentCustomerAgreement'
          unscheduled: '#/components/schemas/PaymentsUnscheduledCustomerAgreement'
    PaymentsFraud:
      required:
        - type
      type: object
      properties:
        type:
          type: string
          description: Enable a FraudSight risk assessment
          default: fraudSight
          enum:
            - fraudSight
        silentMode:
          type: boolean
          description: |-
            Perform the Fraud assessment but do not act on the outcome.
                        Normally used for the initial launch while the data model is maturing.
          default: false
        tmxSessionId:
          maxLength: 128
          minLength: 30
          pattern: ^[A-Za-z0-9_-]*$
          type: string
          description: Device fingerprint provided by Threatmetrix.
        custom:
          $ref: '#/components/schemas/Custom'
      description: >-
        Fraud assessment to detect potential fraud and prevent the transaction
        from proceeding.
    PaymentsGiftCardsPurchase:
      type: object
      properties:
        totalValue:
          $ref: '#/components/schemas/Value'
        quantity:
          type: integer
          description: The number of gift cards being purchased.
          format: int32
      description: If the order is being used to purchase a gift card.
    PaymentsInstallmentCustomerAgreement:
      required:
        - installmentType
        - type
      type: object
      allOf:
        - $ref: '#/components/schemas/PaymentsCustomerAgreement'
        - type: object
          properties:
            type:
              type: string
              enum:
                - installment
            storedCardUsage:
              type: string
              description: ' Set to `first` to store a card or `subsequent` to use a previously stored card. '
              enum:
                - first
                - subsequent
            installmentType:
              type: string
              description: ' Defines the type of installments service. `latinAmerica` is available only for `first` storedCardUsage, non zero value payments. '
              enum:
                - merchant
                - latinAmerica
            installmentPlan:
              $ref: '#/components/schemas/InstallmentPlan'
            schemeReference:
              maxLength: 56
              minLength: 1
              pattern: ^[A-Za-z0-9]*$
              type: string
              description: >-
                Optional field available only for `subsequent` storedCardUsage.
                Unique reference provided by card schemes used to link the
                `first` and `subsequent` payments. This value is bundled with
                the Worldpay token if created as part of the `first` payment and
                therefore not required here as well.
              example: MCCOLXT1C0104
    PaymentsInstruction:
      required:
        - method
        - narrative
        - paymentInstrument
        - value
      type: object
      properties:
        method:
          type: string
        paymentInstrument:
          oneOf:
            - $ref: '#/components/schemas/PaymentsCardPlainPaymentInstrument'
            - $ref: '#/components/schemas/SessionPaymentInstrument'
            - $ref: '#/components/schemas/TokenPaymentInstrument'
            - $ref: '#/components/schemas/WalletPaymentInstrument'
        narrative:
          $ref: '#/components/schemas/Narrative'
        tokenCreation:
          $ref: '#/components/schemas/TokenCreation'
        value:
          $ref: '#/components/schemas/Value'
        debtRepayment:
          type: boolean
          description: ' A flag which identifies a payment as being for the purpose of repaying a debt.'
        fraud:
          $ref: '#/components/schemas/PaymentsFraud'
        threeDS:
          $ref: '#/components/schemas/PaymentsThreeDS'
        settlement:
          $ref: '#/components/schemas/Settlement'
        customer:
          $ref: '#/components/schemas/Customer'
        shipping:
          $ref: '#/components/schemas/Shipping'
        customerAgreement:
          oneOf:
            - $ref: '#/components/schemas/PaymentsCardOnFileCustomerAgreement'
            - $ref: '#/components/schemas/PaymentsInstallmentCustomerAgreement'
            - $ref: '#/components/schemas/PaymentsSubscriptionCustomerAgreement'
            - $ref: '#/components/schemas/PaymentsUnscheduledCustomerAgreement'
        recipient:
          $ref: '#/components/schemas/PaymentsRecipient'
        consumerBillPayment:
          type: boolean
          description: ' An attribute that identifies a bill payment paid by providers on behalf of consumers. If you are registered with Visa as a Consumer of the Bill Payment Service (CBPS), you must set this to `true` for any payments associated with the CBPS. '
      description: ' An object that contains all information related to the payment and API configurations. '
      discriminator:
        propertyName: method
        mapping:
          card: '#/components/schemas/CardPaymentsInstruction'
          applepay: '#/components/schemas/ApplepayPaymentsInstruction'
          googlepay: '#/components/schemas/GooglepayPaymentsInstruction'
    PaymentsPaymentInstrument:
      required:
        - type
      type: object
      properties:
        type:
          type: string
          description: The type of instrument.
      discriminator:
        propertyName: type
    PaymentsRecipient:
      type: object
      properties:
        accountReference:
          maxLength: 10
          minLength: 1
          pattern: ^[A-Za-z0-9]*$
          type: string
          description: >-
            The account number of the recipient. Either a bank account number or
            a partial card number.
        lastName:
          maxLength: 22
          minLength: 1
          pattern: ^[A-Za-z@!£*#$)(+\-_=.,/;:'"]*$
          type: string
          description: The last name of the recipient.
        address:
          $ref: '#/components/schemas/PaymentsRecipientAddress'
        dateOfBirth:
          type: string
          description: Recipient's date of birth.
          format: date
      description: ' An object containing information about the recipient of financial services. Required for MCC 6012 transactions in the Visa Europe region. The recipient may or may not be the cardholder. '
    PaymentsRecipientAddress:
      type: object
      properties:
        postalCode:
          maxLength: 10
          minLength: 1
          pattern: ^[A-Za-z0-9 ]*$
          type: string
          description: The postal code of the recipient. Relevant only in the UK.
    PaymentsShippingAddress:
      required:
        - address1
        - city
        - countryCode
        - postalCode
      type: object
      properties:
        address1:
          maxLength: 80
          minLength: 1
          type: string
          description: Address line 1
        address2:
          maxLength: 80
          minLength: 1
          type: string
          description: Address line 2
        address3:
          maxLength: 80
          minLength: 1
          type: string
          description: Address line 3
        postalCode:
          maxLength: 15
          minLength: 1
          type: string
          description: Address PostalCode
        city:
          maxLength: 50
          minLength: 1
          type: string
          description: Address City
        state:
          maxLength: 30
          minLength: 1
          type: string
          description: Address State
        countryCode:
          type: string
          description: The supported ISO 3166-1 alpha-2 country code
          format: ISO 3166-1 alpha-2
    PaymentsSubscriptionCustomerAgreement:
      required:
        - storedCardUsage
        - type
      type: object
      allOf:
        - $ref: '#/components/schemas/PaymentsCustomerAgreement'
        - type: object
          properties:
            type:
              type: string
              enum:
                - subscription
            storedCardUsage:
              type: string
              description: ' Set to `first` to store a card or `subsequent` to use a previously stored card. '
              enum:
                - first
                - subsequent
            schemeReference:
              maxLength: 56
              minLength: 1
              pattern: ^[A-Za-z0-9]*$
              type: string
              description: >-
                Optional field available only for `subsequent` storedCardUsage.
                Unique reference provided by card schemes used to link the
                `first` and `subsequent` payments. This value is bundled with
                the Worldpay token if created as part of the `first` payment and
                therefore not required here as well.
              example: MCCOLXT1C0104
    PaymentsThreeDS:
      required:
        - challenge
        - deviceData
        - mode
        - type
      type: object
      properties:
        type:
          type: string
          enum:
            - integrated
        mode:
          type: string
          enum:
            - always
        challenge:
          $ref: '#/components/schemas/Challenge'
        deviceData:
          $ref: '#/components/schemas/DeviceData'
        previousSuspiciousActivity:
          type: boolean
          description: Has the account been flagged for suspicious activity.
        userType:
          type: string
          enum:
            - guestUser
            - registeredUser
            - federatedAccount
            - issuerCredentials
            - thirdPartyAuthentication
            - fidoAuthenticator
        accountHistory:
          $ref: '#/components/schemas/AccountHistory'
        reorder:
          type: boolean
          description: Repeat of a previous order.
        preOrderDate:
          type: string
          description: Expected date that a pre-ordered purchase will be available.
        transactionHistory:
          $ref: '#/components/schemas/TransactionHistory'
        giftCardsPurchase:
          $ref: '#/components/schemas/PaymentsGiftCardsPurchase'
      description: An object containing 3DS authentication preferences.
    PaymentsUnscheduledCustomerAgreement:
      required:
        - type
      type: object
      allOf:
        - $ref: '#/components/schemas/PaymentsCustomerAgreement'
        - type: object
          properties:
            type:
              type: string
              enum:
                - unscheduled
            schemeReference:
              maxLength: 56
              minLength: 1
              pattern: ^[A-Za-z0-9]*$
              type: string
              description: >-
                Unique reference provided by card schemes used to link the
                `first` and `subsequent` payments. This value is bundled with
                the Worldpay token if created as part of the `first` payment and
                therefore not required here as well.
              example: MCCOLXT1C0104
    SessionPaymentInstrument:
      required:
        - sessionHref
        - type
      type: object
      allOf:
        - $ref: '#/components/schemas/PaymentsPaymentInstrument'
        - type: object
          properties:
            type:
              type: string
              enum:
                - checkout
            sessionHref:
              type: string
              description: >-

                An http address that contains your Checkout session providing
                the card details.
            cardHolderName:
              maxLength: 255
              minLength: 1
              type: string
              description: >-


                The name on your customer's card. Required if 
                instruction.tokenCreation is present. However we recommend that
                you supply this to improve authentication rates.
              example: Sherlock Holmes
            billingAddress:
              $ref: '#/components/schemas/BillingAddress'
    Settlement:
      required:
        - auto
      type: object
      properties:
        auto:
          type: boolean
      description: Automatically settle a payment following authorization.
    Shipping:
      type: object
      properties:
        method:
          type: string
          description: The shipping method used.
          enum:
            - billingAddress
            - verifiedAddress
            - otherAddress
            - store
            - digital
            - unshippedTickets
            - other
        timeFrame:
          type: string
          enum:
            - electronic
            - sameDay
            - nextDay
            - twoDaysPlus
        email:
          maxLength: 128
          minLength: 1
          type: string
          description: The email address used for an electronic delivery.
        phone:
          maxLength: 20
          minLength: 4
          pattern: ^[0-9]*$
          type: string
          description: The phone number used for delivery.
        firstName:
          maxLength: 22
          minLength: 1
          type: string
          description: First name used on the shipping address.
        lastName:
          maxLength: 22
          minLength: 1
          type: string
          description: Last name used on the shipping address.
        address:
          $ref: '#/components/schemas/PaymentsShippingAddress'
    TokenCreation:
      required:
        - type
      type: object
      properties:
        type:
          type: string
          enum:
            - worldpay
        namespace:
          maxLength: 64
          minLength: 1
          pattern: ^[^_][^ &<]*$
          type: string
          description: ' A namespace is used to group up to 16 cards, e.g. for one customer. A card can exist in more than one namespace. '
        description:
          maxLength: 255
          minLength: 1
          pattern: ^[^&<]*$
          type: string
          description: ' A description of your token. If not supplied, a default description is created for you. '
      description: >-
        Use this object if you want to create a token after the payment. Can
        only be used with paymentInstrument.type: card/plain & checkout.
    TokenPaymentInstrument:
      required:
        - href
        - type
      type: object
      allOf:
        - $ref: '#/components/schemas/PaymentsPaymentInstrument'
        - type: object
          properties:
            type:
              type: string
              enum:
                - token
            href:
              type: string
              description: An http address that contains your link to an Access Token.
            cvc:
              maxLength: 4
              minLength: 3
              pattern: '[0-9]*$'
              type: string
              description: >-


                CVC is a unique set of 3 or 4 numbers on the back of the card.
                Our API checks to see if the CVC supplied matches the CVC held
                by the issuing bank.
              example: '123'
            cvcSessionHref:
              type: string
              description: >-


                Href to the Checkout session providing the Card Verification
                Code (CVC).__Note:__ Provide a value in `cvcSessionHref` or
                `cvc`, never both.
              example: >-
                https://try.access.worldpay.com/sessions/eyJrIjoxLCJkIjoiNjQxbUsw...
    TransactionHistory:
      type: object
      properties:
        attemptsLastDay:
          type: integer
          description: ' Number of transactions (successful or abandoned) for this cardholder account within the last 24 hours. '
          format: int32
        attemptsLastYear:
          type: integer
          description: ' Number of transactions (successful or abandoned) for this cardholder account within the last year. '
          format: int32
        completedLastSixMonths:
          type: integer
          description: ' Number of purchases with this customer account during the previous six months. '
          format: int32
        addCardsLastDay:
          type: integer
          description: Number of attempts to add a card in the last 24hrs.
          format: int32
        shippingAddressFirstUsedAt:
          type: string
          description: ' When the shipping address used for the transaction was first used. '
      description: Object containing details of the last transaction.
    WalletPaymentInstrument:
      required:
        - type
        - walletToken
      type: object
      properties:
        type:
          type: string
          description: The type of instrument.
          enum:
            - encrypted
        walletToken:
          type: string
        billingAddress:
          $ref: '#/components/schemas/BillingAddress'
    DeviceDataCollection:
      required:
        - bin
        - jwt
        - url
      type: object
      properties:
        jwt:
          maxLength: 2048
          minLength: 1
          type: string
          description: ' A digitally signed token that contains additional details required for DDC. '
          example: >-


            eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJPcmdVbml0SWQiOiI2NjAzMDA3YWJlMjMxZTM1ZTNmNTRjODkiLCJpc3MiOiI2NjAzMDA3YTE2ZGQ5YTdlNmEwMzM0MDciLCJleHAiOjE3MTIyNDg3MTIsImlhdCI6MTcxMjI0ODExMiwianRpIjoiZjdjZGVhZWUtMTY4MS00NjlhLTgxZmEtMzBkY2MyOTYzODA3In0.T1a6hOCPVVsQmcCKU3eczwmxlHoWK83tUqIJ_VG4fwc
        url:
          maxLength: 2048
          minLength: 1
          type: string
          description: ' A `POST` action on the DDC form. Used to redirect to the issuers DDC page. This URL can could change so should not be hardcoded. '
          example: https://centinelapistag.cardinalcommerce.com/V1/Cruise/Collect
        bin:
          maxLength: 6
          minLength: 6
          type: string
          description: ' First six digits of the card number (Bank Identification Number), used as part of DDC. '
          example: '400000'
    DeviceDataRequiredActionList:
      type: object
      properties:
        supply3dsDeviceData:
          $ref: '#/components/schemas/PaymentsActionSupply3dsDeviceData'
    DeviceDataRequiredResponse:
      type: object
      properties:
        transactionReference:
          maxLength: 64
          minLength: 1
          pattern: ^[-A-Za-z0-9_!@#$%()*=.:;?\[\]{}~`/+]*$
          type: string
          description: ' A unique reference generated by you that is used to identify a payment throughout its lifecycle. '
        outcome:
          type: string
          enum:
            - 3dsDeviceDataRequired
            - authorized
            - 3dsChallenged
            - sentForSettlement
            - sentForCancellation
            - refused
            - 3dsAuthenticationFailed
            - 3dsUnavailable
            - fraudHighRisk
            - sentForRefund
            - sentForPartialRefund
        deviceDataCollection:
          $ref: '#/components/schemas/DeviceDataCollection'
        _actions:
          $ref: '#/components/schemas/DeviceDataRequiredActionList'
    FraudHighRiskResponse:
      type: object
      properties:
        transactionReference:
          maxLength: 64
          minLength: 1
          pattern: ^[-A-Za-z0-9_!@#$%()*=.:;?\[\]{}~`/+]*$
          type: string
          description: ' A unique reference generated by you that is used to identify a payment throughout its lifecycle. '
        outcome:
          type: string
          enum:
            - 3dsDeviceDataRequired
            - authorized
            - 3dsChallenged
            - sentForSettlement
            - sentForCancellation
            - refused
            - 3dsAuthenticationFailed
            - 3dsUnavailable
            - fraudHighRisk
            - sentForRefund
            - sentForPartialRefund
        score:
          maximum: 100
          minimum: 0
          type: number
          description: ' Percentage assessment score for the transaction. Higher the value the greater the assessed risk. The outcome value is based on the thresholds configured using this score. '
          format: double
        reason:
          type: array
          description: ' Short description of the reason for the outcome. A reason can be returned for any ''outcome'', even lowRisk. '
          items:
            type: string
            description: ' Short description of the reason for the outcome. A reason can be returned for any ''outcome'', even lowRisk. '
    PaymentsActionSupply3dsDeviceData:
      type: object
      properties:
        href:
          type: string
        method:
          type: string
          default: POST
      description: >-
        Supply the 3DS device data collectionReference (SessionId) to continue
        the payment. See [details](../3ds-actions/supply3dsdevicedata) including
        what to add in the request body.
    PaymentsResponse201:
      type: object
      properties:
        transactionReference:
          maxLength: 64
          minLength: 1
          pattern: ^[-A-Za-z0-9_!@#$%()*=.:;?\[\]{}~`/+]*$
          type: string
          description: ' A unique reference generated by you that is used to identify a payment throughout its lifecycle. '
        outcome:
          type: string
          enum:
            - 3dsDeviceDataRequired
            - authorized
            - 3dsChallenged
            - sentForSettlement
            - sentForCancellation
            - refused
            - 3dsAuthenticationFailed
            - 3dsUnavailable
            - fraudHighRisk
            - sentForRefund
            - sentForPartialRefund
      discriminator:
        propertyName: outcome
        mapping:
          authorized: '#/components/schemas/CardAuthorizedPaymentResponse'
          refused: '#/components/schemas/PaymentRefusedResponse'
          fraudHighRisk: '#/components/schemas/FraudHighRiskResponse'
          3dsDeviceDataRequired: '#/components/schemas/DeviceDataRequiredResponse'
    PaymentsResponse202:
      type: object
      properties:
        transactionReference:
          maxLength: 64
          minLength: 1
          pattern: ^[-A-Za-z0-9_!@#$%()*=.:;?\[\]{}~`/+]*$
          type: string
          description: ' A unique reference generated by you that is used to identify a payment throughout its lifecycle. '
        outcome:
          type: string
          enum:
            - 3dsDeviceDataRequired
            - authorized
            - 3dsChallenged
            - sentForSettlement
            - sentForCancellation
            - refused
            - 3dsAuthenticationFailed
            - 3dsUnavailable
            - fraudHighRisk
            - sentForRefund
            - sentForPartialRefund
      discriminator:
        propertyName: outcome
        mapping:
          sentForSettlement: '#/components/schemas/SentForSettlementResponse'
          sentForCancellation: '#/components/schemas/SentForCancellationResponse'
    QueryActionList:
      type: object
      properties:
        cancelPayment:
          $ref: '#/components/schemas/PaymentsActionCancel'
        partiallySettlePayment:
          $ref: '#/components/schemas/PaymentsActionPartialSettle'
        settlePayment:
          $ref: '#/components/schemas/PaymentsActionSettle'
        refundPayment:
          $ref: '#/components/schemas/PaymentsActionRefund'
        partiallyRefundPayment:
          $ref: '#/components/schemas/PaymentsActionPartialRefund'
    QueryEventsResponse:
      type: object
      properties:
        lastEvent:
          type: string
        _actions:
          $ref: '#/components/schemas/QueryActionList'
  securitySchemes:
    BasicAuth:
      type: http
      scheme: basic
  examples:
    '400':
      value:
        errorName: bodyDoesNotMatchSchema
        message: A JSON body matching the expected schema must be provided.
        validationErrors:
          - errorName: fieldIsNotAllowed
            message: Field at path is not allowed.
            jsonPath: $.instruction.paymentInstrument.narrative
    '401':
      value:
        errorName: accessDenied
        message: Access to the requested resource has been denied.
    '404':
      value:
        errorName: endpointNotFound
        message: Requested endpoint was not found.
    '406':
      value:
        errorName: headerIsMissing
        message: A valid header must be provided.
        headerName: Content-Type
    '415':
      value:
        errorName: headerHasInvalidValue
        message: A valid header must be provided.
        headerName: Content-Type
    '500':
      value:
        errorName: internalErrorOccurred
        message: We cannot currently process your request. Please contact support.
    card-payment:
      description: A one-off card payment using a plain card number
      value:
        transactionReference: Memory265-13/08/1876
        merchant:
          entity: default
        instruction:
          method: card
          paymentInstrument:
            type: plain
            cardHolderName: Sherlock Holmes
            cardNumber: '4000000000001091'
            expiryDate:
              month: 5
              year: 2035
            billingAddress:
              address1: 221B Baker Street
              address2: Marylebone
              address3: Westminster
              postalCode: SW1 1AA
              city: London
              state: Greater London
              countryCode: GB
            cvc: '123'
          narrative:
            line1: trading name
          value:
            currency: GBP
            amount: 42
    card-payment-auto-settlement:
      description: >-
        A one-off card payment using a plain card number. The payment will move
        to `authorize` and `send for settlement` if basic CVC/AVS checks pass.
      value:
        transactionReference: Memory265-13/08/1876
        merchant:
          entity: default
        instruction:
          settlement:
            auto: true
          method: card
          paymentInstrument:
            type: plain
            cardHolderName: Sherlock Holmes
            cardNumber: '4000000000001091'
            expiryDate:
              month: 5
              year: 2035
            billingAddress:
              address1: 221B Baker Street
              address2: Marylebone
              address3: Westminster
              postalCode: SW1 1AA
              city: London
              state: Greater London
              countryCode: GB
            cvc: '123'
          narrative:
            line1: trading name
          value:
            currency: GBP
            amount: 42
    card-payment-3ds:
      description: >
        A one-off card payment using a plain card number that also performs 3DS
        authentication.  

        * Values that are [required by the
        schemes](/products/access/payments/enable-features/3ds-authentication/#emvco-required-values)
        are included in this example. 

        * See [how to enable 3DS
        authentication](/products/access/payments/enable-features/3ds-authentication/)
        for integration details
      value:
        transactionReference: Memory265-13/08/1876
        merchant:
          entity: default
        instruction:
          method: card
          paymentInstrument:
            type: plain
            cardHolderName: Sherlock Holmes
            cardNumber: '4000000000001091'
            expiryDate:
              month: 5
              year: 2035
            billingAddress:
              address1: 221B Baker Street
              address2: Marylebone
              address3: Westminster
              postalCode: SW1 1AA
              city: London
              state: Greater London
              countryCode: GB
            cvc: '123'
          threeDS:
            type: integrated
            mode: always
            deviceData:
              acceptHeader: text/html
              userAgentHeader: Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:47.0)
              browserLanguage: en-GB
              browserScreenWidth: 900
              browserScreenHeight: 1200
              browserJavaEnabled: true
              browserColorDepth: '32'
              timeZone: '300'
              browserJavascriptEnabled: true
              channel: browser
            challenge:
              returnUrl: http://payment.example.com
          customer:
            email: john.appleseed@example.com
            phone: '00000000000'
            ipAddress: 192.168.0.1
          narrative:
            line1: trading name
          value:
            currency: GBP
            amount: 42
    card-payment-fraud:
      description: >
        A one-off card payment using a plain card number that also performs a
        fraud assessment

        * See [how to enable fraud
        assessment](/products/access/payments/enable-features/fraud-assessment)
        for details
      value:
        transactionReference: Memory265-13/08/1876
        merchant:
          entity: default
        instruction:
          method: card
          paymentInstrument:
            type: plain
            cardHolderName: Sherlock Holmes
            cardNumber: '4000000000001091'
            expiryDate:
              month: 5
              year: 2035
            billingAddress:
              address1: 221B Baker Street
              address2: Marylebone
              address3: Westminster
              postalCode: SW1 1AA
              city: London
              state: Greater London
              countryCode: GB
            cvc: '123'
          fraud:
            type: fraudSight
          customer:
            firstName: John
            lastName: Appleseed
            email: john.appleseed@example.com
            phone: '00000000000'
            ipAddress: 192.168.0.1
            dateOfBirth: '1985-11-23'
            customerId: id123
          shipping:
            firstName: John
            lastName: Doe
            email: john.doe@example.com
            phone: '00000000000'
            address:
              address1: Address 1
              address2: Address 2
              address3: Address 3
              postalCode: Postal Code
              city: City
              state: State
              countryCode: GB
          narrative:
            line1: trading name
          value:
            currency: GBP
            amount: 42
    card-payment-checkout:
      description: >
        A one-off card payment using the Checkout SDK to capture card details in
        a short lived session.  
      value:
        transactionReference: Memory265-13/08/1876
        merchant:
          entity: default
        instruction:
          method: card
          paymentInstrument:
            type: checkout
            cardHolderName: Sherlock Holmes
            sessionHref: >-
              https://try.access.worldpay.com/sessions/eyJrIjoxLCJkIjoialRBL0FFelBzcnZpNCtzRGNRemh0NzI0NE1rdUtjMUFJdjYxVnlibWZuUT0ifQ
            billingAddress:
              address1: 221B Baker Street
              address2: Marylebone
              address3: Westminster
              postalCode: SW1 1AA
              city: London
              state: Greater London
              countryCode: GB
          narrative:
            line1: trading name
          value:
            currency: GBP
            amount: 42
    store-card-token:
      description: >
        Card payment using a plain card number that will also create a Worldpay
        Token for use with future customer initiated transactions (CIT)
      value:
        transactionReference: Memory265-13/08/1876
        merchant:
          entity: default
        instruction:
          method: card
          paymentInstrument:
            type: plain
            cardHolderName: Sherlock Holmes
            cardNumber: '4000000000001091'
            expiryDate:
              month: 5
              year: 2035
          tokenCreation:
            type: worldpay
          customerAgreement:
            type: cardOnFile
            storedCardUsage: first
          narrative:
            line1: trading name
          value:
            currency: GBP
            amount: 42
    use-stored-card-token:
      description: Use a previously stored token for a customer initiated payment (CIT)
      value:
        transactionReference: Memory265-13/08/1876
        merchant:
          entity: default
        instruction:
          method: card
          paymentInstrument:
            type: token
            cvc: '333'
            href: >-
              https://try.access.developer.com/tokens/eyJrIjoxLCJkIjoialRBL0FFelBzcnZpNCtzRGNRemh0NzI0NE1rdUtjMUFJdjYxVnlibWZuUT0ifQ
          customerAgreement:
            type: cardOnFile
            storedCardUsage: subsequent
          narrative:
            line1: trading name
          value:
            currency: GBP
            amount: 42
    use-stored-card-checkout-cvc:
      description: >-
        Use a previously stored token for a customer initiated transaction (CIT)
        and use the Checkout SDK (cvcSessionHref) to capture the CVC value
      value:
        transactionReference: Memory265-13/08/1876
        merchant:
          entity: default
        instruction:
          method: card
          paymentInstrument:
            type: token
            href: >-
              https://try.access.developer.com/tokens/eyJrIjoxLCJkIjoialRBL0FFelBzcnZpNCtzRGNRemh0NzI0NE1rdUtjMUFJdjYxVnlibWZuUT0ifQ
            cvcSessionHref: >-
              https://try.access.worldpay.com/sessions/eyJrIjoxLCJkIjoialRBL0FFelB....
          customerAgreement:
            type: cardOnFile
            storedCardUsage: subsequent
          narrative:
            line1: trading name
          value:
            currency: GBP
            amount: 42
    google-pay-encrypted:
      description: Provide the encrypted Google Pay payload
      value:
        transactionReference: Memory265-13/08/1876
        merchant:
          entity: default
        instruction:
          method: googlepay
          paymentInstrument:
            type: encrypted
            walletToken: >-
              {"protocolVersion":"ECv1","signature":"MEQCIH6Q4OwQ0jAceFEkGF0JID6sJNXxOEi4r+mA7biRxqBQAiAondqoUpU/bdsrAOpZIsrHQS9nwiiNwOrr24RyPeHA0Q\u003d\u003d","intermediateSigningKey":{"signedKey":
              "{\"keyExpiration\":\"1542323393147\",\"keyValue\":\"MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE/1+3HBVSbdv+j7NaArdgMyoSAM43yRydzqdg1TxodSzA96Dj4Mc1EiKroxxunavVIvdxGnJeFViTzFvzFRxyCw\\u003d\\u003d\"}","signatures":
              ["MEYCIQCO2EIi48s8VTH+ilMEpoXLFfkxAwHjfPSCVED/QDSHmQIhALLJmrUlNAY8hDQRV/y1iKZGsWpeNmIP+z+tCQHQxP0v"]},"signedMessage":"{\"tag\":\"jpGz1F1Bcoi/fCNxI9n7Qrsw7i7KHrGtTf3NrRclt+U\\u003d\",\"ephemeralPublicKey\":\"BJatyFvFPPD21l8/uLP46Ta1hsKHndf8Z+tAgk+DEPQgYTkhHy19cF3h/bXs0tWTmZtnNm+vlVrKbRU9K8+7cZs\\u003d\",\"encryptedMessage\":\"mKOoXwi8OavZ\"}"}
          narrative:
            line1: trading name
          value:
            currency: GBP
            amount: 42
    apple-pay-encrypted:
      description: Provide the encrypted Apple Pay payload
      value:
        transactionReference: Memory265-13/08/1876
        merchant:
          entity: default
        instruction:
          method: applepay
          paymentInstrument:
            type: encrypted
            walletToken: >-
              {"version": "EC_v1","data": "kdHd..GQ==","signature":
              "MIAGCSqGSIb3DQEH...AAA","header": {"transactionId":
              "d3b28af..f8","ephemeralPublicKey": "MFkwE..Q==","publicKeyHash":
              "dxCK..6o="}}
          narrative:
            line1: trading name
          value:
            currency: GBP
            amount: 42
    setup-recurring-subscription:
      description: >-
        Set up a recurring subscription payment (first). This is a customer
        initiated transaction (CIT)
      value:
        transactionReference: Memory265-13/08/1876
        merchant:
          entity: default
        instruction:
          method: card
          paymentInstrument:
            type: plain
            cardHolderName: Sherlock Holmes
            cardNumber: '4000000000001091'
            expiryDate:
              month: 5
              year: 2035
          tokenCreation:
            type: worldpay
          customerAgreement:
            type: subscription
            storedCardUsage: first
          narrative:
            line1: trading name
          value:
            currency: GBP
            amount: 42
    setup-recurring-subscription-zero:
      description: >-
        Set up a recurring subscription payment (first). This is a customer
        initiated transaction (CIT)
      value:
        transactionReference: Memory265-13/08/1876
        merchant:
          entity: default
        instruction:
          method: card
          paymentInstrument:
            type: plain
            cardHolderName: Sherlock Holmes
            cardNumber: '4000000000001091'
            expiryDate:
              month: 5
              year: 2035
          tokenCreation:
            type: worldpay
          customerAgreement:
            type: subscription
            storedCardUsage: first
          narrative:
            line1: trading name
          value:
            currency: GBP
            amount: 0
    setup-recurring-installment-merchant:
      description: >-
        Set up a recurring installment payment (first). This is a customer
        initiated transaction (CIT)
      value:
        transactionReference: Memory265-13/08/1876
        merchant:
          entity: default
        instruction:
          method: card
          paymentInstrument:
            type: plain
            cardHolderName: Sherlock Holmes
            cardNumber: '4000000000001091'
            expiryDate:
              month: 5
              year: 2035
          tokenCreation:
            type: worldpay
          customerAgreement:
            type: installment
            installmentType: merchant
            storedCardUsage: first
          narrative:
            line1: trading name
          value:
            currency: GBP
            amount: 42
    setup-recurring-installment-latam:
      description: >-
        Set up a Latin America installment payment. This is a customer initiated
        transaction (CIT)
      value:
        transactionReference: Memory265-13/08/1876
        merchant:
          entity: default
        instruction:
          method: card
          paymentInstrument:
            type: plain
            cardHolderName: Sherlock Holmes
            cardNumber: '4000000000001091'
            expiryDate:
              month: 5
              year: 2035
          customerAgreement:
            type: installment
            installmentType: latinAmerica
            installmentPlan:
              numberOfInstallments: 4
          narrative:
            line1: trading name
          value:
            currency: GBP
            amount: 42
    subsequent-recurring-subscription:
      description: Subsequent payment as part of a recurring subscription series
      value:
        transactionReference: Memory265-13/08/1876
        merchant:
          entity: default
        instruction:
          method: card
          paymentInstrument:
            type: token
            href: >-
              https://try.access.developer.com/tokens/eyJrIjoxLCJkIjoialRBL0FFelBzcnZpNCtzRGNRemh0NzI0NE1rdUtjMUFJdjYxVnlibWZuUT0ifQ
          customerAgreement:
            type: subscription
            storedCardUsage: subsequent
          narrative:
            line1: trading name
          value:
            currency: GBP
            amount: 42
    subsequent-recurring-installment-merchant:
      description: >-
        Set up a recurring subscription payment (first). This is a customer
        initiated transaction (CIT)
      value:
        transactionReference: Memory265-13/08/1876
        merchant:
          entity: default
        instruction:
          method: card
          paymentInstrument:
            type: token
            href: >-
              https://try.access.developer.com/tokens/eyJrIjoxLCJkIjoialRBL0FFelBzcnZpNCtzRGNRemh0NzI0NE1rdUtjMUFJdjYxVnlibWZuUT0ifQ
          customerAgreement:
            type: installment
            installmentType: merchant
            storedCardUsage: subsequent
          narrative:
            line1: trading name
          value:
            currency: GBP
            amount: 42
    recurring-unscheduled:
      description: >-
        Subsequent unscheduled payment as part of a customer agreement. This is
        a merchant initiated transaction (MIT).
      value:
        transactionReference: Memory265-13/08/1876
        merchant:
          entity: default
        instruction:
          method: card
          paymentInstrument:
            type: token
            href: >-
              https://try.access.developer.com/tokens/eyJrIjoxLCJkIjoialRBL0FFelBzcnZpNCtzRGNRemh0NzI0NE1rdUtjMUFJdjYxVnlibWZuUT0ifQ
          customerAgreement:
            type: unscheduled
            schemeReference: MCCOLXT1C0104
          narrative:
            line1: trading name
          value:
            currency: GBP
            amount: 42
    store-card-only-token:
      description: >
        Create a Worldpay Token for use with future customer initiated
        transactions (CIT)

        * `value.amount` is set to `0` to indicate this is not a payment and a
        card verification will be performed instead
      value:
        transactionReference: Memory265-13/08/1876
        merchant:
          entity: default
        instruction:
          method: card
          paymentInstrument:
            type: plain
            cardHolderName: Sherlock Holmes
            cardNumber: '4000000000001091'
            expiryDate:
              month: 5
              year: 2035
          tokenCreation:
            type: worldpay
          customerAgreement:
            type: cardOnFile
            storedCardUsage: first
          narrative:
            line1: trading name
          value:
            currency: GBP
            amount: 0
    authorized-201:
      description: >
        Example of an authorized response. Use the action `settlePayment` to
        complete the transaction

        * 3DS is not enabled

        * includes fraud and token objects 
      value:
        outcome: authorized
        transactionReference: Memory265-13/08/1876
        issuer:
          authorizationCode: '675725'
        riskFactors:
          - risk: notChecked
            type: cvc
          - risk: notChecked
            detail: address
            type: avs
          - risk: notChecked
            detail: postcode
            type: avs
        fraud:
          outcome: lowRisk
          score: 44.6
        token:
          href: >-
            https://try.access.worldpay.com/tokens/eyJrIjoxLCJkIjoiRVl3SDBtNnpEVmVTR3UzRUV3VEJEVDExTkxuVDVydXNiREdLR01hUXUwVT0ifQ
          tokenId: '9968110159504301628'
          tokenExpiryDateTime: '2024-04-11T15:59:23Z'
          cardNumber: 4000********1000
          cardHolderName: test
          cardExpiry:
            year: 2035
            month: 5
          bin: '400000'
          fundingType: debit
          countryCode: GB
          schemeReference: '060720116005060'
          conflicts:
            conflictsExpiryDateTime: '2024-07-04T06:40:32.310316518Z'
            paymentInstrument:
              cardHolderName: John Snow
        paymentInstrument:
          type: card/plain+masked
          cardBin: '400000'
          lastFour: '1000'
          countryCode: GB
          expiryDate:
            year: 2035
            month: 5
          cardBrand: mastercard
          fundingType: debit
          category: consumer
          issuerName: BANK LIMITED
          paymentAccountReference: 3001DBT34Q41D6J7PFC5W0UACOT4C
        _links:
          self:
            href: >-
              https://try.access.worldpay.com/api/payments/eyJrIjoiazNhYjYzMiIsImxpbmtWZXJzaW9uIjoiNS4wLjAifQ%3D%3D.sN%3Ag8wd64bwkbrp0md%2BbPxcanBnk2zLdsIqSa1pR99GeDrCwEtsymFb5gQw9WlrStDTK3eIWPy93y%3A7njc4649JSrU7%2BvFDl1J36%2BcwOkX0lW4Z%2BfnZKMutoUGX3m1%3AmZ%2BxHZ9nDpadu%2BBh7pRyJwnWeiSFTlqKvbrBxNm3HV0xann55pFjZ7qi4DNGZtx9zW6eOLVNOsPL6ecsn3Dp377s7pWRQKSZJKSFIJvAisP8cBzFPzqireuqfCu5ojcm60gRSsqS3glurO24RJkg5SrpRjgY6g7ca8uoA7tKDk9OVOIwORF5sGPHSSGMa2bEl2lMUkAANoWclQHiGzxWQQ%3AAwSoo6RsrBugbhEp0K8HxZkfVrqy4oVlW8FdQ7kIuZOH78i6pPLzArc%2BOtMdnU%3ArZ%3AVhRHFzbbwymcuTiRbNw%3D
        _actions:
          cancelPayment:
            href: >-
              https://try.access.worldpay.com/api/payments/eyJrIjoiazNhYjYzMiIsImxpbmtWZXJzaW9uIjoiNS4wLjAifQ%3D%3D.sN%3Ag8wd64bwkbrp0md%2BbPxcanBnk2zLdsIqSa1pR99GeDrCwEtsymFb5gQw9WlrStDTK3eIWPy93y%3A7njc4649JSrU7%2BvFDl1J36%2BcwOkX0lW4Z%2BfnZKMutoUGX3m1%3AmZ%2BxHZ9nDpadu%2BBh7pRyJwnWeiSFTlqKvbrBxNm3HV0xann55pFjZ7qi4DNGZtx9zW6eOLVNOsPL6ecsn3Dp377s7pWRQKSZJKSFIJvAisP8cBzFPzqireuqfCu5ojcm60gRSsqS3glurO24RJkg5SrpRjgY6g7ca8uoA7tKDk9OVOIwORF5sGPHSSGMa2bEl2lMUkAANoWclQHiGzxWQQ%3AAwSoo6RsrBugbhEp0K8HxZkfVrqy4oVlW8FdQ7kIuZOH78i6pPLzArc%2BOtMdnU%3ArZ%3AVhRHFzbbwymcuTiRbNw%3D/cancellations
            method: POST
          settlePayment:
            href: >-
              https://try.access.worldpay.com/api/payments/eyJrIjoiazNhYjYzMiIsImxpbmtWZXJzaW9uIjoiNS4wLjAifQ%3D%3D.sN%3Ag8wd64bwkbrp0md%2BbPxcanBnk2zLdsIqSa1pR99GeDrCwEtsymFb5gQw9WlrStDTK3eIWPy93y%3A7njc4649JSrU7%2BvFDl1J36%2BcwOkX0lW4Z%2BfnZKMutoUGX3m1%3AmZ%2BxHZ9nDpadu%2BBh7pRyJwnWeiSFTlqKvbrBxNm3HV0xann55pFjZ7qi4DNGZtx9zW6eOLVNOsPL6ecsn3Dp377s7pWRQKSZJKSFIJvAisP8cBzFPzqireuqfCu5ojcm60gRSsqS3glurO24RJkg5SrpRjgY6g7ca8uoA7tKDk9OVOIwORF5sGPHSSGMa2bEl2lMUkAANoWclQHiGzxWQQ%3AAwSoo6RsrBugbhEp0K8HxZkfVrqy4oVlW8FdQ7kIuZOH78i6pPLzArc%2BOtMdnU%3ArZ%3AVhRHFzbbwymcuTiRbNw%3D/settlements
            method: POST
          partiallySettlePayment:
            href: >-
              https://try.access.worldpay.com/api/payments/eyJrIjoiazNhYjYzMiIsImxpbmtWZXJzaW9uIjoiNS4wLjAifQ%3D%3D.sN%3Ag8wd64bwkbrp0md%2BbPxcanBnk2zLdsIqSa1pR99GeDrCwEtsymFb5gQw9WlrStDTK3eIWPy93y%3A7njc4649JSrU7%2BvFDl1J36%2BcwOkX0lW4Z%2BfnZKMutoUGX3m1%3AmZ%2BxHZ9nDpadu%2BBh7pRyJwnWeiSFTlqKvbrBxNm3HV0xann55pFjZ7qi4DNGZtx9zW6eOLVNOsPL6ecsn3Dp377s7pWRQKSZJKSFIJvAisP8cBzFPzqireuqfCu5ojcm60gRSsqS3glurO24RJkg5SrpRjgY6g7ca8uoA7tKDk9OVOIwORF5sGPHSSGMa2bEl2lMUkAANoWclQHiGzxWQQ%3AAwSoo6RsrBugbhEp0K8HxZkfVrqy4oVlW8FdQ7kIuZOH78i6pPLzArc%2BOtMdnU%3ArZ%3AVhRHFzbbwymcuTiRbNw%3D/partialSettlements
            method: POST
    3ds-device-data-required-201:
      description: >-
        If 3DS is enabled the issuers [device data
        collection](../enable-3ds-authentication/web/#device-data-collection-ddc)
        must be run on the customer's browser
      value:
        transactionReference: Memory265-13/08/1876
        outcome: 3dsDeviceDataRequired
        deviceDataCollection:
          jwt: >-
            eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJPcmdVbml0SWQiOiI2NjAzMDA3YWJlMjMxZTM1ZTNmNTRjODkiLCJpc3MiOiI2NjAzMDA3YTE2ZGQ5YTdlNmEwMzM0MDciLCJleHAiOjE3MTIyNDg3MTIsImlhdCI6MTcxMjI0ODExMiwianRpIjoiZjdjZGVhZWUtMTY4MS00NjlhLTgxZmEtMzBkY2MyOTYzODA3In0.T1a6hOCPVVsQmcCKU3eczwmxlHoWK83tUqIJ_VG4fwc
          url: https://centinelapistag.cardinalcommerce.com/V1/Cruise/Collect
          bin: '400000'
        _actions:
          supply3dsDeviceData:
            href: >-
              https://try.access.worldpay.com/api/payments/eyJrIjoxLCJkIjoiR0ZSM3R2Z1d4OTI5SEdSVlVaWlk0cllQV3p4TU5raU85Y0ZwSkd2b09FWGo0SnVHYXI0MzJqZlM4RHp5UnRaaiJ9/3dsDeviceData
            method: POST
    fs-highrisk:
      description: >-
        If [FraudSight is enabled](../enable-fraud-assessment) the payment could
        be flagged as `fraudHighRisk`, stopping the request from proceeding any
        further
      value:
        outcome: fraudHighRisk
        transactionReference: 2847f678-fd97-4558-b913-8945c8b11dc9
        score: 97
        reason:
          - Recent unexpected card activity
    refused-201:
      description: |
        Example of an refused response.
      value:
        outcome: refused
        transactionReference: Memory265-13/08/1876
        refusalDescription: REFUSED
        refusalCode: '5'
        advice:
          code: '01'
        riskFactors:
          - risk: notChecked
            type: cvc
          - risk: notChecked
            detail: address
            type: avs
          - risk: notChecked
            detail: postcode
            type: avs
        fraud:
          outcome: lowRisk
          score: 44.6
        threeDS:
          outcome: authenticated
          issuerResponse: frictionless
    sent-for-settlement-202:
      description: |
        Example of a sentForSettlement response
        * auto settlement was enabled in the payments request
        * 3DS is not enabled
        * includes fraud and token objects 
      value:
        outcome: sentForSettlement
        transactionReference: Memory265-13/08/1876
        schemeReference: '060720116005060'
        issuer:
          authorizationCode: '675725'
        riskFactors:
          - risk: notChecked
            type: cvc
          - risk: notChecked
            detail: address
            type: avs
          - risk: notChecked
            detail: postcode
            type: avs
        fraud:
          outcome: lowRisk
          score: 44.6
        token:
          href: >-
            https://try.access.worldpay.com/tokens/eyJrIjoxLCJkIjoiRVl3SDBtNnpEVmVTR3UzRUV3VEJEVDExTkxuVDVydXNiREdLR01hUXUwVT0ifQ
          tokenId: '9968110159504301628'
          tokenExpiryDateTime: '2024-04-11T15:59:23Z'
          cardNumber: 4000********1000
          cardHolderName: test
          cardExpiry:
            year: 2035
            month: 5
          bin: '400000'
          fundingType: debit
          schemeReference: '060720116005060'
          conflicts:
            conflictsExpiryDateTime: '2024-07-04T06:40:32.310316518Z'
            paymentInstrument:
              cardHolderName: John Snow
        paymentInstrument:
          type: card/plain+masked
          cardBin: '400000'
          lastFour: '1000'
          countryCode: GB
          expiryDate:
            year: 2035
            month: 5
          cardBrand: mastercard
          fundingType: debit
          category: consumer
          issuerName: BANK LIMITED
          paymentAccountReference: 3001DBT34Q41D6J7PFC5W0UACOT4C
        _links:
          self:
            href: >-
              https://try.access.worldpay.com/api/payments/eyJrIjoiazNhYjYzMiIsImxpbmtWZXJzaW9uIjoiNS4wLjAifQ%3D%3D.sN%3Ag8wd64bwkbrp0md%2BbPxcanBnk2zLdsIqSa1pR99GeDrCwEtsymFb5gQw9WlrStDTK3eIWPy93y%3A7njc4649JSrU7%2BvFDl1J36%2BcwOkX0lW4Z%2BfnZKMutoUGX3m1%3AmUCGmlXGGNqJmZcIdZa%3Aufi8N9Y8uwrkGtx1suHsSFnXn2PMsm%3AcRBXHzZt3giUlFW6eOLVNOsPL6ecsn3Dp377s7pWRQKSZJKSFIJvAisP8cBzFPzqireuqfCu5ojcm60gRSsqS3glurO24RJkg5SrpRjgY6g7ca8uoA7tKDk9OVOIwORF5sGPHSSGMa2bEl2lMUkAANoWclQHiGzxWQQ2hKYh1GAhFAwfPvBamw%3AisDwI2AuXQ9KT%3AMt9SY%3AfYERqcZ58SBNT3Gkwn1j%2Bkd7LZ%3AVhRHFzbbwymcuTiRbNw%3D
        _actions:
          refundPayment:
            href: >-
              https://try.access.worldpay.com/api/payments/eyJrIjoiazNhYjYzMiIsImxpbmtWZXJzaW9uIjoiNS4wLjAifQ%3D%3D.sN%3Ag8wd64bwkbrp0md%2BbPxcanBnk2zLdsIqSa1pR99GeDrCwEtsymFb5gQw9WlrStDTK3eIWPy93y%3A7njc4649JSrU7%2BvFDl1J36%2BcwOkX0lW4Z%2BfnZKMutoUGX3m1%3AmUCGmlXGGNqJmZcIdZa%3Aufi8N9Y8uwrkGtx1suHsSFnXn2PMsm%3AcRBXHzZt3giUlFW6eOLVNOsPL6ecsn3Dp377s7pWRQKSZJKSFIJvAisP8cBzFPzqireuqfCu5ojcm60gRSsqS3glurO24RJkg5SrpRjgY6g7ca8uoA7tKDk9OVOIwORF5sGPHSSGMa2bEl2lMUkAANoWclQHiGzxWQQ2hKYh1GAhFAwfPvBamw%3AisDwI2AuXQ9KT%3AMt9SY%3AfYERqcZ58SBNT3Gkwn1j%2Bkd7LZ%3AVhRHFzbbwymcuTiRbNw%3D/refunds
            method: POST
          partiallyRefundPayment:
            href: >-
              https://try.access.worldpay.com/api/payments/eyJrIjoiazNhYjYzMiIsImxpbmtWZXJzaW9uIjoiNS4wLjAifQ%3D%3D.sN%3Ag8wd64bwkbrp0md%2BbPxcanBnk2zLdsIqSa1pR99GeDrCwEtsymFb5gQw9WlrStDTK3eIWPy93y%3A7njc4649JSrU7%2BvFDl1J36%2BcwOkX0lW4Z%2BfnZKMutoUGX3m1%3AmUCGmlXGGNqJmZcIdZa%3Aufi8N9Y8uwrkGtx1suHsSFnXn2PMsm%3AcRBXHzZt3giUlFW6eOLVNOsPL6ecsn3Dp377s7pWRQKSZJKSFIJvAisP8cBzFPzqireuqfCu5ojcm60gRSsqS3glurO24RJkg5SrpRjgY6g7ca8uoA7tKDk9OVOIwORF5sGPHSSGMa2bEl2lMUkAANoWclQHiGzxWQQ2hKYh1GAhFAwfPvBamw%3AisDwI2AuXQ9KT%3AMt9SY%3AfYERqcZ58SBNT3Gkwn1j%2Bkd7LZ%3AVhRHFzbbwymcuTiRbNw%3D/partialRefunds
            method: POST
    sent-for-cancellation-202:
      value:
        outcome: sentForCancellation
        transactionReference: f4806b75-89d1-498a-8634-bfa79afca54f
        schemeReference: '060720116005060'
        issuer:
          authorizationCode: '675725'
        riskFactors:
          - risk: notMatched
            type: cvc
          - risk: notChecked
            detail: address
            type: avs
          - risk: notChecked
            detail: postcode
            type: avs
        fraud:
          outcome: lowRisk
          score: 44
        threeDS:
          outcome: authenticated
          issuerResponse: frictionless
        paymentInstrument:
          type: card/plain+masked
          cardBin: '400000'
          lastFour: '1000'
          countryCode: GB
          expiryDate:
            year: 2035
            month: 5
          cardBrand: mastercard
          fundingType: debit
          category: consumer
          issuerName: BANK LIMITED
          paymentAccountReference: 3001DBT34Q41D6J7PFC5W0UACOT4C
        _links:
          self:
            href: >-
              https://try.access.worldpay.com/api/payments/eyJrIjoiazNhYjYzMiIsImxpbmtWZXJzaW9uIjoiNS4wLjAifQ%3D%3D.sN%3Ag8wd64bwkbrp0md%2BbPxcanBnk2zLdsIqSa1pR99GeDrCwEtsymFb5gQw9WlrStDTK3eIWPy93y%3A7njc4649JSrU7%2BvFDl1J36%2BcwOkX0lW4Z%2BfnZKMutoUGX3m1%3Am1abCnrwHIBOLZ%3A8ZpsSaLoyDtB%3A8H%2BxSOOOGjEbko3O%3A%3A7gTMASwaw7KY3SuOCoh4KCq84ktTU7AB2kOFpTY0bs7pWRQKSZJKSFIJvAisP8cBzFPzqireuqfCu5ojcm60gRSsqS3glurO24RJkg5SrpRjgY6g7ca8uoA7tKDk9OVOIwORF5sGPHSSGMa2bEl2lMUkAANoWclQHiGzxWQQ3ZOMOj3ix5oo3ctSHv2uo5m6InByzI1XuTONS3N8O%2B1%2BuC8Xk67Ze0uAJk%2BrJN9o7Z%3AVhRHFzbbwymcuTiRbNw%3D
    3ds-challenged-201:
      description: >-
        As an additional fraud measure the issuer requests a [3DS
        challenge](../enable-3ds-authentication/web/#challenge--verification) to
        be performed
      value:
        outcome: 3dsChallenged
        transactionReference: Memory265-13/08/1876
        authentication:
          version: 2.1.0
        challenge:
          reference: 706hovL8DK1tIGGzQUV1
          url: https://centinelapistag.cardinalcommerce.com/V2/Cruise/StepUp
          jwt: >-
            eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJPcmdVbml0SWQiOiI2NjAzMDA3YWJlMjMxZTM1ZTNmNTRjODkiLCJPYmplY3RpZnlQYXlsb2FkIjpmYWxzZSwiaXNzIjoiNjYwMzAwN2ExNmRkOWE3ZTZhMDMzNDA3IiwiUmV0dXJuVXJsIjoiaHR0cDovL3BheW1lbnQuZXhhbXBsZS5jb20iLCJQYXlsb2FkIjoie1wiUGF5bG9hZFwiOlwiZXlKdFpYTnpZV2RsVkhsd1pTSTZJa05TWlhFaUxDSnRaWE56WVdkbFZtVnljMmx2YmlJNklqSXVNUzR3SWl3aWRHaHlaV1ZFVTFObGNuWmxjbFJ5WVc1elNVUWlPaUppTkRKbE5UWmpaaTAyWkRrMkxUUXpNek10T0dJMk5DMWlNbVU0TldZMFpURTFaVGtpTENKaFkzTlVjbUZ1YzBsRUlqb2laV1ZqWldZeE1ETXRNRE13TVMwMFpUbGtMVGsxTmpFdE56ZGlNbVkzTlRFMk5HUmhJaXdpWTJoaGJHeGxibWRsVjJsdVpHOTNVMmw2WlNJNklqQTBJbjBcIixcIkFDU1VybFwiOlwiaHR0cHM6XFwvXFwvMW1lcmNoYW50YWNzc3RhZy5jYXJkaW5hbGNvbW1lcmNlLmNvbVxcL01lcmNoYW50QUNTV2ViXFwvY3JlcS5qc3BcIixcIlRyYW5zYWN0aW9uSWRcIjpcIjcwNmhvdkw4REsxdElHR3pRVVYxXCJ9IiwiZXhwIjoxNzEyMzA2MDk0LCJpYXQiOjE3MTIzMDU0OTQsImp0aSI6IjE4YTIwYzNkLTZhZmMtNDA5My04NGEwLTQ2OGEyYTY5MTE0OCJ9.YEpOuTxnqrXRiHan-givWBd6FfTDJOfNg-h2dF2yA6A
          payload: >-
            eyJtZXNzYWdlVHlwZSI6IkNSZXEiLCJtZXNzYWdlVmVyc2lvbiI6IjIuMS4wIiwidGhyZWVEU1NlcnZlclRyYW5zSUQiOiJiNDJlNTZjZi02ZDk2LTQzMzMtOGI2NC1iMmU4NWY0ZTE1ZTkiLCJhY3NUcmFuc0lEIjoiZWVjZWYxMDMtMDMwMS00ZTlkLTk1NjEtNzdiMmY3NTE2NGRhIiwiY2hhbGxlbmdlV2luZG93U2l6ZSI6IjA0In0
        _actions:
          complete3dsChallenge:
            href: >-
              https://try.access.worldpay.com/api/payments/eyJrIjoxLCJkIjoiZXlOaXNtU0lzQnVLTm5BQkt1WjEyMVFxeXg2bUZtb2hEcEpFeDdyYXZ3SDE3NFBpUTBsWUpwekptbW9hR3VVSyJ9/3dsChallenges
            method: POST
    authorized-3ds-frictionless-201:
      description: >
        Example of an authorized response following a 3DS authentication without
        a challenge (frictionless). Use the action `settlePayment` to complete
        the transaction

        * includes fraud, token and threeDS objects 
      value:
        outcome: authorized
        transactionReference: Memory265-13/08/1876
        riskFactors:
          - risk: notChecked
            type: cvc
          - risk: notChecked
            detail: address
            type: avs
          - risk: notChecked
            detail: postcode
            type: avs
        fraud:
          outcome: lowRisk
          score: 44.6
        threeDS:
          outcome: authenticated
          issuerResponse: frictionless
        token:
          href: >-
            https://try.access.worldpay.com/tokens/eyJrIjoxLCJkIjoiRVl3SDBtNnpEVmVTR3UzRUV3VEJEVDExTkxuVDVydXNiREdLR01hUXUwVT0ifQ
          tokenId: '9968110159504301628'
          tokenExpiryDateTime: '2024-04-11T15:59:23Z'
          cardNumber: 4000********1000
          cardHolderName: test
          cardExpiry:
            year: 2035
            month: 5
          bin: '400000'
          fundingType: debit
          schemeReference: '060720116005060'
          conflicts:
            conflictsExpiryDateTime: '2024-07-04T06:40:32.310316518Z'
            paymentInstrument:
              cardHolderName: John Snow
        paymentInstrument:
          type: card/plain+masked
          cardBin: '400000'
          lastFour: '1000'
          countryCode: GB
          expiryDate:
            year: 2035
            month: 5
          cardBrand: mastercard
          fundingType: debit
          category: consumer
          issuerName: BANK LIMITED
          paymentAccountReference: 3001DBT34Q41D6J7PFC5W0UACOT4C
        _links:
          self:
            href: >-
              https://try.access.worldpay.com/api/payments/eyJrIjoiazNhYjYzMiIsImxpbmtWZXJzaW9uIjoiNS4wLjAifQ%3D%3D.sN%3Ag8wd64bwkbrp0md%2BbPxcanBnk2zLdsIqSa1pR99GeDrCwEtsymFb5gQw9WlrStDTK3eIWPy93y%3A7njc4649JSrU7%2BvFDl1J36%2BcwOkX0lW4Z%2BfnZKMutoUGX3m1%3AmZ%2BxHZ9nDpadu%2BBh7pRyJwnWeiSFTlqKvbrBxNm3HV0xann55pFjZ7qi4DNGZtx9zW6eOLVNOsPL6ecsn3Dp377s7pWRQKSZJKSFIJvAisP8cBzFPzqireuqfCu5ojcm60gRSsqS3glurO24RJkg5SrpRjgY6g7ca8uoA7tKDk9OVOIwORF5sGPHSSGMa2bEl2lMUkAANoWclQHiGzxWQQ%3AAwSoo6RsrBugbhEp0K8HxZkfVrqy4oVlW8FdQ7kIuZOH78i6pPLzArc%2BOtMdnU%3ArZ%3AVhRHFzbbwymcuTiRbNw%3D
        _actions:
          cancelPayment:
            href: >-
              https://try.access.worldpay.com/api/payments/eyJrIjoiazNhYjYzMiIsImxpbmtWZXJzaW9uIjoiNS4wLjAifQ%3D%3D.sN%3Ag8wd64bwkbrp0md%2BbPxcanBnk2zLdsIqSa1pR99GeDrCwEtsymFb5gQw9WlrStDTK3eIWPy93y%3A7njc4649JSrU7%2BvFDl1J36%2BcwOkX0lW4Z%2BfnZKMutoUGX3m1%3AmZ%2BxHZ9nDpadu%2BBh7pRyJwnWeiSFTlqKvbrBxNm3HV0xann55pFjZ7qi4DNGZtx9zW6eOLVNOsPL6ecsn3Dp377s7pWRQKSZJKSFIJvAisP8cBzFPzqireuqfCu5ojcm60gRSsqS3glurO24RJkg5SrpRjgY6g7ca8uoA7tKDk9OVOIwORF5sGPHSSGMa2bEl2lMUkAANoWclQHiGzxWQQ%3AAwSoo6RsrBugbhEp0K8HxZkfVrqy4oVlW8FdQ7kIuZOH78i6pPLzArc%2BOtMdnU%3ArZ%3AVhRHFzbbwymcuTiRbNw%3D/cancellations
            method: POST
          settlePayment:
            href: >-
              https://try.access.worldpay.com/api/payments/eyJrIjoiazNhYjYzMiIsImxpbmtWZXJzaW9uIjoiNS4wLjAifQ%3D%3D.sN%3Ag8wd64bwkbrp0md%2BbPxcanBnk2zLdsIqSa1pR99GeDrCwEtsymFb5gQw9WlrStDTK3eIWPy93y%3A7njc4649JSrU7%2BvFDl1J36%2BcwOkX0lW4Z%2BfnZKMutoUGX3m1%3AmZ%2BxHZ9nDpadu%2BBh7pRyJwnWeiSFTlqKvbrBxNm3HV0xann55pFjZ7qi4DNGZtx9zW6eOLVNOsPL6ecsn3Dp377s7pWRQKSZJKSFIJvAisP8cBzFPzqireuqfCu5ojcm60gRSsqS3glurO24RJkg5SrpRjgY6g7ca8uoA7tKDk9OVOIwORF5sGPHSSGMa2bEl2lMUkAANoWclQHiGzxWQQ%3AAwSoo6RsrBugbhEp0K8HxZkfVrqy4oVlW8FdQ7kIuZOH78i6pPLzArc%2BOtMdnU%3ArZ%3AVhRHFzbbwymcuTiRbNw%3D/settlements
            method: POST
          partiallySettlePayment:
            href: >-
              https://try.access.worldpay.com/api/payments/eyJrIjoiazNhYjYzMiIsImxpbmtWZXJzaW9uIjoiNS4wLjAifQ%3D%3D.sN%3Ag8wd64bwkbrp0md%2BbPxcanBnk2zLdsIqSa1pR99GeDrCwEtsymFb5gQw9WlrStDTK3eIWPy93y%3A7njc4649JSrU7%2BvFDl1J36%2BcwOkX0lW4Z%2BfnZKMutoUGX3m1%3AmZ%2BxHZ9nDpadu%2BBh7pRyJwnWeiSFTlqKvbrBxNm3HV0xann55pFjZ7qi4DNGZtx9zW6eOLVNOsPL6ecsn3Dp377s7pWRQKSZJKSFIJvAisP8cBzFPzqireuqfCu5ojcm60gRSsqS3glurO24RJkg5SrpRjgY6g7ca8uoA7tKDk9OVOIwORF5sGPHSSGMa2bEl2lMUkAANoWclQHiGzxWQQ%3AAwSoo6RsrBugbhEp0K8HxZkfVrqy4oVlW8FdQ7kIuZOH78i6pPLzArc%2BOtMdnU%3ArZ%3AVhRHFzbbwymcuTiRbNw%3D/partialSettlements
            method: POST
    3ds-unavailable-201:
      description: >-
        3DS is unavailable when attempting authentication. This will also be
        returned if a 3DS challenge is not completed and the payment journey is
        resumed anyway.
      value:
        transactionReference: Memory265-13/08/1876
        outcome: 3dsUnavailable
    3ds-authentication-failed-201:
      description: >-
        Authentication failed by the issuer as part of a frictionless flow or
        the challenge (identity check) was attempted but failed by the customer
      value:
        transactionReference: f71d7212-584f-421b-b977-a05e41ab5d0d
        outcome: 3dsAuthenticationFailed
        authentication:
          version: 2.1.0
          eci: '07'
          transactionId: 8ccd2246-ac18-4d25-8394-aec2b8eed92e
    sent-for-refund-202:
      value:
        outcome: sentForRefund
        _links:
          self:
            href: >-
              https://try.access.worldpay.com/api/payments/eyJrIjoiazNhYjYzMiIsImxpbmtWZXJzaW9uIjoiNS4wLjAifQ%3D%3D.sN%3Ag8wd64bwkbrp0md%2BbPxcanBnk2zLdsIqSa1pR99GeDrCwEtsymFb5gQw9WlrStDTK3eIWPy93y%3A7njc4649JSrU7%2BvFDl1J36%2BcwOkX0lW4Z%2BfnZKMutoUGX3m1%3Amp3aEvr3BYtH3ZBei61fRGtglovAih6FUXj2880UCtZGZ21djyVQzY36sEFMZMvXsW6eOLVNOsPL6ecsn3Dp377s7pWRQKSZJKSFIJvAisP8cBzFPzqireuqfCu5ojcm60gRSsqS3glurO24RJkg5SrpRjgY6g7ca8uoA7tKDk9OVOIwORF5sGPHSSGMa2bEl2lMUkAANoWclQHiGzxWQQ6i4R8ak4j6oWbsrX5AP4ErD6p2VzRF0yzljcK%2BKWD8%2BEEBcQpn0%3ADcXCJRXfVD0ibZ%3AVhRHFzbbwymcuTiRbNw%3D
    partial-refund:
      value:
        value:
          amount: 10
          currency: GBP
        reference: partial-refund-reference
    sent-for-partial-refund-202:
      value:
        outcome: sentForPartialRefund
        _links:
          self:
            href: >-
              https://try.access.worldpay.com/api/payments/eyJrIjoiazNhYjYzMiIsImxpbmtWZXJzaW9uIjoiNS4wLjAifQ%3D%3D.sN%3Ag8wd64bwkbrp0md%2BbPxcanBnk2zLdsIqSa1pR99GeDrCwEtsymFb5gQw9WlrStDTK3eIWPy93y%3A7njc4649JSrU7%2BvFDl1J36%2BcwOkX0lW4Z%2BfnZKMutoUGX3m1%3Amrpc69OgkOdsQcFu1REHDtf%3ADmgAoXvDPFmn0QZPIS4H4gS5sW2Mrlt4M7c6S1k5U4KCq84ktTU7AB2kOFpTY0bs7pWRQKSZJKSFIJvAisP8cBzFPzqireuqfCu5ojcm60gRSsqS3glurO24RJkg5SrpRjgY6g7ca8uoA7tKDk9OVOIwORF5sGPHSSGMa2bEl2lMUkAANoWclQHiGzxWQQ9hxVM07vmgQjdqz1DxFQ6AqNuDe44KOEtBqjjis8%3APhltX3idEtP6TkjNfQHRCHVbZ%3AVhRHFzbbwymcuTiRbNw%3D
        _actions:
          partiallyRefundPayment:
            href: >-
              https://try.access.worldpay.com/api/payments/eyJrIjoiazNhYjYzMiIsImxpbmtWZXJzaW9uIjoiNS4wLjAifQ%3D%3D.sN%3Ag8wd64bwkbrp0md%2BbPxcanBnk2zLdsIqSa1pR99GeDrCwEtsymFb5gQw9WlrStDTK3eIWPy93y%3A7njc4649JSrU7%2BvFDl1J36%2BcwOkX0lW4Z%2BfnZKMutoUGX3m1%3Amrpc69OgkOdsQcFu1REHDtf%3ADmgAoXvDPFmn0QZPIS4H4gS5sW2Mrlt4M7c6S1k5U4KCq84ktTU7AB2kOFpTY0bs7pWRQKSZJKSFIJvAisP8cBzFPzqireuqfCu5ojcm60gRSsqS3glurO24RJkg5SrpRjgY6g7ca8uoA7tKDk9OVOIwORF5sGPHSSGMa2bEl2lMUkAANoWclQHiGzxWQQ9hxVM07vmgQjdqz1DxFQ6AqNuDe44KOEtBqjjis8%3APhltX3idEtP6TkjNfQHRCHVbZ%3AVhRHFzbbwymcuTiRbNw%3D/partialRefunds
            method: POST
    partial-settle:
      value:
        value:
          amount: 10
          currency: GBP
        reference: partial-settle-reference
    sent-for-partial-settlement-202:
      value:
        outcome: sentForSettlement
        _links:
          self:
            href: >-
              https://try.access.worldpay.com/api/payments/eyJrIjoiazNhYjYzMiIsImxpbmtWZXJzaW9uIjoiNS4wLjAifQ%3D%3D.sN%3Ag8wd64bwkbrp0md%2BbPxcanBnk2zLdsIqSa1pR99GeDrCwEtsymFb5gQw9WlrStDTK3eIWPy93y%3A7njc4649JSrU7%2BvFDl1J36%2BcwOkX0lW4Z%2BfnZKMutoUGX3m1%3Amrpc69OgkOdsQcFu1REHDtf%3ADmgAoXvDPFmn0QZPIS4H4gS5sW2Mrlt4M7c6S1k5UW6eOLVNOsPL6ecsn3Dp377s7pWRQKSZJKSFIJvAisP8cBzFPzqireuqfCu5ojcm60gRSsqS3glurO24RJkg5SrpRjgY6g7ca8uoA7tKDk9OVOIwORF5sGPHSSGMa2bEl2lMUkAANoWclQHiGzxWQQ9hxVM07vmgQjdqz1DxFQ6AqNuDe44KOEtBqjjis8%3APhltX3idEtP6TkjNfQHRCHVbZ%3AVhRHFzbbwymcuTiRbNw%3D
        _actions:
          refundPayment:
            href: >-
              https://try.access.worldpay.com/api/payments/eyJrIjoiazNhYjYzMiIsImxpbmtWZXJzaW9uIjoiNS4wLjAifQ%3D%3D.sN%3Ag8wd64bwkbrp0md%2BbPxcanBnk2zLdsIqSa1pR99GeDrCwEtsymFb5gQw9WlrStDTK3eIWPy93y%3A7njc4649JSrU7%2BvFDl1J36%2BcwOkX0lW4Z%2BfnZKMutoUGX3m1%3Amrpc69OgkOdsQcFu1REHDtf%3ADmgAoXvDPFmn0QZPIS4H4gS5sW2Mrlt4M7c6S1k5U4KCq84ktTU7AB2kOFpTY0bs7pWRQKSZJKSFIJvAisP8cBzFPzqireuqfCu5ojcm60gRSsqS3glurO24RJkg5SrpRjgY6g7ca8uoA7tKDk9OVOIwORF5sGPHSSGMa2bEl2lMUkAANoWclQHiGzxWQQ9hxVM07vmgQjdqz1DxFQ6AqNuDe44KOEtBqjjis8%3APhltX3idEtP6TkjNfQHRCHVbZ%3AVhRHFzbbwymcuTiRbNw%3D/refunds
            method: POST
          partiallyRefundPayment:
            href: >-
              https://try.access.worldpay.com/api/payments/eyJrIjoiazNhYjYzMiIsImxpbmtWZXJzaW9uIjoiNS4wLjAifQ%3D%3D.sN%3Ag8wd64bwkbrp0md%2BbPxcanBnk2zLdsIqSa1pR99GeDrCwEtsymFb5gQw9WlrStDTK3eIWPy93y%3A7njc4649JSrU7%2BvFDl1J36%2BcwOkX0lW4Z%2BfnZKMutoUGX3m1%3Amrpc69OgkOdsQcFu1REHDtf%3ADmgAoXvDPFmn0QZPIS4H4gS5sW2Mrlt4M7c6S1k5U4KCq84ktTU7AB2kOFpTY0bs7pWRQKSZJKSFIJvAisP8cBzFPzqireuqfCu5ojcm60gRSsqS3glurO24RJkg5SrpRjgY6g7ca8uoA7tKDk9OVOIwORF5sGPHSSGMa2bEl2lMUkAANoWclQHiGzxWQQ9hxVM07vmgQjdqz1DxFQ6AqNuDe44KOEtBqjjis8%3APhltX3idEtP6TkjNfQHRCHVbZ%3AVhRHFzbbwymcuTiRbNw%3D/partialRefunds
            method: POST
          partiallySettlePayment:
            href: >-
              https://try.access.worldpay.com/api/payments/eyJrIjoiazNhYjYzMiIsImxpbmtWZXJzaW9uIjoiNS4wLjAifQ%3D%3D.sN%3Ag8wd64bwkbrp0md%2BbPxcanBnk2zLdsIqSa1pR99GeDrCwEtsymFb5gQw9WlrStDTK3eIWPy93y%3A7njc4649JSrU7%2BvFDl1J36%2BcwOkX0lW4Z%2BfnZKMutoUGX3m1%3Amrpc69OgkOdsQcFu1REHDtf%3ADmgAoXvDPFmn0QZPIS4H4gS5sW2Mrlt4M7c6S1k5U4KCq84ktTU7AB2kOFpTY0bs7pWRQKSZJKSFIJvAisP8cBzFPzqireuqfCu5ojcm60gRSsqS3glurO24RJkg5SrpRjgY6g7ca8uoA7tKDk9OVOIwORF5sGPHSSGMa2bEl2lMUkAANoWclQHiGzxWQQ9hxVM07vmgQjdqz1DxFQ6AqNuDe44KOEtBqjjis8%3APhltX3idEtP6TkjNfQHRCHVbZ%3AVhRHFzbbwymcuTiRbNw%3D/partialSettlements
            method: POST
          cancelPayment:
            href: >-
              https://try.access.worldpay.com/api/payments/eyJrIjoiazNhYjYzMiIsImxpbmtWZXJzaW9uIjoiNS4wLjAifQ%3D%3D.sN%3Ag8wd64bwkbrp0md%2BbPxcanBnk2zLdsIqSa1pR99GeDrCwEtsymFb5gQw9WlrStDTK3eIWPy93y%3A7njc4649JSrU7%2BvFDl1J36%2BcwOkX0lW4Z%2BfnZKMutoUGX3m1%3Amrpc69OgkOdsQcFu1REHDtf%3ADmgAoXvDPFmn0QZPIS4H4gS5sW2Mrlt4M7c6S1k5U4KCq84ktTU7AB2kOFpTY0bs7pWRQKSZJKSFIJvAisP8cBzFPzqireuqfCu5ojcm60gRSsqS3glurO24RJkg5SrpRjgY6g7ca8uoA7tKDk9OVOIwORF5sGPHSSGMa2bEl2lMUkAANoWclQHiGzxWQQ9hxVM07vmgQjdqz1DxFQ6AqNuDe44KOEtBqjjis8%3APhltX3idEtP6TkjNfQHRCHVbZ%3AVhRHFzbbwymcuTiRbNw%3D/cancellations
            method: POST
    sent-for-settlement-202-2:
      value:
        outcome: sentForSettlement
        _links:
          self:
            href: >-
              https://try.access.worldpay.com/api/payments/eyJrIjoiazNhYjYzMiIsImxpbmtWZXJzaW9uIjoiNS4wLjAifQ%3D%3D.sN%3Ag8wd64bwkbrp0md%2BbPxcanBnk2zLdsIqSa1pR99GeDrCwEtsymFb5gQw9WlrStDTK3eIWPy93y%3A7njc4649JSrU7%2BvFDl1J36%2BcwOkX0lW4Z%2BfnZKMutoUGX3m1%3Amrpc69OgkOdsQcFu1REHDtf%3ADmgAoXvDPFmn0QZPIS4H4gS5sW2Mrlt4M7c6S1k5UW6eOLVNOsPL6ecsn3Dp377s7pWRQKSZJKSFIJvAisP8cBzFPzqireuqfCu5ojcm60gRSsqS3glurO24RJkg5SrpRjgY6g7ca8uoA7tKDk9OVOIwORF5sGPHSSGMa2bEl2lMUkAANoWclQHiGzxWQQ9hxVM07vmgQjdqz1DxFQ6AqNuDe44KOEtBqjjis8%3APhltX3idEtP6TkjNfQHRCHVbZ%3AVhRHFzbbwymcuTiRbNw%3D
        _actions:
          refundPayment:
            href: >-
              https://try.access.worldpay.com/api/payments/eyJrIjoiazNhYjYzMiIsImxpbmtWZXJzaW9uIjoiNS4wLjAifQ%3D%3D.sN%3Ag8wd64bwkbrp0md%2BbPxcanBnk2zLdsIqSa1pR99GeDrCwEtsymFb5gQw9WlrStDTK3eIWPy93y%3A7njc4649JSrU7%2BvFDl1J36%2BcwOkX0lW4Z%2BfnZKMutoUGX3m1%3Amrpc69OgkOdsQcFu1REHDtf%3ADmgAoXvDPFmn0QZPIS4H4gS5sW2Mrlt4M7c6S1k5UW6eOLVNOsPL6ecsn3Dp377s7pWRQKSZJKSFIJvAisP8cBzFPzqireuqfCu5ojcm60gRSsqS3glurO24RJkg5SrpRjgY6g7ca8uoA7tKDk9OVOIwORF5sGPHSSGMa2bEl2lMUkAANoWclQHiGzxWQQ9hxVM07vmgQjdqz1DxFQ6AqNuDe44KOEtBqjjis8%3APhltX3idEtP6TkjNfQHRCHVbZ%3AVhRHFzbbwymcuTiRbNw%3D/refunds
            method: POST
          partiallyRefundPayment:
            href: >-
              https://try.access.worldpay.com/api/payments/eyJrIjoiazNhYjYzMiIsImxpbmtWZXJzaW9uIjoiNS4wLjAifQ%3D%3D.sN%3Ag8wd64bwkbrp0md%2BbPxcanBnk2zLdsIqSa1pR99GeDrCwEtsymFb5gQw9WlrStDTK3eIWPy93y%3A7njc4649JSrU7%2BvFDl1J36%2BcwOkX0lW4Z%2BfnZKMutoUGX3m1%3Amrpc69OgkOdsQcFu1REHDtf%3ADmgAoXvDPFmn0QZPIS4H4gS5sW2Mrlt4M7c6S1k5UW6eOLVNOsPL6ecsn3Dp377s7pWRQKSZJKSFIJvAisP8cBzFPzqireuqfCu5ojcm60gRSsqS3glurO24RJkg5SrpRjgY6g7ca8uoA7tKDk9OVOIwORF5sGPHSSGMa2bEl2lMUkAANoWclQHiGzxWQQ9hxVM07vmgQjdqz1DxFQ6AqNuDe44KOEtBqjjis8%3APhltX3idEtP6TkjNfQHRCHVbZ%3AVhRHFzbbwymcuTiRbNw%3D/partialRefunds
            method: POST
    query-202:
      value:
        lastEvent: Authorized
        _actions:
          cancelPayment:
            href: >-
              https://try.access.worldpay.com/api/payments/eyJrIjoiazNhYjYzMiIsImxpbmtWZXJzaW9uIjoiNS4wLjAifQ%3D%3D.sN%3Ag8wd64bwkbrp0md%2BbPxcanBnk2zLdsIqSa1pR99GeDrCwEtsymFb5gQw9WlrStDTK3eIWPy93y%3A7njc4649JSrU7%2BvFDl1J36%2BcwOkX0lW4Z%2BfnZKMutoUGX3m1%3AmYlUBT%2BOr7P8TngA%3ARIDbhErtAINgae8%3Al%2Bp%3A9IMRtnTDLLTmIV7UYK%3Ak9rhdyhosW6eOLVNOsPL6ecsn3Dp377s7pWRQKSZJKSFIJvAisP8cBzFPzqireuqfCu5ojcm60gRSsqS3glurO24RJkg5SrpRjgY6g7ca8uoA7tKDk9OVOIwORF5sGPHSSGMa2bEl2lMUkAANoWclQHiGzxWQQ7HtOLQhO1odRTC6UgXfG5MadLi6%3AwYpXojOybmc%3AWO461azZ4FL3HolsmUtf6UuHbZ%3AVhRHFzbbwymcuTiRbNw%3D/cancellations
            method: POST
          settlePayment:
            href: >-
              https://try.access.worldpay.com/api/payments/eyJrIjoiazNhYjYzMiIsImxpbmtWZXJzaW9uIjoiNS4wLjAifQ%3D%3D.sN%3Ag8wd64bwkbrp0md%2BbPxcanBnk2zLdsIqSa1pR99GeDrCwEtsymFb5gQw9WlrStDTK3eIWPy93y%3A7njc4649JSrU7%2BvFDl1J36%2BcwOkX0lW4Z%2BfnZKMutoUGX3m1%3AmYlUBT%2BOr7P8TngA%3ARIDbhErtAINgae8%3Al%2Bp%3A9IMRtnTDLLTmIV7UYK%3Ak9rhdyhosW6eOLVNOsPL6ecsn3Dp377s7pWRQKSZJKSFIJvAisP8cBzFPzqireuqfCu5ojcm60gRSsqS3glurO24RJkg5SrpRjgY6g7ca8uoA7tKDk9OVOIwORF5sGPHSSGMa2bEl2lMUkAANoWclQHiGzxWQQ7HtOLQhO1odRTC6UgXfG5MadLi6%3AwYpXojOybmc%3AWO461azZ4FL3HolsmUtf6UuHbZ%3AVhRHFzbbwymcuTiRbNw%3D/settlements
            method: POST
          partiallySettlePayment:
            href: >-
              https://try.access.worldpay.com/api/payments/eyJrIjoiazNhYjYzMiIsImxpbmtWZXJzaW9uIjoiNS4wLjAifQ%3D%3D.sN%3Ag8wd64bwkbrp0md%2BbPxcanBnk2zLdsIqSa1pR99GeDrCwEtsymFb5gQw9WlrStDTK3eIWPy93y%3A7njc4649JSrU7%2BvFDl1J36%2BcwOkX0lW4Z%2BfnZKMutoUGX3m1%3AmYlUBT%2BOr7P8TngA%3ARIDbhErtAINgae8%3Al%2Bp%3A9IMRtnTDLLTmIV7UYK%3Ak9rhdyhosW6eOLVNOsPL6ecsn3Dp377s7pWRQKSZJKSFIJvAisP8cBzFPzqireuqfCu5ojcm60gRSsqS3glurO24RJkg5SrpRjgY6g7ca8uoA7tKDk9OVOIwORF5sGPHSSGMa2bEl2lMUkAANoWclQHiGzxWQQ7HtOLQhO1odRTC6UgXfG5MadLi6%3AwYpXojOybmc%3AWO461azZ4FL3HolsmUtf6UuHbZ%3AVhRHFzbbwymcuTiRbNw%3D/partialSettlements
            method: POST
