---
title: "Create a payment"
method: POST
path: "/v1/gateway/payments"
tags: ["Direct Payment"]
---

# Create a payment

`POST /v1/gateway/payments`

Create and authorize a payment.

> **Base URL** — to meet PCI requirements, this endpoint must be called against `https://secure.breeze.cash` (production) or `https://secure-sandbox.breeze.cash` (sandbox), **not** the default `api.breeze.cash` host shown elsewhere in this reference.

## Request body

- CreateGatewayPaymentRequest — Server-to-server payment details
  - `amount` integer, required — Payment amount in minor units (e.g. `1000` = $10.00).
  - `currency` 'USD' | 'AUD' | 'CAD' | 'CHF' | 'DKK' | 'EUR' | 'GBP' | 'HKD' | 'JPY' | 'NOK' | 'NZD' | 'PLN' | 'SEK' | 'SGD' | 'TWD' | 'KRW', required — ISO 4217 currency code.
  - `clientReferenceId` string, required — Merchant-provided dedup key. Used to safely retry requests without double-charging.
  - `customer` union, required — Customer identification. Provide one of the three variants below.
    - union
      - object — Use this when the customer already exists in Breeze. Other fields are treated as updates if supplied. Card authorization needs the customer's `firstName`, `lastName`, and `billingEmail`: if the stored customer is missing any of them, supply them here.
        - `id` string, required — Existing Breeze customer identifier (`cus_*`).
        - `email` string, email — Cardholder email. Required when neither `id` nor `referenceId` is provided.
        - `firstName` string — Required when neither `id` nor `referenceId` is provided. Must be supplied together with `lastName`.
        - `lastName` string — Required when neither `id` nor `referenceId` is provided. Must be supplied together with `firstName`.
        - `phone` object — Phone number broken into country code and subscriber number. Must appear in a pair.
          - `countryCode` string, required — ITU dialing prefix without the leading '+', e.g. '1', '44'.
          - `number` string, required — Subscriber number without country code or formatting.
        - `address` object — Billing address. Improves fraud scoring.
          - `line1` string
          - `line2` string
          - `city` string
          - `state` string
          - `postalCode` string
          - `country` string — ISO 3166-1 alpha-2 country code.
      - object — Use this when the customer already exists in Breeze. Other fields are treated as updates if supplied. Card authorization needs the customer's `firstName`, `lastName`, and `billingEmail`: if the stored customer is missing any of them, supply them here.
        - `id` string, required — Existing Breeze customer identifier (`cus_*`).
        - `email` string, email — Cardholder email. Required when neither `id` nor `referenceId` is provided.
        - `firstName` string — Required when neither `id` nor `referenceId` is provided. Must be supplied together with `lastName`.
        - `lastName` string — Required when neither `id` nor `referenceId` is provided. Must be supplied together with `firstName`.
        - `phone` object — Phone number broken into country code and subscriber number. Must appear in a pair.
          - `countryCode` string, required — ITU dialing prefix without the leading '+', e.g. '1', '44'.
          - `number` string, required — Subscriber number without country code or formatting.
        - `address` object — Billing address. Improves fraud scoring.
          - `line1` string
          - `line2` string
          - `city` string
          - `state` string
          - `postalCode` string
          - `country` string — ISO 3166-1 alpha-2 country code.
      - object — Use this when the customer already exists in Breeze. Other fields are treated as updates if supplied. Card authorization needs the customer's `firstName`, `lastName`, and `billingEmail`: if the stored customer is missing any of them, supply them here.
        - `id` string, required — Existing Breeze customer identifier (`cus_*`).
        - `email` string, email — Cardholder email. Required when neither `id` nor `referenceId` is provided.
        - `firstName` string — Required when neither `id` nor `referenceId` is provided. Must be supplied together with `lastName`.
        - `lastName` string — Required when neither `id` nor `referenceId` is provided. Must be supplied together with `firstName`.
        - `phone` object — Phone number broken into country code and subscriber number. Must appear in a pair.
          - `countryCode` string, required — ITU dialing prefix without the leading '+', e.g. '1', '44'.
          - `number` string, required — Subscriber number without country code or formatting.
        - `address` object — Billing address. Improves fraud scoring.
          - `line1` string
          - `line2` string
          - `city` string
          - `state` string
          - `postalCode` string
          - `country` string — ISO 3166-1 alpha-2 country code.
      - object — Use this when the customer already exists in Breeze. Other fields are treated as updates if supplied. Card authorization needs the customer's `firstName`, `lastName`, and `billingEmail`: if the stored customer is missing any of them, supply them here.
        - `id` string, required — Existing Breeze customer identifier (`cus_*`).
        - `email` string, email — Cardholder email. Required when neither `id` nor `referenceId` is provided.
        - `firstName` string — Required when neither `id` nor `referenceId` is provided. Must be supplied together with `lastName`.
        - `lastName` string — Required when neither `id` nor `referenceId` is provided. Must be supplied together with `firstName`.
        - `phone` object — Phone number broken into country code and subscriber number. Must appear in a pair.
          - `countryCode` string, required — ITU dialing prefix without the leading '+', e.g. '1', '44'.
          - `number` string, required — Subscriber number without country code or formatting.
        - `address` object — Billing address. Improves fraud scoring.
          - `line1` string
          - `line2` string
          - `city` string
          - `state` string
          - `postalCode` string
          - `country` string — ISO 3166-1 alpha-2 country code.
    - union
      - object — Merchant-side customer key. If provided, Breeze creates or retrieves a `cus_*`.
        - `referenceId` string, required — Merchant-side customer key. If provided, Breeze creates or retrieves a `cus_*`.
        - `email` string, email — Cardholder email. Required when neither `id` nor `referenceId` is provided.
        - `firstName` string — Required when neither `id` nor `referenceId` is provided. Must be supplied together with `lastName`.
        - `lastName` string — Required when neither `id` nor `referenceId` is provided. Must be supplied together with `firstName`.
        - `phone` object — Phone number broken into country code and subscriber number. Must appear in a pair.
          - `countryCode` string, required — ITU dialing prefix without the leading '+', e.g. '1', '44'.
          - `number` string, required — Subscriber number without country code or formatting.
        - `address` object — Billing address. Improves fraud scoring.
          - `line1` string
          - `line2` string
          - `city` string
          - `state` string
          - `postalCode` string
          - `country` string — ISO 3166-1 alpha-2 country code.
      - object — Merchant-side customer key. If provided, Breeze creates or retrieves a `cus_*`.
        - `referenceId` string, required — Merchant-side customer key. If provided, Breeze creates or retrieves a `cus_*`.
        - `email` string, email — Cardholder email. Required when neither `id` nor `referenceId` is provided.
        - `firstName` string — Required when neither `id` nor `referenceId` is provided. Must be supplied together with `lastName`.
        - `lastName` string — Required when neither `id` nor `referenceId` is provided. Must be supplied together with `firstName`.
        - `phone` object — Phone number broken into country code and subscriber number. Must appear in a pair.
          - `countryCode` string, required — ITU dialing prefix without the leading '+', e.g. '1', '44'.
          - `number` string, required — Subscriber number without country code or formatting.
        - `address` object — Billing address. Improves fraud scoring.
          - `line1` string
          - `line2` string
          - `city` string
          - `state` string
          - `postalCode` string
          - `country` string — ISO 3166-1 alpha-2 country code.
      - object — Merchant-side customer key. If provided, Breeze creates or retrieves a `cus_*`.
        - `referenceId` string, required — Merchant-side customer key. If provided, Breeze creates or retrieves a `cus_*`.
        - `email` string, email — Cardholder email. Required when neither `id` nor `referenceId` is provided.
        - `firstName` string — Required when neither `id` nor `referenceId` is provided. Must be supplied together with `lastName`.
        - `lastName` string — Required when neither `id` nor `referenceId` is provided. Must be supplied together with `firstName`.
        - `phone` object — Phone number broken into country code and subscriber number. Must appear in a pair.
          - `countryCode` string, required — ITU dialing prefix without the leading '+', e.g. '1', '44'.
          - `number` string, required — Subscriber number without country code or formatting.
        - `address` object — Billing address. Improves fraud scoring.
          - `line1` string
          - `line2` string
          - `city` string
          - `state` string
          - `postalCode` string
          - `country` string — ISO 3166-1 alpha-2 country code.
      - object — Merchant-side customer key. If provided, Breeze creates or retrieves a `cus_*`.
        - `referenceId` string, required — Merchant-side customer key. If provided, Breeze creates or retrieves a `cus_*`.
        - `email` string, email — Cardholder email. Required when neither `id` nor `referenceId` is provided.
        - `firstName` string — Required when neither `id` nor `referenceId` is provided. Must be supplied together with `lastName`.
        - `lastName` string — Required when neither `id` nor `referenceId` is provided. Must be supplied together with `firstName`.
        - `phone` object — Phone number broken into country code and subscriber number. Must appear in a pair.
          - `countryCode` string, required — ITU dialing prefix without the leading '+', e.g. '1', '44'.
          - `number` string, required — Subscriber number without country code or formatting.
        - `address` object — Billing address. Improves fraud scoring.
          - `line1` string
          - `line2` string
          - `city` string
          - `state` string
          - `postalCode` string
          - `country` string — ISO 3166-1 alpha-2 country code.
    - union
      - object — One-off shopper without `id` or `referenceId`. `email`, `firstName`, and `lastName` are all required. Not allowed when `paymentMethod.storeFutureUsage` is set.
        - `email` string, email, required — Cardholder email. Required when neither `id` nor `referenceId` is provided.
        - `firstName` string, required — Required when neither `id` nor `referenceId` is provided. Must be supplied together with `lastName`.
        - `lastName` string, required — Required when neither `id` nor `referenceId` is provided. Must be supplied together with `firstName`.
        - `phone` object — Phone number broken into country code and subscriber number. Must appear in a pair.
          - `countryCode` string, required — ITU dialing prefix without the leading '+', e.g. '1', '44'.
          - `number` string, required — Subscriber number without country code or formatting.
        - `address` object — Billing address. Improves fraud scoring.
          - `line1` string
          - `line2` string
          - `city` string
          - `state` string
          - `postalCode` string
          - `country` string — ISO 3166-1 alpha-2 country code.
      - object — One-off shopper without `id` or `referenceId`. `email`, `firstName`, and `lastName` are all required. Not allowed when `paymentMethod.storeFutureUsage` is set.
        - `email` string, email, required — Cardholder email. Required when neither `id` nor `referenceId` is provided.
        - `firstName` string, required — Required when neither `id` nor `referenceId` is provided. Must be supplied together with `lastName`.
        - `lastName` string, required — Required when neither `id` nor `referenceId` is provided. Must be supplied together with `firstName`.
        - `phone` object — Phone number broken into country code and subscriber number. Must appear in a pair.
          - `countryCode` string, required — ITU dialing prefix without the leading '+', e.g. '1', '44'.
          - `number` string, required — Subscriber number without country code or formatting.
        - `address` object — Billing address. Improves fraud scoring.
          - `line1` string
          - `line2` string
          - `city` string
          - `state` string
          - `postalCode` string
          - `country` string — ISO 3166-1 alpha-2 country code.
      - object — One-off shopper without `id` or `referenceId`. `email`, `firstName`, and `lastName` are all required. Not allowed when `paymentMethod.storeFutureUsage` is set.
        - `email` string, email, required — Cardholder email. Required when neither `id` nor `referenceId` is provided.
        - `firstName` string, required — Required when neither `id` nor `referenceId` is provided. Must be supplied together with `lastName`.
        - `lastName` string, required — Required when neither `id` nor `referenceId` is provided. Must be supplied together with `firstName`.
        - `phone` object — Phone number broken into country code and subscriber number. Must appear in a pair.
          - `countryCode` string, required — ITU dialing prefix without the leading '+', e.g. '1', '44'.
          - `number` string, required — Subscriber number without country code or formatting.
        - `address` object — Billing address. Improves fraud scoring.
          - `line1` string
          - `line2` string
          - `city` string
          - `state` string
          - `postalCode` string
          - `country` string — ISO 3166-1 alpha-2 country code.
      - object — One-off shopper without `id` or `referenceId`. `email`, `firstName`, and `lastName` are all required. Not allowed when `paymentMethod.storeFutureUsage` is set.
        - `email` string, email, required — Cardholder email. Required when neither `id` nor `referenceId` is provided.
        - `firstName` string, required — Required when neither `id` nor `referenceId` is provided. Must be supplied together with `lastName`.
        - `lastName` string, required — Required when neither `id` nor `referenceId` is provided. Must be supplied together with `firstName`.
        - `phone` object — Phone number broken into country code and subscriber number. Must appear in a pair.
          - `countryCode` string, required — ITU dialing prefix without the leading '+', e.g. '1', '44'.
          - `number` string, required — Subscriber number without country code or formatting.
        - `address` object — Billing address. Improves fraud scoring.
          - `line1` string
          - `line2` string
          - `city` string
          - `state` string
          - `postalCode` string
          - `country` string — ISO 3166-1 alpha-2 country code.
  - `paymentMethod` union, required — Payment credentials. Pick the variant that matches your integration.
    - object — Submit a raw PAN. CVV is required for customer-initiated transactions.
      - `type` 'RAW_PAN', required
      - `card` object, required
        - `number` string, required — PAN (RAW_PAN), DPAN (Apple Pay / Google Pay CRYPTOGRAM_3DS), FPAN (Google Pay PAN_ONLY), or network token.
        - `expiryMonth` string, required — 2-digit month (`01`–`12`).
        - `expiryYear` string, required — 4-digit year (e.g. `2028`).
        - `scheme` 'VISA' | 'MASTERCARD' | 'AMEX' | 'DISCOVER' | 'DINERS' | 'JCB' | 'CARTES_BANCAIRES' — Card scheme.
        - `issuer` string — Issuing bank.
        - `issuerCountry` string — ISO 3166-1 alpha-2 country of the issuer.
        - `cvv` string — Card CVV/CVC (3 or 4 digits). Required for customer-initiated transactions.
      - `storeFutureUsage` 'on_session' | 'off_session' — Opt-in to saving this card against the customer for future reuse. Requires `customer.id` or `customer.referenceId`.
    - object — Submit a decrypted Apple Pay token (DPAN + TAVV cryptogram). Cryptogram is required for customer-initiated transactions.
      - `type` 'DECRYPTED_APPLE_PAY', required
      - `card` object, required
        - `number` string, required — PAN (RAW_PAN), DPAN (Apple Pay / Google Pay CRYPTOGRAM_3DS), FPAN (Google Pay PAN_ONLY), or network token.
        - `expiryMonth` string, required — 2-digit month (`01`–`12`).
        - `expiryYear` string, required — 4-digit year (e.g. `2028`).
        - `scheme` 'VISA' | 'MASTERCARD' | 'AMEX' | 'DISCOVER' | 'DINERS' | 'JCB' | 'CARTES_BANCAIRES' — Card scheme.
        - `issuer` string — Issuing bank.
        - `issuerCountry` string — ISO 3166-1 alpha-2 country of the issuer.
      - `network` object
        - `eci` string — ECI indicator (e.g. `05` for Visa, `02` for Mastercard).
        - `cryptogram` string — Base64-encoded cryptogram (TAVV for Apple Pay, CAVV for Google Pay). Required for customer-initiated transactions.
      - `storeFutureUsage` 'on_session' | 'off_session' — Opt-in to saving this card against the customer for future reuse. Requires `customer.id` or `customer.referenceId`.
    - object — Submit a decrypted Google Pay token with `tokenType: PAN_ONLY` — underlying value is an FPAN; no cryptogram.
      - `type` 'DECRYPTED_GOOGLE_PAY', required
      - `card` object, required
        - `number` string, required — PAN (RAW_PAN), DPAN (Apple Pay / Google Pay CRYPTOGRAM_3DS), FPAN (Google Pay PAN_ONLY), or network token.
        - `expiryMonth` string, required — 2-digit month (`01`–`12`).
        - `expiryYear` string, required — 4-digit year (e.g. `2028`).
        - `scheme` 'VISA' | 'MASTERCARD' | 'AMEX' | 'DISCOVER' | 'DINERS' | 'JCB' | 'CARTES_BANCAIRES' — Card scheme.
        - `issuer` string — Issuing bank.
        - `issuerCountry` string — ISO 3166-1 alpha-2 country of the issuer.
      - `network` object, required
        - `tokenType` 'PAN_ONLY', required — Google Pay token type — `PAN_ONLY` (underlying FPAN) or `CRYPTOGRAM_3DS` (underlying DPAN).
      - `storeFutureUsage` 'on_session' | 'off_session' — Opt-in to saving this card against the customer for future reuse. Requires `customer.id` or `customer.referenceId`.
    - object — Submit a decrypted Google Pay token with `tokenType: CRYPTOGRAM_3DS` — underlying value is a DPAN. Cryptogram is required for customer-initiated transactions.
      - `type` 'DECRYPTED_GOOGLE_PAY', required
      - `card` object, required
        - `number` string, required — PAN (RAW_PAN), DPAN (Apple Pay / Google Pay CRYPTOGRAM_3DS), FPAN (Google Pay PAN_ONLY), or network token.
        - `expiryMonth` string, required — 2-digit month (`01`–`12`).
        - `expiryYear` string, required — 4-digit year (e.g. `2028`).
        - `scheme` 'VISA' | 'MASTERCARD' | 'AMEX' | 'DISCOVER' | 'DINERS' | 'JCB' | 'CARTES_BANCAIRES' — Card scheme.
        - `issuer` string — Issuing bank.
        - `issuerCountry` string — ISO 3166-1 alpha-2 country of the issuer.
      - `network` object, required
        - `tokenType` 'CRYPTOGRAM_3DS', required — Google Pay token type — `PAN_ONLY` (underlying FPAN) or `CRYPTOGRAM_3DS` (underlying DPAN).
        - `eci` string — ECI indicator (e.g. `05` for Visa, `02` for Mastercard).
        - `cryptogram` string — Base64-encoded cryptogram (TAVV for Apple Pay, CAVV for Google Pay). Required for customer-initiated transactions.
      - `storeFutureUsage` 'on_session' | 'off_session' — Opt-in to saving this card against the customer for future reuse. Requires `customer.id` or `customer.referenceId`.
    - object — Submit a merchant-provisioned network token (BYOT). Cryptogram is required for customer-initiated transactions.
      - `type` 'NETWORK_TOKEN', required
      - `card` object, required
        - `number` string, required — PAN (RAW_PAN), DPAN (Apple Pay / Google Pay CRYPTOGRAM_3DS), FPAN (Google Pay PAN_ONLY), or network token.
        - `expiryMonth` string, required — 2-digit month (`01`–`12`).
        - `expiryYear` string, required — 4-digit year (e.g. `2028`).
        - `scheme` 'VISA' | 'MASTERCARD' | 'AMEX' | 'DISCOVER' | 'DINERS' | 'JCB' | 'CARTES_BANCAIRES' — Card scheme.
        - `issuer` string — Issuing bank.
        - `issuerCountry` string — ISO 3166-1 alpha-2 country of the issuer.
      - `network` object
        - `eci` string — ECI indicator (e.g. `05` for Visa, `02` for Mastercard).
        - `cryptogram` string — Base64-encoded cryptogram (TAVV for Apple Pay, CAVV for Google Pay). Required for customer-initiated transactions.
      - `storeFutureUsage` 'on_session' | 'off_session' — Opt-in to saving this card against the customer for future reuse. Requires `customer.id` or `customer.referenceId`.
    - object — Re-use a payment method previously stored on a Breeze customer via `storeFutureUsage`.
      - `type` 'SAVED_CARD', required
      - `card` object, required
        - `savedPaymentMethodId` string, required — Saved payment method identifier (`spm_*`) previously stored on a Breeze customer.
  - `transactionContext` object — Required for Merchant-Initiated Transactions (MIT). Optional for standard Customer-Initiated Transactions (CIT).
    - `initiator` 'CUSTOMER' | 'MERCHANT', required — `CUSTOMER` for customer-initiated transactions (CIT); `MERCHANT` for merchant-initiated transactions (MIT).
    - `mitType` 'SUBSCRIPTION' | 'INSTALLMENT' | 'UNSCHEDULED' — Type of merchant-initiated transaction. Required when `initiator` is `MERCHANT`.
    - `originalTransaction` object — References the original customer-initiated transaction. Optional for MIT, but strongly recommended when available — improves authorization rates and supports dispute defense.
      - `schemeTransactionId` string, required — Scheme transaction ID returned by the card network on the original CIT.
  - `threeDs` union — 3DS authentication results. Required for customer-initiated transactions on `RAW_PAN`, `NETWORK_TOKEN`, and `DECRYPTED_GOOGLE_PAY` `PAN_ONLY`; optional otherwise. Merchant-initiated (MIT) transactions skip 3DS.
    - object — Merchant-provided 3DS — merchant performs 3DS on their own infrastructure and submits the authentication artefacts.
      - `mode` 'MERCHANT_PROVIDED', required
      - `version` string — 3DS protocol version, e.g. `2.2.0`.
      - `eci` string — ECI indicator (e.g. `05` for Visa, `02` for Mastercard).
      - `authenticationValue` string — Issuer-returned authentication value (CAVV / AAV).
      - `dsTransactionId` string — Directory server transaction ID.
    - object — Breeze-hosted 3DS — Breeze handles the 3DS challenge. The payment response will return `status: ACTION_REQUIRED` with a `nextAction.redirectUrl` that you send the shopper to.
      - `mode` 'BREEZE_HOSTED', required
      - `successReturnUrl` string, uri, required — Shopper is redirected here after a successful 3DS challenge.
      - `failReturnUrl` string, uri, required — Shopper is redirected here on 3DS failure or abandonment.
  - `risk` object — Risk signals used for fraud scoring. `sessionId` is required for CIT and omitted for MIT.
    - `sessionId` string — Session ID generated by the Breeze Risk SDK. Required for CIT; omitted for MIT (`transactionContext.initiator = MERCHANT`).
    - `ipAddress` union — Shopper IP address (IPv4 or IPv6).
      - string, ipv4
      - string, ipv6
    - `userAgent` string — Shopper browser User-Agent string.
    - `userAgentClientHint` string — `Sec-CH-UA` client hint string.
    - `acceptHeader` string — Shopper `Accept` header.
    - `language` string — Shopper browser language.
    - `timezone` string — Timezone offset from UTC in minutes (e.g. `-480` for UTC+8).
    - `screenWidth` integer — Shopper screen width in pixels.
    - `screenHeight` integer — Shopper screen height in pixels.
    - `colorDepth` integer — Shopper screen color depth.
    - `javaEnabled` boolean — Whether the shopper browser has Java enabled.
    - `javascriptEnabled` boolean — Whether the shopper browser has JavaScript enabled.
    - `timestamp` integer — Client-side Unix timestamp in milliseconds when the signals were captured.
  - `taxDetails` object — Merchant-supplied tax carried within the tax-inclusive `amount`. S2S accepts `merchant_calculated` only.
    - `amount` integer, required — Tax portion of the tax-inclusive `amount`, in minor units. Must satisfy `0 ≤ taxDetails.amount < amount`.
    - `mode` 'merchant_calculated', required — `merchant_calculated` — merchant computes tax; Breeze remits + files as Merchant of Record.
    - `location` object, required — Tax jurisdiction nested under `taxDetails`. Required (country + postalCode) whenever tax is supplied.
      - `country` string, required — ISO 3166-1 alpha-2 country code.
      - `postalCode` string, required — ZIP / postal code used for tax jurisdiction resolution.
  - `metadata` object — Arbitrary key-value pairs. Max 50 keys, string values only.

## Response `200`

Success

- object — The created payment
  - `status` 'SUCCEEDED', required
  - `data` CreateGatewayPaymentResponse, required
    - `pageId` string, required — Payin identifier (`page_*`).
    - `paymentId` string, required — Payment attempt identifier (`py_*`).
    - `status` 'OPEN' | 'EXPIRED' | 'FIAT_CONFIRMED' | 'AUTHORIZING' | 'PENDING_CAPTURE' | 'CONFIRMING' | 'CONFIRMED' | 'REFUNDED' | 'REFUND_PROCESSING' | 'SETTLING' | 'SETTLED' | 'FAILED' | 'SETTLE_FAILED' | 'SUBSCRIPTION_CANCELLED' | 'MANUAL_INSPECTION_REQUIRED' | 'CANCELLED' | 'ACTION_REQUIRED', required — Current payment status.
    - `amount` number, required — Echoed from the request — minor units.
    - `currency` string, required — Echoed from the request — ISO 4217 alpha-3.
    - `createdAt` number, required — Unix timestamp in milliseconds when the payment was created.
    - `updatedAt` number — Unix timestamp in milliseconds when the payment was last updated. Use this field when polling to detect state changes.
    - `customerId` string — Breeze customer identifier (`cus_*`) associated with the payment, when one is resolved.
    - `savedPaymentMethodId` string — Saved payment method identifier when `storeFutureUsage` was set on the request.
    - `schemeTransactionId` string — Scheme transaction ID returned by the card network. Merchants must persist this to chain MIT transactions.
    - `nextAction` object — Action the merchant must take when `status` is `ACTION_REQUIRED`.
      - `type` 'REDIRECT_TO_URL' | 'AUTHENTICATION_REQUIRED', required — Action the merchant must take to progress the payment.
      - `redirectUrl` string — Redirect URL — present when `type` is `REDIRECT_TO_URL`.
    - `metadata` object — Echoed from the request.
    - `taxDetails` object — Merchant-supplied tax when provided on create — amount, mode, and the resolved jurisdiction nested under `location` (BREEZ-11376).
      - `amount` number, required — Tax portion of the tax-inclusive `request.amount`, in minor units. `0 ≤ amount < request.amount`.
      - `mode` 'merchant_calculated', required
      - `location` object, required — Tax jurisdiction (country + postalCode) Breeze persists and remits on (BREEZ-11376). Required whenever tax is supplied — the merchant must assert the jurisdiction explicitly; the customer billing address is NOT used as a fallback.
        - `country` string, required — ISO 3166-1 alpha-2 country code.
        - `postalCode` string, required — ZIP / postal code used for tax jurisdiction resolution.
    - `errorCode` string — Merchant-facing result code surfaced when the payment failed.
    - `failureReason` string — Human-readable failure reason corresponding to `errorCode`.
    - `adviceCode` string — Retry-advice hint corresponding to `errorCode` (e.g. `try_again_later`, `do_not_try_again`, `confirm_card_data`). Omitted when no advice is defined.

## Other responses

- `400` — Bad request
- `401` — Unauthorized

---

[API](https://skmtc.dev/breeze/apis/breeze-api.md) · [All operations](https://skmtc.dev/breeze/apis/breeze-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/breeze/breeze-api/revisions/8911892bdf29/schema)
