POST
/api/mod/contabilidad/{espacio}/outbox/{entrada}/retryReintenta un envío
Vuelve a poner en pending una entrada que falló o quedó en dead, para que salga en el siguiente procesado. Una entrada en done no se toca.
- PERMISOescribe
- CRÉDITOSno gasta
- AUTENTICACIÓNBearer bth_…
PARÁMETROS
| CAMPO | TIPO | REQUERIDO | QUÉ ES |
|---|---|---|---|
| espacio | string | SÍ | El id del espacio (sale en GET /api/companies). Tiene que tener el módulo Contabilidad. |
| entrada | string | SÍ | El id de la entrada en la cola: el outbox_id que devolvió encolarla (32 caracteres hexadecimales). |
RESPUESTA 200
La entrada, ya en pending (o tal cual, si estaba en done).
| CAMPO | TIPO | QUÉ ES |
|---|---|---|
| id | string | El id de la entrada (el outbox_id). |
| tipo | "invoice" | "payment" | "customer" | Factura, pago o cliente. |
| referencia_interna | string | La tuya. |
| idem_key | string | tipo:referencia_interna, la clave que impide encolarla dos veces. |
| payload_json | string | Lo que encolaste, como texto JSON (con las cifras como texto). |
| estado | string | Ver estados. |
| intentos · max_intentos | integer | Los intentos hechos y cuántos tiene antes de quedar en dead. |
| resultado_json | string | null | Al terminar, lo que contestó tu software, como texto JSON: external_id (su id allí), estado y raw (su respuesta entera); en facturas, además cufe, numero y pdf_url si los da. |
| motivo_error | string | null | Por qué falló el último intento, con el mensaje de tu software. |
| next_attempt_at | number | null | Desde cuándo se puede volver a intentar. Segundos desde 1970. |
| created_at · updated_at | number | Segundos desde 1970, con decimales. |
ESTADOS DE UNA ENTRADA
| CAMPO | TIPO | QUÉ ES |
|---|---|---|
| pending | en cola | Esperando a que se procese la cola. |
| processing | en curso | Mandándose ahora mismo. |
| done | terminada | Tu software la aceptó, una sola vez. Con csv_export: lista para el archivo. |
| failed | se reintenta | Falló y le quedan intentos: va en el siguiente procesado a partir de next_attempt_at. Sin software configurado también espera aquí, sin gastar intentos. |
| dead | parada | Agotó los intentos y ya no se reintenta sola. Mira motivo_error y reinténtala. |
ERRORES DE ESTA RUTA · SIEMPRE {"detail": …}
| STATUS | CUÁNDO | DETAIL LITERAL |
|---|---|---|
| 403 | El espacio no tiene el módulo Contabilidad | módulo no habilitado para este espacio. |
| 403 | La clave es de solo lectura | Tu cuenta es de solo lectura en este espacio. |
| 404 | No hay una entrada con ese id en la cola del espacio | entrada de outbox no encontrada. |
| 502 | El módulo no está disponible en este momento: reintenta en unos minutos | — |
Y los de cualquier ruta —clave inválida, cuenta no al día, IP, límites—, en Errores, límites y créditos.
CONVIENE SABER
- No la manda: después, procesa la cola.
- No reinicia
intentos: una entrada que estaba endeadtiene un intento más y, si vuelve a fallar, vuelve adead. Corrige antes lo que dicemotivo_error.