const response = await fetch('https://service.pcibooking.net/api/VirtualCard?tokenLocation=IE', {
method: 'POST',
headers: {
'Authorization': 'APIKEY your-api-key',
'Content-Type': 'application/json'
},
body: JSON.stringify({
ProviderName: 'WEX',
Credentials: {
OrgGroupLoginId: 'your-org-group-login-id',
UserName: 'your-username',
Password: 'your-password'
},
Request: {
MaxValue: {
Amount: 500.00,
CurrencyCode: 'USD'
},
MinAuthDate: '2026-07-10T00:00:00Z',
MaxAuthDate: '2026-08-10T00:00:00Z',
UniqueReference: 'booking-98765'
}
})
});
const data = await response.json();
console.log(data);
import requests
response = requests.post(
'https://service.pcibooking.net/api/VirtualCard',
headers={
'Authorization': 'APIKEY your-api-key',
'Content-Type': 'application/json'
},
params={
'tokenLocation': 'IE'
},
json={
'ProviderName': 'WEX',
'Credentials': {
'OrgGroupLoginId': 'your-org-group-login-id',
'UserName': 'your-username',
'Password': 'your-password'
},
'Request': {
'MaxValue': {
'Amount': 500.00,
'CurrencyCode': 'USD'
},
'MinAuthDate': '2026-07-10T00:00:00Z',
'MaxAuthDate': '2026-08-10T00:00:00Z',
'UniqueReference': 'booking-98765'
}
}
)
print(response.json())
{
"CardToken": "555fd7b49f134b42a5dbe4d576b2e527",
"ProviderResponse": {
"Result": "Success",
"Message": "Card issued successfully",
"MaxValue": {
"Amount": 500.00,
"CurrencyCode": "USD"
},
"VirtualCard": {
"Number": "411111******1234",
"ExpirationMonth": 12,
"ExpirationYear": 2027,
"SecurityCode": "***"
},
"UniqueReference": "booking-98765",
"CardId": "vcc_provider_id_123",
"ProviderName": "WEX"
}
}
{
"code": -125,
"message": "Bad input data",
"moreInfo": "Virtual card provider with name [InvalidName] not found",
"errorList": null
}
{
"code": -1003,
"message": "Not authorized to access this resource",
"moreInfo": "Bad or missing authorization data, expected APIKEY",
"errorList": null
}
Virtual Card Issuance
Issue Virtual Card
Request a virtual card from a connected issuing provider and automatically tokenize it.
POST
/
api
/
VirtualCard
const response = await fetch('https://service.pcibooking.net/api/VirtualCard?tokenLocation=IE', {
method: 'POST',
headers: {
'Authorization': 'APIKEY your-api-key',
'Content-Type': 'application/json'
},
body: JSON.stringify({
ProviderName: 'WEX',
Credentials: {
OrgGroupLoginId: 'your-org-group-login-id',
UserName: 'your-username',
Password: 'your-password'
},
Request: {
MaxValue: {
Amount: 500.00,
CurrencyCode: 'USD'
},
MinAuthDate: '2026-07-10T00:00:00Z',
MaxAuthDate: '2026-08-10T00:00:00Z',
UniqueReference: 'booking-98765'
}
})
});
const data = await response.json();
console.log(data);
import requests
response = requests.post(
'https://service.pcibooking.net/api/VirtualCard',
headers={
'Authorization': 'APIKEY your-api-key',
'Content-Type': 'application/json'
},
params={
'tokenLocation': 'IE'
},
json={
'ProviderName': 'WEX',
'Credentials': {
'OrgGroupLoginId': 'your-org-group-login-id',
'UserName': 'your-username',
'Password': 'your-password'
},
'Request': {
'MaxValue': {
'Amount': 500.00,
'CurrencyCode': 'USD'
},
'MinAuthDate': '2026-07-10T00:00:00Z',
'MaxAuthDate': '2026-08-10T00:00:00Z',
'UniqueReference': 'booking-98765'
}
}
)
print(response.json())
{
"CardToken": "555fd7b49f134b42a5dbe4d576b2e527",
"ProviderResponse": {
"Result": "Success",
"Message": "Card issued successfully",
"MaxValue": {
"Amount": 500.00,
"CurrencyCode": "USD"
},
"VirtualCard": {
"Number": "411111******1234",
"ExpirationMonth": 12,
"ExpirationYear": 2027,
"SecurityCode": "***"
},
"UniqueReference": "booking-98765",
"CardId": "vcc_provider_id_123",
"ProviderName": "WEX"
}
}
{
"code": -125,
"message": "Bad input data",
"moreInfo": "Virtual card provider with name [InvalidName] not found",
"errorList": null
}
{
"code": -1003,
"message": "Not authorized to access this resource",
"moreInfo": "Bad or missing authorization data, expected APIKEY",
"errorList": null
}
Virtual Card Issuance Guide
Issue virtual cards through connected providers
Location response header.
Error Responses
| Code | HTTP Status | Condition |
|---|---|---|
-1003 | 401 | API key is missing or invalid. |
-125 | 400 | Invalid provider name, missing required fields, or credential validation failed. |
-125 | 400 | The credentialsId was provided but credentials were not found or could not be parsed. |
-150 | 500 | Virtual card was issued but could not be tokenized internally. |
Parameters
Headers
string
required
Your API key prefixed with
APIKEY. Example: APIKEY your-api-key. See the Authentication guide.Query String
string
The ID of stored credentials for a virtual card provider. When provided,
ProviderName and Credentials in the request body are ignored.string
Token storage region. One of:
US, IN, AU, JP, CA, IE, GB, BR. If omitted, uses the account default.Request Body
string
required
The virtual card provider name (e.g.
WEX). See List Virtual Card Providers for available providers. Not required when credentialsId is provided.object
Provider-specific credential key-value pairs. Not required when
credentialsId is provided. See the provider’s credential structure for required fields.object
required
The virtual card issuance request.
Show Properties
Show Properties
object
string
Earliest date the card can be authorized. ISO 8601 format.
string
Latest date the card can be authorized. ISO 8601 format.
string
Your own reference for this virtual card. If omitted, the provider assigns one.
object
Arbitrary provider-specific data.
const response = await fetch('https://service.pcibooking.net/api/VirtualCard?tokenLocation=IE', {
method: 'POST',
headers: {
'Authorization': 'APIKEY your-api-key',
'Content-Type': 'application/json'
},
body: JSON.stringify({
ProviderName: 'WEX',
Credentials: {
OrgGroupLoginId: 'your-org-group-login-id',
UserName: 'your-username',
Password: 'your-password'
},
Request: {
MaxValue: {
Amount: 500.00,
CurrencyCode: 'USD'
},
MinAuthDate: '2026-07-10T00:00:00Z',
MaxAuthDate: '2026-08-10T00:00:00Z',
UniqueReference: 'booking-98765'
}
})
});
const data = await response.json();
console.log(data);
import requests
response = requests.post(
'https://service.pcibooking.net/api/VirtualCard',
headers={
'Authorization': 'APIKEY your-api-key',
'Content-Type': 'application/json'
},
params={
'tokenLocation': 'IE'
},
json={
'ProviderName': 'WEX',
'Credentials': {
'OrgGroupLoginId': 'your-org-group-login-id',
'UserName': 'your-username',
'Password': 'your-password'
},
'Request': {
'MaxValue': {
'Amount': 500.00,
'CurrencyCode': 'USD'
},
'MinAuthDate': '2026-07-10T00:00:00Z',
'MaxAuthDate': '2026-08-10T00:00:00Z',
'UniqueReference': 'booking-98765'
}
}
)
print(response.json())
Response
201 - Virtual card issued and tokenized. TheLocation header contains the PCI Booking token URI.
Response Fields
string
The PCI Booking token for the issued virtual card.
object
The virtual card provider’s response.
Show Properties
Show Properties
string
The outcome. One of:
Success, Accepted, Rejected, TemporaryFailure, FatalFailure.string
Detailed explanation of the result.
object
The maximum value set on the issued card.
object
The issued card details (number and CVV are masked).
string
The reference for this virtual card.
string
The unique ID assigned by the virtual card provider.
string
The name of the virtual card provider.
{
"CardToken": "555fd7b49f134b42a5dbe4d576b2e527",
"ProviderResponse": {
"Result": "Success",
"Message": "Card issued successfully",
"MaxValue": {
"Amount": 500.00,
"CurrencyCode": "USD"
},
"VirtualCard": {
"Number": "411111******1234",
"ExpirationMonth": 12,
"ExpirationYear": 2027,
"SecurityCode": "***"
},
"UniqueReference": "booking-98765",
"CardId": "vcc_provider_id_123",
"ProviderName": "WEX"
}
}
{
"code": -125,
"message": "Bad input data",
"moreInfo": "Virtual card provider with name [InvalidName] not found",
"errorList": null
}
{
"code": -1003,
"message": "Not authorized to access this resource",
"moreInfo": "Bad or missing authorization data, expected APIKEY",
"errorList": null
}

