Create Virtual Payment Card via Partner System

Create Virtual Payment Card via Partner System

This endpoint creates a virtual payment card through a partner system using a specified card product. The virtual card is available for immediate use in online transactions upon successful creation. Partners can optionally assign a card profile set and a display name to the card at issuance time.

Endpoint

POST /api/paymentCards/v2/openPartnerCardVirtual

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 system needs to issue a virtual payment card to a customer without requiring a physical card to be shipped. It is suitable for scenarios where customers need instant card access — such as online purchases, digital wallets, or expense management — while allowing the partner to control card limits and configuration via the associated card product and profile set.

Request Body

FieldTypeRequiredDescription
cardProductIdstringYesThe unique identifier of the card product to associate with the new virtual card. Minimum length: 1.
cardProfileSetIdstringNoOptional identifier for a card profile set that defines spending rules, limits, or controls for the card.
paymentCardNamestringNoOptional display name for the virtual card, used for identification in the customer's card list.
{
  "cardProductId": "cp_abc123def456",
  "cardProfileSetId": "cps_xyz789",
  "paymentCardName": "Online Shopping Card"
}

Response

200 OK

A 200 response indicates the virtual card was successfully created. The response body confirms the card issuance. Retrieve full card details using the Get Payment Card endpoint.

{
  "success": true,
  "cardId": "card_9f3a1b2c4d5e6f7a",
  "last4": "4321",
  "cardStatus": "ACTIVE",
  "cardType": "VIRTUAL",
  "cardProductId": "cp_abc123def456",
  "paymentCardName": "Online Shopping Card",
  "expirationDate": "2027-07"
}

Error Codes

CodeWhen it happens
400Missing required fields (e.g., cardProductId not provided) or validation error on field values
401Token missing, expired, or invalid
403Insufficient permissions to issue cards under the specified card product
404Specified cardProductId or cardProfileSetId not found
500Internal server error

Common Mistakes

  • Omitting cardProductId — this is the only required field; the request will fail with a 400 if it is missing or empty.
  • Passing an invalid or inactive cardProductId — ensure the card product exists and is enabled for the partner before calling this endpoint.
  • Assuming the card number is returned in the creation response — use the Get Payment Card or tokenization endpoints to retrieve full card details after issuance.
  • Sending cardProfileSetId that belongs to a different partner or product scope, which will result in a 403 or 404 error.

Related Endpoints

  • GET /api/paymentCards/v2/{cardId} — Retrieve details of a specific payment card after issuance
  • POST /api/paymentCards/v2/openPartnerCardPhysical — Issue a physical (plastic) payment card via partner system
  • POST /api/paymentCards/v2/openPartnerCardBurner — Issue a temporary burner card via partner system
  • PUT /api/paymentCards/v2/{cardId}/status — Update the status of an existing payment card (activate, suspend, close)

Example

curl -X POST https://api.banking.netevia.dev/api/paymentCards/v2/openPartnerCardVirtual \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "cardProductId": "cp_abc123def456",
    "cardProfileSetId": "cps_xyz789",
    "paymentCardName": "Online Shopping Card"
  }'
Body Params
string
required
length ≥ 1
string | null
string | 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!