Connect

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

AlcanceHerramientaQué devuelve
periodossunat_beta.periodos.consultarLos períodos de RCE y RVIE con su estado en SUNAT
comprassunat_beta.compras.consultarLos comprobantes de la propuesta de compras (RCE) de un mes
ventassunat_beta.ventas.consultarLos 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

  1. 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.
  2. Consulta los datos sincronizados. Una vez que se complete la primera sincronización, revisa los datos desde el detalle de la conexión.
  3. 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.
  4. 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

  • sincronizacion en null. Todavía no hay una lectura guardada para ese mes. Una lista vacía con null no significa cero comprobantes.
  • completo: true. El mes se leyó completo; cantidad es el total de filas antes de paginar. Una lectura completa con cero filas sí confirma un mes sin comprobantes.
  • Montos como texto. total es un decimal en texto, en la moneda contable del SIRE. Conviértelo con una librería decimal si necesitas exactitud. moneda puede venir en null y monedaOriginal es la del comprobante: no sumes importes de monedas distintas o desconocidas.
  • Mes de la propuesta. periodo es el mes de la propuesta y fechaEmision la 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 (tipoIdentificadorEmisor e identificadorEmisor), tipoComprobante, serie y numero. En la liquidación de cobranza de aduanas (54), la serie es el código de la aduana y anioAduana completa la identidad, porque su número se reinicia cada año.

Comprobantes incluidos

TipoComprobanteLibros
01FacturaCompras y ventas
03Boleta de ventaCompras y ventas
07Nota de créditoCompras y ventas
08Nota de débitoCompras y ventas
54Liquidación de cobranza de aduanasCompras

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ódigoQué hacer
scope_not_grantedAgrega el permiso SUNAT (beta) a la clave de API o al agente que hace la llamada.
connection_not_foundRevisa el connectionId o la cabecera X-Connect-Connection: debe ser la conexión de SUNAT.
alcance_not_enabledEl 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).

En esta página