Inicio  |  Timbrado  |  Librerías timbrado  |  GenerarCFDI API
La LCO fue actualizada por última vez el 17/abr/2024

GenerarCFDI DLL

Esta librería provee de métodos para la generación de facturas electrónicas (CFDI) versión 3.2 localmente, sin necesidad de tener una conexión constante a internet.

EL CFDI resultante será sellado con el certificado y la llave privada que se brinde, sólo se tiene que seguir la cadena de configuración para obtener los datos definida más abajo.

Usted sólo tendrá que envíar a timbrar sus facturas a Solución Factible para que estas sean tomadas en cuenta por el SAT.

Para hacer uso de estos métodos en su proyecto solo tiene que agregar la librería dll_generaCFDI.zip para saber como agregarla por favor siga este enlace: Documentación DLL's .

Actualización: se agregó soporte para complemento: ImpuestosLocales

Actualización: la cadena configuración ha sido actualizada, se agregaron campos para abarcar el elemento "expedidoEn":
EMISOR_EXPEDIDO_EN_PAIS|EMISOR_EXPEDIDO_EN_CALLE|EMISOR_EXPEDIDO_EN_ESTADO|EMISOR_EXPEDIDO_EN_COLONIA|EMISOR_EXPEDIDO_EN_LOCALIDAD|EMISOR_EXPEDIDO_EN_MUNICIPIO|EMISOR_EXPEDIDO_EN_REFERENCIA|EMISOR_EXPEDIDO_EN_NO_EXTERIOR|EMISOR_EXPEDIDO_EN_NO_INTERIOR|EMISOR_EXPEDIDO_EN_CODIGO_POSTAL|.

Actualización: se ha agregado en la linea de configuración los campos: |COMPLEMENTO_TIPO|COMPLEMENTO_DATOS|
En COMPLEMENTO_TIPO se especifica el nombre del complemento: DONATARIAS, IMPUESTOS_LOCALES, en el campo COMPLEMENTO_DATOS se esperan los datos del complemento separados con el caracter ¬.

Nota: actualmente solo se pueden generar CFDI con los complementos:

Donatarias versión 1.1
Impuestos locales 1.0

Ejemplo donatarias 11:

|DONATARIAS|1.1¬0001¬2012-10-01¬Este comprobante ampara un donativo.|

Configuración impuestos locales
En la cadena configuración, en el campo: "COMPLEMENTO_TIPO" se debe poner: "IMPUESTOS_LOCALES"
Los datos del complemento deberán ir en el campo: "COMPLEMENTO_DATOS" separados por ¬, para agregar los datos de los impuestos como traslados, o retenciones se deben agregar en grupos delimitados por () y se pueden agregar m´s de 1 de cualquier tipo, puede consultar la sección de ejemplos para más detalles.

|IMPUESTOS_LOCALES|TOTAL_DE_RETENCIONES¬TOTALDETRASLADOS¬(retencion,IMP_LOC_RETENIDO,TASA_DE_RETENCION,IMPORTE),(traslado,IMP_LOC_TRASLADADO,TASA_DE_TRASLADO,IMPORTE)|

Cadena configuración completa

La cadena de configuración completa (incluye las ultimas actualizaciones) para versión actual de la DLL se especifica a continuación:

|FOLIO|SERIE|TIPO_COMPROBANTE|LUGAR_EXPEDICION|RAZON_SOCIAL_EMISOR|RFC_EMISOR|PAIS_FISCAL_EMISOR|ESTADO_FISCAL_EMISOR|MUNICIPIO_FISCAL_EMISOR|CIUDAD_FISCAL_EMISOR|CALLE_FISCAL_EMISOR|NUMERO_EXT_FISCAL_EMISOR|NUMERO_INT_FISCAL_EMISOR|COLONIA_FISCAL_EMISOR|CP_FISCAL_EMISOR|RAZON_SOCIAL_RECEPTOR|RFC_RECEPTOR|PAIS_FISCAL_RECEPTOR|ESTADO_FISCAL_RECEPTOR|MUNICIPIO_FISCAL_RECEPTOR|CIUDAD_FISCAL_RECEPTOR|CALLE_FISCAL_RECEPTOR|NUMERO_EXT_FISCAL_RECEPTOR|NUMERO_INT_FISCAL_RECEPTOR|COLONIA_FISCAL_RECEPTOR|CP_FISCAL_RECEPTOR|FECHA|UNIDAD|CANTIDAD|PRECIO|CONCEPTO|IMPORTE_LINEA|TASA_IVA|IMPORTE_IVA|TASA_IEPS|IMPORTE_IEPS|IMPORTE_RET_IVA|IMPORTE_RET_ISR|MONEDA_NOMBRE|TIPO_CAMBIO|FORMA_PAGO|CONDICIONES_PAGO|METODO_PAGO|NUM_CTA_PAGO|REGIMEN|IMPORTE_TOTAL_FACTURA|SUBTOTAL_FACTURA|IMPORTE_DESCUENTOS_FACTURA|TOTAL_IMPUESTOS_RETENIDOS|TOTAL_IMPUESTOS_TRASLADADOS|FOLIO_FISCAL_ORIGINAL|SERIE_FISCAL_ORIGINAL|FECHA_FOLIO_ORIGINAL|TOTAL_FISCAL_ORIGINAL|COMPLEMENTO_TIPO|COMPLEMENTO_DATOS|EMISOR_EXPEDIDO_EN_PAIS|EMISOR_EXPEDIDO_EN_CALLE|EMISOR_EXPEDIDO_EN_ESTADO|EMISOR_EXPEDIDO_EN_COLONIA|EMISOR_EXPEDIDO_EN_LOCALIDAD|EMISOR_EXPEDIDO_EN_MUNICIPIO|EMISOR_EXPEDIDO_EN_REFERENCIA|EMISOR_EXPEDIDO_EN_NO_EXTERIOR|EMISOR_EXPEDIDO_EN_NO_INTERIOR|EMISOR_EXPEDIDO_EN_CODIGO_POSTAL|IEDU|IEDU_DATOS|

Por cada linea se incluirán los datos del concepto, para agregar más de un concepto a una factura debe haber otra linea precedida por el caracter de salto de linea (\n) en la cual solo se actualizará con nuevos datos la información del concepto nuevo, y asi sucesivamente, ejemplo:

Ejemplos

|1539|E|ingreso|METEPEC, ESTADO DE MEXICO|ESCUELA KEMPER URGATE SA DE CV|EKU9003173C9|MéXICO|ESTADO DE MEXICO|MATEPEC|METEPEC|Uniroyal|18-A||La Michoacana|52166|XENON INDUSTRIAL ARTICLES S DE CV|XIA190128J61|MEXICO|JALISCO|GUADALAJARA|GUADALAJARA|AV. INGLATERRA||4120|TECHNOLOGY PARK CK|4120|2013-09-18T16:26:54|CJ|1|14.52|Concepto1|25.52|16|5|||||PESOS|1|UNA SOLA EXHIBICION|30 DIAS|EFECTIVO|No aplica|General de las personas morales |500|400|20|10|50|||||DONATARIAS|1.1¬001¬2012-10-01¬Este comprobante ampara un donativo.|MEXICO|CALLE DEL RIO|DURANGO|CEL ROBLE|DURANGO|DURANGO||145|1A|14526|
|1539|E|ingreso|METEPEC, ESTADO DE MEXICO|ESCUELA KEMPER URGATE SA DE CV|EKU9003173C9|MéXICO|ESTADO DE MEXICO|MATEPEC|METEPEC|Uniroyal|18-A||La Michoacana|52166|XENON INDUSTRIAL ARTICLES S DE CV|XIA190128J61|MEXICO|JALISCO|GUADALAJARA|GUADALAJARA|AV. INGLATERRA||4120|TECHNOLOGY PARK CK|4120|2013-01-30T16:26:54|CJ|1|14.52|Concepto2|30.52|14|5|||||PESOS|1|UNA SOLA EXHIBICION|30 DIAS|EFECTIVO|No aplica|General de las personas morales |500|400|20|10|50|||||DONATARIAS|1.1¬0001¬2012-10-01¬Este comprobante ampara un donativo.|MEXICO|CALLE DEL RIO|DURANGO|CEL ROBLE|DURANGO|DURANGO||145|1A|14526|
|1539|E|ingreso|METEPEC, ESTADO DE MEXICO|ESCUELA KEMPER URGATE SA DE CV|EKU9003173C9|MeéXICO|ESTADO DE MEXICO|MATEPEC|METEPEC|Uniroyal|18-A||La Michoacana|52166|XENON INDUSTRIAL ARTICLES S DE CV|XIA190128J61|MEXICO|JALISCO|GUADALAJARA|GUADALAJARA|AV. INGLATERRA||4120|TECHNOLOGY PARK CK|4120|2013-01-30T16:26:54|CJ|1|14.52|Concepto3|40.52|16|5|10|9.56|||PESOS|1|UNA SOLA EXHIBICION|30 DIAS|EFECTIVO|No aplica|General de las personas morales |500|400|20|10|50|||||DONATARIAS|1.1¬0001¬2012-10-01¬Este comprobante ampara un donativo.|MEXICO|CALLE DEL RIO|DURANGO|CEL ROBLE|DURANGO|DURANGO||145|1A|14526|

Identificador de la DLL

ProgID SF.GenerarCFDI
ControlName SFGenerarCFDI

Métodos principales:

String generaCFDI(String conector, String rutaCer, String rutaKey, String passKey, String rutaEscribir)

Genera una factura electronica (CFDI) versión 3.2.
String generaCFDIFromFile(String rutaConector, String rutaCer, String rutaKey, String passKey, String rutaEscribir)

Genera una factura electronica (CFDI) versión 3.2.
String calcularSello(String cadenaOriginalBase64, String rutaArchivoKEY, Strig passArchivoKEY)

Calcula el valor que lleva un CFDI en el atributo SELLO

Descripción detallada de los métodos


generaCFDI

 
String generaCFDI(String conector, 
                String rutaCer, 
                String rutaKey, 
                String passKey, 
                String rutaEscribir)
            
Genera un comprobante fiscal digital sellado/firmado y sin timbre fiscal digital, el argumento conector espera un string en base64 que a su vez contiene la información en lineas de tipo conector txt para la generación de la factura electrónica.
Una vez formada las lineas deberán ser codificadas en base64.
Parámetros:
String conector - cadena de caracteres codificada en base64 que a su vez contiene las lineas de información para generar el comprobante fiscal digital.
String rutaCer - Ruta del archivo certificado (.cer).
String rutaKey - Ruta de la llave privada (.key).
String passKey - Contraseña de la llave privada.
String rutaEscribir - Ruta la ruta puede ser a un directorio o a un archivo,
si la ruta representa un directorio se guardará el XML generado con un nombre generado automáticamente siguiendo la nomenclatura: CFDI_FolioSerie.xml.
si la ruta contiene el nombre de archivo se utilizará este para almacenar el CFDI.
Returns:
Un String que contiene la ruta completa donde se almacenó el archivo, incluyendo el nombre.


generaCFDIFromFile

 
String generaCFDIFromFile(String rutaConector, 
                String rutaCer, 
                String rutaKey, 
                String passKey, 
                String rutaEscribir)
            
Genera un comprobante fiscal digital sellado/firmado y sin timbre fiscal digital, el argumento rutaConector espera un string con la ruta del archivo que contendrá la información en lineas de tipo conector txt para la generación de la factura electrónica.

Parámetros:
String rutaConector - Ruta del archivo conector.
String rutaCer - Ruta del archivo certificado (.cer).
String rutaKey - Ruta de la llave privada (.key).
String passKey - Contraseña de la llave privada.
String rutaEscribir - La ruta puede ser a un directorio o a un archivo,
si la ruta representa un directorio se guardará el XML generado con un nombre generado automáticamente siguiendo la nomenclatura: CFDI_FolioSerie.xml.
si la ruta contiene el nombre de archivo se utilizará este para almacenar el CFDI.
Returns:
Un String que contiene la ruta completa donde se almacenó el archivo, incluyendo el nombre.


calcularSello

 
String calcularSello(String cadenaOriginalBase64, 
                        String rutaArchivoKEY,  
                        Strig passArchivoKEY)
            
Recibe la cadena original del comprobante en un String en base64, así como la ruta de la llave privada y su contraseña.
Parámetros:
String cadenaOriginalBase64 - Cadena original codificada en base64.
String rutaArchivoKEY - Ruta de la llave privada (.key).
String passArchivoKEY - Contraseña de la llave privada.
Returns:
Un String que es el resultado de firmar la cadena original con la llave privada.

Datos de contacto
comments powered by Disqus