Reissue payment card

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

FieldTypeRequiredDescription
profileIdinteger (int32)YesThe unique identifier of the customer profile requesting the card reissue
subProfileIdinteger (int32)NoThe authorized user (subprofile) ID if the card belongs to a business subprofile
financialAccountstringNoThe financial account ID to associate with the reissued card
physicalbooleanNotrue to issue a physical (plastic) card; false for a virtual card
shippingstringNoShipping method for physical card delivery (e.g., standard, expedited)
last4stringNoLast 4 digits of the original card being replaced, used for identification
paymentCardIdstringNoThe unique identifier of the original payment card being reissued
cardProfileSetIdstringNoCard profile set identifier that defines card program rules
partnerIdinteger (int32)NoThe partner identifier; defaults to the authenticated partner if omitted
activateNowbooleanNoIf true, the reissued card is activated immediately upon issuance
expirationDatestring (date-time)NoDesired expiration date for the reissued card
reasonstringNoThe reason for reissuing the card (e.g., "lost", "stolen", "damaged", "expired")
keepSpendingLimitsbooleanNoIf true, spending limits from the original card are transferred to the reissued card
paymentCardNamestringNoA friendly display name to assign to the reissued card
cardDeliveryDetailsobjectNoDelivery details for physical card shipment; required when physical is true
cardDeliveryDetails.nameobjectNoName to print and deliver the card to
cardDeliveryDetails.name.givenNamestringYes (if name provided)First name of the cardholder for delivery
cardDeliveryDetails.name.familyNamestringYes (if name provided)Last name of the cardholder for delivery
cardDeliveryDetails.companyNamestringYes (if cardDeliveryDetails provided)Company name for the delivery label
cardDeliveryDetails.addressobjectYes (if cardDeliveryDetails provided)Shipping address for the physical card
cardDeliveryDetails.address.streetAddressstringYes (if address provided)Street address; must begin with a number followed by street name
cardDeliveryDetails.address.extendedAddressstringNoApartment, suite, or unit number
cardDeliveryDetails.address.localitystringYes (if address provided)City name
cardDeliveryDetails.address.regionstringYes (if address provided)Two-letter US state code (e.g., CA, TX)
cardDeliveryDetails.address.postalCodestringYes (if address provided)Five-digit US ZIP code
cardDeliveryDetails.address.countryCodeAlpha3stringYes (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):

FieldTypeDescription
profileIdinteger (int32)The profile ID associated with the reissued card
successbooleantrue if the reissue completed successfully
errorsstringError message if the operation failed; null on success
changeLogarrayList of change log entries describing actions taken during the reissue
changeLog[].requestTypeinteger (int32)Numeric code representing the type of boarding request performed
changeLog[].changesstringHuman-readable description of the change applied

openfinancialaccountresponse (reissue with new financial account):

Inherits all fields from boardingresponse, plus:

FieldTypeDescription
financialAccountIdstringThe 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

CodeWhen it happens
400Missing required fields, invalid field format (e.g., malformed postal code or region code), or validation error on the request body
401Token missing, expired, or invalid
403Insufficient permissions to reissue a card for the specified profile or subprofile
404The specified profileId, paymentCardId, or financialAccount was not found
500Internal server error

Common Mistakes

  • Providing a region value that is not exactly 2 characters or a postalCode that is not exactly 5 digits will cause a 400 validation error.
  • Omitting cardDeliveryDetails when physical is true will result in a failed request, as delivery information is required to ship a physical card.
  • Using a countryCodeAlpha3 value with fewer or more than 3 characters (e.g., passing "US" instead of "USA") will fail schema validation.
  • Setting keepSpendingLimits to false when you intend to preserve controls will silently reset all spending limits on the replacement card.
  • The last4 field is for identification purposes only; it does not replace the requirement to supply paymentCardId when you have it available.

Related Endpoints

  • POST /netevia/paymentCard/issue — Issue a new payment card for a customer profile
  • POST /netevia/paymentCard/activate — Activate a newly issued or reissued payment card
  • POST /netevia/paymentCard/cancel — Cancel an existing payment card
  • GET /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"
      }
    }
  }'
Body Params
string | null
boolean
string | null
date-time
boolean
int32
int32 | null
boolean | null
string | null
boolean
string | null
string | null
string | null
string | null
int32 | null
cardDeliveryDetails
object
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