Request Physical Payment Card via Partner
This endpoint enables partners to request the issuance of a new physical (plastic) payment card on behalf of a customer. It collects delivery details, shipping preferences, and card product configuration to initiate card fulfillment. The endpoint ensures secure handling of card-related data while streamlining the physical card ordering process.
Endpoint
POST /api/paymentCards/v2/openPartnerCardPhysical
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 partner needs to order a physical payment card to be mailed to a customer's address. This is appropriate for onboarding flows where a customer has been approved and requires a physical card tied to a specific card product. It supports various shipping methods to accommodate standard and expedited delivery requirements.
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
deliveryDetails | object | Yes | Delivery information for the physical card shipment |
deliveryDetails.name | object | Yes | Cardholder name for the physical card |
deliveryDetails.name.givenName | string | Yes | Cardholder's first name |
deliveryDetails.name.familyName | string | Yes | Cardholder's last name |
deliveryDetails.companyName | string | Yes | Company name for card delivery |
deliveryDetails.address | object | Yes | Shipping address for the physical card |
deliveryDetails.address.streetAddress | string | Yes | Street address (must match pattern: number followed by street name) |
deliveryDetails.address.extendedAddress | string | No | Apartment, suite, or unit number |
deliveryDetails.address.postalCode | string | Yes | 5-digit US ZIP code (e.g., "90210") |
deliveryDetails.address.region | string | Yes | 2-letter US state code (e.g., "CA") |
deliveryDetails.address.locality | string | Yes | City name |
deliveryDetails.address.countryCodeAlpha3 | string | Yes | 3-letter ISO country code (e.g., "USA") |
courier | object | No | Shipping carrier and method preferences |
courier.method | string | No | Shipping method. Enum: USPS_GROUND, USPS_PRIORITY, USPS_EXPRESS, UPS_GROUND, UPS_SECOND_DAY, UPS_NEXT_DAY |
cardProductId | string | Yes | Identifier of the card product to issue |
cardProfileSetId | string | No | Optional card profile set identifier (max 100 characters) |
paymentCardName | string | No | Custom display name for the payment card |
{
"deliveryDetails": {
"name": {
"givenName": "Jane",
"familyName": "Smith"
},
"companyName": "Acme Corp",
"address": {
"streetAddress": "123 Main St",
"extendedAddress": "Suite 400",
"postalCode": "30301",
"region": "GA",
"locality": "Atlanta",
"countryCodeAlpha3": "USA"
}
},
"courier": {
"method": "UPS_GROUND"
},
"cardProductId": "prod_abc123xyz",
"cardProfileSetId": "profileset_001",
"paymentCardName": "Business Debit"
}Response
200 OK
| Field | Type | Description |
|---|---|---|
id | integer | Internal record ID for the card order |
createdDate | string (date-time) | Timestamp when the card order was created |
updatedDate | string (date-time) | null | Timestamp of the last update to the card order |
cardProductId | string | null | Card product identifier used for this order |
userProfileId | integer | Internal user profile ID associated with the card |
isVirtual | boolean | Indicates whether the card is virtual (false for physical cards) |
success | boolean | null | Whether the card order was successfully submitted |
errors | string | null | Error message if the order failed, otherwise null |
paymentCardShippingMethod | string | Shipping method selected for delivery |
streetAddress | string | null | Delivery street address recorded on the order |
postalCode | string | null | Delivery ZIP code recorded on the order |
region | string | null | Delivery state code recorded on the order |
locality | string | null | Delivery city recorded on the order |
countryCodeAlpha3 | string | null | Delivery country code recorded on the order |
givenName | string | null | Cardholder first name recorded on the order |
familyName | string | null | Cardholder last name recorded on the order |
companyName | string | null | Company name recorded on the order |
onlyFinancialAccount | boolean | If true, a financial account was created without a card |
extendedAddress | string | null | Extended delivery address (unit/suite) recorded on the order |
cardProfileSetId | string | null | Card profile set identifier used for this order (max 100 chars) |
paymentCardName | string | null | Custom display name assigned to the card |
subUserId | integer | null | Sub-user (authorized user) ID if the card is issued for a subprofile |
{
"id": 4821,
"createdDate": "2026-06-08T14:32:00Z",
"updatedDate": null,
"cardProductId": "prod_abc123xyz",
"userProfileId": 10045,
"isVirtual": false,
"success": true,
"errors": null,
"paymentCardShippingMethod": "UPS_GROUND",
"streetAddress": "123 Main St",
"postalCode": "30301",
"region": "GA",
"locality": "Atlanta",
"countryCodeAlpha3": "USA",
"givenName": "Jane",
"familyName": "Smith",
"companyName": "Acme Corp",
"onlyFinancialAccount": false,
"extendedAddress": "Suite 400",
"cardProfileSetId": "profileset_001",
"paymentCardName": "Business Debit",
"subUserId": null
}Error Codes
| Code | When it happens |
|---|---|
| 400 | Missing required fields (cardProductId or deliveryDetails), invalid postal code format (must be 5 digits), invalid region code (must be 2 characters), invalid country code (must be 3 characters), or malformed street address |
| 401 | Token missing, expired, or invalid |
| 403 | Insufficient permissions to order cards for this partner or customer |
| 404 | Specified cardProductId or cardProfileSetId not found |
| 405 | HTTP method not allowed (use POST) |
| 500 | Internal server error |
Common Mistakes
- Providing a
postalCodethat is not exactly 5 digits — the field enforces a strict^\d{5}$pattern; ZIP+4 format (e.g.,"30301-1234") will be rejected. - Providing a
regionthat is not exactly 2 characters — full state names (e.g.,"Georgia") are invalid; use the 2-letter code (e.g.,"GA"). - Providing a
countryCodeAlpha3that is not exactly 3 characters — use ISO 3166-1 alpha-3 codes (e.g.,"USA") not alpha-2 (e.g.,"US"). - Omitting
deliveryDetails.companyName— this field is required even for individual (non-business) card orders. - Using a
streetAddressthat begins with a non-numeric character — the field requires a leading street number (e.g.,"123 Main St", not"Main St 123").
Related Endpoints
POST /api/paymentCards/v2/openPartnerCardVirtual— Issue a virtual payment card through a partnerPOST /api/paymentCards/v2/openPartnerCardBurner— Issue a temporary burner card through a partnerGET /api/paymentCards/v2— List payment cards for the authenticated userPOST /api/auth/v2— Obtain a Bearer token for authentication
Example
curl -X POST https://api.banking.netevia.dev/api/paymentCards/v2/openPartnerCardPhysical \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"deliveryDetails": {
"name": {
"givenName": "Jane",
"familyName": "Smith"
},
"companyName": "Acme Corp",
"address": {
"streetAddress": "123 Main St",
"extendedAddress": "Suite 400",
"postalCode": "30301",
"region": "GA",
"locality": "Atlanta",
"countryCodeAlpha3": "USA"
}
},
"courier": {
"method": "UPS_GROUND"
},
"cardProductId": "prod_abc123xyz",
"cardProfileSetId": "profileset_001",
"paymentCardName": "Business Debit"
}'