1.0.7 • Published 5 years ago

sunat-catalogs v1.0.7

Weekly downloads
1
License
ISC
Repository
github
Last release
5 years ago

Instalación y uso

npm install --save sunat-catalogs
const Catalogs = require('sunat-catalogs');

Atributos Estáticos (Statics Attributes)

Todos los catálogos definidos en la sección "Definición de Catálogos", tendrán los siguientes atributos estáticos, los cuales nos permitiran acceder a los metadatos del catálogo.

AtributoDescripción
numeroCatNúmero de catálogo
tituloCatTítulo del catálogo
nombreCatNombre del catálogo definida por la agencia
agenciaCatAgencia del catálogo
uriCatURI del catálogo
const { TipoTributo } = require('sunat-catalogs');

console.log(TipoTributo.numeroCat); 
// Resultado: 05

console.log(TipoTributo.tituloCat); 
// Resultado: Código de tipos de tributos y otros conceptos

console.log(TipoTributo.nombreCat); 
// Resultado: Codigo de tributos

console.log(TipoTributo.agenciaCat); 
// Resultado: PE:SUNAT

console.log(TipoTributo.uriCat); 
// Resultado: urn:pe:gob:sunat:cpe:see:gem:catalogos:catalogo05

console.log(`Catálogo Nro. ${TipoTributo.numeroCat} - ${TipoTributo.tituloCat}`);
// Resultado: Catálogo Nro. 05 - Código de tipos de tributos y otros conceptos

IMPORTANTE:Los métodos estáticos se llaman sin crear instancias de su clase y tampoco son invocables cuando se instancia la clase.

Funciones

Todos los catálogos definidos en la sección "Definición de Catálogos", tendrán definida la funcióndescripcion()para acceder a la descripción de los códigos de los catálogos.Cada catálogo también cuenta con funciones propias.

const { TipoTributo } = require('sunat-catalogs');

const tributo = new TipoTributo(TipoTributo.ICBPER);

console.log(tributo.descripcion());
// Resultado: Impuesto al Consumo de las bolsas de plástico

console.log(tributo.nombre());
// Resultado: ICBPER

console.log(tributo.categoria());
// Resultado: S

console.log(tributo.codigo());
// Resultado: OTH

Definición de Catálogos

Catálogo Nro. 01 - Código de Tipo de Documento

Para este catálogo se ha definido la clase de nombre TipoDocumeto, la misma que cuenta con las siguientes funciones:

  • descripcion()- Permite obtener la descripción del tipo de documento
const { TipoDocumento } = require('sunat-catalogs');

const documento = new TipoDocumento(TipoDocumento.FA);

console.log(documento.descripcion());
// Resultado: Factura

En la siguiente tabla se describen las constantes disponibles:

ConstanteCódigoDescripción
FA01Factura
BV03Boleta de Venta
NC07Nota de Crédito
ND08Nota de Débito
GRR09Guía de Remisión Remitente
CPER20Comprobante de Retención
GRT31Guía de Remisión Transportista
CPEP40Comprobante de Percepción

Catálogo Nro. 02 - Código de Tipo de Monedas

Para este catálogo se ha definido la clase de nombre TipoMoneda, la misma que cuenta con las siguientes funciones:

  • descripcion()- Permite obtener la descripción del tipo de moneda
const { TipoMoneda } = require('sunat-catalogs');

const moneda = new TipoMoneda(TipoMoneda.SOL);

console.log(moneda.descripcion());
// Resultado: Sol

En la siguiente tabla se describen las constantes disponibles:

ConstanteCódigoDescripción
SOLPENSol
DOLARUSDUS Dollar
EUROEUREuro

Catálogo Nro. 03 - Códigos de Tipo de Unidad de Medida

Para este catálogo se ha definido la clase de nombre TipoUnidadMedida, la misma que cuenta con las siguientes funciones:

  • descripcion()- Permite obtener la descripción del tipo de unidad de medida
const { TipoUnidadMedida } = require('sunat-catalogs');

const medida = new TipoUnidadMedida(TipoUnidadMedida.UNIDAD_INTERNACIONAL);

console.log(medida.descripcion());
// Resultado: Número de unidades internacionales

En la siguiente tabla se describen las constantes disponibles:

ConstanteCódigoDescripción
UNIDAD_INTERNACIONALNIUNúmero de unidades internacionales
UNIDAD_MEDIDA_ACORDADAZZUnidad de medida acordada entre dos partes

Catálogo Nro. 04 - Código de País

Para este catálogo se ha definido la clase de nombre Pais, la misma que cuenta con las siguientes funciones:

  • descripcion()- Permite obtener la descripción del país
const { Pais } = require('sunat-catalogs');

const pais = new Pais(Pais.PERU);

console.log(pais.descripcion());
// Resultado: Perú

En la siguiente tabla se describen las constantes disponibles:

ConstanteCodigoDescripción
PERUPEPerú

Catálogo Nro. 05 - Código de Tipos de Tributos

Para este catálogo se ha definido la clase de nombre TipoTributo, la misma que cuenta con las siguientes funciones:

  • descripcion()- Permite obtener la descripción del tipo de tributo
  • nombre()- Permite obtener el nombre del tipo de tributo
  • categoria()- Permite obtener la categoría del tipo de tributo
  • codigo()- Permite obtener el código internacional del tipo de tributo
const { TipoTributo } = require('sunat-catalogs');

const tributo = new TipoTributo(TipoTributo.IGV);

console.log(tributo.descripcion());
// Resultado: IGV Impuesto General a las Ventas

console.log(tributo.nombre());
// Resultado: IGV

console.log(tributo.categoria());
// Resultado: S

console.log(tributo.codigo());
// Resultado: VAT

En la siguiente tabla se describen las constantes disponibles:

ConstanteCódigoDescripción
IGV1000Impuesto General a las Ventas
IVAP1016Impuesto a la Venta Arroz Pilado
ISC2000Impuesto al Consumo de las Bolsas de Plástico
ICBPER7152Impuesto a la Bolsa Plastica
EXP9995Exportación
GRA9996Gratuito
EXO9997Exonerado
INA9998Inafecto
OTROS9999Otros Tributos

Catálogo Nro. 06 - Código de Tipo de Documento de Identidad

Para este catálogo se ha definido la clase de nombre TipoDocumentoIdentidad, la misma que cuenta con las siguientes funciones:

  • descripcion()- Permite obtener la descripción del documento de identidad
const { TipoDocumentoIdentidad } = require('sunat-catalogs');

const documento = new TipoDocumentoIdentidad(TipoDocumentoIdentidad.DNI);

console.log(documento.descripcion());
// Resultado: Documento Nacional de Identidad

En la siguiente tabla se describen las constantes disponibles:

ConstanteCódigoDescripción
NO_DOMICILIADO0DOC.TRIB.NO.DOM.SIN.RUC
DNI1Documento Nacional de Identidad
CARNET_EXTRANJERIA4Carnet de extranjería
RUC6Registro Unico de Contributentes
PASAPORTE7Pasaporte
TINCTIN - Doc Trib PP.NN
INDIN - Doc Trib PP. JJ
TAMETAM - Tarjeta Andina de Migración

Catálogo Nro. 07 - Código de Tipo de Afectación del IGV

Para este catálogo se ha definido la clase de nombre TipoAfectacionIgv, la misma que cuenta con las siguientes funciones:

  • descripcion()- Permite obtener la descripción del tipo de afectación
  • codTributo(onerosa)- Permite obtener el código del tributo relacionado al tipo de afectación
    • onerosa- Definir como true si la operación es onerosa y false si la operación es gratuita
const { TipoAfectacionIgv } = require('sunat-catalogs');

const afectacion = new TipoAfectacionIgv(TipoAfectacionIgv.GRAVADO_IVAP);

console.log(afectacion.descripcion());
// Resultado: Gravado - IVAP

console.log(afectacion.codTributo(true));
// Resultado: 1016

console.log(afectacion.codTributo(false));
// Resultado: 9996

En la siguiente tabla se describen las constantes disponibles:

ConstanteCódigoDescripción
GRAVADO_ONEROSA10Gravado - Operación Onerosa
GRAVADO_PREMIO11Gravado - Retiro por premio
GRAVADO_DONACION12Gravado - Retiro por donación
GRAVADO_RETIRO13Gravado - Retiro
GRAVADO_PUBLICIDAD14Gravado - Retiro por publicidad
GRAVADO_BONIFICACIONES15Gravado - Bonificaciones
GRAVADO_ENTREGA_TRABAJADORES16Gravado - Retiro por entrega a trabajadores
GRAVADO_IVAP17Gravado - IVAP
EXONERADO_ONEROSA20Exonerado - Operación Onerosa
EXONERADO_GRATUITA21Exonerado - Transferencia gratuita
INAFECTO_ONEROSA30Inafecto - Operación Onerosa
INAFECTO_BONIFICACION31Inafecto - Retiro por Bonificación
INAFECTO_RETIRO32Inafecto - Retiro
INAFECTO_MUESTRAS_MEDICAS33Inafecto - Retiro por Muestras Médicas
INAFECTO_CONVENIO_COLECTIVO34Inafecto - Retiro por Convenio Colectivo
INAFECTO_PREMIO35Inafecto - Retiro por premio
INAFECTO_PUBLICIDAD36Inafecto - Retiro por publicidad
INAFECTO_GRATUITA37Inafecto - Transferencia gratuita
EXPORTACION40Exportación de Bienes o Servicios

Catálogo Nro. 08 - Código de Tipos de Sistema de Cálculo del ISC

Para este catálogo se ha definido la clase de nombre TipoSistemaIsc, la misma que cuenta con las siguientes funciones:

  • descripcion()- Permite obtener la descripción del tipo de sistema de cálculo
const { TipoSistemaIsc } = require('sunat-catalogs');

const documento = new TipoSistemaIsc(TipoSistemaIsc.SISTEMA_VALOR);

console.log(documento.descripcion());
// Resultado: Sistema al valor

En la siguiente tabla se describen las constantes disponibles:

ConstanteCódigoDescripción
SISTEMA_VALOR01Sistema al valor
APLICACION_MONTO_FIJO02Aplicación del monto fijo
SISTEMA_PRECIO_PUBLICO03Sistema de precios de venta al público

Catálogo Nro. 09 - Códigos de Tipo de Nota de Crédito

Para este catálogo se ha definido la clase de nombre TipoNotaCredito, la misma que cuenta con las siguientes funciones:

  • descripcion()- Permite obtener la descripción del tipo de nota de crédito
const { TipoNotaCredito } = require('sunat-catalogs');

const nc = new TipoNotaCredito(TipoNotaCredito.ANULACION_OPERACION);

console.log(nc.descripcion());
// Resultado: Anulación de la operación

En la siguiente tabla se describen las constantes disponibles:

ConstanteCódigoDescripción
ANULACION_OPERACION01Anulación de la operación
ANULACION_ERROR_RUC02Anulación por error en el RUC
CORRECCION_ERROR_DESCRIPCION03Corrección por error en la descripción
DESCUENTO_GLOBAL04Descuento global
DESCUENTO_ITEM05Descuento por ítem
DEVOLUCION_TOTAL06Devolución total
DEVOLUCION_ITEM07Devolución por ítem
BONIFICACION08Bonificación
DISMINUCION_VALOR09Disminución en el valor
OTROS_CONCEPTOS10Otros Conceptos
AJUSTES_OPERACION_EXPORTACION11Ajustes de operaciones de exportación
AJUSTES_AFECTOS_IVAP12Ajustes afectos al IVAP

Catálogo Nro. 10 - Códigos de Tipo de Nota de Débito

Para este catálogo se ha definido la clase de nombre TipoNotaDebito, la misma que cuenta con las siguientes funciones:

  • descripcion()- Permite obtener la descripción del tipo de nota de débito
const { TipoNotaDebito } = require('sunat-catalogs');

const nd = new TipoNotaDebito(TipoNotaDebito.INTERESES_MORA);

console.log(nd.descripcion());
// Resultado: Intereses por mora

En la siguiente tabla se describen las constantes disponibles:

ConstanteCódigoDescripción
INTERESES_MORA01Intereses por mora
AUMENTO_VALOR02Aumento en el valor
PENALIDADES03Penalidades/ otros conceptos
AJUSTES_OPERACION_EXPORTACION11Ajustes de operaciones de exportación
AJUSTES_AFECTOS_IVAP12Ajustes afectos al IVAP

Catálogo Nro. 12 - Código de Documentos Relacionados

Para este catálogo se ha definido la clase de nombre DocumentoRelacionado, la misma que cuenta con las siguientes funciones:

  • descripcion()- Permite obtener la descripción del documento relacionado
const { DocumentoRelacionado } = require('sunat-catalogs');

const documento = new DocumentoRelacionado(DocumentoRelacionado.FA_ANTICIPO);

console.log(documento.descripcion());
// Resultado: Factura - emitida por anticipos

En la siguiente tabla se describen las constantes disponibles:

ConstanteCódigoDescripción
FA_CORREGIR_RUC01Factura - emitida para corregir error en el RUC
FA_ANTICIPO02Factura - emitida por anticipos
BV_ANTICIPO03Boleta de Venta - emitida por anticipos
TICKET_SALIDA_ENAPU04Ticket de Salida - ENAPU
CODIGO_SCOP05Código SCOP
OTROS99Otros

Catálogo Nro. 16 - Código de Tipo de Precio de Venta (TipoPrecioVenta)

Para este catálogo se ha definido la clase de nombre DocumentoRelacionado, la misma que cuenta con las siguientes funciones:

  • descripcion()- Permite obtener la descripción del documento relacionado
const { DocumentoRelacionado } = require('sunat-catalogs');

const documento = new DocumentoRelacionado(DocumentoRelacionado.FA_ANTICIPO);

console.log(documento.descripcion());
// Resultado: Factura - emitida por anticipos

En la siguiente tabla se describen las constantes disponibles:

ConstanteCódigoDescripción
PRECIO_UNITARIO01Precio unitario (incluye el IGV)
VALOR_REFERENCIAL_UNITARIO02Valor referencial unitario en operaciones no onerosas (Gratuitas)
TARIFAS_REGULADAS03Tarifas reguladas

Catálogo Nro. 19 - Código de Estado del Ítem

Para este catálogo se ha definido la clase de nombre EstadoItem, la misma que cuenta con las siguientes funciones:

  • descripcion()- Permite obtener la descripción del estado de ítem
const { EstadoItem } = require('sunat-catalogs');

const estado = new EstadoItem(EstadoItem.ADICIONAR);

console.log(estado.descripcion());
// Resultado: Adicionar

En la siguiente tabla se describen las constantes disponibles:

ConstanteCódigoDescripción
ADICIONAR1Adicionar
MODIFICAR2Modificar
ANULADO3Anulado

Catálogo Nro. 22 - Código de Regimen de Percepciones

Para este catálogo se ha definido la clase de nombre RegimenPercepcion, la misma que cuenta con las siguientes funciones:

  • descripcion()- Permite obtener la descripción de la percepción
  • tasa()- Permite obtener la tasa de percepción
const { RegimenPercepcion } = require('sunat-catalogs');

const percepcion = new RegimenPercepcion(RegimenPercepcion.VENTA_INTERNA);

console.log(percepcion.descripcion());
// Resultado: Percepción venta interna

console.log(percepcion.tasa());
// Resultado: 2.00

En la siguiente tabla se describen las constantes disponibles:

ConstanteCódigoDescripción
VENTA_INTERNA01Percepción venta interna
ADQUISICION_COMBUSTIBLE02Percepción a la adquisición de combustible
TASA_ESPECIAL03Percepción realizada al agente de percepción con tasa especial

Catálogo Nro. 23 - Código de Regimen de Retenciones

Para este catálogo se ha definido la clase de nombre RegimenRetencion, la misma que cuenta con las siguientes funciones:

  • descripcion()- Permite obtener la descripción de la retención
  • tasa()- Permite obtener la tasa de retención
const { RegimenRetencion } = require('sunat-catalogs');

const retencion = new RegimenRetencion(RegimenRetencion.TASA_3);

console.log(retencion.descripcion());
// Resultado: Tasa 3%

console.log(retencion.tasa());
// Resultado: 3.00

En la siguiente tabla se describen las constantes disponibles:

ConstanteCódigoDescripción
TASA_301Tasa 3%
TASA_602Tasa 6%

Catálogo Nro. 51 - Códigos de Tipo de Operación

Para este catálogo se ha definido la clase de nombre TipoOperacion, la misma que cuenta con las siguientes funciones:

  • descripcion()- Permite obtener la descripción del tipo de operación
const { TipoOperacion } = require('sunat-catalogs');

const operacion = new TipoOperacion(TipoOperacion.VENTA_INTERNA);

console.log(operacion.descripcion());
// Resultado: Venta interna

En la siguiente tabla se describen las constantes disponibles:

ConstanteCódigoDescripción
VENTA_INTERNA0101Venta interna
VENTA_INTERNA_GASTOS_DEDUCIBLES0112Sustenta gastos deducibles PPNN
VENTA_INTERNA_NRUS0113NRUS
EXPORTACION_BIENES0200Exportación de Bienes
EXPORTACION_SERVICIOS_INTEGRAMENTE_PAIS0201Prestación servicios realizados íntegramente en el país
EXPORTACION_SERVICIOS_HOSPEDAJE_NO_DOMICILIADO0202Prestación de servicios de hospedaje no domiciliado
EXPORTACION_SERVICIOS_TRANSPORTE_NAVIERAS0203Transporte de navieras
EXPORTACION_SERVICIOS_NAVES_AERONAVES_EXTRANJERAS0204Servicios a naves y aeronaves de bandera extranjera
EXPORTACION_SERVICIOS_PAQUETE_TURISTICO0205Servicios que conformen un paquete turístico
EXPORTACION_SERVICIOS_TRANSPORTE_CARGA0206Servicios complementarios al transporte de carga
EXPORTACION_SERVICIOS_SUMINISTRO_ELECTRICO_ZED0207Suministro de energía eléctrica domiciliados en ZED
EXPORTACION_SERVICIOS_PARCIALMENTE_EXTRANJERO0208Prestación servicios realizados parcialmente en el extranjero
OPERACIONES_CARTA_PORTE_AEREO0301Operaciones con carta de porte aéreo
OPERACIONES_TRANSPORTE_FERROVIARIO0302Operaciones de transporte ferroviario de pasajeros
OPERACIONES_REGALIA_PETROLEO0303Operaciones de pago de regalía petrolera
VENTA_NO_DOMICILIADA_NO_CALIFICA_EXPORTACION0401Ventas no domiciliados que no califican como exportación
OPERACION_DETRACCION1001Operación sujeta a detracción
OPERACION_DETRACCION_RECURSOS_HIDROBIOLOGICOS1002Recursos hidrobiológicos
OPERACION_DETRACCION_TRANSPORTE_PASAJEROS1003Servicios de transporte pasajeros
OPERACION_DETRACCION_TRANSPORTE_CARGA1004Servicios de transporte carga
OPERACION_PERCEPCION2001Operación sujeta a percepción

Catálogo Nro. 53 - Códigos de Cargos o Descuentos

Para este catálogo se ha definido la clase de nombre CargoDescuento, la misma que cuenta con las siguientes funciones:

  • descripcion()- Permite obtener la descripción del cargo o descuento
  • indicador()- Permite saber si el código corresponde a un cargo (true) o un descuento (false)
  • nivel()- Permite obtener el nivel relacionado al código (item o global)
  • esCargoDet()- Determina si corresponde a un cargo por detalle (true o false)
  • esDescuentoDet()- Determina si corresponde a un descuento por detalle (true o false)
  • esCargoGlb()- Determina si corresponde a un cargo global (true o false)
  • esDescuentoGlb()- Determina si corresponde a un descuento global (true o false)
const { CargoDescuento } = require('sunat-catalogs');

const operacion = new CargoDescuento(CargoDescuento.DCTOS_ITEM_AFECTA_BASE_IGV_IVAP);

console.log(operacion.descripcion());
// Resultado: Descuentos que afectan la base imponible del IGV/IVAP

En la siguiente tabla se describen las constantes disponibles:

ConstanteCódigoDescripción
DCTOS_ITEM_AFECTA_BASE_IGV_IVAP00Descuentos que afectan la base imponible del IGV/IVAP
DCTOS_ITEM_NO_AFECTA_BASE_IGV_IVAP01Descuentos que no afectan la base imponible del IGV/IVAP
DCTOS_GLOBAL_AFECTA_BASE_IGV_IVAP02Descuentos globales que afectan la base imponible del IGV/IVAP
DCTOS_GLOBAL_NO_AFECTA_BASE_IGV_IVAP03Descuentos globales que no afectan la base imponible del IGV/IVAP
CARGOS_ITEM_AFECTA_BASE_IGV_IVAP47Cargos que afectan la base imponible del IGV/IVAP
CARGOS_ITEM_NO_AFECTA_BASE_IGV_IVAP48Cargos que no afectan la base imponible del IGV/IVAP
CARGOS_GLOBAL_AFECTA_BASE_IGV_IVAP49Cargos globales que afectan la base imponible del IGV/IVAP
CARGOS_GLOBAL_NO_AFECTA_BASE_IGV_IVAP50Cargos globales que no afectan la base imponible del IGV/IVAP
1.0.7

5 years ago

1.0.6

5 years ago

1.0.5

5 years ago

1.0.4

5 years ago

1.0.3

5 years ago

1.0.2

5 years ago

1.0.1

5 years ago