TODO: Write a gem description
Agrega esta linea a tu gemfile
gem 'timbradocfdi'
y Ejecuta
$ bundle
o instala la gema en tu sistema
$ gem install timbradocfdi
Se tienen 4 operaciones las cuales son registra_emisor, timbra_cfdi, obtiene_cfdi y cancela_cfdi
para el uso adecuado de las operaciones lo primero que debemos es instanciar nuestra clase con nuestra respectiva llave unica y privada de usuario
@timbrado = Timbradocfdi::Generator.new("aca nuestra llave de usuario")asi ya tenemos nuestro cliente instanciado en la variable @timbrado con la cual podemos generar las 4 operaciones
para registrar un emisor se requiere rfcemisor, llave .cer, llave .key y contraseña
Ejemplo de uso
rfcemisor = "12345"
contrasena = "contraseña"
base64Cer = "ruta de nuestra llave cer"
base64Key = "ruta de nuestra llave key"
@timbrado.registroEmisor(rfcEmisor, base64Cer, base64Key, contrasena)se obtiene un objeto con un codigo y un mensaje indicandonos el estado de la peticion ejemplo
{
:code => "0",
:message => "El certificado fue guardado y registrado correctamente"
}Para timbrar un CFDI se require Comprobante en xml, y el id de nuestro comprobante
Ejmplo de uso
comprobante = "ruta de nuestro comprobante en xml"
idcomprobante = 1 #Ejemplo
@timbrado.timbraCFDI(comprobante, idcomprobante)se obtiene un objeto con un codigo, un xml, una imagen qr y unos detalles de la peticion en caso de ser exitosa, de lo contrario mostrar el codigo y un mensaje de error
{
:code => "0",
:xml => "ACA RETORNA EL CONTENIDO DE UN XML",
:qr => "ACA RETORNA EL CONTENIDO DE UNA IMAGEN QR EN BYTES"
:details => "Detalles como el uid, fecha de la transaccion, etc"
}Para obtener un CFDI se requiere unicamente del UID del folio y retorna al igual que al timbrar su respectivo xml, imagen qr y detalles
Ejemplo de uso
folioUUID = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXX" #Prueba
@timbrado.obtieneCFDI(@rfcEmisor, folioUUID)Se obtiene como se indica anteriormente, xml, imagen qr, detalles de la peticion
{
:code => "0",
:xml => "ACA RETORNA EL CONTENIDO DE UN XML",
:qr => "ACA RETORNA EL CONTENIDO DE UNA IMAGEN QR EN BYTES"
:details => "Detalles como el uid, fecha de la transaccion, etc"
}Para cancelar un CFDI se requiere unicamente del UID del folio
Ejemplo de uso
folioUUID = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXX" #Prueba
@timbrado.cancelaCFDI(@rfcEmisor, folioUUID)Se obtiene un codigo del estado con su respectivo mensaje
{
:code => "202",
:message => "UUID Previamente cancelado"
}Aca se describe codigos y mensajes que puede responder la gema
| Codigo | Mensaje |
|---|---|
| 0 | Resultado exitoso |
| 1 | El usuario Integrador no existe |
| 2 | Timbres agotados, favor de contactar al proveedor (Integrador) |
| 3 | El emisor no ha sido registrado o se encuentra inactivo (Bloqueado) |
| 4 | El certificado del emisor no es vigente y el comprobante no puede ser sellado |
| 5 | Ocurrió un error al sellar el comprobante |
| 6 | Timbres agotados, favor de contactar al proveedor (Emisor) |
| 7 | El archivo .cer es inválido |
| 8 | El archivo .key es inválido |
| 9 | El certificado no es de sello, verifica que los archivos no sean de la FIEL |
| 10 | La vigencia del certificado ya expiró |
| 11 | El certificado no pertenece al RFC del Emisor |
| 12 | La contraseña del sello es inválida |
| 13 | El certificado no pertenece a la llave privada |
| 14 | El certificado aún no se encuentra registrado en el SAT, favor de intentarlo más tarde |
| 15 | Ocurrió un error al guardar el certificado, por favor contactar al proveedor |
| 16 | Emisor no registrado |
| 17 | Error al obtener cfdi |
| 18 | Error de cancelación |
- Fork it ( https://github.com/kreattiewe/timbradocfdi/fork )
- Create your feature branch (
git checkout -b my-new-feature) - Commit your changes (
git commit -am 'Add some feature') - Push to the branch (
git push origin my-new-feature) - Create a new Pull Request