Saltar al contenido principal
GET
Devuelve los motivos de cancelación que corresponden a una orden. Úsalo para armar el selector de motivos antes de llamar a Cancelar orden (partners). La respuesta siempre tiene la misma forma, { mode, reasons }, sin importar de dónde salgan los motivos:
  • mode: "catalog": muestra la lista de reasons para que la persona elija.
  • mode: "free_text": no hay motivos para ofrecer. Muestra un campo de texto libre. En este caso reasons siempre es [].
orderId acepta cualquiera de estas formas: el id externo que mandaste al inyectar la orden, el order_id del payload de inyección, el order_code de Fire o el UUID interno de Fire. Fire busca la orden dentro de los vendors de tu key. Si el id coincide con más de una orden, responde 409 en lugar de elegir una.
Este endpoint no te dice si la orden se puede cancelar. Devuelve motivos aunque la orden ya esté cancelada. Para saberlo antes de intentarlo, usa Elegibilidad de cancelación.

De dónde salen los motivos

Fire elige la fuente según el canal de la orden:
  • Canal con gateway SAG activo (agregadores): los motivos se consultan a SAG en cada llamada. Todos llegan con group igual a "<proveedor> (<canal>)", por ejemplo "SAG (KEETA)". Si SAG no responde o no devuelve motivos, la respuesta es free_text. Fire nunca reemplaza el catálogo de SAG por el propio, porque SAG rechazaría esos códigos. En este caso surface y locale no se usan.
  • Cualquier otro canal: se usa el catálogo de Fire, filtrado por surface y por el canal de la orden. Si la cuenta tiene motivos propios, se combinan con el catálogo global: para un mismo código gana el de la cuenta, y la cuenta puede desactivar un motivo global. Los motivos llegan ordenados.
El catálogo de Fire se guarda en caché por hasta 5 minutos. Un cambio en los motivos puede tardar ese tiempo en verse. Los motivos de SAG no se guardan en caché.

Autenticación

string
requerido
Tu API key de Fire con scope orders:read. La key debe estar acotada a un vendor: una key sin cuenta se rechaza con 403. También se acepta en Authorization: Bearer <api-key>; si mandas los dos headers, se usa x-api-key.

Parámetros de ruta

string
requerido
Identificador de la orden: id externo, order_id del payload, order_code de Fire o UUID interno de Fire.

Parámetros de consulta

string
predeterminado:"pos"
Quién va a mostrar los motivos. Cada motivo del catálogo de Fire está habilitado para una o más superficies. Hoy existen pos, kds y backoffice, y los tres están pensados para el personal del local u operación, no para el cliente final.Un valor que no existe no da error: devuelve free_text. free_text es un valor de mode, no una superficie.
string
predeterminado:"es"
Idioma de cancellationReason y group en el catálogo de Fire: es, en o pt. Si un texto no existe en ese idioma, se usa español, después inglés, después portugués. La comparación es exacta: pt-BR no encuentra pt y cae a español. No afecta a los motivos de SAG.

Respuesta

La respuesta llega envuelta en el sobre estándar: { "success": true, "data": { ... } }.
string
catalog o free_text. Define si muestras una lista o un campo de texto libre.
array
Los motivos. Vacío cuando mode es free_text.

Errores

Decide por el status, error y code. El texto de message puede cambiar.

Cómo usarlo al cancelar

1

Pide los motivos

Llama a este endpoint con la orden que vas a cancelar.
2

Muestra la lista o el campo libre

Con mode: "catalog", muestra los motivos (agrupados por group, si quieres). Si el motivo elegido tiene requiresNote: true, pide la nota. Con mode: "free_text", pide un texto libre.
3

Cancela

Llama a Cancelar orden (partners) con:
  • reason: el cancellationReason del motivo elegido o el texto libre.
  • cancellationType: el cancellationType del motivo elegido.
  • cancellationNote: la nota, si la hay.
No hace falta mandar cancellationGroup.
reason exige al menos 5 caracteres. Si la etiqueta de un motivo es más corta, manda un texto más largo en reason.Fire tampoco verifica que cancellationType exista en el catálogo. Si mandas un código que no salió de este endpoint, la cancelación no falla, pero el motivo queda sin grupo. En canales con SAG, el código tiene que salir del catálogo de SAG.

Relacionado

Cancelar orden (partners)

Cancela la orden con el motivo elegido.

Elegibilidad de cancelación

Pregunta si la orden se puede cancelar antes de intentarlo.