SUNAT (beta)
Consulta por API o MCP los períodos SIRE y las propuestas de compras y ventas de una empresa peruana conectada a Emisso.
Con la conexión de SUNAT, tu software o tu agente lee los datos tributarios de una empresa peruana ya guardados en Emisso: el catálogo de períodos SIRE y las propuestas de compras (RCE) y de ventas e ingresos (RVIE) de cada mes. Las consultas no llaman a SUNAT: responden desde la última sincronización.
Qué datos trae
| Alcance | Herramienta | Qué devuelve |
|---|---|---|
periodos | sunat_beta.periodos.consultar | Los períodos de RCE y RVIE con su estado en SUNAT |
compras | sunat_beta.compras.consultar | Los comprobantes de la propuesta de compras (RCE) de un mes |
ventas | sunat_beta.ventas.consultar | Los comprobantes de la propuesta de ventas e ingresos (RVIE) de un mes |
Son las propuestas del SIRE: no acreditan un registro presentado ni una declaración tributaria. Emisso no acepta propuestas, no presenta libros ni emite comprobantes.
Antes de empezar
- Conecta tu empresa. El dueño o un administrador elige SUNAT en Conexiones y guarda el acceso de la empresa. El panel muestra «Primera sincronización en cola» mientras se preparan los datos.
- Consulta los datos sincronizados. Una vez que se complete la primera sincronización, revisa los datos desde el detalle de la conexión.
- Permiso en tu clave o en tu agente. Agrega el permiso SUNAT (beta) (
sunat_beta:read) a tu clave de API o a tu agente. Conectar SUNAT no cambia los permisos de las claves y agentes que ya existen. - El ID de la conexión. Cópialo desde el detalle de la conexión: empieza con
conn_.
Consultar por API
Cada herramienta es un POST a https://connect.emisso.ai/api/v1/tools/<herramienta>/execute. La clave
va en Authorization, la conexión en la cabecera X-Connect-Connection y los argumentos dentro de input.
Las compras de septiembre de 2026:
curl -X POST https://connect.emisso.ai/api/v1/tools/sunat_beta.compras.consultar/execute \
-H "Authorization: Bearer $EMISSO_CONNECT_API_KEY" \
-H "X-Connect-Connection: $EMISSO_CONNECTION_ID" \
-H "Content-Type: application/json" \
-d '{"input":{"periodo":"2026-09","limite":100}}'{
"data": {
"documentos": [
{
"origen": "propuesta",
"libro": "rce",
"periodo": "2026-09",
"tipoIdentificadorEmisor": "6",
"identificadorEmisor": "20000000001",
"tipoComprobante": "01",
"serie": "F001",
"numero": "00000123",
"fechaEmision": "2026-09-03",
"tipoIdentificadorReceptor": "6",
"identificadorReceptor": "20000000002",
"moneda": null,
"monedaOriginal": "PEN",
"baseMonetaria": "contabilidad_sire",
"tipoCambio": null,
"total": "1180"
}
],
"cursor": null,
"sincronizacion": {
"sincronizadoEn": "2026-10-30T21:00:00.000Z",
"completo": true,
"cantidad": 1
}
},
"meta": {
"request_id": "req_…",
"tool_id": "sunat_beta.compras.consultar",
"plane": "action",
"latency_ms": 31,
"audit_status": "recorded"
}
}Para las ventas, cambia compras por ventas. Los períodos se consultan sin mes, con
sunat_beta.periodos.consultar y, si quieres, {"libro":"rvie"} o {"libro":"rce"}.
Cada página trae hasta limite filas, entre 1 y 500. Si cursor no viene en null, repite la llamada con
ese cursor dentro de input, sin modificarlo, hasta que vuelva en null.
Consultar por MCP
Tu agente encuentra las herramientas de SUNAT con search_docs y las ejecuta con execute, siempre con el
connectionId de la empresa:
{
"tool": "sunat_beta.ventas.consultar",
"params": { "periodo": "2026-09", "limite": 100 },
"connectionId": "conn_…"
}search_docs muestra las herramientas de SUNAT cuando están disponibles para tu organización. Si tu agente
las encuentra pero execute responde scope_not_granted, al agente le falta el permiso SUNAT (beta).
Cómo leer la respuesta
sincronizacionennull. Todavía no hay una lectura guardada para ese mes. Una lista vacía connullno significa cero comprobantes.completo: true. El mes se leyó completo;cantidades el total de filas antes de paginar. Una lectura completa con cero filas sí confirma un mes sin comprobantes.- Montos como texto.
totales un decimal en texto, en la moneda contable del SIRE. Conviértelo con una librería decimal si necesitas exactitud.monedapuede venir ennullymonedaOriginales la del comprobante: no sumes importes de monedas distintas o desconocidas. - Mes de la propuesta.
periodoes el mes de la propuesta yfechaEmisionla del comprobante. En compras, un comprobante de un mes anterior puede figurar en la propuesta del mes siguiente. - Identidad del comprobante. Un comprobante se identifica por su emisor (
tipoIdentificadorEmisoreidentificadorEmisor),tipoComprobante,serieynumero. En la liquidación de cobranza de aduanas (54), la serie es el código de la aduana yanioAduanacompleta la identidad, porque su número se reinicia cada año.
Comprobantes incluidos
| Tipo | Comprobante | Libros |
|---|---|---|
01 | Factura | Compras y ventas |
03 | Boleta de venta | Compras y ventas |
07 | Nota de crédito | Compras y ventas |
08 | Nota de débito | Compras y ventas |
54 | Liquidación de cobranza de aduanas | Compras |
Si un mes trae un comprobante que no está en esta tabla, o boletas informadas como rango, Emisso no publica
ese libro incompleto: la consulta conserva la última lectura completa, o sincronizacion: null si no la
hay, y el equipo de Emisso revisa el caso para incorporarlo.
Sincronización
Emisso sincroniza cada día el mes en curso y, hasta el día 20, también el mes anterior. Si necesitas otro mes, pídeselo al equipo de Emisso.
Errores frecuentes
| Código | Qué hacer |
|---|---|
scope_not_granted | Agrega el permiso SUNAT (beta) a la clave de API o al agente que hace la llamada. |
connection_not_found | Revisa el connectionId o la cabecera X-Connect-Connection: debe ser la conexión de SUNAT. |
alcance_not_enabled | El alcance no está habilitado en esa conexión. Escríbele al equipo de Emisso. |
El detalle de cada herramienta está en la referencia de SUNAT (beta).