GuíaEjemplosReferencia API
apisunat.netIngresar

Primeros pasos

  • API SUNAT
  • Inicio rápido
  • Integra con IA
  • Autenticación
  • Planes y límites

Configurar el RUC

  • Emisores
  • Establecimientos y series

Emitir

  • Documentos
  • Idempotencia
  • Estados
  • Correos
  • Catálogos

Integración

  • Errores
  • Webhooks
  • Cambios

Estados

Qué significa cada estado de un documento y cómo seguirlo.

EstadoSignificado¿Final?
processingEnviado a SUNAT, sin respuesta definitiva todavía.No
acceptedAceptado por SUNAT (CDR código 0).Sí
accepted_with_observationsAceptado con observaciones. Es válido; revisa sunat.description.Sí
rejectedSUNAT lo rechazó. El número queda usado; corrige y emite uno nuevo.Sí
errorNo se pudo completar el envío (por ejemplo, SUNAT no respondió o las credenciales fallaron). Revisa sunat.errorMessage.Puede reintentarse
void_pendingHay una anulación en curso.No
voidedAnulado (baja o resumen aceptado).Sí

Seguir un documento en processing

La API vuelve a consultar a SUNAT cada 15 segundos los documentos que quedaron en proceso con ticket. Para enterarte del resultado:

  1. Webhooks (recomendado): recibes document.accepted, document.observed, document.rejected o document.failed. Ver Webhooks.
  2. Consultar: GET /documents/{id} devuelve el estado actual.
  3. Forzar la consulta: POST /documents/{id}/query-sunat consulta el ticket en SUNAT en ese momento y devuelve el documento actualizado. Responde 404 si el documento no tiene ticket.

Reintentos automáticos

Si el envío falla porque SUNAT no responde o por un error de red (NETWORK_ERROR, SOAP_FAULT o códigos 01xx de disponibilidad), la API reenvía el mismo XML sola, hasta 5 veces, esperando 1, 2, 4, 8 y 16 minutos. Si sigue fallando, avisa por correo al email del workspace y el documento queda en error, y también recibes el webhook document.failed. Los errores de credenciales (0102, 0103) y los rechazos de contenido no se reintentan.

Reenviar un documento en error

POST /documents/{id}/resend vuelve a enviar a SUNAT el mismo XML firmado, con la misma serie y número. Responde 202 con el documento. Si el XML original no está disponible responde 409 FILES_NOT_AVAILABLE.

No reenvíes un documento rejected: SUNAT lo rechazará de nuevo. Emite uno nuevo con los datos corregidos.

Resultado de SUNAT

El bloque sunat de cada documento trae la respuesta:

json
"sunat": {
  "ticket": null,
  "responseCode": "0",
  "description": "La Factura numero F001-125, ha sido aceptada",
  "errorCode": null,
  "errorMessage": null,
  "attempts": 1
}
  • responseCode y description vienen del CDR.
  • errorCode y errorMessage describen el fallo cuando el estado es rejected o error.
  • ticket existe en envíos asíncronos (resúmenes, bajas y guías).
Idempotencia< PreviousCorreosNext >

Powered by heyo

On this page

Seguir un documento en processingReintentos automáticosReenviar un documento en errorResultado de SUNAT