Project

fm_adapter

0.0
No release in over a year
Implementación en Ruby de la Conexión con el Servicio de Timbrado de CFDI con el PAC: Facturación Moderna
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

>= 0

Runtime

~> 2.12.0
 Project Readme

FmTimbradoCfdi

Build Status Code Climate Coverage Status

Implementa la conexión con el servicio de timbrado cfdi con el PAC Facturación Moderna Guía de Desarrollo de FM.

No incluye ninguna funcionalidad de sellado.

Installation

Agrega esto al Gemfile de tu aplicación:

gem 'fm_timbrado_cfdi'

Y ejecuta:

$ bundle

o instala de forma independiente:

$ gem install fm_timbrado_cfdi

Uso

Para usar la gema es necesario realizar la configuración con los valores de conexión:

FmTimbradoCfdi.configurar do |config|
  config.user_id = 'user_id'
  config.user_pass = 'password'
  config.namespace = 'http://serviciondetimrado...'
  config.endpoint = 'http://serviciondetimrado...'
  config.fm_wsdl = 'http://serviciondetimrado...'
  config.log = 'path_to_log'
  config.ssl_verify_mode = true
end # configurar

Y realizar la petición de timbrado:

respuesta = FmTimbradoCfdi.timbra_cfdi_layout rfc, 'layout_file', false
# => Petición sin generación del CBB
respuesta = FmTimbradoCfdi.timbra_cfdi_layout rfc, 'layout_file', true
# => Petición con generación del CBB

Si cuentas con el XML sellado puedes hacer lo siguiente:

respuesta = FmTimbradoCfdi.timbra_cfdi_xml 'archivo_xml', false
# => Petición sin generación del CBB
respuesta = FmTimbradoCfdi.timbra_cfdi_xml 'archivo_xml', true
# => Petición con generación del CBB

Para un método más general de timbrado que se encuentre más acorde a la documentación de Facturación Moderna:

respuesta = FmTimbradoCfdi.timbrar rfc_emisor, 'archivo_xml_o_layout', 'generarCBB' => false, 'generarPDF' => true, 'generarTXT' => false
# => Generar la respuesta con formato PDF, pero sin formato CBB ni TXT

El archivo de layout y el XML son string.

Contribuciones

  1. 'Forkea' el repositorio
  2. Crea una rama con tu funcionalidad (git checkout -b my-new-feature)
  3. Envía tus cambios (git commit -am 'Add some feature')
  4. 'Pushea' a la rama (git push origin my-new-feature)
  5. Crea un 'Pull request'

Esta gema fue creada por LogicalBricks Solutions.