Saltar al contenido
VeloraBlog
← Todos los artículos

12 de junio de 2026

¿Cómo manejar la idempotencia en WSFEv1? ¿Qué pasa si el request se corta a mitad?

WSFEv1 NO tiene idempotencia nativa. Si el request de FECAESolicitar se corta, no se sabe si ARCA procesó el comprobante. La solución es usar FECompConsultar(PtoVta, CbteTipo, CbteNro) antes de reintentar: si ya existe con CAE, la emisión fue exitosa; si no existe, reintentar con el mismo número.

El problema de los timeouts en facturación

Una venta puede quedar en estado ambiguo — el negocio cree que falló pero ARCA ya autorizó el comprobante. Reintentar sin verificar genera error 10016 o duplicados.

Caso documentado en pyafipws: 8 facturas aparecieron en AFIP cuando solo se imprimió 1, por reintentos sin verificar.

Patrón robusto de emisión

1. Reservar el número localmente (DB con estado PENDIENTE).
2. Llamar a FECAESolicitar.
3. Si OK → guardar CAE, estado EMITIDA.
4. Si timeout/error → llamar FECompConsultar con ese mismo número:
   - Si retorna CAE → guardar CAE, estado EMITIDA (ya existía).
   - Si retorna no encontrado → reintentar FECAESolicitar con el mismo número.
5. Si ARCA devuelve número ya autorizado → consultar y guardar el CAE existente.