Hola,
Estoy integrando una aplicación externa con Dolibarr mediante la API REST y he detectado que el IRPF español (localtax2) no se calcula cuando se crean o actualizan líneas de facturas de proveedor a través de la API. La misma línea guardada desde la interfaz web sí se calcula correctamente.
ENTORNO
- Dolibarr 23.0.3
- País de la empresa: España
- El diccionario de tasas de IVA (España) tiene una fila: tasa 21, código IVA+IRPF15, localtax2 = -15, tipo 5
- El tercero (proveedor) está sujeto a IRPF
RESULTADO ESPERADO
Base 150,00, IVA 31,50, IRPF -22,50, total 159,00 (lo que produce la interfaz web con la misma línea).
RESULTADO OBTENIDO
Base 150,00, IVA 31,50, IRPF 0,00, total 181,50.
PASOS PARA REPRODUCIRLO
1) POST /api/index.php/supplierinvoices
{
"socid": 23,
"ref_supplier": "12345",
"date": "2026-10-02",
"multicurrency_code": "EUR",
"cond_reglement_id": 2,
"mode_reglement_id": 2,
"fk_account": 2
}
2) POST /api/index.php/supplierinvoices/{id}/lines
{
"description": "Summary of lines",
"pu_ht": 150,
"qty": 1,
"tva_tx": "21 (IVA+IRPF15)",
"localtax1_tx": 0,
"localtax2_tx": -15,
"remise_percent": 0,
"product_type": 1
}
3) GET /api/index.php/supplierinvoices/{id}
La línea se guarda con vat_src_code = IVA+IRPF15, tva_tx = 21 y localtax2_type = 5, pero con localtax2_tx = 0.0000 y total_localtax2 = 0.00000000. En la factura, total_localtax2 = 0 y total_ttc = 181.5.
PRUEBAS ADICIONALES
- PUT /supplierinvoices/{id}/lines/{lineid} con los mismos datos: la línea conserva localtax2_tx = -15 y localtax2_type = 5, pero total_localtax2 sigue en 0.
- POST /supplierinvoices/{id}/validate: validar la factura no recalcula nada; los totales no cambian.
- POST /supplierinvoices con las líneas dentro del cuerpo: mismo resultado, el IRPF no se calcula.
- Crear la misma línea a mano en la interfaz web, o abrir en la interfaz una línea creada por API y guardarla sin cambios, sí calcula el IRPF (total_localtax2 = -22,5 y total_ttc = 159).
Por tanto, la configuración (diccionario, tercero, país de la empresa) es correcta, y el problema solo aparece al usar la API REST.
¿Podéis confirmarme si es un fallo conocido, o si existe una forma recomendada de crear líneas de facturas de proveedor con IRPF a través de la API? Si es un fallo, puedo abrir también una incidencia en GitHub si lo preferís.
Muchas gracias por vuestra ayuda.
Un saludo,
