# Google Pay

An API request for Google Pay allows a merchant to initiate a Google Pay transaction, by sending a request to the Google Pay API with the required parameters such as amount, currency, and order identifier, which will be processed, and the response will be sent back with the transaction details.

Endpoint: POST /google-pay
Version: 1.0.0
Security: merchant, signature

## Security:

  - `merchant` (unknown)
    apiKey in header merchant

  - `signature` (unknown)
    apiKey in header signature

## Header parameters:

  - `merchant` (string, required)

  - `signature` (string, required)

## Request fields (application/json):

  - `is_decrypted` (boolean)
    Indicates whether the payload received from Google Pay was previously decrypted.
    Enum: "false", "true"

  - `order_id` (string, required)
    Unique order identifier defined by the merchant, which can be used to find the payment.

  - `amount` (integer, required)
    Order amount in the smallest currency unit.
For instance, 1020 means 10 EUR and 20 cents.The value 0 is valid only for zero-amount flow. If set to null, the default fallback value 0 will be used.

  - `currency` (string, required)
    Three-letter ISO-4217 currency code.

  - `order_description` (string, required)
    Brief order description.
Highly recommended to keep the payment description under 100 characters for clarity.It is used in the email receipt sent to the customer.

  - `order_items` (string)
    Names and descriptions of the items included in the order.

  - `order_date` (string)
    Date of order creation defined by the merchant.

  - `order_number` (integer)
    Sequential number of the order within the customer account.

  - `type` (string, required)
    Specifies the payment processing flow using auth for a two-step payment.
    Enum: "auth"

  - `settle_interval` (integer)
    Delay before automatic transaction settlement in hours.
- `240` hours = 10 days for Visa customer-initiated payments
- `120` hours = 5 days for Visa merchant-initiated payments
- `168` hours = 7 days for all other card brands

Highly recommended to check validation for PSP limits.If null, the responsibility for initiating the second stage of the payment via a separate settle request is on the API user.

  - `authorization_type` (string)
    Authorization type that defines the transaction flow and capabilities.
    Enum: "final", "estimated"

  - `force3ds` (boolean)
    Indicates whether to force 3D Secure (3DS) authentication.

  - `customer_account_id` (string)
    Unique customer identifier defined by the merchant.
    Example: 93a1c659-288d-4d62-929d-10e241078faa

  - `customer_date_of_birth` (string)
    Customer's date of birth.

  - `customer_email` (string, required)
    Customer's email address.

  - `customer_first_name` (string)
    Customer's first name.

  - `customer_last_name` (string)
    Customer's last name.

  - `customer_phone` (string)
    Customer's phone number, including the country code.
Should be provided in international format E.164, starting with the plus + sign.

  - `card_holder` (string)
    Cardholder's name as it appears on the card, which is essential for transaction processing.
Should be provided as the cardholder's name to ensure accurate cardholder information and increase conversions. For some PSPs, if not provided, it is set to John Snow.

  - `dynamic_descriptor` (object)
    Optional dynamic suffix appended to the statement descriptor shown on the cardholder's bank statement.

  - `dynamic_descriptor.suffix` (string, required)
    Dynamic part of the billing descriptor that appears on the cardholder's bank statement.
Must match ASCII alphanumeric characters, punctuation, and spaces. Must not contain the ^ symbol.
    Example: PRODUCTX

  - `industry_data` (object)
    Industry-related data for car rental payments.
Applicable to merchants operating under car-rental-related MCCs 3351–3500, 7512, 7513, and 7519.Supplying this enriched data can help reduce fees, improve fraud detection and dispute handling, increase customer trust, and support industry compliance.

  - `industry_data.type` (string)
    Enum: "car_rental"

  - `industry_data.type` (string, required)
    Type of entity used to identify the classification of the data being provided.
    Enum: "car_rental"

  - `industry_data.car_rental` (object, required)
    Car rental-related details.

  - `industry_data.car_rental.agreement_number` (string, required)
    Rental agreement number for the car rental.

  - `industry_data.car_rental.renter_name` (string, required)
    Name of the person renting the car.

  - `industry_data.car_rental.pick_up_date` (string, required)
    UTC date and time of the rental pick-up in ISO 8601 format.
    Example: 2026-03-01T11:00:00Z

  - `industry_data.car_rental.drop_off_date` (string, required)
    UTC date and time of the rental drop-off in ISO 8601 format.
    Example: 2026-03-05T16:30:00Z

  - `industry_data.car_rental.refundability` (string, required)
    Indicates whether the booking is refundable, partially refundable, or non-refundable.
    Enum: "refundable", "non_refundable", "partially_refundable"

  - `industry_data.car_rental.rate` (integer)
    Daily rental rate in minor units.

  - `industry_data.car_rental.rate_indicator` (string)
    Specifies whether the provided rate is daily or weekly.
    Enum: "D", "W"

  - `industry_data.car_rental.days_rented` (string)
    Number of days for which the car is rented.

  - `industry_data.car_rental.customer_service_toll_free_number` (string)
    Customer service phone number of the car rental company.

  - `industry_data.car_rental.rental_class_id` (string)
    Classification of the rental car.

  - `industry_data.car_rental.tax_exempt_indicator` (string)
    Indicates whether goods or services were tax-exempt.
    Enum: "Y", "N"

  - `industry_data.car_rental.fuel_charges` (integer)
    Fuel charges associated with the rental, in minor units.

  - `industry_data.car_rental.insurance_charges` (integer)
    Insurance charges associated with the rental, in minor units.

  - `industry_data.car_rental.no_show_indicator` (string)
    Indicates whether the customer did not pick up the rental car.
    Enum: "Y", "N"

  - `industry_data.car_rental.one_way_drop_off_charges` (integer)
    Charge for returning a car to a location different from pick-up, in minor units.

  - `industry_data.car_rental.return_location_id` (string, required)
    Agency code, phone number, or address abbreviation of the return location.

  - `industry_data.car_rental.pick_up_location` (object, required)
    Address where the car is picked up.

  - `industry_data.car_rental.pick_up_location.street_line_1` (string)
    Street line 1 where the car is picked up.

  - `industry_data.car_rental.pick_up_location.state` (string, required)
    State or province where the car is picked up in ISO 3166-2.

  - `industry_data.car_rental.pick_up_location.city` (string, required)
    City where the car is picked up.

  - `industry_data.car_rental.pick_up_location.country` (string, required)
    Country where the car is picked up.

  - `industry_data.car_rental.pick_up_location.postal` (string, required)
    Postcode associated with the picked up location.

  - `industry_data.car_rental.drop_off_location` (object, required)
    Address where the car is dropped off.

  - `industry_data.car_rental.drop_off_location.street_line_1` (string)
    Street line 1 where the car is dropped off.

  - `industry_data.car_rental.drop_off_location.state` (string, required)
    State or province where the car is dropped off in ISO 3166-2.

  - `industry_data.car_rental.drop_off_location.city` (string, required)
    City where the car is dropped off.

  - `industry_data.car_rental.drop_off_location.country` (string, required)
    Country where the car is dropped off.

  - `industry_data.car_rental.drop_off_location.postal` (string, required)
    Postcode associated with the dropped-off location.

  - `industry_data.car_rental.distance_limit` (object, required)
    Maximum allowed distance and cost for exceeding it.

  - `industry_data.car_rental.distance_limit.limit` (integer, required)
    Maximum distance allowed.

  - `industry_data.car_rental.distance_limit.unit` (string, required)
    Unit of distance.
    Enum: "miles", "km"

  - `industry_data.car_rental.distance_limit.additional_distance_cost` (object, required)
    An additional cost is applied when the distance limit is exceeded.

  - `industry_data.car_rental.distance_limit.additional_distance_cost.amount` (integer, required)
    Cost amount in the smallest currency unit.

  - `industry_data.car_rental.distance_limit.additional_distance_cost.currency` (string, required)
    Three-letter ISO-4217 currency code.

  - `ip_address` (string, required)
    Public IP address of the cardholder, both IPv4 and IPv6 are supported.
Required for antifraud checks. For recurring payments, use the last session or registration IP.Private IPs (10.0.0.0-10.255.255.255, 172.16.0.0-172.31.255.255, 192.168.0.0-192.168.255.255) will result in an 'Invalid IP' error.

  - `traffic_source` (string)
    Identifies the marketing or acquisition channel that brought the customer to the transaction.

  - `transaction_source` (string)
    Identifies the internal system or flow that triggered the transaction.

  - `purchase_country` (string)
    Country where the goods are purchased in ISO 3166-1 alpha-3 format.
Required to specify if you are registered as a marketplace with international payment systems.Being a marketplace means you operate a platform where multiple sellers offer goods or services.

  - `geo_country` (string)
    Country where the customer account is registered on the merchant platform.

  - `geo_city` (string)
    City where the customer account is registered on the merchant platform.

  - `zip_code` (string)
    Postal code of the cardholder's billing address.

  - `state` (string)
    ISO 3166-2 address state code of the billing address.

  - `country` (string)
    Billing address country.

  - `city` (string)
    Billing address city.

  - `address` (string)
    First and second line of the billing address.

  - `shipping_address` (object)
    Address to ship.
If this field is passed by the merchant - the customer cannot change this address.

  - `shipping_address.country` (any)
    ISO 3166-1 alpha-3 country code of the shipping address.
    Example: USA

  - `shipping_address.state` (string)
    ISO 3166-2 address state code of the shipping address.
    Example: NY

  - `shipping_address.city` (string)
    Shipping address city.
    Example: Boston

  - `shipping_address.zip` (string)
    Address zip/postal code where the person, business or institution is located.
    Example: 91191

  - `shipping_address.address` (string)
    First and second line of the shipping address.
    Example: 123 Main St

  - `language` (string)
    Customer language settings.
It is used to translate the email receipt to supported languages. If no language is specified, the email receipt defaults to English.

  - `website` (string)
    Website from which payment is originated.

  - `device` (string)
    Name and model of the device.

  - `device_sessions` (array)
    Device sessions with session ID and provider.

  - `device_sessions.id` (string)
    Unique device session identifier.
    Example: dsid_3a20_f9c1_4cd8_89d3_1c5

  - `device_sessions.provider` (string)
    Third-party provider for the device session.
    Enum: "airwallex", "checkout", "stripe"

  - `platform` (string, required)
    Device platform used by the customer at the time of payment.
APP for application, WEB for desktop web, MOB for mobile web.
    Enum: "APP", "WEB", "MOB"

  - `header_accept` (string)
    Actual content of the `accept` HTTP header as sent by the client browser.
Required for the 3D Secure 2.0force3dstrue.

  - `header_accept_language` (string)
    String indicating the language of the browser, obtained via the `navigator.language` property of the client browser.
Required for the 3D Secure 2.0force3dstrue.Highly recommended to follow the IETF BCP 47 language tag standards for format consistency.

  - `browser_color_depth` (integer)
    Color depth of the customer browser during the payment.
Required for the 3D Secure 2.0force3dstrue.

  - `browser_screen_height` (integer)
    Screen height of the customer browser during the payment.
Required for the 3D Secure 2.0force3dstrue.

  - `browser_screen_width` (integer)
    Screen width of the customer browser during the payment.
Required for the 3D Secure 2.0force3dstrue.

  - `browser_java_enabled` (boolean)
    Boolean that represents the browser capacity to execute Java. The value is the one returned by the `navigator.javaEnabled()` function, it can be true or false.
Required for the 3D Secure 2.0force3dstrue.

  - `time_zone_offset` (integer)
    Time difference, in minutes, between UTC time and the local time of the cardholder's browser. Its value is 120 for a user in the UTC+2 time zone and -570 for the UTC-09:30 time zone.
Required for the 3D Secure 2.0force3dstrue.

  - `user_agent` (string)
    Device user-agent.
Required for the 3D Secure 2.0force3dstrue.

  - `signature` (string, required)
    Verifies that the message came from Google, base64-encoded and created using ECDSA by the intermediate signing key.
This field is taken from Google's response.

  - `signedMessage` (string, required)
    JSON object serialized as an HTML-safe string that contains the encryptedMessage, ephemeralPublicKey, and tag. It is serialized to simplify the signature verification process.
This field is taken from Google's response.

  - `protocolVersion` (string, required)
    Identifies the encryption or signing scheme under which the message is created. It allows the protocol to evolve over time if needed. If it is not set, assume ECv0.
This field is taken from Google's response.

  - `network` (string)
    Network (card brand) through which the payment is processed.

  - `order_metadata` (object)
    Metadata is useful for storing additional, structured information about an order.

  - `payment_type_data` (object)
    Additional customer data to process payments in specific locations.

  - `success_url` (string)
    URL for browser redirect after a successful payment.

  - `fail_url` (string)
    URL for browser redirect after a failed payment.

  - `fraudulent` (boolean)
    Whether the merchant system has flagged this customer as suspicious.

  - `decrypted_data` (object, required)
    Object with decrypted Google Pay payment data.
Requires the request to include typeauth.Please note that decrypted_data parameters are defined and validated based on the protocolVersion value, which are ECv1 or ECv2.

  - `decrypted_data.gatewayMerchantId` (string)
    Your public API key for submitting a payment data request to the Google API.

  - `decrypted_data.messageExpiration` (string, required)
    Timestamp set one week from the time of passing payload, formatted as a string of Unix epoch milliseconds.
    Example: 1507738377032

  - `decrypted_data.messageId` (string, required)
    Message randomly generated for each payload by Google.

  - `decrypted_data.paymentMethod` (string, required)
    Payment method returned by Google Pay API in a signed and encrypted PaymentMethodToken payload.
Defines parameters of the paymentMethodDetails object.
    Enum: "CARD", "TOKENIZED_CARD"

  - `decrypted_data.paymentMethodDetails` (object, required)
    Payment method details returned by Google Pay API.

  - `decrypted_data.paymentMethodDetails.pan` (string, required)
    Primary account number (PAN) charged.

  - `decrypted_data.paymentMethodDetails.expirationMonth` (string, required)
    PAN expiration month.

  - `decrypted_data.paymentMethodDetails.expirationYear` (integer, required)
    PAN expiration year.

  - `decrypted_data.paymentMethodDetails.dpan` (string, required)
    Digital primary account number (DPAN) or device token of primary account number (PAN) charged.

  - `decrypted_data.paymentMethodDetails.expirationMonth` (string, required)
    DPAN expiration month.

  - `decrypted_data.paymentMethodDetails.expirationYear` (integer, required)
    DPAN expiration year.

  - `decrypted_data.paymentMethodDetails.authMethod` (string, required)
    Google Pay authorization method.
    Enum: "3DS"

  - `decrypted_data.paymentMethodDetails.3dsCryptogram` (string, required)
    Base64 encoded cardholder authentication value (20 bytes in decoded form) used for validating the authentication result.

  - `decrypted_data.paymentMethodDetails.3dsEciIndicator` (string)
    Electronic Commerce Indicator (ECI) level associated with the 3D Secure enrollment result.
Highly recommended to provide eci value for better transaction success rate.

  - `decrypted_data.messageExpiration` (string, required)
    A timestamp set one week from the time of passing payload, formatted as a string of Unix epoch milliseconds.
    Example: 1507738377032

  - `decrypted_data.paymentMethod` (string, required)
    Payment method returned by Google Pay API in a signed and encrypted PaymentMethodToken payload.
    Enum: "CARD"

  - `protocolVersion` (string, required)
    Identifies the encryption or signing scheme under which the message is created.
The expected values are ECv1 or ECv2, which define the decrypted_data object parameters.
This field is taken from Google's response.
    Enum: "ECv1", "ECv2"

  - `product_id` (string, required)
    Unique product identifier.
Product used for one-time purchases, such as upsells or single-use services.

  - `authorization_type` (string)
    Authorization type that defines the transaction flow and capabilities.
    Enum: "final"

  - `header_accept_language` (string)
    String indicating the language of the browser, obtained via the `navigator.language` property of the client browser.
Required for the 3D Secure 2.0force3dstrue.For format consistency, it is recommended to adhere to the IETF BCP 47 language tag standards.

  - `order_id` (string, required)
    Unique order identifier, which can be used to find the payment.
For the first payment, the identifier is defined by the merchant.For recurring subscription-based payments, it is generated by the Solidgate subscription service.

  - `product_id` (string, required)
    Unique product identifier.
Product used for recurring purchases, such as services with ongoing access or a subscription-based model.

  - `retry_attempt` (integer)
    Number of retry attempts for the subscription payments.
Use it for analytics and conversion tuning purposes.

## Request examples:

  - `Payment` (unknown)

  - `Product-based payment` (unknown)

  - `Subscription payment` (unknown)

## Response 200:

  - `200` (unknown)
    Request received

## Response 200 fields (application/json):

  - `order` (object, required)
    Details of an order, including identifiers, timestamps, amounts, status, and customer data.

  - `order.id` (string)
    Unique payment identifier.
    Example: pay_01KMG2ABYPF6XS5DMJQ817C429

  - `order.order_id` (string, required)
    Unique order identifier, which can be used to find the payment.
For the first payment, the identifier is defined by the merchant.For recurring subscription-based payments, it is generated by the Solidgate subscription service.
    Example: 923bb4e6-4a5f-41ec-81fb-28eb8a152e55

  - `order.order_description` (string)
    Brief order description.
    Example: Premium package

  - `order.psp_order_id` (string)
    PSP identifier generated by Solidgate.

  - `order.provider_payment_id` (string)
    PSP identifier generated by the PSP.
Value will be if the integration transmitted this data.

  - `order.subscription_id` (string)
    Unique subscription identifier.
    Example: 83b19018-cbc4-4df0-899a-dda84fd2705e

  - `order.amount` (integer, required)
    Order amount in the smallest currency unit.
This is the intended initial authorization amount.For instance, 1020 means 10 EUR and 20 cents.
    Example: 100

  - `order.currency` (string, required)
    Three-letter ISO-4217 currency code.
    Example: USD

  - `order.processing_amount` (integer)
    Amount of the payment in the smallest currency unit as it was processed by the payment service provider.
This amount may differ from the original order amount due to currency conversion or other processing factors.

  - `order.processing_currency` (string)
    Three-letter ISO-4217 currency code  of the payment when it was processed by payment service provider.
In some cases, it is different from the original currency.
    Example: USD

  - `order.marketing_amount` (integer)
    Order amount converted to USD, or other currency as agreed, using a publicly available rate at the payment date.
This is based on the intended initial authorization amount.It should not be considered financial information, but it can be used for forecasting.

  - `order.marketing_currency` (string)
    Three-letter ISO-4217 currency code  of the currency used for calculation of marketing amount.
    Example: USD

  - `order.refunded_amount` (integer, required)
    Indicates the amount that has been already refunded.

  - `order.status` (string, required)
    Status of the requested order.
    Enum: "processing", "3ds_verify", "refunded", "auth_ok", "auth_failed", "settle_ok", "partial_settled", "void_ok"

  - `order.auth_code` (string)
    Transaction authorization code.
It can be empty if the provider does not pass a value.
    Example: 2w9m8

  - `order.payment_type` (string)
    Payment type that defines if the transaction is customer-initiated (CIT) or merchant-initiated (MIT) and helps to define if a cardholder authentication can be provided.
    Enum: "1-click", "recurring", "retry", "installment", "rebill", "moto"

  - `order.payment_method` (string)
    Enum: "google-pay"

  - `order.customer_email` (string)
    Customer's email address.
    Example: example@example.com

  - `order.shipping_address` (object)
    Shipping address submitted with the payment.

  - `order.shipping_address.country` (string)
    ISO 3166-1 alpha-3 country code of the shipping address.
    Example: USA

  - `order.shipping_address.state` (string)
    ISO 3166-2 address state code of the shipping address.
    Example: NY

  - `order.shipping_address.city` (string)
    Shipping address city.
    Example: Boston

  - `order.shipping_address.zip` (string)
    Address zip/postal code where the person, business or institution is located.
    Example: 91191

  - `order.shipping_address.address` (string)
    First and second line of the shipping address.
    Example: 123 Main St

  - `order.geo_country` (string)
    Country where the customer account is registered on the merchant platform.
    Example: USA

  - `order.descriptor` (string)
    Identifying text that appears on a customer’s credit or debit card statement.
It includes information about the transaction and helps the cardholder recognize the charge.
    Example: google.com

  - `order.mid` (string)
    Merchant identifier in Solidgate.
    Example: bank-mid-1

  - `order.ip_address` (string)
    Public IP address of the cardholder, both IPv4 and IPv6 are supported.
Private IPs (10.0.0.0-10.255.255.255, 172.16.0.0-172.31.255.255, 192.168.0.0-192.168.255.255) will result in an 'Invalid IP' error.

  - `order.traffic_source` (string)
    Identifies the marketing or acquisition channel that brought the customer to the transaction.
    Example: facebook

  - `order.fraudulent` (boolean)
    Whether the merchant system has flagged this customer as suspicious.

  - `order.product_id` (string)
    Unique product identifier.

  - `order.product_name` (string)
    Product name.

  - `order.customer_account_id` (string)
    Unique customer identifier defined by the merchant.
    Example: 93a1c659-288d-4d62-929d-10e241078faa

  - `transaction` (object)
    Details of a card transaction, including identifiers, timestamps, amounts, currency, operation type, status, and other relevant data.

  - `transaction.id` (string, required)
    Unique transaction identifier.
    Example: 5019d00bb70f82cd42f6bc654cbdfcbd63a9b5b1dbd6a

  - `transaction.created_at` (string, required)
    Datetime when the transaction was created.
    Example: 2026-07-15 11:45:30

  - `transaction.updated_at` (string, required)
    Datetime when the transaction was updated.
    Example: 2026-07-16 11:45:30

  - `transaction.amount` (integer, required)
    Transaction amount.
    Example: 100

  - `transaction.currency` (string, required)
    Three-letter ISO-4217 currency code  of the transaction.
    Example: USD

  - `transaction.marketing_amount` (integer)
    Order amount converted to USD, or other currency as agreed, using a publicly available rate at the payment date.
It should not be considered financial information, but it can be used for forecasting.

  - `transaction.marketing_currency` (string)
    Three-letter ISO-4217 currency code  of the currency used for calculation of marketing amount.
    Example: USD

  - `transaction.operation` (string, required)
    Type of the transaction.
    Enum: "recurring-auth", "refund", "resign-auth", "auth", "settle", "void", "apple-pay", "google-pay"

  - `transaction.status` (string, required)
    Status of the transaction.
    Enum: "processing", "success", "fail", "verify"

  - `transaction.authorization_type` (string)
    Authorization type that defines the transaction flow and capabilities.
    Enum: "final", "estimated", "incremental"

  - `transaction.scheme_transaction_id` (string)
    Card-scheme transaction identifier linking this transaction to the original customer-initiated payment.

  - `transaction.transaction_link_id` (string)
    Transaction Link Identifier (TLID) is an ID generated by Mastercard to link lifecycle activity after the original transaction.

  - `transaction.descriptor` (string)
    Identifying text that appears on a customer’s credit or debit card statement.
It includes information about the transaction and helps the cardholder recognize the charge.
    Example: google.com

  - `transaction.billing_details` (object)
    Billing address submitted with the payment.

  - `transaction.billing_details.country` (string)
    ISO 3166-1 alpha-3 country code of the billing address.
    Example: USA

  - `transaction.billing_details.state` (string)
    ISO 3166-2 address state code of the billing address.
    Example: NY

  - `transaction.billing_details.city` (string)
    Billing address city.
    Example: Boston

  - `transaction.billing_details.zip` (string)
    Billing zip/postal code.
    Example: 91191

  - `transaction.billing_details.address` (string)
    First and second line of the billing address.
    Example: 21 Bedford Ave

  - `transaction.refund_reason` (string)
    Text description of the refund reason.
    Example: Solidgate - Issuer Fraud Notification

  - `transaction.refund_reason_code` (string)
    Code representing the reason for the refund.
This code is used to identify the reason for both void and refund transactions operation
    Example: 0022

  - `transaction.card_token` (object)
    Token associated with a card method that can be used for subsequent payments.

  - `transaction.card_token.token` (string)
    Token generated for a card method, enabling its use for future payments.
    Example: baf2ff5c5a125aeabb4b80d7b983f66f3abf5dbb8d939df48b40755674eddceee78084eab5fa9c15a339c94f1ad2b30cf299

  - `transaction.card` (object, required)
    Object containing detailed information about the card used in the transaction.

  - `transaction.card.bank` (string)
    Name of the card issuer.
    Example: JSC UNIVERSAL BANK

  - `transaction.card.bin` (string, required)
    Card issuer Bank Identification Number (BIN).
    Example: 444111

  - `transaction.card.brand` (string)
    Card brand.
    Example: VISA

  - `transaction.card.card_exp_month` (string, required)
    Expiry month of the card.
    Example: 12

  - `transaction.card.card_exp_year` (integer, required)
    Expiry year of the card.
    Example: 2030

  - `transaction.card.card_holder` (string)
    Cardholder's name as it appears on the card, which is essential for transaction processing.
Should be provided as the cardholder's name to ensure accurate cardholder information and increase conversions. For some PSPs, if not provided, it is set to John Snow.
    Example: John Snow

  - `transaction.card.card_type` (string)
    Card type.
    Enum: "CREDIT", "CREDIT/DEBIT", "DEBIT", "PREPAID", "CHARGE CARD", "DEFERRED DEBIT"

  - `transaction.card.card_category` (string)
    Card category.
    Enum: "ANONYMOUS PREPAID", "COMMERCIAL DEBIT", "CONSUMER DEBIT", "PREPAID", "PREPAID RELOADABLE", "SMALL BUSINESS", "BUSINESS", "COMMERCIAL", "GOVERNMENT NOTES", "PAYOUTS", "CONSUMER", "CORPORATE"

  - `transaction.card.is_reloadable` (boolean)
    Indicator of whether the card belongs to a reloadable program.
null means the reloadable indicator is not available.
    Example: true

  - `transaction.card.card_id` (string)
    Unique identifier of the card used for the transaction.
    Example: 22733af4-f6c6-4368-b7d0-98aeb0253a57

  - `transaction.card.country` (string)
    Card issuer country.
    Example: USA

  - `transaction.card.number` (string, required)
    Masked card number.
    Example: 444111XXXXXX9435

  - `transaction.error` (object)
    Error object.

  - `transaction.error.code` (string, required)
    Gateway error code for the declined payment.
    Enum: "X.XX"

  - `transaction.error.messages` (array, required)
    An array containing either strings or objects that provide details about the error or status.
When it is an array of strings, each string describes a separate issue. When it is an object, the object will contain key-value pairs explaining the issue in more detail.

  - `transaction.error.recommended_message_for_user` (string)
    Message with recommended next steps or additional information.
    Example: The problem here lies with the data format and accuracy, validation error on the acquiring side

  - `transaction.error.merchant_advice_code` (string)
    Merchant Advice Codes (MACs) are introduced by Mastercard to clearly communicate to merchants the reason for declining transactions, and the course of action that merchants can take.
If present, the MAC contains information about why the payment failed, whether it can be retried and in some cases, the recommended duration after which it should be retried.Follow to the merchant advice codes to get recommendations to handle the value.

  - `transaction.payment_account_reference` (string)
    Payment Account Reference (PAR) is a unique, non-financial identifier for a payment account that remains consistent across card replacements.
    Example: PAR_1A2B3C4D5E6F7G8H9

  - `transaction.arn_code` (string)
    Acquirer Reference Number (ARN) assigned to transactions.
Use ARN to check transaction status.

  - `transaction.rrn_code` (string)
    Retrieval Reference Number (RRN) assigned to transactions, based on the ISO 8583 standard.

  - `transactions` (object, required)
    Map of transactions where the keys are transaction identifiers.

  - `three_ds` (object)
    Information related to the processing of the payment.

  - `three_ds.eci` (string)
    Electronic Commerce Indicator (ECI) security level used to authorize the payment.
Applicable for 3D Secure, digital wallet, and network token payments.
    Example: 05

  - `three_ds.flow` (string)
    Specifies whether and how the customer was involved in the 3D Secure.
Flow null indicates that 3D Secure authentication was not initiated for the transaction.
    Enum: "frictionless", "challenge", "none", "unspecified"

  - `three_ds.exception` (string)
    Strong Customer Authentication (SCA) exception type applied to the transaction.
    Enum: "low_value", "transaction_risk_assessment"

  - `routing` (object)
    Payment routing information.
The availability of this object depends on whether routing is configured for your account.

  - `routing.cascade_steps` (array)
    Details of the attempts made to process the payment.

  - `routing.cascade_steps.mid` (string)
    Merchant identifier in Solidgate.

  - `routing.cascade_steps.mid_descriptor` (string)
    Identifying text that appears on a customer's credit or debit card statement.

  - `routing.cascade_steps.route_id` (string)
    Route identifier configured in Solidgate.

  - `routing.cascade_steps.cascade_number` (integer)
    Sequential number of the processing attempt in the routing cascade, fallback step number.
Indicates which attempt in the fallback sequence was used to process the payment.

  - `routing.cascade_steps.segment_id` (string)
    Identifier of the segment used for this processing attempt in the routing configuration.
Each segment represents a specific processing configuration within a route.

  - `routing.cascade_steps.legal_entity_id` (string)
    Unique identifier of the legal entity associated with the connector account.
    Example: 12560

  - `routing.cascade_steps.legal_entity_name` (string)
    Name of the legal entity associated with the connector account.
    Example: SOLIDGATE TECH LIMITED

  - `antifraud_result` (object)
    Pre-authorization decision returned by Solidgate Antifraud.
Returned only when the merchant uses Solidgate’s internal antifraud service, which excludes provider-side fraud results.

  - `antifraud_result.pre_auth` (string)
    Outcome of the real-time antifraud screening performed before the authorization request is sent.
    Enum: "reject", "review", "pass", "force3ds"

  - `verification_result` (object)
    Verification results for Address Verification Service (AVS), Card Verification Value (CVV), Visa Account Name Inquiry (ANI), and Mastercard name validation, providing match status.

  - `verification_result.avs_result` (string)
    AVS result from card schemes verifies if the billing address matches with the issuing bank.
It returns a value that indicates the level of match, assisting in the decision to approve, verify, or decline a transaction.
    Enum: "matched", "partially_matched", "not_matched", "unsupported", "unavailable", "unknown"

  - `verification_result.cvv_result` (string)
    CVV result indicates whether the CVV code entered matches the one on the card, confirming the cardholder’s possession.
It helps assess transaction legitimacy and decide whether to approve, verify, or decline.
    Enum: "matched", "not_matched", "not_checked", "unavailable", "unknown"

  - `verification_result.name_validation_result` (string)
    Result of the Mastercard name validation check.
    Enum: "matched", "partially_matched", "not_matched", "unavailable"

  - `verification_result.ani` (object)
    ANI result from the card scheme verifies whether the cardholder name matches the issuer’s records.
It helps confirm the cardholder’s identity, supporting the decision to approve, verify, or decline a transaction.

  - `verification_result.ani.status` (string)
    Outcome of the name match check performed against the issuer’s records.
    Enum: "performed", "not_performed", "not_supported"

  - `verification_result.ani.full_name_match` (string)
    Result of matching the full cardholder name against the issuer’s records.
    Enum: "matched", "partially_matched", "not_matched"

  - `verification_result.ani.first_name_match` (string)
    Result of matching the cardholder’s first name against the issuer’s records.
    Enum: "matched", "partially_matched", "not_matched"

  - `verification_result.ani.last_name_match` (string)
    Result of matching the cardholder’s last name against the issuer’s records.
    Enum: "matched", "partially_matched", "not_matched"

  - `chargebacks` (object)
    Map of chargebacks where the keys are chargeback identifiers.

  - `chargebacks.<chargeback_id_value_#1>` (object)
    Information about a chargeback, including identifiers, dates, amounts, status, and the flow of the chargeback process.

  - `chargebacks.<chargeback_id_value_#1>.id` (integer, required)
    Unique chargeback identifier.
    Example: 12345

  - `chargebacks.<chargeback_id_value_#1>.dispute_date` (string, required)
    Date when the chargeback was created by the issuer.
    Example: 2026-07-10 00:00:00

  - `chargebacks.<chargeback_id_value_#1>.settlement_date` (string)
    Date when the chargeback was financially settled.
    Example: 2026-07-11 00:00:00

  - `chargebacks.<chargeback_id_value_#1>.amount` (integer, required)
    Amount that will be deducted for the chargeback on a specific order.
This amount may vary based on the user's decision to dispute a different amount.
    Example: 100

  - `chargebacks.<chargeback_id_value_#1>.currency` (string, required)
    Three-letter ISO-4217 currency code  of the chargeback amount.
    Example: USD

  - `chargebacks.<chargeback_id_value_#1>.type` (string)
    Current type of the chargeback.
    Enum: "1st_chb", "2nd_chb", "arbitration"

  - `chargebacks.<chargeback_id_value_#1>.status` (string)
    Status of the chargeback.
    Enum: "in_progress", "document_sent", "reversed", "accepted", "resolved", "resolved_reversal"

  - `chargebacks.<chargeback_id_value_#1>.reason_group` (string)
    Reason code group.
It could be used for the segmentation and analytic purposes.
    Example: Fraud

  - `chargebacks.<chargeback_id_value_#1>.reason_code` (string)
    Reason code for the chargeback provided by the card scheme.
    Example: 10.4

  - `chargebacks.<chargeback_id_value_#1>.reason_description` (string)
    Reason code description for the chargeback provided by the card scheme.
    Example: Fraud – Card-Absent Environment

  - `chargebacks.<chargeback_id_value_#1>.chargeback_flow` (array, required)
    Map of chargeback flows where the keys are chargeback flow identifiers.

  - `chargebacks.<chargeback_id_value_#1>.chargeback_flow.id` (integer, required)
    Unique chargeback flow identifier.

  - `chargebacks.<chargeback_id_value_#1>.chargeback_flow.date` (string)
    Datetime when the chargeback flow was created.

  - `chargebacks.<chargeback_id_value_#1>.chargeback_flow.updated_date` (string)
    Datetime when the chargeback flow was updated.

  - `chargebacks.<chargeback_id_value_#1>.chargeback_flow.settlement_date` (string)
    Date when the chargeback flow was financially settled.

  - `chargebacks.<chargeback_id_value_#1>.chargeback_flow.deadline_date` (string)
    Deadline for submitting a response to the dispute.
This corresponds to date + n, where n is a number of calendar days set by the scheme/acquirer.

  - `chargebacks.<chargeback_id_value_#1>.chargeback_flow.amount` (integer, required)
    Amount involved in each stage of the chargeback process.
For example, there could be two records in chargeback_flow one with an amount of 113.58 USD and another with an amount of 100 USD.

  - `chargebacks.<chargeback_id_value_#1>.chargeback_flow.dispute_amount` (integer, required)
    Specific amount disputed, typically in the smallest currency unit, that would be returned to the merchant if the dispute is resolved in their favor.
For example, if the second chargeback was successfully disputed, the dispute_amount would be 100 USD.

  - `chargebacks.<chargeback_id_value_#1>.chargeback_flow.currency` (string, required)
    Three-letter ISO-4217 currency code  of the chargeback amount.

  - `chargebacks.<chargeback_id_value_#1>.chargeback_flow.type` (string, required)
    Type of the chargeback flow.
    Enum: "1st_chb", "2nd_chb", "arbitration"

  - `chargebacks.<chargeback_id_value_#1>.chargeback_flow.status` (string, required)
    Status of the chargeback.
    Enum: "in_progress", "document_sent", "reversed", "accepted", "resolved", "resolved_reversal"

  - `chargebacks.<chargeback_id_value_#1>.chargeback_flow.arn_code` (string)
    Acquirer Reference Number (ARN) assigned to transactions.
Use ARN to check transaction status.

  - `device_info` (object)
    Information about the device used.

  - `device_info.user_agent` (string)
    Device user-agent.

  - `verify_url` (string)
    URL where the customer should be redirected to complete 3DS authentication.
Only after opening the URL and authenticating the order status change to 3ds_verify.

  - `redirect_url` (string)
    URL where customer should be redirected after finishing 3D Secure or redirect payment method.

  - `order_metadata` (object)
    Metadata is useful for storing additional, structured information about an order.

  - `pay_form` (object)
    Represents a payment form, including deprecated properties related to the form URL and token.

  - `pay_form.form_url` (string)
    Payment form URL created for the order.
    Example: https://example.com/pay_form_url

  - `pay_form.token` (string)
    Secure payment token representing sensitive payment method information.
    Example: baf2ff5c5a125aeabb4b80d7b983f66f3abf5dbb8d939df48b40755674eddceee78084eab5fa9c15a339c94f1ad2b30cf299

  - `payment_adviser` (object)
    Provides recommendations on which payment type to offer for future orders based on the card used.

  - `payment_adviser.advise` (string)
    Recommendation for which payment type to use for the given order and card.

  - `error` (object, required)
    Error object.

  - `error.code` (string, required)
    Unauthorized access due to invalid credentials.
    Example: 1.01

  - `error.messages` (array, required)
    Array of error messages applied to the decline payment.

## Response 200 examples:

  - `Success` (unknown)

  - `Authentication failed` (unknown)

  - `Error 2.01 Invalid data` (unknown)

  - `Error 2.01 Order not found` (unknown)

  - `Error X.XX` (unknown)

