POST//
Use the /digitalwalletprovisionrequests/googlepay endpoint to return card data for use in provisioning a digital wallet token into Google Wallet.
The returned card data is encrypted using the digital wallet provider’s encryption key, thereby reducing your Payment Card Industry (PCI) compliance overhead.
Header parameter
| Fields | Description |
|---|---|
| req-sys-id string Optional | Random pseudo-unique identifier of a request, used for troubleshooting between multiple parties. Usually a globally unique identifier (GUID). Allowable Values: 1–36 chars |
| region string Optional | Region of the card requested for provisioning. Applicable to both physical and virtual cards. Allowable Values: NAM, EMEA, APAC |
| isVirtualCard boolean Optional | Header flag to identify the type of the card requested for provisioning. Value is true for virtual cards, false for physical cards.Allowable Values: Example: true |
Request body
| Fields | Description |
|---|---|
| encrypted_card_data object Required | Encrypted data object. This object is first encrypted using the recipient’s public key and sent in JSON Web Encryption (JWE) format and then signed using the sender’s private key using JSON Web Signature (JWS). It represents the decrypted format. Allowable Values: card_token, card_type, cardholder_info, expiration, metadata, primary_account_number |
| encrypted_card_data.expiration object Required | Specifies the expiry date for the card. Allowable Values: month, year |
| encrypted_card_data.expiration.month string Required | Specifies the expiry month for the card in MM format. 01, for example.Allowable Values: Format: MM |
| encrypted_card_data.expiration.year string Required | Specifies the expiry year for the card in yyyy format. 2024, for example.Allowable Values: Format: yyyy |
| encrypted_card_data.card_token string Optional | Unique identifier of the card. Allowable Values: 1–36 chars |
| encrypted_card_data.primary_account_number string Required | Account number of the card being tokenized. Allowable Values: 12–19 chars |
| encrypted_card_data.card_type string Optional | Specifies the type of card. This field is required for Samsung Wallet. Allowable Values: CREDIT, DEBIT |
| encrypted_card_data.cardholder_info object Optional | Contains personal information about the cardholder. Allowable Values: cardholder_address, email_address, first_name, last_name, phone_number |
| encrypted_card_data.cardholder_info.first_name string Optional | First or given name of the cardholder. Allowable Values: 40 char max |
| encrypted_card_data.cardholder_info.last_name string Optional | Last or family name of the cardholder. Allowable Values: 40 char max |
| encrypted_card_data.cardholder_info.cardholder_address object Optional | Specifies the cardholder’s address. Allowable Values: address_line_1, address_line_2, city, country_code, postal_code, state |
| encrypted_card_data.cardholder_info.cardholder_address.address_line_1 string Required | Street address of the cardholder. Allowable Values: 1–255 chars |
| encrypted_card_data.cardholder_info.cardholder_address.address_line_2 string Optional | Additional address information for the cardholder, such as a suite, floor, room, PO Box or apartment number. Suite 600, for example.Allowable Values: 255 char max |
| encrypted_card_data.cardholder_info.cardholder_address.postal_code string Required | Postal code of the cardholder. Allowable Values: 1–50 chars |
| encrypted_card_data.cardholder_info.cardholder_address.city string Optional | City of the cardholder. Allowable Values: 40 char max |
| encrypted_card_data.cardholder_info.cardholder_address.state string Optional | State or province code associated with the cardholder’s address. Allowable Values: 3 char max |
| encrypted_card_data.cardholder_info.cardholder_address.country_code string Optional | Two-character ISO 3166-1 alpha-2 country code. US, for example.Allowable Values: 2 char max |
| encrypted_card_data.cardholder_info.email_address string Optional | Email address of the cardholder. Allowable Values: 255 char max |
| encrypted_card_data.cardholder_info.phone_number string Optional | Phone number of the cardholder. This number is used when Marqeta performs step-up authentication on your behalf. Allowable Values: 255 char max |
| encrypted_card_data.metadata array of objects Optional | Additional metadata related to the card details object. Allowable Values: Valid array of card details metadata objects |
| encrypted_card_data.metadata[].name string Required | Specifies the metadata attribute name, such as CARD_ART_ID, MAX_TOKENS_PER_CARD, and so on.Allowable Values: 255 char max |
| encrypted_card_data.metadata[].value string Required | Specifies the value of the metadata attribute. Allowable Values: 255 char max |
| card_token string Optional | Unique identifier of the card. Allowable Values: 1–36 chars |
| device_type string Optional | Specifies the type of device. Allowable Values: APPLIANCE, GAMING_DEVICE, LAPTOP, MOBILE_PHONE, MOBILE_PHONE_OR_TABLET, PERSONAL_COMPUTER, TABLET, UNKNOWN, UNRECOGNIZED, VEHICLE, WATCH |
| provisioning_app_version string Optional | Specifies the version of the application making the provisioning request. This field is used for debugging and fraud prevention. Allowable Values: 50 char max |
| wallet_account_id string Required | User’s Google Wallet account ID, as provided by Google during the provisioning process. Google refers to this field as ActiveWalletId.Allowable Values: 1–50 chars |
| device_id string Required | Unique identifier of the user’s Google device, as provided by Google during the provisioning process. Google refers to this field as StableHardwareId.Allowable Values: 1–24 chars |
Sample request body
Sample Google Pay requestJSON
{
"encrypted_card_data": {
"expiration": {
"month": "01",
"year": "2025"
},
"card_token": "card-token-811",
"primary_account_number": "4111111111111111",
"cardholder_info": {
"first_name": "Jane",
"last_name": "Liu",
"cardholder_address": {
"city": "Oakland",
"state": "CA",
"address_line_1": "180 Grand Ave",
"address_line_2": "Floor 6",
"postal_code": "94612",
"country_code": "US"
},
"email_address": "marqetaTest@marqeta.com",
"phone_number": "1234567890"
}
},
"device_id": "W85OGhjZTk2dsr452dgsr51j",
"wallet_user_id": "ae25OGhjZTk2dsr452dgsr51",
"provisioning_app_version": "2.13.3",
"wallet_account_id": "ae123GhjZTk1dsr123dgsr12"
}
Response body
| Fields | Description |
|---|---|
| created_time datetime Returned | Date and time when the resource was created, in UTC. Allowable Values: date-time Format: yyyy-MM-ddThh:mm:ssZ |
| last_modified_time datetime Returned | Date and time when the resource was created, in UTC. Allowable Values: date-time Format: yyyy-MM-ddThh:mm:ssZ |
| card_token string Conditionally returned | Unique identifier of the card. Allowable Values: 1–36 chars |
| push_tokenize_request_data object Returned | Contains data pertaining to a Google push tokenization request. Allowable Values: display_name, last_digits, network, opaque_payment_card, token_service_provider, user_address |
| push_tokenize_request_data.display_name string Returned | Name of the card as displayed in the digital wallet, typically showing the card brand and last four digits of the primary account number (PAN). Visa 5678, for example.Allowable Values: 255 char max |
| push_tokenize_request_data.last_digits string Returned | Last four digits of the funding primary account number (FPAN), which is the primary account number of the physical or virtual card. Allowable Values: 4 chars |
| push_tokenize_request_data.network string Returned | Card network, as defined by Google; expected to align with the value of the token_service_provider field.Allowable Values: Mastercard, Visa |
| push_tokenize_request_data.token_service_provider string Returned | Token service provider, as defined by Google; expected to align with the value of the network field.Allowable Values: TOKEN_PROVIDER_MASTERCARD, TOKEN_PROVIDER_VISA |
| push_tokenize_request_data.opaque_payment_card string Returned | Encrypted card data passed to Google in base64 format. This data should not be modified in transit. For more information, see https://developers.google.com/pay/issuers/apis/push-provisioning/android/push-provisioning-objects#opaque_payment_card_opc. Allowable Values: 1–5000 chars |
| push_tokenize_request_data.user_address object Returned | Contains cardholder address information for a Google Wallet push tokenization request. Although not required, Marqeta recommends that you provide all the information in this object. Any missing or invalid address information may result in the user being prompted to complete or correct the address. For more information, see https://developers.google.com/pay/issuers/apis/push-provisioning/android/push-provisioning-objects#useraddress. Allowable Values: address1, address2, city, country, name, phone, postal_code |
| push_tokenize_request_data.user_address.name string Conditionally returned | Name of the cardholder. Allowable Values: 255 char max |
| push_tokenize_request_data.user_address.address1 string Returned | Street address of the cardholder. Allowable Values: 1–255 chars |
| push_tokenize_request_data.user_address.address2 string Conditionally returned | Secondary address information, such as a suite or apartment number Allowable Values: 255 char max |
| push_tokenize_request_data.user_address.city string Conditionally returned | City of the cardholder. Allowable Values: 255 char max |
| push_tokenize_request_data.user_address.state string Conditionally returned | State or province code of the address. Allowable Values: 3 char max |
| push_tokenize_request_data.user_address.postal_code string Returned | Postal code of the cardholder, such as a United States ZIP code. Allowable Values: 1–50 chars |
| push_tokenize_request_data.user_address.country string Conditionally returned | Two-character ISO 3166-1 alpha-2 country code. Allowable Values: 2 char max |
| push_tokenize_request_data.user_address.phone string Conditionally returned | Phone number of the cardholder. Allowable Values: 50 char max |
Sample response body
Sample Google Pay responseJSON
{
"created_time": "2025-09-09T18:08:07Z",
"last_modified_time": "2025-09-09T18:08:07Z",
"card_token": "my_card_01",
"push_tokenize_request_data": {
"display_name": "Visa Card",
"last_digits": "1008",
"network": "Visa",
"token_service_provider": "TOKEN_PROVIDER_VISA",
"opaque_payment_card": "eyJraWQiOiIzVkhSWVVSUlRVT1....",
"user_address": {
"name": "Jane Liu",
"address1": "180 Grand Avenue",
"city": "Oakland",
"state": "CA",
"zip": "94612",
"country": "US",
"phone": "18000001111",
"postal_code": "94612"
}
}
}