R2 Developers
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ámetroTipoDescripción
limitintegerResultados por página. Entre 1 y 50. Predeterminado: 25.
cursorstringCursor de la página siguiente, tomado de pagination.cursor.
created_fromdateFecha inicial, formato AAAA-MM-DD (UTC) o epoch en milisegundos.
created_todateFecha final, inclusiva. Mismo formato.
statusstringFiltra por estado exacto.

Valores posibles de status: pending, placed, confirmed, in-progress, completed, cancelled, noshow, refunded.

Campos#

CampoTipoDescripción
order_numberstringNúmero visible de la reserva. Es el que usas en la ruta de detalle.
statusstringEstado actual.
channelstringOrigen de la reserva: motor propio, canal de distribución, recepción, etc.
guest_namestringHuésped de esta reserva.
reservation_titlestringEtiqueta libre para grupos o agencias. Puede ser null.
check_indatePrimera noche, AAAA-MM-DD.
check_outdateSalida, AAAA-MM-DD.
guestsobjectTotal de adults y children de la reserva.
subtotalnumberSuma de cargos antes de impuestos y descuentos.
discountnumberDescuento aplicado.
taxesarrayDesglose de impuestos, cada uno con name, rate y amount.
tax_totalnumberSuma de los impuestos.
totalnumberImporte final de la reserva.
paidnumberSuma de los pagos ya cobrados.
balancenumberSaldo pendiente: total − paid.
linesarrayRenglones de la reserva: habitación, noches y consumos añadidos.
paymentsarrayPagos 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"