npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

apisunatludikteam

v1.0.25

Published

Updating library package

Downloads

33

Readme

Api Sunat Library 1.0.25

Esta es una libria para la creación simple de boletas y facturas conectado con Api Sunat hecho con node.js y conectado con la api de Api Sunat ✅

Install and Use

    npm i apisunatludikteam
  <script src="https://cdn.jsdelivr.net/npm/[email protected]/src/apiSunat.js"></script>
  //use import
  import { initInfo , sendBill , getId , getFileName } from 'apisunatludik'

  //use require
  const { initInfo , sendBill , getId , getFileName } = require('apisunatludik')

¿Que metodos implementa ?

La liberira implementa 4 funciones las cuales son:

  • getId
  • getFilename
  • initInfo
  • sendBill

getId (cantidad = integer , serie = string)

Este método permite generar la serieId de la boleta o factura y los parámetros que este recibe son 2 cantidad y serie

  • cantidad : Es la cantidad de boletas o facturas que tienen ya guardadas anteriormente en su base de datos 🅱 para continuar la numeración corelativamente

  • serie : Es la serie que se especifica en la documentacion de Api Sunat "F001" o "B001", F001 para factura y B001 para boletas, las cuales pueden cambiarse desde el dashboard de su cuenta de Api Sunat.

Ejemplos getId

  • Id para factura F001-00000001
  • Id para boleta B001-00000001
    const get id = getId(1,"F001") //Factura
    const get id = getId(1,"B001") //Boleta

getFileName (cantidad = integer , serie = string,typeDocument = string)

Este metodo permite generar el nombre del archivo que se enviara cuando se realice el envío de la factura o boleta el cual recibe 3 parámetros cantidad , serie y typeDocument.

Los primeros dos son los dos ya previamente mencionados.

  • typeDocument : Es el tipo de documento a emitirse boleta o factura , 03 para boleta y 01 para factura.

Ejemplos getFilename

  • Filename para boleta 10728522963-03-B001-00000001
  • FileName para Factura 10728522963-01-F001-00000001
  const get id = getFileName(1,"F001","01") //Factura
  const get id = getFileName(1,"B001","03") //Boleta

initInfo(personaToken = string , personaId = string , ruc = string)

Este metodo inicializa los datos iniciales para la creación de una boleta el cuale recibe 3 parámetros personaToken , personaId y ruc.

  • personaId ; : Es el personaId que tiene nuestra empres en nuestro dashboard de Api Sunat.

    1. Primero seleccionamos nuestra empresa ya creada. Selecciona empresa creada
    2. Luego vamos a la sección donde esta nuestra personaId. Copia personaId
  • personaToken : Es el token que genera la empresa en su dashboard de Api Sunat

    1. Primero seleccionamos nuestra empresa ya creada Selecciona empresa creada
    2. Luego vamos a la sección donde esta nuestra personaId , seleccionamos el ambiente si es de desarrollo o producción, le ponemos un nombre y hacemos click en crear personaToken. Llenar campos
  • ruc : Es el ruc de la empresa registrada en la empresa creada en ApiSunat. Nota: si se olvida el ruc puede verlo en su dashboard de api sunat Ver ruc

Ejemplos initInfo

  //estos parámetros manejarlos como enviroments variables
  let personaToken = environmment_variable;
  let personaId = environmment_variable;
  let ruc = environmment_variable;

  initInfo(personaToken,personaId,ruc);

sendBill(billInfo = Object {})

Este metodo es el que permitira agilizar y crear las boletas en un solo paso, el cual recibe como parámetro bilInfo el cual es un objecto que contendra todo lo necesario el cual se detall a continuación:

  • billInfo : Este objeto tiene las siguientes propiedades a enviar :
    • customerEmail = string : Es el correo a quien le llegara el comprobante de de Api Sunat.
    • typeDocument = string: Es el tipo de documento a emitir 01 (factura) o 03 (boleta).
    • documentValue = string: Es el numero de documento del cliente, ejemplo DNI, carnet de extranjeria , pasaporte o RUC.
    • fileName = string : Es el nombre del archivo que se enviara cuando se emita el documento
    • serieId = string : Es la serieId que se envia cuando se emita el documento
    • documentId = string : Es el tipo de documento del cliente (1-Dni ,4-Carnet de Extranjeria , 6-RUC y 7-Pasaporte)
    • infoProducts = Object : Es la lista de los productos con su total que se enviara como items dentro del documento.

Ejemplo de como enviar el infoProducts

//Estructura de infoProducts 
const infoProducts = {
  // Aquí llenar con el costo total de la orden realizada
  Total: {
    total: 70 
  },
  //Aqui un array con todos los productos que conforman todos los productos de la orden incluidos ya sea el delivery
  Items: [
    { 
      //orden o numeración
      order: 1,
      //total del costo del producto
      total: 35, 
      //N° total ese producto
      cantidad: 1, 
      //descripción del producto o su nombre
      description: "hola" 
    },
    { 
      order: 2, 
      total: 35, 
      cantidad: 1, 
      description: "hola" 
      },
  ],
}

Ejemplo de como enviar todo en el metodo sendBill

 const response = await sendBill({
      "customerEmail":"[email protected]",
      "typeDocument":"01",
      "documentValue":"10728522963",
      "documentId":"6",
      "fileName": getFileName(4,"F001","01"),
      "serieId":getId(4,"F001"),
      "infoProducts":infoProducts
      "date": new Date() //format YYYY-MM-DD
      "registrationName":"Prueba" //Nombre de la empresa
      "registrationNameClient":"Renzo Prueba" //Nombre del cliente a quien se realizara el documento respectivo
    })

Ahora si terminando con al redacción se especficara un ejemplo de como implementar esta liberia ya sea con import o require.

  import { initInfo , sendBill , getId , getFileName } from 'apisunatludik'

   initInfo("DEV_hr7ymCqww4NbaNjnVoQ4oLbgBvG8Ugl0qgeFYXhojR4VfgROtoui2C6LfHbFN9GE","6178710e5f96890018d06355",10728522963);
    const response = await sendBill({
      "customerEmail":"[email protected]",
      "typeDocument":"01",
      "documentValue":"10728522963",
      "documentId":"6",
      "fileName": getFileName(4,"F001","01"),
      "serieId":getId(4,"F001"),
      "infoProducts":infoProducts,
      "date": new Date() 
      "registrationName":"Prueba" 
      "registrationNameClient":"Renzo Prueba" 
    })

Muchas Gracias por usar la librería