Preguntas frecuentes
Lo que todo el mundo pregunta
¿Cómo descargo el XML, PDF y CDR de un comprobante desde la API de SUNAT?
Se consulta el endpoint consultacpe de api-cpe.sunat.gob.pe
indicando RUC del emisor, tipo de documento, serie, correlativo y el origen de la
consulta. El sufijo de la URL define el archivo: /01 para PDF,
/02 para XML y /03 para CDR. Sin sufijo devuelve la metadata
en JSON, ya parseada.
Antes hay que generar un token OAuth2 y tener habilitado el recurso
consultacpe en la aplicación registrada — ese segundo paso es el que
traba a casi todo el mundo.
¿Por qué la API de SUNAT me devuelve error 401 en consultacpe?
Porque tu aplicación registrada no tiene habilitado el recurso
/v1/contribuyente/consultacpe. El token se genera bien, pero no incluye
ese permiso, así que cada consulta rebota.
Se activa con una petición PUT al endpoint de control de acceso de SUNAT.
Ojo con un detalle que cuesta caro: ese PUT reemplaza la lista
completa de recursos, no agrega. Hay que reenviar también los que ya tenías o
los pierdes.
¿Por qué no se genera el token OAuth2 de SUNAT?
El error más común está en el campo username: SUNAT espera el RUC y el
usuario SOL concatenados, sin separador ni espacios. Un RUC
20123456789 con usuario MODDATOS se envía como
20123456789MODDATOS.
El segundo error frecuente es el scope: tiene que ser el host de la API
que vas a consumir. El token de comprobantes no sirve para el SIRE.
¿Necesito credenciales especiales de SUNAT?
No. Solo el RUC, usuario y clave SOL de la empresa. Con eso obtienes el
client_id y client_secret desde el propio portal de SUNAT,
en la opción Credenciales de API. No hay trámites ni convenios previos.
¿La API de SUNAT tiene costo por consulta?
No. Las APIs oficiales de SUNAT no cobran por descarga. Los servicios de terceros que
revenden este acceso sí cobran créditos por cada archivo, y además reciben la clave SOL
de tus clientes en sus propios servidores.
¿Por qué la API de SUNAT devuelve error 500 de forma intermitente?
Es comportamiento del propio servicio, no de tu código. En pruebas con 720 peticiones
reales, SUNAT devolvió 500 en cerca del 50% de los casos,
con la misma tasa usando una petición a la vez que diez en paralelo.
Con una política de reintentos adecuada se recupera el 100% de las descargas. Y algo
importante para tu diseño: un 500 no significa que el
comprobante no exista.
¿Puedo consultar comprobantes de cualquier RUC con un solo token?
No. El token va atado al RUC del contribuyente. El parámetro de origen que en teoría
permite consultar cualquier comprobante devuelve 404 incluso con documentos
que sí existen — está probado y documentado. Cada empresa necesita sus propias
credenciales.
¿En qué lenguaje de programación está?
En ninguno y en todos. Es una colección de Postman: peticiones HTTP puras que puedes
exportar a PHP, Node, Python, C#, Java o lo que uses. Postman te genera el código de
cada petición en el lenguaje que elijas.
¿Las declaraciones y el formulario 621 también se automatizan?
Parcialmente, y el material es honesto al respecto. Ese módulo de SUNAT usa un
mecanismo de sesión distinto que no se puede replicar con el token normal. Está
explicado con la razón técnica exacta y qué alternativas quedan.