---
updatedAt: 2026-07-21T18:18:26.000Z
agentTools:
  projectIndex: https://developer.paze.com/public/llms.txt
---

# Complete Session

This API closes the Merchant and consumer sessions (where applicable) and provides a payment identifier and, if requested, the card details required to successfully process the Payment transaction.If both Merchant and consumer sessions have timed out without receiving a valid input, Complete should not be invoked.  If it is invoked, Merchants will receive a 422 Not Found error.The Merchant must incorporate a card-on-file consent check into their own digital property if they intend to use that functionality in Complete. Card networks handle card-on-file functionality in different ways.  Refer to individual card networks' documentation for clarification and the most up-to-date guidance. Visa allows Merchants or their payment service providers to perform a token-for-token swap with a previous payment token.  This means that, if the transaction type is BOTH, the dynamic data for CARD_ON_FILE will be identical to the dynamic data for PURCHASE. Mastercard has separate tokenization protocols for purchases and cards-on-file.  This means that, if the transaction type is BOTH, the dynamic data will vary and need to be handled differently between PURCHASE and CARD_ON_FILE use cases. Discover does not support card-on-file functionality. Only PURCHASE is supported for Discover cards.

# OpenAPI definition

```json
{
  "openapi": "3.0.3",
  "info": {
    "title": "Paze Checkout API",
    "description": "Paze Checkout API for Merchants",
    "version": "v1"
  },
  "servers": [
    {
      "url": "https://api.paze.com"
    }
  ],
  "security": [
    {
      "OAuth2": []
    }
  ],
  "tags": [
    {
      "name": "Checkout Session",
      "description": "API to enable merchants launching checkout from native mobile application."
    }
  ],
  "paths": {
    "/v1/checkout/sessions/complete": {
      "post": {
        "summary": "Complete Session",
        "tags": [
          "Checkout Session"
        ],
        "description": "This API closes the Merchant and consumer sessions (where applicable) and provides a payment identifier and, if requested, the card details required to successfully process the Payment transaction.If both Merchant and consumer sessions have timed out without receiving a valid input, Complete should not be invoked.  If it is invoked, Merchants will receive a 422 Not Found error.The Merchant must incorporate a card-on-file consent check into their own digital property if they intend to use that functionality in Complete. Card networks handle card-on-file functionality in different ways.  Refer to individual card networks' documentation for clarification and the most up-to-date guidance. Visa allows Merchants or their payment service providers to perform a token-for-token swap with a previous payment token.  This means that, if the transaction type is BOTH, the dynamic data for CARD_ON_FILE will be identical to the dynamic data for PURCHASE. Mastercard has separate tokenization protocols for purchases and cards-on-file.  This means that, if the transaction type is BOTH, the dynamic data will vary and need to be handled differently between PURCHASE and CARD_ON_FILE use cases. Discover does not support card-on-file functionality. Only PURCHASE is supported for Discover cards.",
        "requestBody": {
          "description": "Request Body",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CheckoutSessionCompleteRequest"
              },
              "examples": {
                "CheckoutSessionCompleteAddCardRequestExample": {
                  "$ref": "#/components/examples/CheckoutSessionCompleteRequestAddCardExample"
                },
                "CheckoutSessionCompletePurchaseRequestExample": {
                  "$ref": "#/components/examples/CheckoutSessionCompletePurchaseRequestExample"
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successfully received complete call for transaction",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CheckoutSessionCompleteResponse"
                },
                "examples": {
                  "CheckoutSessionCompleteResponseExample": {
                    "$ref": "#/components/examples/CheckoutSessionCompleteResponseExample"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request. Incorrectly formatted request, may be missing id parameter",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WalletMobile4xxResponse"
                },
                "examples": {
                  "CheckoutSessionCreate400ResponseExample": {
                    "$ref": "#/components/examples/ApiResponse400Example"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized. Access token missing or no longer valid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WalletMobile4xxResponse"
                },
                "examples": {
                  "ApiResponse401Example": {
                    "$ref": "#/components/examples/ApiResponse401Example"
                  }
                }
              }
            }
          },
          "422": {
            "description": "The error occurred at the TSP while processing the provisioning request. The error structure will provide the details as provided by the TSP.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WalletMobile4xxResponse"
                },
                "examples": {
                  "CheckoutSessionCreate422ResponseExample": {
                    "$ref": "#/components/examples/ApiResponse422Example"
                  }
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WalletMobile4xxResponse"
                },
                "examples": {
                  "CheckoutSessionCreate422ResponseExample": {
                    "$ref": "#/components/examples/ApiResponse500Example"
                  }
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "ewsResponse": {
        "description": "Beginning of every response body",
        "type": "object",
        "properties": {
          "clientContext": {
            "type": "string",
            "maxLength": 64
          },
          "ewSID": {
            "type": "string",
            "maxLength": 36,
            "description": "Globally unique identifier generated by Early Warning. Returned in the response message in\nresponse to the initial request. This identifier ties all information about the session together and\nshould be easily accessible by customer staff submitting support requests to Early Warning.\nCharacter set a-f, 0-9, -."
          },
          "timestampISO8601": {
            "type": "string",
            "maxLength": 24,
            "description": "Timestamp of message in ISO8601 extended combined format.\nFormat: {YYYY}-{MM|-{DD}T{HH}:{MM}:{SS}Z\nExample: 2015-12-31T17:18Z Time stamp when response is sent by the Service Operator Services.",
            "format": "date-time"
          }
        },
        "required": [
          "ewSID",
          "timestampISO8601"
        ]
      },
      "WalletMobile4xxResponse": {
        "description": "generic 4xx mobile api response schema",
        "allOf": [
          {
            "$ref": "#/components/schemas/ewsResponse"
          },
          {
            "type": "object",
            "properties": {
              "error": {
                "$ref": "#/components/schemas/error-message"
              }
            }
          }
        ]
      },
      "CheckoutSessionCompleteRequest": {
        "description": "complete Request schema",
        "allOf": [
          {
            "$ref": "#/components/schemas/clientContext"
          },
          {
            "type": "object",
            "properties": {
              "data": {
                "type": "object",
                "description": "Payload containing all fields that can be passed to this API.",
                "properties": {
                  "transactionType": {
                    "$ref": "#/components/schemas/transaction-type"
                  },
                  "sessionId": {
                    "$ref": "#/components/schemas/session-id"
                  },
                  "code": {
                    "type": "string",
                    "maxLength": 10000,
                    "minLength": 0,
                    "pattern": "^[A-Za-z0-9]+\\\\.[A-Za-z0-9_-]+\\\\.[A-Za-z0-9_-]+$"
                  },
                  "processingNetwork": {
                    "type": "string",
                    "enum": [
                      "VISA",
                      "MASTERCARD"
                    ],
                    "description": "If not provided, will default to card network on front of card."
                  },
                  "transactionOptions": {
                    "$ref": "#/components/schemas/transaction-options"
                  },
                  "transactionValue": {
                    "$ref": "#/components/schemas/transaction-value-complete"
                  },
                  "enhancedTransactionData": {
                    "$ref": "#/components/schemas/enhanced-transaction-data"
                  },
                  "pazeOnFile": {
                    "type": "boolean",
                    "description": "Determines whether Paze on File is requested by Merchant."
                  }
                },
                "required": [
                  "sessionId",
                  "code",
                  "transactionType"
                ]
              }
            },
            "required": [
              "data"
            ]
          }
        ]
      },
      "CheckoutSessionCompleteResponse": {
        "description": "complete response schema",
        "allOf": [
          {
            "$ref": "#/components/schemas/ewsResponse"
          },
          {
            "type": "object",
            "properties": {
              "data": {
                "type": "object",
                "description": "Payload containing all fields that returned by API.",
                "properties": {
                  "payloadId": {
                    "type": "string",
                    "maxLength": 50,
                    "description": "This is the unique identifier generated by PazeSM to track and link wallet transaction-specific messages. This will be used as the wallet transaction identifier assigned by the PazeSM system for this particular transaction."
                  },
                  "securePayload": {
                    "type": "string",
                    "description": "Information necessary to process payment. This field will hold the signed and encrypted payload, which once decrypted will contain the structure that follows. <br> NOTE - transactionOptions.payloadTypeIndicator is PAYMENT. <br> Please check securepayload data object."
                  },
                  "pazeOnFileId": {
                    "type": "string",
                    "maxLength": 36
                  },
                  "pazeOnFileStatus": {
                    "type": "string",
                    "enum": [
                      "CREATED",
                      "PAZE_ON_FILE_NOT_ENABLED",
                      "FAILED"
                    ]
                  },
                  "shippingAddress": {
                    "$ref": "#/components/schemas/shipping-address"
                  }
                },
                "required": [
                  "payloadId"
                ]
              }
            },
            "required": [
              "data"
            ]
          }
        ]
      },
      "session-id": {
        "type": "string",
        "minLength": 0,
        "maxLength": 255,
        "description": "Session reference identifier generated by the Merchant. This must be reused across all the Paze APIs involved during a checkout session so all the system activity can be correctly correlated for that single checkout session."
      },
      "billing-preference": {
        "type": "string",
        "maxLength": 32,
        "enum": [
          "ALL",
          "NONE"
        ],
        "default": "ALL",
        "description": "Verbosity of billing address required by the Merchant."
      },
      "transaction-type": {
        "type": "string",
        "maxLength": 128,
        "enum": [
          "PURCHASE",
          "CARD_ON_FILE",
          "BOTH"
        ],
        "default": "PURCHASE",
        "description": "Required if intent is ADD_CARD the allowed value is CARD_ON_FILE. When a Discover card is selected in the checkout flow and returned to the merchant in the checkout response, then the Merchant must provide \"PURCHASE\" or \"BOTH\" only as Discover does not support \"CARD_ON_FILE\". When \"BOTH\" is provided, only a dynamicDataType equal to PURCHASE will be returned."
      },
      "transaction-value": {
        "type": "object",
        "description": "Recommended for consumer reference in the case of an immediate intent to pay. No cart value will be displayed in the Paze UI if this is excluded from the request. Not needed if the consumer is selecting a card to keep on file with Merchant. <br>NOTE - Required if intent is EXPRESS_CHECKOUT. Request will be invalid when transactionValue is provided if intent is ADD_CARD.",
        "properties": {
          "transactionCurrency": {
            "$ref": "#/components/schemas/currency-code"
          },
          "transactionAmount": {
            "type": "string",
            "minLength": 1,
            "pattern": "^[0-9]*(\\.[0-9]{0,2})?$",
            "description": "The amount of the transaction. Must include dollar and cents value in proper format. Digits before and after the decimal point \".\" are required, including trailing zeros."
          },
          "subtotal": {
            "type": "string",
            "pattern": "^[0-9]*(\\.[0-9]{0,2})?$"
          },
          "taxAmount": {
            "type": "string",
            "pattern": "^[0-9]*(\\.[0-9]{0,2})?$"
          },
          "shippingAmount": {
            "type": "string",
            "pattern": "^[0-9]*(\\.[0-9]{0,2})?$"
          },
          "discountAmount": {
            "type": "string",
            "pattern": "^[0-9]*(\\.[0-9]{0,2})?$"
          }
        },
        "required": [
          "transactionCurrency",
          "transactionAmount"
        ]
      },
      "transaction-value-complete": {
        "allOf": [
          {
            "$ref": "#/components/schemas/transaction-value"
          }
        ],
        "description": "Required if transactionType is PURCHASE or BOTH. Request will be invalid when transactionValue is passed with transactionType CARD_ON_FILE."
      },
      "clientContext": {
        "type": "object",
        "properties": {
          "clientContext": {
            "type": "string",
            "pattern": "(^[a-zA-Z0-9_-]{1,64}$)",
            "maxLength": 64,
            "minLength": 0,
            "description": "Customer-defined transaction identifier, reflected in response.  Referred to as “sessionId” in web integration. Session reference identifier generated by the Merchant. If present here, it will be returned in the Checkout response. This is recommended to be identical across the Checkout request and the /wallets/sessions/checkout/complete request."
          }
        }
      },
      "error-details": {
        "type": "array",
        "description": "Provided error message details",
        "items": {
          "type": "object",
          "properties": {
            "reason": {
              "type": "string",
              "maxLength": 128
            },
            "source": {
              "type": "string",
              "maxLength": 128
            },
            "message": {
              "type": "string",
              "maxLength": 256
            }
          }
        }
      },
      "error-message": {
        "type": "object",
        "description": "A provided error message",
        "properties": {
          "reason": {
            "type": "string",
            "maxLength": 64
          },
          "message": {
            "type": "string",
            "maxLength": 1024
          },
          "details": {
            "$ref": "#/components/schemas/error-details"
          }
        },
        "required": [
          "reason",
          "message"
        ]
      },
      "contact-phone": {
        "type": "object",
        "description": "Consumer-provided phone number of the contact person",
        "properties": {
          "countryCode": {
            "type": "string",
            "maxLength": 4,
            "description": "Country code as defined by the International Telecommunication Union (ITU)/ International Subscriber Dialing (ISD) Codes."
          },
          "phoneNumber": {
            "type": "string",
            "maxLength": 10,
            "pattern": "^[0-9]*$",
            "description": "Phone number string without contrycode."
          }
        },
        "required": [
          "countryCode",
          "phoneNumber"
        ]
      },
      "contact-details": {
        "type": "object",
        "description": "Delivery contact details for a shipping address.",
        "properties": {
          "contactFullName": {
            "type": "string",
            "maxLength": 100,
            "minLength": 0,
            "description": "Consumer-provided name of the contact person."
          },
          "contactPhoneNumber": {
            "$ref": "#/components/schemas/contact-phone"
          }
        }
      },
      "country-code": {
        "type": "string",
        "description": "ISO 3166-1 alpha-2 country code.",
        "enum": [
          "AF",
          "AX",
          "AL",
          "DZ",
          "AS",
          "AD",
          "AO",
          "AI",
          "AQ",
          "AG",
          "AR",
          "AM",
          "AW",
          "AU",
          "AT",
          "AZ",
          "BS",
          "BH",
          "BD",
          "BB",
          "BY",
          "BE",
          "BZ",
          "BJ",
          "BM",
          "BT",
          "BO",
          "BQ",
          "BA",
          "BW",
          "BV",
          "BR",
          "IO",
          "BN",
          "BG",
          "BF",
          "BI",
          "CV",
          "KH",
          "CM",
          "CA",
          "KY",
          "CF",
          "TD",
          "CL",
          "CN",
          "CX",
          "CC",
          "CO",
          "KM",
          "CG",
          "CD",
          "CK",
          "CR",
          "CI",
          "HR",
          "CU",
          "CW",
          "CY",
          "CZ",
          "DK",
          "DJ",
          "DM",
          "DO",
          "EC",
          "EG",
          "SV",
          "GQ",
          "ER",
          "EE",
          "SZ",
          "ET",
          "FK",
          "FO",
          "FJ",
          "FI",
          "FR",
          "GF",
          "PF",
          "TF",
          "GA",
          "GM",
          "GE",
          "DE",
          "GH",
          "GI",
          "GR",
          "GL",
          "GD",
          "GP",
          "GU",
          "GT",
          "GG",
          "GN",
          "GW",
          "GY",
          "HT",
          "HM",
          "VA",
          "HN",
          "HK",
          "HU",
          "IS",
          "IN",
          "ID",
          "IR",
          "IQ",
          "IE",
          "IM",
          "IL",
          "IT",
          "JM",
          "JP",
          "JE",
          "JO",
          "KZ",
          "KE",
          "KI",
          "KP",
          "KR",
          "KW",
          "KG",
          "LA",
          "LV",
          "LB",
          "LS",
          "LR",
          "LY",
          "LI",
          "LT",
          "LU",
          "MO",
          "MG",
          "MW",
          "MY",
          "MV",
          "ML",
          "MT",
          "MH",
          "MQ",
          "MR",
          "MU",
          "YT",
          "MX",
          "FM",
          "MD",
          "MC",
          "MN",
          "ME",
          "MS",
          "MA",
          "MZ",
          "MM",
          "NA",
          "NR",
          "NP",
          "NL",
          "NC",
          "NZ",
          "NI",
          "NE",
          "NG",
          "NU",
          "NF",
          "MK",
          "MP",
          "NO",
          "OM",
          "PK",
          "PW",
          "PS",
          "PA",
          "PG",
          "PY",
          "PE",
          "PH",
          "PN",
          "PL",
          "PT",
          "PR",
          "QA",
          "RE",
          "RO",
          "RU",
          "RW",
          "BL",
          "SH",
          "KN",
          "LC",
          "MF",
          "PM",
          "VC",
          "WS",
          "SM",
          "ST",
          "SA",
          "SN",
          "RS",
          "SC",
          "SL",
          "SG",
          "SX",
          "SK",
          "SI",
          "SB",
          "SO",
          "ZA",
          "GS",
          "SS",
          "ES",
          "LK",
          "SD",
          "SR",
          "SJ",
          "SE",
          "CH",
          "SY",
          "TW",
          "TJ",
          "TZ",
          "TH",
          "TL",
          "TG",
          "TK",
          "TO",
          "TT",
          "TN",
          "TR",
          "TM",
          "TC",
          "TV",
          "UG",
          "UA",
          "AE",
          "GB",
          "US",
          "UM",
          "UY",
          "UZ",
          "VU",
          "VE",
          "VN",
          "VG",
          "VI",
          "WF",
          "EH",
          "YE",
          "ZM",
          "ZW"
        ]
      },
      "currency-code": {
        "type": "string",
        "description": "ISO 4217 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",
          "BYN",
          "BZD",
          "CAD",
          "CDF",
          "CHE",
          "CHF",
          "CHW",
          "CLF",
          "CLP",
          "CNY",
          "COP",
          "COU",
          "CRC",
          "CUP",
          "CVE",
          "CZK",
          "DJF",
          "DKK",
          "DOP",
          "DZD",
          "EGP",
          "ERN",
          "ETB",
          "EUR",
          "FJD",
          "FKP",
          "GBP",
          "GEL",
          "GHS",
          "GIP",
          "GMD",
          "GNF",
          "GTQ",
          "GYD",
          "HKD",
          "HNL",
          "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",
          "LYD",
          "MAD",
          "MDL",
          "MGA",
          "MKD",
          "MMK",
          "MNT",
          "MOP",
          "MRU",
          "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",
          "SLE",
          "SOS",
          "SRD",
          "SSP",
          "STN",
          "SVC",
          "SYP",
          "SZL",
          "THB",
          "TJS",
          "TMT",
          "TND",
          "TOP",
          "TRY",
          "TTD",
          "TWD",
          "TZS",
          "UAH",
          "UGX",
          "USD",
          "USN",
          "UYI",
          "UYU",
          "UYW",
          "UZS",
          "VED",
          "VES",
          "VND",
          "VUV",
          "WST",
          "XAF",
          "XAG",
          "XAU",
          "XBA",
          "XBB",
          "XBC",
          "XBD",
          "XCD",
          "XDR",
          "XOF",
          "XPD",
          "XPF",
          "XPT",
          "XSU",
          "XTS",
          "XUA",
          "XXX",
          "YER",
          "ZAR",
          "ZMW",
          "ZWG"
        ]
      },
      "location": {
        "type": "object",
        "description": "Location from which the traveler.",
        "properties": {
          "name": {
            "type": "string",
            "maxLength": 100,
            "minLength": 0
          },
          "line1": {
            "type": "string",
            "maxLength": 50
          },
          "line2": {
            "type": "string",
            "maxLength": 50,
            "minLength": 0
          },
          "line3": {
            "type": "string",
            "maxLength": 50,
            "minLength": 0
          },
          "city": {
            "type": "string",
            "maxLength": 128,
            "minLength": 0
          },
          "state": {
            "type": "string",
            "maxLength": 2,
            "minLength": 0
          },
          "zip": {
            "type": "string",
            "maxLength": 10,
            "description": "Postal Code (5 digit or ZIP+4 format)",
            "minLength": 0
          },
          "countryCode": {
            "$ref": "#/components/schemas/country-code"
          },
          "deliveryContactDetails": {
            "$ref": "#/components/schemas/contact-details"
          }
        },
        "required": [
          "line1",
          "city",
          "state",
          "zip",
          "countryCode"
        ]
      },
      "shipping-address": {
        "type": "object",
        "description": "The selected shipping address.<br>Condition -- Returned only when shippingPreference is not NONE.",
        "properties": {
          "name": {
            "type": "string",
            "maxLength": 100,
            "minLength": 0
          },
          "line1": {
            "type": "string",
            "maxLength": 50,
            "minLength": 0
          },
          "line2": {
            "type": "string",
            "maxLength": 50,
            "minLength": 0
          },
          "line3": {
            "type": "string",
            "maxLength": 50,
            "minLength": 0
          },
          "city": {
            "type": "string",
            "maxLength": 128,
            "minLength": 0
          },
          "state": {
            "type": "string",
            "maxLength": 2,
            "minLength": 0
          },
          "zip": {
            "type": "string",
            "minLength": 0,
            "maxLength": 10,
            "description": "Postal Code (5 digit or ZIP+4 format)"
          },
          "countryCode": {
            "$ref": "#/components/schemas/country-code"
          },
          "deliveryContactDetails": {
            "$ref": "#/components/schemas/contact-details"
          }
        },
        "required": [
          "line1",
          "city",
          "state",
          "zip",
          "countryCode"
        ]
      },
      "transaction-options": {
        "type": "object",
        "description": "Client configuration data that can override any configuration that was created during Merchant onboarding or in the Checkout request",
        "properties": {
          "merchantCategoryCode": {
            "type": "string",
            "description": "Merchant Category Code (MCC) of the Merchant"
          },
          "billingPreference": {
            "$ref": "#/components/schemas/billing-preference"
          },
          "payloadTypeIndicator": {
            "type": "string",
            "enum": [
              "ID",
              "PAYMENT"
            ],
            "description": "<br>* ID Returns payloadId only (default) <br> * PAYMENT Returns payloadId and securedPayload"
          }
        }
      },
      "ecom-data": {
        "type": "object",
        "description": "Details pertaining to electronic commerce purchases",
        "properties": {
          "cartContainsGiftCard": {
            "type": "boolean",
            "description": "Whether current transaction includes a gift card purchase."
          },
          "orderForPickup": {
            "type": "boolean",
            "description": "Whether consumer order will be picked up rather than shipped."
          },
          "orderHighestCost": {
            "type": "string",
            "maxLength": 32,
            "minLength": 0,
            "pattern": "^[0-9]*(\\\\.[0-9]{0,2})?$",
            "description": "Dollar value of most expensive item ordered."
          },
          "orderQuantity": {
            "type": "string",
            "maxLength": 32,
            "minLength": 0,
            "pattern": "^[0-9]*$",
            "description": "Number of items ordered."
          },
          "finalShippingAddress": {
            "$ref": "#/components/schemas/shipping-address"
          }
        }
      },
      "travel-data": {
        "type": "object",
        "description": "Details pertaining to travel bookings.",
        "properties": {
          "passengerName": {
            "type": "string",
            "maxLength": 100,
            "minLength": 0,
            "description": "Traveler name."
          },
          "roundTrip": {
            "type": "boolean",
            "description": "Whether departure and return trips are being purchased in the same transaction."
          },
          "departureDate": {
            "type": "string",
            "maxLength": 20,
            "minLength": 0,
            "description": "Date and time of departure in ISO 8601 format."
          },
          "returnDate": {
            "type": "string",
            "maxLength": 20,
            "minLength": 0,
            "description": "Date and time of return in ISO 8601 format."
          },
          "departureLocation": {
            "$ref": "#/components/schemas/location"
          },
          "returnLocation": {
            "$ref": "#/components/schemas/location"
          }
        }
      },
      "enhanced-transaction-data": {
        "type": "object",
        "properties": {
          "ecomData": {
            "$ref": "#/components/schemas/ecom-data"
          },
          "travelData": {
            "$ref": "#/components/schemas/travel-data"
          }
        }
      }
    },
    "examples": {
      "CheckoutSessionCompletePurchaseRequestExample": {
        "summary": "Complete Purchase Sample Request",
        "value": {
          "clientContext": "queryContext",
          "data": {
            "transactionType": "PURCHASE",
            "sessionId": "5df9983c-bfa1-49ab-ad52-eaab72b6c7c2",
            "code": "abc.def_123.ghi-456",
            "transactionOptions": {
              "merchantCategoryCode": "2121",
              "billingPreference": "ALL",
              "payloadTypeIndicator": "ID"
            },
            "pazeOnFile": true,
            "transactionValue": {
              "transactionCurrency": "USD",
              "transactionAmount": "23.39"
            },
            "enhancedTransactionData": {
              "ecomData": {
                "cartContainsGiftCard": false,
                "orderForPickup": false,
                "orderQuantity": "1",
                "orderHighestCost": "23.39",
                "finalShippingAddress": {
                  "name": "Joe Cool",
                  "line1": "1234 Test Lane",
                  "city": "Scottsdale",
                  "state": "AZ",
                  "zip": "85257",
                  "countryCode": "US"
                }
              },
              "travelData": {
                "passengerName": "Joe Cool",
                "roundTrip": true,
                "departureDate": "2020-07-10T15:00Z",
                "returnDate": "2020-07-11T15:00Z",
                "departureLocation": {
                  "line1": "1 Airport Way",
                  "city": "Phoenix",
                  "state": "AZ",
                  "zip": "85034",
                  "countryCode": "US"
                },
                "returnLocation": {
                  "line1": "1 Airport Way",
                  "city": "Los Angeles",
                  "state": "CA",
                  "zip": "90045",
                  "countryCode": "US"
                }
              }
            }
          }
        }
      },
      "CheckoutSessionCompleteRequestAddCardExample": {
        "summary": "Complete Add Card Sample Request",
        "value": {
          "clientContext": "queryContext",
          "data": {
            "transactionType": "CARD_ON_FILE",
            "sessionId": "5df9983c-bfa1-49ab-ad52-eaab72b6c7c2",
            "code": "abc.def_123.ghi-456",
            "transactionOptions": {
              "merchantCategoryCode": "2121",
              "billingPreference": "ALL",
              "payloadTypeIndicator": "ID"
            }
          }
        }
      },
      "CheckoutSessionCompleteResponseExample": {
        "summary": "Complete Sample Response",
        "value": {
          "clientContext": "querycontext",
          "ewSID": "string",
          "timestampISO8601": "2022-09-21T11:10:34.000Z",
          "data": {
            "payloadId": "paze-generated-uuid",
            "securePayload": "jwe-encrypted-text"
          }
        }
      },
      "ApiResponse401Example": {
        "summary": "401 Unauthorized",
        "value": {
          "error": "server_error"
        }
      },
      "ApiResponse400Example": {
        "summary": "400 Bad Request",
        "value": {
          "error": {
            "message": "Invalid or missing parameters",
            "reason": "INVALID_ARGUMENT"
          },
          "clientContext": "",
          "ewSID": "0b89854e-49ef-40ae-97ae-f3fe921fd3c3",
          "timestampISO8601": "2025-03-25T00:42:45Z"
        }
      },
      "ApiResponse422Example": {
        "summary": "Unprocessable Entity",
        "value": {
          "error": {
            "message": "Unprocessable Entity",
            "reason": "As provided by the TSP"
          },
          "clientContext": "",
          "ewSID": "0b89854e-49ef-40ae-97ae-f3fe921fd3c3",
          "timestampISO8601": "2025-03-25T00:42:45Z"
        }
      },
      "ApiResponse500Example": {
        "summary": "500 Internal Server Error",
        "value": {
          "error": {
            "message": "Internal Server Error.",
            "reason": "SERVER_ERROR"
          },
          "clientContext": "",
          "ewSID": "0b89854e-49ef-40ae-97ae-f3fe921fd3c3",
          "timestampISO8601": "2025-03-25T00:42:45Z"
        }
      }
    },
    "securitySchemes": {
      "OAuth2": {
        "type": "oauth2",
        "flows": {
          "clientCredentials": {
            "tokenUrl": "https://auth.paze.com/token/",
            "scopes": {
              "sessionId": "Merchant sessionId should be passed for create, review and complete"
            }
          }
        }
      }
    }
  }
}
```