Ejemplos de Facturas (Factura) - Tipo `01`

Este documento proporciona ejemplos completos de solicitudes de facturas para diferentes tipos de clientes y escenarios.

Tabla de Contenidos

Métodos de Pago

Los siguientes códigos son los métodos de pago válidos según el SRI:

> Nota: Solo se aceptan códigos activos. El sistema valida automáticamente que el código de forma de pago exista y esté activo en la tabla de métodos de pago del SRI.

Tipos de Cliente

Tipos de Identificación (`tipoIdentificacion`)

CódigoMétodo de PagoDescripción
------------------------------------
01SIN UTILIZACIÓN DEL SISTEMA FINANCIEROPago en efectivo, cheque u otro medio sin usar sistema financiero
15COMPENSACIÓN DE DEUDASCompensación de deudas con el mismo proveedor
16TARJETA DE DÉBITOPago con tarjeta de débito
17DINERO ELECTRÓNICOPago con dinero electrónico
18TARJETA PREPAGOPago con tarjeta prepago
19TARJETA DE CRÉDITOPago con tarjeta de crédito
20OTROS CON UTILIZACIÓN DEL SISTEMA FINANCIEROOtros medios usando el sistema financiero
21ENDOSO DE TÍTULOSEndoso de títulos valores
CódigoDescripciónEjemplo de Documento
-------------------------------------
04RUC (Empresa)1712345678001
05Cédula (Persona natural)0912345678
06Pasaporte (Extranjero)AA123456
07Ventas a consumidor final9999999999999
08Identificación del exteriorEXT123456


Ejemplo 1: Cliente Identificado (Cédula)

Escenario: Cliente regular con cédula de identidad

POST /api/document
Content-Type: application/json

{
  "ruc": "0707012605001",
  "tipo": "01",
  "id_externo": "INV-2025-001",
  "factura": {
    "fecha": "07/12/2025",
    "establecimiento": "001",
    "puntoEmision": "001",
    "secuencial": "000012343",
    "descuento": 0,
    "propina": 0,
    "total": 115.00,
    "cliente": {
      "nombre": "Diego Jimenez",
      "tipoIdentificacion": "05",
      "documento": "0912345678",
      "telefono": "0999999999",
      "correo": "[email protected]",
      "direccion": "Av. Siempre Viva"
    }
  },
  "detalles": [
    {
      "codigoPrincipal": "P-001",
      "descripcion": "Producto A",
      "cantidad": 2,
      "precioUnitario": 50.00,
      "descuento": 0,
      "precioTotalSinImpuesto": 100.00,
      "impuestos": [
        { 
          "codigo": "2", 
          "codigoPorcentaje": "4", 
          "tarifa": 15, 
          "baseImponible": 100.00, 
          "valor": 15.00 
        }
      ]
    }
  ],
  "pagos": [
    { 
      "formaPago": "01", 
      "total": 115.00, 
      "plazo": 0, 
      "unidadTiempo": "dias" 
    }
  ],
  "notificaciones": {
    "email": "[email protected]",
    "webhook_url": "https://miapp.com/webhooks/sri"
  }
}

Respuesta Esperada

{
  "status": "ok",
  "code": 200,
  "message": "Document created successfully",
  "data": {
    "id": 1,
    "company_id": 1,
    "external_id": "INV-2025-001",
    "document_type": "01",
    "access_key": "0712202501070701260050010010000123431234567890",
    "series": "001001",
    "sequential": "000012343",
    "status": "AUTHORIZED",
    "authorization_number": "0712202501070701260050010010000123431234567890",
    "authorization_date": "07/12/2025 10:30:00",
    "issue_date": "2025-12-07",
    "created_at": "2025-12-07T10:00:00.000000Z",
    "updated_at": "2025-12-07T10:30:00.000000Z"
  }
}


Ejemplo 2: Cliente Identificado (RUC)

Escenario: Cliente empresarial con RUC

POST /api/document
Content-Type: application/json

{
  "ruc": "0707012605001",
  "tipo": "01",
  "id_externo": "INV-2025-002",
  "factura": {
    "fecha": "07/12/2025",
    "establecimiento": "001",
    "puntoEmision": "001",
    "secuencial": "000012344",
    "descuento": 10.00,
    "propina": 0,
    "total": 207.00,
    "cliente": {
      "nombre": "CORPORACIÓN EJEMPLO S.A.",
      "tipoIdentificacion": "04",
      "documento": "1712345678001",
      "telefono": "042000000",
      "correo": "[email protected]",
      "direccion": "Av. Principal #100"
    }
  },
  "detalles": [
    {
      "codigoPrincipal": "SVC-001",
      "descripcion": "Servicio de Consultoría",
      "cantidad": 1,
      "precioUnitario": 150.00,
      "descuento": 10.00,
      "precioTotalSinImpuesto": 150.00,
      "impuestos": [
        { 
          "codigo": "2", 
          "codigoPorcentaje": "2", 
          "tarifa": 12, 
          "baseImponible": 150.00, 
          "valor": 18.00 
        }
      ]
    },
    {
      "codigoPrincipal": "SVC-002",
      "descripcion": "Desarrollo de Software",
      "cantidad": 1,
      "precioUnitario": 50.00,
      "descuento": 0,
      "precioTotalSinImpuesto": 50.00,
      "impuestos": [
        { 
          "codigo": "2", 
          "codigoPorcentaje": "2", 
          "tarifa": 12, 
          "baseImponible": 50.00, 
          "valor": 6.00 
        }
      ]
    }
  ],
  "pagos": [
    { 
      "formaPago": "20", 
      "total": 207.00, 
      "plazo": 30, 
      "unidadTiempo": "dias" 
    }
  ],
  "notificaciones": {
    "email": "[email protected]",
    "webhook_url": "https://miapp.com/webhooks/sri"
  }
}


Ejemplo 3: Consumidor Final Genérico

Escenario: Venta a consumidor final sin identificación específica

POST /api/document
Content-Type: application/json

{
  "ruc": "0707012605001",
  "tipo": "01",
  "id_externo": "INV-2025-003",
  "factura": {
    "fecha": "07/12/2025",
    "establecimiento": "001",
    "puntoEmision": "001",
    "secuencial": "000012345",
    "descuento": 0,
    "propina": 5.00,
    "total": 120.00,
    "cliente": {
      "nombre": "CONSUMIDOR FINAL",
      "tipoIdentificacion": "07",
      "documento": "9999999999999",
      "direccion": "Sin dirección"
    }
  },
  "detalles": [
    {
      "codigoPrincipal": "PROD-001",
      "descripcion": "Varios artículos de tienda",
      "cantidad": 5,
      "precioUnitario": 20.00,
      "descuento": 0,
      "precioTotalSinImpuesto": 100.00,
      "impuestos": [
        { 
          "codigo": "2", 
          "codigoPorcentaje": "4", 
          "tarifa": 15, 
          "baseImponible": 100.00, 
          "valor": 15.00 
        }
      ]
    }
  ],
  "pagos": [
    { 
      "formaPago": "01", 
      "total": 120.00, 
      "plazo": 0, 
      "unidadTiempo": "dias" 
    }
  ],
  "notificaciones": {}
}

⚠️ Nota Importantee: El consumidor final (9999999999999) NO debe usarse con operaciones anulables. Si necesitas anular, usa un tipo de identificación válido.


Ejemplo 4: Cliente Extranjero

Escenario: Cliente con identificación del exterior

POST /api/document
Content-Type: application/json

{
  "ruc": "0707012605001",
  "tipo": "01",
  "id_externo": "INV-2025-004",
  "factura": {
    "fecha": "07/12/2025",
    "establecimiento": "001",
    "puntoEmision": "001",
    "secuencial": "000012346",
    "descuento": 0,
    "propina": 0,
    "total": 230.00,
    "cliente": {
      "nombre": "JOHN SMITH",
      "tipoIdentificacion": "06",
      "documento": "AB123456789",
      "correo": "[email protected]",
      "direccion": "Av. tourist #50, Ecuador"
    }
  },
  "detalles": [
    {
      "codigoPrincipal": "TUR-001",
      "descripcion": "Tour package",
      "cantidad": 1,
      "precioUnitario": 200.00,
      "descuento": 0,
      "precioTotalSinImpuesto": 200.00,
      "impuestos": [
        { 
          "codigo": "2", 
          "codigoPorcentaje": "0", 
          "tarifa": 0, 
          "baseImponible": 200.00, 
          "valor": 0.00 
        }
      ]
    }
  ],
  "pagos": [
    { 
      "formaPago": "15", 
      "total": 230.00, 
      "plazo": 0, 
      "unidadTiempo": "dias" 
    }
  ],
  "notificaciones": {
    "email": "[email protected]"
  }
}


Ejemplo 5: Factura con Múltiples Formas de Pago

Escenario: Factura con combinación de pagos

POST /api/document
Content-Type: application/json

{
  "ruc": "0707012605001",
  "tipo": "01",
  "id_externo": "INV-2025-005",
  "factura": {
    "fecha": "07/12/2025",
    "establecimiento": "001",
    "puntoEmision": "001",
    "secuencial": "000012347",
    "descuento": 0,
    "propina": 0,
    "total": 460.00,
    "cliente": {
      "nombre": "Empresa Moderena S.A.",
      "tipoIdentificacion": "04",
      "documento": "1791234567001",
      "correo": "[email protected]",
      "direccion": "Av. Industrial 500"
    }
  },
  "detalles": [
    {
      "codigoPrincipal": "EQ-001",
      "descripcion": "Computadora Desktop",
      "cantidad": 2,
      "precioUnitario": 200.00,
      "descuento": 0,
      "precioTotalSinImpuesto": 400.00,
      "impuestos": [
        { 
          "codigo": "2", 
          "codigoPorcentaje": "4", 
          "tarifa": 15, 
          "baseImponible": 400.00, 
          "valor": 60.00 
        }
      ]
    }
  ],
  "pagos": [
    { 
      "formaPago": "01", 
      "total": 200.00, 
      "plazo": 0, 
      "unidadTiempo": "dias" 
    },
    { 
      "formaPago": "15", 
      "total": 260.00, 
      "plazo": 15, 
      "unidadTiempo": "dias" 
    }
  ],
  "notificaciones": {
    "email": "[email protected]"
  }
}


Ejemplo 6: Factura con Productos con Diferentes Impuestos

Escenario: Múltiples productos con diferentes tasas de IVA

POST /api/document
Content-Type: application/json

{
  "ruc": "0707012605001",
  "tipo": "01",
  "id_externo": "INV-2025-006",
  "factura": {
    "fecha": "07/12/2025",
    "establecimiento": "001",
    "puntoEmision": "001",
    "secuencial": "000012348",
    "descuento": 0,
    "propina": 0,
    "total": 393.50,
    "cliente": {
      "nombre": "Supermercado ABC",
      "tipoIdentificacion": "04",
      "documento": "1701234567001",
      "correo": "[email protected]"
    }
  },
  "detalles": [
    {
      "codigoPrincipal": "ALM-001",
      "descripcion": "Arroz quintal",
      "cantidad": 5,
      "precioUnitario": 25.00,
      "descuento": 0,
      "precioTotalSinImpuesto": 125.00,
      "impuestos": [
        { 
          "codigo": "2", 
          "codigoPorcentaje": "0", 
          "tarifa": 0, 
          "baseImponible": 125.00, 
          "valor": 0.00 
        }
      ]
    },
    {
      "codigoPrincipal": "ELEC-001",
      "descripcion": "Bombilla LED",
      "cantidad": 10,
      "precioUnitario": 5.00,
      "descuento": 0,
      "precioTotalSinImpuesto": 50.00,
      "impuestos": [
        { 
          "codigo": "2", 
          "codigoPorcentaje": "4", 
          "tarifa": 15, 
          "baseImponible": 50.00, 
          "valor": 7.50 
        }
      ]
    },
    {
      "codigoPrincipal": "LIMP-001",
      "descripcion": "Detergente industrial",
      "cantidad": 3,
      "precioUnitario": 50.00,
      "descuento": 0,
      "precioTotalSinImpuesto": 150.00,
      "impuestos": [
        { 
          "codigo": "2", 
          "codigoPorcentaje": "2", 
          "tarifa": 12, 
          "baseImponible": 150.00, 
          "valor": 18.00 
        }
      ]
    },
    {
      "codigoPrincipal": "BEB-001",
      "descripcion": "Bebidas energizantes",
      "cantidad": 6,
      "precioUnitario": 4.00,
      "descuento": 0,
      "precioTotalSinImpuesto": 24.00,
      "impuestos": [
        { 
          "codigo": "2", 
          "codigoPorcentaje": "4", 
          "tarifa": 15, 
          "baseImponible": 24.00, 
          "valor": 3.60 
        },
        {
          "codigo": "3",
          "codigoPorcentaje": "3623",
          "tarifa": 10,
          "baseImponible": 24.00,
          "valor": 2.40
        }
      ]
    }
  ],
  "pagos": [
    { 
      "formaPago": "15", 
      "total": 393.50, 
      "plazo": 30, 
      "unidadTiempo": "dias" 
    }
  ],
  "notificaciones": {
    "email": "[email protected]"
  }
}


Ejemplo 7: Factura con detallesAdicionales por Ítem

Escenario: Factura con metadatos adicionales por producto (lote, serie, vencimiento, etc.).

POST /api/document
Content-Type: application/json

{
  "ruc": "0707012605001",
  "tipo": "01",
  "id_externo": "INV-2025-007",
  "factura": {
    "fecha": "07/12/2025",
    "establecimiento": "001",
    "puntoEmision": "001",
    "secuencial": "000012349",
    "descuento": 0,
    "propina": 0,
    "total": 138.00,
    "cliente": {
      "nombre": "CLINICA EJEMPLO S.A.",
      "tipoIdentificacion": "04",
      "documento": "1799999999001",
      "correo": "[email protected]",
      "direccion": "Av. Salud 123"
    }
  },
  "detalles": [
    {
      "codigoPrincipal": "MED-001",
      "descripcion": "Kit de insumos medicos",
      "cantidad": 2,
      "precioUnitario": 60.00,
      "descuento": 0,
      "precioTotalSinImpuesto": 120.00,
      "impuestos": [
        {
          "codigo": "2",
          "codigoPorcentaje": "2",
          "tarifa": 12,
          "baseImponible": 120.00,
          "valor": 14.40
        }
      ],
      "detallesAdicionales": [
        {
          "nombre": "Lote",
          "valor": "L-2025-001"
        },
        {
          "nombre": "Serie",
          "valor": "SN-5489-AB"
        },
        {
          "nombre": "FechaCaducidad",
          "valor": "12/2027"
        }
      ]
    },
    {
      "codigoPrincipal": "MED-002",
      "descripcion": "Guantes de nitrilo",
      "cantidad": 1,
      "precioUnitario": 3.60,
      "descuento": 0,
      "precioTotalSinImpuesto": 3.60,
      "impuestos": [
        {
          "codigo": "2",
          "codigoPorcentaje": "2",
          "tarifa": 12,
          "baseImponible": 3.60,
          "valor": 0.43
        }
      ],
      "detallesAdicionales": [
        {
          "nombre": "Marca",
          "valor": "SafeHands"
        },
        {
          "nombre": "Talla",
          "valor": "M"
        }
      ]
    }
  ],
  "pagos": [
    {
      "formaPago": "20",
      "total": 138.00,
      "plazo": 15,
      "unidadTiempo": "dias"
    }
  ],
  "notificaciones": {
    "email": "[email protected]"
  }
}

Notas de validación para detallesAdicionales:

  • Campo opcional por cada elemento de detalles.
  • Máximo 10 elementos por detalle.
  • Cada elemento requiere nombre y valor (máximo 300 caracteres cada uno).

  • Errores Comunes y Soluciones

    Error 1: "Las facturas con consumidor final no deben marcar operaciones anulables"

    Causa: Estás usando tipo de identificación 07 (consumidor final) con operaciones que pueden ser anuladas.

    Solución:

  • Usa un tipo de identificación válido (04, 05, 06, 08)
  • O si es realmente consumidor final, asegúrate de no necesitar anulación

Error 2: "Descuadre total en impuestos"

Causa: La suma de base imponible + impuestos no iguala al total.

Solución:

// Incorrecto
"total": 115.00
"baseImponible": 100.00
"impuesto": 12.00  // 100 + 12 = 112, no 115

// Correcto
"total": 115.00
"baseImponible": 100.00
"impuesto": 15.00  // 100 + 15 = 115

Error 3: "El secuencial ya existe"

Causa: El número de secuencial ya fue usado para este establecimiento/punto de emisión.

Solución: Incrementa el secuencial para el próximo documento.

Error 4: "El tipo de identificación no es válido"

Causa: El código de tipo de identificación no está en el catálogo SRI.

Solución: Usa códigos válidos: 04, 05, 06, 07, 08