The Use Case I am developing a custom, headless direct booking website for my property management business using the OwnerRez API v2. My site acts as the Merchant of Record. We collect credit card payments directly via our own Stripe integration (using Stripe Elements for a seamless branded checkout) and then use the OwnerRez API to create the booking.
The Problem Currently, there is no public API endpoint to record the financial transaction that has occurred.
I can successfully create the booking via POST /v2/bookings.
However, the booking is created with a $0.00 Paid Balance and a "Pending" status, despite the funds already being secured in Stripe.
There is no endpoint to "inject" this payment (e.g., POST /transactions or POST /payments).
The total_paid fields on the BookingModel appear to be read-only/computed.
What I Have Tried I have extensively tested the v2 API with the following results:
POST /v2/bookings/{id}/payments: Returns 404 (Endpoint does not exist).
PATCH /v2/bookings/{id} trying to set total_paid: Returns error "Property 'total_paid' could not be found on 'BookingEditModel'" (Confirmed Read-Only).
PUT /v1/bookings/{id}/charges: Returns 404.
The Current Workaround My automated system creates the booking, but I must receive an alert and manually log in to OwnerRez to record the payment for every single direct booking. This breaks the automation loop and is not scalable.
The Request Please expose a writeable endpoint for Recording External Transactions. Ideally, this would look like: POST /v2/bookings/{id}/transactions
Payload:
JSON
{
"type": "payment",
"amount": 500.00,
"date": "2026-01-13T12:00:00Z",
"method": "credit_card",
"reference": "pi_123456789", // The Stripe Payment Intent ID
"gateway": "external_stripe"
}
Why this matters As more PMs move toward custom "Headless" booking sites to improve conversion rates and brand identity, the ability to push external payment data is critical. We need the API to support the "Merchant of Record" model fully, ensuring the OwnerRez ledger matches the bank account without manual intervention.
Has anyone else solved this, or can the Dev team provide a timeline for a Ledger/Transaction API?
Thanks, Dan