Skip to content

Liquidaciones de Compra

Las liquidaciones de compra son documentos electrónicos que se emiten cuando se adquieren bienes o servicios de personas naturales no obligadas a llevar contabilidad, personas del exterior sin establecimiento permanente en Ecuador, o en casos específicos donde el comprador debe asumir la obligación de facturar.

  • Código SRI: 03
  • Tipo de documento: Liquidación de Compra
  • Uso: Compras a no obligados a facturar, importaciones, servicios del exterior
  • Proveedor requerido: Sí
  • Documento de soporte: Opcional
  • Emisión automática: Opcional

POST /api/v1/documents/create

Content-Type: application/json
Accept: application/json
Authorization: Bearer {token}
ParámetroTipoRequeridoDescripción
sri_code_documentstringDebe ser "03" para liquidaciones de compra
send_to_emitbooleanNoSi se debe emitir automáticamente al SRI
supplierobjectInformación del proveedor
documentobjectInformación del documento
itemsarrayArray de productos/servicios adquiridos
paymentsarrayNoFormas de pago
aditional_fieldsarrayNoCampos adicionales
{
"date": "2024-01-15",
"establishment": "001",
"point_of_emission": "001",
"currency": "DOLAR",
"exchange_rate": 1.0
}
CasoDescripciónProveedor Típico
Persona natural no obligadaCompras a personas naturalesAgricultor, artesano
Servicios del exteriorServicios prestados desde el exteriorConsultoría internacional
ImportacionesBienes importadosProveedor extranjero
Servicios profesionalesHonorarios profesionalesProfesional independiente
TransporteServicios de transporteTransportista independiente
{
"sri_code_document": "03",
"send_to_emit": true,
"supplier": {
"identification_number": "0987654321",
"name": "María",
"lastname": "Agricultora",
"identification_type": "CEDULA",
"email": "[email protected]",
"address": "Sector Rural, Imbabura"
},
"document": {
"date": "2024-01-15",
"establishment": "001",
"point_of_emission": "001",
"currency": "DOLAR",
"exchange_rate": 1.0
},
"items": [
{
"code": "AGRI-001",
"description": "Papas frescas",
"rate": 0.50,
"quantity": 100,
"unit": "KG",
"subtotal": 50.00,
"taxes": [
{
"code": "2",
"percentaje_code": "2",
"percentaje_tax": 12,
"total_tax": 6.00
}
]
}
],
"payments": [
{
"payment_method": "01",
"total": 56.00
}
]
}
{
"message": "Documento creado exitosamente",
"status": "CREATED",
"payload": {
"id": 123456793,
"environment": "PROD",
"number": 1,
"date": "2024-01-15",
"subtotal": "50.00",
"tax_amount": "6.00",
"total": "56.00",
"type": "purchase_settlement",
"supplier": {
"id": 987654324,
"full_name": "María Agricultora",
"email": "[email protected]",
"identification_type": "cedula",
"identification_number": "0987654321"
},
"sri": {
"access_key": "1501202403012345678900110010010000000011234567890",
"status": "AUTORIZADO",
"sequential_number": "000000001",
"establishment": "001",
"point_emission": "001",
"document_number": "001-001-000000001",
"type_document": "LIQUIDACION COMPRA",
"code_document": "03"
},
"items": [
{
"position": 1,
"code": "AGRI-001",
"description": "Papas frescas",
"rate": "0.50",
"quantity": "100.00",
"unit": "KG",
"subtotal": "50.00",
"total_tax": "6.00",
"total": "56.00"
}
],
"payments": [
{
"payment_method": "01",
"payment_method_description": "Sin utilización del sistema financiero",
"total": "56.00"
}
]
}
}

Liquidación de Compra con Servicios del Exterior

Section titled “Liquidación de Compra con Servicios del Exterior”
{
"sri_code_document": "03",
"supplier": {
"identification_number": "9999999999999",
"name": "Consultora",
"lastname": "Internacional LLC",
"identification_type": "PASAPORTE",
"email": "[email protected]",
"address": "Miami, Florida, USA"
},
"document": {
"date": "2024-10-09",
"sri_establishment": "001",
"sri_point_emi": "004",
"currency": "DOLAR",
"exchange_rate": 1.0
},
"items": [
{
"code": "SERV-EXT-001",
"description": "Consultoría en sistemas",
"rate": 2000.00,
"quantity": 1,
"unit": "SERV",
"subtotal": 2000.00,
"taxes": [
{
"code": "2",
"percentaje_code": "2",
"percentaje_tax": 12,
"total_tax": 240.00
},
{
"code": "5",
"percentaje_code": "4580",
"percentaje_tax": 5,
"total_tax": 100.00
}
]
}
],
"payments": [
{
"payment_method": "20",
"total": 2340.00
}
],
"aditional_fields": [
{
"key": "Contrato",
"value": "CONT-2024-001",
"type": "custom"
},
{
"key": "Pais_Origen",
"value": "Estados Unidos",
"type": "sri"
}
]
}

Respuesta con Servicios del Exterior (201)

Section titled “Respuesta con Servicios del Exterior (201)”
{
"message": "Documento creado",
"status": "CREATED",
"payload": {
"id": 1339329974,
"environment": "TEST",
"number": 5,
"date": "2024-10-09",
"subtotal": "2000.00",
"tax_amount": "340.00",
"total": "2340.00",
"status": "draft",
"type": "purchase_settlement",
"supplier": {
"id": 61247348,
"full_name": "Consultora Internacional LLC",
"email": "[email protected]",
"identification_type": "pasaporte",
"identification_number": "9999999999999"
},
"sri": {
"establishment": "001",
"point_emi": "004",
"type_document": "LIQUIDACION COMPRA",
"title_document": "Liquidación de compra",
"code_document": "03"
},
"items": [
{
"position": 1,
"code": "SERV-EXT-001",
"description": "Consultoría en sistemas",
"rate": "2000.00",
"quantity": "1.00",
"unit": "SERV",
"subtotal": "2000.00",
"total_tax": "340.00",
"total": "2340.00",
"taxes": [
{
"type": "IVA",
"name": "12%",
"code": "2",
"percentaje_code": "2",
"rate_before_tax": "2000.00",
"percentaje_tax": "12.00",
"total_tax": "240.00",
"rate_after_tax": "2240.00"
},
{
"type": "ISD",
"name": "5%",
"code": "5",
"percentaje_code": "4580",
"rate_before_tax": "2000.00",
"percentaje_tax": "5.00",
"total_tax": "100.00",
"rate_after_tax": "2100.00"
}
]
}
],
"payments": [
{
"payment_method": "20",
"payment_method_description": "Otros con utilización del sistema financiero",
"total": "2340.00"
}
],
"taxes": [
{
"tax_type": "IVA",
"tax_name": "12%",
"tax_rate": "240.00",
"tax_subtotal": "2000.00",
"tax_code": "2",
"tax_code_sri": "2"
},
{
"tax_type": "ISD",
"tax_name": "5%",
"tax_rate": "100.00",
"tax_subtotal": "2000.00",
"tax_code": "5",
"tax_code_sri": "4580"
}
],
"additional_info": {
"contract": "CONT-2024-001",
"origin_country": "Estados Unidos"
}
}
}
Terminal window
curl -X POST "https://dev-facturacion.e-dinky.test/api/v1/documents/create" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Authorization: Bearer {token}" \
-d '{
"sri_code_document": "03",
"send_to_emit": true,
"supplier": {
"identification_number": "0987654321",
"name": "María",
"lastname": "Agricultora",
"identification_type": "CEDULA",
"email": "[email protected]",
"address": "Sector Rural, Imbabura"
},
"document": {
"date": "2024-01-15",
"establishment": "001",
"point_of_emission": "001",
"currency": "DOLAR",
"exchange_rate": 1.0
},
"items": [
{
"code": "AGRI-001",
"description": "Papas frescas",
"rate": 0.50,
"quantity": 100,
"unit": "KG",
"subtotal": 50.00,
"taxes": [
{
"code": "2",
"percentaje_code": "2",
"percentaje_tax": 12,
"total_tax": 6.00
}
]
}
],
"payments": [
{
"payment_method": "01",
"total": 56.00
}
]
}'

1. Compras a Personas Naturales No Obligadas

Section titled “1. Compras a Personas Naturales No Obligadas”
  • Proveedor: Persona natural sin obligación de facturar
  • Casos: Agricultores, artesanos, pequeños productores
  • Identificación: Cédula de identidad
  • Características: Compras locales, productos primarios
  • Proveedor: Persona o empresa extranjera
  • Casos: Consultoría, software, servicios digitales
  • Identificación: Pasaporte o identificación extranjera
  • Características: Puede incluir ISD, retenciones especiales
  • Proveedor: Exportador extranjero
  • Casos: Mercaderías importadas
  • Identificación: Según país de origen
  • Características: Incluye aranceles, IVA importación
  • Proveedor: Profesional independiente
  • Casos: Honorarios profesionales
  • Identificación: Cédula o RUC
  • Características: Sujeto a retenciones
  • Proveedor: Transportista independiente
  • Casos: Servicios de transporte
  • Identificación: Cédula
  • Características: Tarifas especiales de retención
  • Tarifa 0%: Productos básicos, exportaciones
  • Tarifa 12%: Servicios, productos gravados
  • Tarifa 15%: Servicios específicos (según normativa)
  • Tarifa 5%: Pagos al exterior
  • Aplicación: Servicios del exterior, importaciones
  • Exenciones: Según normativa vigente
  • Aplicación: Productos específicos
  • Tarifas: Según tabla del SRI
  • Casos: Bebidas, cigarrillos, vehículos
  • Identificación: Debe ser válida según tipo
  • Tipo: CEDULA, RUC, PASAPORTE
  • Residencia: Especificar si es del exterior
  • Email: Requerido para notificaciones
  • Códigos: Deben existir en catálogo
  • Descripciones: Claras y específicas
  • Precios: Coherentes con mercado
  • Impuestos: Aplicación correcta según tipo
  • Métodos: Válidos según SRI
  • Totales: Deben coincidir con documento
  • Moneda: Especificar si es extranjera
  • Tipo de cambio: Requerido para moneda extranjera
  • Subtotal: Suma correcta de items
  • Impuestos: Cálculo exacto según tarifas
  • Total: Validación matemática precisa
CódigoDescripciónAcción
201Liquidación creada exitosamenteContinuar con el flujo
400Datos inválidosRevisar formato de datos
401Token inválidoRenovar autenticación
422Error de validaciónCorregir datos según errores
500Error del servidorReintentar más tarde
{
"message": "Error de validación",
"status": "UNPROCESSABLE_ENTITY",
"errors": {
"supplier.identification_number": [
"La identificación del proveedor no es válida"
],
"items.0.taxes": [
"Los impuestos son requeridos"
],
"payments.0.total": [
"El total del pago no coincide con el documento"
]
}
}
  1. Identificación del proveedor inválida

    • Verificar formato según tipo
    • Confirmar dígito verificador
    • Revisar longitud correcta
  2. Impuestos requeridos

    • Especificar IVA aplicable
    • Incluir ISD si es del exterior
    • Calcular correctamente los montos
  3. Total de pagos incorrecto

    • Verificar suma de pagos
    • Confirmar que coincida con total
    • Revisar métodos de pago
// Validar tipo de proveedor antes de crear liquidación
$validateSupplier = function($supplier) {
// Verificar si es persona natural no obligada
if ($supplier['identification_type'] === 'CEDULA') {
$isObligated = $this->checkIfObligatedToIssueInvoices($supplier['identification_number']);
if ($isObligated) {
throw new SupplierObligatedToInvoiceException();
}
}
// Verificar si es del exterior
if ($supplier['identification_type'] === 'PASAPORTE') {
$this->validateForeignSupplier($supplier);
}
};
// Calcular impuestos automáticamente según tipo de proveedor
const calculateTaxes = (items, supplierType, isFromAbroad) => {
return items.map(item => {
const taxes = [];
// IVA
if (item.iva_applicable) {
taxes.push({
code: '2',
percentaje_code: '2',
percentaje_tax: 12,
total_tax: item.subtotal * 0.12
});
}
// ISD para servicios del exterior
if (isFromAbroad && item.type === 'service') {
taxes.push({
code: '5',
percentaje_code: '4580',
percentaje_tax: 5,
total_tax: item.subtotal * 0.05
});
}
return { ...item, taxes };
});
};
// Manejar diferentes monedas y tipos de cambio
$handleCurrency = function($document, $items) {
if ($document['currency'] !== 'DOLAR') {
$exchangeRate = $this->getExchangeRate($document['currency'], $document['date']);
$document['exchange_rate'] = $exchangeRate;
// Convertir montos a dólares
foreach ($items as &$item) {
$item['rate_usd'] = $item['rate'] / $exchangeRate;
$item['subtotal_usd'] = $item['subtotal'] / $exchangeRate;
}
}
return [$document, $items];
};
// Mantener documentación de soporte adecuada
const createPurchaseSettlement = (data) => {
return {
...data,
support_documentation: {
contract: data.contract_number,
purchase_order: data.purchase_order,
delivery_note: data.delivery_note,
quality_certificate: data.quality_certificate
}
};
};
  1. Verificar elegibilidad del proveedor

    • Confirmar que no está obligado a facturar
    • Validar identificación y datos
    • Verificar si es del exterior
  2. Determinar impuestos aplicables

    • Identificar tipo de bien/servicio
    • Calcular IVA según tarifa
    • Incluir ISD si aplica
    • Considerar ICE si corresponde
  3. Preparar documentación

    • Reunir documentos de soporte
    • Validar precios y cantidades
    • Confirmar formas de pago
  4. Crear liquidación

    • Enviar solicitud POST
    • Verificar respuesta
    • Manejar errores específicos
  5. Procesar resultado

    • Actualizar inventario si aplica
    • Registrar en contabilidad
    • Preparar retenciones si corresponde
    • Notificar al proveedor
  • Emisión: Obligatorio emitir liquidación
  • Retenciones: Aplicar retenciones según normativa
  • Declaración: Incluir en declaraciones de IVA
  • Archivo: Mantener documentación de soporte
  • Crédito tributario: IVA pagado es crédito tributario
  • Deducibilidad: Gastos deducibles según normativa
  • Compensación: Compensar con impuestos por pagar
  • Recepción: Recibir copia de la liquidación
  • Declaración: Declarar ingresos si está obligado
  • Retenciones: Aceptar retenciones aplicadas
  • Inventario/Gastos: Registro del bien/servicio adquirido
  • IVA: Crédito tributario por IVA pagado
  • Cuentas por pagar: Obligación con el proveedor
  • Retenciones: Pasivo con el SRI si aplica
  • Ingresos: Registro del ingreso por venta
  • Cuentas por cobrar: Derecho de cobro
  • Retenciones: Crédito tributario si aplica
  • IVA: Débito fiscal si está obligado
{
"supplier": {
"identification_type": "CEDULA",
"name": "Juan",
"lastname": "Agricultor"
},
"items": [
{
"description": "Maíz amarillo",
"rate": 0.40,
"quantity": 1000,
"unit": "KG"
}
]
}
{
"supplier": {
"identification_type": "PASAPORTE",
"name": "Tech",
"lastname": "Solutions Inc",
"address": "California, USA"
},
"items": [
{
"description": "Licencia de software",
"rate": 1200.00,
"taxes": [
{"code": "2", "percentaje_tax": 12},
{"code": "5", "percentaje_tax": 5}
]
}
]
}
{
"supplier": {
"identification_type": "CEDULA",
"name": "Ana",
"lastname": "Consultora"
},
"items": [
{
"description": "Consultoría legal",
"rate": 800.00,
"taxes": [
{"code": "2", "percentaje_tax": 12}
]
}
]
}
  • 📋 Obligación legal: Obligatorio para compras a no obligados a facturar
  • ⚖️ Cumplimiento fiscal: Debe cumplir normativa tributaria
  • 🔗 Trazabilidad: Permite seguimiento completo de la compra
  • Emisión oportuna: Debe emitirse al momento de la compra
  • 📧 Notificaciones: El proveedor recibe notificación
  • 💾 Impacto contable: Afecta automáticamente la contabilidad
  • 🔄 Estados sincronizados: El estado se actualiza automáticamente
  • 📊 Reportes fiscales: Genera reportes para declaraciones
  • 🚫 No modificable: Una vez autorizada, no se puede modificar
  • 💰 Crédito tributario: Genera crédito tributario de IVA
  • 🌍 Servicios del exterior: Manejo especial para proveedores extranjeros
  • 🏛️ Retenciones: Puede generar obligaciones de retención