Referencia de Reglas de Validación

Este documento explica las reglas de validación aplicadas a las solicitudes de documentos API.

Tabla de Contenidos


Reglas de Validación General

Campos Obligatorios por Tipo de Documento

#### Factura (tipo: "01")

#### Nota de Crédito (tipo: "04")

#### Retención (tipo: "07")

CampoTipoRequeridoDescripción
-------------------------------------
rucstringRUC de la empresa (13 dígitos)
tipostringCódigo de documento (01, 04, 07)
id_externostringIdentificador único del documento
facturaobjectDatos de la factura
detallesarrayAl menos 1 elemento
pagosarrayAl menos 1 elemento
notificacionesobjectConfiguración de notificaciones
CampoTipoRequeridoDescripción
-------------------------------------
rucstringRUC de la empresa (13 dígitos)
tipostringCódigo de documento (01, 04, 07)
id_externostringIdentificador único del documento
notaobjectDatos de la nota de crédito
detallesarrayAl menos 1 elemento
notificacionesobjectConfiguración de notificaciones
CampoTipoRequeridoDescripción
-------------------------------------
rucstringRUC de la empresa (13 dígitos)
tipostringCódigo de documento (01, 04, 07)
id_externostringIdentificador único del documento
retencionobjectDatos de la retención
detallesarrayAl menos 1 elemento
notificacionesobjectConfiguración de notificaciones


Detalles Adicionales por Ítem

Los documentos de tipo Factura (01) y Nota de Crédito (04) permiten enviar información adicional por cada elemento de detalles usando el campo opcional detallesAdicionales.

Estructura

{
  "detalles": [
    {
      "codigoPrincipal": "P-001",
      "descripcion": "Producto A",
      "cantidad": 1,
      "precioUnitario": 100.00,
      "descuento": 0,
      "precioTotalSinImpuesto": 100.00,
      "impuestos": [
        {
          "codigo": "2",
          "codigoPorcentaje": "4",
          "tarifa": 15,
          "baseImponible": 100.00,
          "valor": 15.00
        }
      ],
      "detallesAdicionales": [
        {
          "nombre": "Lote",
          "valor": "L-2026-0001"
        },
        {
          "nombre": "Serie",
          "valor": "SN-ABC-12345"
        }
      ]
    }
  ]
}

Reglas de validación

Notas

  • Máximo 10 elementos por cada ítem de detalles.
  • nombre y valor se envían como pares clave/valor.
  • Si se envía detallesAdicionales, cada objeto debe contener ambos campos (nombre y valor).
  • En XML se genera bajo <detallesAdicionales> con nodos <detAdicional nombre="..." valor="..."/>.


Tipos de Identificación del Cliente

CampoTipoRequeridoRegla
-------------------------------
detalles.*.detallesAdicionalesarrayNomax:10
detalles..detallesAdicionales..nombrestringCondicionalrequired_with, max:300
detalles..detallesAdicionales..valorstringCondicionalrequired_with, max:300
CódigoDescripciónFormatoEjemplo
----------------------------------------
04RUC (Empresa)13 dígitos1712345678001
05Cédula (Persona natural)10 dígitos0912345678
06Pasaporte (Extranjero)VariableAA123456789
07Consumidor final13 dígitos9999999999999
08Identificación del exteriorVariableEXT123456


Formatos de Número de Documento

Formato General

{establecimiento}-{puntoEmision}-{secuencial}

Componentes

Reglas

  • El secuencial debe ser único por establecimiento y punto de emisión
  • Factura y Nota de Crédito usan numeración independiente
  • Retención usa numeración independiente

  • Códigos de Impuestos

    IVA

IR (Retenciones)

Tabla SRI del Sistema

CampoLongitudEjemplo
--------------------------
establecimiento3 dígitos001
puntoEmision3 dígitos001
secuencial9 dígitos000001234
CódigoTarifaDescripción
-----------------------------
00%Exento / No sujeto
212%Tarifa estándar
415%Tarifa incrementada
68%Tarifa reducida
CódigoTarifaDescripción
-----------------------------
11%Comercialización de bienes
22%Prestación de servicios
3318%Servicios profesionales
33210%Servicios profesionales (alto)
33325%Otros ingresos
TipoCódigo SRICódigo porcentaje SRINombrePorcentajeEstado
--------------------------------------------------------------------
IVA200%0.00%Activo
IVA2213%13.00%Activo
IVA255% - Construcción5.00%Activo
IVA26No Objeto de Impuesto0.00%Activo
IVA27Exento de IVA0.00%Activo
IVA2212%12.00%Inactivo
IVA2314%14.00%Inactivo
IVA2415%15.00%Activo
IRBPNR52Plásticos2.00%Activo
ICE33031Bebidas Alcohólicas0.00%Activo
ICE33011Cigarrillos0.00%Activo
ICE33051Bebidas Gaseosas0.00%Activo
ICE33041Cerveza0.00%Activo
ICE33073Vehículos0.00%Activo


Errores Comunes y Soluciones

Secuencial Ya Existe

Error: The factura.secuencial has already been taken.

Solución: Use un nuevo número secuencial incrementando el último usado.

Totales No Cuadran

Error: Descuadre total: base(100.00) + impuestos(15.00) = 115.00, factura.total = 120.00

Solución: Verifique que la suma de detalles + impuestos sea igual al total enviado.

Empresa No Encontrada

Error: La empresa no existe o no está activa

Solución: Verifique que el RUC corresponda a una empresa registrada y activa en el sistema.

Cliente No Válido

Error: Tipo de identificación no válido

Solución: Use uno de los códigos válidos: 04, 05, 06, 07, 08


Mejores Prácticas

  • Valide los totales antes de enviar (detalles + impuestos = total)
  • Use secuenciales únicos y secuenciales para cada documento
  • Use el tipo de identificación correcto según el cliente
  • Pruebe primero con montos pequeños
  • Mantenga un registro de los IDs externos usados