R2 Connect API
Reservas
Estancias de hospedaje con fechas, huéspedes, cargos, impuestos, pagos y saldo pendiente.
GET/reservationsrequiere read:reservations
GET/reservations/{order_number}requiere read:reservations
Devuelve únicamente las órdenes de hospedaje. Si necesitas también consumos de restaurante o tienda, usa órdenes, que incluye todo.
Parámetros#
| Parámetro | Tipo | Descripción |
|---|---|---|
| limit | integer | Resultados por página. Entre 1 y 50. Predeterminado: 25. |
| cursor | string | Cursor de la página siguiente, tomado de pagination.cursor. |
| created_from | date | Fecha inicial, formato AAAA-MM-DD (UTC) o epoch en milisegundos. |
| created_to | date | Fecha final, inclusiva. Mismo formato. |
| status | string | Filtra por estado exacto. |
Valores posibles de status: pending, placed, confirmed, in-progress, completed, cancelled, noshow, refunded.
Campos#
| Campo | Tipo | Descripción |
|---|---|---|
| order_number | string | Número visible de la reserva. Es el que usas en la ruta de detalle. |
| status | string | Estado actual. |
| channel | string | Origen de la reserva: motor propio, canal de distribución, recepción, etc. |
| guest_name | string | Huésped de esta reserva. |
| reservation_title | string | Etiqueta libre para grupos o agencias. Puede ser null. |
| check_in | date | Primera noche, AAAA-MM-DD. |
| check_out | date | Salida, AAAA-MM-DD. |
| guests | object | Total de adults y children de la reserva. |
| subtotal | number | Suma de cargos antes de impuestos y descuentos. |
| discount | number | Descuento aplicado. |
| taxes | array | Desglose de impuestos, cada uno con name, rate y amount. |
| tax_total | number | Suma de los impuestos. |
| total | number | Importe final de la reserva. |
| paid | number | Suma de los pagos ya cobrados. |
| balance | number | Saldo pendiente: total − paid. |
| lines | array | Renglones de la reserva: habitación, noches y consumos añadidos. |
| payments | array | Pagos de esta reserva, con la misma forma que pagos. |
Los importes son decimales, no centavos
Todos los montos vienen en la unidad de la moneda con decimales (por ejemplo 2088.50), no en centavos enteros. La moneda es la del negocio y viene en cada registro.
Ejemplo#
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 }
}Detalle de una reserva#
Pide una reserva por su número. Si el número no existe en esa cuenta, la respuesta es 404.
bash
curl -H "Authorization: Bearer TU_LLAVE" \
"https://api.r2-os.com/api/connect/v1/reservations/ORD-MRNCRMX2-3BAW"