Airbnb Deposit Imports
Convert Airbnb payout CSV data into VRPlatform deposit transactions
Last Updated: 2026-07-21
Version: 1.0
Use one Airbnb Payout row and its following activity rows as the boundary for
one VRPlatform deposit. Group the activity by reservation confirmation code
and Airbnb activity type, then reconcile the resulting lines to the paid-out
amount.
Result
For each Airbnb payout, submit one transaction with:
type: deposit- the Airbnb payout ID or reference code as the transaction
uniqueRef - the payout date and lowercase currency
- the first four-digit bank account reference in the payout details, when present
- one line per confirmation-code and activity-type group
- a Fast Pay fee or deviation line when the activity does not equal the payout
Convert Airbnb decimal amounts to integer minor units. For USD, 9850 means
$98.50.
Airbnb Data to Load
Load the Airbnb payout transaction-history CSV. A row whose type is Payout
starts a payout; the non-payout rows that follow it belong to that payout until
the next Payout row.
The current composition recognizes these activity types:
ReservationAdjustmentResolution PayoutResolution AdjustmentCancellation Fee
Team accounts may expose a second payout CSV containing payout IDs and reference codes. Match its rows to the base CSV by details, date, and paid-out amount, then prefer its stable payout identity.
Map the Deposit Header
Choose the transaction uniqueRef in this order:
- payout ID
- reference code, with any prefix before
:removed - a deterministic key derived from payout date, amount, and sorted confirmation codes
| Airbnb value | VRPlatform field |
|---|---|
| Payout identity | uniqueRef |
| Payout date | date |
| Payout currency | lowercase currency |
| Payout details | description |
| First four digits in payout details | matchBankAccountLast4 |
Only send matchBankAccountLast4 when the four digits identify the destination
bank account. Do not use guest payment-card digits.
Map Activity Lines
Group rows first by confirmationCode, then by type. Sum the decimal amounts
within each group and convert that sum to minor units. Skip zero-total groups.
| Activity | matchLineTypeClassification |
|---|---|
Reservation | reservation |
| Any other type | airbnb_${camelCase(type)} |
Use this line identity:
${confirmationCode || "none"}--${camelCase(type)}Send the confirmation code as matchReservationConfirmationCode. Keep lines
without a confirmation code unmatched rather than attaching them to an
unrelated reservation.
Reconcile the Payout
After grouping the activity, calculate:
difference = payout paid-out amount - sum(activity lines)When the difference is zero, add nothing. Otherwise:
- classify it as
airbnb_fastPayFeewhen it is exactly-1500minor units or the difference-to-payout ratio rounds to-0.015 - classify every other difference as
airbnb_deviation
The deviation line preserves the source payout total, but it also signals that the source activity did not explain the settlement. Monitor and map this classification explicitly; do not silently treat it as reservation revenue.
End-to-End Example
This shortened input represents normalized Airbnb CSV rows:
{
"payout": {
"date": "07/18/2026",
"type": "Payout",
"details": "Transfer to Bank Account IBAN •••••7712 (USD)",
"currency": "USD",
"paidOut": "98.50",
"payoutId": "AIRBNB-PAYOUT-123"
},
"activity": [
{
"type": "Reservation",
"confirmationCode": "HMABC123",
"details": "Guest payment",
"currency": "USD",
"amount": "100.00"
}
]
}The reservation line is 10000; the payout is 9850; the -150 difference
is a 1.5% Fast Pay fee.
POST https://api.vrplatform.app/transactions/batch
Content-Type: application/json{
"connectionId": "00000000-0000-0000-0000-000000000002",
"data": [
{
"type": "deposit",
"currency": "usd",
"date": "2026-07-18",
"description": "Transfer to Bank Account IBAN •••••7712 (USD)",
"uniqueRef": "AIRBNB-PAYOUT-123",
"matchBankAccountLast4": "7712",
"lines": [
{
"uniqueRef": "HMABC123--reservation",
"amount": 10000,
"description": "Reservation - Guest payment",
"matchReservationConfirmationCode": "HMABC123",
"matchLineTypeClassification": "reservation"
},
{
"uniqueRef": "fastPayFee",
"amount": -150,
"description": "Fast pay fee",
"matchLineTypeClassification": "airbnb_fastPayFee"
}
]
}
]
}Implementation Checklist
- Start a new deposit only at an Airbnb
Payoutrow. - Prefer Airbnb payout IDs over generated identities.
- Group activity by confirmation code and type before rounding.
- Preserve negative fees, adjustments, and refunds.
- Send reservation hints only from the row's confirmation code.
- Require the final deposit lines to equal the payout paid-out amount.
- Review every
airbnb_deviationinstead of treating it as ordinary income.
