VRPlatformVRPlatform
Integrate & Migrate Data

Booking.com Deposit Imports

Convert Booking.com payout CSV formats into VRPlatform deposits

Last Updated: 2026-07-21

Version: 1.0

Use one Booking.com payout ID or statement descriptor as the boundary for one VRPlatform deposit. Booking.com has several payout CSV formats; detect the format from its headers before mapping rows.

Result

For each payout group, submit one deposit with:

  • type: deposit
  • the payout ID or statement descriptor as uniqueRef
  • the payout date and lowercase currency
  • reservation gross lines
  • separate commission, payment-fee, city-tax, and VAT lines when the source format exposes them
  • reservation-number matching hints on every reservation-related line

Booking.com CSV amounts are decimal major units. Convert them to integer minor units after parsing localized separators.

Detect the CSV Format

Apply the formats in this order:

FormatRequired identifying headersDeposit boundary
V4Transaction type, Statement DescriptorStatement descriptor
V3Type/Transaction type, Statement DescriptorStatement descriptor
V1Type/Transaction type without descriptorPayout ID
V2TypePayout ID

Do not combine rows from different payout IDs or statement descriptors even when their payout dates match.

Header Mapping

Booking.com valueVRPlatform field
Payout ID or Statement DescriptorTransaction uniqueRef
Payout dateTransaction date
Currency or Payout currencyLowercase transaction currency
Format-specific reservation referencematchReservationConfirmationCode

V4 also contains Bank Name and Bank Account. The current composition keeps those values as source metadata but does not send matchBankAccountLast4. Only add a bank match when the account value has been normalized to the actual destination account's last four digits.

V1 and V3 Lines

Find the payout summary row whose Type/Transaction type contains payout. Skip the entire group when that row is absent. Do not turn the payout summary row into a deposit line.

For each other row, create the applicable lines:

Source amountClassification
Reservation Gross amountreservation
City taxbookingCom_cityTax
CommissionbookingCom_commission
Payment fee variantbookingCom_paymentFee
V3 Tax/VAT, Tax, or VATbookingCom_tax_vat

V2 Lines

Use Reference number, falling back to Booking number, as the reservation reference. Skip rows without a transaction Type, including a payout summary row that contains only Net.

  • For Reservation, use Amount and classification reservation.
  • For other transaction types, use Amount; when it is absent, use Net.
  • Add separate commission, payment charge or service fee, and VAT lines.

The classifications for those additional lines are bookingCom_commission, bookingCom_paymentFee, and bookingCom_vat.

V4 Lines

V4 groups every row by Statement Descriptor. Skip rows whose normalized Transaction type is payout.

Create a main line from Total amount (gross) for every other row:

  • use reservation when the transaction type is reservation
  • otherwise use bookingCom_${camelCase(transactionType)}

Then add bookingCom_paymentFee and bookingCom_vat lines when the respective columns contain non-zero values.

Identity and Reconciliation

Build line identities from the payout identity, reservation reference, source type, field purpose, and, for V4, property ID plus row index. Stable identities allow the same CSV payout to be retried safely.

The current Booking.com formats do not all expose an equivalent authoritative payout total. Do not synthesize a balancing line. For formats that do expose a payout amount, compare it with the line sum and surface any difference before submission.

End-to-End V4 Example

{
  "Payout date": "2026-07-10",
  "Property ID": "14473764",
  "Transaction type": "RESERVATION",
  "Reservation number": "5691360725",
  "Total amount (gross)": "100.00",
  "Currency": "USD",
  "Statement Descriptor": "ST-Q1Z2F1B6Y7V9",
  "Payments Service Fee": "-2.00",
  "VAT for online platform services": "-0.40"
}
{
  "connectionId": "00000000-0000-0000-0000-000000000002",
  "data": [
    {
      "type": "deposit",
      "currency": "usd",
      "date": "2026-07-10",
      "description": "Booking.com Payout (ST-Q1Z2F1B6Y7V9)",
      "uniqueRef": "ST-Q1Z2F1B6Y7V9",
      "lines": [
        {
          "uniqueRef": "reservation-ST-Q1Z2F1B6Y7V9-5691360725-14473764-0",
          "amount": 10000,
          "description": "RESERVATION",
          "matchReservationConfirmationCode": "5691360725",
          "matchLineTypeClassification": "reservation"
        },
        {
          "uniqueRef": "reservation-ST-Q1Z2F1B6Y7V9-5691360725-14473764-0-paymentFee",
          "amount": -200,
          "description": "Payments Service Fee",
          "matchReservationConfirmationCode": "5691360725",
          "matchLineTypeClassification": "bookingCom_paymentFee"
        },
        {
          "uniqueRef": "reservation-ST-Q1Z2F1B6Y7V9-5691360725-14473764-0-vat",
          "amount": -40,
          "description": "VAT for online platform services",
          "matchReservationConfirmationCode": "5691360725",
          "matchLineTypeClassification": "bookingCom_vat"
        }
      ]
    }
  ]
}

Implementation Checklist

  • Detect V4 before V3, then V1, then V2.
  • Keep each payout ID or statement descriptor isolated.
  • Parse localized decimal values before converting to minor units.
  • Preserve Booking.com fee and tax signs.
  • Match lines with the format's reservation-number field.
  • Keep property ID in stable V4 line identities.
  • Do not invent a balancing line when the CSV lacks an authoritative total.

On this page