Referencia · Rechazos
Errores de rechazo de Hacienda v4.4 y cómo evitarlos
¿Por qué Hacienda rechaza un comprobante?
Porque el XML llega a Hacienda pero no pasa sus validaciones: un código que no existe, totales que no cuadran, un catálogo mal usado o un campo fuera de rango. El problema práctico es que el rechazo llega después de haber gastado el consecutivo, así que la única defensa buena es validar antes de emitir. Esta tabla resume los rechazos más comunes:
| causa / código | qué pasó | cómo se evita |
|---|---|---|
| -400 | Código CABYS no existe en el catálogo oficial | Validar cada CABYS contra el catálogo antes de emitir |
| -110 / -111 | Desglose de impuestos o totales inconsistentes | Recalcular el total y el IVA desde las líneas, con 5 decimales |
| -491 | Falta el código de referencia "Otro" cuando el motivo es 99 | Enviar el detalle de referencia cuando el código es 99 |
| Unidad de medida | Unidad fuera del catálogo v4.4 (es sensible a mayúsculas) | Normalizar contra el catálogo oficial (Unid, kg, m, Sp…) |
| Clasificación | Servicio marcado como mercadería (o viceversa) → totales mal | Clasificar por el tipo real del CABYS, no por heurística |
| Longitudes | Campos fuera de rango (detalle, nombre del receptor…) | Validar longitudes antes de generar el XML |
| Código de referencia | Usar un código de referencia eliminado en v4.4 (ej. 03) | Mapear al código vigente v4.4 en notas de crédito/débito |
-400, -110…) los define Hacienda y llegan en el DetalleMensaje de su respuesta. Abajo detallamos los que más aparecen.CABYS inexistente (-400)
Cada línea lleva un código CABYS de 13 dígitos que debe existir en el catálogo oficial del BCCR. Si mandás uno que no existe —un dígito de más, un código viejo, un typo—, Hacienda rechaza con -400. Plaxp valida cada CABYS contra el catálogo antes de enviar, así el rechazo no te cuesta un consecutivo. El catálogo vigente (versión 2025) tiene 20.506 códigos, de los cuales unos 5.864 son servicios.
Totales o impuestos inconsistentes (-110 / -111)
Hacienda recalcula tus totales y, si no cuadran con las líneas, rechaza. Es el rechazo más traicionero porque suele venir de errores de redondeo o de sumar mal el IVA. Plaxp recalcula el desglose por categoría (gravado, exento, exonerado, no sujeto), el total_impuesto y el total_comprobante desde las líneas, con 5 decimales, y pisa lo que venga en el body. También verifica que la suma de los medios de pago iguale el total.
Servicio marcado como mercadería (y tarifa 11)
Cada línea es servicio o mercadería, y esa clasificación decide en qué casilla de totales entra. Clasificarla mal descuadra el desglose y dispara rechazo. Plaxp usa el tipo real del CABYS (del catálogo), no una heurística por el primer dígito. Caso especial: la tarifa 11 (0% sin derecho a crédito) se trata como no sujeto, no como exento.
Referencia sin código en notas de crédito/débito (-491)
Una nota de crédito o débito debe referenciar el documento que corrige, con un código de motivo. Si el motivo es 99 (Otro), Hacienda exige además el detalle en texto; si falta, rechaza con -491. Y ojo con un cambio de la 4.4: algunos códigos de referencia de versiones anteriores fueron eliminados (por ejemplo el 03), así que reusarlos genera rechazo. Plaxp mapea al código vigente y exige el detalle cuando corresponde.
Unidad de medida y longitudes de campo
La unidad de medida debe salir del catálogo v4.4, que es sensible a mayúsculas: Unid, kg, m, Sp son válidas; variantes con otra capitalización, no. Y varios campos tienen longitud acotada (el detalle de línea va de 3 a 200 caracteres, el nombre del receptor hasta 100). Pasarse rechaza el comprobante. Plaxp normaliza la unidad contra el catálogo y valida las longitudes antes de generar el XML.
La idea de fondo
422 tuyo, no un consecutivo quemado en Hacienda.¿Cómo pruebo esto sin arriesgar consecutivos reales?
Emitiendo primero en el ambiente de pruebas. Te dejamos la guía de y la de la .
¿Te está rechazando Hacienda?
Te damos credenciales de sandbox y te acompañamos en la integración. Escribinos y arrancamos hoy.
Solicitar acceso a la APITe acompañamos en la puesta en marcha · soporte rápido de gente real · fácil de usar para todo tu equipo. Somos gente ayudando gente.
