What is available today
High-level scope for the AR API. Confirm details with Lavanda for your contract.
In scope now
Section titled “In scope now”- Read finance documents: invoices, credit notes, receipts, refund notes, refund reversal notes, payment reversal notes
- See whether a refund made through Stripe is pending, succeeded or failed, and reverse the refund of a manually recorded payment with a refund reversal note
- View payments on a booking — their status, purpose, and method
- Take payments, save payment methods (mandates), request payments, and issue refunds
- Recurring collection from a saved mandate (direct debit / card / payment link)
- Instalment plan templates and per-booking payment schedules
- Charge notes and credit charge notes where your workspace uses them
- Allocations between documents (read model; auto-allocation on issue)
- Balances and credited breakdowns on charge documents
- Webhooks for key lifecycle events (see Staying up to date)
- Webhooks when a saved payment method (card, BACS or SEPA) is created or changes
- Failure, cancellation and dispute detail on payments, and who initiated each payment
- For BACS: the expected debit date, and the bank’s status for the mandate, including the revocation reason (see Payments and payment methods)
- Filter and list documents by booking and workspace
- Check whether a guest owes money, and how much, in each of an operator’s workspaces (see Open-balance check)
- E-invoicing states where enabled for your workspace (Issuing and Rejected in Spain; issue errors in Portugal)
Refund reversals in the API
Section titled “Refund reversals in the API”| Where | What you get |
|---|---|
Refund reversal note (document type REFUND_REVERSAL_NOTE) |
reverses (the refund note it cancels), reversalReason (UNABLE_TO_REFUND_TO_SOURCE or RAISED_IN_ERROR), refundFailureReason (the provider’s reason: LOST_OR_STOLEN_CARD, EXPIRED_OR_CANCELED_CARD, DECLINED, INSUFFICIENT_FUNDS, CHARGE_FOR_PENDING_REFUND_DISPUTED, MERCHANT_REQUEST, or UNKNOWN when the provider gives none we map; empty for manual reversals) and refundFailedAt (empty for manual reversals) |
| Refund note (new fields) | refundStatus (PENDING, SUCCEEDED or FAILED; empty for manually recorded refunds and for refunds raised before tracking began), reversalDetails (which refund reversal note reversed it, and when), and reverseBlockers (why it can’t be reversed by hand right now: REFUNDED_VIA_PAYMENT_PROVIDER, ALREADY_REVERSED, NOT_ISSUED or REFUND_PAYMENT_NOT_FOUND; empty when it can) |
| Listing refund reversal notes | The generic documents query, filtered by documentGenericType: { in: [REFUND_REVERSAL_NOTE] }. Refund reversal notes have no list query of their own. |
| Reversing a refund | accounting.documents.refundNotes.reverse, with the refund note ID and a reason. Only for refunds of manually recorded payments. Needs the same permission as issuing a refund. |
Full field reference and examples are in Apollo and the Postman collection.
Coming soon
Section titled “Coming soon”The following document types are in development and not yet available via the AR API:
- Goodwill credit note — Reduces outstanding balance as a commercial gesture without voiding the invoice.
- Write-off — Removes remaining outstanding balance when debt is deemed uncollectible.
We will update this guide when these become available.
Typical uses
Section titled “Typical uses”- Mirror AR into an ERP or data warehouse
- Reconcile payments in near real time
- Support finance operations outside the PMS UI
Other ways to get data
Section titled “Other ways to get data”See Integrations and exports for Yardi, Edicom, Invopop, and CSV export options.
Technical reference
Section titled “Technical reference”- Postman collection: https://www.postman.com/lavanda/lavanda-external-api/overview
- Webhook catalogue: https://webhooks-docs.lavanda.app/
- GraphQL API: https://platapi.lavanda.app/v1
Not in this guide
Section titled “Not in this guide”Credentials, field-level API reference, and permission setup are shared during technical onboarding.