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
- Detalles Adicionales por Ítem
- Tipos de Identificación del Cliente
- Formatos de Número de Documento
- Códigos de Impuestos
- Errores Comunes y Soluciones
Reglas de Validación General
Campos Obligatorios por Tipo de Documento
#### Factura (tipo: "01")
| Campo | Tipo | Requerido | Descripción |
| ------- | ------ | ----------- | ------------- |
ruc | string | Sí | RUC de la empresa (13 dígitos) |
tipo | string | Sí | Código de documento (01, 04, 07) |
id_externo | string | Sí | Identificador único del documento |
factura | object | Sí | Datos de la factura |
detalles | array | Sí | Al menos 1 elemento |
pagos | array | Sí | Al menos 1 elemento |
notificaciones | object | Sí | Configuración de notificaciones |
| Campo | Tipo | Requerido | Descripción |
| ------- | ------ | ----------- | ------------- |
ruc | string | Sí | RUC de la empresa (13 dígitos) |
tipo | string | Sí | Código de documento (01, 04, 07) |
id_externo | string | Sí | Identificador único del documento |
nota | object | Sí | Datos de la nota de crédito |
detalles | array | Sí | Al menos 1 elemento |
notificaciones | object | Sí | Configuración de notificaciones |
| Campo | Tipo | Requerido | Descripción |
| ------- | ------ | ----------- | ------------- |
ruc | string | Sí | RUC de la empresa (13 dígitos) |
tipo | string | Sí | Código de documento (01, 04, 07) |
id_externo | string | Sí | Identificador único del documento |
retencion | object | Sí | Datos de la retención |
detalles | array | Sí | Al menos 1 elemento |
notificaciones | object | Sí | Configuració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
| Campo | Tipo | Requerido | Regla |
| ------- | ------ | ----------- | ------- |
detalles.*.detallesAdicionales | array | No | max:10 |
detalles..detallesAdicionales..nombre | string | Condicional | required_with, max:300 |
detalles..detallesAdicionales..valor | string | Condicional | required_with, max:300 |
| Código | Descripción | Formato | Ejemplo |
| -------- | ------------- | --------- | ---------- |
04 | RUC (Empresa) | 13 dígitos | 1712345678001 |
05 | Cédula (Persona natural) | 10 dígitos | 0912345678 |
06 | Pasaporte (Extranjero) | Variable | AA123456789 |
07 | Consumidor final | 13 dígitos | 9999999999999 |
08 | Identificación del exterior | Variable | EXT123456 |
Formatos de Número de Documento
Formato General
{establecimiento}-{puntoEmision}-{secuencial}
Componentes
| Campo | Longitud | Ejemplo | |||
| ------- | ---------- | --------- | |||
establecimiento | 3 dígitos | 001 | |||
puntoEmision | 3 dígitos | 001 | |||
secuencial | 9 dígitos | 000001234 | |||
| Código | Tarifa | Descripción | |||
| -------- | -------- | ------------- | |||
0 | 0% | Exento / No sujeto | |||
2 | 12% | Tarifa estándar | |||
4 | 15% | Tarifa incrementada | |||
6 | 8% | Tarifa reducida | |||
| Código | Tarifa | Descripción | |||
| -------- | -------- | ------------- | |||
1 | 1% | Comercialización de bienes | |||
2 | 2% | Prestación de servicios | |||
331 | 8% | Servicios profesionales | |||
332 | 10% | Servicios profesionales (alto) | |||
333 | 25% | Otros ingresos | |||
| Tipo | Código SRI | Código porcentaje SRI | Nombre | Porcentaje | Estado |
| ------ | ------------ | ---------------------- | -------- | ------------ | -------- |
| IVA | 2 | 0 | 0% | 0.00% | Activo |
| IVA | 2 | 2 | 13% | 13.00% | Activo |
| IVA | 2 | 5 | 5% - Construcción | 5.00% | Activo |
| IVA | 2 | 6 | No Objeto de Impuesto | 0.00% | Activo |
| IVA | 2 | 7 | Exento de IVA | 0.00% | Activo |
| IVA | 2 | 2 | 12% | 12.00% | Inactivo |
| IVA | 2 | 3 | 14% | 14.00% | Inactivo |
| IVA | 2 | 4 | 15% | 15.00% | Activo |
| IRBPNR | 5 | 2 | Plásticos | 2.00% | Activo |
| ICE | 3 | 3031 | Bebidas Alcohólicas | 0.00% | Activo |
| ICE | 3 | 3011 | Cigarrillos | 0.00% | Activo |
| ICE | 3 | 3051 | Bebidas Gaseosas | 0.00% | Activo |
| ICE | 3 | 3041 | Cerveza | 0.00% | Activo |
| ICE | 3 | 3073 | Vehículos | 0.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.00Solución: Verifique que la suma de detalles + impuestos sea igual al total enviado.
Empresa No Encontrada
Error: La empresa no existe o no está activaSolució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álidoSolución: Use uno de los códigos válidos: 04, 05, 06, 07, 08