Saltar al contenido principal
Developers First - API REST JSON 2026 Latencia Promedio: 47.29 ms (Stripe Benchmark)

La API más rápida de Facturación SRI en Ecuador

Envía un JSON simple y nosotros nos encargamos del esquema XML v1.1.0, firma digital XAdES-BES en memoria, cálculo automático de IVA (soporte PVP incluido y neto), transmisión al SRI y generación del RIDE PDF con latencia de alta concurrencia.

Emite una factura con una sola llamada HTTP

Estructura JSON real de producción. Soporta cálculo dual de precios: productos con PVP incluido y servicios con precio unitario sin IVA.

POST https://api.emite.ec/api/v1/b2b/comprobantes/factura
curl -X POST "https://api.emite.ec/api/v1/b2b/comprobantes/factura" \
  -H "Authorization: Bearer TU_API_KEY_AQUI" \
  -H "Content-Type: application/json" \
  -d '{
  "cliente": {
    "tipo_identificacion": "07",
    "identificacion": "9999999999999",
    "razon_social": "CONSUMIDOR FINAL",
    "direccion": "Quito",
    "email": "consumidorfinal@emite.ec"
  },
  "detalles": [
    {
      "codigo_principal": "PVP-001",
      "descripcion": "Producto con PVP Incluido IVA (USD 10.00 final)",
      "cantidad": 1.0,
      "precio_con_iva": 10.00,
      "impuesto_porcentaje": "15"
    },
    {
      "codigo_principal": "NET-002",
      "descripcion": "Servicio con precio unitario sin IVA",
      "cantidad": 1.0,
      "precio_unitario": 8.70,
      "impuesto_porcentaje": "15"
    }
  ],
  "forma_pago": "01",
  "establecimiento": "001",
  "punto_emision": "001",
  "secuencial": "000000001",
  "ambiente": 1
}'
import requests

url = "https://api.emite.ec/api/v1/b2b/comprobantes/factura"
headers = {
    "Authorization": "Bearer TU_API_KEY_AQUI",
    "Content-Type": "application/json"
}
payload = {
    "cliente": {
        "tipo_identificacion": "07",
        "identificacion": "9999999999999",
        "razon_social": "CONSUMIDOR FINAL",
        "direccion": "Quito",
        "email": "consumidorfinal@emite.ec"
    },
    "detalles": [
        {
            "codigo_principal": "PVP-001",
            "descripcion": "Producto con PVP Incluido IVA (USD 10.00 final)",
            "cantidad": 1.0,
            "precio_con_iva": 10.00,
            "impuesto_porcentaje": "15"
        },
        {
            "codigo_principal": "NET-002",
            "descripcion": "Servicio con precio unitario sin IVA",
            "cantidad": 1.0,
            "precio_unitario": 8.70,
            "impuesto_porcentaje": "15"
        }
    ],
    "forma_pago": "01",
    "establecimiento": "001",
    "punto_emision": "001",
    "secuencial": "000000001",
    "ambiente": 1
}

response = requests.post(url, json=payload, headers=headers)
print(response.json())
<?php

$client = new \GuzzleHttp\Client();
$response = $client->post('https://api.emite.ec/api/v1/b2b/comprobantes/factura', [
    'headers' => [
        'Authorization' => 'Bearer TU_API_KEY_AQUI',
        'Content-Type'  => 'application/json',
    ],
    'json' => [
        'cliente' => [
            'tipo_identificacion' => '07',
            'identificacion' => '9999999999999',
            'razon_social' => 'CONSUMIDOR FINAL',
            'direccion' => 'Quito',
            'email' => 'consumidorfinal@emite.ec',
        ],
        'detalles' => [
            [
                'codigo_principal' => 'PVP-001',
                'descripcion' => 'Producto con PVP Incluido IVA (USD 10.00 final)',
                'cantidad' => 1.0,
                'precio_con_iva' => 10.00,
                'impuesto_porcentaje' => '15',
            ],
            [
                'codigo_principal' => 'NET-002',
                'descripcion' => 'Servicio con precio unitario sin IVA',
                'cantidad' => 1.0,
                'precio_unitario' => 8.70,
                'impuesto_porcentaje' => '15',
            ]
        ],
        'forma_pago' => '01',
        'establecimiento' => '001',
        'punto_emision' => '001',
        'secuencial' => '000000001',
        'ambiente' => 1,
    ]
]);

echo $response->getBody();
const axios = require('axios');

async function emitirFactura() {
  const response = await axios.post('https://api.emite.ec/api/v1/b2b/comprobantes/factura', {
    cliente: {
      tipo_identificacion: '07',
      identificacion: '9999999999999',
      razon_social: 'CONSUMIDOR FINAL',
      direccion: 'Quito',
      email: 'consumidorfinal@emite.ec'
    },
    detalles: [
      {
        codigo_principal: 'PVP-001',
        descripcion: 'Producto con PVP Incluido IVA (USD 10.00 final)',
        cantidad: 1.0,
        precio_con_iva: 10.00,
        impuesto_porcentaje: '15'
      },
      {
        codigo_principal: 'NET-002',
        descripcion: 'Servicio con precio unitario sin IVA',
        cantidad: 1.0,
        precio_unitario: 8.70,
        impuesto_porcentaje: '15'
      }
    ],
    forma_pago: '01',
    establecimiento: '001',
    punto_emision: '001',
    secuencial: '000000001',
    ambiente: 1
  }, {
    headers: {
      'Authorization': 'Bearer TU_API_KEY_AQUI',
      'Content-Type': 'application/json'
    }
  });

  console.log(response.data);
}

emitirFactura();
Ejemplo canónico: emisión sincrónica a Consumidor Final con desglose de IVA al 15%. HTTP 200 OK | Retorno: XML firmado, clave de acceso SRI y PDF RIDE
Seguridad y Autenticación

Gestión Segura de tu API Key

Diseñada bajo principios de menor privilegio y cumplimiento ISO 27001 para resguardar tus operaciones tributarias.

Autenticación Bearer

Cada petición requiere la cabecera estándar HTTP:

Authorization: Bearer TU_API_KEY
Generable en 1 clic desde el panel de control de EMITE.

Entornos Aislados

Controla el entorno directamente desde el payload JSON sin alterar credenciales complejas:

  • "ambiente": 1 Pruebas SRI / Sandbox gratis
  • "ambiente": 2 Producción fiscal oficial
Sin costo por timbres de prueba en ambiente 1.

Mejores Prácticas

Almacena tu clave en variables de entorno .env. Nunca la expongas en repositorios públicos.

En caso de compromiso accidental, revócala inmediatamente desde tu panel para emitir una nueva sin interrupción de servicio.

Cumplimiento de estándares de seguridad OWASP.

Endpoints de la API REST

Mapeo completo de operaciones B2B sobre comprobantes tributarios del SRI:

POST /api/v1/b2b/comprobantes/factura
Emisión y autorización sincrónica de Factura (01)
GET /api/v1/b2b/comprobantes
Listado de comprobantes autorizados y emitidos
GET /api/v1/b2b/comprobantes/{id}
Consulta de estado y clave de acceso por ID
GET /api/v1/b2b/catalogos
Catálogos SRI: identificación, formas de pago, IVA
POST /api/v1/b2b/clientes
Creación y validación B2B de clientes
POST /api/v1/b2b/productos
Creación y catálogo de productos / servicios
GET /api/v1/comprobantes/{id}/pdf
Descarga directa del RIDE oficial en PDF
GET /api/v1/comprobantes/{id}/xml
Descarga del XML firmado digitalmente XAdES-BES
POST /api/v1/webhooks
Suscripción de endpoints a notificaciones push en tiempo real

Arquitectura de Alto Rendimiento

Construida con FastAPI y Python 3.12 para soportar picos de alta concurrencia con 99.9% de uptime.

Firma XAdES-BES en Memoria

Firma criptográfica sin cuellos de botella de disco. Tu archivo .p12 se procesa en memoria RAM con cifrado AES-256 en bóveda aislada con latencias desde 35.86 ms.

Webhooks Asíncronos

No bloquees tus hilos esperando la respuesta del SRI. Suscribe tu endpoint y te notificamos en cuanto el SRI autorice el comprobante con reintentos automáticos.

Sandbox Ilimitado

Prueba sin límites en el ambiente de pruebas del SRI (ambiente: 1) antes de pasar a producción sin necesidad de ingresar tarjetas de crédito.

Preguntas Frecuentes para Desarrolladores

Resolución de dudas técnicas sobre integración, rendimiento de red y especificación tributaria.

¿Cómo funciona la autenticación con API Key en la API de EMITE?

La API utiliza tokens de portador estándar (Authorization: Bearer <TU_API_KEY>) generables al instante desde el panel de control con permisos de lectura y emisión, y capacidad de revocación inmediata.

¿Cuál es el tiempo de respuesta y rendimiento de la API ante el SRI?

La API opera con un tiempo mínimo de 35.86 ms, promedio sostenido de 47.29 ms y máximo en régimen de 70.64 ms, alineándose con el benchmark global FinTech de Stripe (30–60 ms) gracias a su arquitectura en memoria.

¿Cómo soporta la API el cálculo de precios con y sin IVA?

El JSON de EMITE admite tanto precio_con_iva (ideal para eCommerce B2C y puntos de venta con PVP final) como precio_unitario (base neta sin impuestos para B2B), calculando automáticamente las bases imponibles y el IVA reglamentario del 15% o 5%.

¿Qué comprobantes permite emitir la API de EMITE?

Permite emitir los 6 comprobantes reglamentarios del SRI: Facturas (01), Liquidaciones de compra (03), Notas de crédito (04), Notas de débito (05), Guías de remisión (06) y Comprobantes de retención (07).

¿Cómo maneja la API los tiempos de espera del SRI y webhooks?

EMITE procesa la firma XAdES-BES en memoria en menos de 50 ms y ofrece soporte para Webhooks asíncronos. En lugar de bloquear la petición de tu backend esperando la respuesta de los servidores del SRI, puedes configurar una URL de webhook para recibir la notificación push inmediata de autorización o rechazo.

¿Qué formato de archivo de firma electrónica se necesita?

El certificado debe estar en formato PKCS#12 (.p12 o .pfx). Puedes cargarlo mediante el endpoint de certificados o desde el dashboard de EMITE con cifrado AES-256 en memoria.

¿Dónde encuentro la especificación OpenAPI / Swagger completa?

La especificación interactiva y schemas JSON completos están disponibles públicamente en developers.emite.ec, donde puedes probar cada endpoint en vivo.

EMITE

Normalmente responde en unos minutos

¡Hola! ¿En qué podemos ayudarte con tu facturación electrónica?