Skip to main content
POST
Cancelar orden (partners)
Cancela una orden que inyectaste, buscándola por el id externo que vos le pusiste. A diferencia del endpoint de backoffice, no necesitás guardar nuestro UUID interno.
Este endpoint corre la política de cancelación: las reglas de Fire más las que haya configurado la cuenta. Antes de intentarlo podés preguntar con Elegibilidad de cancelación, que devuelve el mismo veredicto y los mismos code con un 200 y sin efectos.

El orden de los pasos depende del gateway fiscal

Es la parte que más se equivoca al integrar, y la única donde el orden importa.
El comprobante lo numera Fire, así que la anulación fiscal va primero:
1

Anular el comprobante

POST /api/v2/external/fiscal/numbering con operation: "CANCEL". Devuelve la nota de crédito. Ver Numeración fiscal v2.
2

Cancelar la orden

Recién ahora, este endpoint.
Es el mismo patrón que la emisión —primero el hecho fiscal, después la orden—, y por eso es fácil de recordar: se anula igual que se emite.Si invertís los pasos, este endpoint responde 409 con FISCAL_REPRESENTATION_NOT_VOIDED. No es transitorio: reintentar no lo arregla.
Fire resuelve solo cuál de los dos casos aplica, por la configuración de esa cuenta, país y vendor. No tenés que averiguarlo: si te corresponde la nota de crédito, el 409 te lo dice.
string
requerido
Bearer <api-key> con scope orders:write, acotada a un vendor.
string
predeterminado:"es"
Idioma del motivo de un rechazo: es, en o pt. Es el mismo parámetro que ya usan Elegibilidad y Numeración fiscal.Va en la URL:
Solo afecta a las reglas propias de Fire, que traen etiquetas en los tres idiomas. El texto de una regla que configuró la cuenta vuelve tal cual la cuenta lo escribió, en el idioma en que esté escrito. Sin este parámetro, español.
string
requerido
El id externo de la orden — el mismo orderId que mandaste al inyectarla. No es nuestro UUID interno: no necesitás guardarlo.
string
requerido
El motivo. Entre 5 y 500 caracteres. Con catálogo, el texto de la razón elegida.
string
El id del motivo dentro del catálogo. Para canales de agregador tiene que salir del catálogo SAG.
string
Nota libre, hasta 500 caracteres. Se guarda aparte del motivo.
string
El grupo. No hace falta mandarlo: lo deriva el backend.

Qué trae un rechazo

Además del code, el cuerpo de un 409 trae el motivo listo para mostrar:
string
El titular: el nombre de la regla que denegó. Es lo que entra en un aviso corto.
string
El porqué, largo. Sólo viene si la regla lo tiene cargado. Va aparte del message para que puedas mostrar sólo el titular cuando no hay lugar para más.
El número que causó el rechazo, cuando la regla compara uno: el límite y el valor real. Sirve para decir «se pasó por 17 minutos» sin tener que interpretar el texto.
object
Con qué datos se decidió. Es el recibo para diagnosticar, no para mostrarle a una persona.

Códigos de rechazo

Todos salen con 409. Ramificá por code, nunca por el mensaje: el texto es para mostrarle a una persona y puede cambiar o traducirse sin aviso.
Un 200 significa que la orden quedó cancelada. No significa que el documento fiscal ya esté anulado: con gateway eso lo hiciste vos en el paso previo, y con emisión nativa se resuelve después, por el callback del proveedor.