envio-comprobantes-sri
Version:
Envia comprobantes electronicos al SRI (Ecuador). Recibe un objeto JSON. Lo convierte a XML, lo firma, lo envía al servicio web del SRI y devuelve la respuesta.
27 lines (18 loc) • 1.91 kB
Markdown
### Envio de Comprobantes al SRI
Este paquete proporciona la clase `EnvioComprobantesSRI` para firmar y enviar comprobantes electronicos.
### `EnvioComprobantesSRI` metodos
- `constructor(cert_data, contribuyente_data)`: Recibe el certificado (la ruta y la clave, o el archivo en `Buffer` y la clave). Y recibe los datos del contribuyente emisor (el que está emitiendo el comprobante electrónico). La clase validará que los datos del certificado sean los mismos que del emisor.
- `CertInfo()`: Obtiene los datos leidos del certificado.
- `ContribuyenteData()` Permite leer los datos del contribuyente que se pasaron como argumento durante la creación de la clase (vease `constructor()`)
- `AutorizarComprobanteSRI(documentType, data, reportProgress)`: En este proceso se recibe el tipo de documento (de momento solo se ha implementado `factura` y `notaCredito`), tambien recibe los datos estrcuturados por cada documento, y finalmente una funcion que va reportando las etapas por las que pasa el comprobante.
### manejo de Errores
Esta ultima funcion recibe un archivo JSON como `data`, lo convierte a XML, luego lo firma con el certificado cargado, lo envia al SRI y solicita la autorizacion del mismo. Durante la funcion puede lanzarse una excepcion tipo `EnvioComprobantesSRIError`
Si ocurre un error durante `constructor()` se lanzara una excepcion de tipo `CertificateRelatedError`, cualquier otro error, es una excepcion interna no controlada.
### Recomendaciones
Este proyecto fue desarrollado en `typescript` y contiene las declaraciones las interfaces y clases utilizadas. Te recomiendo usar `Visual Studio Code` para obtener los tipos de datos esperados para cada funcion.
### Feedback
Dispara tu feedback a `gosuetian@hotmail.es`!
### ToDo
[ ] Implementacion de Retenciones
[ ] Implementacion de Guias de Remision
[ ] Implementacion de Liquidacion de Compras