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
| Field | Type | Required | Description |
|---|---|---|---|
| cardProductId | string | Yes | The unique identifier of the card product to associate with the new virtual card. Minimum length: 1. |
| cardProfileSetId | string | No | Optional identifier for a card profile set that defines spending rules, limits, or controls for the card. |
| paymentCardName | string | No | Optional 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
| Code | When it happens |
|---|---|
| 400 | Missing required fields (e.g., cardProductId not provided) or validation error on field values |
| 401 | Token missing, expired, or invalid |
| 403 | Insufficient permissions to issue cards under the specified card product |
| 404 | Specified cardProductId or cardProfileSetId not found |
| 500 | Internal 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
cardProfileSetIdthat 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 issuancePOST /api/paymentCards/v2/openPartnerCardPhysical— Issue a physical (plastic) payment card via partner systemPOST /api/paymentCards/v2/openPartnerCardBurner— Issue a temporary burner card via partner systemPUT /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"
}' 200Success
