Observación 4346 SUNAT: El importe de la retencion de renta no coincide con el valor calculado

Fuente: Reglas de validación de SUNAT, actualizado al 26.08.2026. Los mensajes y las condiciones son textos oficiales de SUNAT.

Qué significa

SUNAT devuelve el código 4346 con el mensaje «El importe de la retencion de renta no coincide con el valor calculado».

Es una observación: SUNAT acepta el comprobante y es válido, pero te avisa de un dato que debes corregir en los próximos.

Aparece en: Liquidación de compra.

Cuándo aparece

Estas son las reglas de validación de SUNAT que devuelven el código 4346, con su texto oficial:

  • Liquidación de compraObservación

    Dato: Importe de la retención del impuesto a la renta

    Tag UBL: /SelfBilledInvoice/cac:TaxTotal/cac:TaxSubtotal/cbc:TaxAmount (Importe de la retención)

    Condición: Si 'Código de tributo' es '3000', el valor del Tag UBL es diferente a la sumatoria de 'Monto de retención de renta por item' (cbc:TaxAmount) de los ítems con 'Código de tributo por línea' igual a '3000' y cuyo 'Monto base' es mayor a cero (cbc:TaxableAmount > 0) y que no correspondan a una operación gratuita (*), menos 'Monto de retención de renta de anticipo' (Código de motivo de descuento '61'), con una tolerancia + - 1 (*) No considerar en la sumatoria aquellas líneas que tienen un 'Código de tributo por línea' igual a '9996' con monto base mayor a cero (cbc:TaxableAmount > 0)

Cómo resolverlo

Revisa el dato y el tag UBL que indica la regla y corrígelo para que no se cumpla la condición de SUNAT.

Si es una observación, no tienes que reemitir: el comprobante es válido. Corrige el dato en los siguientes.

Cómo lo ves en API SUNAT

Con API SUNAT no armas el XML: envías la venta en JSON y la API lo genera, lo firma y lo envía a SUNAT. Si SUNAT rechaza el comprobante, la emisión responde con status "rejected" y el código en sunat.errorCode y sunat.errorMessage; las observaciones llegan con status "accepted_with_observations".

También puedes recibirlo por webhook (document.rejected o document.observed). Ver los estados en la documentación.