DLL OCX para factura electrónica FEAFIP

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.
  • Generación de código de barras interleave 2 de 5 según resolución 1702/04 AFIP.
  • 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

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.

Visual BasicVisual FoxproDelphiC#
' 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);
}

Descargue demo con ejemplos de código en distintos lenguajes

Solicite presupuesto

Formulario de contacto

Ah ocurrido un error
Hola, por favor use el siguiente formulario para ponerse en contacto con nuestro equipo.
Remitente
Elija la cantidad de empresas o CUITs en las que planea implementar la solución
Seleccione el lenguaje de programación
Scroll al inicio