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

Cambios

Novedades de la API pública v1.

2026-10-28

Nuevo

  • Skill oficial de API SUNAT para Claude Code, Codex, Cursor y otros asistentes de código. Ver Integra con IA.

Cambios

  • La Idempotency-Key es por modo: la misma clave con asu_test_ y con asu_live_ ya no se cruza. Antes, emitir en producción con una clave ya usada en pruebas devolvía el documento de prueba. Ver Idempotencia.
  • Los correos de comprobantes de prueba llevan [PRUEBA] en el asunto y un aviso de que no tienen validez tributaria; el PDF dice "COMPROBANTE DE PRUEBA".
  • GET /account incluye mode (test o live) según la clave usada.
  • La clave decide el ambiente SUNAT. asu_test_ emite siempre en SUNAT beta, con numeración desde 90000001 y sin consumir tu plan. asu_live_ emite siempre en SUNAT real. Ver Autenticación.
  • Una clave asu_live_ con un RUC que todavía no tiene producción habilitada ahora responde 403 PRODUCTION_NOT_ENABLED en vez de emitir en beta. Usa una clave asu_test_ para probar o habilita producción.
  • Un RUC de producción guarda un solo juego de credenciales reales: usuario SOL secundario y su clave, certificado digital y credenciales de guías. Ya no envías credenciales de beta: el RUC de prueba usa el usuario genérico de SUNAT beta con su certificado. En PUT /issuers/{ruc}/credentials el campo environment queda obsoleto y se ignora.
  • Los webhooks pertenecen a un modo, Prueba o Producción, con hasta 10 por modo. Los webhooks que ya tenías quedan en Producción y dejan de recibir los eventos de documentos de prueba; para recibirlos, crea un webhook en modo Prueba. Ver Webhooks.
  • El cuerpo de cada webhook trae livemode (true en producción, false en prueba).
  • Las lecturas por id quedan separadas por modo: pedir con una clave asu_test_ un documento real, o con una clave asu_live_ uno de prueba, responde 404 NOT_FOUND. Ver Autenticación.
  • Cada RUC pertenece a un modo, Prueba o Producción, como las claves y los webhooks. Una clave solo ve y usa los RUC de su modo, y POST /issuers crea el RUC en el modo de la clave. El mismo número de RUC puede registrarse una vez en cada modo. Ver Emisores.
  • Los RUC que ya tenías quedan en Producción. Para probar con una clave asu_test_, registra el RUC también en modo Prueba.
  • Un RUC de prueba solo necesita su certificado y la validación en beta. La prueba real y POST /production sobre un RUC de prueba responden 409 TEST_MODE_ISSUER.
  • Habilitar producción ya no exige la validación en beta: basta con guardar las credenciales completas y aprobar la prueba real.
  • El límite de RUC del plan cuenta solo los RUC de producción.
  • TEST_KEY_IN_PRODUCTION ya no aparece al emitir. Sigue apareciendo si actúas sobre un documento con el otro tipo de clave (por ejemplo, anular con una clave test un documento emitido con una clave live).

2026-10-27

Nuevo

  • Sandbox: las claves asu_test_ emiten siempre en SUNAT beta, con numeración propia y sin consumir el plan. Los documentos traen "test": true. Ver Autenticación.
  • Comprobante de percepción (tipo 40). Ver Percepción.
  • Liquidación de compra (tipo 04) con retención del IGV y de renta. Ver Liquidación de compra.
  • Reversión de retenciones y percepciones con POST /voids (resumen de reversiones RR).
  • Nota de crédito 13: corrige el monto pendiente o las cuotas de una factura al crédito.
  • ICBPER (items[].icbper), ISC sistemas 01 y 02 (items[].isc) e IVAP (taxCode 17).
  • Detracción por transporte de carga (operación 1004) con cargoTransport.
  • Descuentos de línea y global dentro de notas de crédito y débito.
  • Reintentos automáticos de los envíos que fallan porque SUNAT no responde, con aviso por correo si no se recuperan. Ver Estados.
  • POST /calculations devuelve totals.icbper y totals.isc.

Cambios

  • Los errores de red al enviar a SUNAT llegan como NETWORK_ERROR en sunat.errorCode.

2026-10-26

  • Primera versión pública de la API v1: 32 operaciones, errores con formato único, webhooks firmados con t=…,v1=… y catálogos tomados del Excel oficial de SUNAT.
Webhooks< Previous

Powered by heyo

On this page

2026-10-282026-10-272026-10-26