Statement, payouts, invoices
All three need landlord:read:finance.
GET /statement
Section titled “GET /statement”The same statement your portal shows and the agency prints as PDF: revenue per stay with the agency fee, running costs, payouts, open balance, and the facts behind the numbers (cancellations, complaints, own use).
| Query parameter | Required | Meaning |
|---|---|---|
from / to | yes | Inclusive period, from ≤ to |
curl "https://api.myrentalcalendar.com/partner/v1/landlord/statement?from=2026-08-01&to=2026-08-31" \ -H "Authorization: Bearer $KEY"{ "owner": { "id": "0188a…", "name": "Hassan Al Mansoori", "email": "hassan@example.com" }, "period": { "from": "2026-08-01", "to": "2026-08-31" }, "currency": "AED", "units": [ { "id": "0190c…", "name": "Marina Loft · 2BR", "area": "Dubai Marina" } ], "revenue": { "lines": [ { "bookingId": "0191a…", "unitName": "Marina Loft · 2BR", "arrival": "2026-08-10", "departure": "2026-08-17", "nights": 7, "source": "airbnb", "status": "closed", "gross": 315000, "systemGross": 330000, "deviation": -15000, "adjustments": [ { "kind": "discount", "label": "Returning guest", "amount": -15000, "reasonCategory": "loyalty", "promoId": null, "promoName": null } ], "commissionPct": 18, "commissionAmount": 56700, "ownerShare": 258300 } ], "byUnit": [ { "unitName": "Marina Loft · 2BR", "bookings": 3, "nights": 19, "gross": 812000, "agencyFees": 146160, "ownerShare": 665840 } ] }, "costs": { "lines": [ { "unitName": "Marina Loft · 2BR", "date": "2026-08-01", "category": "Electricity", "categoryGroup": "utilities", "label": "DEWA August", "recurrence": "monthly", "amount": 42000, "chargedTo": "owner", "origin": "unit", "source": "owner" } ], "byCategory": [ { "category": "Electricity", "owner": 42000, "agency": 0 } ], "ownerTotal": 42000, "agencyCoveredTotal": 35000 }, "payouts": [ { "bookingId": "0191a…", "amount": 258300, "paidOn": "2026-08-25", "reference": "AUG-1" } ], "kpis": { "cancellations": 1, "cancelledLostShare": 41000, "requestsRejected": 1, "requestsUnanswered": 0, "complaints": 0, "ownerStays": 1, "ownerStayNights": 4 }, "totals": { "gross": 812000, "agencyFees": 146160, "ownerShare": 665840, "ownerCosts": 42000, "agencyCoveredCosts": 35000, "netRent": 623840, "paidOut": 258300, "openBalance": 365540, "deviationTotal": -15000, "discountsByCategory": { "loyalty": -15000 }, "campaigns": [] }}How to read it:
revenue.lines— one row per guest stay that arrived in the period and inside your tenure.grossis what the guest paid,systemGrosswhat the engine proposed,deviationthe difference;adjustmentsexplain every deviation by category (a loyalty discount, a campaign), never by internal note.commissionPctis the fee that applied to that stay;ownerShare = gross − commissionAmount.costs— rows charged to you reduce your rent; rows the agency covers are listed for transparency and never do. Your own entries carrysource: "owner".totals.netRent = ownerShare − ownerCosts, andopenBalance = netRent − paidOutis the figure you are asking about.
The shape may gain fields; the ones shown are stable. 400 VALIDATION when
from is after to.
GET /payouts
Section titled “GET /payouts”Every transfer the agency recorded to you, newest first, with the stay it settles.
| Query parameter | Meaning |
|---|---|
from / to | Paid on or after / on or before |
{ "payouts": [ { "id": "01932…", "bookingId": "0191a…", "unitSlug": "marina-loft-2br", "unitName": "Marina Loft · 2BR", "arrival": "2026-08-10", "departure": "2026-08-17", "amount": 258300, "currency": "AED", "paidOn": "2026-08-25", "reference": "AUG-1" } ]}GET /invoices
Section titled “GET /invoices”The guest invoices the agency issued for stays inside your tenure — number, date, total, status. The list carries no guest billing data; the document itself stays with the agency, which is the legal issuer.
{ "invoices": [ { "id": "0192e…", "number": "INV-2026-000412", "kind": "tax_invoice", "status": "issued", "issuedOn": "2026-08-09", "total": 315000, "currency": "AED", "bookingId": "0191a…", "unitSlug": "marina-loft-2br", "unitName": "Marina Loft · 2BR", "arrival": "2026-08-10", "departure": "2026-08-17" } ]}