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 ✅
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')
La liberira implementa 4 funciones las cuales son:
- getId
- getFilename
- initInfo
- sendBill
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.
- Id para factura F001-00000001
- Id para boleta B001-00000001
const get id = getId(1,"F001") //Factura
const get id = getId(1,"B001") //Boleta
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.
- 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
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.
-
personaToken : Es el token que genera la empresa en su dashboard de Api Sunat
-
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
//estos parámetros manejarlos como enviroments variables
let personaToken = environmment_variable;
let personaId = environmment_variable;
let ruc = environmment_variable;
initInfo(personaToken,personaId,ruc);
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.
//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"
},
],
}
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