Partners charging travellers (VCC flow)
Use this guide when you support the Online Travel Service scenario, where you charge the traveller and pay Booking.com using a Virtual Credit Card (VCC).
Is this for you?
If you are authorised to directly charge travellers (merchant of record), and your agreement allows online payments and Virtual Credit Cards usage, this scenario applies to you.
| Partner type | Payment method | |
|---|---|---|
| Partner with Booking.com online payment agreement. | ✓ Virtual Credit Card (VCC) |
Follow these instructions and recommendations to create the payment data needed for your requests.
Use case
A traveller books an accommodation product through your platform. You charge the traveller using your own payment flow, and you pay Booking.com using a VCC.
Pre-requisites
This payment method is recommended for partners across all regions that meet the following pre-requisites:
Requirement | |
|---|---|
| ☑ | You have a Booking.com payment agreement that allows online payments. |
| ☑ | You act as an Online Travel Service and charge the traveller directly. |
| ☑ | You can generate and fund Virtual Credit Cards (VCCs) via your Payment Service Provider (PSP). |
| ☑ | You are using a Demand API version that supports payment timings + VCC (minimum v2.9). |
After confirming you meet all the pre-requisites follow these steps:
Call the /orders/preview and read
general_policies.paymentto determine:- Available payment timings.
- Required payment methods.
- Payment schedules (dates).
Create the order with orders/create including the correct details:
- VCC" as
payment.method - The selected
payment.timing - and needed
card.authenticationdata.
- VCC" as
1. Check payment options
→ Use the orders/preview endpoint to determine:
- Allowed
payment.methodandpayment.timing. - Supported card types (
methods.cards).
Example - pay_online_now
Look at data.accommodation.general_policies.payment in orders/preview response to identify payment timing.
Example response for pay_online_now:
{
"accommodation": {
"general_policies": {
"payment": {
"pay_online_now": {
"method_required": true,
"dates": [
{
"at": "2026-11-18",
"price": {
"accommodation_currency": 200.64,
"booker_currency": 200.64
}
},
{
"at": "2026-12-03",
"price": {
"accommodation_currency": 5.14,
"booker_currency": 5.14
}
}
],
"methods": {
"cards": [1, 2, 3, 4, ...]
}
}
}
}
}
}
Example - pay_online_later
Look at data.accommodation.general_policies.payment.pay_online_later in response.
For the selected property and product the response retrieves:
{
"accommodation": {
"general_policies": {
"payment": {
"pay_online_later": {
"method_required": true,
"dates": [
{
"at": "2026-11-18",
"price": {
"accommodation_currency": 0.00,
"booker_currency": 0.00
}
},
{
"at": "2026-12-01",
"price": {
"accommodation_currency": 200.64,
"booker_currency": 200.64
}
},
{
"at": "2026-12-03",
"price": {
"accommodation_currency": 5.14,
"booker_currency": 5.14
}
}
],
"methods": {
"cards": [1, 2, 3, 4, ...]
}
}
}
}
}
}How to interpret orders/preview responses
method_required = true→ You must provide a payment method in /orders/create.methods.cards→ Those are the allowed card brand IDs. Your VCC must match one of them.dates→ Instalment schedule. The dates identify how and when the total price of the booking must be paid.- For
pay_online_now- It contains two payment schedule items - For
pay_online_later- three payment schedule items.
- See the in Payment timing-schedules more details.
- Use the common/payments/cards endpoint to know which cards are identified with these numbers.
- For
2. Create your order using Virtual credit card (VCC)
In this case, when paying online on behalf of the traveller using the Virtual Credit Card (VCC) you must include in the orders/create request:
payment.method→ must be"card"payment.timing→ must be"pay_online_now"or"pay_online_later"(see examples)card.authentication.sca_exemption→ usevirtualfor VCC payments.Card details must be: valid, funded, of a supported card type from
methods.cards:cardholder,cvc,expiry_date,number.subtype(v3.2): Use it only if using cards that belong to supported special or co-branded programmes such as UnionPay. (More details here)
include_receipt→ Optionally include the receipt in the order response.For this case do not use the
airplusorbusiness informationfields.
Pay_online_now
The flow

- Traveller pays on your platform.
- You generate a VCC.
- Booking.com charges the VCC according to the schedule.
- Booking.com pays the property.
Example - orders/create request
{
"payment": {
"card": {
"authentication": {
"sca_exemption": "virtual"
},
"cardholder": "xxxx",
"cvc": 123,
"expiry_date": "2030-10",
"number": "1234123412341234"
"subtype": "unionpay_cobrand"
},
"include_receipt": true,
"method": "card",
"timing": "pay_online_now"
}
}
Pay_online_later
The flow
- Traveller books now providing card details.
- You secure payment responsibility.
- Booking.com charges your VCC later (based on schedule).
- Booking.com pays the property.
To prevent any payment charge issues, ensure that the VCC has sufficient funds at least 2 days prior to the pay-later collection date.
Example - orders/create request
Your request must be similar to:
{
"payment": {
"card": {
"authentication": {
"sca_exemption": "virtual"
},
"cardholder": "xxxx",
"cvc": 123,
"expiry_date": "2030-10",
"number": "1234123412341234"
"subtype": "unionpay_cobrand"
},
"include_receipt": true,
"method": "card",
"timing": "pay_online_later"
}
}- For more tips and examples on how to preview and create an order, check the Orders section
- Use the common/payments/cards endpoint to understand the card IDs retrieved in your response.
- Learn more about payment dates in the schedules section.