Skip to content
Last updated

Get started with payments

Use this guide to understand how payment data flows through the Demand API and how to use it when creating accommodation and car rental bookings in v3.3.


Payment overview

Payment information is returned at different stages of the booking flow.

Use each response for its intended purpose:

✅ Discover payment options.
✅ Retrieve payment requirements.
✅ Preview the full payment breakdown.
✅ Create a booking with the correct configuration.

EndpointUse it to
/accommodations/search and /accommodations/availabilityRetrieve indicative payment timing information for accommodation options.
/accommodations/detailsRetrieve payment methods accepted by the selected property. Request the payment extra.
/cars/search and /cars/availabilityRetrieve car offer payment timing, pricing and card guarantee requirements.
/orders/previewReview the selected booking's payment requirements, available options and schedule before checkout.
/orders/createCreate the booking using the payment configuration required for the selected offer and travel service.

Payment information can depend on the selected offer, property or supplier policy, partner configuration and payment model. Do not hardcode payment behaviour.

Payment flow

A typical integration follows this sequence:

How to use payments

  1. Search for accommodation or car rental options.
  2. Review the payment information returned for each option.
  3. Preview the selected booking.
  4. Create the booking using the requirements for that travel service.

Step 1 - Search for options

Use:

  • /search
  • /availability

These endpoints retrieve intial payment information, including:

  • Available payment options.
  • Whether a product is eligible for specific payment flows.

At this stage, payment data is indicative only.

Accommodation

Accommodation search and availability responses can include payment timing information for each option. You can filter accommodation search results by payment timing:

  • pay_at_the_property
  • pay_online

The pay_online filter includes options with pay_online_now or pay_online_later timing.

Example accommodation search request:

{
  "booker": {
    "country": "nl",
    "platform": "desktop"
  },
  "checkin": "2026-11-18",
  "checkout": "2026-11-25",
  "city": -2140479,
  "filters": {
    "payment": {
      "timing": "pay_online"
    }
  },
  "extras": [
    "extra_charges",
    "products"
  ],
  "guests": {
    "number_of_adults": 2,
    "number_of_rooms": 1
  }
}

These results help you find suitable options, but payment availability can change. Confirm the selected booking with /orders/preview before checkout.

Car rental

Car search supports payment timing filters through payment.timings.

The timing values include:

  • pay_online_now
  • pay_partial_online_now (v3.2) or pay_partially_online(v3.3)
  • pay_at_pickup

Example car search request:

{
  "booker": {
    "country": "nl"
  },
  "currency": "EUR",
  "driver": {
    "age": 36
  },
  "payment": {
    "timings": [
      "pay_online_now"
    ]
  },
  "route": {
    "dropoff": {
      "datetime": "2026-11-10T11:05:00",
      "location": {
        "city": -2140479
      }
    },
    "pickup": {
      "datetime": "2026-11-05T11:05:00",
      "location": {
        "city": -2140479
      }
    }
  }
}

For a selected offer, use /cars/availability to retrieve further details, including price components, policies, insurance and whether a credit card is required as a guarantee.

Step 2 - Retrieve payment methods

For accommodation:

  • Request the payment extra from /accommodations/details to retrieve the payment methods accepted by the property. Depending on the response, these can include card types, virtual cards or cash.

For car rental:

  • Review the selected offer's card requirements and policies in the car search or availability response. In particular, check credit_card_required for offers payable at pickup.

Use /common/payments/cards to map card IDs to card names.

Step 3 - Preview the selected booking

Use /orders/preview after the traveller selects an accommodation option or car rental offer.

Treat the orders/preview response as the source of truth for checkout.

Accommodation

For accommodation the response includes payment information under data.accommodation.general_policies.payment.

Each available timing can include:

  • dates: the payment schedule and amounts.
  • method_required: whether a payment method must be provided for that timing.
  • methods: methods available for that timing, such as cards, AirPlus or wallet where supported.

If method_required is false, a method is not required to create the booking using that timing. This does not necessarily mean that no payment will be due later.

Car rental

For car rental, the payment timing and amounts are represented in the car price components and payment policy data.

  • Review the relevant values in data.car.price and data.car.policies.payment.
  • Car payment information is not structured like the accommodation general_policies.payment object.

Use the preview response to confirm which payment options are available for the selected booking. Do not rely on earlier search or details responses as the final checkout configuration.

Always treat /orders/preview as the source of truth for checkout

Payment timings and card flows

For accommodation, pay_online_later can be used with supported credit card payment flows, including MOTO, SCA and Riskified configurations. These flows are not inherently excluded by the timing.

Availability depends on the selected booking and partner configuration. Check the methods returned for pay_online_later in /orders/preview, and follow the authentication and card requirements for your configured payment model.

If /orders/preview returns more than one payment timing, display the available options and let the traveller choose. For accommodation, send the selected timing in /orders/create.

Step 4 - Create the order

Use /orders/create after confirming the traveller's selection and reviewing the preview response.

Accommodation orders

For an accommodation order:

  • Use a payment timing and method supported for the selected booking in /orders/preview.
  • Provide a payment method when method_required is true.
  • Follow the requirements for the selected payment model, including any card authentication data.
  • Use the schedule returned by /orders/preview to explain when charges will occur. The schedule itself is not a payment selection to copy into the create request.

Car rental orders

For car rental, determine whether payment details are required from the selected offer, the accepted price and credit_card_required. Do not use payment.timing alone to decide whether to include a payment object.

You can omit payment from /orders/create only when all of the following conditions are met:

  • The selected offer is payable at pickup.
  • credit_card_required is false.

If a credit card is required, provide the payment and card details required for the offer.


Core integration rules

Core integration ruleGuidance
Do not hardcode payment behaviourPayment availability depends on the selected booking, supplier or property policy, partner configuration and payment model.
Use /orders/preview for checkoutConfirm the available payment options, required methods and payment schedule for the selected booking.
Display all payment eventsA booking can include multiple charges on different dates, as well as deposits or other charges collected at the property or pickup location.
Apply travel service-specific create rulesAccommodation payment timing is selected from the options returned in preview. For car rental, use the selected offer, accepted price and credit_card_required to determine payment requirements.

Testing recommendations

Before going live:

  • Test accommodation payment flows in the Demand API sandbox where supported.
  • Car order creation is not available in the Demand API sandbox. Use the environment and testing instructions specified for your integration.
  • Do not assume that a production card payment will be refunded automatically.

Troubleshooting

IssuePossible causeRecommendation
400 – missing payment methodThe accommodation preview requires a method, but none was included in /orders/create.Check method_required and provide a supported method for the selected timing.
Unexpected payment timingThe selected booking has multiple available timings, or the payment schedule differs from an earlier response.Review /orders/preview and use its returned options and schedule.
Card ID mismatchThe supplied card ID is not supported for the selected booking or timing.Use a card ID returned for the selected option and map it with /common/payments/cards.

See the Payment errors guide for more examples.

Key takeaways

✅ Use /orders/preview to confirm accommodation checkout options and schedules.
✅ Use the selected offer and accepted price to determine car rental payment requirements.
✅ Check the methods available for the selected timing; do not assume that pay_online_later excludes MOTO, SCA or Riskified.
✅ Display all payment events and any amounts due at the property or pickup location.


Next steps