Solución para sistemas informáticos existentes. Ideal para programadores.
FEAFIP es la DLL OCX para factura electrónica diseñada para que los sistemas de facturación puedan obtener el CAE automáticamente de AFIP sin necesidad de hacer la carga manual de las facturas. El mismo esta siendo utilizado por miles de empresas y ampliamente probado en distintas plataformas de desarrollo.
Se ofrece no solo un producto sino además un servicio de asesoramiento integral con FEAFIP, desde situaciones técnicas hasta de trámites de certificados y administrativos. El módulo ha sido distribuido desde el año 2010. Soporta todos los comprobantes de facturación con sus regímenes y todo ello viene entregado en un único precio.
No hay margen al error cuando miles de empresas imprimen a través de nuestra solución. Nos nutrimos permanentemente de las distintas situaciones que se puedan presentar así que si tenes un error durante el desarrollo y no sabes que sucede. Ya nosotros seguramente lo analizamos y ajustamos el código para que no pierdas tiempo.
Funcionalidades de la dll para factura electrónica
- Generación de código QR.
- Compatibilidad con protocolos TLS 1.2.
- Obtención de CAE para facturas A, B, C además de exportación, mtxca y bonos fiscales electrónicos.
- Generador/Renovador de certificados digitales.
- Leer la fecha de vencimiento del certificado para emitir alertas al usuario.
- Consulta directa de CUIT / DNI al padrón de AFIP.
- Consulta directa de alícuotas de ARBA.
- Validación de constancia electrónica.
- Constatación de comprobantes emitidos por propios y terceros.
- Consulta de comprobantes emitidos.
- Almacenamiento automático de token.
- Adaptabilidad a entornos de red o de múltiples usuarios.
- Procesamiento de lotes de facturas.
- Factura turismo T (costo adicional).
- Factura de crédito (costo dicional).
Compatibilidad de lenguajes (algunos de ellos)
- Visual Basic 6
- Visual Basic.NET
- C#
- Visual Foxpro
- Delphi
- Clarion
- Java
- Harbour
- PowerBuilder
- Cobol
- Access
- Excel
- PHP (ver FEAFIP.PHP)
Documentación
- Tutorial paso a paso para instalar e implementar FEAFIP
- Guía de referencia de FEAFIP. En ella están sus métodos y parámetros
- Guía de generación de certificados para entorno de producción
- Guía de diagnóstico y solución de problemas
Ejemplos de integración dll factura electrónica con lenguajes de programación
Junto con nuestra dll para factura electrónica mostramos un ejemplo a continuación. Estos y otros están disponibles en la demo para descargar.
' Los nombres de los parametros de las funciones se obtienen descomprimiendo FEAFIP DOC ' y luego abriendo el archivo index.html de la carpeta "Doc Interfaces". ' la interfaz correspondiente a este ejemplo es Iwsfev1 para facturas A y B. 'URLs de autenticacion y negocio. Cambiarlas por las de producción al implementarlas en el cliente(abajo) Const URLWSAA = "https://wsaahomo.afip.gov.ar/ws/services/LoginCms" 'Producción: https://wsaa.afip.gov.ar/ws/services/LoginCms Const URLWSW = "https://wswhomo.afip.gov.ar/wsfev1/service.asmx" ' Producción: https://servicios1.afip.gov.ar/wsfev1/service.asmx ' Si esta linea falla es porqu eno agrego la referencia en a FEAFIPLib desde el menu de proyecto Dim wsfev1 As FEAFIPLib.wsfev1 Dim nro As Double CAE$ = "" Vencimiento$ = "" Resultado$ = "" Reproceso$ = "" nro = 0 PtoVta = 10 TipoComp = 1 '' Factura A(ir a http://bitingenieria.com.ar/codigos.html) FechaComp = Format(Now(), "yyyymmdd") Set wsfev1 = New FEAFIPLib.wsfev1 wsfev1.CUIT = 20939802593# ' Cuit del vendedor wsfev1.URL = URLWSW If wsfev1.login("certificado.crt", "clave.key", URLWSAA) Then If Not wsfev1.RecuperaLastCMP(PtoVta, TipoComp, nro) Then MsgBox (wsfev1.ErrorDesc) End If nro = nro + 1 wsfev1.Reset wsfev1.AgregaFactura 1, 80, 30707219072#, nro, nro, FechaComp, 121, 0, 100, 0, "", "", "", "PES", 1 wsfev1.AgregaIVA 5, 100, 21 'ir a http://bitingenieria.com.ar/codigos.html If wsfev1.Autorizar(PtoVta, TipoComp) Then wsfev1.AutorizarRespuesta 0, CAE, Vencimiento, Resultado, Reproceso If Resultado = "A" Then MsgBox "Felicitaciones! Si ve este mensaje instalo correctamente FEAFIP. CAE y Vencimiento: " & _ CAE + " " + Vencimiento Else MsgBox wsfev1.AutorizarRespuestaObs(0) End If Else MsgBox wsfev1.ErrorDesc End If Else MsgBox wsfev1.ErrorDesc End If
PUBLIC nro as long PUBLIC POS as long PUBLIC tipo as long && Los nombres de los parámetros de las funciones se obtienen descomprimiendo FEAFIP DOC && y luego abriendo el archivo index.html de la carpeta "Doc Interfaces". && la interfaz correspondiente a este ejemplo es Iwsfev1 para facturas A y B. && URLs de autenticacion y negocio. Cambiarlas por las de producción al implementarlas en el cliente(abajo) URLWSAA = "https://wsaahomo.afip.gov.ar/ws/services/LoginCms" && Producción: https://wsaa.afip.gov.ar/ws/services/LoginCms URLWSW = "https://wswhomo.afip.gov.ar/wsfev1/service.asmx" && Producción: https://servicios1.afip.gov.ar/wsfev1/service.asmx Ptovta = 110 Tipocomp = 1 &&Factura A(Ver excel referencias codigos AFIP documentacion.rar) fechacmp = transform(year(date()),"@L 9999") + transform(month(date()),"@L 99") + ; transform(day(date()),"@L 99") && Tomo la fecha actual como ejemplo wsfev1 = CREATEOBJECT("FEAFIPLib.wsfev1") wsfev1.CUIT = 20939802593 wsfev1.URL = URLWSW If wsfev1.login("certificado.crt", "clave.key", URLWSAA) Then If Not wsfev1.SFRecuperaLastCMP(Ptovta, Tipocomp) Then MessageBox(wsfev1.ErrorDesc) else nro = wsfev1.SFLastCmp &&Devolucion el ultimo comprobante endif nro = nro + 1 wsfev1.Reset() wsfev1.AgregaFactura(1, 80, 30702637895, nro, nro, fechacmp, 121, 0, 100, 0, "", "", "", "PES", 1) wsfev1.AgregaIVA(5, 100, 21) &&Ver excel referencias codigos AFIP documentacion.rar If wsfev1.Autorizar(Ptovta, Tipocomp) Then If wsfev1.SFresultado(0)="A" Then MessageBox("Felicitaciones! Si ve este cartel es porque obtuvo CAE y Vencimiento. CAE:" +; wsfev1.SFCAE(0) + " Vencimiento: " + wsfev1.SFVencimiento(0)) Else * observaciones MessageBox(wsfev1.AutorizarRespuestaObs(0)) Endif Else MessageBox(wsfev1.ErrorDesc) EndIf Else MessageBox(wsfev1.ErrorDesc) EndIf
{ Los nombres de los parametros de las funciones se obtienen descomprimiendo FEAFIP DOC y luego abriendo el archivo index.html de la carpeta "Doc Interfaces". la interfaz correspondiente a este ejemplo es Iwsfev1 para facturas A y B.} const //URLs de autenticacion y negocio. Cambiarlas por las de producción al implementarlas en el cliente(abajo) URLWSAA = 'https://wsaahomo.afip.gov.ar/ws/services/LoginCms'; //Producción: https://wsaa.afip.gov.ar/ws/services/LoginCms URLWSW = 'https://wswhomo.afip.gov.ar/wsfev1/service.asmx'; // Producción: https://servicios1.afip.gov.ar/wsfev1/service.asmx var // Importar FEAFIPlib en esta unit: FEAFIPLib_TLB. wsfev1: iwsfev1; nro: Double; CAE, Vencimiento, Resultado, Reproceso, FechaComp: WideString; PtoVta, TipoComp: integer; begin CAE := ''; Vencimiento := ''; Resultado := ''; Reproceso := ''; nro := 0; PtoVta := 10; TipoComp := 1; // Factura A(ir a http://www.bitingenieria.com.ar/codigos.html) FechaComp := FormatDateTime('yyyymmdd', Now()); wsfev1 := Cowsfev1.Create; wsfev1.CUIT := 20939802593; // Cuit del vendedor wsfev1.URL := URLWSW; if wsfev1.login('certificado.crt', 'clave.key', URLWSAA) then begin if not wsfev1.RecuperaLastCMP(PtoVta, TipoComp, nro) then ShowMessage (wsfev1.ErrorDesc) else begin nro := nro + 1; wsfev1.Reset; wsfev1.AgregaFactura(1, 80, 30707219072, nro, nro, FechaComp, 121, 0, 100, 0, '', '', '', 'PES', 1); wsfev1.AgregaIVA(5, 100, 21); //ir a http://www.bitingenieria.com.ar/codigos.html if wsfev1.Autorizar(PtoVta, TipoComp) then begin wsfev1.AutorizarRespuesta(0, CAE, Vencimiento, Resultado, Reproceso); If Resultado = 'A' Then ShowMessage('Felicitaciones! Si ve este mensaje instalo correctamente FEAFIP. CAE y Vencimiento ' + ':' + CAE + ' ' + Vencimiento) else ShowMessage(wsfev1.AutorizarRespuestaObs(0)) end else ShowMessage(wsfev1.ErrorDesc); end end else ShowMessage(wsfev1.ErrorDesc); end;
/* Los nombres de los parametros de las funciones se obtienen descomprimiendo FEAFIP DOC y luego abriendo el archivo index.html de la carpeta "Doc Interfaces". la interfaz correspondiente a este ejemplo es Iwsfev1 para facturas A y B.*/ const //URLs de autenticacion y negocio. Cambiarlas por las de producción al implementarlas en el cliente(abajo) string URLWSAA = "https://wsaahomo.afip.gov.ar/ws/services/LoginCms"; //Producción: https://wsaa.afip.gov.ar/ws/services/LoginCms string URLWSW = "https://wswhomo.afip.gov.ar/wsfev1/service.asmx"; // Producción: https://servicios1.afip.gov.ar/wsfev1/service.asmx // Agregar FEAFIPlib como referencia al proyecto desde el menu y luego en el using. string CAE = ""; string Vencimiento = ""; string Resultado = ""; string Reproceso = ""; double nro = 0; int PtoVta = 10; int TipoComp = 1; // Factura A(ir a http://www.bitingenieria.com.ar/codigos.html) string FechaComp = DateTime.Today.ToString("yyyyMMdd"); wsfev1 lwsfev1 = new wsfev1(); lwsfev1.CUIT = 20939802593; // Cuit del vendedor lwsfev1.URL = URLWSW; if (lwsfev1.login("certificado.crt", "clave.key", URLWSAA)) { if (lwsfev1.RecuperaLastCMP(PtoVta, TipoComp, out nro) == false) { MessageBox.Show(lwsfev1.ErrorDesc); } else { nro = nro + 1; lwsfev1.Reset(); lwsfev1.AgregaFactura(1, 80, 30707219072, nro, nro, FechaComp, 121, 0, 100, 0, "", "", "", "PES", 1); lwsfev1.AgregaIVA(5, 100, 21); //ir a http://www.bitingenieria.com.ar/codigos.html if (lwsfev1.Autorizar(PtoVta, TipoComp)) { lwsfev1.AutorizarRespuesta(0, out CAE, out Vencimiento, out Resultado, out Reproceso); if (Resultado == "A") { MessageBox.Show("Felicitaciones! Si ve este mensaje instalo correctamente FEAFIP. CAE y" + " Vencimiento :" + CAE + " " + Vencimiento); } else { MessageBox.Show(lwsfev1.AutorizarRespuestaObs(0)); } } else { MessageBox.Show(lwsfev1.ErrorDesc); } } } else { MessageBox.Show(lwsfev1.ErrorDesc); }