openapi: 3.0.1
info:
  title: Payments
  description: Payments root resource, returns links to available payments actions.
  version: '5'
servers:
  - url: https://try.access.worldpay.com
    description: testing (try)
  - url: https://access.worldpay.com
    description: live
paths:
  /payments/authorizations:
    post:
      tags:
        - Take a one-time payment
      summary: Creates an authorization
      description: Take online card payments using our Card Payments API.
      operationId: authorize
      parameters:
        - in: header
          name: Content-Type
          required: true
          schema:
            type: string
            example: application/vnd.worldpay.payments-v5+json
        - in: header
          name: Accept
          required: false
          schema:
            type: string
            example: application/vnd.worldpay.payments-v5.hal+json
      requestBody:
        content:
          application/vnd.worldpay.payments-v5+json:
            schema:
              $ref: '#/components/schemas/payments_authorize'
            examples:
              An example of a payment authorization for GBP 2.50 with a successful outcome:
                description: >-
                  An example of a payment authorization for GBP 2.50 with a
                  successful outcome
                value:
                  transactionReference: transaction-ref
                  merchant:
                    entity: an-entity
                  instruction:
                    narrative:
                      line1: trading name
                    value:
                      currency: GBP
                      amount: 250
                    paymentInstrument:
                      type: card/plain
                      cardNumber: '4444333322221111'
                      cardExpiryDate:
                        month: 12
                        year: 2024
                      cardHolderName: John Appleseed
              An example of a payment authorization with all optional fields:
                description: An example of a payment authorization with all optional fields
                value:
                  transactionReference: transaction-ref
                  merchant:
                    entity: an-entity
                    mcc: '1234'
                    paymentFacilitator:
                      pfId: '12345'
                      isoId: '12345'
                      subMerchant:
                        name: Merchant Plc
                        merchantId: '12345'
                        postalCode: SW1 1AA
                        street: Regent Street
                        city: London
                        countryCode: '123'
                        taxId: '12345'
                        state: St8
                        telephone: '0123456789'
                        email: test@email.com
                  instruction:
                    debtRepayment: true
                    narrative:
                      line1: trading name
                      line2: order number
                    value:
                      currency: GBP
                      amount: 250
                    paymentInstrument:
                      type: card/plain
                      cardNumber: '4444333322221111'
                      cardExpiryDate:
                        month: 12
                        year: 2024
                      cardHolderName: John Appleseed
                      billingAddress:
                        address1: address line 1
                        address2: address line 2
                        address3: address line 3
                        city: city
                        state: state
                        postalCode: '12345'
                        countryCode: IT
                      cvc: '123'
                  channel: moto
              An example of a tokenized card payment authorization for GBP 2.50 with a successful outcome:
                description: >-
                  An example of a tokenized card payment authorization for GBP
                  2.50 with a successful outcome
                value:
                  transactionReference: transaction-ref
                  merchant:
                    entity: an-entity
                  instruction:
                    narrative:
                      line1: trading name
                    value:
                      currency: GBP
                      amount: 250
                    paymentInstrument:
                      type: card/token
                      href: http://worldpay.com
              An example of a apple wallet payment authorization for GBP 2.50 with a successful outcome:
                description: >-
                  An example of a apple wallet payment authorization for GBP
                  2.50 with a successful outcome
                value:
                  transactionReference: transaction-ref
                  merchant:
                    entity: an-entity
                  instruction:
                    narrative:
                      line1: trading name
                    value:
                      currency: GBP
                      amount: 250
                    paymentInstrument:
                      type: card/wallet+applepay
                      walletToken: someToken
              An example of a google wallet payment authorization for GBP 2.50 with a successful outcome:
                description: >-
                  An example of a google wallet payment authorization for GBP
                  2.50 with a successful outcome
                value:
                  transactionReference: transaction-ref
                  merchant:
                    entity: an-entity
                  instruction:
                    narrative:
                      line1: trading name
                    value:
                      currency: GBP
                      amount: 250
                    paymentInstrument:
                      type: card/wallet+googlepay
                      walletToken: someToken
              An example of a apple wallet payment authorization with all optional fields:
                description: >-
                  An example of a apple wallet payment authorization with all
                  optional fields
                value:
                  transactionReference: transaction-ref
                  merchant:
                    entity: an-entity
                    mcc: '1234'
                    paymentFacilitator:
                      pfId: '12345'
                      isoId: '12345'
                      subMerchant:
                        name: Merchant Plc
                        merchantId: '12345'
                        postalCode: SW1 1AA
                        street: Regent Street
                        city: London
                        countryCode: '123'
                        taxId: '12345'
                        state: St8
                        telephone: '0123456789'
                        email: test@email.com
                  instruction:
                    debtRepayment: true
                    narrative:
                      line1: trading name
                      line2: order number
                    value:
                      currency: GBP
                      amount: 250
                    paymentInstrument:
                      type: card/wallet+applepay
                      walletToken: someToken
              An example of a google wallet payment authorization with all optional fields:
                description: >-
                  An example of a google wallet payment authorization with all
                  optional fields
                value:
                  transactionReference: transaction-ref
                  merchant:
                    entity: an-entity
                    mcc: '1234'
                    paymentFacilitator:
                      pfId: '12345'
                      isoId: '12345'
                      subMerchant:
                        name: Merchant Plc
                        merchantId: '12345'
                        postalCode: SW1 1AA
                        street: Regent Street
                        city: London
                        countryCode: '123'
                        taxId: '12345'
                        state: St8
                        telephone: '0123456789'
                        email: test@email.com
                  instruction:
                    debtRepayment: true
                    narrative:
                      line1: trading name
                      line2: order number
                    value:
                      currency: GBP
                      amount: 250
                    paymentInstrument:
                      type: card/wallet+googlepay
                      walletToken: someToken
              An example of a payment authorization for GBP 2.50 with a successful outcome using 3DS2 authentication:
                description: >-
                  An example of a payment authorization for GBP 2.50 with a
                  successful outcome using 3DS2 authentication
                value:
                  transactionReference: transaction-ref
                  merchant:
                    entity: an-entity
                  instruction:
                    narrative:
                      line1: trading name
                    value:
                      currency: GBP
                      amount: 250
                    paymentInstrument:
                      type: card/plain
                      cardNumber: '4444333322221111'
                      cardExpiryDate:
                        month: 12
                        year: 2024
                      cardHolderName: John Appleseed
                  customer:
                    authentication:
                      type: 3DS
                      version: '2'
                      eci: '00'
                      authenticationValue: abc123==
                      transactionId: '123'
      responses:
        '201':
          description: The payment authorization has been successfully created
          content:
            application/vnd.worldpay.payments-v5.hal+json:
              schema:
                $ref: '#/components/schemas/payments_authorize_201_response'
              examples:
                An example of a payment authorization for GBP 2.50 with a successful outcome:
                  description: >-
                    An example of a payment authorization for GBP 2.50 with a
                    successful outcome
                  value:
                    outcome: authorized
                    _links:
                      payments:cancel:
                        href: /payments/authorizations/cancellations/linkData
                      payments:settle:
                        href: /payments/settlements/linkData
                      payments:partialSettle:
                        href: /payments/settlements/partials/linkData
                      payments:events:
                        href: /payments/events/linkData
                      curies:
                        - name: payments
                          href: /rels/payments/{rel}
                          templated: true
                An example of a payment authorization with all optional fields:
                  description: >-
                    An example of a payment authorization with all optional
                    fields
                  value:
                    outcome: authorized
                    issuer:
                      authorizationCode: '012345'
                    riskFactors:
                      - type: cvc
                        risk: not_matched
                      - type: avs
                        detail: postcode
                        risk: not_checked
                    _links:
                      payments:cancel:
                        href: /payments/authorizations/cancellations/linkData
                      payments:settle:
                        href: /payments/settlements/linkData
                      payments:partialSettle:
                        href: /payments/settlements/partials/linkData
                      payments:events:
                        href: /payments/events/linkData
                      curies:
                        - name: payments
                          href: /rels/payments/{rel}
                          templated: true
                An example of a tokenized card payment authorization for GBP 2.50 with a successful outcome:
                  description: >-
                    An example of a tokenized card payment authorization for GBP
                    2.50 with a successful outcome
                  value:
                    outcome: authorized
                    _links:
                      payments:cancel:
                        href: /payments/authorizations/cancellations/linkData
                      payments:settle:
                        href: /payments/settlements/linkData
                      payments:partialSettle:
                        href: /payments/settlements/partials/linkData
                      payments:events:
                        href: /payments/events/linkData
                      curies:
                        - name: payments
                          href: /rels/payments/{rel}
                          templated: true
                An example of a apple wallet payment authorization for GBP 2.50 with a successful outcome:
                  description: >-
                    An example of a apple wallet payment authorization for GBP
                    2.50 with a successful outcome
                  value:
                    outcome: authorized
                    _links:
                      payments:cancel:
                        href: /payments/authorizations/cancellations/linkData
                      payments:settle:
                        href: /payments/settlements/linkData
                      payments:partialSettle:
                        href: /payments/settlements/partials/linkData
                      payments:events:
                        href: /payments/events/linkData
                      curies:
                        - name: payments
                          href: /rels/payments/{rel}
                          templated: true
                An example of a google wallet payment authorization for GBP 2.50 with a successful outcome:
                  description: >-
                    An example of a google wallet payment authorization for GBP
                    2.50 with a successful outcome
                  value:
                    outcome: authorized
                    _links:
                      payments:cancel:
                        href: /payments/authorizations/cancellations/linkData
                      payments:settle:
                        href: /payments/settlements/linkData
                      payments:partialSettle:
                        href: /payments/settlements/partials/linkData
                      payments:events:
                        href: /payments/events/linkData
                      curies:
                        - name: payments
                          href: /rels/payments/{rel}
                          templated: true
                An example of a apple wallet payment authorization with all optional fields:
                  description: >-
                    An example of a apple wallet payment authorization with all
                    optional fields
                  value:
                    outcome: authorized
                    issuer:
                      authorizationCode: '012345'
                    riskFactors:
                      - type: avs
                        detail: postcode
                        risk: not_checked
                    paymentInstrument:
                      type: card/network+masked
                      card:
                        number:
                          bin: '444433'
                          last4Digits: '1111'
                          dpan: someDPAN
                        countryCode: GB
                        expiryDate:
                          month: 1
                          year: 2020
                        brand: visa
                        fundingType: debit
                        issuer:
                          name: VALID_ISSUER
                        paymentAccountReference: somePAR
                    _links:
                      payments:cancel:
                        href: /payments/authorizations/cancellations/linkData
                      payments:settle:
                        href: /payments/settlements/linkData
                      payments:partialSettle:
                        href: /payments/settlements/partials/linkData
                      payments:events:
                        href: /payments/events/linkData
                      curies:
                        - name: payments
                          href: /rels/payments/{rel}
                          templated: true
                An example of a google wallet payment authorization with all optional fields:
                  description: >-
                    An example of a google wallet payment authorization with all
                    optional fields
                  value:
                    outcome: authorized
                    issuer:
                      authorizationCode: '012345'
                    riskFactors:
                      - type: avs
                        detail: postcode
                        risk: not_checked
                    paymentInstrument:
                      type: card/network+masked
                      card:
                        number:
                          bin: '444433'
                          last4Digits: '1111'
                          dpan: someDPAN
                        countryCode: GB
                        expiryDate:
                          month: 1
                          year: 2020
                        brand: visa
                        fundingType: debit
                        issuer:
                          name: VALID_ISSUER
                        paymentAccountReference: somePAR
                    _links:
                      payments:cancel:
                        href: /payments/authorizations/cancellations/linkData
                      payments:settle:
                        href: /payments/settlements/linkData
                      payments:partialSettle:
                        href: /payments/settlements/partials/linkData
                      payments:events:
                        href: /payments/events/linkData
                      curies:
                        - name: payments
                          href: /rels/payments/{rel}
                          templated: true
                An example of a payment authorization for GBP 2.50 with a successful outcome using 3DS2 authentication:
                  description: >-
                    An example of a payment authorization for GBP 2.50 with a
                    successful outcome using 3DS2 authentication
                  value:
                    outcome: authorized
                    _links:
                      payments:cancel:
                        href: /payments/authorizations/cancellations/linkData
                      payments:settle:
                        href: /payments/settlements/linkData
                      payments:partialSettle:
                        href: /payments/settlements/partials/linkData
                      payments:events:
                        href: /payments/events/linkData
                      curies:
                        - name: payments
                          href: /rels/payments/{rel}
                          templated: true
  /payments/authorizations/cancellations/{linkData}:
    post:
      tags:
        - Manage Payments
      summary: Cancel Authorization
      description: >+
        If you don’t want to proceed with a payment, you can send a cancel
        request 
         Note: You can only cancel a payment which is authorized. If the payment is settled, you must create a refund.

      operationId: cancel
      parameters:
        - name: linkData
          in: path
          description: Action link that's received in your request
          required: true
          schema:
            type: string
        - in: header
          name: Content-Type
          required: true
          schema:
            type: string
            example: application/vnd.worldpay.payments-v5+json
        - in: header
          name: Accept
          required: false
          schema:
            type: string
            example: application/vnd.worldpay.payments-v5.hal+json
      responses:
        '202':
          description: The cancellation request has been accepted
  /payments/settlements/{linkData}:
    post:
      tags:
        - Manage Payments
      summary: Settle for Full amount
      description: |+
        To receive all the funds from the customer, send us a settle request.

      operationId: settle
      parameters:
        - name: linkData
          in: path
          description: Action link that's received in your request
          required: true
          schema:
            type: string
        - in: header
          name: Content-Type
          required: true
          schema:
            type: string
            example: application/vnd.worldpay.payments-v5+json
        - in: header
          name: Accept
          required: false
          schema:
            type: string
            example: application/vnd.worldpay.payments-v5.hal+json
      responses:
        '202':
          description: The payment settlement has been accepted
          content:
            application/vnd.worldpay.payments-v5.hal+json:
              schema:
                $ref: '#/components/schemas/payments_settle_202_response'
              examples:
                Request to fully settle the authorization:
                  description: Request to fully settle the authorization
                  value:
                    _links:
                      payments:refund:
                        href: /payments/settlements/refunds/full/:linkData
                      payments:partialRefund:
                        href: /payments/settlements/refunds/partials/:linkData
                      payments:events:
                        href: /payments/events/:linkData
                      curies:
                        - name: payments
                          href: /rels/payments/{rel}
                          templated: true
  /payments/settlements/refunds/full/{linkData}:
    post:
      tags:
        - Manage Payments
      summary: Refund Full amount
      description: >+
        Send a refund request to return the full settled amount to your
        customer. 
         Note: No request body is needed for this request.

      operationId: refund
      parameters:
        - name: linkData
          in: path
          description: Action link that's received in your request
          required: true
          schema:
            type: string
        - in: header
          name: Content-Type
          required: true
          schema:
            type: string
            example: application/vnd.worldpay.payments-v5+json
        - in: header
          name: Accept
          required: false
          schema:
            type: string
            example: application/vnd.worldpay.payments-v5.hal+json
      responses:
        '202':
          description: The refund request has been accepted
  /payments/settlements/refunds/partials/{linkData}:
    post:
      tags:
        - Manage Payments
      summary: Refund Partial amount
      description: >+
        Send a partial refund request to return a portion of the settled amount
        to your customer. 
         Send the amount to refund and the authorization currency in the body.

      operationId: partialRefund
      parameters:
        - name: linkData
          in: path
          description: Action link that's received in your request
          required: true
          schema:
            type: string
        - in: header
          name: Content-Type
          required: true
          schema:
            type: string
            example: application/vnd.worldpay.payments-v5+json
        - in: header
          name: Accept
          required: false
          schema:
            type: string
            example: application/vnd.worldpay.payments-v5.hal+json
      requestBody:
        content:
          application/vnd.worldpay.payments-v5+json:
            schema:
              $ref: '#/components/schemas/payments_partialRefund'
            examples:
              Request to perform a partial refund of the settlement:
                description: Request to perform a partial refund of the settlement
                value:
                  value:
                    amount: 10
                    currency: EUR
                  reference: partial-refund-reference
      responses:
        '202':
          description: The partial refund has been accepted
  /payments/settlements/partials/{linkData}:
    post:
      tags:
        - Manage Payments
      summary: Settle for Partial amount
      description: >+
        To receive a portion of the funds of a payment, send us a partial settle
        request.

      operationId: partialSettlement
      parameters:
        - name: linkData
          in: path
          description: Action link that's received in your request
          required: true
          schema:
            type: string
        - in: header
          name: Content-Type
          required: true
          schema:
            type: string
            example: application/vnd.worldpay.payments-v5+json
        - in: header
          name: Accept
          required: false
          schema:
            type: string
            example: application/vnd.worldpay.payments-v5.hal+json
      requestBody:
        content:
          application/vnd.worldpay.payments-v5+json:
            schema:
              $ref: '#/components/schemas/payments_partialSettle'
            examples:
              Request to partially settle the authorization:
                description: Request to partially settle the authorization
                value:
                  value:
                    amount: 500
                    currency: EUR
                  reference: partial-settle-reference
      responses:
        '202':
          description: The partial settlement has been accepted
          content:
            application/vnd.worldpay.payments-v5.hal+json:
              schema:
                $ref: '#/components/schemas/payments_partialSettle_202_response'
              examples:
                Request to partially settle the authorization:
                  description: Request to partially settle the authorization
                  value:
                    _links:
                      payments:refund:
                        href: /payments/settlements/refunds/full/:linkData
                      payments:partialRefund:
                        href: /payments/settlements/refunds/partials/:linkData
                      payments:partialSettle:
                        href: /payments/settlements/partials/:linkData
                      payments:cancel:
                        href: /payments/authorizations/cancellations/:linkData
                      payments:events:
                        href: /payments/events/:linkData
                      curies:
                        - name: payments
                          href: /rels/payments/{rel}
                          templated: true
  /payments/authorizations/cardOnFile/{linkData}:
    post:
      tags:
        - Take repeat payments
      summary: Authorize using Card on File with verification
      description: >+
        Use our card on file authorize resource when your customer is initiating
        a payment using stored card details verifying their account first

      operationId: cardOnFileAuthorize
      parameters:
        - name: linkData
          in: path
          description: Action link that's received in your request
          required: true
          schema:
            type: string
        - in: header
          name: Content-Type
          required: true
          schema:
            type: string
            example: application/vnd.worldpay.payments-v5+json
        - in: header
          name: Accept
          required: false
          schema:
            type: string
            example: application/vnd.worldpay.payments-v5.hal+json
      requestBody:
        content:
          application/vnd.worldpay.payments-v5+json:
            schema:
              $ref: '#/components/schemas/payments_cardOnFileAuthorize'
            examples:
              An example of a payment authorization for GBP 2.50 with a successful outcome:
                description: >-
                  An example of a payment authorization for GBP 2.50 with a
                  successful outcome
                value:
                  transactionReference: transaction-ref
                  merchant:
                    entity: an-entity
                  instruction:
                    narrative:
                      line1: trading name
                    value:
                      currency: GBP
                      amount: 250
                    paymentInstrument:
                      type: card/plain
                      cardNumber: '4444333322221111'
                      cardExpiryDate:
                        month: 12
                        year: 2024
                      cardHolderName: John Appleseed
              An example of a payment authorization with all optional fields:
                description: An example of a payment authorization with all optional fields
                value:
                  transactionReference: transaction-ref
                  merchant:
                    entity: an-entity
                    mcc: '1234'
                    paymentFacilitator:
                      pfId: '12345'
                      isoId: '12345'
                      subMerchant:
                        name: Merchant Plc
                        merchantId: '12345'
                        postalCode: SW1 1AA
                        street: Regent Street
                        city: London
                        countryCode: '123'
                        taxId: '12345'
                        state: St8
                  instruction:
                    debtRepayment: true
                    narrative:
                      line1: trading name
                      line2: order number
                    value:
                      currency: GBP
                      amount: 250
                    paymentInstrument:
                      type: card/plain
                      cardNumber: '4444333322221111'
                      cardExpiryDate:
                        month: 12
                        year: 2024
                      cardHolderName: John Appleseed
                      billingAddress:
                        address1: address line 1
                        address2: address line 2
                        address3: address line 3
                        city: city
                        state: state
                        postalCode: '12345'
                        countryCode: IT
                      cvc: '123'
                  customer:
                    authentication:
                      type: 3DS
                      version: '1'
                      eci: '00'
                      authenticationValue: abc123==
                      transactionId: '123'
              An example of a payment authorization for GBP 2.50 with a successful outcome using 3DS2 authentication:
                description: >-
                  An example of a payment authorization for GBP 2.50 with a
                  successful outcome using 3DS2 authentication
                value:
                  transactionReference: transaction-ref
                  merchant:
                    entity: an-entity
                  instruction:
                    narrative:
                      line1: trading name
                    value:
                      currency: GBP
                      amount: 250
                    paymentInstrument:
                      type: card/plain
                      cardNumber: '4444333322221111'
                      cardExpiryDate:
                        month: 12
                        year: 2024
                      cardHolderName: John Appleseed
                  customer:
                    authentication:
                      type: 3DS
                      version: '2'
                      eci: '00'
                      authenticationValue: abc123==
                      transactionId: '123'
              An example of a card checkout payment authorization for GBP 2.50 with a successful outcome:
                description: >-
                  An example of a card checkout payment authorization for GBP
                  2.50 with a successful outcome
                value:
                  transactionReference: transaction-ref
                  merchant:
                    entity: an-entity
                  instruction:
                    narrative:
                      line1: trading name
                    value:
                      currency: GBP
                      amount: 250
                    paymentInstrument:
                      type: card/checkout
                      cvcHref: https://worldpay.com/cvc
                      tokenHref: https://worldpay.com/token
      responses:
        '201':
          description: The payment authorization has been successfully created
          content:
            application/vnd.worldpay.payments-v5.hal+json:
              schema:
                $ref: '#/components/schemas/payments_cardOnFileAuthorize_201_response'
              examples:
                An example of a payment authorization for GBP 2.50 with a successful outcome:
                  description: >-
                    An example of a payment authorization for GBP 2.50 with a
                    successful outcome
                  value:
                    outcome: authorized
                    _links:
                      payments:cancel:
                        href: /payments/authorizations/cancellations/linkData
                      payments:settle:
                        href: /payments/settlements/linkData
                      payments:partialSettle:
                        href: /payments/settlements/partials/linkData
                      payments:events:
                        href: /payments/events/linkData
                      payments:cardOnFileAuthorize:
                        href: /payments/cardOnFile/linkData
                      payments:recurringAuthorize:
                        href: /payments/recurring/linkData
                      curies:
                        - name: payments
                          href: /rels/payments/{rel}
                          templated: true
                An example of a payment authorization with all optional fields:
                  description: >-
                    An example of a payment authorization with all optional
                    fields
                  value:
                    outcome: authorized
                    issuer:
                      authorizationCode: '012345'
                    riskFactors:
                      - type: cvc
                        risk: not_matched
                      - type: avs
                        detail: postcode
                        risk: not_checked
                    scheme:
                      reference: someReference
                    _links:
                      payments:cancel:
                        href: /payments/authorizations/cancellations/linkData
                      payments:settle:
                        href: /payments/settlements/linkData
                      payments:partialSettle:
                        href: /payments/settlements/partials/linkData
                      payments:events:
                        href: /payments/events/linkData
                      payments:cardOnFileAuthorize:
                        href: /payments/cardOnFile/linkData
                      payments:recurringAuthorize:
                        href: /payments/recurring/linkData
                      curies:
                        - name: payments
                          href: /rels/payments/{rel}
                          templated: true
                An example of a payment authorization for GBP 2.50 with a successful outcome using 3DS2 authentication:
                  description: >-
                    An example of a payment authorization for GBP 2.50 with a
                    successful outcome using 3DS2 authentication
                  value:
                    outcome: authorized
                    _links:
                      payments:cancel:
                        href: /payments/authorizations/cancellations/linkData
                      payments:settle:
                        href: /payments/settlements/linkData
                      payments:partialSettle:
                        href: /payments/settlements/partials/linkData
                      payments:events:
                        href: /payments/events/linkData
                      payments:cardOnFileAuthorize:
                        href: /payments/cardOnFile/linkData
                      payments:recurringAuthorize:
                        href: /payments/recurring/linkData
                      curies:
                        - name: payments
                          href: /rels/payments/{rel}
                          templated: true
                An example of a card checkout payment authorization for GBP 2.50 with a successful outcome:
                  description: >-
                    An example of a card checkout payment authorization for GBP
                    2.50 with a successful outcome
                  value:
                    outcome: authorized
                    _links:
                      payments:cancel:
                        href: /payments/authorizations/cancellations/linkData
                      payments:settle:
                        href: /payments/settlements/linkData
                      payments:partialSettle:
                        href: /payments/settlements/partials/linkData
                      payments:events:
                        href: /payments/events/linkData
                      payments:cardOnFileAuthorize:
                        href: /payments/cardOnFile/linkData
                      payments:recurringAuthorize:
                        href: /payments/recurring/linkData
                      curies:
                        - name: payments
                          href: /rels/payments/{rel}
                          templated: true
  /payments/authorizations/migrateCardOnFile:
    post:
      tags:
        - Take repeat payments
      summary: Authorize using Card on File no verification
      description: >+
        Use our card on file authorize resource when your customer is initiating
        a payment using stored card details (without verifying their account
        first)

      operationId: migrateCardOnFileAuthorize
      requestBody:
        content:
          application/vnd.worldpay.payments-v5+json:
            schema:
              $ref: '#/components/schemas/payments_migrateCardOnFileAuthorize'
            examples:
              An example of a payment authorization for GBP 2.50 with a successful outcome:
                description: >-
                  An example of a payment authorization for GBP 2.50 with a
                  successful outcome
                value:
                  transactionReference: transaction-ref
                  merchant:
                    entity: an-entity
                  instruction:
                    narrative:
                      line1: trading name
                    value:
                      currency: GBP
                      amount: 250
                    paymentInstrument:
                      type: card/plain
                      cardNumber: '4444333322221111'
                      cardExpiryDate:
                        month: 12
                        year: 2024
                      cardHolderName: John Appleseed
              An example of a tokenized card payment authorization for GBP 2.50 with a successful outcome:
                description: >-
                  An example of a tokenized card payment authorization for GBP
                  2.50 with a successful outcome
                value:
                  transactionReference: transaction-ref
                  merchant:
                    entity: an-entity
                  instruction:
                    narrative:
                      line1: trading name
                    value:
                      currency: GBP
                      amount: 250
                    paymentInstrument:
                      type: card/token
                      href: http://worldpay.com
              An example of a payment authorization with all optional fields:
                description: An example of a payment authorization with all optional fields
                value:
                  transactionReference: transaction-ref
                  merchant:
                    entity: an-entity
                    mcc: '1234'
                    paymentFacilitator:
                      pfId: '12345'
                      isoId: '12345'
                      subMerchant:
                        name: Merchant Plc
                        merchantId: '12345'
                        postalCode: SW1 1AA
                        street: Regent Street
                        city: London
                        countryCode: '123'
                        taxId: '12345'
                        state: St8
                  instruction:
                    debtRepayment: true
                    narrative:
                      line1: trading name
                      line2: order number
                    value:
                      currency: GBP
                      amount: 250
                    paymentInstrument:
                      type: card/plain
                      cardNumber: '4444333322221111'
                      cardExpiryDate:
                        month: 12
                        year: 2024
                      cardHolderName: John Appleseed
                      billingAddress:
                        address1: address line 1
                        address2: address line 2
                        address3: address line 3
                        city: city
                        state: state
                        postalCode: '12345'
                        countryCode: IT
                      cvc: '123'
                  channel: moto
              An example of a card checkout payment authorization for GBP 2.50 with a successful outcome:
                description: >-
                  An example of a card checkout payment authorization for GBP
                  2.50 with a successful outcome
                value:
                  transactionReference: transaction-ref
                  merchant:
                    entity: an-entity
                  instruction:
                    narrative:
                      line1: trading name
                    value:
                      currency: GBP
                      amount: 250
                    paymentInstrument:
                      type: card/checkout
                      cvcHref: https://worldpay.com/cvc
                      tokenHref: https://worldpay.com/token
              An example of a payment authorization for GBP 2.50 with a successful outcome using 3DS2 authentication:
                description: >-
                  An example of a payment authorization for GBP 2.50 with a
                  successful outcome using 3DS2 authentication
                value:
                  transactionReference: transaction-ref
                  merchant:
                    entity: an-entity
                  instruction:
                    narrative:
                      line1: trading name
                    value:
                      currency: GBP
                      amount: 250
                    paymentInstrument:
                      type: card/plain
                      cardNumber: '4444333322221111'
                      cardExpiryDate:
                        month: 12
                        year: 2024
                      cardHolderName: John Appleseed
                  customer:
                    authentication:
                      type: 3DS
                      version: '2'
                      eci: '00'
                      authenticationValue: abc123==
                      transactionId: '123'
      responses:
        '201':
          description: >-
            The authorization for migrated Card On File has been successfully
            created
          content:
            application/vnd.worldpay.payments-v5.hal+json:
              schema:
                $ref: >-
                  #/components/schemas/payments_migrateCardOnFileAuthorize_201_response
              examples:
                An example of a payment authorization for GBP 2.50 with a successful outcome:
                  description: >-
                    An example of a payment authorization for GBP 2.50 with a
                    successful outcome
                  value:
                    outcome: authorized
                    _links:
                      payments:cancel:
                        href: /payments/authorizations/cancellations/linkData
                      payments:settle:
                        href: /payments/settlements/linkData
                      payments:partialSettle:
                        href: /payments/settlements/partials/linkData
                      payments:events:
                        href: /payments/events/linkData
                      payments:cardOnFileAuthorize:
                        href: /payments/cardOnFile/linkData
                      payments:recurringAuthorize:
                        href: /payments/recurring/linkData
                      curies:
                        - name: payments
                          href: /rels/payments/{rel}
                          templated: true
                An example of a tokenized card payment authorization for GBP 2.50 with a successful outcome:
                  description: >-
                    An example of a tokenized card payment authorization for GBP
                    2.50 with a successful outcome
                  value:
                    outcome: authorized
                    _links:
                      payments:cancel:
                        href: /payments/authorizations/cancellations/linkData
                      payments:settle:
                        href: /payments/settlements/linkData
                      payments:partialSettle:
                        href: /payments/settlements/partials/linkData
                      payments:events:
                        href: /payments/events/linkData
                      payments:cardOnFileAuthorize:
                        href: /payments/cardOnFile/linkData
                      payments:recurringAuthorize:
                        href: /payments/recurring/linkData
                      curies:
                        - name: payments
                          href: /rels/payments/{rel}
                          templated: true
                An example of a payment authorization with all optional fields:
                  description: >-
                    An example of a payment authorization with all optional
                    fields
                  value:
                    outcome: authorized
                    issuer:
                      authorizationCode: '012345'
                    riskFactors:
                      - type: cvc
                        risk: not_matched
                      - type: avs
                        detail: postcode
                        risk: not_checked
                    scheme:
                      reference: someReference
                    _links:
                      payments:cancel:
                        href: /payments/authorizations/cancellations/linkData
                      payments:settle:
                        href: /payments/settlements/linkData
                      payments:partialSettle:
                        href: /payments/settlements/partials/linkData
                      payments:events:
                        href: /payments/events/linkData
                      payments:cardOnFileAuthorize:
                        href: /payments/cardOnFile/linkData
                      payments:recurringAuthorize:
                        href: /payments/recurring/linkData
                      curies:
                        - name: payments
                          href: /rels/payments/{rel}
                          templated: true
                An example of a card checkout payment authorization for GBP 2.50 with a successful outcome:
                  description: >-
                    An example of a card checkout payment authorization for GBP
                    2.50 with a successful outcome
                  value:
                    outcome: authorized
                    _links:
                      payments:cancel:
                        href: /payments/authorizations/cancellations/linkData
                      payments:settle:
                        href: /payments/settlements/linkData
                      payments:partialSettle:
                        href: /payments/settlements/partials/linkData
                      payments:events:
                        href: /payments/events/linkData
                      payments:cardOnFileAuthorize:
                        href: /payments/cardOnFile/linkData
                      payments:recurringAuthorize:
                        href: /payments/recurring/linkData
                      curies:
                        - name: payments
                          href: /rels/payments/{rel}
                          templated: true
                An example of a payment authorization for GBP 2.50 with a successful outcome using 3DS2 authentication:
                  description: >-
                    An example of a payment authorization for GBP 2.50 with a
                    successful outcome using 3DS2 authentication
                  value:
                    outcome: authorized
                    _links:
                      payments:cancel:
                        href: /payments/authorizations/cancellations/linkData
                      payments:settle:
                        href: /payments/settlements/linkData
                      payments:partialSettle:
                        href: /payments/settlements/partials/linkData
                      payments:events:
                        href: /payments/events/linkData
                      payments:cardOnFileAuthorize:
                        href: /payments/cardOnFile/linkData
                      payments:recurringAuthorize:
                        href: /payments/recurring/linkData
                      curies:
                        - name: payments
                          href: /rels/payments/{rel}
                          templated: true
  /payments/sales/migrateCardOnFile:
    post:
      tags:
        - Take repeat payments
      summary: Customer initiated Sale using Card on File
      description: >+
        Use our card on file sale resource when your customer is initiating a
        payment using stored card details, and you want to instantly trigger the
        settlement process

      operationId: migrateCardOnFileSale
      requestBody:
        content:
          application/vnd.worldpay.payments-v5+json:
            schema:
              $ref: '#/components/schemas/payments_migrateCardOnFileSale'
            examples:
              An example of a sale for GBP 2.50 with a successful outcome:
                description: An example of a sale for GBP 2.50 with a successful outcome
                value:
                  transactionReference: transaction-ref
                  merchant:
                    entity: an-entity
                  instruction:
                    narrative:
                      line1: trading name
                    value:
                      currency: GBP
                      amount: 250
                    paymentInstrument:
                      type: card/plain
                      cardNumber: '4444333322221111'
                      cardExpiryDate:
                        month: 12
                        year: 2024
                      cardHolderName: John Appleseed
              An example of a tokenized card sale for GBP 2.50 with a successful outcome:
                description: >-
                  An example of a tokenized card sale for GBP 2.50 with a
                  successful outcome
                value:
                  transactionReference: transaction-ref
                  merchant:
                    entity: an-entity
                  instruction:
                    narrative:
                      line1: trading name
                    value:
                      currency: GBP
                      amount: 250
                    paymentInstrument:
                      type: card/token
                      href: http://worldpay.com
              An example of a payment authorization with all optional fields:
                description: An example of a payment authorization with all optional fields
                value:
                  transactionReference: transaction-ref
                  merchant:
                    entity: an-entity
                    mcc: '1234'
                    paymentFacilitator:
                      pfId: '12345'
                      isoId: '12345'
                      subMerchant:
                        name: Merchant Plc
                        merchantId: '12345'
                        postalCode: SW1 1AA
                        street: Regent Street
                        city: London
                        countryCode: '123'
                        taxId: '12345'
                        state: St8
                  instruction:
                    debtRepayment: true
                    narrative:
                      line1: trading name
                      line2: order number
                    value:
                      currency: GBP
                      amount: 250
                    paymentInstrument:
                      type: card/plain
                      cardNumber: '4444333322221111'
                      cardExpiryDate:
                        month: 12
                        year: 2024
                      cardHolderName: John Appleseed
                      billingAddress:
                        address1: address line 1
                        address2: address line 2
                        address3: address line 3
                        city: city
                        state: state
                        postalCode: '12345'
                        countryCode: IT
                      cvc: '123'
                  channel: moto
              An example of a card checkout sale  for GBP 2.50 with a successful outcome:
                description: >-
                  An example of a card checkout sale  for GBP 2.50 with a
                  successful outcome
                value:
                  transactionReference: transaction-ref
                  merchant:
                    entity: an-entity
                  instruction:
                    narrative:
                      line1: trading name
                    value:
                      currency: GBP
                      amount: 250
                    paymentInstrument:
                      type: card/checkout
                      cvcHref: https://worldpay.com/cvc
                      tokenHref: https://worldpay.com/token
              An example of a card sale for GBP 2.50 with a successful outcome using 3DS2 authentication:
                description: >-
                  An example of a card sale for GBP 2.50 with a successful
                  outcome using 3DS2 authentication
                value:
                  transactionReference: transaction-ref
                  merchant:
                    entity: an-entity
                  instruction:
                    narrative:
                      line1: trading name
                    value:
                      currency: GBP
                      amount: 250
                    paymentInstrument:
                      type: card/plain
                      cardNumber: '4444333322221111'
                      cardExpiryDate:
                        month: 12
                        year: 2024
                      cardHolderName: John Appleseed
                  customer:
                    authentication:
                      type: 3DS
                      version: '2'
                      eci: '00'
                      authenticationValue: abc123==
                      transactionId: '123'
      responses:
        '201':
          description: The sale for migrated Card On File has been successfully created
          content:
            application/vnd.worldpay.payments-v5.hal+json:
              schema:
                $ref: >-
                  #/components/schemas/payments_migrateCardOnFileSale_201_response
              examples:
                An example of a sale for GBP 2.50 with a successful outcome:
                  description: An example of a sale for GBP 2.50 with a successful outcome
                  value:
                    outcome: Sent For Settlement
                    _links:
                      payments:refund:
                        href: /payments/settlements/refunds/:linkData
                      payments:partialRefund:
                        href: /payments/settlements/refunds/partials/:linkData
                      payments:reversal:
                        href: /payments/sales/reversals/linkData
                      payments:events:
                        href: /payments/events/linkData
                      curies:
                        - name: payments
                          href: /rels/payments/{rel}
                          templated: true
                An example of a tokenized card sale for GBP 2.50 with a successful outcome:
                  description: >-
                    An example of a tokenized card sale for GBP 2.50 with a
                    successful outcome
                  value:
                    outcome: Sent For Settlement
                    _links:
                      payments:refund:
                        href: /payments/settlements/refunds/:linkData
                      payments:partialRefund:
                        href: /payments/settlements/refunds/partials/:linkData
                      payments:reversal:
                        href: /payments/sales/reversals/linkData
                      payments:events:
                        href: /payments/events/linkData
                      curies:
                        - name: payments
                          href: /rels/payments/{rel}
                          templated: true
                An example of a payment authorization with all optional fields:
                  description: >-
                    An example of a payment authorization with all optional
                    fields
                  value:
                    outcome: Sent For Settlement
                    scheme:
                      reference: someReference
                    _links:
                      payments:refund:
                        href: /payments/settlements/refunds/:linkData
                      payments:partialRefund:
                        href: /payments/settlements/refunds/partials/:linkData
                      payments:reversal:
                        href: /payments/sales/reversals/linkData
                      payments:events:
                        href: /payments/events/linkData
                      curies:
                        - name: payments
                          href: /rels/payments/{rel}
                          templated: true
                An example of a card checkout sale  for GBP 2.50 with a successful outcome:
                  description: >-
                    An example of a card checkout sale  for GBP 2.50 with a
                    successful outcome
                  value:
                    outcome: Sent For Settlement
                    _links:
                      payments:refund:
                        href: /payments/settlements/refunds/:linkData
                      payments:partialRefund:
                        href: /payments/settlements/refunds/partials/:linkData
                      payments:reversal:
                        href: /payments/sales/reversals/linkData
                      payments:events:
                        href: /payments/events/linkData
                      curies:
                        - name: payments
                          href: /rels/payments/{rel}
                          templated: true
                An example of a card sale for GBP 2.50 with a successful outcome using 3DS2 authentication:
                  description: >-
                    An example of a card sale for GBP 2.50 with a successful
                    outcome using 3DS2 authentication
                  value:
                    outcome: Sent For Settlement
                    _links:
                      payments:refund:
                        href: /payments/settlements/refunds/:linkData
                      payments:partialRefund:
                        href: /payments/settlements/refunds/partials/:linkData
                      payments:reversal:
                        href: /payments/sales/reversals/linkData
                      payments:events:
                        href: /payments/events/linkData
                      curies:
                        - name: payments
                          href: /rels/payments/{rel}
                          templated: true
  /payments/sales/reversals/{linkData}:
    post:
      tags:
        - Manage Payments
      summary: Reversal
      description: >+
        Your reversal request is processed as a cancel or refund request. This
        depends on the time passed after your sale request was submitted. For US
        entities the payment is refunded after one day after a successful sale
        request. Any other payment moves to refunded after 15 minutes. 
         Note: No request body is needed for this request.

      operationId: reversal
      parameters:
        - name: linkData
          in: path
          description: Action link that's received in your request
          required: true
          schema:
            type: string
        - in: header
          name: Content-Type
          required: true
          schema:
            type: string
            example: application/vnd.worldpay.payments-v5+json
        - in: header
          name: Accept
          required: false
          schema:
            type: string
            example: application/vnd.worldpay.payments-v5.hal+json
      responses:
        '202':
          description: The reversal request has been accepted
  /payments/recurringMandates:
    post:
      tags:
        - Manage Payments
      summary: Recurring Mandate
      description: |+
        Create a recurring mandate using a scheme transaction ID

      operationId: recurringMandate
      requestBody:
        content:
          application/vnd.worldpay.payments-v5+json:
            schema:
              $ref: '#/components/schemas/payments_recurringMandate'
            examples:
              An example of a request to create a recurring mandate from a scheme transaction ID:
                description: >-
                  An example of a request to create a recurring mandate from a
                  scheme transaction ID
                value:
                  schemeTransactionId: '123456789'
      responses:
        '201':
          description: Recurring mandate created
  /payments/authorizations/migrateRecurring:
    post:
      tags:
        - Take repeat payments
      summary: Authorize Recurring Payment no verification
      description: >+
        Use our migrate recurring authorize resource when you are initiating a
        payment using your customer's stored card details, without verifying
        their account first

      operationId: migrateRecurringAuthorize
      requestBody:
        content:
          application/vnd.worldpay.payments-v5+json:
            schema:
              $ref: '#/components/schemas/payments_migrateRecurringAuthorize'
            examples:
              Request to partially settle the authorization:
                description: Request to partially settle the authorization
                value:
                  value:
                    amount: 500
                    currency: EUR
                  reference: partial-settle-reference
      responses:
        '202':
          description: The partial settlement has been accepted
          content:
            application/vnd.worldpay.payments-v5.hal+json:
              schema:
                $ref: >-
                  #/components/schemas/payments_migrateRecurringAuthorize_202_response
              examples:
                Request to partially settle the authorization:
                  description: Request to partially settle the authorization
                  value:
                    _links:
                      payments:refund:
                        href: /payments/settlements/refunds/full/:linkData
                      payments:partialRefund:
                        href: /payments/settlements/refunds/partials/:linkData
                      payments:partialSettle:
                        href: /payments/settlements/partials/:linkData
                      payments:cancel:
                        href: /payments/authorizations/cancellations/:linkData
                      payments:events:
                        href: /payments/events/:linkData
                      curies:
                        - name: payments
                          href: /rels/payments/{rel}
                          templated: true
  /payments/authorizations/recurring/{linkData}:
    post:
      tags:
        - Take repeat payments
      summary: Authorize Recurring Payment with verification
      description: >+
        Use our recurring authorize resources when you are initiating a payment
        using your customer's stored card details, verifying your customer's
        account first.

      operationId: recurringAuthorize
      parameters:
        - name: linkData
          in: path
          description: Action link that's received in your request
          required: true
          schema:
            type: string
        - in: header
          name: Content-Type
          required: true
          schema:
            type: string
            example: application/vnd.worldpay.payments-v5+json
        - in: header
          name: Accept
          required: false
          schema:
            type: string
            example: application/vnd.worldpay.payments-v5.hal+json
      requestBody:
        content:
          application/vnd.worldpay.payments-v5+json:
            schema:
              $ref: '#/components/schemas/payments_recurringAuthorize'
            examples:
              An example of a recurring payment authorization for GBP 2.50 with a successful outcome:
                description: >-
                  An example of a recurring payment authorization for GBP 2.50
                  with a successful outcome
                value:
                  transactionReference: transaction-ref
                  merchant:
                    entity: an-entity
                  instruction:
                    narrative:
                      line1: trading name
                    value:
                      currency: GBP
                      amount: 250
                    paymentInstrument:
                      type: card/plain
                      cardNumber: '4444333322221111'
                      cardExpiryDate:
                        month: 12
                        year: 2024
                      cardHolderName: John Appleseed
              An example of a payment authorization with all optional fields:
                description: An example of a payment authorization with all optional fields
                value:
                  transactionReference: transaction-ref
                  merchant:
                    entity: an-entity
                    mcc: '1234'
                    paymentFacilitator:
                      pfId: '12345'
                      isoId: '12345'
                      subMerchant:
                        name: Merchant Plc
                        merchantId: '12345'
                        postalCode: SW1 1AA
                        street: Regent Street
                        city: London
                        countryCode: '123'
                        taxId: '12345'
                        state: St8
                  instruction:
                    debtRepayment: true
                    narrative:
                      line1: trading name
                      line2: order number
                    value:
                      currency: GBP
                      amount: 250
                    paymentInstrument:
                      type: card/plain
                      cardNumber: '4444333322221111'
                      cardExpiryDate:
                        month: 12
                        year: 2024
                      cardHolderName: John Appleseed
                      billingAddress:
                        address1: address line 1
                        address2: address line 2
                        address3: address line 3
                        city: city
                        state: state
                        postalCode: '12345'
                        countryCode: IT
              An example of a tokenized card payment authorization for GBP 2.50 with a successful outcome:
                description: >-
                  An example of a tokenized card payment authorization for GBP
                  2.50 with a successful outcome
                value:
                  transactionReference: transaction-ref
                  merchant:
                    entity: an-entity
                  instruction:
                    narrative:
                      line1: trading name
                    value:
                      currency: GBP
                      amount: 250
                    paymentInstrument:
                      type: card/token
                      href: http://worldpay.com
      responses:
        '201':
          description: The recurring payment authorization has been successfully created
          content:
            application/vnd.worldpay.payments-v5.hal+json:
              schema:
                $ref: '#/components/schemas/payments_recurringAuthorize_201_response'
              examples:
                An example of a recurring payment authorization for GBP 2.50 with a successful outcome:
                  description: >-
                    An example of a recurring payment authorization for GBP 2.50
                    with a successful outcome
                  value:
                    outcome: authorized
                    _links:
                      payments:cancel:
                        href: /payments/authorizations/cancellations/linkData
                      payments:settle:
                        href: /payments/settlements/linkData
                      payments:partialSettle:
                        href: /payments/settlements/partials/linkData
                      payments:events:
                        href: /payments/events/linkData
                      curies:
                        - name: payments
                          href: /rels/payments/{rel}
                          templated: true
                An example of a payment authorization with all optional fields:
                  description: >-
                    An example of a payment authorization with all optional
                    fields
                  value:
                    outcome: authorized
                    issuer:
                      authorizationCode: '012345'
                    riskFactors:
                      - type: cvc
                        risk: not_matched
                      - type: avs
                        detail: postcode
                        risk: not_checked
                    _links:
                      payments:cancel:
                        href: /payments/authorizations/cancellations/linkData
                      payments:settle:
                        href: /payments/settlements/linkData
                      payments:partialSettle:
                        href: /payments/settlements/partials/linkData
                      payments:events:
                        href: /payments/events/linkData
                      curies:
                        - name: payments
                          href: /rels/payments/{rel}
                          templated: true
                An example of a tokenized card payment authorization for GBP 2.50 with a successful outcome:
                  description: >-
                    An example of a tokenized card payment authorization for GBP
                    2.50 with a successful outcome
                  value:
                    outcome: authorized
                    _links:
                      payments:cancel:
                        href: /payments/authorizations/cancellations/linkData
                      payments:settle:
                        href: /payments/settlements/linkData
                      payments:partialSettle:
                        href: /payments/settlements/partials/linkData
                      payments:events:
                        href: /payments/events/linkData
                      curies:
                        - name: payments
                          href: /rels/payments/{rel}
                          templated: true
  /payments/sales/recurring/{linkData}:
    post:
      tags:
        - Take repeat payments
      summary: Recurring Sale using Card on File
      description: >+
        Use our recurring sale resource to authorize and settle merchant
        initiated transactions where you have stored the card details. You must
        verify your customer's account before submitting your first recurring
        payment for authorization.

      operationId: recurringSale
      parameters:
        - name: linkData
          in: path
          description: Action link that's received in your request
          required: true
          schema:
            type: string
        - in: header
          name: Content-Type
          required: true
          schema:
            type: string
            example: application/vnd.worldpay.payments-v5+json
        - in: header
          name: Accept
          required: false
          schema:
            type: string
            example: application/vnd.worldpay.payments-v5.hal+json
      requestBody:
        content:
          application/vnd.worldpay.payments-v5+json:
            schema:
              $ref: '#/components/schemas/payments_recurringSale'
            examples:
              An example of a payment sale with all optional fields:
                description: An example of a payment sale with all optional fields
                value:
                  transactionReference: transaction-ref
                  merchant:
                    entity: an-entity
                    mcc: '1234'
                    paymentFacilitator:
                      pfId: '12345'
                      isoId: '12345'
                      subMerchant:
                        name: Merchant Plc
                        merchantId: '12345'
                        postalCode: SW1 1AA
                        street: Regent Street
                        city: London
                        countryCode: '123'
                        taxId: '12345'
                        state: St8
                  instruction:
                    debtRepayment: true
                    narrative:
                      line1: trading name
                      line2: order number
                    value:
                      currency: GBP
                      amount: 250
                    paymentInstrument:
                      type: card/plain
                      cardNumber: '4444333322221111'
                      cardExpiryDate:
                        month: 12
                        year: 2024
                      cardHolderName: John Appleseed
                      billingAddress:
                        address1: address line 1
                        address2: address line 2
                        address3: address line 3
                        city: city
                        state: state
                        postalCode: '12345'
                        countryCode: IT
      responses:
        '201':
          description: The recurring payment has been successfully created
          content:
            application/vnd.worldpay.payments-v5.hal+json:
              schema:
                $ref: '#/components/schemas/payments_recurringSale_201_response'
              examples:
                An example of a payment sale with all optional fields:
                  description: An example of a payment sale with all optional fields
                  value:
                    outcome: authorized
                    issuer:
                      authorizationCode: '012345'
                    riskFactors:
                      - type: cvc
                        risk: not_matched
                      - type: avs
                        detail: postcode
                        risk: not_checked
                    _links:
                      payments:refund:
                        href: /payments/settlements/refunds/:linkData
                      payments:partialRefund:
                        href: /payments/settlements/refunds/partials/:linkData
                      payments:reversal:
                        href: /payments/sales/reversals/linkData
                      payments:events:
                        href: /payments/events/linkData
                      curies:
                        - name: payments
                          href: /rels/payments/{rel}
                          templated: true
  /payments/events/{linkData}:
    get:
      tags:
        - Query a Payment
      summary: Query payment status
      description: >+
        Send a request to find out the current status of your payment after it
        has been authorized using the events action link. 
         Note: It can take up to 15 minutes for a payment event to update.

      operationId: eventQuery
      parameters:
        - name: linkData
          in: path
          description: Action link that's received in your request
          required: true
          schema:
            type: string
        - in: header
          name: Content-Type
          required: true
          schema:
            type: string
            example: application/vnd.worldpay.payments-v5+json
        - in: header
          name: Accept
          required: false
          schema:
            type: string
            example: application/vnd.worldpay.payments-v5.hal+json
      responses:
        '200':
          description: Retrieve the last event of a payment
          content:
            application/vnd.worldpay.payments-v5.hal+json:
              schema:
                $ref: '#/components/schemas/payments_events_200_response'
              examples:
                An example of querying a payment event with a transaction reference REF123:
                  description: >-
                    An example of querying a payment event with a transaction
                    reference REF123
                  value:
                    lastEvent: Authorized
                    _links:
                      payments:cancel: /payments/authorizations/cancellations/:linkData
                      payments:settle: /payments/settlements/full/:linkData
                      payments:partialSettle: /payments/settlements/partials/:linkData
                      curies:
                        - name: payments
                          href: /rels/payments/{rel}
                          templated: true
  /payments/events:
    get:
      tags:
        - Query a Payment
      summary: Query payment status Recovery
      description: >+
        Send a request to find out the current status of your payment after it
        has been authorized using the events action link. 
         This action is only to be used for recovery purposes. Use this action if your authorization requests timed out. The response determines if your authorization request was successful and your next available actions are returned.

      operationId: eventRecovery
      responses:
        '200':
          description: Retrieve the last event of a payment
          content:
            application/vnd.worldpay.payments-v5.hal+json:
              schema:
                $ref: '#/components/schemas/payments_events_recovery_200_response'
              examples:
                An example of querying a payment event with a transaction reference REF123:
                  description: >-
                    An example of querying a payment event with a transaction
                    reference REF123
                  value:
                    lastEvent: Authorized
                    _links:
                      payments:cancel: /payments/authorizations/cancellations/:linkData
                      payments:settle: /payments/settlements/full/:linkData
                      payments:partialSettle: /payments/settlements/partials/:linkData
                      curies:
                        - name: payments
                          href: /rels/payments/{rel}
                          templated: true
components:
  schemas:
    _1:
      required:
        - type
        - cardNumber
        - cardHolderName
        - cardExpiryDate
      type: object
      properties:
        cardHolderName:
          type: string
        cardExpiryDate:
          required:
            - month
            - year
          type: object
          properties:
            month:
              type: integer
            year:
              type: integer
        type:
          enum:
            - card/plain
          type: string
        cardNumber:
          type: string
        billingAddress:
          required:
            - postalCode
            - countryCode
          type: object
          properties:
            postalCode:
              type: string
            countryCode:
              type: string
            city:
              type: string
            address2:
              type: string
            state:
              type: string
            address3:
              type: string
            address1:
              type: string
        cvc:
          type: string
    _2:
      required:
        - type
        - href
      type: object
      properties:
        type:
          enum:
            - card/token
          type: string
        href:
          type: string
    card_wallet_3:
      required:
        - type
        - walletToken
      type: object
      properties:
        type:
          enum:
            - card/wallet+applepay
            - card/wallet+googlepay
          type: string
        walletToken:
          type: string
    payments_authorize:
      required:
        - transactionReference
        - merchant
        - instruction
      type: object
      properties:
        instruction:
          required:
            - value
            - narrative
            - paymentInstrument
          type: object
          properties:
            value:
              required:
                - amount
                - currency
              type: object
              properties:
                amount:
                  type: integer
                currency:
                  type: string
            narrative:
              required:
                - line1
              type: object
              properties:
                line1:
                  type: string
                line2:
                  type: string
            paymentInstrument:
              oneOf:
                - $ref: '#/components/schemas/_1'
                - $ref: '#/components/schemas/_2'
                - $ref: '#/components/schemas/card_wallet_3'
              discriminator:
                propertyName: type
            debtRepayment:
              type: boolean
        merchant:
          required:
            - entity
          type: object
          properties:
            entity:
              type: string
            mcc:
              type: string
            paymentFacilitator:
              required:
                - pfId
                - subMerchant
              type: object
              properties:
                pfId:
                  type: string
                subMerchant:
                  required:
                    - merchantId
                    - name
                    - street
                    - city
                    - countryCode
                    - postalCode
                  type: object
                  properties:
                    city:
                      type: string
                    name:
                      type: string
                    postalCode:
                      type: string
                    merchantId:
                      type: string
                    countryCode:
                      type: string
                    street:
                      type: string
                    telephone:
                      type: string
                    taxId:
                      type: string
                    email:
                      type: string
                    state:
                      type: string
                isoId:
                  type: string
        transactionReference:
          type: string
        channel:
          enum:
            - moto
          type: string
        customer:
          required:
            - authentication
          type: object
          properties:
            authentication:
              required:
                - type
                - eci
              type: object
              properties:
                eci:
                  type: string
                type:
                  type: string
                authenticationValue:
                  type: string
                version:
                  type: string
                transactionId:
                  type: string
    payments_authorize_201_response:
      required:
        - outcome
      type: object
      properties:
        outcome:
          type: string
        issuer:
          required:
            - authorizationCode
          type: object
          properties:
            authorizationCode:
              type: string
        paymentInstrument:
          type: object
          properties:
            type:
              type: string
            card:
              type: object
              properties:
                number:
                  type: object
                  properties:
                    bin:
                      type: string
                    last4Digits:
                      type: string
                    dpan:
                      type: string
                issuer:
                  type: object
                  properties:
                    name:
                      type: string
                paymentAccountReference:
                  type: string
                countryCode:
                  type: string
                fundingType:
                  type: string
                brand:
                  type: string
                expiryDate:
                  type: object
                  properties:
                    month:
                      type: integer
                    year:
                      type: integer
        riskFactors:
          required:
            - type
            - risk
          type: array
          items:
            required:
              - type
              - risk
            type: object
            properties:
              type:
                enum:
                  - avs
                  - cvc
                type: string
              risk:
                enum:
                  - not_checked
                  - not_matched
                  - not_supplied
                type: string
              detail:
                enum:
                  - address
                  - postcode
                type: string
          description: >-
            Any risk factors which have been identified for the authorization.
            This section will not appear if no risks are identified.
        scheme:
          required:
            - reference
          type: object
          properties:
            reference:
              type: string
    payments_settle_202_response:
      type: object
    payments_partialRefund:
      required:
        - value
        - reference
      type: object
      properties:
        value:
          required:
            - amount
            - currency
          type: object
          properties:
            amount:
              type: integer
            currency:
              type: string
        reference:
          type: string
    payments_partialSettle:
      required:
        - value
        - reference
      type: object
      properties:
        value:
          required:
            - amount
            - currency
          type: object
          properties:
            amount:
              type: integer
            currency:
              type: string
        reference:
          type: string
    payments_partialSettle_202_response:
      type: object
    _4:
      required:
        - type
        - cardNumber
        - cardHolderName
        - cardExpiryDate
      type: object
      properties:
        cardHolderName:
          type: string
        cardExpiryDate:
          required:
            - month
            - year
          type: object
          properties:
            month:
              type: integer
            year:
              type: integer
        type:
          enum:
            - card/plain
          type: string
        cardNumber:
          type: string
        billingAddress:
          required:
            - postalCode
            - countryCode
          type: object
          properties:
            postalCode:
              type: string
            countryCode:
              type: string
            city:
              type: string
            address2:
              type: string
            state:
              type: string
            address3:
              type: string
            address1:
              type: string
        cvc:
          type: string
    _5:
      required:
        - type
        - href
      type: object
      properties:
        type:
          enum:
            - card/token
          type: string
        href:
          type: string
    _6:
      required:
        - type
        - tokenHref
      type: object
      properties:
        type:
          enum:
            - card/token2
          type: string
        tokenHref:
          type: string
        cvcHref:
          type: string
    payments_cardOnFileAuthorize:
      required:
        - transactionReference
        - merchant
        - instruction
      type: object
      properties:
        transactionReference:
          type: string
        merchant:
          required:
            - entity
          type: object
          properties:
            entity:
              type: string
            mcc:
              type: string
            paymentFacilitator:
              required:
                - pfId
                - subMerchant
              type: object
              properties:
                pfId:
                  type: string
                subMerchant:
                  required:
                    - merchantId
                    - name
                    - street
                    - city
                    - countryCode
                    - postalCode
                  type: object
                  properties:
                    city:
                      type: string
                    name:
                      type: string
                    postalCode:
                      type: string
                    merchantId:
                      type: string
                    countryCode:
                      type: string
                    street:
                      type: string
                    state:
                      type: string
                    taxId:
                      type: string
                isoId:
                  type: string
        instruction:
          required:
            - value
            - narrative
            - paymentInstrument
          type: object
          properties:
            value:
              required:
                - amount
                - currency
              type: object
              properties:
                amount:
                  type: integer
                currency:
                  type: string
            narrative:
              required:
                - line1
              type: object
              properties:
                line1:
                  type: string
                line2:
                  type: string
            paymentInstrument:
              oneOf:
                - $ref: '#/components/schemas/_4'
                - $ref: '#/components/schemas/_5'
                - $ref: '#/components/schemas/_6'
              discriminator:
                propertyName: type
            debtRepayment:
              type: boolean
        customer:
          required:
            - authentication
          type: object
          properties:
            authentication:
              required:
                - type
                - eci
              type: object
              properties:
                eci:
                  type: string
                type:
                  type: string
                authenticationValue:
                  type: string
                version:
                  type: string
                transactionId:
                  type: string
    payments_cardOnFileAuthorize_201_response:
      required:
        - outcome
      type: object
      properties:
        outcome:
          type: string
        issuer:
          required:
            - authorizationCode
          type: object
          properties:
            authorizationCode:
              type: string
        paymentInstrument:
          type: object
          properties:
            type:
              type: string
            card:
              type: object
              properties:
                number:
                  type: object
                  properties:
                    bin:
                      type: string
                    last4Digits:
                      type: string
                    dpan:
                      type: string
                issuer:
                  type: object
                  properties:
                    name:
                      type: string
                paymentAccountReference:
                  type: string
                countryCode:
                  type: string
                fundingType:
                  type: string
                brand:
                  type: string
                expiryDate:
                  type: object
                  properties:
                    month:
                      type: integer
                    year:
                      type: integer
        riskFactors:
          required:
            - type
            - risk
          type: array
          items:
            required:
              - type
              - risk
            type: object
            properties:
              type:
                enum:
                  - avs
                  - cvc
                type: string
              risk:
                enum:
                  - not_checked
                  - not_matched
                  - not_supplied
                type: string
              detail:
                enum:
                  - address
                  - postcode
                type: string
          description: >-
            Any risk factors which have been identified for the authorization.
            This section will not appear if no risks are identified.
        scheme:
          required:
            - reference
          type: object
          properties:
            reference:
              type: string
    _7:
      required:
        - type
        - cardNumber
        - cardHolderName
        - cardExpiryDate
      type: object
      properties:
        cardHolderName:
          type: string
        cardExpiryDate:
          required:
            - month
            - year
          type: object
          properties:
            month:
              type: integer
            year:
              type: integer
        type:
          enum:
            - card/plain
          type: string
        cardNumber:
          type: string
        billingAddress:
          required:
            - postalCode
            - countryCode
          type: object
          properties:
            postalCode:
              type: string
            countryCode:
              type: string
            city:
              type: string
            address2:
              type: string
            state:
              type: string
            address3:
              type: string
            address1:
              type: string
        cvc:
          type: string
    _8:
      required:
        - type
        - href
      type: object
      properties:
        type:
          enum:
            - card/token
          type: string
        href:
          type: string
    _9:
      required:
        - type
        - tokenHref
      type: object
      properties:
        type:
          enum:
            - card/token2
          type: string
        tokenHref:
          type: string
        cvcHref:
          type: string
    payments_migrateCardOnFileAuthorize:
      required:
        - transactionReference
        - merchant
        - instruction
      type: object
      properties:
        instruction:
          required:
            - value
            - narrative
            - paymentInstrument
          type: object
          properties:
            value:
              required:
                - amount
                - currency
              type: object
              properties:
                amount:
                  type: integer
                currency:
                  type: string
            narrative:
              required:
                - line1
              type: object
              properties:
                line1:
                  type: string
                line2:
                  type: string
            paymentInstrument:
              oneOf:
                - $ref: '#/components/schemas/_7'
                - $ref: '#/components/schemas/_8'
                - $ref: '#/components/schemas/_9'
              discriminator:
                propertyName: type
            debtRepayment:
              type: boolean
        merchant:
          required:
            - entity
          type: object
          properties:
            entity:
              type: string
            mcc:
              type: string
            paymentFacilitator:
              required:
                - pfId
                - subMerchant
              type: object
              properties:
                pfId:
                  type: string
                subMerchant:
                  required:
                    - merchantId
                    - name
                    - street
                    - city
                    - countryCode
                    - postalCode
                  type: object
                  properties:
                    city:
                      type: string
                    name:
                      type: string
                    postalCode:
                      type: string
                    merchantId:
                      type: string
                    countryCode:
                      type: string
                    street:
                      type: string
                    state:
                      type: string
                    taxId:
                      type: string
                isoId:
                  type: string
        transactionReference:
          type: string
        channel:
          enum:
            - moto
          type: string
        customer:
          required:
            - authentication
          type: object
          properties:
            authentication:
              required:
                - type
                - eci
              type: object
              properties:
                eci:
                  type: string
                type:
                  type: string
                authenticationValue:
                  type: string
                version:
                  type: string
                transactionId:
                  type: string
    payments_migrateCardOnFileAuthorize_201_response:
      required:
        - outcome
      type: object
      properties:
        outcome:
          type: string
        issuer:
          required:
            - authorizationCode
          type: object
          properties:
            authorizationCode:
              type: string
        paymentInstrument:
          type: object
          properties:
            type:
              type: string
            card:
              type: object
              properties:
                number:
                  type: object
                  properties:
                    bin:
                      type: string
                    last4Digits:
                      type: string
                    dpan:
                      type: string
                issuer:
                  type: object
                  properties:
                    name:
                      type: string
                paymentAccountReference:
                  type: string
                countryCode:
                  type: string
                fundingType:
                  type: string
                brand:
                  type: string
                expiryDate:
                  type: object
                  properties:
                    month:
                      type: integer
                    year:
                      type: integer
        riskFactors:
          required:
            - type
            - risk
          type: array
          items:
            required:
              - type
              - risk
            type: object
            properties:
              type:
                enum:
                  - avs
                  - cvc
                type: string
              risk:
                enum:
                  - not_checked
                  - not_matched
                  - not_supplied
                type: string
              detail:
                enum:
                  - address
                  - postcode
                type: string
          description: >-
            Any risk factors which have been identified for the authorization.
            This section will not appear if no risks are identified.
        scheme:
          required:
            - reference
          type: object
          properties:
            reference:
              type: string
    _10:
      required:
        - type
        - cardNumber
        - cardHolderName
        - cardExpiryDate
      type: object
      properties:
        cardHolderName:
          type: string
        cardExpiryDate:
          required:
            - month
            - year
          type: object
          properties:
            month:
              type: integer
            year:
              type: integer
        type:
          enum:
            - card/plain
          type: string
        cardNumber:
          type: string
        billingAddress:
          required:
            - postalCode
            - countryCode
          type: object
          properties:
            postalCode:
              type: string
            countryCode:
              type: string
            city:
              type: string
            address2:
              type: string
            state:
              type: string
            address3:
              type: string
            address1:
              type: string
        cvc:
          type: string
    _11:
      required:
        - type
        - href
      type: object
      properties:
        type:
          enum:
            - card/token
          type: string
        href:
          type: string
    _12:
      required:
        - type
        - tokenHref
      type: object
      properties:
        type:
          enum:
            - card/token2
          type: string
        tokenHref:
          type: string
        cvcHref:
          type: string
    payments_migrateCardOnFileSale:
      required:
        - transactionReference
        - merchant
        - instruction
      type: object
      properties:
        instruction:
          required:
            - value
            - narrative
            - paymentInstrument
          type: object
          properties:
            value:
              required:
                - amount
                - currency
              type: object
              properties:
                amount:
                  type: integer
                currency:
                  type: string
            narrative:
              required:
                - line1
              type: object
              properties:
                line1:
                  type: string
                line2:
                  type: string
            paymentInstrument:
              oneOf:
                - $ref: '#/components/schemas/_10'
                - $ref: '#/components/schemas/_11'
                - $ref: '#/components/schemas/_12'
              discriminator:
                propertyName: type
            debtRepayment:
              type: boolean
        merchant:
          required:
            - entity
          type: object
          properties:
            entity:
              type: string
            mcc:
              type: string
            paymentFacilitator:
              required:
                - pfId
                - subMerchant
              type: object
              properties:
                pfId:
                  type: string
                subMerchant:
                  required:
                    - merchantId
                    - name
                    - street
                    - city
                    - countryCode
                    - postalCode
                  type: object
                  properties:
                    city:
                      type: string
                    name:
                      type: string
                    postalCode:
                      type: string
                    merchantId:
                      type: string
                    countryCode:
                      type: string
                    street:
                      type: string
                    state:
                      type: string
                    taxId:
                      type: string
                isoId:
                  type: string
        transactionReference:
          type: string
        channel:
          enum:
            - moto
          type: string
        customer:
          required:
            - authentication
          type: object
          properties:
            authentication:
              required:
                - type
                - eci
              type: object
              properties:
                eci:
                  type: string
                type:
                  type: string
                authenticationValue:
                  type: string
                version:
                  type: string
                transactionId:
                  type: string
    payments_migrateCardOnFileSale_201_response:
      required:
        - outcome
      type: object
      properties:
        outcome:
          type: string
        issuer:
          required:
            - authorizationCode
          type: object
          properties:
            authorizationCode:
              type: string
        paymentInstrument:
          type: object
          properties:
            type:
              type: string
            card:
              type: object
              properties:
                number:
                  type: object
                  properties:
                    bin:
                      type: string
                    last4Digits:
                      type: string
                    dpan:
                      type: string
                issuer:
                  type: object
                  properties:
                    name:
                      type: string
                paymentAccountReference:
                  type: string
                countryCode:
                  type: string
                fundingType:
                  type: string
                brand:
                  type: string
                expiryDate:
                  type: object
                  properties:
                    month:
                      type: integer
                    year:
                      type: integer
        riskFactors:
          required:
            - type
            - risk
          type: array
          items:
            required:
              - type
              - risk
            type: object
            properties:
              type:
                enum:
                  - avs
                  - cvc
                type: string
              risk:
                enum:
                  - not_checked
                  - not_matched
                  - not_supplied
                type: string
              detail:
                enum:
                  - address
                  - postcode
                type: string
          description: >-
            Any risk factors which have been identified for the authorization.
            This section will not appear if no risks are identified.
        scheme:
          required:
            - reference
          type: object
          properties:
            reference:
              type: string
    payments_recurringMandate:
      required:
        - schemeTransactionId
      type: object
      properties:
        schemeTransactionId:
          type: string
    payments_migrateRecurringAuthorize:
      required:
        - value
        - reference
      type: object
      properties:
        value:
          required:
            - amount
            - currency
          type: object
          properties:
            amount:
              type: integer
            currency:
              type: string
        reference:
          type: string
    payments_migrateRecurringAuthorize_202_response:
      type: object
    _13:
      required:
        - type
        - cardNumber
        - cardHolderName
        - cardExpiryDate
      type: object
      properties:
        cardHolderName:
          type: string
        cardExpiryDate:
          required:
            - month
            - year
          type: object
          properties:
            month:
              type: integer
            year:
              type: integer
        type:
          enum:
            - card/plain
          type: string
        cardNumber:
          type: string
        billingAddress:
          required:
            - address1
            - city
            - postalCode
            - countryCode
          type: object
          properties:
            city:
              type: string
            postalCode:
              type: string
            countryCode:
              type: string
            address1:
              type: string
            address2:
              type: string
            state:
              type: string
            address3:
              type: string
    _14:
      required:
        - type
        - href
      type: object
      properties:
        type:
          enum:
            - card/token
          type: string
        href:
          type: string
    _15:
      required:
        - type
        - dpan
        - cardHolderName
        - cardExpiryDate
      type: object
      properties:
        dpan:
          type: string
        cardHolderName:
          type: string
        cardExpiryDate:
          required:
            - month
            - year
          type: object
          properties:
            month:
              type: integer
            year:
              type: integer
        type:
          enum:
            - card/networkToken+applepay
          type: string
        billingAddress:
          required:
            - postalCode
            - countryCode
          type: object
          properties:
            postalCode:
              type: string
            countryCode:
              type: string
            city:
              type: string
            address2:
              type: string
            state:
              type: string
            address3:
              type: string
            address1:
              type: string
    payments_recurringAuthorize:
      required:
        - transactionReference
        - merchant
        - instruction
      type: object
      properties:
        transactionReference:
          type: string
        merchant:
          required:
            - entity
          type: object
          properties:
            entity:
              type: string
            mcc:
              type: string
            paymentFacilitator:
              required:
                - pfId
                - subMerchant
              type: object
              properties:
                pfId:
                  type: string
                subMerchant:
                  required:
                    - merchantId
                    - name
                    - street
                    - city
                    - countryCode
                    - postalCode
                  type: object
                  properties:
                    city:
                      type: string
                    name:
                      type: string
                    postalCode:
                      type: string
                    merchantId:
                      type: string
                    countryCode:
                      type: string
                    street:
                      type: string
                    state:
                      type: string
                    taxId:
                      type: string
                isoId:
                  type: string
        instruction:
          required:
            - value
            - narrative
            - paymentInstrument
          type: object
          properties:
            value:
              required:
                - amount
                - currency
              type: object
              properties:
                amount:
                  type: integer
                currency:
                  type: string
            narrative:
              required:
                - line1
              type: object
              properties:
                line1:
                  type: string
                line2:
                  type: string
            paymentInstrument:
              oneOf:
                - $ref: '#/components/schemas/_13'
                - $ref: '#/components/schemas/_14'
                - $ref: '#/components/schemas/_15'
              discriminator:
                propertyName: type
            debtRepayment:
              type: boolean
    payments_recurringAuthorize_201_response:
      required:
        - outcome
      type: object
      properties:
        outcome:
          type: string
        issuer:
          required:
            - authorizationCode
          type: object
          properties:
            authorizationCode:
              type: string
        paymentInstrument:
          type: object
          properties:
            type:
              type: string
            card:
              type: object
              properties:
                number:
                  type: object
                  properties:
                    bin:
                      type: string
                    last4Digits:
                      type: string
                    dpan:
                      type: string
                issuer:
                  type: object
                  properties:
                    name:
                      type: string
                paymentAccountReference:
                  type: string
                countryCode:
                  type: string
                fundingType:
                  type: string
                brand:
                  type: string
                expiryDate:
                  type: object
                  properties:
                    month:
                      type: integer
                    year:
                      type: integer
        riskFactors:
          required:
            - type
            - risk
          type: array
          items:
            required:
              - type
              - risk
            type: object
            properties:
              type:
                enum:
                  - avs
                  - cvc
                type: string
              risk:
                enum:
                  - not_checked
                  - not_matched
                  - not_supplied
                type: string
              detail:
                enum:
                  - address
                  - postcode
                type: string
          description: >-
            Any risk factors which have been identified for the authorization.
            This section will not appear if no risks are identified.
        scheme:
          required:
            - reference
          type: object
          properties:
            reference:
              type: string
    _16:
      required:
        - type
        - cardNumber
        - cardHolderName
        - cardExpiryDate
      type: object
      properties:
        cardHolderName:
          type: string
        cardExpiryDate:
          required:
            - month
            - year
          type: object
          properties:
            month:
              type: integer
            year:
              type: integer
        type:
          enum:
            - card/plain
          type: string
        cardNumber:
          type: string
        billingAddress:
          required:
            - address1
            - city
            - postalCode
            - countryCode
          type: object
          properties:
            city:
              type: string
            postalCode:
              type: string
            countryCode:
              type: string
            address1:
              type: string
            address2:
              type: string
            state:
              type: string
            address3:
              type: string
    _17:
      required:
        - type
        - href
      type: object
      properties:
        type:
          enum:
            - card/token
          type: string
        href:
          type: string
    _18:
      required:
        - type
        - dpan
        - cardHolderName
        - cardExpiryDate
      type: object
      properties:
        dpan:
          type: string
        cardHolderName:
          type: string
        cardExpiryDate:
          required:
            - month
            - year
          type: object
          properties:
            month:
              type: integer
            year:
              type: integer
        type:
          enum:
            - card/networkToken+applepay
          type: string
        billingAddress:
          required:
            - postalCode
            - countryCode
          type: object
          properties:
            postalCode:
              type: string
            countryCode:
              type: string
            city:
              type: string
            address2:
              type: string
            state:
              type: string
            address3:
              type: string
            address1:
              type: string
    payments_recurringSale:
      required:
        - transactionReference
        - merchant
        - instruction
      type: object
      properties:
        transactionReference:
          type: string
        merchant:
          required:
            - entity
          type: object
          properties:
            entity:
              type: string
            mcc:
              type: string
            paymentFacilitator:
              required:
                - pfId
                - subMerchant
              type: object
              properties:
                pfId:
                  type: string
                subMerchant:
                  required:
                    - merchantId
                    - name
                    - street
                    - city
                    - countryCode
                    - postalCode
                  type: object
                  properties:
                    city:
                      type: string
                    name:
                      type: string
                    postalCode:
                      type: string
                    merchantId:
                      type: string
                    countryCode:
                      type: string
                    street:
                      type: string
                    state:
                      type: string
                    taxId:
                      type: string
                isoId:
                  type: string
        instruction:
          required:
            - value
            - narrative
            - paymentInstrument
          type: object
          properties:
            value:
              required:
                - amount
                - currency
              type: object
              properties:
                amount:
                  type: integer
                currency:
                  type: string
            narrative:
              required:
                - line1
              type: object
              properties:
                line1:
                  type: string
                line2:
                  type: string
            paymentInstrument:
              oneOf:
                - $ref: '#/components/schemas/_16'
                - $ref: '#/components/schemas/_17'
                - $ref: '#/components/schemas/_18'
              discriminator:
                propertyName: type
            debtRepayment:
              type: boolean
    payments_recurringSale_201_response:
      required:
        - outcome
      type: object
      properties:
        outcome:
          type: string
        issuer:
          required:
            - authorizationCode
          type: object
          properties:
            authorizationCode:
              type: string
        paymentInstrument:
          type: object
          properties:
            type:
              type: string
            card:
              type: object
              properties:
                number:
                  type: object
                  properties:
                    bin:
                      type: string
                    last4Digits:
                      type: string
                    dpan:
                      type: string
                issuer:
                  type: object
                  properties:
                    name:
                      type: string
                paymentAccountReference:
                  type: string
                countryCode:
                  type: string
                fundingType:
                  type: string
                brand:
                  type: string
                expiryDate:
                  type: object
                  properties:
                    month:
                      type: integer
                    year:
                      type: integer
        riskFactors:
          required:
            - type
            - risk
          type: array
          items:
            required:
              - type
              - risk
            type: object
            properties:
              type:
                enum:
                  - avs
                  - cvc
                type: string
              risk:
                enum:
                  - not_checked
                  - not_matched
                  - not_supplied
                type: string
              detail:
                enum:
                  - address
                  - postcode
                type: string
          description: >-
            Any risk factors which have been identified for the authorization.
            This section will not appear if no risks are identified.
        scheme:
          required:
            - reference
          type: object
          properties:
            reference:
              type: string
    payments_events_200_response:
      required:
        - lastEvent
      type: object
      properties:
        lastEvent:
          type: string
    payments_events_recovery_200_response:
      required:
        - lastEvent
      type: object
      properties:
        lastEvent:
          type: string
  securitySchemes:
    BasicAuth:
      type: http
      scheme: basic
security:
  - BasicAuth: []
tags:
  - name: Take a one-time payment
    description: >-
      To take a payment, you must first create an authorization request. Your
      response contains links to your next available actions.
  - name: Take repeat payments
    description: Take a payment using a stored credential
  - name: Manage Payments
    description: Cancel, settle, refund or reverse payments
  - name: Query a Payment
    description: >-
      Send a request to find out the current status of your payment after it has
      been authorized.
