Generador de QR AFIP

El generador de QR AFIP integrado es una interfaz que pertenece a la dll para factura electrónica FEAFIP. El uso del mismo depende de la adquisición de está herramienta para poder ser utilizado como complemento a la obtención de CAE de AFIP.

La Administración Federal de Ingresos Públicos dispuso la implementación obligatoria de un código de respuesta rápida “QR” en los comprobantes electrónicos. El código “QR” podrá ser escaneado por una cámara estándar de un dispositivo celular, tablet o similar con acceso a internet y brindará información sobre el comprobante y el emisor del mismo.

Esta medida alcanza a todos los contribuyentes y/o responsables cuya autorización de emisión de comprobantes electrónicos, se haya tramitado en los términos del “Régimen de Emisión de Comprobantes Electrónicos” establecido por la Resolución General N° 4.291.

Más información desde a la documentación técnica de AFIP

https://www.afip.gob.ar/fe/qr/conceptos-generales.asp

Como funciona el generador de QR AFIP integrado

El generador de QR obtiene como resultado un archivo de imagen con el QR formateado según las especificaciones de AFIP.

El QR codificará la siguiente información del comprobante:

  • Fecha de emisión
  • CUIT del emisor
  • Punto de venta
  • Tipo de Comprobantes
  • Número de Comprobante
  • Importe total
  • Moneda
  • Cotización
  • Tipo Documento Receptor (de corresponder)
  • Número de Documento de Receptor (de corresponder)
  • Código del Tipo de Autorización
  • Código de Autorización

El resultado del proceso es un archivo de imagen con el QR generado. Los formatos disponibles son PNG o JPG.

Compatibilidad de lenguajes

  • Visual Basic 6
  • Visual Basic.NET
  • C#
  • Visual Foxpro
  • Delphi
  • Clarion
  • Java
  • Harbour
  • PowerBuilder
  • Cobol
  • Access
  • Excel
  • PHP

Ejemplos de integración del generador de QR AFIP

Visual BasicC#Visual FoxproDelphi

Dim Qr As New QrAfip.Qr
Qr.ArchivoPNG = Qr.RutaLibreria + "qr.png"
Dim ver As String = 1
Dim fecha As String = ""
Dim cuit As Double = 20939802593
Dim ptoVta As Integer = 2
Dim tipoComp As Integer = 1
Dim nroCmp As Integer = 1
Dim importe As Integer = 100.2
Dim moneda As String = "PES"
Dim ctz As Double = 1.0
Dim tipoDocRec As Integer = 80
Dim nroDocRec As Double = 27929007862
Dim tipoCodAut As String = "E"  ' A = CAEA E = CAE
Dim codAut As Double = 12345678901234
If Qr.Generar(ver, fecha, cuit, ptoVta, tipoComp, nroCmp, importe, moneda, ctz, tipoDocRec, nroDocRec, tipoCodAut, codAut) Then
  MessageBox.Show("QR generado con éxito")
Else
  MessageBox.Show(Qr.ErrorDesc)
End If

QrAfip.IQr Qr = new QrAfip.Qr();
Qr.ArchivoPNG = Qr.RutaLibreria + "qr.png";
Int32 ver = 1;
String fecha = "";
Double cuit = 20939802593;
Int32 ptoVta = 2;
Int32 tipoComp = 1;
Int32 nroCmp = 1;
Double importe = 100.2;
String moneda = "PES";
Double ctz = 1.0;
Int32 tipoDocRec = 80;
Double nroDocRec = 27929007862;
String tipoCodAut = "E";  // A = CAEA E = CAE
Double codAut = 12345678901234;
if (Qr.Generar(ver, fecha, cuit, ptoVta, tipoComp, nroCmp, importe, moneda, ctz, tipoDocRec, nroDocRec, tipoCodAut, codAut))
{
  MessageBox.Show("QR generado con éxito");
}
else
{
  MessageBox.Show(Qr.ErrorDesc);
}

Qr = CreateObject("FEAFIPLib.Qr")
Qr.ArchivoPNG = Qr.RutaLibreria + "qr.png"

ver = 1
fecha = ""
CUIT = 20939802593
PtoVta = 2
tipoComp = 1
nroCmp = 1
Importe = 100.2
moneda = "PES"
ctz = 1
tipoDocRec = 80
nroDocRec = 27929007862
tipoCodAut = "E"  && A = CAEA E = CAE
codAut = 12345678901234
If Qr.Generar(ver, fecha, CUIT, PtoVta, tipoComp, nroCmp, Importe, moneda, ctz, tipoDocRec, nroDocRec, tipoCodAut, codAut) Then
  MessageBox("QR generado con éxito en " + Qr.ArchivoPNG)
Else
  MessageBox(Qr.ErrorDesc)
EndIf

procedure test;
var
  Qr: IQr;
  ver: Integer;
  fecha: string;
  cuit: double;
  ptoVta: Integer;
  tipoComp: Integer;
  nroCmp: Integer;
  importe: double;
  moneda: string;
  ctz: double;
  tipoDocRec: Integer;
  nroDocRec: double;
  tipoCodAut: string;
  codAut: double;
begin
  Qr := coQR.Create;
  Qr.ArchivoPNG := 'C:\datos\qr1.jpg';

  ver := 1;
  fecha := '';
  cuit := 20939802593;
  ptoVta := 2;
  tipoComp := 1;
  nroCmp := 1;
  importe := 100.20;
  moneda := 'PES';
  ctz := 1.00;
  tipoDocRec := 80;
  nroDocRec := 27929007862;
  tipoCodAut := 'E';  // A = CAEA; E = CAE
  codAut := 12345678901234;
  if Qr.Generar(ver, fecha, cuit, ptoVta, tipoComp, nroCmp, importe, moneda,
    ctz, tipoDocRec, nroDocRec, tipoCodAut, codAut) then
  begin
    ShowMessage('QR generado con éxito');
  end
  else
    ShowMessage(Qr.ErrorDesc);
end;
Scroll al inicio