Partner-Funded Subsidy

Implementing Partner-Funded Subsidies

Overview

This is only applicable to partners where BHI is the Merchant of Record (MoR).

The partner-funded subsidy feature allows you to fund and apply discounts at the time of booking. This means you can apply a subsidy amount at checkout to reduce the price the customer pays.

How it helps

  • Improving price competitiveness: Allows you to offer lower effective prices to applicable customers.
  • Driving incremental demand: More attractive pricing increases conversion and bookings.
  • Partner-controlled funding strategies - Since the subsidy is applied at checkout to the total the customer pays, you can independently control the subsidy strategies.

Enable partner-funded subsidy

This feature is not available to all integrations by default, and requires feature activation. Contact your Account Manager to confirm eligibility and activate before implementing.

How it works

When a subsidy is applied:

  • The customer pays less because the subsidy is deducted from the total the customer is charged at checkout.
  • The base rate is unchanged, therefore any pricing logic and tax calculations are unaffected.

Example:

Amount
Base rate (per night)$40.00
Booking total (2 nights with taxes and fees)$100.00
Partner-funded subsidy
(example: seasonal coupon for 10% off the total as partner subsidy)
$10.00
Customer pays$90.00
  • The estimatedCommission field will reflect your earned commission pre-subsidy.
Amount
Booking total (2 nights with taxes and fees)$100.00
Estimated commission (15% on total) > estimatedCommission field$15.00
Partner-funded subsidy$10.00
Net commission for the booking$5.00
  • The subsidy is recorded separately and reconciled offline. The customer payment and the partner-funded subsidy amount will be recorded distinctly in the booking system. The finance team extracts the subsidy data from booking systems and reconciles with you directly.

  • Note that in the current phase, the partner-funded subsidy feature is not supported for date change amendments.

Pass the partner-funded subsidy in Precheck and Book

  • When a partner-funded subsidy applies, pass the following request field in both Precheck and Book API requests to indicate the subsidy amount.
FieldTypeDescription
rooms.subsidy.amountnumberFixed dollar amount to subsidize. Must be greater than 0 and less than the total booking amount .
Optional field. Only passed when a subsidy is applied.
  • Refer to the Precheck API documentation to learn more about the Precheck request fields.
  • Refer to the Book API documentation to learn more about the Book request fields.
  • When provided, the customer's charge/invoice amount will be adjusted for the booking (deducting the subsidy amount from the booking total).
  • You need to consider the following implementation rules when passing the subsidy.amount value.
    • Must be a dollar amount. Percentage-based inputs are not supported.
    • Must be greater than 0 and less than the total booking amount. A subsidy amount equal to or exceeding the booking amount is not permitted.

Example

  • The following example of UI shows a scenario where a 15% partner subsidy is applied to a booking total (this example is based on Search 2.0 > Precheck > Book).

  • In this example, you will calculate the dollar amount for the percentage-based subsidy. Therefore, subsidy.amount=72.18 is passed.
  • Precheck API request (excerpt):
{
  "precheckDetails": {
    "checkIn": "2026-09-01",
    "checkOut": "2026-09-03",
    "property": {
      "propertyId": {{property_id}},
      "rooms": [
        {
          "currency": "USD",
          "blockId": "v1_CgEtEMwCGigKHTIwMjYtMDktMDFUMDA6MD...",
          "rate": {
            "inclusive": 204.58
          },
          "subsidy": {
            "amount": 72.18
          },
          "surcharges": [
            {
              "id": 460,
              "rate": {
                "inclusive": 72.00
              }
            }
          ]
        }
      ]
    }
  }
}
  • Book API request (excerpt):
{
  "bookingDetails": {
    "searchId": 8536457787657228384,
    "checkIn": "2026-09-01",
    "checkOut": "2026-09-03",
    "property": {
      "propertyId": {{property_id}},
      "rooms": [
        {
          "blockId": "v1_CgEtEMwCGigKHTIwMjYtMDktMDFUMDA6MD...",
          "rate": {
            "inclusive": 204.58
          },
          "subsidy": {
            "amount": 72.18
          },
          "surcharges": [
            {
              "id": 460,
              "rate": {
                "inclusive": 72.00
              }
            }
          ]
        }
      ]
    }
  },
  "customerDetail": {
    "firstName": "John",
    "lastName": "Doe",
    "email": "[email protected]",
    "phone": {
      "countryCode": "66",
      "areaCode": "2",
      "number": "22222222222"
    }
  },
  "paymentDetails": {}
}

Subsidy details in Booking Detail

  • You can find the details of any applied subsidy on the Booking Detail API response.
  • The payment.ratesBreakdown array provides the following data.
    • The paymentType: "Subsidy" item indicates the applied subsidy data.
    • The paymentType: "Invoice" item indicates the amount paid by the customer post-subsidy.
FieldTypeDescription
ratesBreakdown.currencystringPayment currency.
ratesBreakdown.amountnumberPayment amount.
ratesBreakdown.paymentTypestringPayment type. The paymentType: "Subsidy" indicates a subsidy amount entry. The paymentType: "Invoice" indicates the amount for the customer invoice.
"payment": {
  "rates": [
    {
      "currency": "USD",
      "inclusive": 481.16
    }
  ],
  "ratesBreakdown": [
    {
      "currency": "USD",
      "amount": 408.98,
      "paymentType": "Invoice"
    },
    {
      "currency": "USD",
      "amount": 72.18,
      "paymentType": "Subsidy"
    }
  ]
}

Cancellation policy for bookings with subsidy

  • When a cancellation incurs a penalty, it applies to the pre-subsidy amount. A penalty is not prorated to the post-subsidy total paid by the customer.
  • Any subsidies applied are also deducted before a refund.
  • When displaying the cancellation policy text on the checkout and reservation lookup pages, you may need to add a disclaimer with appropriate verbiage, explaining the above information and that the subsidy amount is deducted from the refund upon cancellation.

Sample UI at checkout:

Cancellation of bookings with subsidy

  • You can find the refund breakdown for a subsidized booking on the Cancel-Preview API response.
    • The cancellationSummary.refundRateBreakdown array provides the following data.
      • The paymentType: "Subsidy" item indicates your subsidy refund.
      • The customer refund amount is indicated in the paymentType: "Invoice" item.
FieldTypeDescription
refundRateBreakdown.currencystringPayment currency.
refundRateBreakdown.amountnumberPayment amount.
refundRateBreakdown.paymentTypestringPayment type. The paymentType: "Subsidy" indicates your subsidy refund. The paymentType: "Invoice" indicates the customer refund.

Example

The following UI example of a Cancel-Preview shows the refund notice/cancellation message for the above subsidy scenario, where the payment total is CAD 481.16, subsidy amount is CAD 72.18, and the customer invoice amount is CAD 408.98.

  • Cancel-Preview API response (excerpt):
"cancellationSummary": {
  "bookingId": 80000610,
  "reference": 989326276,
  "paymentRate": [
    {
      "currency": "USD",
      "inclusive": 481.16
    }
  ],
  "refundRate": [
    {
      "currency": "USD",
      "inclusive": 481.16
    }
  ],
  "refundRateBreakdown": [
    {
      "currency": "USD",
      "amount": 408.98,
      "paymentType": "Invoice"
    },
    {
      "currency": "USD",
      "amount": 72.18,
      "paymentType": "Subsidy"
    }
  ]
}
  • You can proceed to cancel a subsidized booking the same way as any other booking using the Cancel - Confirm API.

Error Scenarios

ScenarioResult
subsidy.amount ≥ booking total (or negative value)Booking failure with error: 907: Invalid partner subsidy provided, subsidy must be non-negative and less than or equal to total price
[partnerFundedSubsidy](subsidy.amount) < 0Booking failure with an error: 906: Invalid request format: $.bookingDetails.property.rooms[0].subsidy.amount: must have a minimum value of 0
Feature not enabled for your accountError message: 907: Invalid data: Partner subsidy is not allowed for this site
Contact your Account Manager if you want to enable this feature.

Did this page help you?