Issue Virtual Payment card with required parameters

Issue Virtual Payment Card

The POST /api/paymentCards endpoint issues a virtual payment card linked to a customer's financial account. Upon successful issuance, the API returns the card's details — including card number, CVV, and expiration date — for immediate use in online transactions. Virtual cards are generated instantly and do not require a physical card to be shipped.

Endpoint

POST /api/paymentCards

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 needs a virtual payment card for online purchases or digital transactions without waiting for a physical card. Virtual cards are linked to a specific financial account and can be activated immediately upon issuance. This is suitable for both business customers issuing cards to authorized users (subprofiles) and personal customers who need a digital-only card.

Request Body

FieldTypeRequiredDescription
financialAccountIdstringYesThe unique identifier of the financial account to link the card to. Minimum length: 1 character.
expirationDatestring (date-time)NoDesired expiration date and time for the card (ISO 8601 format). If omitted, the platform sets a default expiration.
activateNowbooleanNoIf true, the card is activated immediately upon issuance. Defaults to false if not specified.
paymentCardNamestringNoA display name or label for the card (e.g., "Marketing Expenses"). Nullable.
partnerIdinteger (int32)NoThe partner identifier. Used when issuing cards under a specific partner context. Nullable.
cardProfileSetIdstringNoIdentifier for the card profile set to apply to this card (controls spending controls, limits, etc.). Nullable.
subProfileIdinteger (int32)NoFor business customers only: the subprofile (authorized user) ID to associate this card with. Nullable.
{
  "financialAccountId": "fa_8d3e2c1b4a9f",
  "expirationDate": "2027-12-31T23:59:59Z",
  "activateNow": true,
  "paymentCardName": "Online Purchases",
  "partnerId": 101,
  "cardProfileSetId": "cps_standard_virtual",
  "subProfileId": null
}

Response

200 OK

FieldTypeDescription
cardIdstringUnique identifier for the newly issued virtual card.
cardNumberstringThe virtual card number (masked in logs as XXXX-XXXX-XXXX-XXXX).
cvvstringThe card verification value for online transactions.
expirationDatestring (date-time)The expiration date of the issued card.
statusstringCurrent status of the card (e.g., ACTIVE, INACTIVE).
financialAccountIdstringThe financial account this card is linked to.
paymentCardNamestringThe display name assigned to the card, if provided.
{
  "cardId": "pc_7f4a2e9b1c3d",
  "cardNumber": "XXXX-XXXX-XXXX-4321",
  "cvv": "***",
  "expirationDate": "2027-12-31T23:59:59Z",
  "status": "ACTIVE",
  "financialAccountId": "fa_8d3e2c1b4a9f",
  "paymentCardName": "Online Purchases"
}

Error Codes

CodeWhen it happens
400Missing required financialAccountId, invalid field format, or validation failure
401Token missing, expired, or invalid
403Insufficient permissions to issue a card for the given account or subprofile
404financialAccountId or subProfileId not found
500Internal server error

Common Mistakes

  • Omitting financialAccountId — this is the only required field and the request will fail without it.
  • Passing subProfileId for a personal customer account — subprofiles are supported for business customers only.
  • Providing an expirationDate in the past or with an incorrect ISO 8601 format, which will result in a 400 validation error.
  • Expecting an immediate active card when activateNow is not explicitly set to true — cards default to inactive and must be activated separately if this flag is omitted.

Related Endpoints

  • GET /api/paymentCards — List all payment cards for the authenticated customer
  • GET /api/paymentCards/{cardId} — Retrieve details for a specific payment card
  • PUT /api/paymentCards/{cardId} — Update settings or status of an existing payment card
  • POST /api/paymentCards/{cardId}/activate — Activate a previously inactive card
  • DELETE /api/paymentCards/{cardId} — Cancel or close a payment card

Example

curl -X POST https://api.banking.netevia.dev/api/paymentCards \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "financialAccountId": "fa_8d3e2c1b4a9f",
    "expirationDate": "2027-12-31T23:59:59Z",
    "activateNow": true,
    "paymentCardName": "Online Purchases",
    "partnerId": 101,
    "cardProfileSetId": "cps_standard_virtual",
    "subProfileId": null
  }'
Body Params
date-time
boolean
string
required
length ≥ 1
string | null
int32 | null
string | null
int32 | null
Headers
string
enum
Defaults to application/json

Generated from available request content types

Allowed:
Response
200

Success

Language
Credentials
Bearer
JWT
LoadingLoading…
Response
Click Try It! to start a request and see the response here!