sunat-catalogs

    1.0.7 • Public • Published

    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.

    Atributo Descripción
    numeroCat Número de catálogo
    tituloCat Título del catálogo
    nombreCat Nombre del catálogo definida por la agencia
    agenciaCat Agencia del catálogo
    uriCat URI 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:

    Constante Código Descripción
    FA 01 Factura
    BV 03 Boleta de Venta
    NC 07 Nota de Crédito
    ND 08 Nota de Débito
    GRR 09 Guía de Remisión Remitente
    CPER 20 Comprobante de Retención
    GRT 31 Guía de Remisión Transportista
    CPEP 40 Comprobante 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:

    Constante Código Descripción
    SOL PEN Sol
    DOLAR USD US Dollar
    EURO EUR Euro

    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:

    Constante Código Descripción
    UNIDAD_INTERNACIONAL NIU Número de unidades internacionales
    UNIDAD_MEDIDA_ACORDADA ZZ Unidad 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:

    Constante Codigo Descripción
    PERU PE Perú

    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:

    Constante Código Descripción
    IGV 1000 Impuesto General a las Ventas
    IVAP 1016 Impuesto a la Venta Arroz Pilado
    ISC 2000 Impuesto al Consumo de las Bolsas de Plástico
    ICBPER 7152 Impuesto a la Bolsa Plastica
    EXP 9995 Exportación
    GRA 9996 Gratuito
    EXO 9997 Exonerado
    INA 9998 Inafecto
    OTROS 9999 Otros 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:

    Constante Código Descripción
    NO_DOMICILIADO 0 DOC.TRIB.NO.DOM.SIN.RUC
    DNI 1 Documento Nacional de Identidad
    CARNET_EXTRANJERIA 4 Carnet de extranjería
    RUC 6 Registro Unico de Contributentes
    PASAPORTE 7 Pasaporte
    TIN C TIN - Doc Trib PP.NN
    IN D IN - Doc Trib PP. JJ
    TAM E TAM - 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:

    Constante Código Descripción
    GRAVADO_ONEROSA 10 Gravado - Operación Onerosa
    GRAVADO_PREMIO 11 Gravado - Retiro por premio
    GRAVADO_DONACION 12 Gravado - Retiro por donación
    GRAVADO_RETIRO 13 Gravado - Retiro
    GRAVADO_PUBLICIDAD 14 Gravado - Retiro por publicidad
    GRAVADO_BONIFICACIONES 15 Gravado - Bonificaciones
    GRAVADO_ENTREGA_TRABAJADORES 16 Gravado - Retiro por entrega a trabajadores
    GRAVADO_IVAP 17 Gravado - IVAP
    EXONERADO_ONEROSA 20 Exonerado - Operación Onerosa
    EXONERADO_GRATUITA 21 Exonerado - Transferencia gratuita
    INAFECTO_ONEROSA 30 Inafecto - Operación Onerosa
    INAFECTO_BONIFICACION 31 Inafecto - Retiro por Bonificación
    INAFECTO_RETIRO 32 Inafecto - Retiro
    INAFECTO_MUESTRAS_MEDICAS 33 Inafecto - Retiro por Muestras Médicas
    INAFECTO_CONVENIO_COLECTIVO 34 Inafecto - Retiro por Convenio Colectivo
    INAFECTO_PREMIO 35 Inafecto - Retiro por premio
    INAFECTO_PUBLICIDAD 36 Inafecto - Retiro por publicidad
    INAFECTO_GRATUITA 37 Inafecto - Transferencia gratuita
    EXPORTACION 40 Exportació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:

    Constante Código Descripción
    SISTEMA_VALOR 01 Sistema al valor
    APLICACION_MONTO_FIJO 02 Aplicación del monto fijo
    SISTEMA_PRECIO_PUBLICO 03 Sistema 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:

    Constante Código Descripción
    ANULACION_OPERACION 01 Anulación de la operación
    ANULACION_ERROR_RUC 02 Anulación por error en el RUC
    CORRECCION_ERROR_DESCRIPCION 03 Corrección por error en la descripción
    DESCUENTO_GLOBAL 04 Descuento global
    DESCUENTO_ITEM 05 Descuento por ítem
    DEVOLUCION_TOTAL 06 Devolución total
    DEVOLUCION_ITEM 07 Devolución por ítem
    BONIFICACION 08 Bonificación
    DISMINUCION_VALOR 09 Disminución en el valor
    OTROS_CONCEPTOS 10 Otros Conceptos
    AJUSTES_OPERACION_EXPORTACION 11 Ajustes de operaciones de exportación
    AJUSTES_AFECTOS_IVAP 12 Ajustes 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:

    Constante Código Descripción
    INTERESES_MORA 01 Intereses por mora
    AUMENTO_VALOR 02 Aumento en el valor
    PENALIDADES 03 Penalidades/ otros conceptos
    AJUSTES_OPERACION_EXPORTACION 11 Ajustes de operaciones de exportación
    AJUSTES_AFECTOS_IVAP 12 Ajustes 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:

    Constante Código Descripción
    FA_CORREGIR_RUC 01 Factura - emitida para corregir error en el RUC
    FA_ANTICIPO 02 Factura - emitida por anticipos
    BV_ANTICIPO 03 Boleta de Venta - emitida por anticipos
    TICKET_SALIDA_ENAPU 04 Ticket de Salida - ENAPU
    CODIGO_SCOP 05 Código SCOP
    OTROS 99 Otros

    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:

    Constante Código Descripción
    PRECIO_UNITARIO 01 Precio unitario (incluye el IGV)
    VALOR_REFERENCIAL_UNITARIO 02 Valor referencial unitario en operaciones no onerosas (Gratuitas)
    TARIFAS_REGULADAS 03 Tarifas 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:

    Constante Código Descripción
    ADICIONAR 1 Adicionar
    MODIFICAR 2 Modificar
    ANULADO 3 Anulado

    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:

    Constante Código Descripción
    VENTA_INTERNA 01 Percepción venta interna
    ADQUISICION_COMBUSTIBLE 02 Percepción a la adquisición de combustible
    TASA_ESPECIAL 03 Percepció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:

    Constante Código Descripción
    TASA_3 01 Tasa 3%
    TASA_6 02 Tasa 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:

    Constante Código Descripción
    VENTA_INTERNA 0101 Venta interna
    VENTA_INTERNA_GASTOS_DEDUCIBLES 0112 Sustenta gastos deducibles PPNN
    VENTA_INTERNA_NRUS 0113 NRUS
    EXPORTACION_BIENES 0200 Exportación de Bienes
    EXPORTACION_SERVICIOS_INTEGRAMENTE_PAIS 0201 Prestación servicios realizados íntegramente en el país
    EXPORTACION_SERVICIOS_HOSPEDAJE_NO_DOMICILIADO 0202 Prestación de servicios de hospedaje no domiciliado
    EXPORTACION_SERVICIOS_TRANSPORTE_NAVIERAS 0203 Transporte de navieras
    EXPORTACION_SERVICIOS_NAVES_AERONAVES_EXTRANJERAS 0204 Servicios a naves y aeronaves de bandera extranjera
    EXPORTACION_SERVICIOS_PAQUETE_TURISTICO 0205 Servicios que conformen un paquete turístico
    EXPORTACION_SERVICIOS_TRANSPORTE_CARGA 0206 Servicios complementarios al transporte de carga
    EXPORTACION_SERVICIOS_SUMINISTRO_ELECTRICO_ZED 0207 Suministro de energía eléctrica domiciliados en ZED
    EXPORTACION_SERVICIOS_PARCIALMENTE_EXTRANJERO 0208 Prestación servicios realizados parcialmente en el extranjero
    OPERACIONES_CARTA_PORTE_AEREO 0301 Operaciones con carta de porte aéreo
    OPERACIONES_TRANSPORTE_FERROVIARIO 0302 Operaciones de transporte ferroviario de pasajeros
    OPERACIONES_REGALIA_PETROLEO 0303 Operaciones de pago de regalía petrolera
    VENTA_NO_DOMICILIADA_NO_CALIFICA_EXPORTACION 0401 Ventas no domiciliados que no califican como exportación
    OPERACION_DETRACCION 1001 Operación sujeta a detracción
    OPERACION_DETRACCION_RECURSOS_HIDROBIOLOGICOS 1002 Recursos hidrobiológicos
    OPERACION_DETRACCION_TRANSPORTE_PASAJEROS 1003 Servicios de transporte pasajeros
    OPERACION_DETRACCION_TRANSPORTE_CARGA 1004 Servicios de transporte carga
    OPERACION_PERCEPCION 2001 Operació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:

    Constante Código Descripción
    DCTOS_ITEM_AFECTA_BASE_IGV_IVAP 00 Descuentos que afectan la base imponible del IGV/IVAP
    DCTOS_ITEM_NO_AFECTA_BASE_IGV_IVAP 01 Descuentos que no afectan la base imponible del IGV/IVAP
    DCTOS_GLOBAL_AFECTA_BASE_IGV_IVAP 02 Descuentos globales que afectan la base imponible del IGV/IVAP
    DCTOS_GLOBAL_NO_AFECTA_BASE_IGV_IVAP 03 Descuentos globales que no afectan la base imponible del IGV/IVAP
    CARGOS_ITEM_AFECTA_BASE_IGV_IVAP 47 Cargos que afectan la base imponible del IGV/IVAP
    CARGOS_ITEM_NO_AFECTA_BASE_IGV_IVAP 48 Cargos que no afectan la base imponible del IGV/IVAP
    CARGOS_GLOBAL_AFECTA_BASE_IGV_IVAP 49 Cargos globales que afectan la base imponible del IGV/IVAP
    CARGOS_GLOBAL_NO_AFECTA_BASE_IGV_IVAP 50 Cargos globales que no afectan la base imponible del IGV/IVAP

    Install

    npm i sunat-catalogs

    DownloadsWeekly Downloads

    2

    Version

    1.0.7

    License

    ISC

    Unpacked Size

    72.4 kB

    Total Files

    28

    Last publish

    Collaborators

    • avatar