> ## Documentation Index
> Fetch the complete documentation index at: https://docs.maple.inc/llms.txt
> Use this file to discover all available pages before exploring further.

# Registro de cambios

> Cambios relevantes en la Developer API de Maple.

Aquí se registran los cambios en la superficie de la Developer API: nuevos endpoints, nuevos tipos de evento y cambios de comportamiento. La [referencia de endpoints](/es/developer-api/api-reference) siempre refleja el estado actual.

<Update label="October 2026" description="Los rechazos de OpenTable usan los códigos nativos">
  * En los locales administrados por OpenTable, un rechazo para el que OpenTable da un motivo ahora responde con el mismo código que un local nativo de Maple, con las palabras de Maple, en lugar de `422 provider_rejected` con el texto de OpenTable. Una hora demasiado próxima responde `422 outside_booking_window` (`details.reason: inside_min_lead`); una reserva que ya empezó o está por empezar, `409 not_changeable` / `409 not_cancellable` (`details.reason: outside_policy_window`); una hora que requiere tarjeta, `422 payment_instrument_required`. Los demás rechazos siguen siendo `provider_rejected`. Consulte [Errores](/es/developer-api/concepts/errors).
</Update>

<Update label="October 2026" description="Cambie solo la nota de una reserva">
  * `POST /v1/bookings/{bookingId}/change` acepta `notes` sin `slot_token` para cambiar solo la nota del huésped: la reserva conserva su hora, el tamaño del grupo y la mesa, por lo que no se necesita una cotización. Si no se envía ninguno de los dos campos, responde `400 change_required`. Consulte [Cambiar o cancelar](/es/developer-api/guides/take-bookings).
</Update>

<Update label="September 2026" description="Experiencias">
  * La disponibilidad lista las experiencias (menús fijos, degustaciones, turnos con boleto) donde el local las ofrece, junto con los horarios estándar en orden de inicio. Cada `booking_slot` tiene un `experience` (`id`, `name`, `description`, `prepayment_required`), `null` para una reserva estándar. `experience_id` limita una búsqueda a una experiencia. Se ofrecen en locales de OpenTable; `booking_profile.capabilities.experiences` indica si un local las ofrece.
  * Un horario de experiencia se reserva con el flujo habitual de retención y reserva, y el recurso `Booking` (y sus payloads de webhook) incluye `experience` (`id`, `name`), `null` para una reserva estándar. Un cambio conserva la experiencia: un horario de otra experiencia, o entre una experiencia y una mesa estándar, responde `422 capability_unsupported`.
  * Retener un horario cuya experiencia pide pago por adelantado responde `422 payment_instrument_required`: Maple todavía no puede cobrar. Consulte [Experiencias](/es/developer-api/guides/take-bookings).
</Update>

<Update label="September 2026" description="Reservas con el grupo ya sentado en locales de OpenTable">
  * En los locales administrados por OpenTable, cambiar o cancelar una reserva cuyo grupo ya está sentado, o que ya terminó, ahora responde `409 not_changeable` o `409 not_cancellable` (motivo `in_service` o `terminal_state`) antes de que Maple llame a OpenTable, como ya ocurría en los locales nativos de Maple.
</Update>

<Update label="September 2026" description="Los establecimientos controlan los mensajes a huéspedes">
  * Los gerentes de restaurante ahora pueden desactivar los mensajes de texto de Maple a los huéspedes de su establecimiento. Donde lo hicieron, `POST /v1/waitlist_entries/{entryId}/notify` responde `422 guest_messaging_unavailable`, como ya ocurría donde los mensajes a huéspedes no están habilitados. Siente o retire al grupo. Consulte [Administre la lista de espera](/es/developer-api/guides/run-the-waitlist).
  * Los gerentes también pueden activar por sí mismos las reservas de Maple una vez publicada una configuración, así que `booking_profile.enabled` puede cambiar sin intervención de Maple. Siga verificándolo antes de ofrecer disponibilidad.
</Update>

<Update label="September 2026" description="Revisiones de configuración">
  * La configuración de reservas incluye un `revision`. Publique con `expected_revision` para recibir `409 stale_configuration` en lugar de sobrescribir una configuración que un gerente del restaurante editó en el panel de Maple desde su lectura; `null` espera que aún no haya configuración. Publicar sin él sigue reemplazando la configuración sin condiciones. Consulte [Publique sin sobrescribir al local](/es/developer-api/guides/configure-bookings).
</Update>

<Update label="September 2026" description="Todas las áreas de asientos se pueden reservar">
  * La disponibilidad nativa de Maple ahora sienta a los grupos en todas las áreas configuradas, no solo en la primera: prueba la primera área, luego las demás en orden de `poolId`, y reserva la primera que tenga una mesa o combinación libre que quepa. Ahora se ofrece un grupo que solo otra área puede sentar (una mesa grande en el patio). Los límites de tamaño de grupo abarcan todas las áreas. Consulte [Reglas de publicación](/es/developer-api/guides/configure-bookings).
</Update>

<Update label="September 2026" description="Busque reservas por teléfono o código de confirmación">
  * `GET /v1/bookings` acepta `phone` y `confirmation_code` para encontrar la reserva por la que pregunta un huésped. Ambos requieren `location_id`; el teléfono se normaliza primero. Sin una ventana de tiempo, la búsqueda encuentra reservas en cualquier fecha, tanto en locales nativos como administrados por un proveedor. Una búsqueda sin `location_id` responde `400 location_required`. Consulte [Encuentre la reserva de un huésped](/es/developer-api/guides/take-bookings).
</Update>

<Update label="September 2026" description="Fechas bloqueadas para reservas">
  * `GET /v1/locations/{locationId}/booking_profile` devuelve los `blackout_dates` del local: periodos en los que no recibe reservas.
  * `PUT /v1/locations/{locationId}/booking_blackouts` reemplaza la lista con el alcance (scope) `bookings:configure`, en locales nativos y administrados por un proveedor. Envíe el `blackout_dates_revision` del perfil como `expected_revision` para recibir `409 stale_blackout_dates` en lugar de sobrescribir las ediciones más recientes del establecimiento. Los rangos no válidos responden `400 invalid_blackout_dates`. Consulte [Fechas bloqueadas](/es/developer-api/guides/configure-bookings).
</Update>

<Update label="September 2026" description="Errores de validación y la pista de comentarios">
  * Una solicitud cuyos parámetros de ruta, consulta, encabezados o cuerpo no superan la validación ahora responde `400` con un cuerpo `DeveloperApiBadRequest` (`code: "invalid_request"`) que nombra el campo, donde antes respondía con un cuerpo vacío.
  * Todo cuerpo de error incluye una línea `feedback` que apunta a [`POST /v1/feedback`](/es/developer-api/concepts/feedback). Consulte [Errores](/es/developer-api/concepts/errors).
</Update>

<Update label="September 2026" description="Comentarios">
  * `POST /v1/feedback` reporta un error, una capacidad que falta, documentación incorrecta o un error poco claro, citando los ids de las solicitudes involucradas. Solo `kind` y `summary` son obligatorios. Un id que Maple no pueda asociar con sus solicitudes recientes se conserva tal como se envió en lugar de rechazarse. Cualquier credencial puede enviarlo; no se requiere alcance. Su contrato no se romperá: se pueden agregar campos, nunca eliminarlos ni volverlos obligatorios. Consulte [Comentarios](/es/developer-api/concepts/feedback).
</Update>

<Update label="September 2026" description="Clientes sin reserva y cancelación por parte del establecimiento">
  * `POST /v1/locations/{locationId}/walk_ins` sienta a un grupo que llega en la mesa más próxima donde quepa ahora y devuelve la reserva con el grupo sentado; es seguro reintentar con un `idempotency_key` limitado a su app. Consulte [Siente a un cliente sin reserva](/es/developer-api/concepts/booking-lifecycle).
  * `POST /v1/bookings/{id}/venue_cancel` cancela en nombre del establecimiento (`cancelled_by_venue`), fuera de la ventana de cancelación del huésped. Consulte [Cancele como el establecimiento](/es/developer-api/concepts/booking-lifecycle).
  * Ambos requieren `bookings:manage` y están disponibles en locales nativos de Maple. La referencia de la API ahora muestra la lista de espera en su propia sección.
</Update>

<Update label="September 2026" description="Lista de espera">
  * Lea la cola de clientes sin reserva de un local nativo y cotice esperas con `bookings:read`.
  * Agregue grupos con un `idempotency_key` limitado a su app, y cancélelos en nombre del huésped, con `bookings:write`.
  * Notifique, siente y retire grupos, y abra o cierre la lista de espera, con `bookings:manage`. Maple envía todos los mensajes a los huéspedes; sentar crea una reserva de cliente sin reserva. Consulte [Administre la lista de espera](/es/developer-api/guides/run-the-waitlist).
  * Cinco tipos de webhook de lista de espera (`waitlist_entry.created`, `.notified`, `.seated`, `.removed`, `.expired`) con el estado más reciente de la entrada. Consulte [Eventos de lista de espera](/es/developer-api/webhook-events).
</Update>

<Update label="September 2026" description="Zonas de entrega">
  * CRUD de zonas de entrega para locales conectados: liste, cree, obtenga, actualice y elimine zonas con `delivery_zones:read` / `delivery_zones:write`, dentro de la conexión activa de su app.
  * `POST /v1/locations/{locationId}/delivery_zones/check` indica si una coordenada tiene entrega y devuelve la zona y la tarifa correspondientes. Consulte [Administre las zonas de entrega](/es/developer-api/guides/delivery-zones).
</Update>

<Update label="September 2026" description="Reservas — lanzamiento por local">
  * Perfil de reservas, búsqueda acotada de disponibilidad, retenciones, y listar/obtener/crear/cambiar/cancelar reservas.
  * Acciones del establecimiento con `bookings:manage`, con verificación de versiones y registros de auditoría atribuidos a la app.
  * Publicación y lectura de configuración nativa con `bookings:configure`, conservando los menús existentes.
  * Plano del local en vivo bajo demanda, ocho tipos de webhook de reservas y aprovisionamiento opcional de sandbox de reservas.
  * Retenciones nativas y de proveedor propiedad de la app, cuotas atómicas de diez retenciones por app y local, y límites separados para solicitudes y búsquedas de reservas con `Retry-After`.
  * Reclamos duraderos de escritura al proveedor, reservas de versión, identidades de solicitud estables y reconciliación tras escrituras inciertas o fallas del espejo. Consulte [Tome reservas](/es/developer-api/guides/take-bookings) para las reglas de reintento.
</Update>

<Update label="August 2026" description="Direcciones de entrega, puesta al día de pedidos y reintentos de webhook más densos">
  * **Direcciones de entrega**: el recurso del pedido y el payload de `order.notification` ahora incluyen `delivery_address` (calle, unidad, ciudad, estado, código postal y las instrucciones de entrega del cliente en `notes`). Es `null` en pedidos para recoger y en pedidos a domicilio sin dirección guardada. Consulte [Recibir pedidos](/es/developer-api/guides/receive-orders).
  * **Puesta al día de pedidos**: `GET /v1/orders` acepta `since`, `starting_after` y `limit`. Con `since`, los resultados se vacían del más antiguo al más reciente desde un punto de control exclusivo, para que pueda recorrer un rezago tras una caída. Consulte [Listas](/es/developer-api/api-reference).
  * **Reenvío de pedidos**: `POST /v1/orders/{orderId}/resend` publica un `order.notification` nuevo para un pedido activo que no recibió su webhook, sin cambiar el estado del pedido. Requiere `webhooks:write`; los pedidos en estado terminal no se pueden reenviar.
  * **Reintentos de webhook más densos**: una entrega fallida ahora se reintenta hasta 9 veces (antes 6), con los primeros intentos dentro de la ventana de decisión del POS de seis minutos. Consulte [Reintentos y desactivación automática](/es/developer-api/concepts/webhooks).
</Update>

<Update label="June 2026" description="Lanzamiento de la Developer API">
  La Developer API de Maple está disponible para socios de POS y de plataformas.

  * **Autenticación**: claves de API (`mpk_test_…` para el sandbox, `mpk_live_…` para producción) con acceso por alcances.
  * **Locales y conexiones**: liste los locales autorizados y conéctese como receptor de pedidos de un local.
  * **Pedidos**: reciba `order.notification`, lea el pedido completo y decídalo con accept / deny / ready / complete / cancel / status. Prevalidación opcional.
  * **Menú**: publique el menú completo de un local como un solo documento JSON con sus propios IDs externos, y léalo de vuelta.
  * **Webhooks**: suscríbase a tipos de evento, verifique entregas firmadas con HMAC y repita desde el registro de eventos.
</Update>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.