---
title: "Google Pay Checkout"
method: POST
path: "/checkout/google-pay/{merchantId}"
tags: ["checkout"]
---

# Google Pay Checkout

`POST /checkout/google-pay/{merchantId}`

## Path parameters

- `merchantId` string, required

## Headers

- `x-coinflow-auth-session-key` string, required
- `x-device-id` string

## Request body

- GooglePayCheckoutArgs
  - `subtotal` union, required
    - CurrencyCents
      - `cents` integer, required
      - `currency` 'USD' | 'AED' | 'AFN' | 'ALL' | 'AMD' | 'ANG' | 'AOA' | 'ARS' | 'AUD' | 'AWG' | 'AZN' | 'BAM' | 'BBD' | 'BDT' | 'BGN' | 'BHD' | 'BIF' | 'BMD' | 'BND' | 'BOB' | 'BRL' | 'BSD' | 'BTN' | 'BWP' | 'BYN' | 'BZD' | 'CAD' | 'CHF' | 'CLF' | 'CLP' | 'CNY' | 'COP' | 'CRC' | 'CUP' | 'CVE' | 'CZK' | 'DJF' | 'DKK' | 'DOP' | 'DZD' | 'EGP' | 'ETB' | 'EUR' | 'FJD' | 'GBP' | 'GEL' | 'GHS' | 'GMD' | 'GNF' | 'GTQ' | 'GYD' | 'HKD' | 'HNL' | 'HTG' | 'HUF' | 'IDR' | 'ILS' | 'INR' | 'IQD' | 'IRR' | 'ISK' | 'JMD' | 'JOD' | 'JPY' | 'KES' | 'KGS' | 'KHR' | 'KMF' | 'KRW' | 'KWD' | 'KYD' | 'KZT' | 'LAK' | 'LBP' | 'LKR' | 'LRD' | 'LSL' | 'LYD' | 'MAD' | 'MDL' | 'MGA' | 'MKD' | 'MMK' | 'MNT' | 'MOP' | 'MRU' | 'MUR' | 'MWK' | 'MVR' | 'MXN' | 'MYR' | 'MZN' | 'NAD' | 'NGN' | 'NIO' | 'NOK' | 'NPR' | 'NZD' | 'OMR' | 'PAB' | 'PEN' | 'PGK' | 'PHP' | 'PKR' | 'PLN' | 'PYG' | 'QAR' | 'RON' | 'RSD' | 'RWF' | 'SAR' | 'SCR' | 'SDG' | 'SEK' | 'SGD' | 'SLE' | 'SLL' | 'SOS' | 'SRD' | 'STN' | 'SVC' | 'SYP' | 'SZL' | 'THB' | 'TJS' | 'TMT' | 'TND' | 'TOP' | 'TRY' | 'TTD' | 'TWD' | 'TZS' | 'UAH' | 'UGX' | 'UYU' | 'UZS' | 'VND' | 'VUV' | 'WST' | 'XAF' | 'XCD' | 'XOF' | 'XPF' | 'YER' | 'ZAR' | 'ZMW' | 'ZWL' | 'CDF' | 'ERN' | 'FKP' | 'KPW' | 'RUB' | 'SBD' | 'SHP' | 'SSP' | 'VES', required
    - Cents
      - `cents` integer, required
    - TokenSubtotal
      - `address` string, required — The tokens address Solana - Token Mint Address Evm - Token Contract Address
      - `amount` union, required — Number of tokens
        - number, double
        - string
      - `decimals` number, double — Number of decimals for the token
  - `webhookInfo` AnyObject
    - `example` string
  - `chargebackProtectionData` CartItemClassOmitted[] — Cart item details required for Coinflow Chargeback Protection. Required if the merchant uses chargeback protection.
    - union
      - PickNftCartItemExcludeKeyofnftCartItemSellingPriceOrItemClass — From T, pick a set of properties whose keys are in the union K
        - `productName` string, required — The name of the related product
        - `productType` 'inGameProduct' | 'gameOfSkill' | 'dataStorage' | 'computingResources' | 'sportsTicket' | 'eSportsTicket' | 'musicTicket' | 'conferenceTicket' | 'virtualSportsTicket' | 'virtualESportsTicket' | 'virtualMusicTicket' | 'virtualConferenceTicket' | 'alcohol' | 'DLC' | 'subscription' | 'fundACause' | 'realEstate' | 'computingContract' | 'digitalArt' | 'topUp' | 'ownershipContract' | 'inGameCurrency' | 'digitalCollectibles' | 'digitalCollectiblesMarketplace' | 'digitalGiftingMarketplace' | 'sweepstakes' | 'virtualSportsEvents' | 'contractInvoicing' | 'onlineCasino' | 'cryptoOnramp' | 'gaming' | 'travelDocuments' | 'musicStreaming' | 'digitalContent' | 'eBooks' | 'digitalSubscriptionContent', required
        - `listPrice` PickNftCartItemExcludeKeyofnftCartItemSellingPriceOrItemClassListPrice — The item's list price
          - `currency` string
          - `valueInCurrency` number, double
        - `quantity` number, double, required — The number of units sold
        - `rawProductData` AnyObject
          - `example` string
        - `seller` SellerInfo
          - `id` string — Id of the seller
          - `email` string, nullable — Email Example: lois.lane@dailyplanet.com
          - `firstName` string — First name Example: Lois
          - `lastName` string — Last name Example: Lois
          - `dob` string — Date of birth, formatted as YYYY-MM-DD. If only the year is known, use YYYY Pattern: ^\d{4}(-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01]))?$
          - `rawSellerData` RecordStringAny — Construct a type with a set of properties K of type T
        - `transactionHistory` TransactionHistoryItem[]
          - `txType` string, required
          - `chain` string, required
          - `paymentAmount` string, required
          - `paymentToken` string, required
          - `to` string, required
          - `from` string, required
          - `registryContract` string, required
          - `assetID` string, required
          - `txTime` string, required
          - `blockNumber` number, double, required
          - `txHash` string, required
      - PickGiftCardCartItemExcludeKeyofGiftCardCartItemListPrice — From T, pick a set of properties whose keys are in the union K
        - `brand` string — The name of the brand
        - `sellingPrice` PickGiftCardCartItemExcludeKeyofGiftCardCartItemListPriceSellingPrice, required
          - `currency` string, required
          - `valueInCurrency` number, double, required
        - `itemClass` 'giftCard', required
        - `productType` 'giftCard', required
        - `quantity` number, double, required — The number of units sold
        - `rawProductData` RecordStringAny — Construct a type with a set of properties K of type T
        - `seller` SellerInfo
          - `id` string — Id of the seller
          - `email` string, nullable — Email Example: lois.lane@dailyplanet.com
          - `firstName` string — First name Example: Lois
          - `lastName` string — Last name Example: Lois
          - `dob` string — Date of birth, formatted as YYYY-MM-DD. If only the year is known, use YYYY Pattern: ^\d{4}(-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01]))?$
          - `rawSellerData` RecordStringAny — Construct a type with a set of properties K of type T
        - `id` string, required — The cart items’s unique ID
        - `itemFulfillment` 'digital' | 'physical', required — How the product was fulfilled.
        - `sku` string — The stock-keeping unit (SKU) number
        - `categories` string[] — The category in the site/app in which the item was classified (e.g., fashion)
        - `isGift` boolean
        - `recipientInfo` RecipientInfo
          - `accountId` string — The ID of the account that will receive the purchased goods
          - `dob` string — Date of birth, formatted as YYYY-MM-DD. If only the year is known, use YYYY Pattern: ^\d{4}(-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01]))?$
          - `email` string, nullable — Email Example: lois.lane@dailyplanet.com
          - `firstName` string — First name Example: Lois
          - `gender` string — Gender Example: female
          - `lastName` string — Last name Example: Lois
          - `message` string — The message that the recipient will receive
          - `phoneInfo` PhoneInfo — Phone information structure
            - `carrier` string — The mobile carrier Example: T-Mobile
            - `countryCode` string, required — The country code (leading `+` is optional) Example: 42 Pattern: ^\+?[0-9]+$
            - `phone` string, required — The phone number without the country code or hyphens Example: 2025550169 Pattern: ^[0-9]+$
          - `shippingAddress` CartItemAddress — Address structure
            - `country` string — Country code specified as a two letter code according to ISO 3166 Alpha-2 Between 2 and 2 characters Example: US Pattern: ^[A-Z]{2}$
            - `state` string — The state or province Example: PA
            - `city` string — The city or locality Example: Pittsburgh
            - `street` string — The street name Example: Baker St
            - `postalCode` string — The address postal code
          - `wallet` RecipientInfoWallet — The crypto wallet that will receive the funds
            - `custodialType` 'custodial' | 'nonCustodial' | 'unknown', required — The type of the wallet Allowed values: custodial, nonCustodial, unknown Example: custodial
            - `blockchain` string, required — The blockchain on which the transaction was made Example: BTC Pattern: ^[A-Z0-9-]+$
            - `address` string, required — The crypto wallet address that will receive the funds
        - `expectedDeliveryDelay` number, double — The expected delay in delivery, in hours
        - `isPresetAmount` boolean — Represents whether the item amount is taken from a preset list, e.g. 25, 50, 100, etc. or whether it was a different amount, e.g. 27
      - CryptoCartItem — Represents a crypto item in a shopping cart
        - `itemClass` 'crypto', required — Denotes the cart item class. The item schema is chosen based on this value. Allowed value: crypto Example: crypto
        - `id` string — The cart items's unique ID Example: 5de33332-546a-4171-8988-2a43d2bfe9c6
        - `rawProductData` AnyObject
          - `example` string
        - `units` string, required — The amount in the crypto currency which is specified in the `cryptoCurrency` property Example: 1.04112 Pattern: ^[0-9]+(\.[0-9]+)?$
        - `cryptoCurrency` string, required — The crypto-currency symbol (uppercase) Example: BTC Pattern: ^[A-Z0-9-]+$
        - `unitPrice` CryptoCartItemUnitPrice, required — The price per 1 unit
          - `currency` string, required — Currency specified as a three letter code according to ISO 4217 Example: USD
          - `valueInCurrency` number, double, required — The amount in the currency, which is specified in the `currency` property Example: 90
        - `expectedDeliveryDelay` number, double — The expected delay in delivery, in hours Min value: 0
        - `recipientInfo` RecipientInfo, required
          - `accountId` string — The ID of the account that will receive the purchased goods
          - `dob` string — Date of birth, formatted as YYYY-MM-DD. If only the year is known, use YYYY Pattern: ^\d{4}(-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01]))?$
          - `email` string, nullable — Email Example: lois.lane@dailyplanet.com
          - `firstName` string — First name Example: Lois
          - `gender` string — Gender Example: female
          - `lastName` string — Last name Example: Lois
          - `message` string — The message that the recipient will receive
          - `phoneInfo` PhoneInfo — Phone information structure
            - `carrier` string — The mobile carrier Example: T-Mobile
            - `countryCode` string, required — The country code (leading `+` is optional) Example: 42 Pattern: ^\+?[0-9]+$
            - `phone` string, required — The phone number without the country code or hyphens Example: 2025550169 Pattern: ^[0-9]+$
          - `shippingAddress` CartItemAddress — Address structure
            - `country` string — Country code specified as a two letter code according to ISO 3166 Alpha-2 Between 2 and 2 characters Example: US Pattern: ^[A-Z]{2}$
            - `state` string — The state or province Example: PA
            - `city` string — The city or locality Example: Pittsburgh
            - `street` string — The street name Example: Baker St
            - `postalCode` string — The address postal code
          - `wallet` RecipientInfoWallet — The crypto wallet that will receive the funds
            - `custodialType` 'custodial' | 'nonCustodial' | 'unknown', required — The type of the wallet Allowed values: custodial, nonCustodial, unknown Example: custodial
            - `blockchain` string, required — The blockchain on which the transaction was made Example: BTC Pattern: ^[A-Z0-9-]+$
            - `address` string, required — The crypto wallet address that will receive the funds
        - `seller` SellerInfo
          - `id` string — Id of the seller
          - `email` string, nullable — Email Example: lois.lane@dailyplanet.com
          - `firstName` string — First name Example: Lois
          - `lastName` string — Last name Example: Lois
          - `dob` string — Date of birth, formatted as YYYY-MM-DD. If only the year is known, use YYYY Pattern: ^\d{4}(-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01]))?$
          - `rawSellerData` RecordStringAny — Construct a type with a set of properties K of type T
      - MoneyTopUpCartItem — Represents a money top-up item in a shopping cart
        - `itemClass` 'moneyTopUp', required — Denotes the cart item class. The item schema is chosen based on this value. Allowed value: moneyTopUp Example: moneyTopUp
        - `id` string — The cart items's unique ID Example: 5de33332-546a-4171-8988-2a43d2bfe9c6
        - `rawProductData` RecordStringAny — Construct a type with a set of properties K of type T
        - `sellingPrice` CurrencyAmount, required — Common currency amount structure
          - `valueInCurrency` number, double, required — The amount in the currency, which is specified in the `currency` property Example: 90
          - `currency` string, required — Currency specified as a three letter code according to ISO 4217 Example: USD
        - `recipientInfo` RecipientInfo
          - `accountId` string — The ID of the account that will receive the purchased goods
          - `dob` string — Date of birth, formatted as YYYY-MM-DD. If only the year is known, use YYYY Pattern: ^\d{4}(-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01]))?$
          - `email` string, nullable — Email Example: lois.lane@dailyplanet.com
          - `firstName` string — First name Example: Lois
          - `gender` string — Gender Example: female
          - `lastName` string — Last name Example: Lois
          - `message` string — The message that the recipient will receive
          - `phoneInfo` PhoneInfo — Phone information structure
            - `carrier` string — The mobile carrier Example: T-Mobile
            - `countryCode` string, required — The country code (leading `+` is optional) Example: 42 Pattern: ^\+?[0-9]+$
            - `phone` string, required — The phone number without the country code or hyphens Example: 2025550169 Pattern: ^[0-9]+$
          - `shippingAddress` CartItemAddress — Address structure
            - `country` string — Country code specified as a two letter code according to ISO 3166 Alpha-2 Between 2 and 2 characters Example: US Pattern: ^[A-Z]{2}$
            - `state` string — The state or province Example: PA
            - `city` string — The city or locality Example: Pittsburgh
            - `street` string — The street name Example: Baker St
            - `postalCode` string — The address postal code
          - `wallet` RecipientInfoWallet — The crypto wallet that will receive the funds
            - `custodialType` 'custodial' | 'nonCustodial' | 'unknown', required — The type of the wallet Allowed values: custodial, nonCustodial, unknown Example: custodial
            - `blockchain` string, required — The blockchain on which the transaction was made Example: BTC Pattern: ^[A-Z0-9-]+$
            - `address` string, required — The crypto wallet address that will receive the funds
        - `topUpAmount` CurrencyAmount, required — Common currency amount structure
          - `valueInCurrency` number, double, required — The amount in the currency, which is specified in the `currency` property Example: 90
          - `currency` string, required — Currency specified as a three letter code according to ISO 4217 Example: USD
        - `quantity` number, double, required — Quantity Example: 2
        - `isPresetAmount` boolean, required — Represents whether the item amount is taken from a preset list, e.g. 25, 50, 100, etc. or whether it was a different amount, e.g. 27
      - TravelCartItem — Represents a travel booking item in a shopping cart
        - `itemClass` 'travel', required — Denotes the cart item class. The item schema is chosen based on this value. Allowed value: travel Example: travel
        - `id` string — The cart items's unique ID Example: 5de33332-546a-4171-8988-2a43d2bfe9c6
        - `rawProductData` AnyObject
          - `example` string
        - `sellingPrice` CurrencyAmount, required — Common currency amount structure
          - `valueInCurrency` number, double, required — The amount in the currency, which is specified in the `currency` property Example: 90
          - `currency` string, required — Currency specified as a three letter code according to ISO 4217 Example: USD
        - `listPrice` CurrencyAmount — Common currency amount structure
          - `valueInCurrency` number, double, required — The amount in the currency, which is specified in the `currency` property Example: 90
          - `currency` string, required — Currency specified as a three letter code according to ISO 4217 Example: USD
        - `recipientInfo` RecipientInfo
          - `accountId` string — The ID of the account that will receive the purchased goods
          - `dob` string — Date of birth, formatted as YYYY-MM-DD. If only the year is known, use YYYY Pattern: ^\d{4}(-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01]))?$
          - `email` string, nullable — Email Example: lois.lane@dailyplanet.com
          - `firstName` string — First name Example: Lois
          - `gender` string — Gender Example: female
          - `lastName` string — Last name Example: Lois
          - `message` string — The message that the recipient will receive
          - `phoneInfo` PhoneInfo — Phone information structure
            - `carrier` string — The mobile carrier Example: T-Mobile
            - `countryCode` string, required — The country code (leading `+` is optional) Example: 42 Pattern: ^\+?[0-9]+$
            - `phone` string, required — The phone number without the country code or hyphens Example: 2025550169 Pattern: ^[0-9]+$
          - `shippingAddress` CartItemAddress — Address structure
            - `country` string — Country code specified as a two letter code according to ISO 3166 Alpha-2 Between 2 and 2 characters Example: US Pattern: ^[A-Z]{2}$
            - `state` string — The state or province Example: PA
            - `city` string — The city or locality Example: Pittsburgh
            - `street` string — The street name Example: Baker St
            - `postalCode` string — The address postal code
          - `wallet` RecipientInfoWallet — The crypto wallet that will receive the funds
            - `custodialType` 'custodial' | 'nonCustodial' | 'unknown', required — The type of the wallet Allowed values: custodial, nonCustodial, unknown Example: custodial
            - `blockchain` string, required — The blockchain on which the transaction was made Example: BTC Pattern: ^[A-Z0-9-]+$
            - `address` string, required — The crypto wallet address that will receive the funds
        - `lodging` TravelLodging, required — The lodging details of the travel booking
          - `reservationId` string, required — Hotel reservation id Example: X36Q9C
          - `nights` number, double, required — The number of nights booked in the reservation Min value: 1 Example: 2
          - `checkInDate` string, required — The check-in date Example: 2022-05-02
          - `checkInHour` string, required — The hour of day in which the check-in is done Example: 18 Pattern: ^([01][0-9]|2[0-3])$
          - `hotel` TravelLodgingHotel, required — The booked hotel details
            - `name` string, required — The name of the hotel Example: The Plaza Hotel
            - `country` string, required — The two-letter code of the country in which the hotel is located Example: US Pattern: ^[A-Z]{2}$
            - `city` string, required — The city in which the hotel is located Example: New York
          - `wereExtrasPurchased` boolean, required — Indicates whether extras were purchased in the reservation
          - `isRefundable` boolean, required — Indicates whether the reservation is refundable
          - `highestRoomType` string, required — The most luxurious room booked in the reservation Example: Presidential Suite
          - `numberOfRooms` number, double, required — The number of rooms booked in the reservation Min value: 1 Example: 2
          - `numberOfGuests` number, double, required — The number of guests in the reservation Min value: 1 Example: 4
          - `numberOfKids` number, double, required — The number of kids, out of the number of guests in the reservation Min value: 0 Example: 2
        - `pnr` string, required — The flight ticket's PNR code Example: X36Q9C
        - `trip` TravelTrip, required — The trip details of the travel booking
          - `numberOfFlights` number, double, required — The number of flights in the trip Min value: 1 Example: 2
          - `numberOfCheckedBags` number, double, required — The number of checked bags Min value: 0 Example: 1
          - `firstWayDestination` string, required — The first-way destination's three-letter IATA airport code Example: JFK Pattern: ^[A-Z]{3}$
          - `isRoundTrip` boolean, required — `true` if the trip is a round-trip Example: true
          - `highestClass` 'economy' | 'luxurious', required — `luxurious` if the highest bought travel class in the trip is a luxury class (business/first), `economy` otherwise Example: luxurious
          - `isFlexibleTicket` boolean, required — True if the trip ticket is a flexible ticket Example: true
          - `wereExtrasPurchased` boolean, required — True if extras were included in the trip purchase Example: true
        - `firstFlight` TravelFirstFlight, required — The first flight details of the trip
          - `numberOfTravelers` number, double, required — The number of travelers in the first flight Min value: 1 Example: 2
          - `departureTime` number, double, required — The timestamp of the departure, in *milliseconds* since the unix epoch Example: 1551398400000
          - `departureAirport` string, required — The first-flight departure airport's three-letter IATA code Example: JFK Pattern: ^[A-Z]{3}$
          - `duration` number, double, required — The first-flight duration, in hours Min value: 0 Example: 3.5
          - `flightNumber` string, required — The alphanumeric flight code Example: BA2491A Pattern: ^[A-Z0-9]+$
      - FlightTicketCartItem — Represents a flight ticket item in a shopping cart
        - `itemClass` 'flightTicket', required — Denotes the cart item class. The item schema is chosen based on this value. Allowed value: flightTicket Example: flightTicket
        - `id` string — The cart items's unique ID Example: 5de33332-546a-4171-8988-2a43d2bfe9c6
        - `rawProductData` AnyObject
          - `example` string
        - `sellingPrice` CurrencyAmount, required — Common currency amount structure
          - `valueInCurrency` number, double, required — The amount in the currency, which is specified in the `currency` property Example: 90
          - `currency` string, required — Currency specified as a three letter code according to ISO 4217 Example: USD
        - `listPrice` CurrencyAmount — Common currency amount structure
          - `valueInCurrency` number, double, required — The amount in the currency, which is specified in the `currency` property Example: 90
          - `currency` string, required — Currency specified as a three letter code according to ISO 4217 Example: USD
        - `recipientInfo` RecipientInfo
          - `accountId` string — The ID of the account that will receive the purchased goods
          - `dob` string — Date of birth, formatted as YYYY-MM-DD. If only the year is known, use YYYY Pattern: ^\d{4}(-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01]))?$
          - `email` string, nullable — Email Example: lois.lane@dailyplanet.com
          - `firstName` string — First name Example: Lois
          - `gender` string — Gender Example: female
          - `lastName` string — Last name Example: Lois
          - `message` string — The message that the recipient will receive
          - `phoneInfo` PhoneInfo — Phone information structure
            - `carrier` string — The mobile carrier Example: T-Mobile
            - `countryCode` string, required — The country code (leading `+` is optional) Example: 42 Pattern: ^\+?[0-9]+$
            - `phone` string, required — The phone number without the country code or hyphens Example: 2025550169 Pattern: ^[0-9]+$
          - `shippingAddress` CartItemAddress — Address structure
            - `country` string — Country code specified as a two letter code according to ISO 3166 Alpha-2 Between 2 and 2 characters Example: US Pattern: ^[A-Z]{2}$
            - `state` string — The state or province Example: PA
            - `city` string — The city or locality Example: Pittsburgh
            - `street` string — The street name Example: Baker St
            - `postalCode` string — The address postal code
          - `wallet` RecipientInfoWallet — The crypto wallet that will receive the funds
            - `custodialType` 'custodial' | 'nonCustodial' | 'unknown', required — The type of the wallet Allowed values: custodial, nonCustodial, unknown Example: custodial
            - `blockchain` string, required — The blockchain on which the transaction was made Example: BTC Pattern: ^[A-Z0-9-]+$
            - `address` string, required — The crypto wallet address that will receive the funds
        - `pnr` string, required — The flight ticket's PNR code Example: X36Q9C
        - `trip` TravelTrip, required — The trip details of the travel booking
          - `numberOfFlights` number, double, required — The number of flights in the trip Min value: 1 Example: 2
          - `numberOfCheckedBags` number, double, required — The number of checked bags Min value: 0 Example: 1
          - `firstWayDestination` string, required — The first-way destination's three-letter IATA airport code Example: JFK Pattern: ^[A-Z]{3}$
          - `isRoundTrip` boolean, required — `true` if the trip is a round-trip Example: true
          - `highestClass` 'economy' | 'luxurious', required — `luxurious` if the highest bought travel class in the trip is a luxury class (business/first), `economy` otherwise Example: luxurious
          - `isFlexibleTicket` boolean, required — True if the trip ticket is a flexible ticket Example: true
          - `wereExtrasPurchased` boolean, required — True if extras were included in the trip purchase Example: true
        - `firstFlight` TravelFirstFlight, required — The first flight details of the trip
          - `numberOfTravelers` number, double, required — The number of travelers in the first flight Min value: 1 Example: 2
          - `departureTime` number, double, required — The timestamp of the departure, in *milliseconds* since the unix epoch Example: 1551398400000
          - `departureAirport` string, required — The first-flight departure airport's three-letter IATA code Example: JFK Pattern: ^[A-Z]{3}$
          - `duration` number, double, required — The first-flight duration, in hours Min value: 0 Example: 3.5
          - `flightNumber` string, required — The alphanumeric flight code Example: BA2491A Pattern: ^[A-Z0-9]+$
      - FlightUpgradeCartItem — Represents a flight upgrade item in a shopping cart
        - `itemClass` 'flightUpgrade', required — Denotes the cart item class. The item schema is chosen based on this value. Allowed value: flightUpgrade Example: flightUpgrade
        - `id` string — The cart items's unique ID Example: 5de33332-546a-4171-8988-2a43d2bfe9c6
        - `rawProductData` AnyObject
          - `example` string
        - `sellingPrice` CurrencyAmount, required — Common currency amount structure
          - `valueInCurrency` number, double, required — The amount in the currency, which is specified in the `currency` property Example: 90
          - `currency` string, required — Currency specified as a three letter code according to ISO 4217 Example: USD
        - `listPrice` CurrencyAmount — Common currency amount structure
          - `valueInCurrency` number, double, required — The amount in the currency, which is specified in the `currency` property Example: 90
          - `currency` string, required — Currency specified as a three letter code according to ISO 4217 Example: USD
        - `recipientInfo` RecipientInfo
          - `accountId` string — The ID of the account that will receive the purchased goods
          - `dob` string — Date of birth, formatted as YYYY-MM-DD. If only the year is known, use YYYY Pattern: ^\d{4}(-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01]))?$
          - `email` string, nullable — Email Example: lois.lane@dailyplanet.com
          - `firstName` string — First name Example: Lois
          - `gender` string — Gender Example: female
          - `lastName` string — Last name Example: Lois
          - `message` string — The message that the recipient will receive
          - `phoneInfo` PhoneInfo — Phone information structure
            - `carrier` string — The mobile carrier Example: T-Mobile
            - `countryCode` string, required — The country code (leading `+` is optional) Example: 42 Pattern: ^\+?[0-9]+$
            - `phone` string, required — The phone number without the country code or hyphens Example: 2025550169 Pattern: ^[0-9]+$
          - `shippingAddress` CartItemAddress — Address structure
            - `country` string — Country code specified as a two letter code according to ISO 3166 Alpha-2 Between 2 and 2 characters Example: US Pattern: ^[A-Z]{2}$
            - `state` string — The state or province Example: PA
            - `city` string — The city or locality Example: Pittsburgh
            - `street` string — The street name Example: Baker St
            - `postalCode` string — The address postal code
          - `wallet` RecipientInfoWallet — The crypto wallet that will receive the funds
            - `custodialType` 'custodial' | 'nonCustodial' | 'unknown', required — The type of the wallet Allowed values: custodial, nonCustodial, unknown Example: custodial
            - `blockchain` string, required — The blockchain on which the transaction was made Example: BTC Pattern: ^[A-Z0-9-]+$
            - `address` string, required — The crypto wallet address that will receive the funds
        - `pnr` string — The flight ticket's PNR code Example: X36Q9C
        - `upgradeType` 'changes' | 'fareIncrease' | 'baggage' | 'seats' | 'insurance' | 'other', required — The type of upgrade Example: changes
        - `description` string — The upgrade description, required when the upgrade type is `other`
      - LodgingCartItem — Represents a lodging reservation item in a shopping cart. The reservation fields are flattened at the top level of the item.
        - `reservationId` string, required — Hotel reservation id Example: X36Q9C
        - `nights` number, double, required — The number of nights booked in the reservation Min value: 1 Example: 2
        - `checkInDate` string, required — The check-in date Example: 2022-05-02
        - `checkInHour` string, required — The hour of day in which the check-in is done Example: 18 Pattern: ^([01][0-9]|2[0-3])$
        - `hotel` TravelLodgingHotel, required — The booked hotel details
          - `name` string, required — The name of the hotel Example: The Plaza Hotel
          - `country` string, required — The two-letter code of the country in which the hotel is located Example: US Pattern: ^[A-Z]{2}$
          - `city` string, required — The city in which the hotel is located Example: New York
        - `wereExtrasPurchased` boolean, required — Indicates whether extras were purchased in the reservation
        - `isRefundable` boolean, required — Indicates whether the reservation is refundable
        - `highestRoomType` string, required — The most luxurious room booked in the reservation Example: Presidential Suite
        - `numberOfRooms` number, double, required — The number of rooms booked in the reservation Min value: 1 Example: 2
        - `numberOfGuests` number, double, required — The number of guests in the reservation Min value: 1 Example: 4
        - `numberOfKids` number, double, required — The number of kids, out of the number of guests in the reservation Min value: 0 Example: 2
        - `itemClass` 'lodging', required — Denotes the cart item class. The item schema is chosen based on this value. Allowed value: lodging Example: lodging
        - `id` string — The cart items's unique ID Example: 5de33332-546a-4171-8988-2a43d2bfe9c6
        - `rawProductData` AnyObject
          - `example` string
        - `sellingPrice` CurrencyAmount, required — Common currency amount structure
          - `valueInCurrency` number, double, required — The amount in the currency, which is specified in the `currency` property Example: 90
          - `currency` string, required — Currency specified as a three letter code according to ISO 4217 Example: USD
        - `listPrice` CurrencyAmount — Common currency amount structure
          - `valueInCurrency` number, double, required — The amount in the currency, which is specified in the `currency` property Example: 90
          - `currency` string, required — Currency specified as a three letter code according to ISO 4217 Example: USD
        - `recipientInfo` RecipientInfo
          - `accountId` string — The ID of the account that will receive the purchased goods
          - `dob` string — Date of birth, formatted as YYYY-MM-DD. If only the year is known, use YYYY Pattern: ^\d{4}(-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01]))?$
          - `email` string, nullable — Email Example: lois.lane@dailyplanet.com
          - `firstName` string — First name Example: Lois
          - `gender` string — Gender Example: female
          - `lastName` string — Last name Example: Lois
          - `message` string — The message that the recipient will receive
          - `phoneInfo` PhoneInfo — Phone information structure
            - `carrier` string — The mobile carrier Example: T-Mobile
            - `countryCode` string, required — The country code (leading `+` is optional) Example: 42 Pattern: ^\+?[0-9]+$
            - `phone` string, required — The phone number without the country code or hyphens Example: 2025550169 Pattern: ^[0-9]+$
          - `shippingAddress` CartItemAddress — Address structure
            - `country` string — Country code specified as a two letter code according to ISO 3166 Alpha-2 Between 2 and 2 characters Example: US Pattern: ^[A-Z]{2}$
            - `state` string — The state or province Example: PA
            - `city` string — The city or locality Example: Pittsburgh
            - `street` string — The street name Example: Baker St
            - `postalCode` string — The address postal code
          - `wallet` RecipientInfoWallet — The crypto wallet that will receive the funds
            - `custodialType` 'custodial' | 'nonCustodial' | 'unknown', required — The type of the wallet Allowed values: custodial, nonCustodial, unknown Example: custodial
            - `blockchain` string, required — The blockchain on which the transaction was made Example: BTC Pattern: ^[A-Z0-9-]+$
            - `address` string, required — The crypto wallet address that will receive the funds
  - `customerInfo` union
    - SplitNameCustomerInfo
      - `verificationId` string
      - `displayName` string
      - `address` string
      - `city` string
      - `state` string
      - `zip` string
      - `country` string
      - `ip` string
      - `lat` string
      - `lng` string
      - `dob` string — Date of birth in YYYY-MM-DD format
      - `email` string
      - `firstName` string, required
      - `lastName` string, required
    - NameCustomerInfo
      - `verificationId` string
      - `displayName` string
      - `address` string
      - `city` string
      - `state` string
      - `zip` string
      - `country` string
      - `ip` string
      - `lat` string
      - `lng` string
      - `dob` string — Date of birth in YYYY-MM-DD format
      - `email` string
      - `name` string
  - `settlementType` 'Credits' | 'USDC'
  - `rent` GooglePayCheckoutArgsRent — (Solana only) if your transaction requires a known amount of Rent to be paid, you can pass it here.
    - `lamports` union, required
      - string
      - number, double
  - `redemptionCheck` boolean — (Solana only) If a transaction involved in the purchase, should payment be checked for redemption
  - `transactionData` union — (EVM only) if you want to execute an EVM transaction on a successful purchase, you can pass a transaction request here. Gas fees for the transaction will be automatically calculated and added to the total charged to the customer. Optionally the merchant can opt to pay for these gas fees.
    - SafeMintRedeem — (EVM only) If your contract mints an NFT via a OpenZeppelin Safe Mint Call, then utilize this object. The contract mints the NFT to msg.sender (which is the Coinflow contract), the Coinflow contract picks up the SafeMint event, and fwd's the NFT to the end user's wallet.
      - `waitForHash` boolean — Whether the UI should wait for the transaction to be sent and the hash to be returned.
      - `transaction` SafeMintRedeemTransaction, required — Transaction to be called.
        - `data` string, required — The data to call this contract with, HEX encoded. The coinflow contract calls the "to" contract, contract pulls USDC from msg.sender, and transfers the NFT/item to the "receiver" address defined in the contract function arguments.
        - `to` string, required — The merchant's whitelisted contract
      - `type` 'safeMint', required
      - `nftContract` string
    - ReturnedTokenIdRedeem — (EVM only) If your contract returns the NFT ID, then utilize this object. The contract mints the NFT to msg.sender (which is the Coinflow contract), the Coinflow contract picks up the returned NFT ID, and fwd's the NFT to the end user's wallet.
      - `waitForHash` boolean — Whether the UI should wait for the transaction to be sent and the hash to be returned.
      - `transaction` ReturnedTokenIdRedeemTransaction, required — Transaction to be called.
        - `data` string, required — The data to call this contract with, HEX encoded. The coinflow contract calls the "to" contract, contract pulls USDC from msg.sender, and transfers the NFT/item to the "receiver" address defined in the contract function arguments.
        - `to` string, required — The merchant's whitelisted contract
      - `type` 'returned', required
      - `nftContract` string
    - KnownTokenIdRedeem — (EVM only) If your know the ID of the NFT being purchased, then utilize this object. The contract transfers the NFT to msg.sender (which is the Coinflow contract), the Coinflow contract fwd's the NFT to the end user's wallet.
      - `waitForHash` boolean — Whether the UI should wait for the transaction to be sent and the hash to be returned.
      - `transaction` KnownTokenIdRedeemTransaction, required — Transaction to be called.
        - `data` string, required — The data to call this contract with, HEX encoded. The coinflow contract calls the "to" contract, contract pulls USDC from msg.sender, and transfers the NFT/item to the "receiver" address defined in the contract function arguments.
        - `to` string, required — The merchant's whitelisted contract
      - `nftContract` string, required — The address of the Nft's Contract
      - `nftId` string, required — The ID of the NFT being purchased. Will be forwarded by the Coinflow contract to the customer's wallet.
    - NormalRedeem — (EVM only) If your contract sends the item/service being purchased via a custom "receiver" field, then utilize this object. The coinflow contract calls the "to" contract, which transfers the NFT/item to the "receiver" address defined in the contract function arguments.
      - `waitForHash` boolean — Whether the UI should wait for the transaction to be sent and the hash to be returned.
      - `transaction` NormalRedeemTransaction, required — Transaction to be called.
        - `data` string, required — The data to call this contract with, HEX encoded. The coinflow contract calls the "to" contract, contract pulls USDC from msg.sender, and transfers the NFT/item to the "receiver" address defined in the contract function arguments.
        - `to` string, required — The merchant's whitelisted contract
    - TokenRedeem
      - `waitForHash` boolean — Whether the UI should wait for the transaction to be sent and the hash to be returned.
      - `type` 'token', required
      - `destination` string, required
    - DecentRedeem — If your contract exists on a chain supported by Decent, pass this object in order to call it.
      - `waitForHash` boolean — Whether the UI should wait for the transaction to be sent and the hash to be returned.
      - `type` 'decent', required
      - `dstChainId` number, double, required — ID of the destination chain you will be using Find your chain ID here: https://chainlist.org/
      - `dstToken` string, required — Address on that chain of the token you will be receiving
      - `contractAddress` string, required — The contract address which will be called on the destination chain
      - `contractData` string, required
      - `cost` DecentRedeemCost, required — Amount of the token on the destination chain you will be receiving
        - `isNative` boolean, required — Whether or not the token is the native token for the chain (ex: Ethereum - ETH, Polygon - POL). If native dstToken should be the 0 address (0x00...)
        - `amount` string, required — This is the raw amount of the token ex: 50000000000000n
  - `authOnly` boolean — Only authorize the purchase. This will not actually capture the payment.(default: false)
  - `feePercentage` number, double — If this purchase is for a seller/submerchant where the marketplace takes a fee, this is the % fee which is taken from the subtotal amount.
  - `fixedFee` Cents
    - `cents` integer, required
  - `jwtToken` string — This is a token encoding the parameters for the request. Allows purchase parameters to be verified to prevent manipulation when the checkout page is presented to the user.
  - `threeDsChallengePreference` 'NoPreference' | 'Frictionless' | 'Challenge'
  - `destinationAuthKey` string — If utilizing USDC settlement to addresses other than your main merchant settlement address. Utilize this destinationAuthKey which is a JWT encoded with the information for which address to send the USDC to.
  - `customerUsdcTransferData` CustomerUsdcTransferData — Customer signed USDC transferWithAuthorization data for dual-source payments Used for combined USDC + Credit Card payments on EVM chains
    - `from` string, required
    - `to` string, required
    - `value` string, required
    - `validAfter` union, required
      - string
      - number, double
    - `validBefore` union, required
      - string
      - number, double
    - `nonce` string, required
    - `v` number, double, required
    - `r` string, required
    - `s` string, required
  - `customerUsdcTransferDataV2` CustomerUsdcTransferDataV2 — V2 of CustomerUsdcTransferData — replaces the (v, r, s) triple with a single `signature` bytes string, matching USDC FiatTokenV2_2's bytes-overload `transferWithAuthorization`. All other fields unchanged from V1.
    - `from` string, required
    - `to` string, required
    - `value` string, required
    - `validAfter` union, required
      - string
      - number, double
    - `validBefore` union, required
      - string
      - number, double
    - `nonce` string, required
    - `signature` string, required
  - `stellarTransaction` string — (Stellar only) Base64 XDR transaction string for executing a merchant contract call on a successful purchase. For transaction purchases, pass the base64 XDR string created using `.toXDR()` on a transaction built with generated TypeScript bindings (e.g., `NftClientWrapper.buildNftPurchaseTx`). For direct USDC transfers (no merchant transaction), omit this field or pass undefined. Gas fees for the transaction will be automatically calculated and added to the total charged to the customer.
  - `userLocation` IUserLocation — End-user geographic coordinates captured at the moment of the withdrawal request. Consumed by `BlockingRuleMethod.GEOLOCATION` enforcement. Replay-of-different-coords bypass is prevented server-side: the first resolved {country, state} for a given (merchant, user) pair is pinned in Redis, and subsequent requests are evaluated against that pinned value regardless of the lat/lng they submit.
    - `lat` number, double, required
    - `lng` number, double, required
  - `customPayInFees` CustomPayInFeeConfig[]
    - `fee` union, required
      - CustomPayInFeeValue0
        - `cents` number, double, required
        - `currency` 'USD' | 'AED' | 'AFN' | 'ALL' | 'AMD' | 'ANG' | 'AOA' | 'ARS' | 'AUD' | 'AWG' | 'AZN' | 'BAM' | 'BBD' | 'BDT' | 'BGN' | 'BHD' | 'BIF' | 'BMD' | 'BND' | 'BOB' | 'BRL' | 'BSD' | 'BTN' | 'BWP' | 'BYN' | 'BZD' | 'CAD' | 'CHF' | 'CLF' | 'CLP' | 'CNY' | 'COP' | 'CRC' | 'CUP' | 'CVE' | 'CZK' | 'DJF' | 'DKK' | 'DOP' | 'DZD' | 'EGP' | 'ETB' | 'EUR' | 'FJD' | 'GBP' | 'GEL' | 'GHS' | 'GMD' | 'GNF' | 'GTQ' | 'GYD' | 'HKD' | 'HNL' | 'HTG' | 'HUF' | 'IDR' | 'ILS' | 'INR' | 'IQD' | 'IRR' | 'ISK' | 'JMD' | 'JOD' | 'JPY' | 'KES' | 'KGS' | 'KHR' | 'KMF' | 'KRW' | 'KWD' | 'KYD' | 'KZT' | 'LAK' | 'LBP' | 'LKR' | 'LRD' | 'LSL' | 'LYD' | 'MAD' | 'MDL' | 'MGA' | 'MKD' | 'MMK' | 'MNT' | 'MOP' | 'MRU' | 'MUR' | 'MWK' | 'MVR' | 'MXN' | 'MYR' | 'MZN' | 'NAD' | 'NGN' | 'NIO' | 'NOK' | 'NPR' | 'NZD' | 'OMR' | 'PAB' | 'PEN' | 'PGK' | 'PHP' | 'PKR' | 'PLN' | 'PYG' | 'QAR' | 'RON' | 'RSD' | 'RWF' | 'SAR' | 'SCR' | 'SDG' | 'SEK' | 'SGD' | 'SLE' | 'SLL' | 'SOS' | 'SRD' | 'STN' | 'SVC' | 'SYP' | 'SZL' | 'THB' | 'TJS' | 'TMT' | 'TND' | 'TOP' | 'TRY' | 'TTD' | 'TWD' | 'TZS' | 'UAH' | 'UGX' | 'UYU' | 'UZS' | 'VND' | 'VUV' | 'WST' | 'XAF' | 'XCD' | 'XOF' | 'XPF' | 'YER' | 'ZAR' | 'ZMW' | 'ZWL' | 'CDF' | 'ERN' | 'FKP' | 'KPW' | 'RUB' | 'SBD' | 'SHP' | 'SSP' | 'VES', required
        - `percent` number, double, nullable, required
        - `isFixed` boolean, required
      - CustomPayInFeeValue1
        - `cents` number, double, nullable, required
        - `currency` number, double, nullable, required
        - `percent` number, double, required
        - `isFixed` boolean, required
    - `lineItemLabel` string, required
  - `overrideChargebackProtectionDecision` boolean
  - `doNotReviewChargebackProtection` boolean
  - `authentication3DS` union — 3DS Card Authorization Data On initial payment submission - Device3DSInfo needed: 3DS device information - required if 3DS is enabled After card challenge complete: 3DS challenge transaction id - required after prompted for challenge
    - Device3DSInfo
      - `colorDepth` number, double, required
      - `screenHeight` number, double, required
      - `screenWidth` number, double, required
      - `timeZone` number, double, required
      - `versionInfo` VersionInfo[]
        - `url` string
        - `transactionId` string, required
        - `directoryServer` string, required
        - `version` string, required
    - External3DSInfo — External 3DS info, if provided must call the endpoint with API key or checkout JWT.
      - `transactionId` string, required
      - `cavv` string, required
      - `eci` string, required
      - `dsTransactionId` string, required
      - `acsTransactionId` string, required
      - `version` string, required
    - ConcludeChallenge
      - `transactionId` string, required
  - `chargebackProtectionAccountType` 'guest' | 'private' | 'business'
  - `presentment` 'USD' | 'AED' | 'AFN' | 'ALL' | 'AMD' | 'ANG' | 'AOA' | 'ARS' | 'AUD' | 'AWG' | 'AZN' | 'BAM' | 'BBD' | 'BDT' | 'BGN' | 'BHD' | 'BIF' | 'BMD' | 'BND' | 'BOB' | 'BRL' | 'BSD' | 'BTN' | 'BWP' | 'BYN' | 'BZD' | 'CAD' | 'CHF' | 'CLF' | 'CLP' | 'CNY' | 'COP' | 'CRC' | 'CUP' | 'CVE' | 'CZK' | 'DJF' | 'DKK' | 'DOP' | 'DZD' | 'EGP' | 'ETB' | 'EUR' | 'FJD' | 'GBP' | 'GEL' | 'GHS' | 'GMD' | 'GNF' | 'GTQ' | 'GYD' | 'HKD' | 'HNL' | 'HTG' | 'HUF' | 'IDR' | 'ILS' | 'INR' | 'IQD' | 'IRR' | 'ISK' | 'JMD' | 'JOD' | 'JPY' | 'KES' | 'KGS' | 'KHR' | 'KMF' | 'KRW' | 'KWD' | 'KYD' | 'KZT' | 'LAK' | 'LBP' | 'LKR' | 'LRD' | 'LSL' | 'LYD' | 'MAD' | 'MDL' | 'MGA' | 'MKD' | 'MMK' | 'MNT' | 'MOP' | 'MRU' | 'MUR' | 'MWK' | 'MVR' | 'MXN' | 'MYR' | 'MZN' | 'NAD' | 'NGN' | 'NIO' | 'NOK' | 'NPR' | 'NZD' | 'OMR' | 'PAB' | 'PEN' | 'PGK' | 'PHP' | 'PKR' | 'PLN' | 'PYG' | 'QAR' | 'RON' | 'RSD' | 'RWF' | 'SAR' | 'SCR' | 'SDG' | 'SEK' | 'SGD' | 'SLE' | 'SLL' | 'SOS' | 'SRD' | 'STN' | 'SVC' | 'SYP' | 'SZL' | 'THB' | 'TJS' | 'TMT' | 'TND' | 'TOP' | 'TRY' | 'TTD' | 'TWD' | 'TZS' | 'UAH' | 'UGX' | 'UYU' | 'UZS' | 'VND' | 'VUV' | 'WST' | 'XAF' | 'XCD' | 'XOF' | 'XPF' | 'YER' | 'ZAR' | 'ZMW' | 'ZWL' | 'CDF' | 'ERN' | 'FKP' | 'KPW' | 'RUB' | 'SBD' | 'SHP' | 'SSP' | 'VES'
  - `accountFundingTransaction` AccountFundingTransaction — Used for Account Funding Transactions
    - `recipientAftInfo` RecipientAftInfo
      - `firstName` string, required
      - `lastName` string, required
      - `address1` string, required
      - `city` string, required
      - `postalCode` string, required
      - `state` string
      - `countryCode` string, required
      - `dateOfBirth` string — Recipients Date Of Birth in YYYMMDD format.
      - `phoneNumber` string
      - `documentReference` string
  - `statementDescriptor` string — If the bank supports dynamic descriptors, this will appear on the customer's statement.
  - `paymentData` GooglePayCheckoutArgsPaymentData, required — Payment data. Contains the payment data requested in [[PaymentDataRequest|`PaymentDataRequest`]]
    - `apiVersion` number, double, required — Major API version. This value will match what was set in [[PaymentDataRequest.apiVersion|`PaymentDataRequest.apiVersion`]].
    - `apiVersionMinor` number, double, required — Minor API version. This value will match what was set in [[PaymentDataRequest.apiVersionMinor|`PaymentDataRequest.apiVersionMinor`]].
    - `email` string — The buyer's email. This value will only be set if [[PaymentDataRequest.emailRequired|`PaymentDataRequest.emailRequired`]] was set to `true`.
    - `shippingAddress` GooglePaymentsApiAddress — Description of a user's address.
      - `name` string — Name of the recipient at this address.
      - `address1` string — The first line of the address. Will be set to empty string if the address does not have a first line.
      - `address2` string — The second line of the address. Will be set to empty string if the address does not have a second line.
      - `address3` string — The third line of the address. Will be set to empty string if the address does not have a third line.
      - `locality` string, required — The locality (e.g. city or town).
      - `administrativeArea` string, required — The administrative area (e.g. state or province).
      - `countryCode` string, required — The two-letter ISO-3166 country code.
      - `postalCode` string, required — The postal code (also known in some places as ZIP code). Note: some regions do not have postal codes. In those cases this field will be set to an empty string.
      - `sortingCode` string — The sorting code. Note: some regions do not have sorting codes. In those cases this field will be set to an empty string.
      - `phoneNumber` string — The phone number. This field will only be present if the caller requested that a phone number be returned.
    - `paymentMethodData` GooglePaymentsApiPaymentMethodData, required — Data for a payment method.
      - `type` 'CARD' | 'PAYPAL', required — Payment method type enum string. Options: - `CARD`: CARD payment method. Note that the payment method information that may be returned to you or your processor for a credit card transaction is meant to be used only once. If you need to charge the user again you must call the APIs to obtain new payment credentials. Also note that when we transfer information like PAN (personal account number) to either you or your gateway/processor, they may not correspond to the user's physical card. For support purposes, please use user's card info returned in [[CardInfo|`CardInfo`]] instead. - `PAYPAL`: PAYPAL payment method.
      - `info` GooglePaymentsApiCardInfo — Data for a [[PaymentMethodType|`PaymentMethodType.CARD`]] payment method.
        - `assuranceDetails` GooglePaymentsApiAssuranceDetails — Assurance details about what validation has been performed on the returned payment credentials so that appropriate instrument risk checks can be applied. Note: If both cardHolderAuthenticated and accountVerified are true, you don’t need to step up the returned credentials. If both aren’t, we recommend you to run the same risk checks and , authentication including 3D Secure flow if applicable.
          - `accountVerified` boolean — If true, indicates that Cardholder possession validation has been performed on returned payment credential.
          - `cardHolderAuthenticated` boolean — If true, indicates that identification and verifications (ID&V) was performed on the returned payment credential. If false, the same risk-based authentication can be performed as you would for card transactions. This risk-based authentication can include, but not limited to, step-up with 3D Secure protocol if applicable.
        - `cardNetwork` 'AMEX' | 'DISCOVER' | 'ELECTRON' | 'ELO' | 'ELO_DEBIT' | 'INTERAC' | 'JCB' | 'MAESTRO' | 'MASTERCARD' | 'VISA', required — Card network enum string. Options: - `AMEX`: American Express card network. - `DISCOVER`: Discover card network. - `ELECTRON`: Visa's Electron card network. Note that this option can only be set when [[TransactionInfo.countryCode|`TransactionInfo.countryCode`]] is set to `"BR"`, and [[CardParameters.allowedCardNetworks|`CardParameters.allowedCardNetworks`]] must also contain [[CardNetwork|`VISA`]] For processing purposes, you should use this as an indication that the card must be processed through the Electron debit network. - `ELO`: Elo card network. Note that this option can only be set when [[TransactionInfo.countryCode|`TransactionInfo.countryCode`]] is set to `"BR"`. - `ELO_DEBIT`: Elo's debit network rail. Note that this option can only be set when [[TransactionInfo.countryCode|`TransactionInfo.countryCode`]] is set to `"BR"`, and [[CardParameters.allowedCardNetworks|`CardParameters.allowedCardNetworks`]] must also contain [[CardNetwork|`ELO`]] For processing purposes, you should use this as an indication that the card must be processed through the ELO debit network. - `INTERAC`: Interac card network. - `JCB`: JCB card network. - `MAESTRO`: Maestro card network. Note that this option can only be set when [[TransactionInfo.countryCode|`TransactionInfo.countryCode`]] is set to `"BR"`, and [[CardParameters.allowedCardNetworks|`CardParameters.allowedCardNetworks`]] must also contain [[CardNetwork|`MASTERCARD`]] For processing purposes, you should use this as an indication that the card must be processed through the Maestro debit network. - `MASTERCARD`: Mastercard card network. - `VISA`: Visa card network.
        - `cardDetails` string, required — The details about the card. This value will be generally the last 4 digits of the card. These details **should not** be displayed to the buyer, but can be used when the details of a buyer's card are needed. An example would be for customer support to help the buyer identify the card used for this transaction. For a user-visible description, use [[PaymentMethodData.description|`PaymentMethodData.description`]] instead.
        - `billingAddress` GooglePaymentsApiAddress — Description of a user's address.
          - `name` string — Name of the recipient at this address.
          - `address1` string — The first line of the address. Will be set to empty string if the address does not have a first line.
          - `address2` string — The second line of the address. Will be set to empty string if the address does not have a second line.
          - `address3` string — The third line of the address. Will be set to empty string if the address does not have a third line.
          - `locality` string, required — The locality (e.g. city or town).
          - `administrativeArea` string, required — The administrative area (e.g. state or province).
          - `countryCode` string, required — The two-letter ISO-3166 country code.
          - `postalCode` string, required — The postal code (also known in some places as ZIP code). Note: some regions do not have postal codes. In those cases this field will be set to an empty string.
          - `sortingCode` string — The sorting code. Note: some regions do not have sorting codes. In those cases this field will be set to an empty string.
          - `phoneNumber` string — The phone number. This field will only be present if the caller requested that a phone number be returned.
      - `description` string — User-facing message to describe the payment method funding this transaction. You are required to show this message to the buyer as confirmation of their funding source. Please refer to the [documentation](https://developers.google.com/pay/api/|documentation) for more information. **IMPORTANT:** Do not attempt to parse the contents of this string as the format, contents, and length may change at any time. If you need additional details, see [[PaymentMethodData.info|`PaymentMethodData.info`]].
      - `tokenizationData` GooglePaymentsApiPaymentMethodTokenizationData, required — Tokenization data for the payment method.
        - `type` 'PAYMENT_GATEWAY' | 'DIRECT', required — Payment method tokenization type enum string. Options: - `PAYMENT_GATEWAY`: Tokenize a payment response to be consumed or charged by a specified third-party gateway service. - `DIRECT`: Tokenize to be consumed/charged directly by the merchant.
        - `token` string, required — The generated payment method token. The contents of this token and how it should be used will depend on the selected [[PaymentMethodTokenizationSpecification.type|`PaymentMethodTokenizationSpecification.type`]].
    - `offerData` GooglePaymentsApiOfferData — Definition for each offer to be applied to this payment request.
      - `redemptionCodes` string[], required — Redemption codes of the offers applied by the user.
    - `shippingOptionData` GooglePaymentsApiSelectionOptionData — Data for a [[SelectionOption|`SelectionOption`]].
      - `id` string, required — Unique identifier of a [[SelectionOption|`SelectionOption`]]. Must match with [[SelectionOption.id|`SelectionOption.id`]] field.
    - `bin` string

## Response `200`

Ok

- CheckoutResponse
  - `paymentId` string, required — The ID of the payment that was created.

## Other responses

- `402` — GooglePay unavailable
- `412` — Challenge required
- `423` — Customer is Blocked
- `451` — Must Complete Additional Verification

---

[API](https://skmtc.net/coinflow/apis/api-reference.md) · [All operations](https://skmtc.net/coinflow/apis/api-reference/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/coinflow/api-reference/versions/c7b5afab1295/schema)
