# Corporate partners

**Learn how to configure payment information when creating accommodation reservations for business travellers.**

## Introduction

This guide explains how to create the `payment` object for different corporate payment models, including Virtual Credit Cards (VCC), AirPlus, and Mail Order / Telephone Order (MOTO) payments.

Corporate partners can support different payment timings depending on the accommodation and their commercial agreement with Booking.com.

## Is this for you?

This guide is intended for **Corporate partners** who create accommodation reservations on behalf of business travellers.

Typical payment scenarios include:

| Partner type | Payment scenario |  Supported payment method |
|  --- | --- | --- |
| ![business trip](/assets/businesstrip2.7dcfba191c07494b94d6a448e640bd3ec94bda2051f87fb31df5c6b1fed51916.fe580a34.svg) | ![houseIcon](/assets/house.dc7d7e8cfaeaa5cfa90114b43a034610e593d2dd72ca75b6ba27e5508fcbb72d.9c1bb791.svg)  **Pay at the property** (with authorisation form)[1](#myfootnote1) | ✓ [Virtual Credit Card (VCC) + payment instructions](/demand/docs/payments/models/corporate#paying-at-the-property-with-authorisation-form)✓ [AirPlus VCC + payment instructions](/demand/docs/payments/models/corporate#using-airplus-vcc) |
|  | ![onlinepay](/assets/monetization-tablet.f9f01f530881c3f3631756e4d81fb8eb796e2ac99a4424ab5cfdcea57d66b5f8.9c1bb791.svg) **Pay online** | ✓ [AirPlus VCC](/demand/docs/payments/models/corporate#airplus-vcc-for-online-payments)✓ [Virtual Credit Card (VCC)](/demand/docs/payments/models/corporate#paying-online-with-vcc)✓ [Credit card (MOTO)](/demand/docs/payments/models/corporate#using-credit-card--moto) |


1 When paying at the property using a VCC, Booking.com automatically generates and sends an authorisation form to the accommodation.The form instructs the property to charge the company payment method instead of the traveller. See the [payment methods](/demand/docs/payments/payments-methods#payment-instructions) section for more details.

## Choose the payment flow

Use the following table to identify the payment flow that matches your integration.

| If you want to... | Use |
|  --- | --- |
| Pay online using your own Virtual Credit Card | [Using your own VCC](#using-your-own-vcc) |
| Pay at the property using your own VCC | [Using your own VCC](#using-your-own-vcc) |
| Use AirPlus as your VCC provider | [Using AirPlus VCC](#using-airplus-vcc) |
| Create offline bookings (phone or email) | [Using card payments with MOTO](#using-card-payments-with-moto) |


## Before you create an order

Before calling [/orders/create](/demand/docs/open-api/3.2/demand-api/orders/orders/create), verify which payment timings and payment methods are supported by the selected accommodation.

### Check available payment methods

→ Call [/accommodations/details](/demand/docs/open-api/demand-api/accommodations/accommodations/details) and request the `payment` extra.

Example request:

Request
```json
{
  "accommodations": [10004],
  "extras": ["payment"],
  "languages": ["en-gb"]
}
```

Response
```json
{
  "payment": {
    "methods": {
      "cards": [1, 2, 3, 5, 7, 10],
      "cash": false,
      "virtual_cards": [1, 2, 3]
    },
    "timings": [
      "pay_at_the_property",
      "pay_online_later",
      "pay_online_now"
    ]
  }
}
```

Verify that the response includes:

* Which payment timings the accommodation supports.
* Which payment methods are accepted.
* Which Virtual Credit Card types can be used.


See the [Accommodation details guide](/demand/docs/accommodations/look-accommodation-details) for more examples and best practices.

### Recommendation when using a Virtual Credit Card

Before creating the reservation, verify that your Virtual Credit Card type is accepted by the accommodation.

Check:

```
payment.methods.virtual_cards
```

Only card IDs **1**, **2**, and **3** are supported for Virtual Credit Cards.

Use the [common/payments/cards](/demand/docs/open-api/3.2/demand-api/commonpayments/common/payments/cards) endpoint to map these IDs to their corresponding card brands.

### Check the available payment option

→ Call [/orders/preview](/demand/docs/open-api/3.2/demand-api/orders/orders/preview) before creating the reservation.

The response confirms:

* Which payment timing can be used.
* Whether a payment method is required.
* The payment schedule.
* The payment methods available for the selected product.


Each payment scenario in this guide explains which fields to verify before creating the order.

## Create your request

### Using your own VCC

Use this option if your organisation generates or manages its own Virtual Credit Cards through a Payment Service Provider (PSP).

Your VCC can be used for:

* **Pay at the property** bookings that require an authorisation form.
* **Pay online** bookings where Booking.com charges the VCC directly.


#### Prerequisites

| Checklist |
|  --- |
| ☑ | A Virtual Credit Card provider or Payment Service Provider (PSP). |
| ☑ | Demand API version **3.1** or later. |


#### Pay at the property with an authorisation form

![drawing](/assets/example-business-traveller-4.e2724ae026d189053cc20a5e9a90fe70a14695153e49dd9eb0b24a8ad7254e94.fe580a34.png)

##### How the flow works

1. Generate a Virtual Credit Card through your PSP.
2. Send the card details and business information in [/orders/create](/demand/docs/open-api/3.2/demand-api/orders/orders/create).
3. Booking.com sends an authorisation form to the accommodation.
4. The accommodation charges the Virtual Credit Card when authorised.


##### Verify the payment option

→ Call [/orders/preview](/demand/docs/open-api/3.2/demand-api/orders/orders/preview).

The response must include:

```text
general_policies.payment.pay_at_the_property
```

Verify that:

* `method_required` is `true`
* `methods.cards` contains a supported card type.
* The payment schedule matches your payment flow.
Refer to the [Payments quick guide](/demand/docs/payments/how-to) for examples of orders/preview responses and initial instructions.


Example:

/orders/preview response
```json
{
  "accommodation": {
    "general_policies": {
      "payment": {
        "pay_at_the_property": {
          "method_required": true,
          "dates": [
            {
              "at": "2025-10-18",
              "price": {
                "accommodation_currency": 0.00,
                "booker_currency": 0.00
              }
            },
            {
              "at": "2026-02-22",
              "price": {
                "accommodation_currency": 205.78,
                "booker_currency": 0.00
              }
            }
          ],
          "methods": {
            "cards": [1,2,3]
          }
        }
      }
    }
  }
}
```

/orders/create request
→ Call [/orders/create](/demand/docs/open-api/3.2/demand-api/orders/orders/create) and specify the following information in the payment object:

```json
{
  "payment": {
    "business_information": { 
      "authorisation_form": {
        "chargeable_items": ["breakfast", "food_beverage", "internet"]
      },
      "billing": {
        "address": {
          "address_line": "Road-1, house-2",
          "city": "Amsterdam",
          "country": "nl",
          "post_code": "12345"
        },
        "email": "test.name@example.com",
        "vat": "12345"
      },
      "company": "xxxxxxxx"
    },
    "card": {
      "cardholder": "xxxx",
      "cvc": 123,
      "expiry_date": "2030-10",
      "number": "1234123412341234"
    },
    "method": "card",
    "timing": "pay_at_the_property"
  }
}
```

##### Create the payment object

Configure the `payment` object:

| Field | Requirement |
|  --- | --- |
| `method` | `"card"` |
| `timing` | `"pay_at_the_property"` |
| `card` | Required |
| `business_information` | Required |


##### business_information

Include:

* Billing details.
* Company information.
* Authorisation form information.


The authorisation form is generated automatically and sent to the accommodation.

`business_information.authorisation_form` is mandatory for this payment flow.

##### card

Provide a valid Virtual Credit Card that matches one of the card types returned in:

```
methods.cards
```

Do **not** include card authentication, because the payment is collected at the property.

Do not use:

* `airplus`
* `include_receipt`


#### Paying online with VCC

Use this option when Booking.com charges your Virtual Credit Card during the online payment flow.

##### How the flow works

1. Your application generates a Virtual Credit Card.
2. Booking.com charges the Virtual Credit Card.
3. Booking.com pays the accommodation.


This payment flow uses the standard VCC implementation described in the [VCC payment guide](/demand/docs/payments/models/partner-collects#create-your-order---virtual-credit-card-vcc). Refer to that guide for the required /orders/preview validation and `payment` object.

### Using AirPlus VCC

Use AirPlus if your organisation uses AirPlus as its Virtual Credit Card provider.

Instead of supplying full card details, include your **12-digit AirPlus number**.

AirPlus supports:

* **Pay at the property**, together with an authorisation form.
* **Pay online**, where Booking.com charges the AirPlus account directly.


Booking.com is integrated with AirPlus, allowing eligible corporate partners to use AirPlus as their Virtual Credit Card provider without generating their own VCC.

#### Prerequisites

| Checklist |
|  --- |
| ☑ | Your commercial agreement with Booking.com allows VCC payments. |
| ☑ | You have a valid 12-digit AirPlus number. |
| ☑ | Demand API version **3.1** or later. |


#### Pay at the property with an authorisation form

![drawing](/assets/offpayairplus.f614aeeb88b5b3e75b868b1ce45cc15b65feeb3f8e7d8a06d81dd883cad4d937.fe580a34.png)

##### How the flow works

1. Provide your AirPlus number and business information in [/orders/create](/demand/docs/open-api/3.2/demand-api/orders/orders/create).
2. Booking.com generates an authorisation form.
3. The authorisation form is sent to the accommodation.
4. The accommodation charges the authorised AirPlus payment method during the stay.


This payment flow is available only if you use the Booking.com AirPlus integration.

If you use an AirPlus card outside this integration, refer to the standard [Cards payment method](/demand/docs/payments/payments-methods/#cards).

##### Verify the payment option

→ Call [/orders/preview](/demand/docs/open-api/3.2/demand-api/orders/orders/preview)

Verify that the response contains:

```
general_policies.payment.pay_at_the_property
```

Before creating the order, verify that:

* `method_required` is `true`
* `methods.airplus` is `true`
* The payment schedule matches your booking


Example:

/orders/preview response
```json
{
"accommodation": {
  "general_policies": {
    "payment": {
      "pay_at_the_property": {
        "method_required": true,
        "dates": [
          {
            "at": "2025-10-18",
            "price": {
              "accommodation_currency": 0.00,
              "booker_currency": 0.00
            }
          },
          {
            "at": "2025-12-22",
            "price": {
              "accommodation_currency": 205.78,
              "booker_currency": 0.00
            }
          }
        ],
        "methods": {
          "airplus": true
        }
      }
    }
  }
}
}
```

/orders/create request
→ Call [/orders/create](/demand/docs/open-api/3.2/demand-api/orders/orders/create) and specify the following information in the payment object:

```json
{
  "payment": {
    "airplus": {
      "dbi": { // Descriptive Billing Information. When using AirPlus as a payment method, you can optionally supply additional fields here such as accounting_code or accounting_unit. 
      },
      "number": "123456789012"
    },
    "business_information": {
      "authorisation_form": {
        "chargeable_items": ["breakfast", "food_beverage", "internet"]
      },
      "billing": {
        "address": {
          "address_line": "Road-1, house-2",
          "city": "Amsterdam",
          "country": "nl",
          "post_code": "12345"
        },
        "email": "test.name@example.com",
        "vat": "12345"
      },
      "company": "xxxxxxxx"
    },
    "method": "airplus",
    "timing": "pay_at_the_property"
  }
}
```

##### Create the payment object

Configure the `payment` object:

| Field | Requirement |
|  --- | --- |
| `method` | `"airplus"` |
| `timing` | `"pay_at_the_property"` |
| `airplus.number` | Required |
| `business_information` | Required |


##### airplus

Provide your **12-digit AirPlus number**.

You can optionally include Descriptive Billing Information (DBI) when supported by your integration.

##### business_information

Include:

* Company information.
* Billing details.
* Authorisation form information.


Booking.com uses this information to generate the authorisation form sent to the accommodation.

`business_information.authorisation_form` is mandatory for this payment flow.

Do not include the `card` object when using AirPlus.

### Pay online using AirPlus

Use this option when Booking.com charges your AirPlus account during the online payment flow.

![drawing](/assets/airplusvccpayment.1bea977156f5976fffc810f026063c42ea8f0ac5f78002d04a9cb0c652718425.fe580a34.png)

#### How the flow works

1. The traveller completes the booking on your platform.
2. You submit the AirPlus number in [/orders/create](/demand/docs/open-api/3.2/demand-api/orders/orders/create).
3. Booking.com charges the AirPlus account.
4. Booking.com pays the accommodation.


#### Verify the payment option

→ Call [/orders/preview](/demand/docs/open-api/3.2/demand-api/orders/orders/preview).

Verify that the response contains:

```
general_policies.payment.pay_online_now
```

Before creating the order, verify that:

* `method_required` is `true`
* `methods.airplus` is `true`
* The payment schedule matches your booking.


Example:

/orders/preview response
```json
{
  "accommodation": {
    "general_policies": {
      "payment": {
        "pay_online_now": {
          "method_required": true,
          "dates": [
            {
              "at": "2025-10-18",
              "price": {
                "accommodation_currency": 0.00,
                "booker_currency": 205.78
              }
            },
            {
              "at": "2025-12-22",
              "price": {
                "accommodation_currency": 0.00,
                "booker_currency": 0.00
              }
            }
          ],
          "methods": {
            "airplus": true
          }
        }
      }
    }
  }
}
```

/orders/create request
→ Call [/orders/create](/demand/docs/open-api/3.2/demand-api/orders/orders/create) and specify the following information in the payment object:

```json
  {
    "booker" : {
        "company" : "***",
            "address" : {
            "address_line" : "via2",
            "post_code" : "vxyz",
            "country" : "it",
            "city" : "citta2"
      },
      "telephone" : "***",
      "name" : {
      "first_name" : "Mario",
      "last_name" : "Rossi"
    },
    "email" : "pink@opall.in"
  },
  "order_token": "eyJhbGciOiJIUzI1NiJ9.eyJwIjp7ImFjY29tbW9kYXRpb24iOnsiaWQiOjkwNDUwLCJjaGVja2luIjoiMjAyNS0wMi0xMyIsImNoZWNrb3V0IjoiMjAyNS0wMi0xNCIsImN1cnJlbmN5IjoiRVVSIiwicHJvZHVjdHMiOlt7ImlkIjoiOTA0NTAwM18xOTg1MTIwMTNfMF8yXzAiLCJhbGxvY2F0aW9uIjp7ImNoaWxkcmVuIjpbXSwibnVtYmVyX29mX2FkdWx0cyI6Mn0sInRvdGFsX3ByaWNlIjoxMzQuMzJ9LHsiaWQiOiI5MDQ1MDAzXzE5ODUxMjAxM18wXzJfMCIsImFsbG9jYXRpb24iOnsiY2hpbGRyZW4iOltdLCJudW1iZXJfb2ZfYWR1bHRzIjoyfSwidG90YWxfcHJpY2UiOjEzNC4zMn0seyJpZCI6IjkwNDUwMDNfMTk4NTEyMDEzXzBfMl8wIiwiYWxsb2NhdGlvbiI6eyJjaGlsZHJlbiI6W10sIm51bWJlcl9vZl9hZHVsdHMiOjJ9LCJ0b3RhbF9wcmljZSI6MTM0LjMyfV19LCJib29rZXIiOnsiY291bnRyeSI6ImVzIiwicGxhdGZvcm0iOiJkZXNrdG9wIn0sImJvb2tlcl9jdXJyZW5jeSI6IkVVUiJ9LCJhdWQiOiIvb3JkZXJzL2NyZWF0ZSIsImV4cCI6MTcyNTg4NDA5NH0.YbQ0wtNM54RnOsX4DsOBO0aITbckW1Rf5ty9cMD6_5s",
    "payment" : {
        "include_receipt" : false,
        "airplus" : {"number":152099999017}
  },
  "timing" : "pay_online_now",
  "method" : "airplus"
  },
```

#### Create the payment object

Configure the `payment` object:

| Field | Requirement |
|  --- | --- |
| `method` | `"airplus"` |
| `timing` | `"pay_online_now"` |
| `airplus.number` | Required |


Provide your 12-digit AirPlus number in:

```json
"payment": {
  "method": "airplus",
  "timing": "pay_online_now",
  "airplus": {
    "number": "123456789012"
  }
}
```

Do not include:

* `card`
* `business_information`


Unlike the **pay at the property** flow, an authorisation form is **not** generated for online AirPlus payments.

### Using card payments with MOTO

Use this option if your organisation accepts accommodation bookings **offline**, such as by phone or email, and your commercial agreement with Booking.com supports **Mail Order / Telephone Order (MOTO)** transactions.

MOTO transactions allow you to create bookings using the traveller's payment card without requiring Strong Customer Authentication (SCA).

#### Prerequisites

| 
| Checklist |
| ☑ | Your commercial agreement with Booking.com supports MOTO transactions. |


#### How the flow works

1. The traveller requests a booking through an offline channel, such as phone or email.
2. You securely collect the traveller's card details.
3. You create the booking using [/orders/create](/demand/docs/open-api/3.2/demand-api/orders/orders/create).
4. You identify the payment as a MOTO transaction.
5. Booking.com processes the payment and pays the accommodation.


#### Verify the payment option

Before creating the order, call [/orders/preview](/demand/docs/open-api/3.2/demand-api/orders/orders/preview)

Verify that:

* The selected product supports the `pay_online_now` payment timing.
* Card payments are available for the selected accommodation.


Unlike standard online card payments, MOTO transactions do **not** require card verification using CVC or 3D Secure authentication.

#### Create the payment object

Configure the `payment` object:

| Field | Requirement |
|  --- | --- |
| `method` | `"card"` |
| `timing` | `"pay_online_now"` |
| `card.authentication.sca_exemption` | `"moto"` |
| `cardholder` | Required |
| `expiry_date` | Required |
| `number` | Required |
| `cvc` | Not required |


Example:

```json
{
  "payment": {
    "method": "card",
    "timing": "pay_online_now",
    "card": {
      "authentication": {
        "sca_exemption": "moto"
      },
      "cardholder": "Test Name",
      "expiry_date": "2030-10",
      "number": "1234123412341234"
    }
  }
}
```

##### Authentication requirements

Set:

```text
payment.card.authentication.sca_exemption = "moto"
```

This identifies the transaction as a Mail Order / Telephone Order payment and allows Booking.com to process it using the appropriate exemption.

For MOTO payments:

* Do not include `payment.card.authentication.3d_secure`.
* Do not include `payment.card.authentication.riskified`.
* Do not provide `payment.card.cvc`, even if accommodation payment endpoints indicate `cvc_required=true`.


##### Optional fields

You can also include:

| Field | Description |
|  --- | --- |
| `payment.business_information` | Include billing details when required for your business flow. |
| `payment.include_receipt` | Set to `true` to receive a payment receipt URL when available. |


## Summary

| Payment method | Payment timing | `method` value | `business_information` | Authorisation form |
|  --- | --- | --- | --- | --- |
| Own VCC | `pay_at_the_property` | `card` | Required | ✓ |
| Own VCC | `pay_online_now` | `card` | Not required | — |
| AirPlus | `pay_at_the_property` | `airplus` | Required | ✓ |
| AirPlus | `pay_online_now` | `airplus` | Not required | — |
| MOTO | `pay_online_now` | `card` | Optional | — |


## Additional resources

Continue exploring accommodation payment integrations:

* Learn about all supported [Payment methods](/demand/docs/payments/payments-methods).
* Learn how to use [Virtual Credit Card (VCC) payments](/demand/docs/payments/models/partner-collects#create-your-order---virtual-credit-card-vcc).
* Explore additional examples in the [Orders guide](/demand/docs/orders-api/order-preview-create).
* Use the [common/payments/cards](/demand/docs/open-api/3.2/demand-api/commonpayments/common/payments/cards) endpoint to map card IDs returned by the API.