Payments quick guide
If you're implementing a Search, look and book integration use this guide to learn how to check available payment options and define how the traveller will pay when creating an order.
Payment overview
Payment handling is integrated into the required /accommodations and /orders endpoints.
Use these endpoints within your application flow to:
✅ Display payment timings and methods to travellers.
✅ Process their chosen payment method during booking.
Before diving into implementation details, ensure you're familiar with the available timings, schedules and payment methods available for each accommodation.
Step 1 - Check available payment options
Search and look
When travellers search for or view accommodations, use the following endpoints to check when and how payment can be made.
Display the appropriate payment options based on your particular payment scenario.
Endpoint | Use it to ... |
/accommodations/search /accommodations/availability | Retrieve supported payment timings available for a product. |
/accommodations/details | Retrieve accepted payment methods (payment cards and/or cash) for the selected accommodation. |
See the Try out section to learn how to test these endpoints.
Filter by payment timing
Use the
payment.timing
filter to return only properties that support a specific payment timing:
pay_at_the_property
pay_online
This filter is inclusive—properties supporting both timings will always be returned.See the filters and pagination section for details.
Book and pay
Once the traveller selects a product to book, use the /orders/preview endpoint to get payment-specific details.
Always use /orders/preview to dynamically determine current payment options. These may change based on property policy or availability.
Endpoint | Use it to ... |
---|---|
/orders/preview | Check the final details of the selected accommodation and products, including:
|
If a traveller is booking multiple products, /orders/preview returns only information that is valid for every item in the order.
Handling multiple payment timings
- If the response includes more than one available payment timing (e.g.
pay_online_later
andpay_at_the_property
), display both options to the traveller and allow them to choose.- Only one timing should be included in the /orders/create request.
Step 2 - Review sample preview responses
You can find all payment-related details in the general_policies.payment
field of the order/preview responses.
- If
method_required
istrue
in preview response, you must include a supported payment method in the /orders/create request (e.g. VCC or credit card, depending on the flow). - If false, the booking does not require a method upfront—common for fully flexible rates and pay at the property timings.
Example - Pay online now
A property that supports pay_online_now
with a Virtual Credit Card (VCC) may return:
{
"accommodation": {
"general_policies": {
"payment": {
"pay_online_now": {
"method_required": true,
"dates": [
{
"at": "2024-12-18",
"price": {
"accommodation_currency": 200.64,
"booker_currency": 200.64
}
},
{
"at": "2025-01-10",
"price": {
"accommodation_currency": 5.14,
"booker_currency": 5.14
}
}
],
"methods": {
"cards": [1, 2, 3, 4, ...]
}
}
}
}
}
}
What this means:
method_required:true
- Payment method must be provided.Dates
- Include a schedule of instalments.
Schedule | Date (at ) | Amount (price ) |
---|---|---|
Booking date | 2024-12-18 | 200.64 – main booking charge without extra charges (if any). |
Check-in date | 2025-01-10 | 5.14 – additional charges collected on-site. |
- The
methods.cards
- Contains the IDs of accepted payment cards that can be used to pay for or secure a booking (in this case,1
,2
,3
and4
).- You must be able to generate/obtain a VCC for one of these cards.
See Pay online using VCC use case for implementation examples.
Example - Pay online later
In this example, for the selected property and product, when using pay_online_later
and VCC as payment method, the /orders/preview response may include:
{
"accommodation": {
"general_policies": {
"payment": {
"pay_online_later": {
"method_required": true,
"dates": [
{
"at": "2024-12-18",
"price": {
"accommodation_currency": 0.00,
"booker_currency": 0.00
}
},
{
"at": "2025-01-09",
"price": {
"accommodation_currency": 200.64,
"booker_currency": 200.64
}
},
{
"at": "2025-01-11",
"price": {
"accommodation_currency": 5.14,
"booker_currency": 5.14
}
}
],
"methods": {
"cards": [1, 2, 3, 4, ...]
}
}
}
}
}
}
What this means:
method_required:true
- Payment method must be provided.Dates
- Contain three payment schedule instalments, showing when the total price of the booking must be paid.
Schedule | Date (at ) | Amount (price ) |
---|---|---|
Booking date | 2024-12-18. | 0.00 – no prepayment required |
Payment date | 2025-01-09 - This date will be either when free cancellation period has expired, or 48 hours before the checkin date. | The amount to be charged to the provided payment method. In this case 200.64. |
Check-in date | 2025-01-11 | 5.14 – extra charges due at check-in. |
- The
methods.cards
- Contains the IDs of accepted payment cards that can be used to pay for or secure a booking (in this case,1
,2
,3
and4
).
Example - Pay at the property
Without prepayment
In this example, for the selected property and product, for a pay_at_the_property
payment timing without a prepayment policy, the /orders/preview response would return something similar to:
{
"pay_at_the_property": {
"dates": [
{
"at": "2024-11-01",
"price": {
"accommodation_currency": 0,
"booker_currency": null
}
},
{
"at": "2024-11-18",
"price": {
"accommodation_currency": 177.65,
"booker_currency": null
}
}
],
"method_required": true,
"methods": {
"cash": true,
"cards": [
1,
2
]
}
}
}
Dates
- Contain two payment schedule items, showing wwhen the instalment is scheduled and the amount:
Schedule | Date (at ) | Amount (price ) |
---|---|---|
Booking date | 2024-11-01 | 0.00 – no prepayment is required before the checkin date. |
Check-in date | 2024-11-18 | 177.65 – full payment at check-in. |
cash
- Cash is accepted but it also offers a list of accepted ID cards (1
and2
) that the traveller must use to secure their booking (as the payment will be made at checkin date).
With prepayment
Some pay-at-property bookings include prepayment:
{
"general_policies": {
"payment": {
"pay_at_the_property": {
"method_required": true,
"dates": [
{
"at": "2024-11-01",
"price": {
"accommodation_currency": 0.00,
"booker_currency": 0.00
}
},
{
"at": "2024-11-10",
"price": {
"accommodation_currency": 439.85,
"booker_currency": 57.27
}
},
{
"at": "2024-11-18",
"price": {
"accommodation_currency": 585.88,
"booker_currency": 76.29
}
}
]
}
}
}
}
- Use the common/payments/cards endpoint to match card IDs to card types.
- See the schedules for more information.
Step 3 - Create the order
After previewing payment details and confirming the traveller's choice, create the booking using the /orders/create endpoint.
- Make sure your request matches the timing and method selected in the preview.
- Follow the relevant use case for your payment flow.
Go to the payment use case that matches your scenario.
You can charge travellers
You cannot charge travellers directly
You are a Corporate partner
Your traveller pays at property
Testing your integration
We recommend testing all payment flows before going live.
Use the sandbox environment and this test accommodation:
- **ID: 10507360 - Demand API sandbox Hotel Orion. **
When testing online payments with cards:
- Use a real credit card with enough funds to avoid errors.
- Include real credit card details in your request.
- Payment will be charged to the provided card.
Booking.com automatically refunds the payment the following Monday after testing.
Troubleshooting common issues
Issue | Cause | Recommendation |
---|---|---|
400 – missing payment method | method_required is true , but no method provided. | Use a supported VCC or card in /orders/create |
Unexpected timing | Preview returns multiple payment options. | Choose one and match it in your order. |
Card ID mismatch | Provided card ID not supported. | Use IDs returned in the preview response. |
- Refer to the Payment errors section for more examples
- For more tips and examples on how to preview and create an order, check the Orders section
- Learn about all the available payment methods and timings.
- You can also explore the different payment use cases for instructions, examples and best practices for payments.