Add a Netevia payment card to a customer's Google Wallet for contactless mobile payments.
Add Payment Card to Google Wallet
This endpoint enables a customer's Netevia payment card to be provisioned into Google Wallet, making it available for contactless payments via Google Pay. The request requires the card's unique identifier and, depending on the card type or use case, may include additional fields such as a nickname, order reference, or reissue details. On success, the card is linked to Google Wallet and ready for use in transactions.
Endpoint
POST /api/paymentCards/addToGoogleWallet
Authentication
Bearer token required. Obtain via:
POST https://api.banking.netevia.dev/api/auth/v2
Include in header: Authorization: Bearer {token}
Token lifetime: 10 minutes. Refresh via POST /api/auth/refresh.
When to use
Use this endpoint when a customer wants to add one of their Netevia payment cards (Physical, Virtual, or Burner) to Google Wallet for mobile contactless payments. This is typically triggered from a card management screen within your partner application after the customer has an active card. All card types supported by Netevia can be provisioned into Google Wallet using this endpoint.
Request Body
The request body accepts one of the following schemas. In all cases, paymentCardId is required as the base field.
Base Request (paymentcardrequest)
paymentcardrequest)| Field | Type | Required | Description |
|---|---|---|---|
| paymentCardId | string | Yes | Unique identifier of the payment card to add to Google Wallet |
With Nickname (paymentcardnicknamerequest)
paymentcardnicknamerequest)Extends base request with:
| Field | Type | Required | Description |
|---|---|---|---|
| paymentCardId | string | Yes | Unique identifier of the payment card |
| nickName | string | No | Display name for the card in Google Wallet (max 18 characters) |
With Order ID (paymentcardorderrequest)
paymentcardorderrequest)Extends base request with:
| Field | Type | Required | Description |
|---|---|---|---|
| paymentCardId | string | Yes | Unique identifier of the payment card |
| orderId | string | Yes | Order reference ID associated with the card provisioning request |
With Period (paymentcardwithperiodrequest)
paymentcardwithperiodrequest)Extends base request with:
| Field | Type | Required | Description |
|---|---|---|---|
| paymentCardId | string | Yes | Unique identifier of the payment card |
| dateFrom | string (date-time) | Yes | Start of the period for card activity scope (ISO 8601) |
| dateTo | string (date-time) | Yes | End of the period for card activity scope (ISO 8601) |
Reissue Request (reissuepaymentcardrequest)
reissuepaymentcardrequest)Extends base request with:
| Field | Type | Required | Description |
|---|---|---|---|
| paymentCardId | string | Yes | Unique identifier of the payment card |
| reason | string (enum) | No | Reason for reissue: NeedNewCard, LostOrStolen, Fraud, Damaged, Expired |
| subProfileId | integer | No | ID of the authorized user (subProfile) for business customers |
| paymentCardName | string | No | Custom name for the reissued card |
| orderPhysicalPaymentCard | object | No | Physical card delivery details (see below) |
orderPhysicalPaymentCard — delivery details object:
| Field | Type | Required | Description |
|---|---|---|---|
| deliveryDetails.name.givenName | string | Yes | Cardholder first name |
| deliveryDetails.name.familyName | string | Yes | Cardholder last name |
| deliveryDetails.companyName | string | Yes | Company name for delivery |
| deliveryDetails.address.streetAddress | string | Yes | Street address (must match standard US address format) |
| deliveryDetails.address.extendedAddress | string | No | Apartment, suite, or unit number |
| deliveryDetails.address.postalCode | string | Yes | 5-digit US ZIP code |
| deliveryDetails.address.region | string | Yes | 2-letter US state code |
| deliveryDetails.address.locality | string | Yes | City name |
| deliveryDetails.address.countryCodeAlpha3 | string | Yes | 3-letter ISO country code (e.g., USA) |
| courier.method | string (enum) | No | Shipping method: USPS_GROUND, USPS_PRIORITY, USPS_EXPRESS, UPS_GROUND, UPS_SECOND_DAY, UPS_NEXT_DAY |
Obsolete Reissue Request (obsoletereissuepaymentcardrequest)
obsoletereissuepaymentcardrequest)Extends base request with:
| Field | Type | Required | Description |
|---|---|---|---|
| paymentCardId | string | Yes | Unique identifier of the payment card |
| expirationDate | string (date-time) | Yes | Expiration date-time for the reissued card (ISO 8601) |
| activateOnCreate | boolean | No | Whether to automatically activate the card upon creation |
| copyNumber | boolean | No | Whether to copy the card number from the original card |
| copyPin | boolean | No | Whether to copy the PIN from the original card |
{
"paymentCardId": "card_a1b2c3d4e5f6",
"nickName": "My Google Pay Card"
}Response
200 OK
A successful response confirms that the payment card has been provisioned to Google Wallet. The response body returns a confirmation with masked card details.
| Field | Type | Description |
|---|---|---|
| success | boolean | Indicates whether the card was successfully added to Google Wallet |
| message | string | Human-readable confirmation message |
| cardId | string | Identifier of the card that was provisioned |
{
"success": true,
"message": "Payment card successfully added to Google Wallet.",
"cardId": "card_a1b2c3d4e5f6"
}Error Codes
| Code | When it happens |
|---|---|
| 400 | Missing required fields (e.g., paymentCardId not provided), validation error on address format, postal code format, or field length constraints |
| 401 | Token missing, expired, or invalid |
| 403 | Insufficient permissions — the authenticated user does not have access to the specified card |
| 404 | Payment card not found for the given paymentCardId |
| 500 | Internal server error |
Common Mistakes
- Omitting
paymentCardId— this field is required in all request variants; the request will fail with 400 if absent - Sending a
postalCodethat is not exactly 5 digits — the schema enforces the pattern^\d{5}$ - Sending a
regioncode that is not exactly 2 characters — both minLength and maxLength are 2 for the state code - Sending a
countryCodeAlpha3that is not exactly 3 characters — use ISO 3166-1 alpha-3 format (e.g.,USA, notUS) - Using an expired or recently refreshed Bearer token — tokens expire after 10 minutes; refresh via
POST /api/auth/refreshbefore calling this endpoint - Providing a
nickNamelonger than 18 characters — the schema enforces maxLength of 18
Related Endpoints
POST /api/paymentCards/addToAppleWallet— Add a payment card to Apple WalletGET /api/paymentCards— List all payment cards for the authenticated customerPOST /api/paymentCards— Create a new payment card (Virtual, Physical, or Burner)PUT /api/paymentCards/{paymentCardId}— Update payment card detailsPOST /api/auth/v2— Obtain a Bearer token for authentication
Example
curl -X POST https://api.banking.netevia.dev/api/paymentCards/addToGoogleWallet \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"paymentCardId": "card_a1b2c3d4e5f6",
"nickName": "My Google Pay Card"
}' 200Success
