Request Physical Payment Card via Partner

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

FieldTypeRequiredDescription
deliveryDetailsobjectYesDelivery information for the physical card shipment
deliveryDetails.nameobjectYesCardholder name for the physical card
deliveryDetails.name.givenNamestringYesCardholder's first name
deliveryDetails.name.familyNamestringYesCardholder's last name
deliveryDetails.companyNamestringYesCompany name for card delivery
deliveryDetails.addressobjectYesShipping address for the physical card
deliveryDetails.address.streetAddressstringYesStreet address (must match pattern: number followed by street name)
deliveryDetails.address.extendedAddressstringNoApartment, suite, or unit number
deliveryDetails.address.postalCodestringYes5-digit US ZIP code (e.g., "90210")
deliveryDetails.address.regionstringYes2-letter US state code (e.g., "CA")
deliveryDetails.address.localitystringYesCity name
deliveryDetails.address.countryCodeAlpha3stringYes3-letter ISO country code (e.g., "USA")
courierobjectNoShipping carrier and method preferences
courier.methodstringNoShipping method. Enum: USPS_GROUND, USPS_PRIORITY, USPS_EXPRESS, UPS_GROUND, UPS_SECOND_DAY, UPS_NEXT_DAY
cardProductIdstringYesIdentifier of the card product to issue
cardProfileSetIdstringNoOptional card profile set identifier (max 100 characters)
paymentCardNamestringNoCustom 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

FieldTypeDescription
idintegerInternal record ID for the card order
createdDatestring (date-time)Timestamp when the card order was created
updatedDatestring (date-time) | nullTimestamp of the last update to the card order
cardProductIdstring | nullCard product identifier used for this order
userProfileIdintegerInternal user profile ID associated with the card
isVirtualbooleanIndicates whether the card is virtual (false for physical cards)
successboolean | nullWhether the card order was successfully submitted
errorsstring | nullError message if the order failed, otherwise null
paymentCardShippingMethodstringShipping method selected for delivery
streetAddressstring | nullDelivery street address recorded on the order
postalCodestring | nullDelivery ZIP code recorded on the order
regionstring | nullDelivery state code recorded on the order
localitystring | nullDelivery city recorded on the order
countryCodeAlpha3string | nullDelivery country code recorded on the order
givenNamestring | nullCardholder first name recorded on the order
familyNamestring | nullCardholder last name recorded on the order
companyNamestring | nullCompany name recorded on the order
onlyFinancialAccountbooleanIf true, a financial account was created without a card
extendedAddressstring | nullExtended delivery address (unit/suite) recorded on the order
cardProfileSetIdstring | nullCard profile set identifier used for this order (max 100 chars)
paymentCardNamestring | nullCustom display name assigned to the card
subUserIdinteger | nullSub-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

CodeWhen it happens
400Missing 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
401Token missing, expired, or invalid
403Insufficient permissions to order cards for this partner or customer
404Specified cardProductId or cardProfileSetId not found
405HTTP method not allowed (use POST)
500Internal server error

Common Mistakes

  • Providing a postalCode that 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 region that is not exactly 2 characters — full state names (e.g., "Georgia") are invalid; use the 2-letter code (e.g., "GA").
  • Providing a countryCodeAlpha3 that 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 streetAddress that 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 partner
  • POST /api/paymentCards/v2/openPartnerCardBurner — Issue a temporary burner card through a partner
  • GET /api/paymentCards/v2 — List payment cards for the authenticated user
  • POST /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"
  }'
Body Params
deliveryDetails
object
required
courier
object
string
required
length ≥ 1
string | null
string | null
Headers
string
enum
Defaults to application/json

Generated from available response content types

Allowed:
string
enum
Defaults to application/json

Generated from available request content types

Allowed:
Response

Language
Credentials
Bearer
JWT
LoadingLoading…
Response
Click Try It! to start a request and see the response here! Or choose an example:
text/plain
application/json
text/json