[Códigos de error de la SUNAT](https://fe.kembec.com/errores/)

# Error 2337

> La moneda debe ser la misma en todo el documento

Fuente: hoja [«Reglas de validación actualizado al 24.04.2026»](https://cpe.sunat.gob.pe/sites/default/files/2026-05/Reglas%20de%20validaci%C3%B3n%20actualizado%20al%2024.04.2026%20%281%29.xlsx) de la SUNAT.

Rechaza el comprobante: no se registra.`class`: `"rejected"`

## Qué haces en producción

En la beta no se registra nada ni cuentan los plazos, y no hay `status` ni `validity`.

Factura o nota: el número queda usado; emite otra con otro número. Resumen o baja: corrige y reenvía; puede llevar el mismo nombre.

[Las 76 reglas que lo disparan en tu XML](https://fe.kembec.com/errores/2337/#que-lo-dispara)

## Qué lo dispara en tu XML

76 reglas de la hoja, en 5 documentos. Una regla que se repite igual en varios documentos sale una vez.

| Campo | Condición | Tipo | Documento |
| --- | --- | --- | --- |
| Valor unitario por ítem · `@currencyID` | Si existe el atributo, el valor del atributo es diferente al ingresado en 'Tipo de moneda' · Listado: Catálogo (002) | ERROR | Liquidación de compra (04) fila 134 |
| Precio de venta unitario por Item · Valor referencial unitario por ítem en operaciones gratuitas (no onerosas) · `@currencyID` | Si existe el atributo, el valor del atributo es diferente al ingresado en 'Tipo de moneda' · Listado: Catálogo (002) | ERROR | Liquidación de compra (04) fila 140 |
| Valor de venta por ítem · `@currencyID` | Si existe el atributo, el valor es diferente al ingresado en 'Tipo de moneda' | ERROR | Liquidación de compra (04) fila 149 |
| Monto total de tributos del ítem · `@currencyID` | Si existe el atributo, el valor es diferente al ingresado en 'Tipo de moneda' · Listado: Catálogo (002) | ERROR | Liquidación de compra (04) fila 168 |
| Afectación al IGV por ítem · **Moneda base** `@currencyID` | Si existe el atributo, el valor es diferente al ingresado en 'Tipo de moneda' | ERROR | Liquidación de compra (04) fila 171 |
| Afectación al IGV por ítem · `@currencyID` | Si existe el atributo, el valor es diferente al ingresado en 'Tipo de moneda' · Listado: Catálogo (002) | ERROR | Liquidación de compra (04) fila 178 |
| Impuesto a la Renta- Retención por item · `@currencyID` | Si existe el atributo, el valor es diferente al ingresado en 'Tipo de moneda' · Listado: Catálogo (002) | ERROR | Liquidación de compra (04) filas 202, 205 |
| Afectación otros tributos por ítem · `@currencyID` | Si existe el atributo, el valor es diferente al ingresado en 'Tipo de moneda' · Listado: Catálogo (002) | ERROR | Liquidación de compra (04) filas 219, 222 |
| Monto total de tributos · **Catálogo N.° 02** `` | Si existe el atributo, el valor es diferente al ingresado en 'Tipo de moneda' · Listado: Catálogo (002) | ERROR | Liquidación de compra (04) fila 239 |
| Total valor de venta - operaciones gravadas · Total importe IGV/Total IGV Crédito · `@currencyID` | Si existe el atributo, el valor es diferente al ingresado en 'Tipo de moneda' · Listado: Catálogo (002) | ERROR | Liquidación de compra (04) filas 243, 246 |
| Total valor de venta - operaciones inafectas · Total valor de venta - operaciones exoneradas · `@currencyID` | Si existe el atributo, el valor es diferente al ingresado en 'Tipo de moneda' · Listado: Catálogo (002) | ERROR | Liquidación de compra (04) filas 265, 268 |
| Total valor de venta - operaciones gratuitas · Sumatoria de tributos de operaciones gratuitas · `@currencyID` | Si existe el atributo, el valor es diferente al ingresado en 'Tipo de moneda' · Listado: Catálogo (002) | ERROR | Liquidación de compra (04) filas 284, 287 |
| Importe de la retención del impuesto a la renta · `@currencyID` | Si existe el atributo, el valor es diferente al ingresado en 'Tipo de moneda' · Listado: Catálogo (002) | ERROR | Liquidación de compra (04) filas 301, 304 |
| Sumatoria otros tributos · `@currencyID` | Si existe el atributo, el valor es diferente al ingresado en 'Tipo de moneda' · Listado: Catálogo (002) | ERROR | Liquidación de compra (04) filas 318, 321 |
| Total valor de venta · `@currencyID` | Si existe el atributo, el valor es diferente al ingresado en 'Tipo de moneda' · Listado: Catálogo (002) | ERROR | Liquidación de compra (04) fila 337 |
| Sub total de la liquidación de compra · `@currencyID` | Si existe el atributo, el valor es diferente al ingresado en 'Tipo de moneda' · Listado: Catálogo (002) | ERROR | Liquidación de compra (04) fila 341 |
| Monto para redondeo del importe total · `@currencyID` | Si existe el atributo, el valor es diferente al ingresado en 'Tipo de moneda' · Listado: Catálogo (002) | ERROR | Liquidación de compra (04) fila 343 |
| Importe total neto · `@currencyID` | Si existe el atributo, el valor es diferente al ingresado en 'Tipo de moneda' · Listado: Catálogo (002) | ERROR | Liquidación de compra (04) fila 346 |
| Importe del anticipo · `@currencyID` | Si existe el atributo, el valor es diferente al ingresado en 'Tipo de moneda' · Listado: Catálogo (002) | ERROR | Liquidación de compra (04) fila 355 |
| Montos del valor de venta de anticipos · `@currencyID` | Si existe el atributo, el valor es diferente al ingresado en 'Tipo de moneda' | ERROR | Liquidación de compra (04) fila 382 |
| Montos de retenciones de renta de anticipos · `@currencyID` | Si existe el atributo, el valor es diferente al ingresado en 'Tipo de moneda' | ERROR | Liquidación de compra (04) fila 390 |
| Total de anticipos · `@currencyID` | Si existe el atributo, el valor es diferente al ingresado en 'Tipo de moneda' · Listado: Catálogo (002) | ERROR | Liquidación de compra (04) fila 392 |
| Total comisiones · `@currencyID` | Si existe el atributo, el valor es diferente al ingresado en 'Importe total procesado en el periodo' · Listado: Catálogo (002) | ERROR | DAE, adquirente fila 70 |
| Total IGV · `@currencyID` | Si existe el atributo, el valor es diferente al ingresado en 'Importe total procesado en el periodo' · Listado: Catálogo (002) | ERROR | DAE, adquirente fila 74 |
| Importe total · `@currencyID` | Si existe el atributo, el valor es diferente al ingresado en 'Importe total procesado en el periodo' · Listado: Catálogo (002) | ERROR | DAE, adquirente filas 84, 150 |
| Tipo de moneda de la comisión · `/Invoice/cac:InvoiceLine/cac:SubInvoiceLine/cbc:LineExtensionAmount@currencyID` | Si existe el atributo, el valor es diferente al ingresado en 'Importe total procesado en el periodo' · Listado: Catálogo (002) | ERROR | DAE, adquirente fila 96 |
| Monto de IGV · `@currencyID` | Si existe el atributo, el valor es diferente al ingresado en 'Importe total procesado en el periodo' · Listado: Catálogo (002) | ERROR | DAE, adquirente filas 98, 100, 103 |
| Importe total Entidad Emisor · `@currencyID` | Si existe el atributo, el valor es diferente al ingresado en 'Importe total procesado en el periodo' · Listado: Catálogo (002) | ERROR | DAE, adquirente fila 113 |
| Tipo de moneda de la comisión · `/Invoice/cac:InvoiceLine/cbc:LineExtensionAmount@currencyID` | Si existe el atributo, el valor es diferente al ingresado en 'Importe total procesado en el periodo' · Listado: Catálogo (002) | ERROR | DAE, adquirente fila 118 |
| Otros Abonos · Otros Cargos/descuentos · `@currencyID` | Si existe el atributo, el valor es diferente al ingresado en 'Importe total procesado en el periodo' · Listado: Catálogo (002) | ERROR | DAE, adquirente fila 130 |
| Total de IGV · `@currencyID` | Si existe el atributo, el valor es diferente al ingresado en 'Importe total procesado en el periodo' | ERROR | DAE, adquirente filas 134, 136 |
| Total de IGV · `@currencyID` | Si existe el atributo, el valor es diferente al ingresado en 'Importe total procesado en el periodo' · Listado: Catálogo (002) | ERROR | DAE, adquirente fila 139 |
| Monto abonado en el periodo facturado · `/Invoice/cac:LegalMonetaryTotal/cbc:PayableAmount@currencyID` | Si existe el atributo, el valor es diferente al ingresado en 'Importe total procesado en el periodo' · Listado: Catálogo (002) | ERROR | DAE, adquirente fila 157 |
| Total valor de venta del partícipe · `@currencyID` | Si existe el atributo, el valor es diferente al ingresado en "Importe total de DAE" · Listado: Catálogo (002) | ERROR | DAE, operador fila 78 |
| Total impuestos del partícipe · `@currencyID` | Si existe el atributo, el valor es diferente al ingresado en "Importe total de DAE" · Listado: Catálogo (002) | ERROR | DAE, operador fila 83 |
| Sumatoria ISC del partícipe · `@currencyID` | Si existe el atributo, el valor es diferente al ingresado en "Importe total de DAE" · Listado: Catálogo (002) | ERROR | DAE, operador fila 86 |
| Sumatoria IGV del partícipe · `@currencyID` | Si existe el atributo, el valor es diferente al ingresado en "Importe total de DAE" · Listado: Catálogo (002) | ERROR | DAE, operador fila 96 |
| Fondo de Inclusión Social Energético (FISE) del partícipe · Otros Cargos/Descuentos del partícipe · `@currencyID` | Si existe el atributo, el valor es diferente al ingresado en "Importe total de DAE" · Listado: Catálogo (002) | ERROR | DAE, operador filas 114, 116 |
| Importe total del partícipe · `@currencyID` | Si existe el atributo, el valor es diferente al ingresado en "Importe total de DAE" · Listado: Catálogo (002) | ERROR | DAE, operador fila 120 |
| Valor unitario por ítem - detalle del partícipe · `@currencyID` | Si existe el atributo, el valor es diferente al ingresado en "Importe total de DAE" · Listado: Catálogo (002) | ERROR | DAE, operador fila 136 |
| Valor de venta por ítem - detalle del partícipe · `@currencyID` | Si existe el atributo, el valor es diferente al ingresado en "Importe total de DAE" · Listado: Catálogo (002) | ERROR | DAE, operador fila 139 |
| Total Impuestos por ítem - detalle del partícipe · `@currencyID` | Si existe el atributo, el valor es diferente al ingresado en "Importe total de DAE" · Listado: Catálogo (002) | ERROR | DAE, operador fila 144 |
| Monto de ISC por ítem - detalle del partícipe · `@currencyID` | Si existe el atributo, el valor es diferente al ingresado en "Importe total de DAE" · Listado: Catálogo (002) | ERROR | DAE, operador fila 146 |
| Monto de IGV por ítem - detalle por partícipe · `@currencyID` | Si existe el atributo, el valor es diferente al ingresado en "Importe total de DAE" · Listado: Catálogo (002) | ERROR | DAE, operador filas 157, 161 |
| Cargos y Descuentos por ítem - detalle por partícipe · `@currencyID` | Si existe el atributo, el valor es diferente al ingresado en "Importe total de DAE" · Listado: Catálogo (002) | ERROR | DAE, operador filas 181, 183 |
| Importe total por ítem - detalle del partícipe · `@currencyID` | Si existe el atributo, el valor es diferente al ingresado en "Importe total de DAE" · Listado: Catálogo (002) | ERROR | DAE, operador fila 187 |
| Importe total - Valor de Venta · `@currencyID` | Si existe el atributo, el valor es diferente al ingresado en "Importe total de DAE" · Listado: Catálogo (002) | ERROR | DAE, operador fila 193 |
| Importe Total - IGV · `@currencyID` | Si existe el atributo, el valor es diferente al ingresado en "Importe total de DAE" · Listado: Catálogo (002) | ERROR | DAE, operador fila 197 |
| Importe Total - ISC · `@currencyID` | Si existe el atributo, el valor es diferente al ingresado en "Importe total de DAE" · Listado: Catálogo (002) | ERROR | DAE, operador fila 208 |
| Importe Total - Impuestos · `@currencyID` | Si existe el atributo, el valor es diferente al ingresado en "Importe total de DAE" · Listado: Catálogo (002) | ERROR | DAE, operador fila 219 |
| Importe Total - Descuentos · (Que no afectan la base) · `@currencyID` | Si existe el atributo, el valor es diferente al ingresado en "Importe total de DAE" · Listado: Catálogo (002) | ERROR | DAE, operador fila 223 |
| Importe Total - Cargos · (Que no afectan la base) · `@currencyID` | Si existe el atributo, el valor es diferente al ingresado en "Importe total de DAE" · Listado: Catálogo (002) | ERROR | DAE, operador fila 227 |
| Valor del Servicio · `@currencyID` | Si existe el atributo, el valor del atributo es diferente al ingresado en 'Tipo de moneda' · Listado: Catálogo (002) | ERROR | DAE, SEAE fila 64 |
| Monto total de tributos · `@currencyID` | Si existe el atributo, el valor es diferente al ingresado en 'Tipo de moneda' | ERROR | DAE, SEAE fila 70 |
| Total valor de Servicio - operaciones gravadas (IGV) · Total del IGV · `@currencyID` | Si existe el atributo, el valor es diferente al ingresado en 'Tipo de moneda' | ERROR | DAE, SEAE filas 74, 77 |
| Importe total · `@currencyID` | Si existe el atributo, el valor es diferente al ingresado en 'Tipo de moneda' · Listado: Catálogo (002) | ERROR | DAE, SEAE fila 93 |
| Tipo de moneda en la cual se emite el documento de atribución · `/Invoice/cbc:DocumentCurrencyCode` | La moneda de los montos atribuidos y totales de comprobantes es diferente al valor del Tag UBL | ERROR | DOAE, atribución fila 30 |
| Monto por atribuir · `@currencyID` | Si existe el atributo, el valor es diferente al ingresado en 'Tipo de moneda' · Listado: Catálogo (002) | ERROR | DOAE, atribución fila 94 |
| Monto atribuido · `@currencyID` | Si existe el atributo, el valor es diferente al ingresado en 'Tipo de moneda' · Listado: Catálogo (002) | ERROR | DOAE, atribución fila 98 |
| Total montos atribuidos · `@currencyID` | Si existe el atributo, el valor es diferente al ingresado en 'Tipo de moneda' · Listado: Catálogo (002) | ERROR | DOAE, atribución fila 102 |
| IGV- Régimen de recuperación anticipada · `@currencyID` | Si existe el atributo, el valor es diferente al ingresado en 'Tipo de moneda' · Listado: Catálogo (002) | ERROR | DOAE, atribución fila 105 |

## Otros códigos del mismo campo

| Código | Efecto | Texto de la SUNAT |
| --- | --- | --- |
| [2071](https://fe.kembec.com/errores/2071/) | Rechazo | La moneda debe ser la misma en todo el documento. Salvo las percepciones que sólo son en moneda nacional |
| [3088](https://fe.kembec.com/errores/3088/) | Rechazo | El valor ingresado como moneda del comprobante no es valido (catalogo nro 02). |
| [2070](https://fe.kembec.com/errores/2070/) | Rechazo | El XML no contiene el tag o no existe informacion de DocumentCurrencyCode |
| [2788](https://fe.kembec.com/errores/2788/) | Rechazo | El dato ingresado en moneda debe ser PEN |
| [2792](https://fe.kembec.com/errores/2792/) | Rechazo | El dato ingresado en moneda del monto de cargo/descuento para percepcion debe ser PEN |
| [3208](https://fe.kembec.com/errores/3208/) | Rechazo | La moneda del monto de la detracción debe ser PEN |

[Los 2.077 códigos](https://fe.kembec.com/errores/)

Fuente

Textos y reglas copiados sin cambios de la hoja [«Reglas de validación actualizado al 24.04.2026»](https://cpe.sunat.gob.pe/sites/default/files/2026-05/Reglas%20de%20validaci%C3%B3n%20actualizado%20al%2024.04.2026%20%281%29.xlsx) de la SUNAT, publicada en [cpe.sunat.gob.pe](https://cpe.sunat.gob.pe/) y descargada el 17.10.2026.
