Corporate invoices from Cloudbeds folios, without the month-end rebuild
SwiftInvoicePro takes the room, product and add-on transactions on a Cloudbeds reservation, groups them by the company that owes them, and returns one consolidated, tax-correct invoice per company per period — long stays split cleanly at month-end.
How Cloudbeds data maps
| Reservation ID | folioId — every invoice line traces back to it |
| Property name, country, currency | property — selects the tax rules |
| Start / end date | stay — nights, month-end splits, per-night levies |
| Room revenue transactions | room lines — room VAT / lodging tax |
| Products and add-ons | restaurant, bar or other lines — taxed by category |
| Payments and card data | ignored — never needed, never read |
How the connection works
The property grants read access to reservations and transactions only. Access is scoped to that property and can be revoked by the property at any time.
The same transactions always produce the same invoice. Every line traces back to its reservation and transaction, and totals always balance.
Try the live endpoint
A fictional Cloudbeds-style reservation, mapped as above and posted to https://swiftinvoicepro.com/api/public/v1/folio-normalize. Nothing is stored.
{
"reservationID": "CB-4471029",
"propertyName": "Sample Riverside Aparthotel Manchester",
"country": "United Kingdom",
"currency": "GBP",
"startDate": "2026-09-28",
"endDate": "2026-10-02",
"transactions": [
{
"transactionDateTime": "2026-09-28",
"description": "Room Revenue",
"transactionCategory": "rate",
"amount": 112
},
{
"transactionDateTime": "2026-09-29",
"description": "Room Revenue",
"transactionCategory": "rate",
"amount": 112
},
{
"transactionDateTime": "2026-09-30",
"description": "Room Revenue",
"transactionCategory": "rate",
"amount": 112
},
{
"transactionDateTime": "2026-10-01",
"description": "Room Revenue",
"transactionCategory": "rate",
"amount": 112
},
{
"transactionDateTime": "2026-09-29",
"description": "Breakfast",
"transactionCategory": "product",
"amount": 14.5
},
{
"transactionDateTime": "2026-09-30",
"description": "Parking",
"transactionCategory": "addon",
"amount": 18
}
]
}// response appears here
See it work
Which numbers are measured, and which are not
92,110 events in five minutes, 0.00% failures, 319 ms p99 folio to invoice, zero duplicates on replay — measured on the production engine.
Any savings figure is modelled until a pilot measures it on your own properties.
Run it alongside your current process
A free 60-day shadow pilot on one Cloudbeds property. Read-only, nothing written back, nothing to pay at the end.