Introducción
Configura la dependencia en tu proyecto
[sri-clj "1.0.0"]
Ambientes del SRI
sri-clj
viene pre-configurada con los ambientes de pruebas y producción del SRI. Al llamar a cada función debes especificar el ambiente que quieres utilizar: :test
(pruebas) o :prod
(producción).
Si quieres usar tu propio servicio web de validación y autorización (por ejemplo en el caso de un mock), debes configurar las siguientes variables de ambiente:
Variable | Ejemplo |
---|---|
SRI_VALIDATION_TEST | http://mimock:8080/validate |
SRI_AUTHORIZATION_TEST | http://mimock:8080/authorize |
SRI_VALIDATION_PROD | http://mimock:8080/validate |
SRI_AUTHORIZATION_PROD | http://mimock:8080/authorize |
Firmado electrónico
El primer paso de la emisión de un comprobante es el firmado electrónico.
;;; TO-DO
Validación en el SRI
Envía el documento firmado al SRI para su validación.
(require '[sri-clj.validation :as val])
(val/validate-receipt :test (slurp ("resources/factura_firmada.xml")))
; -> {:status "DEVUELTA",
; :receipts [{:access-code "1410201601099271255400110010020000000091994726610",
; :messages [{:type "ERROR",
; :additional-information "",
; :identifier "43",
; :message "CLAVE ACCESO REGISTRADA"}]}]}
Autorización de comprobantes
Consulta el estado de autorización del comprobante en el SRI.
(require '[sri-clj.authorization :as aut])
(aut/authorize-receipt :test (slurp ("resources/factura_recibida.xml")))
; -> {:access-code "0503201201176001321000110010030009900641234567814"
; :receipt-count "1"
; :authorizations [{:status "AUTORIZADO"
; :authorization-number "0503201201176001321000110010030009900641234567814"
; :authorization-date "2012-03-05T16:57:34.997-05:00"
; :environment "PRUEBAS"
; :receipt "<![CDATA[<?xml version="1.0" encoding="UTF-8"?> <factura id="comprobante" version="1.0.0">...</factura>]]>"
; :messages [{:identifier "60"
; :message "PROCESO DE PRUEBAS"
; :type "ADVERTENCIA"}]}]}