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

ParameterTypeDescription
limitintegerResults per page. Between 1 and 50. Default: 25.
cursorstringCursor for the next page, taken from pagination.cursor.
created_fromdateStart date, format YYYY-MM-DD (UTC) or epoch milliseconds.
created_todateEnd date, inclusive. Same format.
statusstringFilter by exact status.

Possible status values: pending, placed, confirmed, in-progress, completed, cancelled, noshow, refunded.

Fields#

FieldTypeDescription
order_numberstringVisible reservation number. This is what you use in the detail path.
statusstringCurrent status.
channelstringReservation origin: own booking engine, distribution channel, front desk, etc.
guest_namestringGuest for this reservation.
reservation_titlestringFree label for groups or agencies. May be null.
check_indateFirst night, YYYY-MM-DD.
check_outdateDeparture, YYYY-MM-DD.
guestsobjectTotal adults and children for the reservation.
subtotalnumberSum of charges before taxes and discounts.
discountnumberApplied discount.
taxesarrayTax breakdown, each with name, rate and amount.
tax_totalnumberSum of taxes.
totalnumberFinal reservation amount.
paidnumberSum of payments already collected.
balancenumberOutstanding balance: total − paid.
linesarrayReservation lines: room, nights and added charges.
paymentsarrayPayments 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"