openapi: 3.0.1
info:
  title: Checkout API
  version: 1.42.4
  description: >-
    The Checkout API enables merchants to create and manage hosted payment pages,
    accept payments via multiple methods (cards, digital wallets, local payment methods),
    and manage theming and templates for the checkout experience.
  contact:
    name: Verifone Developer Support
    url: https://docs.verifone.com
  license:
    name: Apache 2.0
    url: https://www.apache.org/licenses/LICENSE-2.0.html
tags:
  - name: Checkout
    description: >-
      Create, retrieve, update, and manage checkout sessions. A checkout session
      generates a hosted payment page URL that the customer visits to complete payment.
  - name: Theming
    description: >-
      Manage visual themes for the checkout page. Upload images and apply branding
      colours, fonts, and logos to customise the shopper experience.
  - name: Templating
    description: >-
      Manage checkout templates that pre-define the field visibility and layout for the
      customer data collection form. To apply a template, pass its ID in the
      `checkout_template_id` field when creating a checkout.
  - name: Error codes
    description: |-
      Each API error response contains the following fields:

      | Field | Type | Description |
      |-------|------|-------------|
      | `code` | number | 3-digit Verifone error code |
      | `timestamp` | string | ISO 8601 timestamp of the error |
      | `message` | string | Human-readable description |
      | `details` | object | Optional additional context |

      **Common error codes:**

      | HTTP Status | Verifone Code | Cause |
      |-------------|--------------|-------|
      | 400 | 107 | Invalid parameter format — check `details` for affected fields |
      | 400 | 110 | Invalid resource or malformed JSON |
      | 400 | 126 | Missing required parameter |
      | 400 | 123 | Transaction rejected by processor |
      | 400 | 127 | Unexpected parameter submitted |
      | 401 | 116 | Authentication required — check Authorization header |
      | 403 | 111 | Transaction blocked by organisation ruleset |
      | 403 | 113 | Insufficient permissions for this operation |
      | 403 | 121 | Transaction declined by processor |
      | 403 | 165 | Checkout exceeded maximum failed transaction attempts (3) |
      | 403 | 168 | Checkout already completed |
      | 403 | 169 | Checkout has expired (max 30 days) |
      | 404 | 109 | Resource not found |
      | 500 | 100 | Unexpected server error — contact support with code and timestamp |
      | 504 | 170 | API call timed out — retry the request |
servers:
- url: https://emea.gsc.verifone.cloud/oidc/checkout-service
  description: EMEA
- url: https://us.gsc.verifone.cloud/oidc/checkout-service
  description: Americas
- url: https://nz.gsc.verifone.cloud/oidc/checkout-service
  description: New Zealand
- url: https://cst.test-gsc.vfims.com/oidc/checkout-service
  description: Global Sandbox
- url: https://uscst-gb.gsc.vficloud.net/oidc/checkout-service
  description: US Sandbox

paths:
  /v2/checkout:
    post:
      tags:
        - Checkout
      summary: Create a checkout
      security:
        - BasicAuth: []
        - BearerAuth: []
      operationId: postV2Checkout
      requestBody:
        required: true
        content:
          application/json:
            schema:
              oneOf:
                - $ref: '#/components/schemas/CreateCheckoutRequest'
                - $ref: '#/components/schemas/CardCaptureRequest'
            examples:
              card_payment:
                summary: Card — PAYMENT mode
                value:
                  entity_id: "a6b45428-0296-4394-8ddd-0b50b5b20aa9"
                  currency_code: "USD"
                  amount: 1000
                  merchant_reference: "ORDER-12345"
                  return_url: "https://merchant.example.com/order/success"
                  interaction_type: "HPP"
                  receipt_type: "FULL_RECEIPT"
                  configurations:
                    card:
                      mode: "PAYMENT"
                      payment_contract_id: "e3d4f5a6-b7c8-9d0e-1f2a-3b4c5d6e7f8a"
                      capture_now: true
              card_3ds_payment:
                summary: Card — 3DS_PAYMENT mode
                value:
                  entity_id: "a6b45428-0296-4394-8ddd-0b50b5b20aa9"
                  currency_code: "USD"
                  amount: 1000
                  merchant_reference: "ORDER-12345"
                  return_url: "https://merchant.example.com/order/success"
                  interaction_type: "HPP"
                  receipt_type: "FULL_RECEIPT"
                  configurations:
                    card:
                      mode: "3DS_PAYMENT"
                      payment_contract_id: "e3d4f5a6-b7c8-9d0e-1f2a-3b4c5d6e7f8a"
                      capture_now: true
                      threed_secure:
                        enabled: true
                        threeds_contract_id: "c1d2e3f4-a5b6-7c8d-9e0f-1a2b3c4d5e6f"
              card_3ds:
                summary: Card — 3DS mode (verification only)
                value:
                  entity_id: "a6b45428-0296-4394-8ddd-0b50b5b20aa9"
                  currency_code: "USD"
                  amount: 1000
                  merchant_reference: "ORDER-12345"
                  return_url: "https://merchant.example.com/order/success"
                  interaction_type: "HPP"
                  receipt_type: "FULL_RECEIPT"
                  configurations:
                    card:
                      mode: "3DS"
                      threed_secure:
                        enabled: true
                        threeds_contract_id: "c1d2e3f4-a5b6-7c8d-9e0f-1a2b3c4d5e6f"
              card_capture:
                summary: Card — CARD_CAPTURE mode (capture only, no payment)
                value:
                  entity_id: "a6b45428-0296-4394-8ddd-0b50b5b20aa9"
                  merchant_reference: "ORDER-12345"
                  return_url: "https://merchant.example.com/order/success"
                  interaction_type: "HPP"
                  configurations:
                    card:
                      mode: "CARD_CAPTURE"
              gpp2:
                summary: GPP2 payment
                value:
                  entity_id: "a6b45428-0296-4394-8ddd-0b50b5b20aa9"
                  currency_code: "USD"
                  amount: 1000
                  merchant_reference: "ORDER-12345"
                  return_url: "https://merchant.example.com/order/success"
                  interaction_type: "HPP"
                  receipt_type: "FULL_RECEIPT"
                  configurations:
                    gpp2:
                      payment_contract_id: "e3d4f5a6-b7c8-9d0e-1f2a-3b4c5d6e7f8a"
                      shopper_interaction: "ECOMMERCE"
              gift_card:
                summary: Gift Card payment
                value:
                  entity_id: "a6b45428-0296-4394-8ddd-0b50b5b20aa9"
                  currency_code: "USD"
                  amount: 1000
                  merchant_reference: "ORDER-12345"
                  return_url: "https://merchant.example.com/order/success"
                  interaction_type: "HPP"
                  receipt_type: "FULL_RECEIPT"
                  configurations:
                    gift_card:
                      capture_now: true
                      card:
                        payment_contract_id: "e3d4f5a6-b7c8-9d0e-1f2a-3b4c5d6e7f8a"
              paypal:
                summary: PayPal payment
                value:
                  entity_id: "a6b45428-0296-4394-8ddd-0b50b5b20aa9"
                  currency_code: "USD"
                  amount: 1000
                  merchant_reference: "ORDER-12345"
                  return_url: "https://merchant.example.com/order/success"
                  interaction_type: "HPP"
                  receipt_type: "FULL_RECEIPT"
                  configurations:
                    paypal:
                      payment_contract_id: "e3d4f5a6-b7c8-9d0e-1f2a-3b4c5d6e7f8a"
                      capture_now: true
              google_pay:
                summary: Google Pay payment
                value:
                  entity_id: "a6b45428-0296-4394-8ddd-0b50b5b20aa9"
                  currency_code: "USD"
                  amount: 1000
                  merchant_reference: "ORDER-12345"
                  return_url: "https://merchant.example.com/order/success"
                  interaction_type: "HPP"
                  receipt_type: "FULL_RECEIPT"
                  configurations:
                    google_pay:
                      capture_now: true
                      card:
                        payment_contract_id: "e3d4f5a6-b7c8-9d0e-1f2a-3b4c5d6e7f8a"
                        sca_compliance_level: "NONE"
                        threed_secure:
                          threeds_contract_id: "c1d2e3f4-a5b6-7c8d-9e0f-1a2b3c4d5e6f"
                          transaction_mode: "S"
              apple_pay:
                summary: Apple Pay payment
                value:
                  entity_id: "a6b45428-0296-4394-8ddd-0b50b5b20aa9"
                  currency_code: "USD"
                  amount: 1000
                  merchant_reference: "ORDER-12345"
                  return_url: "https://merchant.example.com/order/success"
                  interaction_type: "HPP"
                  receipt_type: "FULL_RECEIPT"
                  configurations:
                    apple_pay:
                      capture_now: true
                      card:
                        payment_contract_id: "e3d4f5a6-b7c8-9d0e-1f2a-3b4c5d6e7f8a"
                        sca_compliance_level: "NONE"
                        threed_secure: {}
              klarna:
                summary: Klarna payment
                value:
                  entity_id: "a6b45428-0296-4394-8ddd-0b50b5b20aa9"
                  currency_code: "EUR"
                  amount: 1000
                  merchant_reference: "ORDER-12345"
                  return_url: "https://merchant.example.com/order/success"
                  interaction_type: "HPP"
                  receipt_type: "FULL_RECEIPT"
                  configurations:
                    klarna:
                      capture_now: true
              vipps:
                summary: Vipps payment
                value:
                  entity_id: "a6b45428-0296-4394-8ddd-0b50b5b20aa9"
                  currency_code: "NOK"
                  amount: 1000
                  merchant_reference: "ORDER-12345"
                  return_url: "https://merchant.example.com/order/success"
                  interaction_type: "HPP"
                  receipt_type: "FULL_RECEIPT"
                  configurations:
                    vipps:
                      payment_contract_id: "e3d4f5a6-b7c8-9d0e-1f2a-3b4c5d6e7f8a"
                      capture_now: true
                      card:
                        sca_compliance_level: "NONE"
                        threed_secure:
                          threeds_contract_id: "c1d2e3f4-a5b6-7c8d-9e0f-1a2b3c4d5e6f"
                          transaction_mode: "S"
              swish:
                summary: Swish payment
                value:
                  entity_id: "a6b45428-0296-4394-8ddd-0b50b5b20aa9"
                  currency_code: "SEK"
                  amount: 1000
                  merchant_reference: "ORDER-12345"
                  return_url: "https://merchant.example.com/order/success"
                  interaction_type: "HPP"
                  receipt_type: "FULL_RECEIPT"
                  configurations:
                    swish:
                      shopper_interaction: "MCOMMERCE"
                      app_phone_number: "+46701234567"
              mobile_pay:
                summary: MobilePay payment
                value:
                  entity_id: "a6b45428-0296-4394-8ddd-0b50b5b20aa9"
                  currency_code: "DKK"
                  amount: 1000
                  merchant_reference: "ORDER-12345"
                  return_url: "https://merchant.example.com/order/success"
                  interaction_type: "HPP"
                  receipt_type: "FULL_RECEIPT"
                  configurations:
                    mobile_pay:
                      payment_contract_id: "e3d4f5a6-b7c8-9d0e-1f2a-3b4c5d6e7f8a"
                      capture_now: true
              bank:
                summary: Bank (Open Banking) payment
                value:
                  entity_id: "a6b45428-0296-4394-8ddd-0b50b5b20aa9"
                  currency_code: "EUR"
                  amount: 1000
                  merchant_reference: "ORDER-12345"
                  return_url: "https://merchant.example.com/order/success"
                  interaction_type: "HPP"
                  receipt_type: "FULL_RECEIPT"
                  configurations:
                    bank:
                      op:
                        payment_contract_id: "e3d4f5a6-b7c8-9d0e-1f2a-3b4c5d6e7f8a"
              plcc:
                summary: Private Label Credit Card (PLCC) payment
                value:
                  entity_id: "a6b45428-0296-4394-8ddd-0b50b5b20aa9"
                  currency_code: "USD"
                  amount: 1000
                  merchant_reference: "ORDER-12345"
                  return_url: "https://merchant.example.com/order/success"
                  interaction_type: "HPP"
                  receipt_type: "FULL_RECEIPT"
                  configurations:
                    plcc:
                      mode: "PAYMENT"
                      payment_contract_id: "e3d4f5a6-b7c8-9d0e-1f2a-3b4c5d6e7f8a"
                      capture_now: true
      responses:
        200:
          description: Successful
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/CreateCheckoutResponse'
                  - type: object
                    properties:
                      details:
                        type: object
                        description: The details object displays any errors or warnings that occur during the request.
                        properties:
                          errors:
                            type: array
                            items:
                              type: object
        400:
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        401:
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        403:
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        404:
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        500:
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        504:
          description: Gateway Time-out
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
    get:
      tags:
        - Checkout
      summary: List Checkouts
      security:
        - BasicAuth: []
        - BearerAuth: []
      operationId: getV2Checkout
      parameters:
      - name: search
        in: query
        description: |-
          Filter checkouts using RSQL syntax. Combine expressions with `;` (AND) or `,` (OR).

          **Filterable fields:**

          | Field | Type | Operators |
          |-------|------|-----------|
          | `amount` | number | `==` `!=` `=in=` `=out=` `=gt=` `=ge=` `=lt=` `=le=` |
          | `created_at` | date | `==` `!=` `=in=` `=out=` `=gt=` `=ge=` `=lt=` `=le=` |
          | `currency_code` | string | `==` `!=` `=in=` `=out=` `=regex=` |
          | `customer` | string | `==` `!=` `=in=` `=out=` `=regex=` |
          | `id` | string | `==` `!=` `=in=` `=out=` `=regex=` |
          | `merchant_reference` | string | `==` `!=` `=in=` `=out=` `=regex=` |
          | `entity_id` | string | `==` `!=` `=in=` `=out=` `=regex=` |
          | `updated_at` | date | `==` `!=` `=in=` `=out=` `=gt=` `=ge=` `=lt=` `=le=` |
          | `expiry_time` | date | `==` `!=` `=in=` `=out=` `=gt=` `=ge=` `=lt=` `=le=` |
          | `status` | string | `==` `!=` `=in=` `=out=` `=regex=` |
          | `notification_methods.email.email_address` | string | `==` `!=` `=in=` `=out=` `=regex=` |
          | `configurations.card.token_details.reuse_token` | string | `==` `!=` `=in=` `=out=` `=regex=` |
          | `payment_method_used` | string | `==` `!=` `=in=` `=out=` `=regex=` |
          | `interaction_type` | string | `==` `!=` `=in=` `=out=` `=regex=` |
          | `theme_id` | string | `==` `!=` `=in=` `=out=` `=regex=` |
          | `transaction_id` | string | `==` `!=` `=in=` `=out=` `=regex=` |
          | `created_by` | string | `==` `!=` `=in=` `=out=` `=regex=` |

          **Examples:**
          - `id==123;(amount==999,currency_code==USD);status==Authorized`
          - `id==12345,merchant_reference==1234554321;amount==3224`
          - `amount=in=(100,200);interaction_type!=PAYMENT_LINK`
        required: true
        schema:
          type: string
      - name: order_criteria
        in: query
        description: "The ordering sequence of the selected checkouts\n        If
          \ not selected then a default order is based on created Date Time.\n
          \       The value of order_criteria can be one of the following: \n
          \ <ul>
                <li>amount</li>
                <li>currency_code</li>
                <li>created_at</li>
                <li>updated_at</li>
          </ul>\n"
        schema:
          maxLength: 255
          type: string
      - name: order_by
        in: query
        description: The ordering sequence of the selected customers If not selected
          then Descending order is the default order.
        schema:
          type: string
          enum:
          - ASC
          - DESC
      - name: page_number
        in: query
        description: A filter query in RSQL format to retrieve customers based on
          page number. If not selected then a default pageNumber is 1.
        schema:
          minimum: 1
          type: number
      - name: page_size
        in: query
        description: A filter query in RSQL format to retrieve customers based on
          page size. If not selected then a default pageSize is 50
        schema:
          minimum: 0
          type: number
      - name: populate_customer_details
        in: query
        description: A query param to allow customer details to be populated for the customer id attached to checkout.
        schema:
          type: boolean
          default: false
      responses:
        200:
          description: Successful
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CheckoutList'
        400:
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        401:
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        403:
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        500:
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'

  /v2/checkout/{checkoutId}:
    get:
      tags:
        - Checkout
      summary: Get a checkout by id
      security:
        - BasicAuth: []
        - BearerAuth: []
      operationId: getV2CheckoutCheckoutid
      parameters:
      - name: checkoutId
        in: path
        description: Checkout ID
        required: true
        schema:
          type: string
          x-format:
            guid: true
        x-format:
          guid: true
      responses:
        200:
          description: Successful
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Checkout'
        400:
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        401:
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        403:
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        404:
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        500:
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
    patch:
      tags:
        - Checkout
      summary: Update a checkout
      security:
        - BasicAuth: []
        - BearerAuth: []
      operationId: patchV2CheckoutCheckoutid
      parameters:
      - name: checkoutId
        in: path
        description: Checkout ID
        required: true
        schema:
          type: string
          x-format:
            guid: true
        x-format:
          guid: true
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateCheckoutRequest'
        required: false
      responses:
        200:
          description: Successful
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Checkout'
        400:
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        401:
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        403:
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        404:
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        500:
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
  /v2/checkout/count:
    get:
      tags:
        - Checkout
      summary: Count Checkouts
      security:
        - BasicAuth: []
        - BearerAuth: []
      operationId: getV2CheckoutCount
      parameters:
      - name: search
        in: query
        description: |-
          Filter checkouts using RSQL syntax. Combine expressions with `;` (AND) or `,` (OR).

          **Filterable fields:**

          | Field | Type | Operators |
          |-------|------|-----------|
          | `amount` | number | `==` `!=` `=in=` `=out=` `=gt=` `=ge=` `=lt=` `=le=` |
          | `created_at` | date | `==` `!=` `=in=` `=out=` `=gt=` `=ge=` `=lt=` `=le=` |
          | `currency_code` | string | `==` `!=` `=in=` `=out=` `=regex=` |
          | `customer` | string | `==` `!=` `=in=` `=out=` `=regex=` |
          | `id` | string | `==` `!=` `=in=` `=out=` `=regex=` |
          | `merchant_reference` | string | `==` `!=` `=in=` `=out=` `=regex=` |
          | `entity_id` | string | `==` `!=` `=in=` `=out=` `=regex=` |
          | `updated_at` | date | `==` `!=` `=in=` `=out=` `=gt=` `=ge=` `=lt=` `=le=` |
          | `expiry_time` | date | `==` `!=` `=in=` `=out=` `=gt=` `=ge=` `=lt=` `=le=` |
          | `status` | string | `==` `!=` `=in=` `=out=` `=regex=` |
          | `notification_methods.email.email_address` | string | `==` `!=` `=in=` `=out=` `=regex=` |
          | `configurations.card.token_details.reuse_token` | string | `==` `!=` `=in=` `=out=` `=regex=` |
          | `payment_method_used` | string | `==` `!=` `=in=` `=out=` `=regex=` |
          | `interaction_type` | string | `==` `!=` `=in=` `=out=` `=regex=` |
          | `theme_id` | string | `==` `!=` `=in=` `=out=` `=regex=` |
          | `transaction_id` | string | `==` `!=` `=in=` `=out=` `=regex=` |
          | `created_by` | string | `==` `!=` `=in=` `=out=` `=regex=` |

          **Examples:**
          - `id==123;(amount==999,currency_code==USD);status==Authorized`
          - `id==12345,merchant_reference==1234554321;amount==3224`
          - `amount=in=(100,200);interaction_type!=PAYMENT_LINK`
        required: true
        schema:
          type: string
      responses:
        200:
          description: Successful
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CheckoutCountResponse'
        400:
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        401:
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        403:
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        500:
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
  /v2/checkout/refund/preview:
    post:
      tags:
        - Checkout
      summary: Refund Preview
      security:
        - BasicAuth: []
        - BearerAuth: []
      operationId: postV2CheckoutRefundPreview
      requestBody:
        content:
          application/json:
            schema:
               $ref: '#/components/schemas/RefundPreviewRequest'
        required: false
      responses:
        200:
          description: Successful
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/RefundPreviewResponse'
                  - type: object
                    properties:
                      details:
                        type: object
                        description: The details object displays any errors or warnings that occur during the request.
                        properties:
                          errors:
                            type: array
                            items:
                              type: object
        400:
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        401:
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        403:
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        500:
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
  /v2/theme:
    get:
      tags:
      - Theming
      summary: List Themes
      security:
        - BasicAuth: []
        - BearerAuth: []
      operationId: getV2Theme
      parameters:
      - name: search
        in: query
        description: |-
          Filter themes using RSQL syntax. Combine expressions with `;` (AND) or `,` (OR).

          **Filterable fields:**

          | Field | Type | Operators |
          |-------|------|-----------|
          | `name` | string | `==` `!=` `=in=` `=out=` `=regex=` `=contains=` |
          | `created_at` | date | `==` `!=` `=in=` `=out=` `=gt=` `=ge=` `=lt=` `=le=` |
          | `updated_at` | date | `==` `!=` `=in=` `=out=` `=gt=` `=ge=` `=lt=` `=le=` |
          | `entity_id` | string | `==` `!=` `=in=` `=out=` `=regex=` |
          | `is_default` | boolean | `==` `!=` |

          **Examples:**
          - `name==MyTheme;entity_id==a6b45428-0296-4394-8ddd-0b50b5b20aa9`
          - `is_default==true`
        schema:
          type: string
      - name: order_criteria
        in: query
        schema:
          type: string
          enum:
          - name
          - created_at
          - updated_at
      - name: order_by
        in: query
        description: The ordering sequence of the selected customers If not selected
          then Descending order is the default order.
        schema:
          type: string
          enum:
          - ASC
          - DESC
      - name: page_number
        in: query
        description: A filter query in RSQL format to retrieve customers based on
          page number. If not selected then a default pageNumber is 1.
        schema:
          minimum: 1
          type: number
      - name: page_size
        in: query
        description: A filter query in RSQL format to retrieve customers based on
          page size. If not selected then a default pageSize is 50
        schema:
          minimum: 0
          type: number
      - name: populate_customer_details
        in: query
        description: A query param to allow customer details to be populated for the customer id attached to checkout.
        schema:
          type: boolean
          default: false
      responses:
        200:
          description: Successful
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ThemeList'
        400:
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        401:
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        403:
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        500:
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
    post:
      tags:
      - Theming
      summary: Create Theme
      security:
        - BasicAuth: []
        - BearerAuth: []
      operationId: postV2Theme
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateThemeRequest'
        required: false
      responses:
        200:
          description: Successful
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/Theme'
                  - type: object
                    properties:
                      details:
                        type: object
                        description: The details object displays any errors or warnings that occur during the request.
                        properties:
                          warnings:
                            type: array
                            items:
                              type: object
        400:
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        401:
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        403:
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        500:
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
  /v2/theme/preview:
    post:
      tags:
      - Theming
      summary: Preview Theme
      security:
        - BasicAuth: [ ]
      operationId: postV2ThemePreview
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PreviewThemeRequest'
        required: false
      responses:
        200:
          description: Successful
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ThemePreviewResponse'
        400:
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        401:
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        403:
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        500:
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
  /v2/theme/{themeId}:
    get:
      tags:
      - Theming
      summary: Get a theme by id
      security:
        - BasicAuth: []
        - BearerAuth: []
      operationId: getV2ThemeThemeid
      parameters:
      - name: themeId
        in: path
        description: Parameter that was created within the create theme API call that applies the customizations upon the checkout interface. Read <a target="_blank" href="https://docs.verifone.com/online-payments/checkout/theming">Theming</a> for details.
        required: true
        schema:
          type: string
          x-format:
            guid: true
        x-format:
          guid: true
      responses:
        200:
          description: Successful
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Theme'
        400:
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        401:
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        403:
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        404:
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        500:
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
    put:
      tags:
      - Theming
      summary: Update Theme
      security:
        - BasicAuth: []
        - BearerAuth: []
      operationId: putV2ThemeThemeid
      parameters:
        - name: themeId
          in: path
          description: Parameter that was created within the create theme API call that applies the customizations upon the checkout interface. Read <a target="_blank" href="https://docs.verifone.com/online-payments/checkout/theming">Theming</a> for details.
          required: true
          schema:
            type: string
            x-format:
              guid: true
          x-format:
            guid: true
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateThemeRequest'
        required: false
      responses:
        200:
          description: Successful
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/Theme'
                  - type: object
                    properties:
                      details:
                        type: object
                        description: The details object displays any errors or warnings that occur during the request.
                        properties:
                          warnings:
                            type: array
                            items:
                              type: object
        400:
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        401:
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        403:
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        404:
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        500:
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
    delete:
      tags:
      - Theming
      summary: Delete a theme by id
      security:
        - BasicAuth: []
        - BearerAuth: []
      operationId: deleteV2ThemeThemeid
      parameters:
        - name: themeId
          in: path
          description: Parameter that was created within the create theme API call that applies the customizations upon the checkout interface. Read <a target="_blank" href="https://docs.verifone.com/online-payments/checkout/theming">Theming</a> for details.
          required: true
          schema:
            type: string
            x-format:
              guid: true
          x-format:
            guid: true
      responses:
        204:
          description: Success. Theme was successfully deleted.
        400:
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        401:
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        403:
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        404:
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        500:
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
  /v2/theme/count:
    get:
      tags:
      - Theming
      summary: Count Themes
      security:
        - BasicAuth: []
        - BearerAuth: []
      operationId: getV2ThemeCount
      parameters:
      - name: search
        in: query
        description: |-
          Filter themes using RSQL syntax. Combine expressions with `;` (AND) or `,` (OR).

          **Filterable fields:**

          | Field | Type | Operators |
          |-------|------|-----------|
          | `name` | string | `==` `!=` `=in=` `=out=` `=regex=` `=contains=` |
          | `created_at` | date | `==` `!=` `=in=` `=out=` `=gt=` `=ge=` `=lt=` `=le=` |
          | `updated_at` | date | `==` `!=` `=in=` `=out=` `=gt=` `=ge=` `=lt=` `=le=` |
          | `entity_id` | string | `==` `!=` `=in=` `=out=` `=regex=` |
          | `is_default` | boolean | `==` `!=` |

          **Examples:**
          - `name==MyTheme;entity_id==a6b45428-0296-4394-8ddd-0b50b5b20aa9`
          - `is_default==true`
        required: true
        schema:
          type: string
      responses:
        200:
          description: Successful
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CountResponse'
        400:
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        401:
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        403:
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        500:
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
  /v2/image:
    post:
      tags:
      - Theming
      summary: Upload image

      operationId: postV2Image
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UploadImageRequest'
        required: false
      responses:
        200:
          description: Successful
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UploadImageResponse'
        400:
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        401:
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        403:
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        413:
          description: Request Entity Too Large
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        500:
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
  /v2/checkout/{checkoutId}/notification:
    post:
      tags:
        - Checkout
      summary: Create a Checkout Notification
      security:
        - BasicAuth: []
        - BearerAuth: []
      operationId: postV2CheckoutCheckoutidNotification
      parameters:
        - name: checkoutId
          in: path
          description: Checkout ID
          required: true
          schema:
            type: string
            x-format:
              guid: true
          x-format:
            guid: true
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/NotificationRequest'
        required: false
      responses:
        default:
          description: Successful
          content:
            application/json:
              schema:
                type: string
  /v2/template/checkoutDetails:
    post:
      tags:
      - Templating
      summary: Create Template
      security:
        - BasicAuth: []
        - BearerAuth: []
      operationId: postV2Template
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CheckoutTemplate'
        required: false
      responses:
        200:
          description: Successful
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/CheckoutTemplate'
                  - type: object
                    properties:             
                      id:
                        type: string
                        x-format:
                          guid: true
                      created_at:
                        type: string
                        format: date
                      updated_at:
                        type: string
                        format: date
                      status:
                        type: string
                        description: Indicates whether the template is active or not.
                        enum:
                          - ACTIVE
                          - INACTIVE
        400:
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        401:
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        403:
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        500:
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
  /v2/template/checkoutDetails/{id}:
    get:
      tags:
      - Templating
      summary: Get a template by id
      security:
        - BasicAuth: []
        - BearerAuth: []
      operationId: getTemplateById
      parameters:
      - name: id
        in: path
        description: The id parameter in the GET API uniquely identifies a checkout template, allowing you to retrieve detailed information about a specific template by providing its associated identifier.
        required: true
        schema:
          type: string
          x-format:
            guid: true
        x-format:
          guid: true
      responses:
        200:
          description: Successful
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/CheckoutTemplate'
                  - type: object
                    properties:             
                      id:
                        type: string
                        x-format:
                          guid: true
                      created_at:
                        type: string
                        format: date
                      updated_at:
                        type: string
                        format: date
                      status:
                        type: string
                        description: Indicates whether the template is active or not.
                        enum:
                          - ACTIVE
                          - INACTIVE
        400:
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        401:
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        403:
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        404:
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        500:
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
    patch:
      tags:
      - Templating
      summary: Update Template
      security:
        - BasicAuth: []
        - BearerAuth: []
      operationId: patchV2Template
      parameters:
      - name: id
        in: path
        description: The id parameter in the GET API uniquely identifies a checkout template, allowing you to retrieve detailed information about a specific template by providing its associated identifier.
        required: true
        schema:
          type: string
          x-format:
            guid: true
        x-format:
          guid: true
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CheckoutTemplate'
        required: false
      responses:
        200:
          description: Successful
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/CheckoutTemplate'
                  - type: object
                    properties:             
                      id:
                        type: string
                        x-format:
                          guid: true
                      created_at:
                        type: string
                        format: date
                      updated_at:
                        type: string
                        format: date
                      status:
                        type: string
                        description: Indicates whether the template is active or not.
                        enum:
                          - ACTIVE
                          - INACTIVE
        400:
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        401:
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        403:
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        500:
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
    delete:
      tags:
      - Templating
      summary: Delete a template by id
      security:
        - BasicAuth: []
        - BearerAuth: []
      operationId: deleteTemplateById
      parameters:
      - name: id
        in: path
        description: The id parameter in the GET API uniquely identifies a checkout template, allowing you to retrieve detailed information about a specific template by providing its associated identifier.
        required: true
        schema:
          type: string
          x-format:
            guid: true
        x-format:
          guid: true
      responses:
        204:
          description: Success. Template was successfully deleted.
        400:
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        401:
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        403:
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        404:
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        500:
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
  /v2/template/checkoutDetails/:
    get:
      tags:
      - Templating
      summary: List Templates
      security:
        - BasicAuth: []
        - BearerAuth: []
      operationId: listV2Template
      parameters:
      - name: search
        in: query
        description: |-
          Filter templates using RSQL syntax. Combine expressions with `;` (AND) or `,` (OR).

          **Filterable fields:**

          | Field | Type | Operators |
          |-------|------|-----------|
          | `name` | string | `==` `!=` `=in=` `=out=` `=regex=` `=contains=` |
          | `created_at` | date | `==` `!=` `=in=` `=out=` `=gt=` `=ge=` `=lt=` `=le=` |
          | `updated_at` | date | `==` `!=` `=in=` `=out=` `=gt=` `=ge=` `=lt=` `=le=` |
          | `entity_id` | string | `==` `!=` `=in=` `=out=` `=regex=` |

          **Examples:**
          - `name==MyTemplate;entity_id==a6b45428-0296-4394-8ddd-0b50b5b20aa9`
          - `name==TemplateName`
        schema:
          type: string
      - name: order_criteria
        in: query
        schema:
          type: string
          enum:
          - name
          - created_at
          - updated_at
      - name: order_by
        in: query
        description: The ordering sequence of the selected templates If not selected
          then Descending order is the default order.
        schema:
          type: string
          enum:
          - ASC
          - DESC
      - name: page_number
        in: query
        description: A filter query in RSQL format to retrieve templates based on
          page number. If not selected then a default pageNumber is 1.
        schema:
          minimum: 1
          type: number
      - name: page_size
        in: query
        description: A filter query in RSQL format to retrieve templates based on
          page size. If not selected then a default pageSize is 50
        schema:
          minimum: 0
          type: number
      responses:
        200:
          description: Successful
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TemplateList'
        400:
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        401:
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        403:
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        500:
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
  /v2/template/checkoutDetails/count:
    get:
      tags:
      - Templating
      summary: Count Templates
      security:
        - BasicAuth: []
        - BearerAuth: []
      operationId: getV2TemplateCount
      parameters:
      - name: search
        in: query
        description: |-
          Filter templates using RSQL syntax. Combine expressions with `;` (AND) or `,` (OR).

          **Filterable fields:**

          | Field | Type | Operators |
          |-------|------|-----------|
          | `name` | string | `==` `!=` `=in=` `=out=` `=regex=` `=contains=` |
          | `created_at` | date | `==` `!=` `=in=` `=out=` `=gt=` `=ge=` `=lt=` `=le=` |
          | `updated_at` | date | `==` `!=` `=in=` `=out=` `=gt=` `=ge=` `=lt=` `=le=` |
          | `entity_id` | string | `==` `!=` `=in=` `=out=` `=regex=` |

          **Examples:**
          - `name==MyTemplate;entity_id==a6b45428-0296-4394-8ddd-0b50b5b20aa9`
          - `name==TemplateName`
        required: true
        schema:
          type: string
      responses:
        200:
          description: Successful
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TemplateCountResponse'
        400:
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        401:
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        403:
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        500:
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
components:
  schemas:
    consentTextDynamicValues:
      type: array
      description: Optional merchant provided links to be inserted in consent text
        as a link for the text in brackets.
      items:
        type: string
    details:
      type: object
    Event:
      required:
      - id
      - timestamp
      - type
      type: object
      properties:
        type:
          maxLength: 256
          type: string
          description: Type of event which occurred
        id:
          type: string
          description: Id of the event
          x-format:
            guid: true
        timestamp:
          type: string
          description: Time at which the event occurred
          format: date-time
        details:
          $ref: '#/components/schemas/details'
    events:
      type: array
      items:
        $ref: '#/components/schemas/Event'
    threed_secure:
      required:
      - enabled
      - threeds_contract_id
      type: object
      description: Used for <a target="_blank" href="https://docs.verifone.com/online-payments/checkout/accepting-payments/3d-secure-payments">3D-Secure payments</a>
      properties:
        account_age_indicator:
          type: string
          description: 'Length of time cardholder has had account. <br /> Possible
            Values: <br />  * 01 - No account <br />  * 02 - Created during transaction
            <br />  * 03 - Less than 30 days <br />  * 04 - 30-60 days <br />  * 05
            - More than 60 days <br />'
          enum:
          - "01"
          - "02"
          - "03"
          - "04"
          - "05"
        account_create_date:
          type: string
          description: 'Date the cardholder opened the account. `Format: YYYYMMDD`'
          format: date
        account_change_indicator:
          type: string
          description: 'Length of time since the last change to the cardholder account.
            This includes shipping address, <br /> new payment account or new user
            added. Possible Values: <br /> * 01 - Changed during transaction <br />
            * 02 - Less than 30 days <br /> * 03 - 30-60 days <br /> * 04 - More than
            60 days <br />'
          enum:
          - "01"
          - "02"
          - "03"
          - "04"
        account_change_date:
          type: string
          description: "Date the cardholder's account was last changed. This includes
            changes to the billing or shipping address, new payment accounts or new
            users added.` Format: YYYYMMDD` <br />"
          format: date
        account_pwd_change_indicator:
          type: string
          description: 'Length of time since the cardholder changed or reset the password
            on the account. <br />  Possible Values: <br />  * 01 - No change <br
            />  * 02 - Changed during transaction <br />  * 03 - Less than 30 days
            <br />  * 04 - 30-60 days <br />  * 05 - More than 60 days <br />'
          enum:
          - "01"
          - "02"
          - "03"
          - "04"
          - "05"
        account_pwd_change_date:
          type: string
          description: 'Date the cardholder last changed or reset password on account.
            `Format: YYYYMMDD`'
          format: date
        account_id:
          maxLength: 64
          type: string
          description: Additional cardholder account information.
        account_purchases:
          maximum: 9999
          type: integer
          description: Number of purchases with this cardholder account during the
            previous six months.
        acs_window_size:
          type: string
          description: 'An override field that a merchant can pass in to set the challenge
            window size to display to the end <br /> cardholder.The ACS will reply
            with content that is formatted appropriately to this window size to allow
            <br /> for the best user experience. The sizes are width x height in pixels
            of the window displayed in <br /> the cardholder browser window. Possible
            values: <br />  * 01 - 250x400 <br />  * 02 - 390x400 <br />  * 03 - 500x600
            <br />  * 04 - 600x400 <br />  * 05 - Full page <br />'
          enum:
          - "01"
          - "02"
          - "03"
          - "04"
          - "05"
        add_card_attempts:
          maximum: 999
          type: integer
          description: Number of add card attempts in the last 24 hours.
        address_match:
          type: string
          description: 'Indicates whether cardholder billing and shipping addresses
            match. <br /> Possible Values: <br />  * Y - Shipping address matches
            billing address <br />  * N - Shipping address does not match billing
            address <br />'
          enum:
          - Y
          - N
        alternate_authentication_method:
          type: string
          description: 'Mechanism used by the cardholder to authenticate to the 3DS
            requester. <br />  Possible Values: <br />  * 01 - No authentication occurred
            (e.g. Guest Checkout) <br />  * 02 - Login to the cardholder account at
            the Merchant system using Merchant system credentials <br />  * 03 - Login
            to the cardholder account at the Merchant system using a Federated ID
            <br />  * 04 - Login to the cardholder account at the Merchant system
            using Issuer credentials <br />  * 05 - Login to the cardholder account
            at the Merchant system using third-party authentication <br />  * 06 -
            Login to the cardholder account at the Merchant system using FIDO Authenticator
            <br />'
          enum:
          - "01"
          - "02"
          - "03"
          - "04"
          - "05"
          - "06"
        alternate_authentication_date:
          type: string
          description: 'Date and time in UTC of the cardholder authentication. ` Format:
            YYYYMMDDHHMM`'
          format: date
        alternate_authentication_data:
          maxLength: 2048
          type: string
          description: Data that documents and supports a specific authentication
            <br /> process that was sent in the AlternateAuthenticationMethod field.
            <br />
        threeds_contract_id:
          maxLength: 36
          type: string
          description: The ID of the threeDSContract used.
          x-format:
            guid: true
        authentication_indicator:
          type: string
          description: Indicates the type of Authentication request. 01 - Payment
            transaction <br />  02 - Recurring transaction  <br />  03 - Installment
            transaction  <br />  04 - Add card  <br />  05 - Maintain card  <br />  06
            - Cardholder verification as part of EMV token ID&V <br />
          enum:
          - "01"
          - "02"
          - "03"
          - "04"
          - "05"
          - "06"
        category_code:
          maximum: 9999
          type: integer
          description: 'Merchant category code (MCC) <br /> <b>Note:</b> This value is always taken from 3-D Secure Contract. 
            If 3-D Secure Contract is not configured with MCC, Cardinal will use the default value configured. <br />'
          deprecated: true
        challenge_indicator:
          type: string
          description: 'NOTE: This is a 2.0 required field, Cardinal will default
            to 01 on Merchant Configuration <br /> - can be overridden by the merchant.
            Possible Values: <br /> * 01 - No preference <br /> * 02 - No challenge
            requested <br /> * 03 - Challenge requested (3DS Requestor Preference)
            <br /> * 04 - Challenge requested (Mandate) <br />
            * 05 - No challenge requested (transactional risk analysis is already performed) <br />
            * 06 - No challenge requested (Data share only) <br />
            * 07 - No challenge requested (strong consumer authentication is already performed) <br />
            * 08 - No challenge requested (utilise whitelist exemption if no challenge required) <br />
            * 09 - Challenge requested (whitelist prompt requested if challenge required) <br />
            * 90 - CB specific
            value <br />'
          default: "01"
          enum:
          - "01"
          - "02"
          - "03"
          - "04"
          - "05"
          - "06"
          - "07"
          - "08"
          - "09"
          - "90"
        delivery_email:
          maxLength: 255
          type: string
          description: For electronic delivery, email address to which the merchandise
            was delivered.
          x-format:
            email:
              minDomainSegments: 2
        delivery_time_frame:
          type: string
          description: 'Indicates the delivery timeframe.  <br /> Possible Values:
            <br />  * 01 - Electronic delivery <br />  * 02 - Same day shipping <br
            />  * 03 - Overnight shipping <br />  * 04 - Two or more day shipping
            <br />'
          enum:
          - "01"
          - "02"
          - "03"
          - "04"
        enabled:
          type: boolean
          description: Whether 3DS should be used.
        fraud_activity:
          type: string
          description: 'Indicates whether the merchant experienced suspicious activity
            (including previous fraud) on the account. <br /> Possible Values: <br
            />  * 01 - No suspicious activity <br />  * 02 - Suspicious activity observed
            <br />'
          enum:
          - "01"
          - "02"
        gift_card_amount:
          maximum: 999999999999999
          type: integer
          description: 'The purchase amount total for prepaid gift cards in major
            units. <br /> Example: $123.45 USD = 12345 <br />'
        gift_card_currency_code:
          maxLength: 3
          minLength: 3
          type: string
          description: ISO 4217 currency code for the gift card purchased.
        gift_card_count:
          maximum: 99
          type: integer
          description: Total count of individual prepaid gift cards purchased.
        installment:
          maximum: 999
          minimum: 2
          type: number
          description: Indicates the maximum number of authorizations for installment
            payments. An integer value greater than 1 indicating the maximum number
            of permitted authorizations for installment payments. ** Required for
            Recurring and Installment transactions, when authenticationIndicator="02"
            & "03" **
        message_category:
          type: string
          description: 'Category of the message for a specific use case. <br />  Possible
            Values: <br />  * 01 - PA (payment) <br />  * 02 - NPA (non payment) <br
            />  NOTE: Default is payment (01). Configured on Merchant account, or
            can be overridden on transaction. <br />'
          enum:
          - "01"
          - "02"
        payment_use_case:
          type: string
          description: 'Indicates the type of payment.The value from this field will
            be mapped to the data field on the CB-USECASE extension <br />  Possible
            Values: <br />  * 01 - Single Payment <br />  * 02 - Fixed Amount and
            Term Subscription <br />  * 03 - Payment By Instalments <br />  * 04 -
            Payment By Shipment <br />  * 05 - Other Recurring Payments <br />  NOTE:
            Required for CB transactions (Required if message_category = 01, or message_category
            = 02 and authentication_indicator = 02 or 03 <br />'
          default: "01"
          enum:
          - "01"
          - "02"
          - "03"
          - "04"
          - "05"
        payment_account_indicator:
          type: string
          description: 'Indicates the length of time that the payment account was
            enrolled in the merchant account. <br /> Possible Values: <br />  * 01
            - No account (guest checkout) <br />  * 02 - During the transaction <br
            />  * 03 - Less than 30 days <br />  * 04 - 30-60 days <br />  * 05 -
            More than 60 days <br />'
          enum:
          - "01"
          - "02"
          - "03"
          - "04"
          - "05"
        payment_account_age:
          type: string
          description: 'Date the payment account was added to the cardholder account.
            ` Format: YYYYMMDD`'
          format: date
        pre_order_indicator:
          type: string
          description: 'Indicates whether cardholder is placing an order with a future
            availability or release date. <br />  Possible Values: <br />  * 01 -
            Merchandise available <br />  * 02 - Future availability <br />'
          enum:
          - "01"
          - "02"
        pre_order_date:
          type: string
          description: 'Expected date that a pre-ordered purchase will be available.
            `Format: YYYYMMDD`'
          format: date
        prior_authentication_data:
          maxLength: 2048
          type: string
          description: This field carry data that the ACS can use to verify the authentication
            process
        prior_authentication_method:
          type: string
          description: Mechanism used by the Cardholder to previously authenticate
            to the 3DS Requestor. <br />  * 01 - Frictionless authentication occurred
            by ACS <br />  * 02 - Cardholder challenge occurred by ACS <br />  * 03
            - AVS verified <br />  * 04 - Other issuer methods <br />
          enum:
          - "01"
          - "02"
          - "03"
          - "04"
        prior_authentication_time:
          type: string
          description: 'Date and time in UTC of the prior cardholder authentication.
            ` Format: YYYYMMDDHHMM`'
          format: date
        prior_authentication_ref:
          maxLength: 36
          type: string
          description: This data element contains a ACS Transaction ID for a prior
            authenticated transaction. <br /> For example, the first recurring transaction
            that was authenticated with the cardholder <br />
        product_code:
          type: string
          description: 'Merchant product code.  <br /> Possible Values:  <br />  *
            PHY - Goods/Service Purchase  <br />  * CHA - Check Acceptance  <br />  *
            ACF - Account Funding  <br />  * QCT - Quasi-Cash Transaction  <br />  *
            PAL - Prepaid Activation and Load  <br /> NOTE: This value defaults to
            PHY. This field can be used to override that value if applicable.  <br
            />'
          enum:
          - PHY
          - CHA
          - ACF
          - QCT
          - PAL
        recurring_end:
          type: string
          description: 'The date after which no further recurring authorizations should
            be performed. `Format: YYYYMMDD` ** Required for Recurring and Installment
            transactions, when authenticationIndicator="02" & "03" **'
          format: date
        recurring_frequency:
          maximum: 9999
          type: number
          description: 'Conditional: Integer value indicating the minimum number of
            days between recurring authorizations. A frequency of monthly is indicated
            by the value 28. Multiple of 28 days will be used to indicate months.
            Example: 6 months = 168 ** Required for Recurring and Installment transactions,
            when authenticationIndicator="02" & "03" **'
        reorder_indicator:
          type: string
          description: 'Indicates whether cardholder is placing an order with a future
            availability or release date. <br />  Possible Values: <br />  * 01 -
            Merchandise available <br />  * 02 - Future availability <br />'
          enum:
          - "01"
          - "02"
        requestor_id:
          maxLength: 35
          type: string
          description: 'This value is a Directory Server assigned 3DS Requestor Name
            value, each DS may provide a unique ID. <br /> NOTE: This is a 2.0 value
            only and if passed will override the Requestor Name value that is, <br
            /> configured on the Merchant''s profile.'
        requestor_name:
          maxLength: 40
          type: string
          description: 'This value is a Directory Server assigned 3DS Requestor Name
            value, each DS may provide a unique ID. <br /> NOTE: This is a 2.0 value
            only and if passed will override the Requestor Name value that is configured
            <br /> on the Merchant''s profile.'
        shipping_address_usage_indicator:
          type: string
          description: 'Indicates when the shipping address used for transaction was
            first used. <br /> Possible Values: <br />  * 01 - This transaction <br
            />  * 02 - Less than 30 days <br />  * 03 - 30-60 days <br />  * 04 -
            More than 60 days <br />'
          enum:
          - "01"
          - "02"
          - "03"
          - "04"
        shipping_address_usage_date:
          type: string
          description: 'Date when the shipping address used for this transaction was
            first used. <br />  `Format: YYYYMMDD` <br />'
          format: date
        shipping_method_indicator:
          type: string
          description: 'Indicates shipping method chosen for the transaction. <br
            />  Possible Values:  <br />  * 01 - Ship to cardholder billing address
            <br />  * 02 - Ship to another verified address on file with merchant
            <br />  * 03 - Ship to address that is different than billing address
            <br />  * 04 - Ship to store (store address should be populated on request)
            <br />  * 05 - Digital goods <br />  * 06 - Travel and event tickets,
            not shipped <br />  * 07 - Other <br />'
          enum:
          - "01"
          - "02"
          - "03"
          - "04"
          - "05"
          - "06"
          - "07"
        shipping_name_indicator:
          type: string
          description: 'Indicates if the cardholder name on the account is identical
            to the <br /> shipping name used for the transaction. Possible Values:
            <br /> * 01 - Account and shipping name identical <br /> * 02 - Account
            and shipping name differ <br />'
          enum:
          - "01"
          - "02"
        total_items:
          pattern: ^[0-9]{2}$
          type: string
          description: Total items in the shopping cart of the shopper
        merchant_score:
          maxLength: 20
          type: string
          description: Merchant score
          x-format:
            alphanum: true
        transaction_count_day:
          maximum: 999
          type: integer
          description: Number of transactions (successful or abandoned) for this cardholder
            account within the last 24 hours. <br />
        transaction_count_year:
          maximum: 999
          type: integer
          description: Number of transactions (successful or abandoned) for this cardholder
            account within the last year. <br />
        transaction_mode:
          type: string
          description: 'Transaction mode identifier. Identifies the channel the transaction
            originates from. Available Options: <br /> M - Moto (Mail Order Telephone
            Order) <br /> P - Mobile Device <br /> R - Retail (Physical Store) <br
            /> S - Computer Device <br /> T - Tablet Device <br />'
          enum:
          - M
          - P
          - R
          - S
          - T
        version:
          type: string
          description: This field contains the 3DS version that can be leveraged to
            force a transaction down the 1.0 rails.
          enum:
          - 1.0.2
          - 2.1.0
          - 2.2.0
          deprecated: true
        white_list_status:
          type: string
          description: |
            Enables the communication of trusted beneficiary between the ACS, the DS and the 3DS Requestor. <br> Possible Values: <br> * `Y` - 3DS Requestor is trustlisted by cardholder  <br> * `N` - 3DS Requestor is not trustlisted by cardholder  <br> * `E` - Not eligible as determined by issuer <br> * `P` - Pending confirmation by cardholder <br> * `R` - Cardholder rejected <br> * `U` - Trustlist status unknown, unavailable, or does not apply <br> Note: This field may be returned for 2.1.0 if the MasterCard PSD2 extensions are passed and issuer supports them.
          enum:
            - "Y"
            - "N"
            - "E"
            - "P"
            - "R"
            - "U"
        white_list_status_source:
          type: string
          description: This data element will be populated by the system setting Whitelist Status.
          enum:
            - "01"
            - "02"
            - "03"
    card_brand:
      type: array
      items:
        type: string
    token_details:
      type: object
      properties:
        reuse_token:
          maxLength: 4096
          type: string
          description: The identifier used to represent the Cardholder data.
        analytics_token:
          maxLength: 4096
          type: string
          description: A token that cannot be reversed to Card Holder data. This is
            included in a Payment for auditing and tracking purposes.
    InstalmentConfiguration:
      required:
      - max_number_of_instalments
      type: object
      properties:
        max_number_of_instalments:
          minimum: 1
          type: integer
          description: The number of individual parts that the total amount should
            be paid in
        down_payment_amount:
          maximum: 9007199254740991
          minimum: 0
          type: integer
          description: An integer value for down payment amount
      description:  The details on the instalment scheme that should be enacted by the issuer. Only applicable for ABS Acquirer.
    CVV:
      type: object
      properties:
        validation_rule:
          type: string
          default: NONE
          enum:
          - NONE
          - LUHN
        usage:
          type: string
          default: REQUIRED
          enum:
          - REQUIRED
          - PROHIBITED
    FieldValidationRules:
      type: object
      properties:
        CVV:
          $ref: '#/components/schemas/CVV'
        CREDIT_TERM:
          $ref: '#/components/schemas/CVV'
        IDENTITY_CARD_NUMBER:
          $ref: '#/components/schemas/CVV'
    instalment_used:
      type: object
      properties:
        instalment_amount:
          maximum: 9007199254740991
          minimum: 0
          type: integer
          description: An integer value for instalment amount
        down_payment_amount:
          maximum: 9007199254740991
          minimum: 0
          type: integer
          description: An integer value for down payment amount
        number_of_instalments:
          type: integer
          description: The number of individual parts that the total amount should
            be paid in
      description: The details on the instalment scheme that should be enacted by the issuer. Only applicable for ABS Acquirer.
    payment_contract_id:
      oneOf:
        - type: string
          description: This parameter can be found in the portal on the Payment Provider Contract attached to your organization or given to you by a Verifone employee. It is used to retrieve MID and other merchant configurations necessary for a card payment.
        - type: object
          $ref: '#/x-alt-definitions/paymentContractIdDef'
    payment_frequency:
      type: object
      description: Payment frequencies. Used only for processing_model=RECURRING
      properties:
        time_unit:
          type: string
          description: must be one of  DAY WEEK MONTH YEAR
          enum:
          - DAY
          - WEEK
          - MONTH
          - YEAR
        value:
          type: number
    processing_model_details:
      required:
      - processing_model
      type: object
      properties:
        processing_model:
          type: string
          description: <br />  * RECURRING - allows only for RECURRING subsequent charges to be done.
            <br />  * NONE - does not specify what is the type of subsequent charges. Only allows CREDENTIAL_ON_FILE and UNSCHEDULED_CREDENTIAL_ON_FILE charges.
            <br />  * If it is RECURRING for SIGNUP should be RECURRING FOR CHARGE TOO.
            <br />  * If it is NONE for SIGNUP should be CREDENTIAL_ON_FILE or UNSCHEDULED_CREDENTIAL_ON_FILE FOR CHARGE.
          enum:
          - RECURRING
          - NONE
        total_payment_number:
          maximum: 9007199254740991
          minimum: 0
          type: integer
          description: Total number of payments for the stored credential series.
            Usage applies to specific acquirers. Used only for processing_model=RECURRING
        total_payment_amount:
          maximum: 9007199254740991
          minimum: 0
          type: integer
          description: Total amount for all the payments in the stored credential
            series. Usage applies to specific acquirers. Used only for processing_model=RECURRING
        first_payment_amount:
          maximum: 9007199254740991
          minimum: 0
          type: integer
          description: Amount of first payment for the stored credential series. Usage
            applies to specific acquirers. Used only for processing_model=RECURRING
        payment_frequency:
          $ref: '#/components/schemas/payment_frequency'
        merchant_signup_code:
          type: string
          description: Merchant signup code for the stored credential series. Usage
            applies to specific acquirers. Used only for processing_model=NONE
    stored_credential:
      required:
      - processing_model_details
      - stored_credential_type
      type: object
      description: Used for transactions with <a target="_blank" href="https://docs.verifone.com/online-payments/stored-credentials">Stored Credentials</a>
      properties:
        stored_credential_type:
          type: string
          description: must be one of  SIGNUP CHARGE
          enum:
          - SIGNUP
          - CHARGE
        first_payment:
          type: boolean
          description: |
            Set to true if this signup request also is the first payment.
            Most relevant for signup using a minor amount, to indicate if that minor amount is just a signup account verification amount or an actual first payment amount as well.
            Default on this endpoint is that zero amount is not a payment, but any amount provided is a payment.
            Use this indicator to explicitly tell the intention.
        consent_text:
          maxLength: 2048
          pattern: '[\p{L}\p{N}.,_\-+\s\\{\\}]'
          type: string
          description: Optional merchant provided text to display to the shopper as
            a checkbox, requiring their consent for the given sign up, detailing the
            terms at which the shopper agrees to be charged in the future. If not
            provided, there will be no consent checkbox.
        consent_text_dynamic_values:
          $ref: '#/components/schemas/consentTextDynamicValues'
        processing_model_details:
          $ref: '#/components/schemas/processing_model_details'
        reference:
          type: string
        scheme_reference:
          type: string
    additional_business_data:
      type: object
      properties:
        addendum1:
          maxLength: 300
          type: string
          description: Additional field 1 for processor data.
        addendum2:
          maxLength: 300
          type: string
          description: Additional field 2 for processor data.
      description: Merchant defined additional data fields for ABS Acquirer.
    CardPaymentConfigResponse:
      required:
      - payment_contract_id
      type: object
      properties:
        dynamic_descriptor:
          maxLength: 25
          type: string
          description: Value is displayed as short text on the bank statement of the cardholder
        account_validation:
          type: boolean
          description: 'Indicates whether the card transaction should be processed
            as Account Validation request instead. If set to true, the amount provided
            for the Checkout would be ignored and the transaction be processed with
            amount: 0'
          default: false
        capture_now:
          type: boolean
          description: >-
            True - transaction will be sent as authCapture and automatically captured. <br />
            False - transaction will be sent as auth and only authorized. NOT CAPTURED. <br />
            If you don't have any value in the capture_now parameter, at the moment of the call the value will be set as TRUE. 
          default: true
        cvv_required:
          type: boolean
          description: Indicates whether cvv is required
          default: false
        authorization_type:
          type: string
          description: Card Authorization Type.
          enum:
          - PRE_AUTH
          - FINAL_AUTH
        shopper_interaction:
          $ref: '#/components/schemas/shopper_interaction'
        payment_contract_id:
          $ref: '#/components/schemas/payment_contract_id'
        token_preference:
          $ref: '#/x-alt-definitions/card_token_preference'
        threed_secure:
          $ref: '#/components/schemas/threed_secure'
        mode:
          $ref: '#/components/schemas/card_mode'
        card_capture_mode:
          $ref: '#/components/schemas/card_capture_mode'
        card_token:
          maxLength: 2048
          type: string
          description: '*Only applicable for Tokenisation v1* Card token representing
            the card used by a customer to fill in the form. In case that Customer
            retries the payment with different card(s), only the last one '
        card_last_four:
          maxLength: 4
          minLength: 4
          type: string
          description: '*Only applicable for Tokenisation v1* Last four digits of
            the card number used by the customer. In case that Customer retries the
            payment with different card(s), its always the last one'
        card_expiry_year:
          pattern: \d{2}
          type: string
          description: '*Only applicable for Tokenisation v1* Card expiry year'
        card_expiry_month:
          pattern: ^(0[1-9]|1[012])$
          type: string
          description: '*Only applicable for Tokenisation v1* Card expiry month'
        card_brand:
          $ref: '#/components/schemas/card_brand'
        card_encryption_key_alias:
          maxLength: 2048
          type: string
          description: '*Only applicable for Tokenisation v2* Public Key alias used
            for card encryption'
        threeds_authentication_id:
          type: string
          description: 3DS Authentication ID. Only available if 3DS was configured
            and performed via the Checkout.
          x-format:
            guid: true
        token_details:
          $ref: '#/components/schemas/token_details'
        credit_term:
          type: string
          description: 'Determines whether the transaction type for ABS. Available
            Options: <br /> STANDARD- Sale <br /> PREFERRED - Sale - Preferred Isracard
            <br /> DEBIT - Sale - Direct Debit <br /> INSTALMENT_STANDARD- Instalment
            standard<br /> INSTALMENT_CREDIT- Instalment credit<br />'
          enum:
          - DEBIT
          - STANDARD
          - PREFERRED
          - INSTALMENT_CREDIT
          - INSTALMENT_STANDARD
        credit_term_used:
          type: string
          description: 'Determines whether the transaction type for ABS. Available
            Options: <br /> STANDARD- Sale <br /> PREFERRED - Sale - Preferred Isracard
            <br /> DEBIT - Sale - Direct Debit <br /> INSTALMENT_STANDARD- Instalment
            standard<br /> INSTALMENT_CREDIT- Instalment credit<br />'
          enum:
          - DEBIT
          - STANDARD
          - PREFERRED
          - INSTALMENT_CREDIT
          - INSTALMENT_STANDARD
        instalment:
          $ref: '#/components/schemas/InstalmentConfiguration'
        input_overrides:
          $ref: '#/components/schemas/FieldValidationRules'
        instalment_used:
          $ref: '#/components/schemas/instalment_used'
        stored_credential:
          $ref: '#/components/schemas/stored_credential'
        reuse_token:
          maxLength: 4096
          type: string
          description: The identifier used to represent the Cardholder data.
        encrypted_card:
          maxLength: 4096
          type: string
          description: Encrypted card details
        additional_business_data:
          $ref: '#/components/schemas/additional_business_data'
      description: Card payment configuration
    GPP2PaymentConfigResponse:
      required:
      - payment_contract_id
      type: object
      properties:
        payment_contract_id:
          type: string
          description: This parameter can be found in the portal on the Payment Provider Contract attached to your organization or given to you by a Verifone employee. It is used to retrieve MID and other merchant configurations necessary for a card payment.
          x-format:
            guid: true
        shopper_interaction:
          $ref: '#/components/schemas/shopper_interaction'
        card_encryption_key_alias:
          type: string
          description: Public Key alias used for card/code encryption
      description: GPP2 payment configuration
    application_context:
      type: object
      properties:
        landing_page:
          type: string
          description: The type of landing page to show on the PayPal site for customer
            checkout
          enum:
          - BILLING
          - LOGIN
          - NO_PREFERENCE
        brand_name:
          maxLength: 127
          type: string
          description: The label that overrides the business name in the PayPal account
            on the PayPal site.
        locale:
          maxLength: 10
          minLength: 2
          pattern: ^[a-z]{2}(?:-[A-Z][a-z]{3})?(?:-(?:[A-Z]{2}))?$
          type: string
          description: The BCP 47-formatted locale of pages that the PayPal payment
            experience shows.PayPal supports a five-character code. For example, da-DK,
            he-IL, id-ID, ja-JP, no-NO, pt-BR, ru-RU, sv-SE, th-TH, zh-CN, zh-HK,
            or zh-TW.
    PaypalPaymentConfig:
      required:
      - payment_contract_id
      type: object
      properties:
        dynamic_descriptor:
          maxLength: 2048
          type: string
          description: Value is displayed as short text on the bank statement of the cardholder
        capture_now:
          type: boolean
          description: >-
            True - transaction will be sent as authCapture and automatically captured. <br />
            False - transaction will be sent as auth and only authorized. NOT CAPTURED. <br />
            If you don't have any value in the capture_now parameter, at the moment of the call the value will be set as TRUE. 
          default: true
        payment_contract_id:
          type: string
          description: This parameter can be found in the portal on the Payment Provider Contract attached to your organization or given to you by a Verifone employee. It is used to retrieve MID and other merchant configurations necessary for a card payment.
          x-format:
            guid: true
        description:
          maxLength: 2048
          type: string
          description: paypal request description
        application_context:
          $ref: '#/components/schemas/application_context'
      description: Paypal payment configuration
      example:
        payment_contract_id: "e3d4f5a6-b7c8-9d0e-1f2a-3b4c5d6e7f8a"
        capture_now: true
        description: "Order #12345"
    ThreeDSData:
      description: Used for <a target="_blank" href="https://docs.verifone.com/online-payments/checkout/accepting-payments/3d-secure-payments">3D-Secure payments</a>
      required:
      - threeds_contract_id
      - transaction_mode
      type: object
      properties:
        account_age_indicator:
          type: string
          description: 'Length of time cardholder has had account. <br /> Possible
            Values: <br />  * 01 - No account <br />  * 02 - Created during transaction
            <br />  * 03 - Less than 30 days <br />  * 04 - 30-60 days <br />  * 05
            - More than 60 days <br />'
          enum:
          - "01"
          - "02"
          - "03"
          - "04"
          - "05"
        account_create_date:
          type: string
          description: 'Date the cardholder opened the account. `Format: YYYYMMDD`'
          format: date
        account_change_indicator:
          type: string
          description: 'Length of time since the last change to the cardholder account.
            This includes shipping address, <br /> new payment account or new user
            added. Possible Values: <br /> * 01 - Changed during transaction <br />
            * 02 - Less than 30 days <br /> * 03 - 30-60 days <br /> * 04 - More than
            60 days <br />'
          enum:
          - "01"
          - "02"
          - "03"
          - "04"
        account_change_date:
          type: string
          description: "Date the cardholder's account was last changed. This includes
            changes to the billing or shipping address, new payment accounts or new
            users added.` Format: YYYYMMDD` <br />"
          format: date
        account_pwd_change_indicator:
          type: string
          description: 'Length of time since the cardholder changed or reset the password
            on the account. <br />  Possible Values: <br />  * 01 - No change <br
            />  * 02 - Changed during transaction <br />  * 03 - Less than 30 days
            <br />  * 04 - 30-60 days <br />  * 05 - More than 60 days <br />'
          enum:
          - "01"
          - "02"
          - "03"
          - "04"
          - "05"
        account_pwd_change_date:
          type: string
          description: 'Date the cardholder last changed or reset password on account.
            `Format: YYYYMMDD`'
          format: date
        account_id:
          maxLength: 64
          type: string
          description: Additional cardholder account information.
        account_purchases:
          maximum: 9999
          type: integer
          description: Number of purchases with this cardholder account during the
            previous six months.
        acs_window_size:
          type: string
          description: 'An override field that a merchant can pass in to set the challenge
            window size to display to the end <br /> cardholder.The ACS will reply
            with content that is formatted appropriately to this window size to allow
            <br /> for the best user experience. The sizes are width x height in pixels
            of the window displayed in <br /> the cardholder browser window. Possible
            values: <br />  * 01 - 250x400 <br />  * 02 - 390x400 <br />  * 03 - 500x600
            <br />  * 04 - 600x400 <br />  * 05 - Full page <br />'
          enum:
          - "01"
          - "02"
          - "03"
          - "04"
          - "05"
        add_card_attempts:
          maximum: 999
          type: integer
          description: Number of add card attempts in the last 24 hours.
        address_match:
          type: string
          description: 'Indicates whether cardholder billing and shipping addresses
            match. <br /> Possible Values: <br />  * Y - Shipping address matches
            billing address <br />  * N - Shipping address does not match billing
            address <br />'
          enum:
          - Y
          - N
        alternate_authentication_method:
          type: string
          description: 'Mechanism used by the cardholder to authenticate to the 3DS
            requester. <br />  Possible Values: <br />  * 01 - No authentication occurred
            (e.g. Guest Checkout) <br />  * 02 - Login to the cardholder account at
            the Merchant system using Merchant system credentials <br />  * 03 - Login
            to the cardholder account at the Merchant system using a Federated ID
            <br />  * 04 - Login to the cardholder account at the Merchant system
            using Issuer credentials <br />  * 05 - Login to the cardholder account
            at the Merchant system using third-party authentication <br />  * 06 -
            Login to the cardholder account at the Merchant system using FIDO Authenticator
            <br />'
          enum:
          - "01"
          - "02"
          - "03"
          - "04"
          - "05"
          - "06"
        alternate_authentication_date:
          type: string
          description: 'Date and time in UTC of the cardholder authentication. ` Format:
            YYYYMMDDHHMM`'
          format: date
        alternate_authentication_data:
          maxLength: 2048
          type: string
          description: Data that documents and supports a specific authentication
            <br /> process that was sent in the AlternateAuthenticationMethod field.
            <br />
        threeds_contract_id:
          maxLength: 36
          type: string
          description: The ID of the threeDSContract used.
          x-format:
            guid: true
        authentication_indicator:
          type: string
          description: Indicates the type of Authentication request. 01 - Payment
            transaction <br />  02 - Recurring transaction  <br />  03 - Installment
            transaction  <br />  04 - Add card  <br />  05 - Maintain card  <br />  06
            - Cardholder verification as part of EMV token ID&V <br />
          enum:
          - "01"
          - "02"
          - "03"
          - "04"
          - "05"
          - "06"
        category_code:
          maximum: 9999
          type: integer
          description: 'Merchant category code (MCC) NOTE: This field is required
            by Mastercard and VISA Brazil extensions. <br />'
        challenge_indicator:
          type: string
          description: 'NOTE: This is a 2.0 required field, Cardinal will default
            to 01 on Merchant Configuration <br /> - can be overridden by the merchant.
            Possible Values: <br /> * 01 - No preference <br /> * 02 - No challenge
            requested <br /> * 03 - Challenge requested (3DS Requestor Preference)
            <br /> * 04 - Challenge requested (Mandate) <br /> * 90 - CB specific
            value <br />'
          default: "01"
          enum:
          - "01"
          - "02"
          - "03"
          - "04"
          - "90"
        delivery_email:
          maxLength: 255
          type: string
          description: For electronic delivery, email address to which the merchandise
            was delivered.
          x-format:
            email:
              minDomainSegments: 2
        delivery_time_frame:
          type: string
          description: 'Indicates the delivery timeframe.  <br /> Possible Values:
            <br />  * 01 - Electronic delivery <br />  * 02 - Same day shipping <br
            />  * 03 - Overnight shipping <br />  * 04 - Two or more day shipping
            <br />'
          enum:
          - "01"
          - "02"
          - "03"
          - "04"
        enabled:
          type: boolean
          description: Whether 3DS should be used.
          default: true
        fraud_activity:
          type: string
          description: 'Indicates whether the merchant experienced suspicious activity
            (including previous fraud) on the account. <br /> Possible Values: <br
            />  * 01 - No suspicious activity <br />  * 02 - Suspicious activity observed
            <br />'
          enum:
          - "01"
          - "02"
        gift_card_amount:
          maximum: 999999999999999
          type: integer
          description: 'The purchase amount total for prepaid gift cards in major
            units. <br /> Example: $123.45 USD = 12345 <br />'
        gift_card_currency_code:
          maxLength: 3
          minLength: 3
          type: string
          description: ISO 4217 currency code for the gift card purchased.
        gift_card_count:
          maximum: 99
          type: integer
          description: Total count of individual prepaid gift cards purchased.
        installment:
          maximum: 999
          minimum: 2
          type: number
          description: Indicates the maximum number of authorizations for installment
            payments. An integer value greater than 1 indicating the maximum number
            of permitted authorizations for installment payments. ** Required for
            Recurring and Installment transactions, when authenticationIndicator="02"
            & "03" **
        message_category:
          type: string
          description: 'Category of the message for a specific use case. <br />  Possible
            Values: <br />  * 01 - PA (payment) <br />  * 02 - NPA (non payment) <br
            />  NOTE: Default is payment (01). Configured on Merchant account, or
            can be overridden on transaction. <br />'
          enum:
          - "01"
          - "02"
        payment_use_case:
          type: string
          description: 'Indicates the type of payment.The value from this field will
            be mapped to the data field on the CB-USECASE extension <br />  Possible
            Values: <br />  * 01 - Single Payment <br />  * 02 - Fixed Amount and
            Term Subscription <br />  * 03 - Payment By Instalments <br />  * 04 -
            Payment By Shipment <br />  * 05 - Other Recurring Payments <br />  NOTE:
            Required for CB transactions (Required if message_category = 01, or message_category
            = 02 and authentication_indicator = 02 or 03 <br />'
          default: "01"
          enum:
          - "01"
          - "02"
          - "03"
          - "04"
          - "05"
        payment_account_indicator:
          type: string
          description: 'Indicates the length of time that the payment account was
            enrolled in the merchant account. <br /> Possible Values: <br />  * 01
            - No account (guest checkout) <br />  * 02 - During the transaction <br
            />  * 03 - Less than 30 days <br />  * 04 - 30-60 days <br />  * 05 -
            More than 60 days <br />'
          enum:
          - "01"
          - "02"
          - "03"
          - "04"
          - "05"
        payment_account_age:
          type: string
          description: 'Date the payment account was added to the cardholder account.
            ` Format: YYYYMMDD`'
          format: date
        pre_order_indicator:
          type: string
          description: 'Indicates whether cardholder is placing an order with a future
            availability or release date. <br />  Possible Values: <br />  * 01 -
            Merchandise available <br />  * 02 - Future availability <br />'
          enum:
          - "01"
          - "02"
        pre_order_date:
          type: string
          description: 'Expected date that a pre-ordered purchase will be available.
            `Format: YYYYMMDD`'
          format: date
        prior_authentication_data:
          maxLength: 2048
          type: string
          description: This field carry data that the ACS can use to verify the authentication
            process
        prior_authentication_method:
          type: string
          description: Mechanism used by the Cardholder to previously authenticate
            to the 3DS Requestor. <br />  * 01 - Frictionless authentication occurred
            by ACS <br />  * 02 - Cardholder challenge occurred by ACS <br />  * 03
            - AVS verified <br />  * 04 - Other issuer methods <br />
          enum:
          - "01"
          - "02"
          - "03"
          - "04"
        prior_authentication_time:
          type: string
          description: 'Date and time in UTC of the prior cardholder authentication.
            ` Format: YYYYMMDDHHMM`'
          format: date
        prior_authentication_ref:
          maxLength: 36
          type: string
          description: This data element contains a ACS Transaction ID for a prior
            authenticated transaction. <br /> For example, the first recurring transaction
            that was authenticated with the cardholder <br />
        product_code:
          type: string
          description: 'Merchant product code.  <br /> Possible Values:  <br />  *
            PHY - Goods/Service Purchase  <br />  * CHA - Check Acceptance  <br />  *
            ACF - Account Funding  <br />  * QCT - Quasi-Cash Transaction  <br />  *
            PAL - Prepaid Activation and Load  <br /> NOTE: This value defaults to
            PHY. This field can be used to override that value if applicable.  <br
            />'
          enum:
          - PHY
          - CHA
          - ACF
          - QCT
          - PAL
        recurring_end:
          type: string
          description: 'The date after which no further recurring authorizations should
            be performed. `Format: YYYYMMDD` ** Required for Recurring and Installment
            transactions, when authenticationIndicator="02" & "03" **'
          format: date
        recurring_frequency:
          maximum: 9999
          type: number
          description: 'Conditional: Integer value indicating the minimum number of
            days between recurring authorizations. A frequency of monthly is indicated
            by the value 28. Multiple of 28 days will be used to indicate months.
            Example: 6 months = 168 ** Required for Recurring and Installment transactions,
            when authenticationIndicator="02" & "03" **'
        reorder_indicator:
          type: string
          description: 'Indicates whether cardholder is placing an order with a future
            availability or release date. <br />  Possible Values: <br />  * 01 -
            Merchandise available <br />  * 02 - Future availability <br />'
          enum:
          - "01"
          - "02"
        requestor_id:
          maxLength: 35
          type: string
          description: 'This value is a Directory Server assigned 3DS Requestor Name
            value, each DS may provide a unique ID. <br /> NOTE: This is a 2.0 value
            only and if passed will override the Requestor Name value that is, <br
            /> configured on the Merchant''s profile.'
        requestor_name:
          maxLength: 40
          type: string
          description: 'This value is a Directory Server assigned 3DS Requestor Name
            value, each DS may provide a unique ID. <br /> NOTE: This is a 2.0 value
            only and if passed will override the Requestor Name value that is configured
            <br /> on the Merchant''s profile.'
        shipping_address_usage_indicator:
          type: string
          description: 'Indicates when the shipping address used for transaction was
            first used. <br /> Possible Values: <br />  * 01 - This transaction <br
            />  * 02 - Less than 30 days <br />  * 03 - 30-60 days <br />  * 04 -
            More than 60 days <br />'
          enum:
          - "01"
          - "02"
          - "03"
          - "04"
        shipping_address_usage_date:
          type: string
          description: 'Date when the shipping address used for this transaction was
            first used. <br />  `Format: YYYYMMDD` <br />'
          format: date
        shipping_method_indicator:
          type: string
          description: 'Indicates shipping method chosen for the transaction. <br
            />  Possible Values:  <br />  * 01 - Ship to cardholder billing address
            <br />  * 02 - Ship to another verified address on file with merchant
            <br />  * 03 - Ship to address that is different than billing address
            <br />  * 04 - Ship to store (store address should be populated on request)
            <br />  * 05 - Digital goods <br />  * 06 - Travel and event tickets,
            not shipped <br />  * 07 - Other <br />'
          enum:
          - "01"
          - "02"
          - "03"
          - "04"
          - "05"
          - "06"
          - "07"
        shipping_name_indicator:
          type: string
          description: 'Indicates if the cardholder name on the account is identical
            to the <br /> shipping name used for the transaction. Possible Values:
            <br /> * 01 - Account and shipping name identical <br /> * 02 - Account
            and shipping name differ <br />'
          enum:
          - "01"
          - "02"
        total_items:
          pattern: ^[0-9]{2}$
          type: string
          description: Total items in the shopping cart of the shopper
        merchant_score:
          maxLength: 20
          type: string
          description: Merchant score
          x-format:
            alphanum: true
        transaction_count_day:
          maximum: 999
          type: integer
          description: Number of transactions (successful or abandoned) for this cardholder
            account within the last 24 hours. <br />
        transaction_count_year:
          maximum: 999
          type: integer
          description: Number of transactions (successful or abandoned) for this cardholder
            account within the last year. <br />
        transaction_mode:
          type: string
          description: 'Transaction mode identifier. Identifies the channel the transaction
            originates from. Available Options: <br /> M - Moto (Mail Order Telephone
            Order) <br /> P - Mobile Device <br /> R - Retail (Physical Store) <br
            /> S - Computer Device <br /> T - Tablet Device <br />'
          enum:
          - M
          - P
          - R
          - S
          - T
        version:
          type: string
          description: This field contains the 3DS version that can be leveraged to
            force a transaction down the 1.0 rails.
          enum:
          - 1.0.2
          - 2.1.0
          - 2.2.0
          deprecated: true
    GooglePayCardConfig:
      required:
      - payment_contract_id
      - sca_compliance_level
      type: object
      properties:
        sca_compliance_level:
          type: string
          description: |-
            Strong Customer Authentication (SCA) compliance level, possible values </br>
                 * NONE: No SCA required. </br>
                 * WALLET: Depend on the wallet SCA mechanism. For Google Pay this means that MasterCard will shift liability, Visa will not. </br>
                 * FORCE_3DS: Do an additional 3DS step regardless of whether the wallet indicates the token is SCA-compliant.
          enum:
          - NONE
          - WALLET
          - FORCE_3DS
        threed_secure:
          $ref: '#/components/schemas/ThreeDSData'
        authorization_type:
          type: string
          description: Card Authorization Type (PRE_AUTH, FINAL_AUTH).  When capture
            now is set to true pre-authorization transactions cannot be done.
          default: FINAL_AUTH
        shopper_interaction:
          $ref: '#/components/schemas/shopper_interaction'
        payment_contract_id:
          type: string
          description: This parameter can be found in the portal on the Payment Provider Contract attached to your organization or given to you by a Verifone employee. It is used to retrieve MID and other merchant configurations necessary for a card payment.
          x-alternatives:
          - type: string
            description: Payment Contract Id
            x-format:
              guid: true
          - $ref: '#/x-alt-definitions/paymentContractIdDef'
          x-format:
            guid: true
        token_preference:
          $ref: '#/x-alt-definitions/token_preference'
        card_encryption_key_alias:
          maxLength: 2048
          type: string
          description: '*Only applicable for Tokenisation v2* Public Key alias used
            for card encryption'
        threeds_authentication_id:
          type: string
          description: 3DS Authentication ID. Only available if 3DS was configured
            and performed via the Checkout.
          x-format:
            guid: true
        token_details:
          $ref: '#/components/schemas/token_details'
    gift_card:
      type: object
      description: Gift Card payment configuration
      properties:
        capture_now:
          type: boolean
          description: >-
            True - transaction will be sent as authCapture and automatically captured. <br />
            False - transaction will be sent as auth and only authorized. NOT CAPTURED. <br />
            If you don't have any value in the capture_now parameter, at the moment of the call the value will be set as TRUE.
          default: true
        card:
          $ref: '#/components/schemas/GiftCardCardConfig'
      example:
        capture_now: true
        card:
          payment_contract_id: "e3d4f5a6-b7c8-9d0e-1f2a-3b4c5d6e7f8a"
    shopper_interaction:
      type: string
      description: 'Used to indicate the channel used by to send they checkout link
        <br /> * ECOMMERCE <br />
        * MAIL - value is used only in Virtual terminal transactions and cannot
        be used in createCheckout API call <br />
        * TELEPHONE - value is used only in Virtual terminal transactions and
        cannot be used in createCheckout API call <br />'
      default: ECOMMERCE
      enum:
        - ECOMMERCE
        - MAIL
        - TELEPHONE
    GiftCardCardConfig:
      type: object
      description: Card object configuration
      required:
        - payment_contract_id
      properties:
        payment_contract_id:
          maxLength: 25
          type: string
          description: This parameter can be found in the portal on the Payment Provider Contract attached to your organization or given to you by a Verifone employee. It is used to retrieve MID and other merchant configurations necessary for a card payment.
          x-format:
            guid: true
        shopper_interaction:
          $ref: '#/components/schemas/shopper_interaction'
        authorization_type:
          type: string
          description: Card Authorization Type.
          default: FINAL_AUTH
        pin_required:
          type: boolean
          default: false
          description: Indicates whether security code for gift card is required or no.
        token_preference:
          description: Read <a target="_blank" href="https://docs.verifone.com/online-payments/tokenization">Tokenization</a> for additional information
          required:
            - token_scope
          type: object
          properties:
            token_scope:
              type: string
              description: The token scope under which a token gets created
              x-format:
                guid: true
            token_expiry_date:
              type: string
              description: Token expiry date
              format: date
            token_type:
              type: string
              description: Token type
              default: REUSE
    google_pay:
      type: object
      description: Google Pay payment configuration
      properties:
        dynamic_descriptor:
          maxLength: 25
          type: string
          description: Value is displayed as short text on the bank statement of the cardholder
        capture_now:
          type: boolean
          description: >-
            True - transaction will be sent as authCapture and automatically captured. <br />
            False - transaction will be sent as auth and only authorized. NOT CAPTURED. <br />
            If you don't have any value in the capture_now parameter, at the moment of the call the value will be set as TRUE. 
          default: true
        card:
          $ref: '#/components/schemas/GooglePayCardConfig'
    swish_req:
      type: object
      properties:
        app_phone_number:
          maxLength: 18
          pattern: '^[0-9-\s\-+().-]+$'
          type: string
          description: Indicates the phone number registered with Swish Mobile APP.
        shopper_interaction:
          type: string
          description: 'Used to indicate the channel used by to send they checkout link
            <br /> * ECOMMERCE <br /> * MCOMMERCE '
          default: ECOMMERCE
          enum:
            - ECOMMERCE
            - MCOMMERCE
      description: Swish payment configuration
      example:
        shopper_interaction: "MCOMMERCE"
        app_phone_number: "+46701234567"
    card_capture_mode:
      type: string
      description: |-
        Method of capturing card data.
        v2 is used by default as the recommended method.
        v1 is considered deprecated and is not supported for new integrations.
      enum:
        - v2
        - v1
    card_mode:
      type: string
      description: |-
        - `PAYMENT` - A checkout is created with the intent to perform a card payment. Verifone takes care of the full payment process and returns the final transaction response to the merchant, alongside any related details to it. Requires providing payment provider contract details. <br>
        - `3DS_PAYMENT` - Same as `PAYMENT` but with performing 3DS verification. <br>
        - `CARD_CAPTURE` - A checkout is created with intent to retrieve customer's card data. The checkout captures the card data of the shopper, encrypts it and returns it to the Merchant. The Merchant then uses the encrypted card data to perform 3DS and/or payments with it.<br /> The following fields are not required: <br />  * amount <br />  * currency_code <br />  * receipt_type <br /> Note: This option only returns an encrypted card in the end of the checkout process, no transaction is performed. You must perform the read checkout to get the encrypted card.
        - `3DS` - A checkout is created with intent to perform 3DS verification for the cardholder. The checkout captures the card data and performs 3DS verification with it and returns both card data and 3DS results to the Merchant. The merchant then can then use the encrypted card data to perform a payment with it. Requires providing 3DS contract details.
      enum:
        - PAYMENT
        - 3DS_PAYMENT
        - CARD_CAPTURE
        - 3DS
    card_req:
      required:
        - sca_compliance_level
        - threed_secure
      type: object
      properties:
        sca_compliance_level:
          type: string
          description: >-
            Strong Customer Authentication (SCA) compliance level, possible
            values </br>
                 * NONE: No SCA required. </br>
                 * WALLET: Depend on the wallet SCA mechanism. For Google Pay this means that MasterCard will shift liability, Visa will not. </br>
                 * FORCE_3DS: Do an additional 3DS step regardless of whether the wallet indicates the token is SCA-compliant.
          enum:
            - NONE
            - WALLET
            - FORCE_3DS
        threed_secure:
          $ref: '#/components/schemas/threed_secure'
        authorization_type:
          type: string
          description: >-
            Card Authorization Type (PRE_AUTH, FINAL_AUTH).  When capture now is
            set to true pre-authorization transactions cannot be done.
          default: FINAL_AUTH
        encrypted_card:
          maxLength: 4096
          type: string
          description: Encrypted card details
        card_encryption_key_alias:
          type: string
          description: Public key alias
        return_url:
          type: string
          description: URL belonging to the Merchant website, where the Customer would be redirected after the Checkout has been completed. If this parameter is used, the customer will be redirected after spending 10 seconds on the payment confirmation page provided by Verifone in case of HPP and PAYMENT LINK transactions. For IFRAME transaction the redirect is performed right after the checkout page without passing through the payment confirmation page.   <br /> <b>Note 1:</b> The return_url accepts only securely connected URLs i.e., via https protocol. <br /> <b>Note 2:</b> The time after which redirection happens can be customized using redirect_method.
          x-format:
            uri: true
    mobile_pay_req:
      required:
        - payment_contract_id
      type: object
      properties:
        payment_contract_id:
          type: string
          description: This parameter can be found in the portal on the Payment Provider Contract attached to your organization or given to you by a Verifone employee. It is used to retrieve MID and other merchant configurations necessary for a card payment.
          x-format:
            guid: true
        dynamic_descriptor:
          maxLength: 25
          type: string
          description: Value is displayed as short text on the bank statement of the cardholder
        capture_now:
          type: boolean
          description: >-
            True - transaction will be sent as authCapture and automatically captured. <br />
            False - transaction will be sent as auth and only authorized. NOT CAPTURED. <br />
            If you don't have any value in the capture_now parameter, at the moment of the call the value will be set as TRUE. 
          default: true
        card:
          $ref: '#/components/schemas/card_req'
      description: MobilePay payment configuration
      example:
        payment_contract_id: "e3d4f5a6-b7c8-9d0e-1f2a-3b4c5d6e7f8a"
        capture_now: true
    bank:
      required:
        - op
      type: object
      properties:
        dynamic_descriptor:
          maxLength: 25
          type: string
          description: Value is displayed as short text on the bank statement of the cardholder
        authorization_type:
          type: string
          description: Card Authorization Type (PRE_AUTH, FINAL_AUTH).  When capture
            now is set to true pre-authorization transactions cannot be done.
          default: FINAL_AUTH
        shopper_interaction:
          type: string
          description: 'Used to indicate the channel used by to send they checkout link
           <br /> * ECOMMERCE
           <br /> * MAIL'
          enum:
            - ECOMMERCE
            - MAIL
        message_to_customer:
          type: string
          description: Message to customer
          maxLength: 500
        op:
          $ref: '#/components/schemas/op'
      description: Bank payment configuration
      example:
        op:
          payment_contract_id: "e3d4f5a6-b7c8-9d0e-1f2a-3b4c5d6e7f8a"
        shopper_interaction: "ECOMMERCE"
    op:
      type: object
      required:
        - payment_contract_id
      properties:
        payment_contract_id:
          type: string
          description: This parameter can be found in the portal on the Payment Provider Contract attached to your organization or given to you by a Verifone employee. It is used to retrieve MID and other merchant configurations necessary for a card payment.
          x-format:
            guid: true
        multi_bank_payment_option:
          type: boolean
          description: Indicator for using multi bank payment  
    VippsCardConfig:
      required:
      - sca_compliance_level
      - threed_secure
      type: object
      properties:
        sca_compliance_level:
          type: string
          description: |-
            Strong Customer Authentication (SCA) compliance level, possible values </br>
                 * NONE: No SCA required. </br>
                 * WALLET: Depend on the wallet SCA mechanism. For Google Pay this means that MasterCard will shift liability, Visa will not. </br>
                 * FORCE_3DS: Do an additional 3DS step regardless of whether the wallet indicates the token is SCA-compliant.
          enum:
          - NONE
          - WALLET
          - FORCE_3DS
        threed_secure:
          $ref: '#/components/schemas/ThreeDSData'
        authorization_type:
          type: string
          description: Card Authorization Type (PRE_AUTH, FINAL_AUTH).  When capture
            now is set to true pre-authorization transactions cannot be done.
          default: FINAL_AUTH
        encrypted_card:
          maxLength: 4096
          type: string
          description: Encrypted card details
        card_encryption_key_alias:
          type: string
          description: Public key alias
        return_url:
          type: string
          description: URL belonging to the Merchant website, where the Customer would be redirected after the Checkout has been completed. If this parameter is used, the customer will be redirected after spending 10 seconds on the payment confirmation page provided by Verifone in case of HPP and PAYMENT LINK transactions. For IFRAME transaction the redirect is performed right after the checkout page without passing through the payment confirmation page.   <br /> <b>Note 1:</b> The return_url accepts only securely connected URLs i.e., via https protocol. <br /> <b>Note 2:</b> The time after which redirection happens can be customized using redirect_method.
          x-format:
            uri: true
    VippsPaymentConfig:
      required:
      - payment_contract_id
      type: object
      properties:
        payment_contract_id:
          type: string
          description: This parameter can be found in the portal on the Payment Provider Contract attached to your organization or given to you by a Verifone employee. It is used to retrieve MID and other merchant configurations necessary for a card payment.
          x-format:
            guid: true
        dynamic_descriptor:
          maxLength: 25
          type: string
          description: Value is displayed as short text on the bank statement of the cardholder
        capture_now:
          type: boolean
          description: >-
            True - transaction will be sent as authCapture and automatically captured. <br />
            False - transaction will be sent as auth and only authorized. NOT CAPTURED. <br />
            If you don't have any value in the capture_now parameter, at the moment of the call the value will be set as TRUE. 
          default: true
        is_app:
          type: boolean
          description: Flag to identify the transaction originated from APP or Browser
          default: false
        app_phone_number:
          maxLength: 18
          pattern: ^[0-9-\s\-+().-]+$
          type: string
          description: Indicates the phone number registered with Vipps Mobile APP.
        card:
          $ref: '#/components/schemas/VippsCardConfig'
      description: Vipps payment configuration
    KlarnaPaymentConfig:
      type: object
      properties:
        capture_now:
          type: boolean
          description: >-
            True - transaction will be sent as authCapture and automatically captured. <br />
            False - transaction will be sent as auth and only authorized. NOT CAPTURED. <br />
            If you don't have any value in the capture_now parameter, at the moment of the call the value will be set as TRUE. 
          default: true
      description: Klarna payment configuration
      example:
        capture_now: true
    swish_res:
      type: object
      properties:
        app_phone_number:
          maxLength: 18
          pattern: '^[0-9-\s\-+().-]+$'
          type: string
          description: Indicates the phone number registered with Swish Mobile APP.
        shopper_interaction:
          $ref: '#/components/schemas/shopper_interaction'
      description: Swish payment configuration
    mobile_pay_res:
      required:
        - payment_contract_id
      type: object
      properties:
        dynamic_descriptor:
          maxLength: 25
          type: string
          description: Value is displayed as short text on the bank statement of the cardholder
        capture_now:
          type: boolean
          description: >-
            True - transaction will be sent as authCapture and automatically captured. <br />
            False - transaction will be sent as auth and only authorized. NOT CAPTURED. <br />
            If you don't have any value in the capture_now parameter, at the moment of the call the value will be set as TRUE. 
          default: true
        payment_contract_id:
          type: string
          description: This parameter can be found in the portal on the Payment Provider Contract attached to your organization or given to you by a Verifone employee. It is used to retrieve MID and other merchant configurations necessary for a card payment.
          x-alternatives:
            - type: string
              description: Payment Contract Id
              x-format:
                guid: true
            - $ref: '#/x-alt-definitions/paymentContractIdDef'
          x-format:
            guid: true
        card:
          $ref: '#/components/schemas/card_res'
    card_res:
      required:
        - sca_compliance_level
      type: object
      properties:
        sca_compliance_level:
          type: string
          description: >-
            Strong Customer Authentication (SCA) compliance level, possible
            values </br>
                 * NONE: No SCA required. </br>
                 * WALLET: Depend on the wallet SCA mechanism. For Google Pay this means that MasterCard will shift liability, Visa will not. </br>
                 * FORCE_3DS: Do an additional 3DS step regardless of whether the wallet indicates the token is SCA-compliant.
          enum:
            - NONE
            - WALLET
            - FORCE_3DS
        threed_secure:
          $ref: '#/components/schemas/threed_secure'
        authorization_type:
          type: string
          enum:
            - PRE_AUTH
            - FINAL_AUTH
        shopper_interaction:
          $ref: '#/components/schemas/shopper_interaction'
        payment_contract_id:
          type: string
          description: This parameter can be found in the portal on the Payment Provider Contract attached to your organization or given to you by a Verifone employee. It is used to retrieve MID and other merchant configurations necessary for a card payment.
          x-alternatives:
            - type: string
              description: Payment Contract Id
              x-format:
                guid: true
            - $ref: '#/x-alt-definitions/paymentContractIdDef'
          x-format:
            guid: true
        token_preference:
          $ref: '#/x-alt-definitions/token_preference'
        card_encryption_key_alias:
          maxLength: 2048
          type: string
          description: >-
            *Only applicable for Tokenisation v2* Public Key alias used for card
            encryption
        threeds_authentication_id:
          type: string
          description: >-
            3DS Authentication ID. Only available if 3DS was configured and
            performed via the Checkout.
          x-format:
            guid: true
        token_details:
          $ref: '#/components/schemas/token_details'
        encrypted_card:
          maxLength: 4096
          type: string
          description: Encrypted card details
        return_url:
          type: string
          description: >-
            URL belonging to the Merchant website, where the Customer would be
            redirected after the Checkout has been completed.   <br /> <b>Note:</b> The time after which redirection happens can be customized using redirect_method.
          x-format:
            uri: true
    PaymentConfigurationsResponse:
      type: object
      properties:
        card:
          $ref: '#/components/schemas/CardPaymentConfigResponse'
        gpp2:
          $ref: '#/components/schemas/GPP2PaymentConfigResponse'
        gift_card:
          $ref: '#/components/schemas/gift_card'
        paypal:
          $ref: '#/components/schemas/PaypalPaymentConfig'
        google_pay:
          $ref: '#/components/schemas/google_pay'
        apple_pay:
          $ref: '#/components/schemas/apple_pay'
        vipps:
          $ref: '#/components/schemas/VippsPaymentConfig'
        klarna:
          $ref: '#/components/schemas/KlarnaPaymentConfig'
        swish:
          $ref: '#/components/schemas/swish_res'
        mobile_pay:
          $ref: '#/components/schemas/mobile_pay_res'
        bank:
          $ref: '#/components/schemas/bank'  
        plcc:
          $ref: '#/components/schemas/plcc_response'
    I18nResponse:
      type: object
      properties:
        default_language:
          type: string
          description: Default language is used for displaying the page. Any customer
            language choice would override this option
        fallback_language:
          type: string
          description: Fallback language is used when DEFAULT_LANGUAGE is invalid.
            Any customer language choice would override this option
        show_language_options:
          type: boolean
          description: Indicates whether a language selection option should be shown
            to the customer on the Checkout page or not
          default: true
    EmailNotification:
      type: object
      properties:
        email_address:
          maxLength: 255
          type: string
          description: Email address to which notification will be sent. This field
            can only be used for Pay By Link feature.
          x-format:
            email:
              minDomainSegments: 2
    SMSNotification:
      type: object
      properties:
        phone_number:
          maxLength: 15
          pattern: '^[0-9-\s\-+().-]+$'
          type: string
          description: >-
            Phone number to which notification will be sent. This field can only
            be used for Pay By Link feature.
    customer_details:
      required:
      - entity_id
      type: object
      properties:
        billing:
          $ref: '#/components/schemas/billing'
        company_name:
          maxLength: 100
          type: string
          description: Company of the customer. . **Required** in case that billing.firstName & billing.lastName are not provided.
        company_registration_number:
          maxLength: 24
          type: string
          description: |-
            Unique identifier of the company, recognised by the government.
                                    Known as CoC (Chamber of Commerce) number in some countries
        email_address:
          maxLength: 255
          type: string
          description: |-
            Consumer's email address.<br>
            **Field required for**:  Klarna, Paypal
          x-format:
            email:
              minDomainSegments: 2
        entity_id:
          type: string
          description: Entity Id can be located on the organization level as Organization ID (Administration > Organizations > [Organization] > Organisation ID value)
        phone_number:
          maxLength: 25
          pattern: ^(\s*[0-9-+().])[0-9-\s+().]*$
          type: string
          description: Cardholder's  phone number
        shipping:
          $ref: '#/components/schemas/shipping'
        title:
          pattern: ^[a-zA-Z-\s.]+$
          maxLength: 120
          type: string
          description: Title
        work_phone:
          maxLength: 25
          pattern: ^(\s*[0-9-+().])[0-9-\s+().]*$
          type: string
          description: Consumer's work phone number.
        tax:
          $ref: '#/components/schemas/tax'  
    billing:
      type: object
      properties:
        address_1:
          maxLength: 40
          type: string
          description: Customer's primary billing address information.
        address_2:
          maxLength: 40
          type: string
          description: Customer's secondary billing address information.
        address_3:
          maxLength: 40
          type: string
          description: Customer's third billing address information.
        city:
          maxLength: 28
          type: string
          description: Customer's city on their billing address.
        country_code:
          type: string
          description: Customer's alpha 2 digit ISO 3166 country code. (e.g. United
            States = US)
        first_name:
          maxLength: 22
          type: string
          description: Customer's first name. <br /> **Required** in case that companyName
            is not provided.
        middle_name:
          maxLength: 22
          type: string
          description: Customer's middle name.
        last_name:
          maxLength: 22
          type: string
          description: Customer's last name. <br /> **Required** in case that companyName
            is not provided.
        phone:
          maxLength: 25
          pattern: ^(\s*[0-9-+().])[0-9-\s+().]*$
          type: string
          description: Customer's phone number for billing address.
        postal_code:
          maxLength: 10
          type: string
          description: Customer's postal code of their billing address. <br /> **Required** if
            the payment method is PayPal.
        state:
          maxLength: 35
          type: string
          description: Customer's state or province of their billing address. (e,g.
            Ohio = OH, Texas = TX)
    shipping:
      type: object
      properties:
        address_1:
          maxLength: 40
          type: string
          description: |-
            Consumer's primary shipping address information.</br>
            **Field required for**:  Klarna, Paypal, Vipps, MobilePay, Google Pay, Apple Pay, Affirm, Swish
        address_2:
          maxLength: 40
          type: string
          description: |-
            Consumer's secondary shipping address information.</br>
            **Field required for**: Paypal
        address_3:
          maxLength: 40
          type: string
          description: 
            Consumer's third shipping address information.
        city:
          maxLength: 28
          type: string
          description: |- 
            Consumer's city on their shipping address.</br>
            **Field required for**:  Klarna, Paypal, Vipps, MobilePay, Google Pay, Apple Pay, Affirm, Swish
        first_name:
          maxLength: 22
          type: string
          description: |- 
            Consumer's first name.</br>
            **Field required for**:  Klarna, Vipps, MobilePay
        middle_name:
          maxLength: 22
          type: string
          description: Consumer's middle name.
        last_name:
          maxLength: 22
          type: string
          description: |- 
            Consumer's last name.</br>
            **Field required for**:  Klarna, Vipps, MobilePay
        phone:
          maxLength: 25
          pattern: ^(\s*[0-9-+().])[0-9-\s+().]*$
          type: string
          description: |-
            **Field required for**:  Klarna, Paypal, Vipps, MobilePay
          x-alternatives:
          - type: string
            maxLength: 25
            pattern: ^[0-9-\s\-+().-]+$
          - type: integer
        country_code:
          type: string
          description: |-
            Consumer's alpha 2 digit ISO 3166 country code. (e.g. United
            States = US)</br>
            **Field required for**:  Klarna, Paypal, Vipps, MobilePay, Google Pay, Apple Pay, Affirm, Swish
        postal_code:
          maxLength: 10
          type: string
          description: |- 
            Consumer's postal code of their shipping address.</br>
            **Field required for**:  Klarna, Paypal, Vipps, MobilePay, Google Pay, Apple Pay, Affirm, Swish
        state:
          maxLength: 35
          type: string
          description: |-
            Consumer's state or province of their shipping address. (e,g.
            Ohio = OH, Texas = TX)</br>
            **Field required for**:  Klarna, Paypal
    tax:
      type: object
      properties:
        identifier:
          pattern: ^[0-9]+$
          type: string
          description: An optional identifier of the document recipient:<br> Personal
            ID (for individuals) <br>Tax identification number (for business)
          x-constraint:
            length: 9
    notification_methods:
      type: object
      description: Parameter is used for the PAYMENT_LINK interaction type in order to specify the payment link delivery method ( Email or SMS )
      properties:
        email:
          $ref: '#/components/schemas/EmailNotification'
        sms:
          $ref: '#/components/schemas/SMSNotification'
    notification_methods_refund_preview:
      type: object
      description: if email_notification_required is true, notification_methods is required. </br>
                   if email_notification_required is false, notification_methods is optional. </br>
      properties:
        email:
          $ref: '#/components/schemas/EmailNotification'
    template_field_mode:
      type: object
      properties:
        mode:
          type: string
          enum:
            - HIDDEN
            - READ_ONLY
            - OPTIONAL
            - REQUIRED
    address_details:
      type: object
      properties:
        address_1:
          $ref: '#/components/schemas/template_field_mode'
        address_2:
          $ref: '#/components/schemas/template_field_mode'
        address_3:
          $ref: '#/components/schemas/template_field_mode'
        city:
          $ref: '#/components/schemas/template_field_mode'
        country_code:
          $ref: '#/components/schemas/template_field_mode'
        first_name:
          $ref: '#/components/schemas/template_field_mode'
        middle_name:
          $ref: '#/components/schemas/template_field_mode'
        last_name:
          $ref: '#/components/schemas/template_field_mode'
        phone:
          $ref: '#/components/schemas/template_field_mode'
        postal_code:
          $ref: '#/components/schemas/template_field_mode'
        state:
          $ref: '#/components/schemas/template_field_mode'
    promo_financing_details:
      type: object
      properties:
        promo_financing_type:
          type: string
          enum:
            - PROMO_APR
            - PROMO_AND_AFTER_APR
          description: |- 
            Type of special financing information requested. Promotional information may be requested for duration of the promo only (`PROMO_APR`) or for during and after promo period (`PROMO_AND_AFTER_APR`).
        promo_plan:
          type: string
          description: The code or name of a promotional financing plan as set up between merchant and issuer.
        promo_plan_expiry:
          type: string
          format: date
          description: 'Expiry date for the requested promo plan. The format for the date is Mongo DB ISO 8601.  
            <br /> <b>Example:</b> 2026-03-20T10:48:00.000Z <br />'
    LineItemResponse:
      required:
      - name
      - total_amount
      - unit_price
      type: object
      properties:
        image_url:
          maxLength: 2000
          type: string
          description: Image URL for the line item
          x-format:
            uri: true
        item_url:
          maxLength: 2000
          type: string
          description: Item URL for the line item
          x-format:
            uri: true
        image_id:
          type: string
          description: Image ID for the line item
          x-format:
            guid: true
        name:
          maxLength: 255
          type: string
          description: Descriptive name of the order line item
        quantity:
          type: integer
          default: 1
          description: Quantity of the order line item
        unit_price:
          type: number
          description: Unit Price
        unit_price_tax:
          type: number
          description: Unit Price Tax
        tax_rate:
          type: number
          description: Additional details specific to this type of event
        total_tax_amount:
          type: number
          description: Total tax amount
        total_amount:
          type: number
          description: Total Amount
        sku:
          maxLength: 127
          type: string
          description: The stock keeping unit (SKU) for the item.
        description:
          maxLength: 127
          type: string
          description: The detailed item description.
        category:
          type: string
          description: 'The item category type. <br />  The possible values are: <br
            />  * DIGITAL_GOODS - Goods that are stored, delivered, and used in their
            electronic format. This value is not currently supported for API callers
            that leverage the [PayPal for Commerce Platform](https://www.paypal.com/us/webapps/mpp/commerce-platform)
            product. <br />  * DIGITAL_GOODS - A tangible item that can be shipped
            with proof of delivery. <br />'
          enum:
          - DIGITAL_GOODS
          - PHYSICAL_GOODS
    line_items:
      type: array
      description: List of shopping cart items, to be displayed on the page. Read <a target="_blank" href="https://docs.verifone.com/online-payments/checkout/line-items">Line items</a> for details.
      items:
        $ref: '#/components/schemas/LineItemResponse'
    Checkout:
      required:
      - amount
      - created_at
      - currency_code
      - entity_id
      - id
      - updated_at
      type: object
      properties:
        id:
          type: string
          description: Checkout ID
          x-format:
            guid: true
        amount:
          maximum: 9007199254740991
          minimum: 0
          type: integer
          description: Transaction amount - Transaction with zero amount value will
            be considered as account verification  and by default implicitly capture
            will be set to false for AV transaction
        entity_id:
          type: string
          description: Entity Id can be located on the organization level as Organization ID (Administration > Organizations > [Organization] > Organisation ID value)
          x-format:
            guid: true
        currency_code:
          type: string
          description: Currency code
          enum:
          - AED
          - AFN
          - ALL
          - AMD
          - ANG
          - AOA
          - ARS
          - AUD
          - AWG
          - AZN
          - BAM
          - BBD
          - BDT
          - BGN
          - BHD
          - BIF
          - BMD
          - BND
          - BOB
          - BOV
          - BRL
          - BSD
          - BTN
          - BWP
          - BYR
          - BZD
          - CAD
          - CDF
          - CHE
          - CHF
          - CHW
          - CLF
          - CLP
          - CNY
          - COP
          - COU
          - CRC
          - CUC
          - CVE
          - CZK
          - DJF
          - DKK
          - DOP
          - DZD
          - EGP
          - ERN
          - ETB
          - EUR
          - FJD
          - FKP
          - GBP
          - GEL
          - GHS
          - GIP
          - GMD
          - GNF
          - GTQ
          - GYD
          - HKD
          - HNL
          - HRK
          - HTG
          - HUF
          - IDR
          - ILS
          - INR
          - IQD
          - IRR
          - ISK
          - JMD
          - JOD
          - JPY
          - KES
          - KGS
          - KHR
          - KMF
          - KPW
          - KRW
          - KWD
          - KYD
          - KZT
          - LAK
          - LBP
          - LKR
          - LRD
          - LSL
          - LTL
          - LVL
          - LYD
          - MAD
          - MDL
          - MGA
          - MKD
          - MMK
          - MNT
          - MOP
          - MRO
          - MUR
          - MVR
          - MWK
          - MXN
          - MXV
          - MYR
          - MZN
          - NAD
          - NGN
          - NIO
          - NOK
          - NPR
          - NZD
          - OMR
          - PAB
          - PEN
          - PGK
          - PHP
          - PKR
          - PLN
          - PYG
          - QAR
          - RON
          - RSD
          - RUB
          - RWF
          - SAR
          - SBD
          - SCR
          - SDG
          - SEK
          - SGD
          - SHP
          - SLL
          - SOS
          - SRD
          - SSP
          - STD
          - SVC
          - SYP
          - SZL
          - THB
          - TJS
          - TMT
          - TND
          - TOP
          - TRY
          - TTD
          - TWD
          - TZS
          - UAH
          - UGX
          - USD
          - USN
          - USS
          - UYI
          - UYU
          - UZS
          - VEF
          - VND
          - VUV
          - WST
          - XAF
          - XAG
          - XAU
          - XBA
          - XBB
          - XBC
          - XBD
          - XCD
          - XDR
          - XOF
          - XPD
          - XPF
          - XPT
          - XTS
          - XXX
          - YER
          - ZAR
          - ZMK
          - ZMW
          - BTC
        customer:
          type: string
          description: Customer UUID
          x-format:
            guid: true
        expiry_time:
          type: string
          description: Expiry time of the Checkout page. Defaults to 15 min from creation time. If a user tries to visit or use an expired Checkout, an error will be shown. Maximum value is 30 days.
          format: date
        merchant_reference:
          maxLength: 50
          pattern: ^[^=+\-@].*
          type: string
          description: Reference provided by Merchant to identify the Checkout and
            the transaction initiated from it
        return_url:
          type: string
          description: URL belonging to the Merchant website, where the Customer would be redirected after the Checkout has been completed. If this parameter is used, the customer will be redirected after spending 10 seconds on the payment confirmation page provided by Verifone in case of HPP and PAYMENT LINK transactions. For IFRAME transaction the redirect is performed right after the checkout page without passing through the payment confirmation page.   <br /> <b>Note 1:</b> The return_url accepts only securely connected URLs i.e., via https protocol. <br /> <b>Note 2:</b> The time after which redirection happens can be customized using redirect_method.
          x-format:
            uri: true
        configurations:
          $ref: '#/components/schemas/PaymentConfigurationsResponse'
        created_at:
          type: string
          description: Checkout created time
          format: date-time
        updated_at:
          type: string
          description: Checkout updated time
          format: date-time
        transaction_id:
          type: string
          description: Id of a successfully processed transaction with the Checkout
          x-format:
            guid: true
        customer_ip:
          type: string
          description: Customer IP address from the last viewing of the Checkout page
          x-format:
            ip:
              cidr: optional
              version:
              - ipv4
              - ipv6
        user_agent:
          maxLength: 256
          type: string
          description: User agent of the browser of the Customer from the last time
            the Checkout was viewed
        i18n:
          $ref: '#/components/schemas/I18nResponse'
        events:
          $ref: '#/components/schemas/events'
        status:
          type: string
          description: Checkout Status
        notification_methods:
          $ref: '#/components/schemas/notification_methods'
        display_line_items:
          type: boolean
          description: Indicates whether line items should be displayed on the page.
            Defaults to true
          default: true
        line_items:
          $ref: '#/components/schemas/line_items'
        interaction_type:
          type: string
          description: >-
            Type of checkout. Allows for distinguishing payments accepted
            via different channels. <br /> Possible Values: <br />  * HPP - For payments
            done as Hosted Payments Page integration.<br />  * IFRAME - For payments
            done as an Iframe integration.<br /> *
            PAYMENT_LINK - For payments done through the Payment link feature in the
            merchant portal.
          default: HPP
          enum:
          - HPP
          - IFRAME
          - PAYMENT_LINK
        payment_method_used:
          type: string
          description: Payment method used on the checkout
          enum:
          - card
          - paypal
          - googlePay
          - applePay
          - vipps
          - mobilePay
          - gpp2
          - giftCard
          - swish
          - klarna
          - giftCard
          - plcc
        url:
          type: string
          description: URL of the Checkout
          x-format:
            uri: true
        theme_id:
          type: string
          description: Parameter that was created within the create theme API call that applies the customizations upon the checkout interface. Read <a target="_blank" href="https://docs.verifone.com/online-payments/checkout/theming">Theming</a> for details.
          x-format:
            guid: true
        receipt_type:
          type: string
          description: 'Can be used to send different invoices to the customer. <br /> Possible Values: <br />  * INVOICE <br
            />  * FULL_RECEIPT <br />  * SIMPLE_RECEIPT <br />  * INVOICE_RECEIPT <br />'
          enum:
          - INVOICE
          - FULL_RECEIPT
          - SIMPLE_RECEIPT
          - INVOICE_RECEIPT
        sales_description:
          maxLength: 200
          type: string
          description: 'General description of the document'
        customer_details:
          $ref: '#/components/schemas/customer_details'
        promo_code:
          type: string
          description: A code defined by the merchant that affects the calculation of the total amount.
        invoice_number:
          maxLength: 127
          type: string
          description: The invoice number to track this payment. <br /> <b>Note:</b> Valid for card payments only.
        transaction_type:
          type: string
          description: this field is only applicable for virtual terminal. Supported value for this field is UNMATCHED_REFUND.
        created_by:
          type: string
          description: User id who created the checkout.
        fraud_protection_data:
          $ref: '#/components/schemas/FraudProtectionData'
        unmatched_refund_transaction_id:
          type: string
          description: Id of a successfully refunded transaction with the Checkout
          x-format:
            guid: true
        allow_customer_inputs: 
          type: boolean
          default: false
          description: Allows customer to enter or update their billing/shipping information on the hosted payments page.Only applicable for HPP and PAYMENT_LINK interaction types.
        checkout_template_id:
          type: string
          description: | 
            Checkout template UUID  
            **WARNING**: Only active template allowed.
          x-format:
            guid: true
        surcharge_amount:
          type: number
          description: An optional additional amount representing the surcharge associated with a payment.
        redirect_method:
          type: string
          enum:
            - DEFAULT
            - HEADER_REDIRECT
          description: |-
            Configures the redirect behaviour for return_url on successful payment when interaction type is either HPP or PAYMENT_LINK </br>
                 * DEFAULT: The customer will be redirected after spending 10 seconds on the payment confirmation page provided by Verifone. </br>
                 * HEADER_REDIRECT: The payment confirmation page is skipped and the customer is redirected immediately. <br /> 
                <b>Note:</b> This parameter does not have any effect when interaction type is IFRAME.
        handle_order_confirmation:
          type: boolean
          description: >-
            This change will remove the payment confirmation page from the user interface. Payment actions will now be managed through postMessage events.<br />
            Checkout Events: <br />
            * CHECKOUT_RENDERED: Indicates successful iFrame loading. <br />
            * CHECKOUT_RENDERED_FAILED: Signals iFrame loading failure. <br />
            * CARD_DETAILS_ENTERED: Triggered after the cardholder inputs card details. <br />
            * CHECKOUT_FAILED: Occurs when the checkout process encounters an error. <br />
            Payment Action listerer events: <br />
            * CONTINUE: Initiates the payment process. <br />
            **Note:** This parameter has no effect when the interaction type is HPP or PAYMENT_LINK.
          default: false
        show_confirmation_page:
          type: boolean
          description: >-
            This change will remove the payment confirmation page from the user interface. Payment actions will now be managed through postMessage events.<br />
            Checkout Events: <br />
            * CARD_CAPTURE_SUCCESS: Indicates successful card capture. <br />
            * CHECKOUT_COMPLETED: Signals successful completion of the checkout process. <br />
            * CHECKOUT_FAILED: Occurs when the checkout process encounters an error. <br />
            **Note:** This parameter has no effect when the interaction type is HPP or PAYMENT_LINK.
          default: true
        promo_financing_details:
          $ref: '#/components/schemas/promo_financing_details'
    CheckoutList:
      type: array
      items:
        $ref: '#/components/schemas/Checkout'
    Theme:
      required:
      - name
      type: object
      properties:
        name:
          maxLength: 255
          type: string
        logo:
          type: string
          description: Uploaded image Id
          x-format:
            guid: true
        entity_id:
          type: string
          description: Entity Id can be located on the organization level as Organization ID (Administration > Organizations > [Organization] > Organisation ID value)
          x-format:
            guid: true
        base_font_family:
          type: string
          description: base fonts available for theme
          enum:
          - Roboto
          - Open Sans
          - Lato
          - Slabo
          - Oswald
          - Source Sans Pro
          - Montserrat
          - Raleway
          - PT Sans
          - Lora
          - Noto Sans
          - Noto Serif
          - Nunito Sans
          - Concert One
          - Prompt
          - Work Sans
        text_color:
          type: string
          description: 6 digit hex code, e.g. <code>ffe0e0</code>
          x-constraint:
            length: 6
          x-format:
            hex:
              byteAligned: false
        heading_color:
          type: string
          description: 6 digit hex code, e.g. <code>ffe0e0</code>
          x-constraint:
            length: 6
          x-format:
            hex:
              byteAligned: false
        background_color:
          type: string
          description: 6 digit hex code, e.g. <code>ffe0e0</code>
          x-constraint:
            length: 6
          x-format:
            hex:
              byteAligned: false
        panel_background_color:
          type: string
          description: 6 digit hex code, e.g. <code>ffe0e0</code>
          x-constraint:
            length: 6
          x-format:
            hex:
              byteAligned: false
        primary_color:
          type: string
          description: 6 digit hex code, e.g. <code>ffe0e0</code>
          x-constraint:
            length: 6
          x-format:
            hex:
              byteAligned: false
        primary_color_inverse:
          type: string
          description: 6 digit hex code, e.g. <code>ffe0e0</code>
          x-constraint:
            length: 6
          x-format:
            hex:
              byteAligned: false
        primary_color_disabled:
          type: string
          description: 6 digit hex code, e.g. <code>ffe0e0</code>
          x-constraint:
            length: 6
          x-format:
            hex:
              byteAligned: false
        primary_color_inverse_disabled:
          type: string
          description: 6 digit hex code, e.g. <code>ffe0e0</code>
          x-constraint:
            length: 6
          x-format:
            hex:
              byteAligned: false
        error_color:
          type: string
          description: 6 digit hex code, e.g. <code>ffe0e0</code>
          x-constraint:
            length: 6
          x-format:
            hex:
              byteAligned: false
        error_color_inverse:
          type: string
          description: 6 digit hex code, e.g. <code>ffe0e0</code>
          x-constraint:
            length: 6
          x-format:
            hex:
              byteAligned: false
        input_border_radius:
          type: number
        input_border_width:
          type: number
        hide_verifone_seal:
          type: boolean
          description: Show/Hide verifone seal on the checkout page
        config:
          $ref: '#/components/schemas/config'  
        id:
          type: string
          x-format:
            guid: true
        created_at:
          type: string
          format: date
        updated_at:
          type: string
          format: date
      description: Theme parameters
    ThemeList:
      type: array
      items:
        $ref: '#/components/schemas/Theme'
    ErrorResponse:
      type: object
      properties:
        code:
          type: number
          description: A 3-digit code which uniquely identify an error.
        details:
          $ref: '#/components/schemas/details'
        message:
          maxLength: 2048
          type: string
          description: A description of the error.
        timestamp:
          type: string
          description: Error timestamp
          format: date-time
      example:
        code: 400
        message: "Invalid request parameters"
        timestamp: "2024-01-15T10:30:00Z"

    CheckoutCountResponse:
      type: object
      properties:
        count:
          type: number
          description: Checkout count
    CountResponse:
      type: object
      properties:
        count:
          type: number
          description: Count
    FieldValidationRule:
      type: object
      properties:
        validationRule:
          type: string
          default: NONE
          enum:
          - NONE
          - LUHN
        usage:
          type: string
          default: REQUIRED
          enum:
          - REQUIRED
          - PROHIBITED
    FieldValidationRulesAlt:
      type: object
      properties:
        CVV:
          $ref: '#/components/schemas/FieldValidationRule'
        CREDIT_TERM:
          $ref: '#/components/schemas/FieldValidationRule'
        IDENTITY_CARD_NUMBER:
          $ref: '#/components/schemas/FieldValidationRule'
    basic_card:
      type: object
      properties:
        mode:
          $ref: '#/components/schemas/card_mode'
        card_capture_mode:
          $ref: '#/components/schemas/card_capture_mode'
        cvv_required:
          type: boolean
          description: Indicates whether cvv is required
          default: false
        input_overrides:
          anyOf:
            - $ref: '#/x-alt-definitions/input_overrides'
            - $ref: '#/x-alt-definitions/Model2'
      description: Card payment configuration
    CardMode3DS:
      allOf:
        - $ref: '#/components/schemas/basic_card'
        - type: object
          required:
            - threed_secure
          properties:
            threed_secure:
              $ref: '#/components/schemas/threed_secure'
            shopper_interaction:
              $ref: '#/components/schemas/shopper_interaction'
    CardModeCapture:
      allOf:
        - $ref: '#/components/schemas/basic_card'
        - type: object
    CardModePayment:
      allOf:
        - $ref: '#/components/schemas/basic_card'
        - type: object
          required:
            - payment_contract_id
          properties:
            dynamic_descriptor:
              maxLength: 25
              type: string
              description: Value is displayed as short text on the bank statement of the cardholder
            capture_now:
              type: boolean
              description: >-
                True - transaction will be sent as authCapture and automatically captured. <br />
                False - transaction will be sent as auth and only authorized. NOT CAPTURED. <br />
                If you don't have any value in the capture_now parameter, at the moment of the call the value will be set as TRUE. 
              default: true
            shopper_interaction:
              $ref: '#/components/schemas/shopper_interaction'
            account_validation:
              type: boolean
              description: >-
                Indicates whether the card transaction should be processed as
                Account Validation request instead. If set to true, the amount
                provided for the Checkout would be ignored and the transaction
                be processed with amount: 0
              default: false
            authorization_type:
              type: string
              description: >-
                Card Authorization Type (PRE_AUTH, FINAL_AUTH).  When capture
                now is set to true pre-authorization transactions cannot be
                done.
              default: FINAL_AUTH
            payment_contract_id:
              $ref: '#/components/schemas/payment_contract_id'
            token_preference:
              $ref: '#/x-alt-definitions/card_token_preference'
            credit_term:
              type: string
              description: >-
                Determines the transaction type. Only applicable for ABS Acquirer.Available options: <br /> STANDARD - Sale <br /> PREFERRED - Sale - Preferred Isracard <br /> DEBIT - Sale - Direct Debit <br /> INSTALMENT_STANDARD - Instalment standard <br /> INSTALMENT_CREDIT - Instalment credit<br />
              enum:
                - DEBIT
                - STANDARD
                - PREFERRED
                - INSTALMENT_CREDIT
                - INSTALMENT_STANDARD
            instalment:
              $ref: '#/components/schemas/InstalmentConfiguration'
            stored_credential:
              $ref: '#/components/schemas/stored_credential'
            additional_business_data:
              $ref: '#/components/schemas/additional_business_data'
            reuse_token:
              maxLength: 4096
              type: string
              description: The identifier used to represent the Cardholder data.
            fraud_protection_contract:
              type: string
              description: Fraud Protection Contract Id
              x-format:
                guid: true
    CardMode3DSPayment:
      allOf:
        - $ref: '#/components/schemas/basic_card'
        - type: object
          required:
            - threed_secure
            - payment_contract_id
          properties:
            threed_secure:
              $ref: '#/components/schemas/threed_secure'
            dynamic_descriptor:
              maxLength: 25
              type: string
              description: Value is displayed as short text on the bank statement of the cardholder
            capture_now:
              type: boolean
              description: >-
                True - transaction will be sent as authCapture and automatically captured. <br />
                False - transaction will be sent as auth and only authorized. NOT CAPTURED. <br />
                If you don't have any value in the capture_now parameter, at the moment of the call the value will be set as TRUE. 
              default: true
            shopper_interaction:
              type: string
              description: 'Used to indicate the channel used by to send they checkout link
                <br /> * ECOMMERCE'
              enum:
                - ECOMMERCE
            account_validation:
              type: boolean
              description: >-
                Indicates whether the card transaction should be processed as
                Account Validation request instead. If set to true, the amount
                provided for the Checkout would be ignored and the transaction
                be processed with amount: 0
              default: false
            authorization_type:
              type: string
              description: >-
                Card Authorization Type (PRE_AUTH, FINAL_AUTH).  When capture
                now is set to true pre-authorization transactions cannot be
                done.
              default: FINAL_AUTH
            payment_contract_id:
              $ref: '#/components/schemas/payment_contract_id'
            token_preference:
              $ref: '#/x-alt-definitions/card_token_preference'
            credit_term:
              type: string
              description: >-
                Determines the transaction type. Only applicable for ABS
                Acquirer. Available options: <br /> STANDARD - Sale <br /> PREFERRED - Sale - Preferred
                Isracard <br /> DEBIT - Sale - Direct Debit <br />
                INSTALMENT_STANDARD - Instalment standard <br />
                INSTALMENT_CREDIT - Instalment credit<br />
              enum:
                - DEBIT
                - STANDARD
                - PREFERRED
                - INSTALMENT_CREDIT
                - INSTALMENT_STANDARD
            instalment:
              $ref: '#/components/schemas/InstalmentConfiguration'
            stored_credential:
              $ref: '#/components/schemas/stored_credential'
            additional_business_data:
              $ref: '#/components/schemas/additional_business_data'
            reuse_token:
              maxLength: 4096
              type: string
              description: The identifier used to represent the Cardholder data.
    CardConfiguration:
      discriminator:
        propertyName: mode
        mapping:
          3DS_PAYMENT: '#/components/schemas/CardMode3DSPayment'
          3DS: '#/components/schemas/CardMode3DS'
          PAYMENT: '#/components/schemas/CardModePayment'
          CARD_CAPTURE: '#/components/schemas/CardModeCapture'
      anyOf:
        - $ref: '#/components/schemas/CardMode3DSPayment'
        - $ref: '#/components/schemas/CardMode3DS'
        - $ref: '#/components/schemas/CardModePayment'
        - $ref: '#/components/schemas/CardModeCapture'
      type: object
      properties:
        mode:
          $ref: '#/components/schemas/card_mode'
        card_capture_mode:
          $ref: '#/components/schemas/card_capture_mode'
        cvv_required:
          type: boolean
          description: Indicates whether cvv is required
          default: false
        input_overrides:
          anyOf:
            - $ref: '#/x-alt-definitions/input_overrides'
            - $ref: '#/x-alt-definitions/Model2'
      description: Card payment configuration
      example:
        mode: "PAYMENT"
        payment_contract_id: "e3d4f5a6-b7c8-9d0e-1f2a-3b4c5d6e7f8a"
        capture_now: true
    GPP2PaymentConfig:
      required:
      - payment_contract_id
      type: object
      properties:
        payment_contract_id:
          type: string
          description: This parameter can be found in the portal on the Payment Provider Contract attached to your organization or given to you by a Verifone employee. It is used to retrieve MID and other merchant configurations necessary for a card payment.
          x-format:
            guid: true
        shopper_interaction:
          type: string
          description: 'Used to indicate the channel used by to send they checkout link
            <br /> * ECOMMERCE <br />
            * MAIL - value is used only in Virtual terminal transactions and cannot
            be used in createCheckout API call <br /> * MCOMMERCE <br />
            * TELEPHONE - value is used only in Virtual terminal transactions and
            cannot be used in createCheckout API call <br />'
          default: ECOMMERCE
          enum:
          - ECOMMERCE
          - MAIL
          - MCOMMERCE
          - TELEPHONE
      description: GPP2 payment configuration
      example:
        payment_contract_id: "e3d4f5a6-b7c8-9d0e-1f2a-3b4c5d6e7f8a"
        shopper_interaction: "ECOMMERCE"
    GooglePayCardConfigRequest:
      required:
      - payment_contract_id
      - sca_compliance_level
      - threed_secure
      type: object
      properties:
        sca_compliance_level:
          type: string
          description: |-
            Strong Customer Authentication (SCA) compliance level, possible values </br>
                 * NONE: No SCA required. </br>
                 * WALLET: based on the assurance details, if those are false, Google Pay will indicate the PSP to trigger 3DS which in this case will be required. 
                  Details [here](https://developers.google.com/pay/api/web/reference/response-objects#assurance-details-specifications)</br>
                 * FORCE_3DS: SCA will be triggered. Regarding the liability shift, please check
                  [this page](https://developers.googleblog.com/en/google-pay-enabling-liability-shift-for-eligible-visa-device-token-transactions-globally/)
          enum:
          - NONE
          - WALLET
          - FORCE_3DS
        threed_secure:
          $ref: '#/components/schemas/ThreeDSData'
        authorization_type:
          type: string
          description: >-
            Default: "FINAL_AUTH" <br />
            Other Possible Values: "PRE_AUTH" <br />
            Text: PRE_AUTH is used when a merchant wants to ensure shopper's funds availability at a later time. <br />
            Attention: If you are using PRE_AUTH function make sure capture_now is set as FALSE. Otherwise the PRE_AUTH will not work. <br />
          default: FINAL_AUTH
        shopper_interaction:
          $ref: '#/components/schemas/shopper_interaction'
        payment_contract_id:
          type: string
          description: This parameter can be found in the portal on the Payment Provider Contract attached to your organization or given to you by a Verifone employee. It is used to retrieve MID and other merchant configurations necessary for a card payment.
          x-alternatives:
          - type: string
            description: This parameter can be found in the portal on the Payment Provider Contract attached to your organization or given to you by a Verifone employee. It is used to retrieve MID and other merchant configurations necessary for a card payment.
            x-format:
              guid: true
          - $ref: '#/x-alt-definitions/paymentContractIdDef'
          x-format:
            guid: true
        token_preference:
          $ref: '#/x-alt-definitions/token_preference'
    ApplePayCardConfig:
      required:
      - payment_contract_id
      - sca_compliance_level
      - threed_secure
      type: object
      properties:
        sca_compliance_level:
          type: string
          default: NONE
          description: |-
            Strong Customer Authentication (SCA) compliance level, possible values </br>
                 * NONE: No SCA required. </br>
                 *<b>Deprecated</b> WALLET: Apple Pay will indicate the PSP to trigger 3DS which in this case will be required.
                  Details [here](https://developers.google.com/pay/api/web/reference/response-objects#assurance-details-specifications)</br>
                 *<b>Deprecated</b> FORCE_3DS: SCA will be triggered. Regarding the liability shift, please check
                  [this page](https://developers.googleblog.com/en/google-pay-enabling-liability-shift-for-eligible-visa-device-token-transactions-globally/)</br></br>
                  *<b>Note: </b> Apple Pay is SCA compliant by design and 3DS check is not a mandatory function for processing transactions with this wallet. As a result, the previously supported WALLET and FORCE_3DS parameters are no longer relevant for Apple Pay transactions and have been deprecated.
                  Supports only NONE. Any other values (WALLET or FORCE_3DS) are sanitized and ignored.
          enum:
          - NONE
          - WALLET
          - FORCE_3DS
        threed_secure:
          deprecated: true
          description: Used for <a target="_blank" href="https://docs.verifone.com/online-payments/checkout/accepting-payments/3d-secure-payments">3D-Secure payments</a>
          type: object
        authorization_type:
          type: string
          description: >-
            Default: "FINAL_AUTH" <br />
            Other Possible Values: "PRE_AUTH" <br />
            Text: PRE_AUTH is used when a merchant wants to ensure shopper's funds availability at a later time. <br />
            Attention: If you are using PRE_AUTH function make sure capture_now is set as FALSE. Otherwise the PRE_AUTH will not work. <br />
          default: FINAL_AUTH
        shopper_interaction:
          $ref: '#/components/schemas/shopper_interaction'
        payment_contract_id:
          type: string
          description: This parameter can be found in the portal on the Payment Provider Contract attached to your organization or given to you by a Verifone employee. It is used to retrieve MID and other merchant configurations necessary for a card payment.
          x-alternatives:
          - type: string
            description: This parameter can be found in the portal on the Payment Provider Contract attached to your organization or given to you by a Verifone employee. It is used to retrieve MID and other merchant configurations necessary for a card payment.
            x-format:
              guid: true
          - $ref: '#/x-alt-definitions/paymentContractIdDef'
          x-format:
            guid: true
        token_preference:
          $ref: '#/x-alt-definitions/token_preference'
    GooglePayPaymentConfig:
      type: object
      description: Google Pay payment configuration
      properties:
        dynamic_descriptor:
          maxLength: 25
          type: string
          description: Value is displayed as short text on the bank statement of the cardholder
        capture_now:
          type: boolean
          description: >-
            True - transaction will be sent as authCapture and automatically captured. <br />
            False - transaction will be sent as auth and only authorized. NOT CAPTURED. <br />
            If you don't have any value in the capture_now parameter, at the moment of the call the value will be set as TRUE.
          default: true
        account_validation:
          type: boolean
          description: 'Indicates whether the card transaction should be processed
            as Account Validation request instead. If set to true, the amount provided
            for the Checkout would be ignored and the transaction be processed with
            amount: 0'
          default: false
        card:
          $ref: '#/components/schemas/GooglePayCardConfigRequest'
      example:
        capture_now: true
        card:
          payment_contract_id: "e3d4f5a6-b7c8-9d0e-1f2a-3b4c5d6e7f8a"
          sca_compliance_level: "NONE"
          threed_secure:
            threeds_contract_id: "c1d2e3f4-a5b6-7c8d-9e0f-1a2b3c4d5e6f"
            transaction_mode: "S"
    apple_pay:
      type: object
      description: Apple Pay payment configuration
      properties:
        dynamic_descriptor:
          maxLength: 25
          type: string
          description: Value is displayed as short text on the bank statement of the cardholder
        capture_now:
          type: boolean
          description: >-
            True - transaction will be sent as authCapture and automatically captured. <br />
            False - transaction will be sent as auth and only authorized. NOT CAPTURED. <br />
            If you don't have any value in the capture_now parameter, at the moment of the call the value will be set as TRUE.
          default: true
        account_validation:
          type: boolean
          description: 'Indicates whether the card transaction should be processed
            as Account Validation request instead. If set to true, the amount provided
            for the Checkout would be ignored and the transaction be processed with
            amount: 0'
          default: false
        card:
          $ref: '#/components/schemas/ApplePayCardConfig'
      example:
        capture_now: true
        card:
          payment_contract_id: "e3d4f5a6-b7c8-9d0e-1f2a-3b4c5d6e7f8a"
          sca_compliance_level: "NONE"
          threed_secure: {}
    VippsCardConfigRequest:
      required:
      - sca_compliance_level
      - threed_secure
      type: object
      properties:
        sca_compliance_level:
          type: string
          description: |-
            Strong Customer Authentication (SCA) compliance level, possible values </br>
                 * NONE: No SCA required. </br>
                 * WALLET: Depend on the wallet SCA mechanism. For Google Pay this means that MasterCard will shift liability, Visa will not. </br>
                 * FORCE_3DS: Do an additional 3DS step regardless of whether the wallet indicates the token is SCA-compliant.
          enum:
          - NONE
          - WALLET
          - FORCE_3DS
        threed_secure:
          $ref: '#/components/schemas/ThreeDSData'
        authorization_type:
          type: string
          description: Card Authorization Type (PRE_AUTH, FINAL_AUTH).  When capture
            now is set to true pre-authorization transactions cannot be done.
          default: FINAL_AUTH
    VippsPaymentConfigRequest:
      required:
      - payment_contract_id
      type: object
      properties:
        payment_contract_id:
          type: string
          description: This parameter can be found in the portal on the Payment Provider Contract attached to your organization or given to you by a Verifone employee. It is used to retrieve MID and other merchant configurations necessary for a card payment.
          x-format:
            guid: true
        dynamic_descriptor:
          maxLength: 25
          type: string
          description: Value is displayed as short text on the bank statement of the cardholder
        capture_now:
          type: boolean
          description: >-
            True - transaction will be sent as authCapture and automatically captured. <br />
            False - transaction will be sent as auth and only authorized. NOT CAPTURED. <br />
            If you don't have any value in the capture_now parameter, at the moment of the call the value will be set as TRUE. 
          default: true
        is_app:
          type: boolean
          description: Flag to identify the transaction originated from APP or Browser
          default: false
        app_phone_number:
          maxLength: 18
          pattern: ^[0-9-\s\-+().-]+$
          type: string
          description: Indicates the phone number registered with Vipps Mobile APP.
        card:
          $ref: '#/components/schemas/VippsCardConfigRequest'
      description: Vipps payment configuration
      example:
        payment_contract_id: "e3d4f5a6-b7c8-9d0e-1f2a-3b4c5d6e7f8a"
        capture_now: true
        card:
          sca_compliance_level: "NONE"
          threed_secure:
            threeds_contract_id: "c1d2e3f4-a5b6-7c8d-9e0f-1a2b3c4d5e6f"
            transaction_mode: "S"
    PaymentConfigurations:
      type: object
      properties:
        card:
          $ref: '#/components/schemas/CardConfiguration'
        gpp2:
          $ref: '#/components/schemas/GPP2PaymentConfig'   
        gift_card:
          $ref: '#/components/schemas/gift_card'
        paypal:
          $ref: '#/components/schemas/PaypalPaymentConfig'
        google_pay:
          $ref: '#/components/schemas/GooglePayPaymentConfig'
        apple_pay:
          $ref: '#/components/schemas/apple_pay'
        klarna:
          $ref: '#/components/schemas/KlarnaPaymentConfig'
        vipps:
          $ref: '#/components/schemas/VippsPaymentConfigRequest'
        swish:
          $ref: '#/components/schemas/swish_req'
        mobile_pay:
          $ref: '#/components/schemas/mobile_pay_req'
        bank:
          $ref: '#/components/schemas/bank'  
        plcc:
          $ref: '#/components/schemas/plcc'
      description: Payment method configurations
    I18nConfiguration:
      type: object
      properties:
        default_language:
          type: string
          description: Default language is used for displaying the page. Any customer
            language choice would override this option
          default: en
        fallback_language:
          type: string
          description: Fallback language is used when DEFAULT_LANGUAGE is invalid.
            Any customer language choice would override this option
          default: en
        show_language_options:
          type: boolean
          description: Indicates whether a language selection option should be shown
            to the customer on the Checkout page or not
          default: true
      description: Language preferences for the checkout page. Read <a target="_blank" href="/online-payments/checkout/localization">Localisation</a> for details.
    LineItem:
      required:
      - name
      - total_amount
      type: object
      properties:
        image_url:
          maxLength: 2000
          type: string
          description: Image URL for the line item
          x-format:
            uri: true
        item_url:
          maxLength: 2000
          type: string
          description: Item URL for the line item
          x-format:
            uri: true
        name:
          maxLength: 255
          type: string
          description: Descriptive name of the order line item
        quantity:
          type: integer
          default: 1
          description: Quantity of the order line item
        unit_price:
          type: number
          description: Unit Price
        unit_price_tax:
          type: number
          description: Unit Price Tax
        tax_rate:
          type: number
          description: Additional details specific to this type of event
        total_tax_amount:
          type: number
          description: Total tax amount
        total_amount:
          type: number
          description: Total Amount
        sku:
          maxLength: 127
          type: string
          description: The stock keeping unit (SKU) for the item.
        description:
          maxLength: 127
          type: string
          description: The detailed item description.
        category:
          type: string
          description: 'The item category type. <br />  The possible values are: <br
            />  * DIGITAL_GOODS - Goods that are stored, delivered, and used in their
            electronic format. <br />  * PHYSICAL_GOODS - A tangible item that can be shipped
            with proof of delivery.'
          enum:
          - DIGITAL_GOODS
          - PHYSICAL_GOODS
    LineItemList:
      title: Card, Apple Pay, Google Pay, MobilePay, Swish, GPP2, Crypto,GiftCard, Bank, PLCC
      type: array
      items:
        $ref: '#/components/schemas/LineItem'
    KlarnaLineItem:
      required:
      - name
      - quantity
      - tax_rate
      - total_amount
      - total_tax_amount
      - unit_price
      type: object
      properties:
        image_url:
          maxLength: 2000
          type: string
          description: Image URL for the line item
          x-format:
            uri: true
        item_url:
          maxLength: 2000
          type: string
          description: Item URL for the line item
          x-format:
            uri: true
        name:
          maxLength: 255
          type: string
          description: Descriptive name of the order line item
        quantity:
          type: integer
          default: 1
          description: Quantity of the order line item
        unit_price:
          type: number
          description: Unit Price
        unit_price_tax:
          type: number
          description: Unit Price Tax
        tax_rate:
          type: number
          description: Additional details specific to this type of event
        total_tax_amount:
          type: number
          description: Total tax amount
        total_amount:
          type: number
          description: Total Amount
        sku:
          maxLength: 127
          type: string
          description: The stock keeping unit (SKU) for the item.
        description:
          maxLength: 127
          type: string
          description: The detailed item description.
        category:
          type: string
          description: 'The item category type. <br />  The possible values are: <br
            />  * DIGITAL_GOODS - Goods that are stored, delivered, and used in their
            electronic format. <br />  * PHYSICAL_GOODS - A tangible item that can be shipped
            with proof of delivery.'
          enum:
          - DIGITAL_GOODS
          - PHYSICAL_GOODS
    KlarnaLineItemList:
      title: Klarna
      type: array
      items:
        $ref: '#/components/schemas/KlarnaLineItem'
    PaypalLineItem:
      required:
      - name
      - quantity
      - unit_price
      - total_amount
      type: object
      properties:
        image_url:
          maxLength: 2000
          type: string
          description: Image URL for the line item
          x-format:
            uri: true
        item_url:
          maxLength: 2000
          type: string
          description: Item URL for the line item
          x-format:
            uri: true
        name:
          maxLength: 127
          type: string
          description: Descriptive name of the order line item
        quantity:
          type: integer
          default: 1
          description: Quantity of the order line item
        unit_price:
          type: number
          description: Unit Price
        unit_price_tax:
          type: number
          description: Unit Price Tax
        tax_rate:
          type: number
          description: Additional details specific to this type of event
        total_tax_amount:
          type: number
          description: Total tax amount
        total_amount:
          type: number
          description: Total Amount
        sku:
          maxLength: 127
          type: string
          description: The stock keeping unit (SKU) for the item.
        description:
          maxLength: 127
          type: string
          description: The detailed item description.
        category:
          type: string
          description: 'The item category type. <br />  The possible values are: <br
            />  * DIGITAL_GOODS - Goods that are stored, delivered, and used in their
            electronic format. This value is not currently supported for API callers
            that leverage the [PayPal for Commerce Platform](https://www.paypal.com/us/webapps/mpp/commerce-platform)
            product. <br />  * PHYSICAL_GOODS - A tangible item that can be shipped
            with proof of delivery.'
          enum:
          - DIGITAL_GOODS
          - PHYSICAL_GOODS
    PaypalLineItemList:
      title: Paypal
      type: array
      items:
        $ref: '#/components/schemas/PaypalLineItem'
    RefundPreviewRequest:
      title: RefundPreview
      required:
      - amount
      - network_fee
      - final_amount
      - currency_code
      - refund_transaction_id
      - entity_name
      - merchant_url
      - details
      type: object
      properties:
        amount:
          exclusiveMinimum: true
          minimum: 0
          type: number
          description: Original refund amount.
        network_fee:
          exclusiveMinimum: true
          minimum: 0
          type: number
          description: Network fee.
        final_amount:
          exclusiveMinimum: true
          minimum: 0
          type: number
          description: Final amount to be refunded.
        currency_code:
          type: string
          description: Currency code
          enum:
          - AED
          - AFN
          - ALL
          - AMD
          - ANG
          - AOA
          - ARS
          - AUD
          - AWG
          - AZN
          - BAM
          - BBD
          - BDT
          - BGN
          - BHD
          - BIF
          - BMD
          - BND
          - BOB
          - BOV
          - BRL
          - BSD
          - BTN
          - BWP
          - BYR
          - BZD
          - CAD
          - CDF
          - CHE
          - CHF
          - CHW
          - CLF
          - CLP
          - CNY
          - COP
          - COU
          - CRC
          - CUC
          - CVE
          - CZK
          - DJF
          - DKK
          - DOP
          - DZD
          - EGP
          - ERN
          - ETB
          - EUR
          - FJD
          - FKP
          - GBP
          - GEL
          - GHS
          - GIP
          - GMD
          - GNF
          - GTQ
          - GYD
          - HKD
          - HNL
          - HRK
          - HTG
          - HUF
          - IDR
          - ILS
          - INR
          - IQD
          - IRR
          - ISK
          - JMD
          - JOD
          - JPY
          - KES
          - KGS
          - KHR
          - KMF
          - KPW
          - KRW
          - KWD
          - KYD
          - KZT
          - LAK
          - LBP
          - LKR
          - LRD
          - LSL
          - LTL
          - LVL
          - LYD
          - MAD
          - MDL
          - MGA
          - MKD
          - MMK
          - MNT
          - MOP
          - MRO
          - MUR
          - MVR
          - MWK
          - MXN
          - MXV
          - MYR
          - MZN
          - NAD
          - NGN
          - NIO
          - NOK
          - NPR
          - NZD
          - OMR
          - PAB
          - PEN
          - PGK
          - PHP
          - PKR
          - PLN
          - PYG
          - QAR
          - RON
          - RSD
          - RUB
          - RWF
          - SAR
          - SBD
          - SCR
          - SDG
          - SEK
          - SGD
          - SHP
          - SLL
          - SOS
          - SRD
          - SSP
          - STD
          - SVC
          - SYP
          - SZL
          - THB
          - TJS
          - TMT
          - TND
          - TOP
          - TRY
          - TTD
          - TWD
          - TZS
          - UAH
          - UGX
          - USD
          - USN
          - USS
          - UYI
          - UYU
          - UZS
          - VEF
          - VND
          - VUV
          - WST
          - XAF
          - XAG
          - XAU
          - XBA
          - XBB
          - XBC
          - XBD
          - XCD
          - XDR
          - XOF
          - XPD
          - XPF
          - XPT
          - XTS
          - XXX
          - YER
          - ZAR
          - ZMK
          - ZMW
          - BTC
        refund_transaction_id:
          type: string
          description: Refund transaction id
        sale_transaction_id:
          type: string
          description: Sale transaction id
        entity_id:
          type: string
          description: Entity Id can be located on the organization level as Organization ID (Administration > Organizations > [Organization] > Organisation ID value)
          x-format:
            guid: true
        merchant_reference:
          maxLength: 50
          pattern: ^[^=+\-@].*
          type: string
          description: Reference provided by Merchant to identify the Checkout and
            the transaction initiated from it
        expiry_time:
          type: string
          description: Expiry time of the Refund preview page defaults to 14 days from creation time. If a user tries to visit or use an expired Refund preview, an error will be shown.
          format: date
        reason:
          type: string
          description: Reason for refund
        entity_name:
          type: string
          description: Entity name
        merchant_url:
          type: string
          description: URL belonging to the Merchant website, where the Customer would be redirected after the Refund Preview has been completed.
        email_notification_required:
          type: boolean
          default: true
          description: Whether email notification required or not.
        notification_methods:
          $ref: '#/components/schemas/notification_methods_refund_preview'
        details:
          $ref: '#/components/schemas/RefundPreviewConfigurations'
    RefundPreviewConfigurations:
      title: RefundPreview
      type: object
      required:
      - crypto
      properties:
        crypto:
          $ref: '#/components/schemas/CryptoRefundDetails'

    RefundPreviewNotificationMethods:
      title: RefundPreview
      type: object
      properties:
        email:
         $ref: '#/components/schemas/RefundPreviewEmailNotification'

    RefundPreviewEmailNotification:
      title: RefundPreview
      type: object
      properties:
        email_address:
          type: string

    CryptoRefundDetails:
      title: RefundPreview
      required:
      - crypto_amount
      - crypto_currency_code
      type: object
      properties:
        crypto_amount:
          exclusiveMinimum: true
          minimum: 0
          type: number
          description: Crypto amount.
        crypto_currency_code:
          type: string
          description: Crypto currency code (E.g., BTC, ETH, ....)
    plcc:
      type: object
      properties:
        mode:
          $ref: '#/components/schemas/plcc_mode'
        payment_contract_id:
          type: string
          description: This parameter can be found in the portal on the Payment Provider Contract attached to your organization or given to you by a Verifone employee. It is used to retrieve MID and other merchant configurations necessary for a card payment.
          x-format:
            guid: true
        shopper_interaction:
          $ref: '#/components/schemas/shopper_interaction'
        authorization_type:
          type: string
          description: Card Authorization Type (PRE_AUTH, FINAL_AUTH).  When capture
            now is set to true pre-authorization transactions cannot be done.
          default: FINAL_AUTH
        capture_now:
          type: boolean
          description: >-
            True - transaction will be sent as authCapture and automatically captured. <br />
            False - transaction will be sent as auth and only authorized. NOT CAPTURED. <br />
            If you don't have any value in the capture_now parameter, at the moment of the call the value will be set as TRUE. 
          default: true
      description: Plcc payment configuration
      example:
        mode: "PAYMENT"
        payment_contract_id: "e3d4f5a6-b7c8-9d0e-1f2a-3b4c5d6e7f8a"
        capture_now: true
    plcc_response:
      type: object
      properties:
        mode:
          $ref: '#/components/schemas/plcc_mode'
        payment_contract_id:
          type: string
          description: This parameter can be found in the portal on the Payment Provider Contract attached to your organization or given to you by a Verifone employee. It is used to retrieve MID and other merchant configurations necessary for a card payment.
          x-format:
            guid: true
        shopper_interaction:
          $ref: '#/components/schemas/shopper_interaction'
        authorization_type:
          type: string
          description: Card Authorization Type (PRE_AUTH, FINAL_AUTH).  When capture
            now is set to true pre-authorization transactions cannot be done.
          default: FINAL_AUTH
        capture_now:
          type: boolean
          description: >-
            True - transaction will be sent as authCapture and automatically captured. <br />
            False - transaction will be sent as auth and only authorized. NOT CAPTURED. <br />
            If you don't have any value in the capture_now parameter, at the moment of the call the value will be set as TRUE. 
          default: true
        card_encryption_key_alias:
          type: string
          description: Public key alias
    plcc_mode:
      type: string
      description: |-
        - `CARD_CAPTURE` - A checkout is created with intent to retrieve customer's card data. The checkout captures the card data of the shopper, encrypts it and returns it to the Merchant. The Merchant then uses the encrypted card data to perform 3DS and/or payments with it.<br /> Following fields are not required: <br />  * amount <br />  * currency_code <br />  * receipt_type
        - `PAYMENT` - A checkout is created with the intent to perform a card payment. Verifone takes care of the full payment process and returns the final transaction response to the merchant, alongside any related details to it. Requires providing payment provider contract details. <br>
      enum:
        - CARD_CAPTURE
        - PAYMENT
    CreateCheckoutRequest:
      title: StandardRequest
      required:
      - amount
      - configurations
      - currency_code
      - entity_id
      type: object
      properties:
        entity_id:
          type: string
          description: Entity Id can be located on the organization level as Organization ID (Administration > Organizations > [Organization] > Organisation ID value)
          x-format:
            guid: true
        currency_code:
          type: string
          description: Currency code
          enum:
          - AED
          - AFN
          - ALL
          - AMD
          - ANG
          - AOA
          - ARS
          - AUD
          - AWG
          - AZN
          - BAM
          - BBD
          - BDT
          - BGN
          - BHD
          - BIF
          - BMD
          - BND
          - BOB
          - BOV
          - BRL
          - BSD
          - BTN
          - BWP
          - BYR
          - BZD
          - CAD
          - CDF
          - CHE
          - CHF
          - CHW
          - CLF
          - CLP
          - CNY
          - COP
          - COU
          - CRC
          - CUC
          - CVE
          - CZK
          - DJF
          - DKK
          - DOP
          - DZD
          - EGP
          - ERN
          - ETB
          - EUR
          - FJD
          - FKP
          - GBP
          - GEL
          - GHS
          - GIP
          - GMD
          - GNF
          - GTQ
          - GYD
          - HKD
          - HNL
          - HRK
          - HTG
          - HUF
          - IDR
          - ILS
          - INR
          - IQD
          - IRR
          - ISK
          - JMD
          - JOD
          - JPY
          - KES
          - KGS
          - KHR
          - KMF
          - KPW
          - KRW
          - KWD
          - KYD
          - KZT
          - LAK
          - LBP
          - LKR
          - LRD
          - LSL
          - LTL
          - LVL
          - LYD
          - MAD
          - MDL
          - MGA
          - MKD
          - MMK
          - MNT
          - MOP
          - MRO
          - MUR
          - MVR
          - MWK
          - MXN
          - MXV
          - MYR
          - MZN
          - NAD
          - NGN
          - NIO
          - NOK
          - NPR
          - NZD
          - OMR
          - PAB
          - PEN
          - PGK
          - PHP
          - PKR
          - PLN
          - PYG
          - QAR
          - RON
          - RSD
          - RUB
          - RWF
          - SAR
          - SBD
          - SCR
          - SDG
          - SEK
          - SGD
          - SHP
          - SLL
          - SOS
          - SRD
          - SSP
          - STD
          - SVC
          - SYP
          - SZL
          - THB
          - TJS
          - TMT
          - TND
          - TOP
          - TRY
          - TTD
          - TWD
          - TZS
          - UAH
          - UGX
          - USD
          - USN
          - USS
          - UYI
          - UYU
          - UZS
          - VEF
          - VND
          - VUV
          - WST
          - XAF
          - XAG
          - XAU
          - XBA
          - XBB
          - XBC
          - XBD
          - XCD
          - XDR
          - XOF
          - XPD
          - XPF
          - XPT
          - XTS
          - XXX
          - YER
          - ZAR
          - ZMK
          - ZMW
          - BTC
        amount:
          maximum: 9007199254740991
          minimum: 0
          type: integer
          description: Transaction amount - Transaction with zero amount value will
            be considered as account verification  and by default implicitly capture
            will be set to false for AV transaction
        customer:
          type: string
          x-format:
            guid: true
          description: <p>ID of a Customer created via the <a target='_blank' href="https://docs.verifone.com/api-reference/open-api-references/customer">Customer API</a>. A customer object can be created and attached to a Checkout. The customer object can store relevant customer details. Some of these details might be required, depending on the payment method and/or authentication mechanisms (e.g., 3DS) used in the Checkout</p>
        configurations:
          $ref: '#/components/schemas/PaymentConfigurations'
        expiry_time:
          type: string
          description: Expiry time of the Checkout page. Defaults to 15 min from creation time. If a user tries to visit or use an expired Checkout, an error will be shown. Maximum value is 30 days.
          format: date
        merchant_reference:
          maxLength: 50
          pattern: ^[^=+\-@].*
          type: string
          description: Reference provided by Merchant to identify the Checkout and
            the transaction initiated from it
        return_url:
          type: string
          description: URL belonging to the Merchant website, where the Customer would be redirected after the Checkout has been completed. If this parameter is used, the customer will be redirected after spending 10 seconds on the payment confirmation page provided by Verifone in case of HPP and PAYMENT LINK transactions. For IFRAME transaction the redirect is performed right after the checkout page without passing through the payment confirmation page.   <br /> <b>Note 1:</b> The return_url accepts only securely connected URLs i.e., via https protocol. <br /> <b>Note 2:</b> The time after which redirection happens can be customized using redirect_method.
          x-format:
            uri: true
        shop_url:
          type: string
          description: URL belonging to the Merchant website, where the Customer would be redirected in case of cancelled Checkout. <br /> <b>Note:</b> Only applicable to HPP or PAYMENT_LINK interaction type.
          x-format:
            uri: true
        i18n:
          $ref: '#/components/schemas/I18nConfiguration'
        interaction_type:
          type: string
          description: >-
            Type of checkout. Allows for distinguishing payments accepted
            via different channels. <br /> Possible Values: <br />  * HPP - For payments
            done as Hosted Payments Page integration.<br />  * IFRAME - For payments
            done as an Iframe integration.<br /> *
            PAYMENT_LINK - For payments done through the Payment link feature in the
            merchant portal.
          default: HPP
          enum:
          - HPP
          - IFRAME
          - PAYMENT_LINK
        notification_methods:
          $ref: '#/components/schemas/notification_methods'
        display_line_items:
          type: boolean
          description: Indicates whether line items should be displayed on the page.
            Defaults to true
          default: true
        line_items:
          description: >-
            List of shopping cart items to be displayed on the page.
             
            IMPORTANT: Please read the <a target="_blank" href="https://docs.verifone.com/online-payments/checkout/line-items">Line items</a> documentation for required parameters depending on your payment methods.
          title: Ecommerce basket line items
          type: array
          items:
            $ref: '#/components/schemas/LineItem'
        theme_id:
          type: string
          description: Parameter that was created within the create theme API call that applies the customizations upon the checkout interface. Read <a target="_blank" href="https://docs.verifone.com/online-payments/checkout/theming">Theming</a> for details.
          x-format:
            guid: true
        receipt_type:
          type: string
          description: 'Can be used to send different invoices to the customer. <br /> Possible Values: <br />  * INVOICE <br
            />  * FULL_RECEIPT <br />  * SIMPLE_RECEIPT <br />  * INVOICE_RECEIPT <br />'
          enum:
          - INVOICE
          - FULL_RECEIPT
          - SIMPLE_RECEIPT
          - INVOICE_RECEIPT
        sales_description:
          maxLength: 200
          type: string
          description: 'General description of the document'          
        sales_channel:
          type: string
          description: 'Channel used to process transactions.
           <br /> Possible Values: <br />  * ECOMMERCE <br/>  * MOTO <br />
           For sales_channel MOTO, no card.shopper_interaction is needed to be sent for this option.'
          enum:
          - ECOMMERCE
          - MOTO
        customer_details:
          $ref: '#/components/schemas/customer_details' 
        purchase_order_number:
          type: string
          description: Reference number that facilitates card acceptor/corporation communication and record keeping.
        tax_indicator:
          type: string
          description: Flag that indicates whether an order is taxable.
          enum:
            - TAX_NOT_PROVIDED
            - TAX_PROVIDED
            - NON_TAXABLE
        tax_amount:
          type: number
          description: Total tax amount for all the items offers.
        promo_code:
          type: string
          description: A code defined by the merchant that affects the calculation of the total amount.
        invoice_number:
          maxLength: 127
          type: string
          description: The invoice number to track this payment. <br /> <b>Note:</b> Valid for card payments only.
        transaction_type:
          type: string
          description: this field is only applicable for virtual terminal. Supported value for this field is UNMATCHED_REFUND.
        allow_customer_inputs: 
          type: boolean
          default: false
          description: Allows customer to enter or update their billing/shipping information on the hosted payments page.Only applicable for HPP and PAYMENT_LINK interaction types.
        checkout_template_id:
          type: string
          description: | 
            Checkout template UUID  
            **WARNING**: Only active template allowed.
          x-format:
            guid: true
        redirect_method:
          type: string
          enum:
            - DEFAULT
            - HEADER_REDIRECT
          description: |-
            Configures the redirect behaviour for return_url on successful payment when interaction type is either HPP or PAYMENT_LINK </br>
                 * DEFAULT: The customer will be redirected after spending 10 seconds on the payment confirmation page provided by Verifone. </br>
                 * HEADER_REDIRECT: The payment confirmation page is skipped and the customer is redirected immediately. <br /> 
                <b>Note:</b> This parameter does not have any effect when interaction type is IFRAME. 
        handle_order_confirmation:
          type: boolean
          description: >-
            This change will remove the payment confirmation page from the user interface. Payment actions will now be managed through postMessage events.<br />
            Checkout Events: <br />
            * CHECKOUT_RENDERED: Indicates successful iFrame loading. <br />
            * CHECKOUT_RENDERED_FAILED: Signals iFrame loading failure. <br />
            * CARD_DETAILS_ENTERED: Triggered after the cardholder inputs card details. <br />
            * CHECKOUT_FAILED: Occurs when the checkout process encounters an error. <br />
            Payment Action listerer events: <br />
            * CONTINUE: Initiates the payment process. <br />
            **Note:** This parameter has no effect when the interaction type is HPP or PAYMENT_LINK.
          default: false
        show_confirmation_page:
          type: boolean
          description: >-
            This change will remove the payment confirmation page from the user interface. Payment actions will now be managed through postMessage events.<br />
            Checkout Events: <br />
            * CARD_CAPTURE_SUCCESS: Indicates successful card capture. <br />
            * CHECKOUT_COMPLETED: Signals successful completion of the checkout process. <br />
            * CHECKOUT_FAILED: Occurs when the checkout process encounters an error. <br />
            **Note:** This parameter has no effect when the interaction type is HPP or PAYMENT_LINK.
          default: true    
        promo_financing_details:
          $ref: '#/components/schemas/promo_financing_details'
      example:
        entity_id: "a6b45428-0296-4394-8ddd-0b50b5b20aa9"
        currency_code: "USD"
        amount: 1000
        merchant_reference: "ORDER-12345"
        return_url: "https://merchant.example.com/order/success"
        interaction_type: "HPP"
        receipt_type: "FULL_RECEIPT"
        configurations:
          card:
            mode: "PAYMENT"
            payment_contract_id: "e3d4f5a6-b7c8-9d0e-1f2a-3b4c5d6e7f8a"
            capture_now: true
            threed_secure:
              enabled: true
              threeds_contract_id: "c1d2e3f4-a5b6-7c8d-9e0f-1a2b3c4d5e6f"
        customer_details:
          entity_id: "a6b45428-0296-4394-8ddd-0b50b5b20aa9"
          email_address: "shopper@example.com"
          billing:
            first_name: "Jane"
            last_name: "Doe"
            address_1: "123 Main Street"
            city: "New York"
            state: "NY"
            postal_code: "10001"
            country_code: "US"
        line_items:
          - name: "Widget Pro"
            quantity: 2
            unit_price: 499
            total_amount: 998
            sku: "WGT-PRO-001"

    CreateCheckoutResponse:
      required:
      - id
      type: object
      properties:
        id:
          type: string
          description: Checkout ID
          x-format:
            guid: true
        url:
          type: string
          description: URL of the Checkout
          x-format:
            uri: true
      example:
        id: "f8e7d6c5-b4a3-2f1e-0d9c-8b7a6e5f4d3c"
        url: "https://emea.gsc.verifone.cloud/pay/f8e7d6c5-b4a3-2f1e-0d9c-8b7a6e5f4d3c"

    RefundPreviewResponse:
      required:
      - id
      type: object
      properties:
        id:
          type: string
          description: Refund preview ID
          x-format:
            guid: true
        url:
          type: string
          description: URL of the Refund preview
          x-format:
            uri: true

    UploadImageRequest:
      required:
      - image
      - entity_id
      type: object
      properties:
        image:
          type: string
          description: 'Image file, 500kb max, supported types: png,jpg.'
          x-meta:
            swaggerType: file
        entity_id:
          type: string
          description: Entity Id can be located on the organization level as Organization ID (Administration > Organizations > [Organization] > Organisation ID value)
          x-format:
            guid: true
    UploadImageResponse:
      required:
      - created_at
      - entity_id
      - id
      type: object
      properties:
        id:
          type: string
          description: Image ID
          x-format:
            guid: true
        checksum:
          type: number
          description: Image checksum
        created_at:
          type: string
          description: Image uploaded time
          format: date-time
        entity_id:
          type: string
          description: Entity Id can be located on the organization level as Organization ID (Administration > Organizations > [Organization] > Organisation ID value)
          x-format:
            guid: true
    CreateThemeRequest:
      required:
      - name
      type: object
      properties:
        name:
          maxLength: 255
          type: string
        logo:
          type: string
          description: Uploaded image Id
          x-format:
            guid: true
        entity_id:
          type: string
          description: Entity Id can be located on the organization level as Organization ID (Administration > Organizations > [Organization] > Organisation ID value)
          x-format:
            guid: true
        base_font_family:
          type: string
          description: base fonts available for theme
          enum:
          - Roboto
          - Open Sans
          - Lato
          - Slabo
          - Oswald
          - Source Sans Pro
          - Montserrat
          - Raleway
          - PT Sans
          - Lora
          - Noto Sans
          - Noto Serif
          - Nunito Sans
          - Concert One
          - Prompt
          - Work Sans
        text_color:
          type: string
          description: 6 digit hex code, e.g. <code>ffe0e0</code>
          x-constraint:
            length: 6
          x-format:
            hex:
              byteAligned: false
        heading_color:
          type: string
          description: 6 digit hex code, e.g. <code>ffe0e0</code>
          x-constraint:
            length: 6
          x-format:
            hex:
              byteAligned: false
        background_color:
          type: string
          description: 6 digit hex code, e.g. <code>ffe0e0</code>
          x-constraint:
            length: 6
          x-format:
            hex:
              byteAligned: false
        panel_background_color:
          type: string
          description: 6 digit hex code, e.g. <code>ffe0e0</code>
          x-constraint:
            length: 6
          x-format:
            hex:
              byteAligned: false
        primary_color:
          type: string
          description: 6 digit hex code, e.g. <code>ffe0e0</code>
          x-constraint:
            length: 6
          x-format:
            hex:
              byteAligned: false
        primary_color_inverse:
          type: string
          description: 6 digit hex code, e.g. <code>ffe0e0</code>
          x-constraint:
            length: 6
          x-format:
            hex:
              byteAligned: false
        primary_color_disabled:
          type: string
          description: 6 digit hex code, e.g. <code>ffe0e0</code>
          x-constraint:
            length: 6
          x-format:
            hex:
              byteAligned: false
        primary_color_inverse_disabled:
          type: string
          description: 6 digit hex code, e.g. <code>ffe0e0</code>
          x-constraint:
            length: 6
          x-format:
            hex:
              byteAligned: false
        error_color:
          type: string
          description: 6 digit hex code, e.g. <code>ffe0e0</code>
          x-constraint:
            length: 6
          x-format:
            hex:
              byteAligned: false
        error_color_inverse:
          type: string
          description: 6 digit hex code, e.g. <code>ffe0e0</code>
          x-constraint:
            length: 6
          x-format:
            hex:
              byteAligned: false
        input_border_radius:
          type: number
        input_border_width:
          type: number
        hide_verifone_seal:
          type: boolean
          default: false
          description: Show/Hide verifone seal on the checkout page
        config:
          $ref: '#/components/schemas/config'  
      description: Theme parameters
    PreviewThemeRequest:
      type: object
      properties:
        name:
          maxLength: 255
          type: string
        theme_id:
          type: string
          description: Parameter that was created within the create theme API call that applies the customizations upon the checkout interface. Read <a target="_blank" href="https://docs.verifone.com/online-payments/checkout/theming">Theming</a> for details.
          x-format:
            guid: true
        logo:
          type: string
          description: Uploaded image id
          x-format:
            guid: true
        base_font_family:
          type: string
          description: base fonts available for theme
          enum:
            - Roboto
            - Open Sans
            - Lato
            - Slabo
            - Oswald
            - Source Sans Pro
            - Montserrat
            - Raleway
            - PT Sans
            - Lora
            - Noto Sans
            - Noto Serif
            - Nunito Sans
            - Concert One
            - Prompt
            - Work Sans
        text_color:
          type: string
          description: 6 digit hex code, e.g. <code>ffe0e0</code>
          x-constraint:
            length: 6
          x-format:
            hex:
              byteAligned: false
        heading_color:
          type: string
          description: 6 digit hex code, e.g. <code>ffe0e0</code>
          x-constraint:
            length: 6
          x-format:
            hex:
              byteAligned: false
        background_color:
          type: string
          description: 6 digit hex code, e.g. <code>ffe0e0</code>
          x-constraint:
            length: 6
          x-format:
            hex:
              byteAligned: false
        panel_background_color:
          type: string
          description: 6 digit hex code, e.g. <code>ffe0e0</code>
          x-constraint:
            length: 6
          x-format:
            hex:
              byteAligned: false
        primary_color:
          type: string
          description: 6 digit hex code, e.g. <code>ffe0e0</code>
          x-constraint:
            length: 6
          x-format:
            hex:
              byteAligned: false
        primary_color_inverse:
          type: string
          description: 6 digit hex code, e.g. <code>ffe0e0</code>
          x-constraint:
            length: 6
          x-format:
            hex:
              byteAligned: false
        primary_color_disabled:
          type: string
          description: 6 digit hex code, e.g. <code>ffe0e0</code>
          x-constraint:
            length: 6
          x-format:
            hex:
              byteAligned: false
        primary_color_inverse_disabled:
          type: string
          description: 6 digit hex code, e.g. <code>ffe0e0</code>
          x-constraint:
            length: 6
          x-format:
            hex:
              byteAligned: false
        error_color:
          type: string
          description: 6 digit hex code, e.g. <code>ffe0e0</code>
          x-constraint:
            length: 6
          x-format:
            hex:
              byteAligned: false
        error_color_inverse:
          type: string
          description: 6 digit hex code, e.g. <code>ffe0e0</code>
          x-constraint:
            length: 6
          x-format:
            hex:
              byteAligned: false
        input_border_radius:
          type: number
        input_border_width:
          type: number
        hide_verifone_seal:
          type: boolean
          default: false
          description: Show/Hide verifone seal on the checkout page
        response_image_size:
          $ref: '#/components/schemas/ImageSize'
      description: Preview theme parameters
    CheckoutResponse:
      required:
      - id
      type: object
      properties:
        id:
          type: string
          description: Checkout ID
          x-format:
            guid: true
        url:
          type: string
          description: URL of the Checkout
          x-format:
            uri: true
    CardDetailsRequest:
      required:
      - encrypted_card
      - public_key_alias
      - return_url
      type: object
      properties:
        encrypted_card:
          maxLength: 4096
          type: string
          description: Encrypted card details
        public_key_alias:
          type: string
          description: Public key alias
        return_url:
          type: string
          description: URL belonging to the Merchant website, where the Customer would be redirected after the Checkout has been completed. If this parameter is used, the customer will be redirected after spending 10 seconds on the payment confirmation page provided by Verifone in case of HPP and PAYMENT LINK transactions. For IFRAME transaction the redirect is performed right after the checkout page without passing through the payment confirmation page.   <br /> <b>Note 1:</b> The return_url accepts only securely connected URLs i.e., via https protocol. <br /> <b>Note 2:</b> The time after which redirection happens can be customized using redirect_method.
          x-format:
            uri: true
    UpdateThemeRequest:
      required:
        - name
      type: object
      properties:
        name:
          maxLength: 255
          type: string
        logo:
          type: string
          description: Uploaded image Id
          x-format:
            guid: true
        entity_id:
          type: string
          description: Entity Id can be located on the organization level as Organization ID (Administration > Organizations > [Organization] > Organisation ID value)
          x-format:
            guid: true
        base_font_family:
          type: string
          description: base fonts available for theme
          enum:
            - Roboto
            - Open Sans
            - Lato
            - Slabo
            - Oswald
            - Source Sans Pro
            - Montserrat
            - Raleway
            - PT Sans
            - Lora
            - Noto Sans
            - Noto Serif
            - Nunito Sans
            - Concert One
            - Prompt
            - Work Sans
        text_color:
          type: string
          description: '6 digit hex code, e.g. <code>ffe0e0</code>'
          x-constraint:
            length: 6
          x-format:
            hex:
              byteAligned: false
        heading_color:
          type: string
          description: '6 digit hex code, e.g. <code>ffe0e0</code>'
          x-constraint:
            length: 6
          x-format:
            hex:
              byteAligned: false
        background_color:
          type: string
          description: '6 digit hex code, e.g. <code>ffe0e0</code>'
          x-constraint:
            length: 6
          x-format:
            hex:
              byteAligned: false
        panel_background_color:
          type: string
          description: '6 digit hex code, e.g. <code>ffe0e0</code>'
          x-constraint:
            length: 6
          x-format:
            hex:
              byteAligned: false
        primary_color:
          type: string
          description: '6 digit hex code, e.g. <code>ffe0e0</code>'
          x-constraint:
            length: 6
          x-format:
            hex:
              byteAligned: false
        primary_color_inverse:
          type: string
          description: '6 digit hex code, e.g. <code>ffe0e0</code>'
          x-constraint:
            length: 6
          x-format:
            hex:
              byteAligned: false
        primary_color_disabled:
          type: string
          description: '6 digit hex code, e.g. <code>ffe0e0</code>'
          x-constraint:
            length: 6
          x-format:
            hex:
              byteAligned: false
        primary_color_inverse_disabled:
          type: string
          description: '6 digit hex code, e.g. <code>ffe0e0</code>'
          x-constraint:
            length: 6
          x-format:
            hex:
              byteAligned: false
        error_color:
          type: string
          description: '6 digit hex code, e.g. <code>ffe0e0</code>'
          x-constraint:
            length: 6
          x-format:
            hex:
              byteAligned: false
        error_color_inverse:
          type: string
          description: '6 digit hex code, e.g. <code>ffe0e0</code>'
          x-constraint:
            length: 6
          x-format:
            hex:
              byteAligned: false
        input_border_radius:
          type: number
        input_border_width:
          type: number
        hide_verifone_seal:
          type: boolean
          description: Show/Hide verifone seal on the checkout page
        config:
          $ref: '#/components/schemas/config'  
      description: Theme parameters
    UpdateCheckoutRequest:
      required:
      - expiry_time
      type: object
      properties:
        expiry_time:
          type: string
          description: Expiry time of the Checkout page. Defaults to 15 min from creation time. If a user tries to visit or use an expired Checkout, an error will be shown. Maximum value is 30 days.
          format: date
    NotificationRequest:
      type: object
      properties:
        notification_methods:
          $ref: '#/components/schemas/notification_methods'
    ThemePreviewResponse:
      required:
        - image
      type: object
      properties:
        image:
          type: string
          description: Previewed image converted to base64 (image type is .png)
        response_image_size:
          $ref: '#/components/schemas/ImageSize'
    config:
      type: object
      properties:
        is_default:
          type: boolean
          default: false
          description: Specifies whether the theme is the default theme for the entity. Only one default theme allowed per Entity/Organization.      
    ImageSize:
      type: object
      properties:
        width:
          type: string
          description: Response image width in pixels
        height:
          type: string
          description: Response image height in pixels
    ImageBuffer:
      type: object
      properties:
        type:
          type: string
          description: Type of image response
        data:
          type: array
          items: {}
          description: Response image buffer array
    FraudProtectionData:
      type: object
      properties:
        fraud_protection_token:
          type: string
        client_side_parameters:
          type: object
          properties:
            org_id:
              type: string
            web_session_id:
              type: string
    CardCaptureRequest:
      title: CardCaptureRequest
      required:
      - configurations
      - entity_id
      type: object
      properties:
        entity_id:
          type: string
          description: Entity Id can be located on the organization level as Organization ID (Administration > Organizations > [Organization] > Organisation ID value)
          x-format:
            guid: true
        customer:
          type: string
          x-format:
            guid: true
          description: <p>ID of a Customer created via the <a target='_blank' href="https://docs.verifone.com/api-reference/open-api-references/customer">Customer API</a>. A customer object can be created and attached to a Checkout. The customer object can store relevant customer details. Some of these details might be required, depending on the payment method and/or authentication mechanisms (e.g., 3DS) used in the Checkout</p>
        configurations:
          type: object
          properties:
            card:
              type: object
              properties:
                mode:
                  type: string
                  enum:
                    - CARD_CAPTURE
                card_capture_mode:
                  $ref: '#/components/schemas/card_capture_mode'
                cvv_required:
                  type: boolean
                  description: Indicates whether cvv is required
                  default: false
                input_overrides:
                  anyOf:
                    - $ref: '#/x-alt-definitions/input_overrides'
                    - $ref: '#/x-alt-definitions/Model2'
              description: Card payment configuration
        expiry_time:
          type: string
          description: Expiry time of the Checkout page. Defaults to 15 min from creation time. If a user tries to visit or use an expired Checkout, an error will be shown. Maximum value is 30 days.
          format: date
        merchant_reference:
          maxLength: 50
          pattern: ^[^=+\-@].*
          type: string
          description: Reference provided by Merchant to identify the Checkout and
            the transaction initiated from it
        return_url:
          type: string
          description: URL belonging to the Merchant website, where the Customer would be redirected after the Checkout has been completed. If this parameter is used, the customer will be redirected after spending 10 seconds on the payment confirmation page provided by Verifone in case of HPP and PAYMENT LINK transactions. For IFRAME transaction the redirect is performed right after the checkout page without passing through the payment confirmation page.   <br /> <b>Note 1:</b> The return_url accepts only securely connected URLs i.e., via https protocol. <br /> <b>Note 2:</b> The time after which redirection happens can be customized using redirect_method.
          x-format:
            uri: true
        shop_url:
          type: string
          description: URL belonging to the Merchant website, where the Customer would be redirected in case of cancelled Checkout. <br /> <b>Note:</b> Only applicable to HPP or PAYMENT_LINK interaction type.
          x-format:
            uri: true
        i18n:
          $ref: '#/components/schemas/I18nConfiguration'
        interaction_type:
          type: string
          description: >-
            Type of checkout. Allows for distinguishing payments accepted
            via different channels. <br /> Possible Values: <br />  * HPP - For payments
            done as Hosted Payments Page integration.<br />  * IFRAME - For payments
            done as an Iframe integration.<br /> *
            PAYMENT_LINK - For payments done through the Payment link feature in the
            merchant portal.
          default: HPP
          enum:
          - HPP
          - IFRAME
          - PAYMENT_LINK
        notification_methods:
          $ref: '#/components/schemas/notification_methods'
        theme_id:
          type: string
          description: Parameter that was created within the create theme API call that applies the customizations upon the checkout interface. Read <a target="_blank" href="https://docs.verifone.com/online-payments/checkout/theming">Theming</a> for details.
          x-format:
            guid: true
        sales_channel:
          type: string
          description: 'Channel used to process transactions. <br /> Possible Values: <br />  * ECOMMERCE <br/>  * MOTO <br />
                    For sales_channel MOTO, no card.shopper_interaction is needed to be sent for this option.'
          enum:
          - ECOMMERCE
          - MOTO
        redirect_method:
          type: string
          enum:
            - DEFAULT
            - HEADER_REDIRECT
          description: |-
            Configures the redirect behaviour for return_url on successful payment when interaction type is either HPP or PAYMENT_LINK </br>
                 * DEFAULT: The customer will be redirected after spending 10 seconds on the payment confirmation page provided by Verifone. </br>
                 * HEADER_REDIRECT: The payment confirmation page is skipped and the customer is redirected immediately. <br /> 
                <b>Note:</b> This parameter does not have any effect when interaction type is IFRAME.
    CheckoutTemplate:
      title: CreateTemplateRequest
      required:
      - name
      type: object
      properties:
        name:
          maxLength: 255
          type: string
        entity_id:
          type: string
          description: Entity Id can be located on the organization level as Organization ID (Administration > Organizations > [Organization] > Organisation ID value)
          x-format:
            guid: true
        billing_is_same_as_shipping:
          type: boolean
          default: true
          description: Indicates whether billing address is same as shipping address or not.
        shipping_first_billing_second:
          type: boolean
          default: false
          description: Indicates the order of addresses in which the merchant wants to collect the information from the customer.
        field_settings:
          type: object
          properties:
            billing:
              $ref: '#/components/schemas/address_details'
            company_name:
              $ref: '#/components/schemas/template_field_mode'
            company_registration_number:
              $ref: '#/components/schemas/template_field_mode'
            email_address:
              $ref: '#/components/schemas/template_field_mode'
            entity_id:
              $ref: '#/components/schemas/template_field_mode'
            phone_number:
              $ref: '#/components/schemas/template_field_mode'
            shipping:
              $ref: '#/components/schemas/address_details'
            title:
              $ref: '#/components/schemas/template_field_mode'
            work_phone:
              $ref: '#/components/schemas/template_field_mode'
            tax:
              type: object
              properties: 
                identifier:
                  $ref: '#/components/schemas/template_field_mode'
    TemplateCountResponse:
      type: object
      properties:
        count:
          type: number
          description: Count
    TemplateList:
      type: array
      items:
        $ref: '#/components/schemas/CheckoutTemplate'
    mobile_pay_card:
      required:
        - sca_compliance_level
        - threed_secure
      type: object
      properties:
        sca_compliance_level:
          type: string
          description: >-
            Strong Customer Authentication (SCA) compliance level, possible
            values </br>
                 * NONE: No SCA required. </br>
                 * WALLET: Depend on the wallet SCA mechanism. For Google Pay this means that MasterCard will shift liability, Visa will not. </br>
                 * FORCE_3DS: Do an additional 3DS step regardless of whether the wallet indicates the token is SCA-compliant.
          enum:
            - NONE
            - WALLET
            - FORCE_3DS
        threed_secure:
          $ref: '#/components/schemas/ThreeDSData'
        authorization_type:
          type: string
          description: >-
            Card Authorization Type (PRE_AUTH, FINAL_AUTH).  When capture now is
            set to true pre-authorization transactions cannot be done.
          default: FINAL_AUTH
  securitySchemes:
    BasicAuth:
      type: http
      scheme: basic
      description: HTTP Basic authentication using entity credentials (username:password encoded in Base64).
    BearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: OAuth 2.0 Bearer token obtained via the OIDC authentication endpoint.
x-tagGroups:
  - name: Payments
    tags:
      - Checkout
  - name: Customisation
    tags:
      - Theming
      - Templating
  - name: Reference
    tags:
      - Error codes

x-alt-definitions:
  paymentContractIdDef:
    type: object
    properties:
      AMEX:
        type: string
        description: Payment Contract to be used for AMEX card payments
        x-format:
          guid: true
      CB:
        type: string
        description: Payment Contract to be used for CB card payments
        x-format:
          guid: true
      DINERS:
        type: string
        description: Payment Contract to be used for DINERS card payments
        x-format:
          guid: true
      DISCOVER:
        type: string
        description: Payment Contract to be used for DISCOVER card payments
        x-format:
          guid: true
      ELECTRON:
        type: string
        description: Payment Contract to be used for ELECTRON card payments
        x-format:
          guid: true
      JCB:
        type: string
        description: Payment Contract to be used for JCB card payments
        x-format:
          guid: true
      MAESTRO:
        type: string
        description: Payment Contract to be used for MAESTRO card payments
        x-format:
          guid: true
      MASTERCARD:
        type: string
        description: Payment Contract to be used for MASTERCARD card payments
        x-format:
          guid: true
      UPI:
        type: string
        description: Payment Contract to be used for UPI card payments
        x-format:
          guid: true
      VISA:
        type: string
        description: Payment Contract to be used for VISA card payments
        x-format:
          guid: true
      VPAY:
        type: string
        description: Payment Contract to be used for VPAY card payments
        x-format:
          guid: true
      ISRAEL_PRIVATE_LABEL:
        type: string
        description: Payment Contract to be used for ISRAEL_PRIVATE_LABEL card payments
        x-format:
          guid: true
      ISRACARD:
        type: string
        description: Payment Contract to be used for ISRACARD payments
        x-format:
          guid: true
      Q_CARD:
        type: string
        description: Payment Contract to be used for QCARD card payments
        x-format:
          guid: true
      CARNET:
        type: string
        description: Payment Contract to be used for CARNET card payments
        x-format:
          guid: true
  threedSecureDef:
    type: object
    description: Used for <a target="_blank" href="https://docs.verifone.com/online-payments/checkout/accepting-payments/3d-secure-payments">3D-Secure payments</a>
    properties:
      accountAgeIndicator:
        type: string
        description: 'Length of time cardholder has had account. <br /> Possible Values:
          <br />  * 01 - No account <br />  * 02 - Created during transaction <br
          />  * 03 - Less than 30 days <br />  * 04 - 30-60 days <br />  * 05 - More
          than 60 days <br />'
        enum:
        - "01"
        - "02"
        - "03"
        - "04"
        - "05"
      accountCreateDate:
        type: string
        format: date
        description: 'Date the cardholder opened the account. `Format: YYYYMMDD`'
      accountChangeIndicator:
        type: string
        description: 'Length of time since the last change to the cardholder account.
          This includes shipping address, <br /> new payment account or new user added.
          Possible Values: <br /> * 01 - Changed during transaction <br /> * 02 -
          Less than 30 days <br /> * 03 - 30-60 days <br /> * 04 - More than 60 days
          <br />'
        enum:
        - "01"
        - "02"
        - "03"
        - "04"
      accountChangeDate:
        type: string
        format: date
        description: "Date the cardholder's account was last changed. This includes
          changes to the billing or shipping address, new payment accounts or new
          users added.` Format: YYYYMMDD` <br />"
      accountPwdChangeIndicator:
        type: string
        description: 'Length of time since the cardholder changed or reset the password
          on the account. <br />  Possible Values: <br />  * 01 - No change <br />  *
          02 - Changed during transaction <br />  * 03 - Less than 30 days <br />  *
          04 - 30-60 days <br />  * 05 - More than 60 days <br />'
        enum:
        - "01"
        - "02"
        - "03"
        - "04"
        - "05"
      accountPwdChangeDate:
        type: string
        format: date
        description: 'Date the cardholder last changed or reset password on account.
          `Format: YYYYMMDD`'
      accountId:
        type: string
        description: Additional cardholder account information.
        maxLength: 64
      accountPurchases:
        type: integer
        description: Number of purchases with this cardholder account during the previous
          six months.
        maximum: 9999
      acsWindowSize:
        type: string
        description: 'An override field that a merchant can pass in to set the challenge
          window size to display to the end <br /> cardholder.The ACS will reply with
          content that is formatted appropriately to this window size to allow <br
          /> for the best user experience. The sizes are width x height in pixels
          of the window displayed in <br /> the cardholder browser window. Possible
          values: <br />  * 01 - 250x400 <br />  * 02 - 390x400 <br />  * 03 - 500x600
          <br />  * 04 - 600x400 <br />  * 05 - Full page <br />'
        enum:
        - "01"
        - "02"
        - "03"
        - "04"
        - "05"
      addCardAttempts:
        type: integer
        description: Number of add card attempts in the last 24 hours.
        maximum: 999
      addressMatch:
        type: string
        description: 'Indicates whether cardholder billing and shipping addresses
          match. <br /> Possible Values: <br />  * Y - Shipping address matches billing
          address <br />  * N - Shipping address does not match billing address <br
          />'
        enum:
        - Y
        - N
      alternateAuthenticationMethod:
        type: string
        description: 'Mechanism used by the cardholder to authenticate to the 3DS
          requester. <br />  Possible Values: <br />  * 01 - No authentication occurred
          (e.g. Guest Checkout) <br />  * 02 - Login to the cardholder account at
          the Merchant system using Merchant system credentials <br />  * 03 - Login
          to the cardholder account at the Merchant system using a Federated ID <br
          />  * 04 - Login to the cardholder account at the Merchant system using
          Issuer credentials <br />  * 05 - Login to the cardholder account at the
          Merchant system using third-party authentication <br />  * 06 - Login to
          the cardholder account at the Merchant system using FIDO Authenticator <br
          />'
        enum:
        - "01"
        - "02"
        - "03"
        - "04"
        - "05"
        - "06"
      alternateAuthenticationDate:
        type: string
        format: date
        description: 'Date and time in UTC of the cardholder authentication. ` Format:
          YYYYMMDDHHMM`'
      alternateAuthenticationData:
        type: string
        description: Data that documents and supports a specific authentication <br
          /> process that was sent in the AlternateAuthenticationMethod field. <br
          />
        maxLength: 2048
      threeDSContractId:
        type: string
        description: The ID of the threeDSContract used.
        maxLength: 36
        x-format:
          guid: true
      authenticationIndicator:
        type: string
        description: Indicates the type of Authentication request. 01 - Payment transaction
          <br />  02 - Recurring transaction  <br />  03 - Installment transaction  <br
          />  04 - Add card  <br />  05 - Maintain card  <br />  06 - Cardholder verification
          as part of EMV token ID&V <br />
        enum:
        - "01"
        - "02"
        - "03"
        - "04"
        - "05"
        - "06"
      categoryCode:
        type: integer
        description: 'Merchant category code (MCC) NOTE: This field is required by
          Mastercard and VISA Brazil extensions. <br />'
        maximum: 9999
      challengeIndicator:
        type: string
        description: 'NOTE: This is a 2.0 required field, Cardinal will default to
          01 on Merchant Configuration <br /> - can be overridden by the merchant.
          Possible Values: <br /> * 01 - No preference <br /> * 02 - No challenge
          requested <br /> * 03 - Challenge requested (3DS Requestor Preference)  <br />
          * 04 - Challenge requested (Mandate) <br />
            * 05 - No challenge requested (transactional risk analysis is already performed) <br />
            * 06 - No challenge requested (Data share only) <br />
            * 07 - No challenge requested (strong consumer authentication is already performed) <br />
            * 08 - No challenge requested (utilise whitelist exemption if no challenge required) <br />
            * 09 - Challenge requested (whitelist prompt requested if challenge required) <br />
            * 90 - CB specific
            value <br />'
        default: "01"
        enum:
        - "01"
        - "02"
        - "03"
        - "04"
        - "05"
        - "06"
        - "07"
        - "08"
        - "09"
        - "90"
      deliveryEmail:
        type: string
        description: For electronic delivery, email address to which the merchandise
          was delivered.
        maxLength: 255
        x-format:
          email:
            minDomainSegments: 2
      deliveryTimeFrame:
        type: string
        description: 'Indicates the delivery timeframe.  <br /> Possible Values: <br
          />  * 01 - Electronic delivery <br />  * 02 - Same day shipping <br />  *
          03 - Overnight shipping <br />  * 04 - Two or more day shipping <br />'
        enum:
        - "01"
        - "02"
        - "03"
        - "04"
      enabled:
        type: boolean
        description: Whether 3DS should be used.
        default: true
        enum:
        - true
      fraudActivity:
        type: string
        description: 'Indicates whether the merchant experienced suspicious activity
          (including previous fraud) on the account. <br /> Possible Values: <br />  *
          01 - No suspicious activity <br />  * 02 - Suspicious activity observed
          <br />'
        enum:
        - "01"
        - "02"
      giftCardAmount:
        type: integer
        description: 'The purchase amount total for prepaid gift cards in major units.
          <br /> Example: $123.45 USD = 12345 <br />'
        maximum: 999999999999999
      giftCardCurrencyCode:
        type: string
        description: ISO 4217 currency code for the gift card purchased.
        minLength: 3
        maxLength: 3
      giftCardCount:
        type: integer
        description: Total count of individual prepaid gift cards purchased.
        maximum: 99
      installment:
        type: number
        description: Indicates the maximum number of authorizations for installment
          payments. An integer value greater than 1 indicating the maximum number
          of permitted authorizations for installment payments. ** Required for Recurring
          and Installment transactions, when authenticationIndicator="02" & "03" **
        minimum: 2
        maximum: 999
      messageCategory:
        type: string
        description: 'Category of the message for a specific use case. <br />  Possible
          Values: <br />  * 01 - PA (payment) <br />  * 02 - NPA (non payment) <br
          />  NOTE: Default is payment (01). Configured on Merchant account, or can
          be overridden on transaction. <br />'
        enum:
        - "01"
        - "02"
      paymentUseCase:
        type: string
        description: 'Indicates the type of payment.The value from this field will
          be mapped to the data field on the CB-USECASE extension <br />  Possible
          Values: <br />  * 01 - Single Payment <br />  * 02 - Fixed Amount and Term
          Subscription <br />  * 03 - Payment By Instalments <br />  * 04 - Payment
          By Shipment <br />  * 05 - Other Recurring Payments <br />  NOTE: Required
          for CB transactions (Required if message_category = 01, or message_category
          = 02 and authentication_indicator = 02 or 03 <br />'
        default: "01"
        enum:
        - "01"
        - "02"
        - "03"
        - "04"
        - "05"
      paymentAccountIndicator:
        type: string
        description: 'Indicates the length of time that the payment account was enrolled
          in the merchant account. <br /> Possible Values: <br />  * 01 - No account
          (guest checkout) <br />  * 02 - During the transaction <br />  * 03 - Less
          than 30 days <br />  * 04 - 30-60 days <br />  * 05 - More than 60 days
          <br />'
        enum:
        - "01"
        - "02"
        - "03"
        - "04"
        - "05"
      paymentAccountAge:
        type: string
        format: date
        description: 'Date the payment account was added to the cardholder account.
          ` Format: YYYYMMDD`'
      preOrderIndicator:
        type: string
        description: 'Indicates whether cardholder is placing an order with a future
          availability or release date. <br />  Possible Values: <br />  * 01 - Merchandise
          available <br />  * 02 - Future availability <br />'
        enum:
        - "01"
        - "02"
      preOrderDate:
        type: string
        format: date
        description: 'Expected date that a pre-ordered purchase will be available.
          `Format: YYYYMMDD`'
      priorAuthenticationData:
        type: string
        description: This field carry data that the ACS can use to verify the authentication
          process
        maxLength: 2048
      priorAuthenticationMethod:
        type: string
        description: Mechanism used by the Cardholder to previously authenticate to
          the 3DS Requestor. <br />  * 01 - Frictionless authentication occurred by
          ACS <br />  * 02 - Cardholder challenge occurred by ACS <br />  * 03 - AVS
          verified <br />  * 04 - Other issuer methods <br />
        enum:
        - "01"
        - "02"
        - "03"
        - "04"
      priorAuthenticationTime:
        type: string
        format: date
        description: 'Date and time in UTC of the prior cardholder authentication.
          ` Format: YYYYMMDDHHMM`'
      priorAuthenticationRef:
        type: string
        description: This data element contains a ACS Transaction ID for a prior authenticated
          transaction. <br /> For example, the first recurring transaction that was
          authenticated with the cardholder <br />
        maxLength: 36
      productCode:
        type: string
        description: 'Merchant product code.  <br /> Possible Values:  <br />  * PHY
          - Goods/Service Purchase  <br />  * CHA - Check Acceptance  <br />  * ACF
          - Account Funding  <br />  * QCT - Quasi-Cash Transaction  <br />  * PAL
          - Prepaid Activation and Load  <br /> NOTE: This value defaults to PHY.
          This field can be used to override that value if applicable.  <br />'
        enum:
        - PHY
        - CHA
        - ACF
        - QCT
        - PAL
      recurringEnd:
        type: string
        format: date
        description: 'The date after which no further recurring authorizations should
          be performed. `Format: YYYYMMDD` ** Required for Recurring and Installment
          transactions, when authenticationIndicator="02" & "03" **'
      recurringFrequency:
        type: number
        description: 'Conditional: Integer value indicating the minimum number of
          days between recurring authorizations. A frequency of monthly is indicated
          by the value 28. Multiple of 28 days will be used to indicate months. Example:
          6 months = 168 ** Required for Recurring and Installment transactions, when
          authenticationIndicator="02" & "03" **'
        maximum: 9999
      reorderIndicator:
        type: string
        description: 'Indicates whether cardholder is placing an order with a future
          availability or release date. <br />  Possible Values: <br />  * 01 - Merchandise
          available <br />  * 02 - Future availability <br />'
        enum:
        - "01"
        - "02"
      requestorId:
        type: string
        description: 'This value is a Directory Server assigned 3DS Requestor Name
          value, each DS may provide a unique ID. <br /> NOTE: This is a 2.0 value
          only and if passed will override the Requestor Name value that is, <br />
          configured on the Merchant''s profile.'
        maxLength: 35
      requestorName:
        type: string
        description: 'This value is a Directory Server assigned 3DS Requestor Name
          value, each DS may provide a unique ID. <br /> NOTE: This is a 2.0 value
          only and if passed will override the Requestor Name value that is configured
          <br /> on the Merchant''s profile.'
        maxLength: 40
      shippingAddressUsageIndicator:
        type: string
        description: 'Indicates when the shipping address used for transaction was
          first used. <br /> Possible Values: <br />  * 01 - This transaction <br
          />  * 02 - Less than 30 days <br />  * 03 - 30-60 days <br />  * 04 - More
          than 60 days <br />'
        enum:
        - "01"
        - "02"
        - "03"
        - "04"
      shippingAddressUsageDate:
        type: string
        format: date
        description: 'Date when the shipping address used for this transaction was
          first used. <br />  `Format: YYYYMMDD` <br />'
      shippingMethodIndicator:
        type: string
        description: 'Indicates shipping method chosen for the transaction. <br />  Possible
          Values:  <br />  * 01 - Ship to cardholder billing address <br />  * 02
          - Ship to another verified address on file with merchant <br />  * 03 -
          Ship to address that is different than billing address <br />  * 04 - Ship
          to store (store address should be populated on request) <br />  * 05 - Digital
          goods <br />  * 06 - Travel and event tickets, not shipped <br />  * 07
          - Other <br />'
        enum:
        - "01"
        - "02"
        - "03"
        - "04"
        - "05"
        - "06"
        - "07"
      shippingNameIndicator:
        type: string
        description: 'Indicates if the cardholder name on the account is identical
          to the <br /> shipping name used for the transaction. Possible Values: <br
          /> * 01 - Account and shipping name identical <br /> * 02 - Account and
          shipping name differ <br />'
        enum:
        - "01"
        - "02"
      totalItems:
        type: string
        description: Total items in the shopping cart of the shopper
        pattern: ^[0-9]{2}$
      merchantScore:
        type: string
        description: Merchant score
        maxLength: 20
        x-format:
          alphanum: true
      transactionCountDay:
        type: integer
        description: Number of transactions (successful or abandoned) for this cardholder
          account within the last 24 hours. <br />
        maximum: 999
      transactionCountYear:
        type: integer
        description: Number of transactions (successful or abandoned) for this cardholder
          account within the last year. <br />
        maximum: 999
      transactionMode:
        type: string
        description: 'Transaction mode identifier. Identifies the channel the transaction
          originates from. Available Options: <br /> M - Moto (Mail Order Telephone
          Order) <br /> P - Mobile Device <br /> R - Retail (Physical Store) <br />
          S - Computer Device <br /> T - Tablet Device <br />'
        enum:
        - M
        - P
        - R
        - S
        - T
      version:
        type: string
        description: This field contains the 3DS version that can be leveraged to
          force a transaction down the 1.0 rails.
        enum:
        - 1.0.2
        - 2.1.0
        - 2.2.0
        deprecated: true
      whiteListStatus:
        type: string
        description: Enables the communication of trusted beneficiary/whitelist status between the ACS, the DS and the 3DS Requestor.
        enum:
          - Y
          - N
      whiteListStatusSource:
        type: string
        description: This data element will be populated by the system setting Whitelist Status.
        enum:
          - 01
          - 02
          - 03
    required:
    - threeDSContractId
    - transactionMode
  card:
    type: object
    properties:
      scaComplianceLevel:
        type: string
        description: |-
          Strong Customer Authentication (SCA) compliance level, possible values </br>
               * NONE: No SCA required. </br>
               * WALLET: Depend on the wallet SCA mechanism. For Google Pay this means that MasterCard will shift liability, Visa will not. </br>
               * FORCE_3DS: Do an additional 3DS step regardless of whether the wallet indicates the token is SCA-compliant.
          enum:
          - NONE
          - WALLET
          - FORCE_3DS
      threedSecure:
        $ref: '#/x-alt-definitions/threedSecureDef'
      authorizationType:
        type: string
        description: Card Authorization Type (PRE_AUTH, FINAL_AUTH).  When capture
          now is set to true pre-authorization transactions cannot be done.
        default: FINAL_AUTH
      encryptedCard:
        type: string
        description: Encrypted card details
        maxLength: 4096
      cardEncryptionKeyAlias:
        type: string
        description: Public key alias
      returnUrl:
        type: string
        description: URL belonging to the Merchant website, where the Customer would
          be redirected after the Checkout has been completed.
        x-format:
          uri: true
    required:
    - scaComplianceLevel
    - threedSecure
  Model1:
    type: object
    properties:
      scaComplianceLevel:
        type: string
        description: |-
          Strong Customer Authentication (SCA) compliance level, possible values </br>
               * NONE: No SCA required. </br>
               * WALLET: Depend on the wallet SCA mechanism. For Google Pay this means that MasterCard will shift liability, Visa will not. </br>
               * FORCE_3DS: Do an additional 3DS step regardless of whether the wallet indicates the token is SCA-compliant.
          enum:
          - NONE
          - WALLET
          - FORCE_3DS
      authorizationType:
        type: string
        description: Card Authorization Type (PRE_AUTH, FINAL_AUTH).  When capture
          now is set to true pre-authorization transactions cannot be done.
        default: FINAL_AUTH
      encryptedCard:
        type: string
        description: Encrypted card details
        maxLength: 4096
      cardEncryptionKeyAlias:
        type: string
        description: Public key alias
      returnUrl:
        type: string
        description: URL belonging to the Merchant website, where the Customer would
          be redirected after the Checkout has been completed.
        x-format:
          uri: true
    required:
    - scaComplianceLevel
  CVV:
    type: object
    properties:
      validation_rule:
        type: string
        default: NONE
        enum:
        - NONE
        - LUHN
      usage:
        type: string
        default: REQUIRED
        enum:
        - REQUIRED
        - PROHIBITED
  input_overrides:
    type: object
    title: Payment Details
    properties:
      CVV:
        $ref: '#/x-alt-definitions/CVV'
      CREDIT_TERM:
        $ref: '#/x-alt-definitions/CVV'
      IDENTITY_CARD_NUMBER:
        $ref: '#/x-alt-definitions/CVV'
  Model2:
    type: object
    title: Card Brands
    description: Need to enable merchants to configure additional input fields on
      checkout for the input in scope.
    properties:
      AMEX:
        $ref: '#/x-alt-definitions/input_overrides'
      CB:
        $ref: '#/x-alt-definitions/input_overrides'
      DINERS:
        $ref: '#/x-alt-definitions/input_overrides'
      DISCOVER:
        $ref: '#/x-alt-definitions/input_overrides'
      ELECTRON:
        $ref: '#/x-alt-definitions/input_overrides'
      JCB:
        $ref: '#/x-alt-definitions/input_overrides'
      MAESTRO:
        $ref: '#/x-alt-definitions/input_overrides'
      MASTERCARD:
        $ref: '#/x-alt-definitions/input_overrides'
      UPI:
        $ref: '#/x-alt-definitions/input_overrides'
      VISA:
        $ref: '#/x-alt-definitions/input_overrides'
      VPAY:
        $ref: '#/x-alt-definitions/input_overrides'
      Q_CARD:
        $ref: '#/x-alt-definitions/input_overrides'
  threed_secure_duplicate:
    type: object
    properties:
      account_age_indicator:
        type: string
        description: 'Length of time cardholder has had account. <br /> Possible Values:
          <br />  * 01 - No account <br />  * 02 - Created during transaction <br
          />  * 03 - Less than 30 days <br />  * 04 - 30-60 days <br />  * 05 - More
          than 60 days <br />'
        enum:
        - "01"
        - "02"
        - "03"
        - "04"
        - "05"
      account_create_date:
        type: string
        format: date
        description: 'Date the cardholder opened the account. `Format: YYYYMMDD`'
      account_change_indicator:
        type: string
        description: 'Length of time since the last change to the cardholder account.
          This includes shipping address, <br /> new payment account or new user added.
          Possible Values: <br /> * 01 - Changed during transaction <br /> * 02 -
          Less than 30 days <br /> * 03 - 30-60 days <br /> * 04 - More than 60 days
          <br />'
        enum:
        - "01"
        - "02"
        - "03"
        - "04"
      account_change_date:
        type: string
        format: date
        description: "Date the cardholder's account was last changed. This includes
          changes to the billing or shipping address, new payment accounts or new
          users added.` Format: YYYYMMDD` <br />"
      account_pwd_change_indicator:
        type: string
        description: 'Length of time since the cardholder changed or reset the password
          on the account. <br />  Possible Values: <br />  * 01 - No change <br />  *
          02 - Changed during transaction <br />  * 03 - Less than 30 days <br />  *
          04 - 30-60 days <br />  * 05 - More than 60 days <br />'
        enum:
        - "01"
        - "02"
        - "03"
        - "04"
        - "05"
      account_pwd_change_date:
        type: string
        format: date
        description: 'Date the cardholder last changed or reset password on account.
          `Format: YYYYMMDD`'
      account_id:
        type: string
        description: Additional cardholder account information.
        maxLength: 64
      account_purchases:
        type: integer
        description: Number of purchases with this cardholder account during the previous
          six months.
        maximum: 9999
      acs_window_size:
        type: string
        description: 'An override field that a merchant can pass in to set the challenge
          window size to display to the end <br /> cardholder.The ACS will reply with
          content that is formatted appropriately to this window size to allow <br
          /> for the best user experience. The sizes are width x height in pixels
          of the window displayed in <br /> the cardholder browser window. Possible
          values: <br />  * 01 - 250x400 <br />  * 02 - 390x400 <br />  * 03 - 500x600
          <br />  * 04 - 600x400 <br />  * 05 - Full page <br />'
        enum:
        - "01"
        - "02"
        - "03"
        - "04"
        - "05"
      add_card_attempts:
        type: integer
        description: Number of add card attempts in the last 24 hours.
        maximum: 999
      address_match:
        type: string
        description: 'Indicates whether cardholder billing and shipping addresses
          match. <br /> Possible Values: <br />  * Y - Shipping address matches billing
          address <br />  * N - Shipping address does not match billing address <br
          />'
        enum:
        - Y
        - N
      alternate_authentication_method:
        type: string
        description: 'Mechanism used by the cardholder to authenticate to the 3DS
          requester. <br />  Possible Values: <br />  * 01 - No authentication occurred
          (e.g. Guest Checkout) <br />  * 02 - Login to the cardholder account at
          the Merchant system using Merchant system credentials <br />  * 03 - Login
          to the cardholder account at the Merchant system using a Federated ID <br
          />  * 04 - Login to the cardholder account at the Merchant system using
          Issuer credentials <br />  * 05 - Login to the cardholder account at the
          Merchant system using third-party authentication <br />  * 06 - Login to
          the cardholder account at the Merchant system using FIDO Authenticator <br
          />'
        enum:
        - "01"
        - "02"
        - "03"
        - "04"
        - "05"
        - "06"
      alternate_authentication_date:
        type: string
        format: date
        description: 'Date and time in UTC of the cardholder authentication. ` Format:
          YYYYMMDDHHMM`'
      alternate_authentication_data:
        type: string
        description: Data that documents and supports a specific authentication <br
          /> process that was sent in the AlternateAuthenticationMethod field. <br
          />
        maxLength: 2048
      threeds_contract_id:
        type: string
        description: The ID of the threeDSContract used.
        maxLength: 36
        x-format:
          guid: true
      authentication_indicator:
        type: string
        description: Indicates the type of Authentication request. 01 - Payment transaction
          <br />  02 - Recurring transaction  <br />  03 - Installment transaction  <br
          />  04 - Add card  <br />  05 - Maintain card  <br />  06 - Cardholder verification
          as part of EMV token ID&V <br />
        enum:
        - "01"
        - "02"
        - "03"
        - "04"
        - "05"
        - "06"
      category_code:
        type: integer
        description: 'Merchant category code (MCC) NOTE: This field is required by
          Mastercard and VISA Brazil extensions. <br />'
        maximum: 9999
      challenge_indicator:
        type: string
        description: 'NOTE: This is a 2.0 required field, Cardinal will default to
          01 on Merchant Configuration <br /> - can be overridden by the merchant.
          Possible Values: <br /> * 01 - No preference <br /> * 02 - No challenge
          requested <br /> * 03 - Challenge requested (3DS Requestor Preference) <br /> * 04 - Challenge requested (Mandate) <br />
            * 05 - No challenge requested (transactional risk analysis is already performed) <br />
            * 06 - No challenge requested (Data share only) <br />
            * 07 - No challenge requested (strong consumer authentication is already performed) <br />
            * 08 - No challenge requested (utilise whitelist exemption if no challenge required) <br />
            * 09 - Challenge requested (whitelist prompt requested if challenge required) <br />
            * 90 - CB specific
            value <br />'

        default: "01"
        enum:
        - "01"
        - "02"
        - "03"
        - "04"
        - "05"
        - "06"
        - "07"
        - "08"
        - "09"
        - "90"
      delivery_email:
        type: string
        description: For electronic delivery, email address to which the merchandise
          was delivered.
        maxLength: 255
        x-format:
          email:
            minDomainSegments: 2
      delivery_time_frame:
        type: string
        description: 'Indicates the delivery timeframe.  <br /> Possible Values: <br
          />  * 01 - Electronic delivery <br />  * 02 - Same day shipping <br />  *
          03 - Overnight shipping <br />  * 04 - Two or more day shipping <br />'
        enum:
        - "01"
        - "02"
        - "03"
        - "04"
      enabled:
        type: boolean
        description: Whether 3DS should be used.
        default: true
        enum:
        - true
      fraud_activity:
        type: string
        description: 'Indicates whether the merchant experienced suspicious activity
          (including previous fraud) on the account. <br /> Possible Values: <br />  *
          01 - No suspicious activity <br />  * 02 - Suspicious activity observed
          <br />'
        enum:
        - "01"
        - "02"
      gift_card_amount:
        type: integer
        description: 'The purchase amount total for prepaid gift cards in major units.
          <br /> Example: $123.45 USD = 12345 <br />'
        maximum: 999999999999999
      gift_card_currency_code:
        type: string
        description: ISO 4217 currency code for the gift card purchased.
        minLength: 3
        maxLength: 3
      gift_card_count:
        type: integer
        description: Total count of individual prepaid gift cards purchased.
        maximum: 99
      installment:
        type: number
        description: Indicates the maximum number of authorizations for installment
          payments. An integer value greater than 1 indicating the maximum number
          of permitted authorizations for installment payments. ** Required for Recurring
          and Installment transactions, when authenticationIndicator="02" & "03" **
        minimum: 2
        maximum: 999
      message_category:
        type: string
        description: 'Category of the message for a specific use case. <br />  Possible
          Values: <br />  * 01 - PA (payment) <br />  * 02 - NPA (non payment) <br
          />  NOTE: Default is payment (01). Configured on Merchant account, or can
          be overridden on transaction. <br />'
        enum:
        - "01"
        - "02"
      payment_use_case:
        type: string
        description: 'Indicates the type of payment.The value from this field will
          be mapped to the data field on the CB-USECASE extension <br />  Possible
          Values: <br />  * 01 - Single Payment <br />  * 02 - Fixed Amount and Term
          Subscription <br />  * 03 - Payment By Instalments <br />  * 04 - Payment
          By Shipment <br />  * 05 - Other Recurring Payments <br />  NOTE: Required
          for CB transactions (Required if message_category = 01, or message_category
          = 02 and authentication_indicator = 02 or 03 <br />'
        default: "01"
        enum:
        - "01"
        - "02"
        - "03"
        - "04"
        - "05"
      payment_account_indicator:
        type: string
        description: 'Indicates the length of time that the payment account was enrolled
          in the merchant account. <br /> Possible Values: <br />  * 01 - No account
          (guest checkout) <br />  * 02 - During the transaction <br />  * 03 - Less
          than 30 days <br />  * 04 - 30-60 days <br />  * 05 - More than 60 days
          <br />'
        enum:
        - "01"
        - "02"
        - "03"
        - "04"
        - "05"
      payment_account_age:
        type: string
        format: date
        description: 'Date the payment account was added to the cardholder account.
          ` Format: YYYYMMDD`'
      pre_order_indicator:
        type: string
        description: 'Indicates whether cardholder is placing an order with a future
          availability or release date. <br />  Possible Values: <br />  * 01 - Merchandise
          available <br />  * 02 - Future availability <br />'
        enum:
        - "01"
        - "02"
      pre_order_date:
        type: string
        format: date
        description: 'Expected date that a pre-ordered purchase will be available.
          `Format: YYYYMMDD`'
      prior_authentication_data:
        type: string
        description: This field carry data that the ACS can use to verify the authentication
          process
        maxLength: 2048
      prior_authentication_method:
        type: string
        description: Mechanism used by the Cardholder to previously authenticate to
          the 3DS Requestor. <br />  * 01 - Frictionless authentication occurred by
          ACS <br />  * 02 - Cardholder challenge occurred by ACS <br />  * 03 - AVS
          verified <br />  * 04 - Other issuer methods <br />
        enum:
        - "01"
        - "02"
        - "03"
        - "04"
      prior_authentication_time:
        type: string
        format: date
        description: 'Date and time in UTC of the prior cardholder authentication.
          ` Format: YYYYMMDDHHMM`'
      prior_authentication_ref:
        type: string
        description: This data element contains a ACS Transaction ID for a prior authenticated
          transaction. <br /> For example, the first recurring transaction that was
          authenticated with the cardholder <br />
        maxLength: 36
      product_code:
        type: string
        description: 'Merchant product code.  <br /> Possible Values:  <br />  * PHY
          - Goods/Service Purchase  <br />  * CHA - Check Acceptance  <br />  * ACF
          - Account Funding  <br />  * QCT - Quasi-Cash Transaction  <br />  * PAL
          - Prepaid Activation and Load  <br /> NOTE: This value defaults to PHY.
          This field can be used to override that value if applicable.  <br />'
        enum:
        - PHY
        - CHA
        - ACF
        - QCT
        - PAL
      recurring_end:
        type: string
        format: date
        description: 'The date after which no further recurring authorizations should
          be performed. `Format: YYYYMMDD` ** Required for Recurring and Installment
          transactions, when authenticationIndicator="02" & "03" **'
      recurring_frequency:
        type: number
        description: 'Conditional: Integer value indicating the minimum number of
          days between recurring authorizations. A frequency of monthly is indicated
          by the value 28. Multiple of 28 days will be used to indicate months. Example:
          6 months = 168 ** Required for Recurring and Installment transactions, when
          authenticationIndicator="02" & "03" **'
        maximum: 9999
      reorder_indicator:
        type: string
        description: 'Indicates whether cardholder is placing an order with a future
          availability or release date. <br />  Possible Values: <br />  * 01 - Merchandise
          available <br />  * 02 - Future availability <br />'
        enum:
        - "01"
        - "02"
      requestor_id:
        type: string
        description: 'This value is a Directory Server assigned 3DS Requestor Name
          value, each DS may provide a unique ID. <br /> NOTE: This is a 2.0 value
          only and if passed will override the Requestor Name value that is, <br />
          configured on the Merchant''s profile.'
        maxLength: 35
      requestor_name:
        type: string
        description: 'This value is a Directory Server assigned 3DS Requestor Name
          value, each DS may provide a unique ID. <br /> NOTE: This is a 2.0 value
          only and if passed will override the Requestor Name value that is configured
          <br /> on the Merchant''s profile.'
        maxLength: 40
      shipping_address_usage_indicator:
        type: string
        description: 'Indicates when the shipping address used for transaction was
          first used. <br /> Possible Values: <br />  * 01 - This transaction <br
          />  * 02 - Less than 30 days <br />  * 03 - 30-60 days <br />  * 04 - More
          than 60 days <br />'
        enum:
        - "01"
        - "02"
        - "03"
        - "04"
      shipping_address_usage_date:
        type: string
        format: date
        description: 'Date when the shipping address used for this transaction was
          first used. <br />  `Format: YYYYMMDD` <br />'
      shipping_method_indicator:
        type: string
        description: 'Indicates shipping method chosen for the transaction. <br />  Possible
          Values:  <br />  * 01 - Ship to cardholder billing address <br />  * 02
          - Ship to another verified address on file with merchant <br />  * 03 -
          Ship to address that is different than billing address <br />  * 04 - Ship
          to store (store address should be populated on request) <br />  * 05 - Digital
          goods <br />  * 06 - Travel and event tickets, not shipped <br />  * 07
          - Other <br />'
        enum:
        - "01"
        - "02"
        - "03"
        - "04"
        - "05"
        - "06"
        - "07"
      shipping_name_indicator:
        type: string
        description: 'Indicates if the cardholder name on the account is identical
          to the <br /> shipping name used for the transaction. Possible Values: <br
          /> * 01 - Account and shipping name identical <br /> * 02 - Account and
          shipping name differ <br />'
        enum:
        - "01"
        - "02"
      total_items:
        type: string
        description: Total items in the shopping cart of the shopper
        pattern: ^[0-9]{2}$
      merchant_score:
        type: string
        description: Merchant score
        maxLength: 20
        x-format:
          alphanum: true
      transaction_count_day:
        type: integer
        description: Number of transactions (successful or abandoned) for this cardholder
          account within the last 24 hours. <br />
        maximum: 999
      transaction_count_year:
        type: integer
        description: Number of transactions (successful or abandoned) for this cardholder
          account within the last year. <br />
        maximum: 999
      transaction_mode:
        type: string
        description: 'Transaction mode identifier. Identifies the channel the transaction
          originates from. Available Options: <br /> M - Moto (Mail Order Telephone
          Order) <br /> P - Mobile Device <br /> R - Retail (Physical Store) <br />
          S - Computer Device <br /> T - Tablet Device <br />'
        enum:
        - M
        - P
        - R
        - S
        - T
      version:
        type: string
        description: This field contains the 3DS version that can be leveraged to
          force a transaction down the 1.0 rails.
        enum:
        - 1.0.2
        - 2.1.0
        - 2.2.0
        deprecated: true
      white_list_status:
        type: string
        description: |
          Enables the communication of trusted beneficiary between the ACS, the DS and the 3DS Requestor. <br> Possible Values: <br> * `Y` - 3DS Requestor is trustlisted by cardholder  <br> * `N` - 3DS Requestor is not trustlisted by cardholder  <br> * `E` - Not eligible as determined by issuer <br> * `P` - Pending confirmation by cardholder <br> * `R` - Cardholder rejected <br> * `U` - Trustlist status unknown, unavailable, or does not apply <br> Note: This field may be returned for 2.1.0 if the MasterCard PSD2 extensions are passed and issuer supports them.
        enum:
          - "Y"
          - "N"
          - "E"
          - "P"
          - "R"
          - "U"
      white_list_status_source:
        type: string
        description: This data element will be populated by the system setting Whitelist Status.
        enum:
          - "01"
          - "02"
          - "03"
    required:
    - threeds_contract_id
    - transaction_mode
  Model3:
    type: object
    properties:
      sca_compliance_level:
        type: string
        description: |-
          Strong Customer Authentication (SCA) compliance level, possible values </br>
               * NONE: No SCA required. </br>
               * WALLET: Depend on the wallet SCA mechanism. For Google Pay this means that MasterCard will shift liability, Visa will not. </br>
               * FORCE_3DS: Do an additional 3DS step regardless of whether the wallet indicates the token is SCA-compliant.
          enum:
          - NONE
          - WALLET
          - FORCE_3DS
      threed_secure:
        $ref: '#/x-alt-definitions/threed_secure_duplicate'
      authorization_type:
        type: string
        description: Card Authorization Type (PRE_AUTH, FINAL_AUTH).  When capture
          now is set to true pre-authorization transactions cannot be done.
        default: FINAL_AUTH
      encrypted_card:
        type: string
        description: Encrypted card details
        maxLength: 4096
      card_encryption_key_alias:
        type: string
        description: Public key alias
      return_url:
        type: string
        description: URL belonging to the Merchant website, where the Customer would be redirected after the Checkout has been completed. If this parameter is used, the customer will be redirected after spending 10 seconds on the payment confirmation page provided by Verifone in case of HPP and PAYMENT LINK transactions. For IFRAME transaction the redirect is performed right after the checkout page without passing through the payment confirmation page.   <br /> <b>Note:</b> The time after which redirection happens can be customized using redirect_method.
        x-format:
          uri: true
    required:
    - sca_compliance_level
    - threed_secure
  Model4:
    type: object
    properties:
      sca_compliance_level:
        type: string
        description: |-
          Strong Customer Authentication (SCA) compliance level, possible values </br>
               * NONE: No SCA required. </br>
               * WALLET: Depend on the wallet SCA mechanism. For Google Pay this means that MasterCard will shift liability, Visa will not. </br>
               * FORCE_3DS: Do an additional 3DS step regardless of whether the wallet indicates the token is SCA-compliant.
          enum:
          - NONE
          - WALLET
          - FORCE_3DS
      authorization_type:
        type: string
        description: Card Authorization Type (PRE_AUTH, FINAL_AUTH).  When capture
          now is set to true pre-authorization transactions cannot be done.
        default: FINAL_AUTH
      encrypted_card:
        type: string
        description: Encrypted card details
        maxLength: 4096
      card_encryption_key_alias:
        type: string
        description: Public key alias
      return_url:
        type: string
        description:  URL belonging to the Merchant website, where the Customer would be redirected after the Checkout has been completed. If this parameter is used, the customer will be redirected after spending 10 seconds on the payment confirmation page provided by Verifone in case of HPP and PAYMENT LINK transactions. For IFRAME transaction the redirect is performed right after the checkout page without passing through the payment confirmation page.   <br /> <b>Note:</b> The time after which redirection happens can be customized using redirect_method.
        x-format:
          uri: true
    required:
    - sca_compliance_level
  tokenPreferenceDef:
    type: object
    description: Read <a target="_blank" href="https://docs.verifone.com/online-payments/tokenization">Tokenization</a> for additional information
    properties:
      tokenScope:
        type: string
        description: The token scope under which a token gets created
        x-format:
          guid: true
      tokenExpiryDate:
        type: string
        format: date
        description: Token expiry date
      tokenType:
        type: string
        description: Token type
        enum:
        - REUSE
        - REUSE_AND_ANALYTICS
        - ANALYTICS
    required:
    - tokenScope
  Model5:
    type: object
    properties:
      scaComplianceLevel:
        type: string
        description: |-
          Strong Customer Authentication (SCA) compliance level, possible values </br>
               * NONE: No SCA required. </br>
               * WALLET: Depend on the wallet SCA mechanism. For Google Pay this means that MasterCard will shift liability, Visa will not. </br>
               * FORCE_3DS: Do an additional 3DS step regardless of whether the wallet indicates the token is SCA-compliant.
          enum:
          - NONE
          - WALLET
          - FORCE_3DS
      threedSecure:
        $ref: '#/x-alt-definitions/threedSecureDef'
      authorizationType:
        type: string
        description: Card Authorization Type (PRE_AUTH, FINAL_AUTH).  When capture
          now is set to true pre-authorization transactions cannot be done.
        default: FINAL_AUTH
      shopperInteraction:
        type: string
        description: Shopper interaction to send within the payment request
        default: ECOMMERCE
        enum:
        - ECOMMERCE
        - MAIL
        - TELEPHONE
      paymentContractId:
        type: string
        description: This parameter can be found in the portal on the Payment Provider Contract attached to your organization or given to you by a Verifone employee. It is used to retrieve MID and other merchant configurations necessary for a card payment.
        x-format:
          guid: true
        required:
        - paymentContractId
        x-alternatives:
        - type: string
          description: This parameter can be found in the portal on the Payment Provider Contract attached to your organization or given to you by a Verifone employee. It is used to retrieve MID and other merchant configurations necessary for a card payment.
          x-format:
            guid: true
        - $ref: '#/x-alt-definitions/paymentContractIdDef'
      tokenPreference:
        $ref: '#/x-alt-definitions/tokenPreferenceDef'
    required:
    - scaComplianceLevel
    - threedSecure
    - paymentContractId
  Model6:
    type: object
    properties:
      scaComplianceLevel:
        type: string
        description: |-
          Strong Customer Authentication (SCA) compliance level, possible values </br>
               * NONE: No SCA required. </br>
               * WALLET: Depend on the wallet SCA mechanism. For Google Pay this means that MasterCard will shift liability, Visa will not. </br>
               * FORCE_3DS: Do an additional 3DS step regardless of whether the wallet indicates the token is SCA-compliant.
          enum:
          - NONE
          - WALLET
          - FORCE_3DS
      authorizationType:
        type: string
        description: Card Authorization Type (PRE_AUTH, FINAL_AUTH).  When capture
          now is set to true pre-authorization transactions cannot be done.
        default: FINAL_AUTH
      shopperInteraction:
        type: string
        description: Shopper interaction to send within the payment request
        default: ECOMMERCE
        enum:
        - ECOMMERCE
        - MAIL
        - TELEPHONE
      paymentContractId:
        type: string
        description: This parameter can be found in the portal on the Payment Provider Contract attached to your organization or given to you by a Verifone employee. It is used to retrieve MID and other merchant configurations necessary for a card payment.
        x-format:
          guid: true
        required:
        - paymentContractId
        x-alternatives:
        - type: string
          description: This parameter can be found in the portal on the Payment Provider Contract attached to your organization or given to you by a Verifone employee. It is used to retrieve MID and other merchant configurations necessary for a card payment.
          x-format:
            guid: true
        - $ref: '#/x-alt-definitions/paymentContractIdDef'
      tokenPreference:
        $ref: '#/x-alt-definitions/tokenPreferenceDef'
    required:
    - scaComplianceLevel
    - paymentContractId
  Model7:
    type: object
    properties:
      scaComplianceLevel:
        type: string
        enum:
        - NONE
        - WALLET
      authorizationType:
        type: string
        description: Card Authorization Type (PRE_AUTH, FINAL_AUTH).  When capture
          now is set to true pre-authorization transactions cannot be done.
        default: FINAL_AUTH
      shopperInteraction:
        type: string
        description: Shopper interaction to send within the payment request
        default: ECOMMERCE
        enum:
        - ECOMMERCE
        - MAIL
        - TELEPHONE
      paymentContractId:
        type: string
        description: This parameter can be found in the portal on the Payment Provider Contract attached to your organization or given to you by a Verifone employee. It is used to retrieve MID and other merchant configurations necessary for a card payment.
        x-format:
          guid: true
        required:
        - paymentContractId
        x-alternatives:
        - type: string
          description: Payment Contract Id
          x-format:
            guid: true
        - $ref: '#/x-alt-definitions/paymentContractIdDef'
      tokenPreference:
        $ref: '#/x-alt-definitions/tokenPreferenceDef'
    required:
    - paymentContractId
  Model8:
    type: object
    properties:
      scaComplianceLevel:
        type: string
        description: |-
          Strong Customer Authentication (SCA) compliance level, possible values </br>
               * NONE: No SCA required. </br>
               * WALLET: Depend on the wallet SCA mechanism. For Google Pay this means that MasterCard will shift liability, Visa will not. </br>
               * FORCE_3DS: Do an additional 3DS step regardless of whether the wallet indicates the token is SCA-compliant.
          enum:
          - NONE
          - WALLET
          - FORCE_3DS
      threedSecure:
        $ref: '#/x-alt-definitions/threedSecureDef'
      authorizationType:
        type: string
        description: Card Authorization Type (PRE_AUTH, FINAL_AUTH).  When capture
          now is set to true pre-authorization transactions cannot be done.
        default: FINAL_AUTH
    required:
    - scaComplianceLevel
    - threedSecure
  Model9:
    type: object
    properties:
      scaComplianceLevel:
        type: string
        description: |-
          Strong Customer Authentication (SCA) compliance level, possible values </br>
               * NONE: No SCA required. </br>
               * WALLET: Depend on the wallet SCA mechanism. For Google Pay this means that MasterCard will shift liability, Visa will not. </br>
               * FORCE_3DS: Do an additional 3DS step regardless of whether the wallet indicates the token is SCA-compliant.
          enum:
          - NONE
          - WALLET
          - FORCE_3DS
      authorizationType:
        type: string
        description: Card Authorization Type (PRE_AUTH, FINAL_AUTH).  When capture
          now is set to true pre-authorization transactions cannot be done.
        default: FINAL_AUTH
    required:
    - scaComplianceLevel
  Model10:
    type: object
    properties:
      imageUrl:
        type: string
        description: Image URL for the line item
        maxLength: 2000
        x-format:
          uri: true
      itemUrl:
        type: string
        description: Item URL for the line item
        maxLength: 2000
        x-format:
          uri: true
      name:
        type: string
        description: Descriptive name of the order line item
        maxLength: 255
      quantity:
        type: integer
        default: 1
        description: Quantity of the order line item
      unitPrice:
        type: number
        description: Unit Price
      unitPriceTax:
        type: number
        description: Unit Price Tax
      taxRate:
        type: number
        description: Additional details specific to this type of event
      totalTaxAmount:
        type: number
        description: Total tax amount
      totalAmount:
        type: number
        description: Total Amount
      sku:
        type: string
        description: The stock keeping unit (SKU) for the item.
        maxLength: 127
      description:
        type: string
        description: The detailed item description.
        maxLength: 127
      category:
        type: string
        description: 'The item category type. <br />  The possible values are: <br
          />  * DIGITAL_GOODS - Goods that are stored, delivered, and used in their
          electronic format. This value is not currently supported for API callers
          that leverage the [PayPal for Commerce Platform](https://www.paypal.com/us/webapps/mpp/commerce-platform)
          product. <br />  * DIGITAL_GOODS - A tangible item that can be shipped with
          proof of delivery. <br />'
        enum:
        - DIGITAL_GOODS
        - PHYSICAL_GOODS
    required:
    - name
    - quantity
    - unitPrice
    - taxRate
    - totalTaxAmount
    - totalAmount
  lineItems:
    type: array
    description: List of shopping cart items, to be displayed on the page. Read <a target="_blank" href="https://docs.verifone.com/online-payments/checkout/line-items">Line items</a> for details.
    items:
      $ref: '#/x-alt-definitions/Model10'
  Model11:
    type: object
    properties:
      imageUrl:
        type: string
        description: Image URL for the line item
        maxLength: 2000
        x-format:
          uri: true
      itemUrl:
        type: string
        description: Item URL for the line item
        maxLength: 2000
        x-format:
          uri: true
      name:
        type: string
        description: Descriptive name of the order line item
        maxLength: 255
      quantity:
        type: integer
        default: 1
        description: Quantity of the order line item
      unitPrice:
        type: number
        description: Unit Price
      unitPriceTax:
        type: number
        description: Unit Price Tax
      taxRate:
        type: number
        description: Additional details specific to this type of event
      totalTaxAmount:
        type: number
        description: Total tax amount
      totalAmount:
        type: number
        description: Total Amount
      sku:
        type: string
        description: The stock keeping unit (SKU) for the item.
        maxLength: 127
      description:
        type: string
        description: The detailed item description.
        maxLength: 127
      category:
        type: string
        description: 'The item category type. <br />  The possible values are: <br
          />  * DIGITAL_GOODS - Goods that are stored, delivered, and used in their
          electronic format. This value is not currently supported for API callers
          that leverage the [PayPal for Commerce Platform](https://www.paypal.com/us/webapps/mpp/commerce-platform)
          product. <br />  * DIGITAL_GOODS - A tangible item that can be shipped with
          proof of delivery. <br />'
        enum:
        - DIGITAL_GOODS
        - PHYSICAL_GOODS
    required:
    - name
    - unitPrice
    - totalAmount
  Model12:
    type: array
    items:
      $ref: '#/x-alt-definitions/Model11'
  Model13:
    type: object
    properties:
      validationRule:
        type: string
        default: NONE
        enum:
        - NONE
        - LUHN
      usage:
        type: string
        default: REQUIRED
        enum:
        - REQUIRED
        - PROHIBITED
  Model14:
    type: object
    properties:
      CVV:
        $ref: '#/x-alt-definitions/Model13'
      CREDIT_TERM:
        $ref: '#/x-alt-definitions/Model13'
      IDENTITY_CARD_NUMBER:
        $ref: '#/x-alt-definitions/Model13'
  Model15:
    type: object
    description: Need to enable merchants to configure additional input fields on
      checkout for the input in scope.
    properties:
      AMEX:
        $ref: '#/x-alt-definitions/Model14'
      CB:
        $ref: '#/x-alt-definitions/Model14'
      DINERS:
        $ref: '#/x-alt-definitions/Model14'
      DISCOVER:
        $ref: '#/x-alt-definitions/Model14'
      ELECTRON:
        $ref: '#/x-alt-definitions/Model14'
      JCB:
        $ref: '#/x-alt-definitions/Model14'
      MAESTRO:
        $ref: '#/x-alt-definitions/Model14'
      MASTERCARD:
        $ref: '#/x-alt-definitions/Model14'
      UPI:
        $ref: '#/x-alt-definitions/Model14'
      VISA:
        $ref: '#/x-alt-definitions/Model14'
      VPAY:
        $ref: '#/x-alt-definitions/Model14'
      Q_CARD:
        $ref: '#/x-alt-definitions/Model14'
  token_preference:
    type: object
    description: Read <a target="_blank" href="https://docs.verifone.com/online-payments/tokenization">Tokenization</a> for additional information
    properties:
      token_scope:
        type: string
        description: The token scope under which a token gets created
        x-format:
          guid: true
      token_expiry_date:
        type: string
        format: date
        description: Token expiry date
      token_type:
        type: string
        description: Token type
        enum:
        - REUSE
        - REUSE_AND_ANALYTICS
        - ANALYTICS
    required:
    - token_scope
  card_token_preference:
    type: object
    description: Read <a target="_blank" href="https://docs.verifone.com/online-payments/tokenization">Tokenization</a> for additional information
    properties:
      token_scope:
        type: string
        description: The token scope under which a token gets created
        x-format:
          guid: true
      token_expiry_date:
        type: string
        format: date
        description: Token expiry date
      token_type:
        type: string
        description: Token type
        enum:
          - REUSE
          - REUSE_AND_ANALYTICS
          - ANALYTICS
      reuse_token_type:
        type: string
        description: Reuse token type
        enum:
          - TAVE
          - CHASE
          - INTERNAL
    required:
      - token_scope
  Model16:
    type: object
    properties:
      sca_compliance_level:
        type: string
        description: |-
          Strong Customer Authentication (SCA) compliance level, possible values </br>
               * NONE: No SCA required. </br>
               * WALLET: Depend on the wallet SCA mechanism. For Google Pay this means that MasterCard will shift liability, Visa will not. </br>
               * FORCE_3DS: Do an additional 3DS step regardless of whether the wallet indicates the token is SCA-compliant.
          enum:
          - NONE
          - WALLET
          - FORCE_3DS
      threed_secure:
        $ref: '#/x-alt-definitions/threed_secure_duplicate'
      authorization_type:
        type: string
        description: Card Authorization Type (PRE_AUTH, FINAL_AUTH).  When capture
          now is set to true pre-authorization transactions cannot be done.
        default: FINAL_AUTH
      shopper_interaction:
        $ref: '#/components/schemas/shopper_interaction'
      payment_contract_id:
        type: string
        description: This parameter can be found in the portal on the Payment Provider Contract attached to your organization or given to you by a Verifone employee. It is used to retrieve MID and other merchant configurations necessary for a card payment.
        x-format:
          guid: true
        required:
        - payment_contract_id
        x-alternatives:
        - type: string
          description: This parameter can be found in the portal on the Payment Provider Contract attached to your organization or given to you by a Verifone employee. It is used to retrieve MID and other merchant configurations necessary for a card payment.
          x-format:
            guid: true
        - $ref: '#/x-alt-definitions/paymentContractIdDef'
      token_preference:
        $ref: '#/x-alt-definitions/token_preference'
    required:
    - sca_compliance_level
    - threed_secure
    - payment_contract_id
  Model17:
    type: object
    properties:
      sca_compliance_level:
        type: string
        description: |-
          Strong Customer Authentication (SCA) compliance level, possible values </br>
               * NONE: No SCA required. </br>
               * WALLET: Depend on the wallet SCA mechanism. For Google Pay this means that MasterCard will shift liability, Visa will not. </br>
               * FORCE_3DS: Do an additional 3DS step regardless of whether the wallet indicates the token is SCA-compliant.
          enum:
          - NONE
          - WALLET
          - FORCE_3DS
      authorization_type:
        type: string
        description: Card Authorization Type (PRE_AUTH, FINAL_AUTH).  When capture
          now is set to true pre-authorization transactions cannot be done.
        default: FINAL_AUTH
      shopper_interaction:
        $ref: '#/components/schemas/shopper_interaction'
      payment_contract_id:
        type: string
        description: This parameter can be found in the portal on the Payment Provider Contract attached to your organization or given to you by a Verifone employee. It is used to retrieve MID and other merchant configurations necessary for a card payment.
        x-format:
          guid: true
        required:
        - payment_contract_id
        x-alternatives:
        - type: string
          description: This parameter can be found in the portal on the Payment Provider Contract attached to your organization or given to you by a Verifone employee. It is used to retrieve MID and other merchant configurations necessary for a card payment.
          x-format:
            guid: true
        - $ref: '#/x-alt-definitions/paymentContractIdDef'
      token_preference:
        $ref: '#/x-alt-definitions/token_preference'
    required:
    - sca_compliance_level
    - payment_contract_id
  Model18:
    type: object
    properties:
      sca_compliance_level:
        type: string
        enum:
        - NONE
        - WALLET
      authorization_type:
        type: string
        description: Card Authorization Type (PRE_AUTH, FINAL_AUTH).  When capture
          now is set to true pre-authorization transactions cannot be done.
        default: FINAL_AUTH
      shopper_interaction:
        $ref: '#/components/schemas/shopper_interaction'
      payment_contract_id:
        type: string
        description: This parameter can be found in the portal on the Payment Provider Contract attached to your organization or given to you by a Verifone employee. It is used to retrieve MID and other merchant configurations necessary for a card payment.
        x-format:
          guid: true
        required:
        - payment_contract_id
        x-alternatives:
        - type: string
          description: This parameter can be found in the portal on the Payment Provider Contract attached to your organization or given to you by a Verifone employee. It is used to retrieve MID and other merchant configurations necessary for a card payment.
          x-format:
            guid: true
        - $ref: '#/x-alt-definitions/paymentContractIdDef'
      token_preference:
        $ref: '#/x-alt-definitions/token_preference'
    required:
    - payment_contract_id
  Model19:
    type: object
    properties:
      sca_compliance_level:
        type: string
        description: |-
          Strong Customer Authentication (SCA) compliance level, possible values </br>
               * NONE: No SCA required. </br>
               * WALLET: Depend on the wallet SCA mechanism. For Google Pay this means that MasterCard will shift liability, Visa will not. </br>
               * FORCE_3DS: Do an additional 3DS step regardless of whether the wallet indicates the token is SCA-compliant.
          enum:
          - NONE
          - WALLET
          - FORCE_3DS
      threed_secure:
        $ref: '#/x-alt-definitions/threed_secure_duplicate'
      authorization_type:
        type: string
        description: Card Authorization Type (PRE_AUTH, FINAL_AUTH).  When capture
          now is set to true pre-authorization transactions cannot be done.
        default: FINAL_AUTH
    required:
    - sca_compliance_level
    - threed_secure
  Model20:
    type: object
    properties:
      sca_compliance_level:
        type: string
        description: |-
          Strong Customer Authentication (SCA) compliance level, possible values </br>
               * NONE: No SCA required. </br>
               * WALLET: Depend on the wallet SCA mechanism. For Google Pay this means that MasterCard will shift liability, Visa will not. </br>
               * FORCE_3DS: Do an additional 3DS step regardless of whether the wallet indicates the token is SCA-compliant.
          enum:
          - NONE
          - WALLET
          - FORCE_3DS
      authorization_type:
        type: string
        description: Card Authorization Type (PRE_AUTH, FINAL_AUTH).  When capture
          now is set to true pre-authorization transactions cannot be done.
        default: FINAL_AUTH
    required:
    - sca_compliance_level
  Model21:
    type: object
    properties:
      image_url:
        type: string
        description: Image URL for the line item
        maxLength: 2000
        x-format:
          uri: true
      item_url:
        type: string
        description: Item URL for the line item
        maxLength: 2000
        x-format:
          uri: true
      name:
        type: string
        description: Descriptive name of the order line item
        maxLength: 255
      quantity:
        type: integer
        default: 1
        description: Quantity of the order line item
      unit_price:
        type: number
        description: Unit Price
      unit_price_tax:
        type: number
        description: Unit Price Tax
      tax_rate:
        type: number
        description: Additional details specific to this type of event
      total_tax_amount:
        type: number
        description: Total tax amount
      total_amount:
        type: number
        description: Total Amount
      sku:
        type: string
        description: The stock keeping unit (SKU) for the item.
        maxLength: 127
      description:
        type: string
        description: The detailed item description.
        maxLength: 127
      category:
        type: string
        description: 'The item category type. <br />  The possible values are: <br
          />  * DIGITAL_GOODS - Goods that are stored, delivered, and used in their
          electronic format. This value is not currently supported for API callers
          that leverage the [PayPal for Commerce Platform](https://www.paypal.com/us/webapps/mpp/commerce-platform)
          product. <br />  * DIGITAL_GOODS - A tangible item that can be shipped with
          proof of delivery. <br />'
        enum:
        - DIGITAL_GOODS
        - PHYSICAL_GOODS
    required:
    - name
    - quantity
    - unit_price
    - tax_rate
    - total_tax_amount
    - total_amount
  line_items:
    description: List of shopping cart items, to be displayed on the page. Read <a target="_blank" href="https://docs.verifone.com/online-payments/checkout/line-items">Line items</a> for details.
    type: array
    items:
      $ref: '#/x-alt-definitions/Model21'
  Model22:
    type: object
    properties:
      image_url:
        type: string
        description: Image URL for the line item
        maxLength: 2000
        x-format:
          uri: true
      item_url:
        type: string
        description: Item URL for the line item
        maxLength: 2000
        x-format:
          uri: true
      name:
        type: string
        description: Descriptive name of the order line item
        maxLength: 255
      quantity:
        type: integer
        default: 1
        description: Quantity of the order line item
      unit_price:
        type: number
        description: Unit Price
      unit_price_tax:
        type: number
        description: Unit Price Tax
      tax_rate:
        type: number
        description: Additional details specific to this type of event
      total_tax_amount:
        type: number
        description: Total tax amount
      total_amount:
        type: number
        description: Total Amount
      sku:
        type: string
        description: The stock keeping unit (SKU) for the item.
        maxLength: 127
      description:
        type: string
        description: The detailed item description.
        maxLength: 127
      category:
        type: string
        description: 'The item category type. <br />  The possible values are: <br
          />  * DIGITAL_GOODS - Goods that are stored, delivered, and used in their
          electronic format. This value is not currently supported for API callers
          that leverage the [PayPal for Commerce Platform](https://www.paypal.com/us/webapps/mpp/commerce-platform)
          product. <br />  * DIGITAL_GOODS - A tangible item that can be shipped with
          proof of delivery. <br />'
        enum:
        - DIGITAL_GOODS
        - PHYSICAL_GOODS
    required:
    - name
    - unit_price
    - total_amount
  Model23:
    type: array
    items:
      $ref: '#/x-alt-definitions/Model22'