# What is available today

High-level scope for the AR API. Confirm details with Lavanda for your contract.

## 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](/finance-and-accounting/integrations/ar-payments-api/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](/finance-and-accounting/integrations/ar-payments-api/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](/finance-and-accounting/integrations/ar-payments-api/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

| 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

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

- 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

See [Integrations and exports](/finance-and-accounting/integrations/integrations-and-exports/) for Yardi, Edicom, Invopop, and CSV
export options.

## 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

Credentials, field-level API reference, and permission setup are shared during technical
onboarding.
