VRPlatformVRPlatform
Integrate & Migrate Data

Vacation Rent Payment Deposit Imports

Convert Vacation Rent Payment settlements into VRPlatform deposits

Last Updated: 2026-07-21

Version: 1.0

Use one Vacation Rent Payment settlement as the boundary for one VRPlatform deposit. Each settlement transaction becomes one reservation-matchable line.

Result

For each settlement with at least one non-zero transaction, submit one deposit with:

  • the settlement ID as uniqueRef
  • the parsed settlement date
  • the team's configured lowercase default currency
  • a configured or unambiguous trust bank-account match
  • one line per settlement transaction

Vacation Rent Payment values in this source are signed integer minor units. Normalize disbursement signs with care; do not multiply them by 100.

Vacation Rent Payment Data to Load

Load the settlement report for the target date range. Use the settlement ID as identity. When an ID is absent, use the range-end date plus a stable row index.

Provider valueVRPlatform use
settlement.idTransaction uniqueRef
settlement.dateTransaction date
settlement.amtReconciliation total
transaction.idLine uniqueRef
transaction.amtLine amount
transaction.reservationNumberPreferred reservation match
transaction.personExternalIdReservation match fallback

The provider may return dates as YYYY-MM-DD or YYYY-MM-DD-HH-mm-ss. Parse either shape. If the settlement date is malformed, the current source uses the requested report range end; preserve the malformed source value for review.

Map Settlement Lines

For each transaction:

  • convert its signed minor-unit amount to its absolute value
  • skip zero amounts
  • use transaction-${transaction.id} as identity, with a numeric fallback and duplicate suffix when needed
  • classify it as vacationRentPayment_transaction
  • use reservationNumber, falling back to personExternalId, for both matchReservationConfirmationCode and matchReservationProcessorBookingRef

Taking the absolute value models the provider's negative disbursement convention. Use this composition only for settlement transaction rows that represent money included in the deposit. If the report introduces refunds or reversals with a distinct economic sign, classify and sign them separately instead of erasing that distinction.

Match the Bank Account

Resolve bank routing in this order:

  1. the team's configured payout bank account assignment
  2. the sole active trust deposit bank account
  3. no match, requiring manual mapping

Send the resolved account's last four digits as matchBankAccountLast4. Do not choose among multiple active trust accounts without an explicit mapping.

Reconciliation

Normalize the settlement amount to an absolute integer minor-unit value, then compare it with the line sum:

sum(abs(settlement transaction amounts)) = abs(settlement.amt)

The current composition stores both values but still submits a mismatch. For a new API integration, treat that difference as a reviewable exception and do not create a balancing line.

End-to-End Example

{
  "id": "23416201:75",
  "description": "Direct Deposit Disbursement to #1749",
  "amt": "-189242",
  "date": "2026-07-07-02-16-24",
  "transactions": [
    {
      "id": "174421182:44",
      "amt": "-189242",
      "personExternalId": "14333982",
      "reservationNumber": "15271689"
    }
  ]
}
{
  "connectionId": "00000000-0000-0000-0000-000000000002",
  "data": [
    {
      "type": "deposit",
      "currency": "usd",
      "date": "2026-07-07",
      "description": "Vacation Rent Payment settlement 23416201:75",
      "uniqueRef": "23416201:75",
      "matchBankAccountLast4": "3216",
      "lines": [
        {
          "uniqueRef": "transaction-174421182:44",
          "amount": 189242,
          "description": "Transaction 174421182:44",
          "matchReservationConfirmationCode": "15271689",
          "matchReservationProcessorBookingRef": "15271689",
          "matchLineTypeClassification": "vacationRentPayment_transaction"
        }
      ]
    }
  ]
}

In this example, matchBankAccountLast4 comes from team bank routing, not from the provider settlement payload.

Implementation Checklist

  • Treat provider amounts as signed integer minor units.
  • Use one settlement per deposit and the settlement ID as identity.
  • Parse both supported provider date shapes.
  • Prefer reservation number over person external ID.
  • Send the processor booking reference together with the confirmation hint.
  • Select a bank only from explicit payout routing or one unambiguous trust bank.
  • Review line-total mismatches and never synthesize a balancing line.
  • Revisit absolute-value normalization if the provider adds refund semantics.

On this page