Simular respuestas del SRI
Prueba en Sandbox cada camino de tu integración, incluidos los que el SRI rara vez te muestra.
Tu integración tiene que manejar un comprobante devuelto, uno rechazado y uno que el SRI tarda en decidir. En el SRI real esos casos son difíciles de provocar. En Sandbox los pides.
Agrega simulate al emitir o corregir, con una clave fb_sandbox_…:
{
"buyer": { "identification_type": "consumidor_final" },
"lines": [
{
"description": "Café pasado",
"quantity": "1",
"unit_price": "2.50",
"taxes": [{ "type": "iva", "rate": "iva_15" }]
}
],
"payments": [{ "method": "sin_sistema_financiero" }],
"simulate": { "outcome": "returned" }
}outcome | Qué pasa | Mensaje del SRI |
|---|---|---|
authorized (por defecto) | Se autoriza a los pocos segundos | 60, realizado en el ambiente de pruebas (aviso) |
returned | Se devuelve al recibirlo | 35, archivo no cumple estructura XML |
not_authorized | Se recibe y luego se rechaza | 52, error en diferencias |
delayed | Queda en submitted durante un minuto y luego se autoriza | — |
sequence_taken | El SRI dice que su número ya está usado: toma el siguiente, como en Pruebas, y ese se autoriza | 45, secuencial registrado |
El resto es real: lo numeramos, lo firmamos con un certificado de práctica, recorre los mismos estados, genera los mismos webhooks y un RIDE con marca de agua. Solo el SRI es simulado.
Prueba la corrección completa
- Emite con
"simulate": { "outcome": "returned" }. - Espera el webhook
invoice.returnedy leesri_messages. - Corrige con
POST …/{id}/resubmit, sinsimulate. - Recibe
invoice.authorized, con el mismo número y la misma clave de acceso.
Cada revisión lleva su propio simulate: una corrección sin él se autoriza.
Prueba un número ocupado
Emite con "simulate": { "outcome": "sequence_taken" }. El comprobante toma el siguiente número de su serie con una clave de acceso nueva, y invoice.authorized llega con ese número, no con el de la respuesta al emitir. Si tu integración guarda el número al emitir, este es el caso que debe manejar: el número definitivo es el del comprobante autorizado. En Producción, en cambio, el comprobante queda returned y lo renumeras tú.
simulate solo existe en Sandbox. Con una clave de Pruebas o Producción
respondemos 422: en esos ambientes decide el SRI de verdad.