This reference is based on the [config object
schema](https://pay.google.com/gp/p/ucp/2026-01-23/schemas/config.json) for the
[Google Pay payment handler](https://developers.google.com/pay/api/universal-commerce-protocol/google-pay-payment-handler)
for Universal Commerce Protocol (UCP).

    {
      "api_version": 2,
      "api_version_minor": 0,
      "environment": "TEST" | "PRODUCTION",
      "merchant_info": {
        "merchant_id": string,
        "merchant_name": string,
        "merchant_origin": string,
        "auth_jwt": string
      },
      "allowed_payment_methods": [
        {
          "type": "CARD",
          "parameters": {
            "allowed_auth_methods": [
              "PAN_ONLY"
            ],
            "allowed_card_networks": [
              "AMEX" | "DISCOVER" | "ELECTRON" | "ELO" | "ELO_DEBIT" | "INTERAC" | "JCB" | "MAESTRO" | "MASTERCARD" | "VISA"
            ],
            "allow_prepaid_cards": boolean,
            "allow_credit_cards": boolean,
            "billing_address_required": boolean,
            "billing_address_parameters": {
              "format": "MIN" | "FULL" | "FULL-ISO3166",
              "phone_number_required": boolean
            }
          },
          "tokenization_specification": {
            "type": "PAYMENT_GATEWAY" | "DIRECT",
            "parameters": {
              ...
            }
          },
        }
      ]
    }

## Properties

| Property | Type | Necessity | Description |
|---|---|---|---|
| `api_version` | integer | Required | The major Google Pay API version. Only `2` is supported. |
| `api_version_minor` | integer | Required | The minor Google Pay API version. Only `0` is supported. |
| `environment` | string | Required | The Google Pay environment to use. - `TEST`: Testing-only payment credentials. - `PRODUCTION`: Real, authorizable payment credentials. |
| `merchant_info` | object | Required | Identity details for the merchant. |
| `merchant_info.merchant_id` | string | Required | Your Google Pay merchant ID from the [Google Pay \& Wallet Console](https://pay.google.com/business/console/). This is required for the `PRODUCTION` environment. It is optional and ignored in the `TEST` environment. Your merchant ID is a numeric OR alphanumeric value displayed next to your business name in Google Pay \& Wallet Console. |
| `merchant_info.merchant_name` | string | Optional | The merchant's user-facing business name. |
| `merchant_info.merchant_origin` | string | Optional | The fully qualified web domain where the checkout occurs (format: `hostname`). |
| `merchant_info.auth_jwt` | string | Optional | Authorization JWT for certain integration contexts. |
| `allowed_payment_methods` | object\[ \] | Required | The payment methods allowed for this transaction. |
| `allowed_payment_methods[].type` | string | Required | The type of supported payment method. Supported values: `CARD`, `EWALLET`. |
| `allowed_payment_methods[].parameters` | object | Optional | Parameters required to configure the `CARD` payment method. This property is required if `type` is `CARD`. |
| `allowed_payment_methods[].parameters.allowed_auth_methods` | string\[ \] | Required | Fields supported to authenticate a card transaction. - `PAN_ONLY`: Returns the primary account number (PAN) and expiration date for a card on file in Google Wallet. |
| `allowed_payment_methods[].parameters.allowed_card_networks` | string\[ \] | Required | The card networks supported by the merchant. Supported values: `AMEX`, `DISCOVER`, `ELECTRON`, `ELO`, `ELO_DEBIT`, `INTERAC`, `JCB`, `MAESTRO`, `MASTERCARD`, `VISA`. |
| `allowed_payment_methods[].parameters.allow_prepaid_cards` | boolean | Optional | Set to `false` if you don't support prepaid cards. Default is `true`. |
| `allowed_payment_methods[].parameters.allow_credit_cards` | boolean | Optional | Set to `false` if you don't support credit cards. Default is `true`. |
| `allowed_payment_methods[].parameters.billing_address_required` | boolean | Optional | Set to `true` if you require a billing address to complete the transaction. |
| `allowed_payment_methods[].parameters.billing_address_parameters` | object | Optional | Parameters that configure the returned billing address. |
| `allowed_payment_methods[].parameters.billing_address_parameters.format` | string | Optional | Billing address format required to complete the transaction. - `MIN`: Name, country code, and ZIP/postal code (default). - `FULL`: Name, street address, locality, region, country code, and ZIP/postal code. - `FULL-ISO3166`: Name, street address, locality, region, country code, postal code, and `iso3166AdministrativeArea`. |
| `allowed_payment_methods[].parameters.billing_address_parameters.phone_number_required` | boolean | Optional | Set to `true` if you require a phone number to complete the transaction. |
| `allowed_payment_methods[].tokenization_specification` | object | Optional | Configuration that defines how payment credentials are returned to you. This property is required if `type` is `CARD`. |
| `allowed_payment_methods[].tokenization_specification.type` | string | Required | The tokenization type. - `PAYMENT_GATEWAY`: Used if you process payments through a \[supported gateway\](/pay/api#participating-processors). Returns an encrypted payload to be passed to your PSP. - `DIRECT`: Used if you decrypt credentials yourself (requires PCI DSS Level 1 compliance). |
| `allowed_payment_methods[].tokenization_specification.parameters` | object | Required | Parameters specific to the selected tokenization `type`. <br /> For `PAYMENT_GATEWAY`, **required** parameters are: - `gateway`: The name of the gateway (for example, `example`). - Any additional parameters [indicated for your specific gateway](https://developers.google.com/pay/api/web/guides/tutorial#tokenization). For `DIRECT`, **required** parameters are: - `protocolVersion`: The version of the encryption and signature protocol expected in the Google Pay credential. Only `ECv2` is supported. See [Payment data cryptography](https://developers.google.com/pay/api/web/guides/resources/payment-data-cryptography) for more information. - `publicKey`: Base64-encoded elliptic curve public key. See the [Encryption public key format](https://developers.google.com/pay/api/web/guides/resources/payment-data-cryptography#public-key-format) section for more information. |
| `allowed_payment_methods[].processing_specification` | object | Optional | Define the information required to process the payment. This property is required if `type` is `EWALLET`. |
| `allowed_payment_methods[].processing_specification.type` | string | Required | The eWallet provider type. Supported values: `SHOPEE_PAY`, `TOUCH_N_GO`. |
| `allowed_payment_methods[].processing_specification.parameters` | object | Required | Parameters specific to the selected eWallet provider. <br /> **Required** parameters are: - `ewallet_merchant_name`: User-facing display name for the merchant. - `ewallet_merchant_account`: eWallet or aggregator-issued merchant identifier. - `psp_transaction_reference`: A unique reference number generated by PSP for idempotency. |