apisunatludikteam

1.0.25 • Public • Published

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/apisunatludikteam@1.0.25/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":"hijo72@hotmail.com",
      "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":"hijo72@hotmail.com",
      "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

Package Sidebar

Install

npm i apisunatludikteam

Weekly Downloads

1

Version

1.0.25

License

ISC

Unpacked Size

145 kB

Total Files

17

Last publish

Collaborators

  • ludikteam