VTEX Payment Flow API

The Payment Flow API from VTEX — 6 operation(s) for payment flow.

Operations 6

GET /manifest VTex List Payment Provider Manifest #
POST /payments VTex Create payment #
POST /payments/{paymentId}/cancellations VTex Cancel payment #
POST /payments/{paymentId}/settlements VTex Settle payment #
POST /payments/{paymentId}/refunds VTex Refund payment #
POST /payments/{paymentId}/inbound/{action} VTex Inbound request (BETA) #

Documentation

📖
Documentation
https://developers.vtex.com/docs/guides/how-the-integration-protocol-between-vtex-and-antifraud-companies-works
📖
Documentation
https://developers.vtex.com/docs/guides/bulk-import-buyer-organizations-spreadsheet
📖
Documentation
https://developers.vtex.com/docs/guides/catalog-api-seller-portal-overview
📖
Documentation
https://developers.vtex.com/docs/guides/catalog-overview
📖
Documentation
https://developers.vtex.com/docs/guides/checkout-overview
📖
Documentation
https://help.vtex.com/en/tutorial/customer-credit-overview--1uIqTjWxIIIEW0COMg4uE0
📖
Documentation
https://help.vtex.com/en/tutorial/data-subject-rights--6imchxTx09icupKMbzHVIM
📖
Documentation
https://developers.vtex.com/docs/api-reference/do-api
📖
Documentation
https://developers.vtex.com/docs/guides/managing-vtex-gift-cards
📖
Documentation
https://developers.vtex.com/docs/guides/gift-card-integration-guide
📖
Documentation
https://developers.vtex.com/docs/guides/faststore/headless-cms-overview
📖
Documentation
https://developers.vtex.com/docs/api-reference/vtex-id-api
📖
Documentation
https://help.vtex.com/en/tracks/vtex-intelligent-search--19wrbB7nEQcmwzDPl1l4Cb/3qgT47zY08biLP3d5os3DG
📖
Documentation
https://developers.vtex.com/docs/apps/vtex.search@1.0.8
📖
Documentation
https://help.vtex.com/en/tracks/cms--2YcpgIljVaLVQYMzxQbc3z/1oN446gRGcR2s70RvBCAmj
📖
Documentation
https://developers.vtex.com/docs/guides/search-overview
📖
Documentation
https://help.vtex.com/en/tutorial/license-manager-resources--3q6ztrC8YynQf6rdc6euk3
📖
Documentation
https://developers.vtex.com/docs/guides/fulfillment
📖
Documentation
https://developers.vtex.com/docs/guides/marketplace-overview
📖
Documentation
https://developers.vtex.com/updates/release-notes/marketplace-protocol-documentation-update
📖
Documentation
https://developers.vtex.com/docs/guides/external-marketplace-integration-guide
📖
Documentation
https://developers.vtex.com/docs/guides/external-seller-integration-connector
📖
Documentation
https://developers.vtex.com/docs/guides/external-seller-integration-guide
📖
Documentation
https://help.vtex.com/en/tutorial/master-data--4otjBnR27u4WUIciQsmkAw
📖
Documentation
https://help.vtex.com/en/tutorial/understanding-the-message-center--tutorials_84
📖
Documentation
https://developers.vtex.com/docs/guides/orders-overview
📖
Documentation
https://developers.vtex.com/docs/guides/changes-in-vtex-features-behavior-to-handle-pii-data
📖
Documentation
https://help.vtex.com/en/tutorial/payment-provider-protocol--RdsT2spdq80MMwwOeEq0m
📖
Documentation
https://developers.vtex.com/docs/guides/payments-integration-guide
📖
Documentation
https://help.vtex.com/en/tutorial/vtex-pick-and-pack-last-mile--HN7WKV0xoq2ssVjsJlfzr
📖
Documentation
https://developers.vtex.com/docs/guides/vtex-io-documentation-policies
📖
Documentation
https://developers.vtex.com/docs/guides/pricing-hub
📖
Documentation
https://developers.vtex.com/docs/guides/pricing-overview
📖
Documentation
https://developers.vtex.com/docs/guides/profile-system
📖
Documentation
https://developers.vtex.com/docs/guides/promotions-overview
📖
Documentation
https://developers.vtex.com/docs/apps/vtex.reviews-and-ratings
📖
Documentation
https://developers.vtex.com/docs/guides/sent-offers-integration-guide-connectors
📖
Documentation
https://developers.vtex.com/docs/guides/sessions-system-overview
📖
Documentation
https://developers.vtex.com/docs/guides/vtex-shipping-network
📖
Documentation
https://help.vtex.com/en/tutorial/sku-bindings--1SmrVgNwjJX17hdqwLa0TX
📖
Documentation
https://developers.vtex.com/docs/guides/subscriptions
📖
Documentation
https://developers.vtex.com/docs/apps/vtex.search/suggestions
📖
Documentation
https://developers.vtex.com/docs/guides/vtex-tracking

Specifications

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/vtex-payment-flow-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

vtex-payment-flow-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: VTex Payment Provider Protocol Payment Flow API
  description: ">ℹ️ The Payment Provider Protocol is a set of definitions to help you integrate your payment processing API into the VTEX platform, including sub-acquirers, acquirers, gateways, and custom payment services. \n\nTo achieve this, you must implement a web API (REST) following the specifications described in this documentation.\n\nTo learn more about the Payment Provider Protocol, check our [Help Center article](https://help.vtex.com/en/tutorial/payment-provider-protocol--RdsT2spdq80MMwwOeEq0m).\n\n## Endpoint requirements\n\n  * Must use a standard subdomain/domain name, not an IP address.\n  * Must be served over HTTPS on port 443 with TLS 1.2 support.\n  * Must respond in less than 5 seconds when running the tests.\n  * Must respond in less than 20 seconds when in production.\n  * Must be [PCI-DSS compliant](https://developers.vtex.com/docs/guides/payments-integration-pci-dss-compliance) or use [Secure Proxy](https://developers.vtex.com/docs/guides/payments-integration-secure-proxy) to accept branded cards like Visa, Mastercard, Amex, etc.\n\n## Testing\n\nYou can perform tests on your payment provider using our [VTEX - Payment Provider Test Suite](https://apps.vtex.com/vtex-payment-provider-test-suite/p).\n\n>ℹ An extra header `X-VTEX-API-Is-TestSuite` = `true` will be sent for every test suite request, to help you easily identify it and mock any required scenarios.\n\nFor more details about testing a Payment Provider, check our [Payment Provider Homologation](https://developers.vtex.com/docs/guides/payments-integration-payment-provider-homologation) article.\n\n## Common parameters in the documentation\n\n<table>\n  <tr>\n    <td><code>{{providerApiEndpoint}}</code></td>\n    <td>Provider's endpoint for the implementation.</td>\n  </tr>\n  <tr>\n    <td><code>{{X-PROVIDER-API-AppKey}}</code></td>\n    <td>Unique identifier created by the provider and configured on the provider configuration page (Admin VTEX).</td>\n  </tr>\n  <tr>\n    <td><code>{{X-PROVIDER-API-AppToken}}</code></td>\n    <td>Unique token created by the provider and configured on the provider configuration page (Admin VTEX).</td>\n  </tr>\n</table> \n\n## Payment Provider Protocol API Index\n\n### Payment Flow\n\n- `GET` [List Payment Provider Manifest](https://developers.vtex.com/docs/api-reference/payment-provider-protocol#get-/manifest)\n- `POST` [Create payment](https://developers.vtex.com/docs/api-reference/payment-provider-protocol#post-/payments)\n- `POST` [Cancel payment](https://developers.vtex.com/docs/api-reference/payment-provider-protocol#post-/payments/-paymentId-/cancellations)\n- `POST` [Settle payment](https://developers.vtex.com/docs/api-reference/payment-provider-protocol#post-/payments/-paymentId-/settlements)\n- `POST` [Refund payment](https://developers.vtex.com/docs/api-reference/payment-provider-protocol#post-/payments/-paymentId-/refunds)\n- `POST` [Inbound request (BETA)](https://developers.vtex.com/docs/api-reference/payment-provider-protocol#post-/payments/-paymentId-/inbound-request/-action-)\n\n### Configuration Flow\n\n- `POST` [Create authorization token](https://developers.vtex.com/docs/api-reference/payment-provider-protocol#post-/authorization/token)\n- `GET` [Provider authentication](https://developers.vtex.com/docs/api-reference/payment-provider-protocol#get-/authorization/redirect)\n- `GET` [Get credentials](https://developers.vtex.com/docs/api-reference/payment-provider-protocol#get-/authorization/credentials)"
  version: '1.0'
servers:
- url: https://{providerApiEndpoint}
  description: Payment provider endpoint URL.
  variables:
    providerApiEndpoint:
      description: Payment provider endpoint URL.
      default: '{providerApiEndpoint}'
tags:
- name: Payment Flow
paths:
  /manifest:
    get:
      tags:
      - Payment Flow
      summary: VTex List Payment Provider Manifest
      description: "Exposes the provider manifest, including metadata settings such as payment methods, split configuration, and custom fields.\n\n> ℹ️ This request is made from VTEX to the payment provider.\n\n## Available payment methods\n\n<table>\n    <tr>\n        <th>Payment Method</th>\n        <th>Type</th>\n        <th>Country</th>\n    </tr>\n    <tr>\n        <td><code>Visa</code></td>\n        <td>Credit Card</td>\n        <td>Global</td>\n    </tr>\n    <tr>\n        <td><code>Mastercard</code></td>\n        <td>Credit Card</td>\n        <td>Global</td>\n    </tr>\n    <tr>\n        <td><code>American Express</code></td>\n        <td>Credit Card</td>\n        <td>Global</td>\n    </tr>\n    <tr>\n        <td><code>Discover</code></td>\n        <td>Credit Card</td>\n        <td>Global</td>\n    </tr>\n    <tr>\n        <td><code>JCB</code></td>\n        <td>Credit Card</td>\n        <td>Global</td>\n    </tr>\n    <tr>\n        <td><code>Diners</code></td>\n        <td>Credit Card</td>\n        <td>Global</td>\n    </tr>\n    <tr>\n        <td><code>Elo</code></td>\n        <td>Credit Card</td>\n        <td>Brazil</td>\n    </tr>\n    <tr>\n        <td><code>Hipercard</code></td>\n        <td>Credit Card</td>\n        <td>Brazil</td>\n    </tr>\n    <tr>\n        <td><code>Aura</code></td>\n        <td>Credit Card</td>\n        <td>Brazil</td>\n    </tr>\n    <tr>\n        <td><code>Banricompras</code></td>\n        <td>Credit Card</td>\n        <td>Brazil</td>\n    </tr>\n    <tr>\n        <td><code>Credz</code></td>\n        <td>Credit Card</td>\n        <td>Brazil</td>\n    </tr>\n    <tr>\n        <td><code>Cabal</code></td>\n        <td>Credit Card</td>\n        <td>Argentina, Brazil, Uruguay, Paraguay</td>\n    </tr>\n        <td><code>Cartes Bancaires (CB)</code></td>\n        <td>Credit Card</td>\n        <td>France</td>\n    </tr>\n    <tr>\n        <td><code>VirtualDebitElo</code></td>\n        <td>Debit Card</td>\n        <td>Brazil</td>\n    </tr>\n    <tr>\n        <td><code>Visa Electron</code></td>\n        <td>Debit Card</td>\n        <td>Global</td>\n    </tr>\n    <tr>\n        <td><code>Maestro</code></td>\n        <td>Debit Card</td>\n        <td>Global</td>\n    </tr>\n    <tr>\n        <td><code>Mastercard Debit</code></td>\n        <td>Debit Card</td>\n        <td>Global</td>\n    </tr>\n    <tr>\n        <td><code>Débito Online</code></td>\n        <td>Debit Card</td>\n        <td>Brazil</td>\n    </tr>\n    <tr>\n        <td><code>Cobranded</code></td>\n        <td>Card</td>\n        <td>Global</td>\n    </tr>\n    <tr>\n        <td><code>Privatelabels</code></td>\n        <td>Card</td>\n        <td>Global</td>\n    </tr>\n    <tr>\n        <td><code>Promissories</code></td>\n        <td>Generic</td>\n        <td>Global</td>\n    </tr>\n    <tr>\n        <td><code>Cash</code></td>\n        <td>Generic</td>\n        <td>Global</td>\n    </tr>\n    <tr>\n        <td><code>Pix</code></td>\n        <td>Online Transfer</td>\n        <td>Brazil</td>\n    </tr>\n    <tr>\n        <td><code>Safetypay</code></td>\n        <td>Online Transfer</td>\n        <td>Americas and Europe</td>\n    </tr>\n    <tr>\n        <td><code>BankInvoice</code></td>\n        <td>Offline/Voucher</td>\n        <td>Brazil (Boleto Bancário)</td>\n    </tr>\n    <tr>\n        <td><code>FichaDeposito</code></td>\n        <td>Offline/Voucher</td>\n        <td>Mexico</td>\n    </tr>\n    <tr>\n        <td><code>Rapipago</code></td>\n        <td>Offline/Voucher</td>\n        <td>Argentina</td>\n    </tr>\n    <tr>\n        <td><code>OXXO</code></td>\n        <td>Offline/Voucher</td>\n        <td>Mexico</td>\n    </tr>\n    <tr>\n        <td><code>Voucher</code></td>\n        <td>Offline/Voucher</td>\n        <td>Mexico</td>\n    </tr>\n    <tr>\n        <td><code>Bitcoin</code></td>\n        <td>Cryptocurrency</td>\n        <td>Global</td>\n    </tr>\n    <tr>\n        <td><code>Venda Direta Credito</code></td>\n        <td>Credit Card (Physical)</td>\n        <td>Global</td>\n    </tr>\n    <tr>\n        <td><code>Venda Direta Debito</code></td>\n        <td>Debit Card (Physical)</td>\n        <td>Global</td>\n    </tr>\n</table> \n\n## Permissions\n\nCheck with your service provider to know what permissions are needed."
      operationId: Manifest
      security: []
      parameters:
      - $ref: '#/components/parameters/Content-Type'
      - $ref: '#/components/parameters/Accept'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Success-Manifest'
              example:
                paymentMethods:
                - name: Visa
                  allowsSplit: onCapture
                - name: Pix
                  allowsSplit: disabled
                - name: Mastercard
                  allowsSplit: onCapture
                - name: American Express
                  allowsSplit: onCapture
                - name: BankInvoice
                  allowsSplit: onAuthorize
                - name: Privatelabels
                  allowsSplit: disabled
                - name: Promissories
                  allowsSplit: disabled
                customFields:
                - name: Merchant's custom field
                  type: text
                - name: Merchant's custom select field
                  type: select
                  options:
                  - text: Field option 1
                    value: '1'
                  - text: Field option 2
                    value: '2'
                  - text: Field option 3
                    value: '3'
                autoSettleDelay:
                  minimum: '0'
                  maximum: '720'
                metadataFields:
                - MetadataName1
                - MetadataName2
      deprecated: false
  /payments:
    post:
      tags:
      - Payment Flow
      summary: VTex Create payment
      description: "Creates a new payment and initiates the payment flow.\n\n> ℹ️ This request is made from VTEX to the payment provider.\n\nPayment providers must:\n\n- Execute authorization on payments made through credit/debit card or any synchronized payments;\n\n- Return the required information to the customer on payments made through bank-issued invoice, redirect, or any async payments.\n\n >ℹ️ This endpoint has to meet the principle of [idempotence](https://en.wikipedia.org/wiki/Idempotence). When calling this endpoint for the first time of a payment, without a `paymentId`, it should create a new payment. When calling this endpoint for an existing `paymentId`, it should not create another payment, but return the updated status of the existing payment instead.\n\n## Callbacks (asynchronous flow)\n\nCallbacks are used for asynchronous payments, which do not receive the final status immediately. At first, an `undefined` status is returned, and the final status will be received from a callback request in the future as `authorized` or `denied`. There are two types of callbacks:\n\n- **Notification:** If a payment returns with `undefined` status, you are expected to send us a callback/notification to update it later, sending a POST with an updated version of your response (same structure as above) to the `callbackUrl` we have provided.\n\n- **Retry:** If a payment returns with `undefined` status, you are expected to call the retry endpoint provided by the `callbackUrl` when the processing of the payment is completed, so we make another Create Payment request to update the status with the new value (`authorized` or `denied`).\n\nCallback requests should be authenticated using a Key and Token which you can [generate from your VTEX partner account License Manager](https://help.vtex.com/en/tutorial/application-keys--2iffYzlvvz4BDMr6WGUtet#generating-app-keys-in-your-account). To do so, `POST` your request passing the `X-VTEX-API-AppKey` and `X-VTEX-API-AppToken` headers with your credentials. **Note:** do not mix up these credentials with the ones we send on behalf of the merchant when sending our requests.\n\n>⚠ For integrations not using VTEX IO, use the **Notification** callback. For integrations developed using VTEX IO infrastructure, use the **Retry** callback.\n\n### Callback URL\n\nThe `callbackUrl` field contains an URL that the payment provider uses to make a callback and inform our gateway of the final payment status: `approved` or `denied`. \n\nThis URL has some query parameters, including the `X-VTEX-signature`. This parameter is mandatory and contains a signature token to identify that the request has been generated from VTEX as a security measure. The signature token has at most 32 characters. You can check an example of callback URL with the signature token below:\n\n```\nhttps://gatewayqa.vtexpayments.com.br/api/pvt/payment-provider/transactions/8FB0F111111122222333344449984ACB/payments/A2A9A25B11111111222222333327883C/callback?accountName=teampaymentsintegrations&X-VTEX-signature=R******tk\n```\n\nIn the [Transactions page of the Admin](https://help.vtex.com/en/tutorial/how-to-view-the-orders-details--tutorials_452), the signature token appears masked for security reasons, as in this example: `X-VTEX-signature=Rj******tk`.\n\nWhen making the callback request, we recommend that payment providers use the callback URL exactly as received, which guarantees that all the parameters are included.\n\nSee below an example of a payload forwarded along with the callback URL:\n\n```json\n{\n    \"paymentId\": \"8B3BA2F4352545A8B1C5A215F356A01C\",\n    \"status\": \"approved\",\n    \"authorizationId\": \"184520\",\n    \"nsu\": \"21705348\",\n    \"tid\": \"21705348\",\n    \"acquirer\": \"pagmm\",\n    \"code\": \"0000\",\n    \"message\": \"Successfully approved transaction\",\n    \"delayToAutoSettle\": 1200,\n    \"delayToAutoSettleAfterAntifraud\": 1200,\n    \"delayToCancel\": 86400,\n    \"cardBrand\": \"Mastercard\",\n    \"firstDigits\": \"534696\",\n    \"lastDigits\": \"6921\",\n    \"maxValue\": 16.6\n}\n```\n\n>ℹ️ The parameter values sent in the callback payload replace the original values informed in the **Create Payment** request.\n\n>⚠️ If the waiting parameters (`delayToAutoSettle` and `delayToAutoSettleAfterAntifraud`) are not sent with the callback URL, the values for these parameters will be automatically set to 24 hours.\n\n## Beta features\n\nThe beta features available for payment providers are:\n\n- `inboundRequestsUrl`: Allows to forward external requests back to your payment provider implementation, including the configured credentials (`X-VTEX-API-*` headers), and settings.\n\n>ℹ You can reach out to our team by [opening a ticket](https://help.vtex.com/en/tutorial/opening-tickets-to-vtex-support--16yOEqpO32UQYygSmMSSAM) to know more about any beta features.\n\n## Permissions\n\nCheck with your service provider to know what permissions are needed."
      operationId: CreatePayment
      parameters:
      - $ref: '#/components/parameters/X-PROVIDER-API-AppKey'
      - $ref: '#/components/parameters/X-PROVIDER-API-AppToken'
      - $ref: '#/components/parameters/Content-Type'
      - $ref: '#/components/parameters/Accept'
      security:
      - appKey: []
        appToken: []
      - VtexIdclientAutCookie: []
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
              - reference
              - orderId
              - shopperInteraction
              - transactionId
              - paymentId
              - paymentMethod
              - paymentMethodCustomCode
              - merchantName
              - value
              - currency
              - installments
              - deviceFingerprint
              - miniCart
              - url
              - callbackUrl
              - returnUrl
              properties:
                reference:
                  type: string
                  description: Merchant's order reference provided by VTEX Checkout.
                  example: '618272'
                orderId:
                  type: string
                  description: Merchant's order identifier provided by VTEX Checkout (also called order group).
                  example: '1072430428324'
                shopperInteraction:
                  type: string
                  description: 'Indicates which system the buyer interacted with (examples: ecommerce, instore, subscription).'
                  example: ecommerce
                verificationOnly:
                  type: boolean
                  description: Indicates whether this payment is just to validate the buyer's payment method information (for instance, validate the credit card information).
                  example: false
                transactionId:
                  type: string
                  description: VTEX transaction ID related to this payment.
                  example: 2F023FD5A72A49D48A8633252B7CCBD6
                paymentId:
                  type: string
                  description: VTEX payment ID that can be used as unique identifier.
                  example: 01693EB95BE443AC85874E395CD91565
                paymentMethod:
                  type: string
                  description: The payment method chosen for this payment. It must be one of the available payment methods offered by the provider, which can be obtained from the [List Payment Provider Manifest endpoint](https://developers.vtex.com/docs/api-reference/payment-provider-protocol#get-/manifest).
                  example: Diners
                paymentMethodCustomCode:
                  type:
                  - string
                  - 'null'
                  description: Configurable for Cobranded and Privatelabels payment methods.
                  example: null
                merchantName:
                  type: string
                  description: VTEX merchant name that will receive the payment.
                  example: mystore
                value:
                  type: number
                  description: Value amount of the payment.
                  example: 31.9
                referenceValue:
                  type: number
                  description: Value amount of the payment without interest applied. This value is the same as the "value" field when "installmentsInterestRate" is 0.0.
                  example: 31.9
                currency:
                  type: string
                  description: Currency code (ISO 4217 alpha-3).
                  example: BRL
                installments:
                  type: number
                  description: Number of installments.
                  example: 1
                installmentsInterestRate:
                  type: number
                  description: The interest rate.
                  example: 0
                installmentsValue:
                  type: number
                  description: The value of each installment.
                  example: 31.9
                deviceFingerprint:
                  type: string
                  description: A hash that represents the device used to initiate the payment.
                  example: '75076388'
                ipAddress:
                  type: string
                  description: The IP Address of the buyer.
                  example: 187.105.111.65
                card:
                  type: object
                  description: Card information used for payment. This parameter is required only with card payment methods (credit, debit or co-branded).
                  required:
                  - holder
                  - number
                  - csc
                  - expiration
                  properties:
                    holder:
                      type:
                      - string
                      - 'null'
                      description: Card holder name.
                      example: John Doe
                    holderToken:
                      type: string
                      description: A token representing the card holder (this field is absent in case the provider does not use the [Secure Proxy](https://developers.vtex.com/docs/guides/payments-integration-secure-proxy)).
                      example: '#vtex#token#d799bae#csc#'
                    number:
                      type:
                      - string
                      - 'null'
                      description: Card number.
                      example: 364901****2661
                    csc:
                      type:
                      - string
                      - 'null'
                      description: Card security code.
                      example: '***'
                    bin:
                      type: string
                      description: First six digits of the card number (this field is absent in case the provider does not use the [Secure Proxy](https://developers.vtex.com/docs/guides/payments-integration-secure-proxy)).
                      example: '364901'
                    numberToken:
                      type: string
                      description: A token representing the card number (this field is absent in case the provider does not use the [Secure Proxy](https://developers.vtex.com/docs/guides/payments-integration-secure-proxy)).
                      example: '#vtex#token#d799bae#number#'
                    numberLength:
                      type: number
                      description: The number of characters in the card number (this field is absent in case the provider does not use the [Secure Proxy](https://developers.vtex.com/docs/guides/payments-integration-secure-proxy)).
                      example: 16
                    cscToken:
                      type: string
                      description: A token representing the card security code (this field is absent in case the provider does not use the [Secure Proxy](https://developers.vtex.com/docs/guides/payments-integration-secure-proxy)).
                      example: '#vtex#token#d799bae#csc#'
                    cscLength:
                      type: number
                      description: The number of characters in the Card Security Code (this field is absent in case the provider does not use the [Secure Proxy](https://developers.vtex.com/docs/guides/payments-integration-secure-proxy)).
                      example: 3
                    expiration:
                      type: object
                      description: Information about card expiration.
                      required:
                      - month
                      - year
                      properties:
                        month:
                          type:
                          - string
                          - 'null'
                          description: Card expiration month (2-digits).
                          example: '12'
                        year:
                          type:
                          - string
                          - 'null'
                          description: Card expiration year (4-digits).
                          example: '2020'
                    document:
                      type: string
                      description: Card holder's document.
                      example: '39295416023'
                    paymentOrigin:
                      type: string
                      description: Identifies the type of wallet used in the payment. Please contact our [VTEX Support](https://help.vtex.com/support) to enable this field in your account.
                      example: Google Pay
                    cryptogram:
                      type: string
                      description: 3DS cryptogram information (available only for payments transactions with DPAN cards). Please contact our [VTEX Support](https://help.vtex.com/support) to enable this field in your account.
                      example: /gAAAAAAAbQHWutaqaYsQLsAAAA=
                    eci:
                      type: string
                      description: '[Electronic Commerce Indicator](https://support.midtrans.com/hc/en-us/articles/204161150-What-is-ECI-on-3DS-protocol-). This value indicates the result of the authentication attempt on transactions enforced by the 3DS (available only for payments transactions with DPAN cards). Please contact our [VTEX Support](https://help.vtex.com/support) to enable this field in your account.'
                      example: '05'
                miniCart:
                  type: object
                  description: Minicart information.
                  required:
                  - shippingValue
                  - taxValue
                  - buyer
                  - shippingAddress
                  - billingAddress
                  - items
                  properties:
                    shippingValue:
                      type: number
                      description: Total shipping value.
                      example: 2
                    taxValue:
                      type: number
                      description: Total tax value.
                      example: 1
                    buyer:
                      type: object
                      description: Buyer information.
                      required:
                      - firstName
                      - lastName
                      - document
                      - documentType
                      - email
                      - phone
                      properties:
                        id:
                          type: string
                          description: Buyer's unique identifier.
                          example: c1245228-1c68-11e6-94ac-0afa86a846a5
                        firstName:
                          type: string
                          description: Buyer's first name.
                          example: John
                        lastName:
                          type: string
                          description: Buyer's last name.
                          example: Doe
                        document:
                          type: string
                          description: Buyer's document number.
                          example: 01234567890
                        documentType:
                          type: string
                          description: Buyer's document type.
                          example: cpf
                        email:
                          type: string
                          description: Buyer's email.
                          example: john.doe@example.com
                        phone:
                          type: string
                          description: Buyer's phone number.
                          example: '+5521999999999'
                        isCorporate:
                          type: boolean
                          description: Indicates whether or not the buyer is corporate. If `true`, the fields `corporateName`, `tradeName` and `corporateDocument` are required.
                          example: false
                        corporateName:
                          type:
                          - string
                          - 'null'
                          description: Buyer's corporate name. This field is required if `isCorporate` is `true`.
                          example: VTEX
                        tradeName:
                          type:
                          - string
                          - 'null'
                          description: Buyer's trade name. This field is required if `isCorporate` is `true`.
                          example: VTEX
                        corporateDocument:
                          type:
                          - string
                          - 'null'
                          description: Buyer's corporate document number. This field is required if `isCorporate` is `true`.
                          example: '123456789'
                        createdDate:
                          type: string
                          description: Date when the buyer's profile was created in yyyy-MM-ddTHH:mm:ss format.
                          example: '2020-02-18T18:17:45'
                    shippingAddress:
                      type: object
                      description: Information about the address where the purchase will be delivered.
                      required:
                      - country
                      - street
                      - number
                      - neighborhood
                      - postalCode
                      - city
                      - state
                      properties:
                        country:
                          type: string
                          description: Shipping address country code (ISO 3166 alpha-3).
                          example: BRA
                        street:
                          type: string
                          description: Shipping address street.
                          example: Praia de Botafogo St.
                        number:
                          type: string
                          description: Shipping address number.
                          example: '300'
                        complement:
                          type: string
                          description: Shipping address complement.
                          example: 3rd Floor
                        neighborhood:
                          type: string
                          description: Shipping address neighborhood.
                          example: Botafogo
                        postalCode:
                          type: string
                          description: Shipping address postal code.
                          example: '22250040'
                        city:
                          type: string
                          description: Shipping address city.
                          example: Rio de Janeiro
                        state:
                          type: string
                          description: Shipping address state/province.
                          example: RJ
                    billingAddress:
                      type: object
                      description: Buyer's billing address information.
                      required:
                      - country
                      - street
                      - number
                      - neighborhood
                      - postalCode
                      - city
                      - state
                      properties:
                        country:
                          type: string
                          description: Billing address country code (ISO 3166 alpha-3).
                          example: BRA
                        street:
                          type: string
                          description: Billing address street.
                          example: Brigadeiro Faria Lima Avenue
                        number:
                          type: string
                          description: Billing address number.
                          example: '4440'
                        complement:
                          type: string
                          description: Billing address complement.
                          example: 10th Floor
                        neighborhood:
                          type: string
                          description: Billing address neighborhood.
                          example: Itaim Bibi
                        postalCode:
                          type: string
                          description: Billing address postal code.
                          example: 04538132
                        city:
                          type: string
                          description: Billing address city.
                          example: São Paulo
                        state:
                          type: string
                          description: Billing address state/province.
                          example: SP
                    items:
                      type: array
                      description: Items of the cart of the purchase.
                      items:
                        type: object
                        description: Cart items information.
                        required:
                        - id
                        - name
                        - price
                        - quantity
                        - discount
                        properties:
                          id:
                            type

# --- truncated at 32 KB (125 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/vtex/refs/heads/main/openapi/vtex-payment-flow-api-openapi.yml