0.1.1 • Published 6 months ago

open-factura v0.1.1

Weekly downloads
-
License
-
Repository
github
Last release
6 months ago

open-factura

Open Factura es un proyecto opensource de facturación electrónica para Ecuador compatible con la ficha técnica para comprobantes electrónicos emitido por el SRI.

Está publicada como librería en npm y la puedes utilizar simplemente instalandola como dependencia en tu proyecto de Node o Bun.

Funciones

La librería cuenta actualmente con las siguientes funciones:

  • Tipado de campos para factura electrónica de acuerdo a las especificaciones del SRI.
  • Generación de archivo JSON con formato de factura electrónica.
  • Generación de XML con formato de factura electrónica.
  • Firmado de XML con archivo .p12 (Compatible con Security Data y Banco Central)
  • Envío de documento a endpoint de recepción del SRI
  • Autorización de documento en endpoint del SRI
  • Cargar Firma electrónica desde archivo local o URL
  • Cargar XML desde archivo local o URL

Ejemplo

Aquí puedes ver un ejemplo de cómo utilizar las funciones principales:

import {
  generateInvoice,
  generateInvoiceXml,
  getP12FromUrl,
  signXml,
} from "open-factura";

const { invoice, accessKey }  = generateInvoice({
  infoTributaria: {
    ...
  },
  infoFactura: {
    ...
  },
  detalles: {
    ...
  },
  reembolsos: {
    ...
  },
  retenciones: {
    ...
  },
  infoSustitutivaGuiaRemision: {
    ...
  },
  otrosRubrosTerceros: {
    ...
  },
  tipoNegociable: { correo: "correo0" },
  maquinaFiscal: {
    ...
  },
  infoAdicional: {
    ...
  },
});

const invoiceXml = generateInvoiceXml(invoice);

const signature: ArrayBuffer = await getP12FromUrl("yoururl");
const password = "yourpassword";

const signedInvoice = await signXml(sign, password, invoiceXml);

const receptionResult = await documentReception(
  signedInvoice,
  process.env.SRI_RECEPTION_URL!
);

const authorizationResult = await documentAuthorization(
  accessKey,
  process.env.SRI_AUTHORIZATION_URL!
);

Un ejemplo completo lo puedes encontrar en la carpeta tests Ejemplos de los archivos generados los encuentras en src/example

Endpoints del SRI

El SRI ha habilitado dos endpoints para cada ambiente (pruebas, producción).

Producción

SRI_RECEPTION_URL="https://cel.sri.gob.ec/comprobantes-electronicos-ws/RecepcionComprobantesOffline?wsdl"
SRI_AUTHORIZATION_URL="https://cel.sri.gob.ec/comprobantes-electronicos-ws/AutorizacionComprobantesOffline?wsdl"

Pruebas

SRI_RECEPTION_URL="https://celcer.sri.gob.ec/comprobantes-electronicos-ws/RecepcionComprobantesOffline?wsdl"
SRI_AUTHORIZATION_URL="https://celcer.sri.gob.ec/comprobantes-electronicos-ws/AutorizacionComprobantesOffline?wsdl"

Ten en cuenta que para poder utilizar estos endpoints con tu RUC debes activar el ambiente de pruebas/producción en tu cuenta del SRI. Aquí un tutorial de cómo hacerlo

Contribuir

Si deseas contribuir a este proyecto puedes comprarme un café o Crea un Pull Request con los cambios que pienses que pueden aportar para que el proyecto siga creciendo.

0.1.1

6 months ago

0.1.0

6 months ago

0.0.9

6 months ago

0.0.8

6 months ago

0.0.7

6 months ago

0.0.6

6 months ago

0.0.5

6 months ago

0.0.4

6 months ago

0.0.3

6 months ago

0.0.2

6 months ago

0.0.1

6 months ago