Saltar al contenido
Factuplan
Integración SRI Ecuador

API SRI para facturación electrónica

Capa REST sobre los webservices SOAP del SRI Ecuador. Esquema offline vigente, los 3 modos A/B/C, transmisión inmediata 2026 y manejo estructurado de errores SRI. Sin armar XMLs ni firmar XAdES-BES por tu cuenta.

Esquema offline SRI Modos A, B, C Transmisión inmediata 2026 Sandbox sin tarjeta
factura-al-sri.ts
import { Factuplan } from "factuplan"

const factuplan = new Factuplan(process.env.FACTUPLAN_API_KEY!, {
  ruc: "0993378150001",
})

try {
  const factura = await factuplan.invoices.create({
    customer: {
      identificationType: "RUC",
      identification: "0950194407001",
      legalName: "Cliente Demo S.A.",
      email: "facturas@cliente.ec",
    },
    items: [
      {
        description: "Servicio de consultoría",
        quantity: 1,
        unitPrice: 500,
        taxType: "IVA_RATE",
        tax: 15,
      },
    ],
    sendEmail: true,
  })

  console.log("Clave de acceso SRI:", factura.accessKey) // 49 dígitos
  console.log("Estado SRI:", factura.status) // AUTHORIZED
} catch (err) {
  if (err instanceof FactuplanSRIError) {
    // Error específico del SRI con código del catálogo
    console.error("SRI rechazó:", err.sriCode, err.sriMessage)
    // Ej: { sriCode: "43", sriMessage: "CLAVE DE ACCESO REGISTRADA" }
  }
}

Por qué usar API de Factuplan en lugar de integrar directo con el SRI

La API REST del SRI no existe — el SRI expone webservices SOAP con XMLs firmados XAdES-BES. Integrar directo es desarrollo de 2-6 meses con un team experto. Factuplan te entrega esa capa.

  • Esquema offline SRI desde 2022

    Implementación completa del esquema offline vigente desde 2022 con la Ficha Técnica v2.32 (noviembre 2025). Generación de XML, firma XAdES-BES con tu P12, envío al SRI y manejo de respuestas — todo manejado por la API.

  • Modos A, B y C del SRI

    Soporte de los 3 modos definidos por el SRI: Modo A (Factuplan firma + autoriza + envía email), Modo B (tú generas XML, nosotros firmamos y autorizamos), Modo C (tú gestionas transmisión al SRI). Misma API key para los 3.

  • Transmisión inmediata 2026

    Cumple por defecto con la Resolución NAC-DGERCGC25-00000017: todos los comprobantes (facturas, NC, ND, retenciones, guías) se transmiten al SRI en tiempo real, antes de iniciar la operación.

  • Manejo estructurado de errores SRI

    Respuestas JSON con el código de error del catálogo SRI (sriCode), mensaje, observaciones detalladas y posibles correcciones. Sin parsear respuestas SOAP heterogéneas como con la API directa del SRI.

  • Firma electrónica gestionada

    Carga tu P12 una vez en el dashboard de Factuplan. La firma se almacena cifrada con AES-256-GCM aislada por cuenta. Cada XML enviado al SRI se firma automáticamente sin que tu app vea el certificado.

  • Clave de acceso de 49 dígitos generada

    Factuplan calcula la clave de acceso correctamente con dígito verificador módulo 11. Sin errores 43 del SRI por claves mal generadas, sin código aleatorio repetido, sin estructuras incorrectas.

Operaciones SRI soportadas

Cobertura completa del catálogo del SRI Ecuador. Todos los comprobantes electrónicos + ciclo de vida (emisión, consulta, anulación).

MétodoEndpointOperación
POST/v1/developer/invoicesEmitir factura electrónica al SRI
POST/v1/developer/credit-notesEmitir nota de crédito (con documento sustento vinculado)
POST/v1/developer/debit-notesEmitir nota de débito
POST/v1/developer/waybillsEmitir guía de remisión con transmisión inmediata 2026
POST/v1/developer/withholdingsEmitir comprobante de retención
POST/v1/developer/purchase-liquidationsEmitir liquidación de compra de bienes y servicios
GET/v1/developer/invoices/:idObtener estado SRI de un comprobante (PPR, AUT, RECHAZADO)
POST/v1/developer/invoices/:id/voidAnular factura emitiendo NC del 100% del monto (no aplica a consumidor final desde 2026)

Referencia técnica completa con schemas, payloads y respuestas en /docs/api.

Validaciones SRI manejadas automáticamente

La API valida localmente lo que el SRI rechazaría y devuelve errores estructurados cuando aplica.

Validaciones locales antes de enviar al SRI

  • Dígito verificador del RUC del cliente (módulo 10/11 según tipo)
  • Tipo de identificación correcto (RUC=13 dígitos, cédula=10)
  • Tarifas de IVA del catálogo SRI (0%, 5%, 8%, 15%, exento, no objeto)
  • Códigos ICE e IRBPNR del catálogo según producto
  • Cálculo correcto del IVA en cascada con ICE/IRBPNR
  • Tope consumidor final según régimen (USD 50 / USD 200 RIMPE)
  • Secuenciales consecutivos sin saltos ni duplicados
  • Clave de acceso de 49 dígitos con módulo 11 correcto

Errores del SRI manejados

  • Error 35: firma electrónica inválida (certificado vencido)
  • Error 39: firmas no coinciden (RUC del certificado distinto al emisor)
  • Error 43: clave de acceso no cumple con formato (módulo 11 mal)
  • Error 45: datos de emisor incorrectos (establecimiento no registrado)
  • Error 50: secuencial duplicado (ya emitido antes)
  • Error 52: comprobante referenciado no existe (NC sin factura válida)
  • Error 60: establecimiento cerrado en el SRI
  • Error 70: XML no cumple el schema XSD del SRI

Estados de comprobantes en el SRI

Los 4 estados posibles bajo el esquema offline. Tu API recibe el estado actual en cada response y vía webhooks cuando cambia.

  • PPR

    En procesamiento

    El SRI recibió el XML y está validando. Máximo legal 24 horas; típicamente 2-5 segundos en horarios normales.

  • AUT

    Autorizado

    El SRI validó todo y el comprobante quedó registrado con número de autorización = clave de acceso de 49 dígitos.

  • REJECTED

    Rechazado

    El SRI rechazó por incumplir validaciones (firma, datos, secuencial, etc.). Debe corregirse y reenviarse con secuencial nuevo.

  • RETURNED

    Devuelto

    El SRI no pudo procesar el XML por errores estructurales (XML mal formado, schema incorrecto). Igual que rechazado para efectos prácticos.

¿Estás evaluando si Factuplan API te conviene?

Esta página cubre el ángulo integración técnica con el SRI. Para la propuesta comercial general (pricing, casos de uso, comparativa con otras APIs), revisa la landing comercial de la API. Para la referencia técnica detallada de cada endpoint, abre las docs.

FAQ

Preguntas frecuentes

¿No encuentras tu respuesta? Escríbenos.

¿Qué hace exactamente la API de Factuplan con el SRI?

Factuplan API es una capa sobre los webservices SOAP del SRI Ecuador que simplifica la integración a una API REST moderna con JSON. Internamente: 1) Recibe tu request JSON con datos de la operación; 2) Valida datos localmente (dígito verificador RUC, tarifas IVA, tope consumidor final, etc.); 3) Genera el XML según la Ficha Técnica del SRI v2.32; 4) Firma el XML con XAdES-BES usando tu certificado P12 cargado en el workspace; 5) Envía al webservice SOAP del SRI (recepción + autorización); 6) Parsea la respuesta y la devuelve en JSON estructurado con el código de error del SRI si aplica; 7) Genera el RIDE PDF y envía email al cliente si lo configuras. Todo el proceso es de 2-5 segundos típicos.

¿Cuál es la diferencia entre integrar directamente con el SRI vs usar Factuplan API?

Integrar directo con el SRI requiere: 1) Cliente SOAP en tu stack (XML, WSDL, namespaces); 2) Generación manual de XMLs respetando schemas XSD del SRI y la Ficha Técnica v2.32; 3) Firma XAdES-BES con librerías de criptografía (extraer P12, firmar con SHA-256, agregar timestamp, validar canónicamente); 4) Cálculo manual de la clave de acceso de 49 dígitos con módulo 11; 5) Manejo de errores SOAP con códigos del SRI mal documentados; 6) Reintentos cuando el SRI cae; 7) Generación del RIDE PDF y envío de email. Es desarrollo de 2-6 meses con un team experto. Factuplan API te entrega todo eso en una API REST estándar que llamas desde cualquier lenguaje en minutos.

¿Cuáles son los modos A, B y C del SRI?

Son las 3 formas de operar definidas por el SRI: Modo A (recomendado, default en Factuplan): el sistema de facturación electrónica genera el XML, lo firma con tu P12, lo autoriza ante el SRI y genera el RIDE PDF — flujo end-to-end automatizado. Modo B: tú generas el XML por tu cuenta (útil si tu ERP ya tiene un generador de XMLs SRI) y se lo envías a Factuplan, que lo firma y autoriza. Modo C: tú generas Y firmas el XML con tu propia integración criptográfica, y Factuplan solo gestiona la transmisión al SRI. Los 3 modos usan la misma API key y se eligen por endpoint o parámetro según convenga a tu arquitectura. La mayoría de integraciones usan Modo A porque es más simple.

¿Qué pasa si el SRI está caído y necesito facturar?

El SRI define un mecanismo de contingencia: emites el comprobante con tipo de emisión 2 (en lugar de 1 = normal) en la clave de acceso, entregas el RIDE preliminar al cliente, y cuando el SRI vuelve, reenvías el XML para autorización formal. Factuplan API maneja esto automáticamente: si detecta que el SRI no responde, activa modo contingencia, devuelve el comprobante en estado PENDING con la clave de acceso de 49 dígitos generada, y cuando el SRI vuelve a estar disponible, reenvía la cola pendiente. Tu app puede operar normalmente sin bloquear ventas durante caídas del SRI. Recibes el evento invoice.authorized vía webhook cuando el SRI finalmente autoriza.

¿Cómo verifico el estado SRI de un comprobante después de emitirlo?

Tres formas: 1) Asincrónica via webhooks: configuras tu endpoint en Dashboard → Developer → Webhooks y recibes invoice.authorized o invoice.rejected con la respuesta completa del SRI cuando esté lista. Es lo recomendado para producción. 2) Sincrónica via GET /v1/developer/invoices/:id que retorna el estado actual y, si fue rechazado, el sriCode y sriMessage. 3) Manual con la herramienta /herramientas/verificar-factura-sri usando la clave de acceso de 49 dígitos. El estado AUT confirma que el SRI registró el comprobante exitosamente; PPR es transitorio (esperando autorización); REJECTED/RETURNED requieren corregir y reenviar con secuencial nuevo.

¿Qué errores del SRI maneja la API automáticamente?

Factuplan API valida localmente antes de enviar al SRI para evitar errores comunes: dígito verificador del RUC del cliente (rechazo evitado), tarifa IVA fuera de catálogo, secuencial duplicado (detectado contra tu histórico), tope de consumidor final excedido, formato de clave de acceso incorrecto. Para errores del SRI que llegan en la respuesta (firma vencida, certificado emitido para otro RUC, datos del establecimiento desactualizados, etc.), la API devuelve un FactuplanSRIError con sriCode del catálogo SRI y sugerencia de corrección. No te rechaza silenciosamente — siempre sabes exactamente qué pasó y cómo arreglarlo.

¿Puedo emitir todos los comprobantes electrónicos del SRI?

Sí. La API soporta los 6 tipos de comprobantes electrónicos definidos por el SRI: facturas (código 01), liquidaciones de compra de bienes y servicios (03), notas de crédito (04), notas de débito (05), guías de remisión (06) y comprobantes de retención (07). Cada tipo tiene su endpoint REST dedicado (/v1/developer/invoices, /credit-notes, /debit-notes, /waybills, /withholdings, /purchase-liquidations) con el payload específico que define la Ficha Técnica del SRI. Todos pasan por el mismo flujo de firma y autorización, con la misma autorización oficial del SRI y la misma clave de acceso de 49 dígitos.

¿La API funciona en sandbox sin firma electrónica real?

Sí. Con una API key de pruebas (prefijo ak_test_*) la API genera comprobantes ficticios que NO se envían al SRI real — la firma se simula y la 'autorización' se simula con clave de acceso ficticia. Los comprobantes de sandbox se eliminan automáticamente cada hora para mantener el ambiente limpio. Esto permite que developers prueben la integración completa sin necesidad de obtener firma electrónica P12 ni RUC activo. Cuando estés listo para producción, cambias la API key por ak_live_*, cargas tu firma real en el dashboard y los comprobantes empiezan a enviarse al SRI real con autorización oficial.

Empieza a facturar electrónicamente hoy

1 mes gratis al comprar tu firma electrónica con FirmaOK. Sin tarjeta de crédito.

Empresas activas
+1.000
Calificación clientes
4.9/5
Tiempo de onboarding
<1 día
Disponibilidad SRI
24/7
  • Configuración en minutos
  • Cancela cuando quieras
  • Soporte en español ecuatoriano