R2 Connect API
Reservations
Lodging stays with dates, guests, charges, taxes, payments and outstanding balance.
GET/reservationsrequires read:reservations
GET/reservations/{order_number}requires read:reservations
Returns lodging orders only. If you also need restaurant or store consumption, use orders, which includes everything.
Parameters#
| Parameter | Type | Description |
|---|---|---|
| limit | integer | Results per page. Between 1 and 50. Default: 25. |
| cursor | string | Cursor for the next page, taken from pagination.cursor. |
| created_from | date | Start date, format YYYY-MM-DD (UTC) or epoch milliseconds. |
| created_to | date | End date, inclusive. Same format. |
| status | string | Filter by exact status. |
Possible status values: pending, placed, confirmed, in-progress, completed, cancelled, noshow, refunded.
Fields#
| Field | Type | Description |
|---|---|---|
| order_number | string | Visible reservation number. This is what you use in the detail path. |
| status | string | Current status. |
| channel | string | Reservation origin: own booking engine, distribution channel, front desk, etc. |
| guest_name | string | Guest for this reservation. |
| reservation_title | string | Free label for groups or agencies. May be null. |
| check_in | date | First night, YYYY-MM-DD. |
| check_out | date | Departure, YYYY-MM-DD. |
| guests | object | Total adults and children for the reservation. |
| subtotal | number | Sum of charges before taxes and discounts. |
| discount | number | Applied discount. |
| taxes | array | Tax breakdown, each with name, rate and amount. |
| tax_total | number | Sum of taxes. |
| total | number | Final reservation amount. |
| paid | number | Sum of payments already collected. |
| balance | number | Outstanding balance: total − paid. |
| lines | array | Reservation lines: room, nights and added charges. |
| payments | array | Payments for this reservation, same shape as payments. |
Amounts are decimals, not cents
All amounts come in the currency’s unit with decimals (for example 2088.50), not in integer cents. The currency is the business’s and is included in every record.
Example#
bash
curl -H "Authorization: Bearer TU_LLAVE" \
"https://api.r2-os.com/api/connect/v1/reservations?created_from=2026-07-01&limit=2"json
{
"data": [
{
"id": "p97cbaneya88az5ra2agmy7swx",
"order_number": "ORD-MRNCRMX2-3BAW",
"type": "booking",
"status": "confirmed",
"channel": "booking_engine",
"guest_name": "Gabriela Ortiz",
"reservation_title": null,
"check_in": "2026-07-20",
"check_out": "2026-07-21",
"guests": { "adults": 2, "children": 0 },
"currency": "MXN",
"subtotal": 1800,
"discount": 0,
"taxes": [
{ "name": "IVA", "rate": 0.16, "amount": 288 }
],
"tax_total": 288,
"total": 2088,
"paid": 0,
"balance": 2088,
"created_at": "2026-07-16T10:15:00.038Z",
"updated_at": "2026-07-16T10:15:00.038Z",
"lines": [
{
"id": "p97cbaneya88az5ra2agmy7swx",
"item_name": "Lodge 104",
"quantity": 1,
"unit_price": 1800,
"line_total": 1800,
"check_in": "2026-07-20",
"check_out": "2026-07-21",
"checked_in_at": null,
"checked_out_at": null
}
],
"payments": []
}
],
"pagination": { "cursor": "g3QAAAACZAAE…", "has_more": true }
}Single reservation#
Request a reservation by its number. If the number does not exist in that account, the response is 404.
bash
curl -H "Authorization: Bearer TU_LLAVE" \
"https://api.r2-os.com/api/connect/v1/reservations/ORD-MRNCRMX2-3BAW"