Reissue Payment Card
This endpoint reissues a replacement payment card for an existing customer profile. It is used when a card has been lost, stolen, damaged, or expired and a new card needs to be issued in its place. The reissued card can be physical or virtual, and existing spending limits from the original card can optionally be carried over.
Endpoint
POST /netevia/paymentCard/reissue
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 cardholder reports their card as lost, stolen, or damaged, or when a card has expired and needs replacement. It is also appropriate when migrating a customer to a new card profile while preserving their existing configuration. If spending controls were configured on the original card, set keepSpendingLimits to true to avoid reconfiguring them on the new card.
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
| profileId | integer (int32) | Yes | The unique identifier of the customer profile requesting the card reissue |
| subProfileId | integer (int32) | No | The authorized user (subprofile) ID if the card belongs to a business subprofile |
| financialAccount | string | No | The financial account ID to associate with the reissued card |
| physical | boolean | No | true to issue a physical (plastic) card; false for a virtual card |
| shipping | string | No | Shipping method for physical card delivery (e.g., standard, expedited) |
| last4 | string | No | Last 4 digits of the original card being replaced, used for identification |
| paymentCardId | string | No | The unique identifier of the original payment card being reissued |
| cardProfileSetId | string | No | Card profile set identifier that defines card program rules |
| partnerId | integer (int32) | No | The partner identifier; defaults to the authenticated partner if omitted |
| activateNow | boolean | No | If true, the reissued card is activated immediately upon issuance |
| expirationDate | string (date-time) | No | Desired expiration date for the reissued card |
| reason | string | No | The reason for reissuing the card (e.g., "lost", "stolen", "damaged", "expired") |
| keepSpendingLimits | boolean | No | If true, spending limits from the original card are transferred to the reissued card |
| paymentCardName | string | No | A friendly display name to assign to the reissued card |
| cardDeliveryDetails | object | No | Delivery details for physical card shipment; required when physical is true |
| cardDeliveryDetails.name | object | No | Name to print and deliver the card to |
| cardDeliveryDetails.name.givenName | string | Yes (if name provided) | First name of the cardholder for delivery |
| cardDeliveryDetails.name.familyName | string | Yes (if name provided) | Last name of the cardholder for delivery |
| cardDeliveryDetails.companyName | string | Yes (if cardDeliveryDetails provided) | Company name for the delivery label |
| cardDeliveryDetails.address | object | Yes (if cardDeliveryDetails provided) | Shipping address for the physical card |
| cardDeliveryDetails.address.streetAddress | string | Yes (if address provided) | Street address; must begin with a number followed by street name |
| cardDeliveryDetails.address.extendedAddress | string | No | Apartment, suite, or unit number |
| cardDeliveryDetails.address.locality | string | Yes (if address provided) | City name |
| cardDeliveryDetails.address.region | string | Yes (if address provided) | Two-letter US state code (e.g., CA, TX) |
| cardDeliveryDetails.address.postalCode | string | Yes (if address provided) | Five-digit US ZIP code |
| cardDeliveryDetails.address.countryCodeAlpha3 | string | Yes (if address provided) | Three-letter ISO 3166-1 alpha-3 country code (e.g., USA) |
{
"profileId": 10045,
"paymentCardId": "pc_9a3f2c1b4d7e6f08",
"last4": "7823",
"physical": true,
"activateNow": false,
"reason": "lost",
"keepSpendingLimits": true,
"paymentCardName": "Business Debit Card",
"shipping": "standard",
"financialAccount": "fa_4b2e9d1c7a0f5e33",
"cardProfileSetId": "cps_1d4f8a2c9b3e7f50",
"cardDeliveryDetails": {
"name": {
"givenName": "Jane",
"familyName": "Smith"
},
"companyName": "Acme Corp",
"address": {
"streetAddress": "123 Main St",
"extendedAddress": "Suite 400",
"locality": "Austin",
"region": "TX",
"postalCode": "78701",
"countryCodeAlpha3": "USA"
}
}
}Response
200 OK
The response returns one of two schemas depending on whether a new financial account was opened as part of the reissue process.
boardingresponse (standard reissue):
| Field | Type | Description |
|---|---|---|
| profileId | integer (int32) | The profile ID associated with the reissued card |
| success | boolean | true if the reissue completed successfully |
| errors | string | Error message if the operation failed; null on success |
| changeLog | array | List of change log entries describing actions taken during the reissue |
| changeLog[].requestType | integer (int32) | Numeric code representing the type of boarding request performed |
| changeLog[].changes | string | Human-readable description of the change applied |
openfinancialaccountresponse (reissue with new financial account):
Inherits all fields from boardingresponse, plus:
| Field | Type | Description |
|---|---|---|
| financialAccountId | string | The ID of the newly created financial account, if one was opened during reissue |
{
"profileId": 10045,
"success": true,
"errors": null,
"changeLog": [
{
"requestType": 7,
"changes": "Payment card reissued successfully; spending limits transferred from previous card."
}
]
}Error Codes
| Code | When it happens |
|---|---|
| 400 | Missing required fields, invalid field format (e.g., malformed postal code or region code), or validation error on the request body |
| 401 | Token missing, expired, or invalid |
| 403 | Insufficient permissions to reissue a card for the specified profile or subprofile |
| 404 | The specified profileId, paymentCardId, or financialAccount was not found |
| 500 | Internal server error |
Common Mistakes
- Providing a
regionvalue that is not exactly 2 characters or apostalCodethat is not exactly 5 digits will cause a 400 validation error. - Omitting
cardDeliveryDetailswhenphysicalistruewill result in a failed request, as delivery information is required to ship a physical card. - Using a
countryCodeAlpha3value with fewer or more than 3 characters (e.g., passing"US"instead of"USA") will fail schema validation. - Setting
keepSpendingLimitstofalsewhen you intend to preserve controls will silently reset all spending limits on the replacement card. - The
last4field is for identification purposes only; it does not replace the requirement to supplypaymentCardIdwhen you have it available.
Related Endpoints
POST /netevia/paymentCard/issue— Issue a new payment card for a customer profilePOST /netevia/paymentCard/activate— Activate a newly issued or reissued payment cardPOST /netevia/paymentCard/cancel— Cancel an existing payment cardGET /netevia/paymentCard— Retrieve payment card details for a profile
Example
curl -X POST https://api.banking.netevia.dev/netevia/paymentCard/reissue \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"profileId": 10045,
"paymentCardId": "pc_9a3f2c1b4d7e6f08",
"last4": "7823",
"physical": true,
"activateNow": false,
"reason": "lost",
"keepSpendingLimits": true,
"paymentCardName": "Business Debit Card",
"shipping": "standard",
"financialAccount": "fa_4b2e9d1c7a0f5e33",
"cardDeliveryDetails": {
"name": {
"givenName": "Jane",
"familyName": "Smith"
},
"companyName": "Acme Corp",
"address": {
"streetAddress": "123 Main St",
"extendedAddress": "Suite 400",
"locality": "Austin",
"region": "TX",
"postalCode": "78701",
"countryCodeAlpha3": "USA"
}
}
}'