Ejemplo WSFEX para VB.NET
Aunque los lenguajes NET pueden acceder facilmente a los Web Services de la AFIP puede usar la inteface COM del control para trabajar en una forma más rapida y cómoda sin conocer en profundidad los detalles de la implementación de la AFIP.
Este ejemplo usa el identificador "1" como 3°er argumento del método registrar. Debe usar un identificador único y diferente para obtener CAE diferentes en cada ejecución. Después de probar el ejemplo lea toda la documentación referente a "identificador" y "reproceso" para una explicación detallada sobre la función de este argumento. El ejemplo usa el método "xRegistrar" que calcula automáticamente el número de factura a emitir. Se deben usar fechas del dia.
En un proyecto aplicación de NET cree un formulario y agregue una referencia a la interface COM WSAFIPFE siguiendo estos pasos:
Seleccionar "Proyects\Add Reference"
Seleccionar la solapa "Browse".
Localizar el archivo "WSAFIPFE.DLL" (por defecto en la carpeta c:\archivos de programs\SC"
En el evento click de un control tipo botón insertar el siguiente código.
Dim fe As New WSAFIPFE.Factura
If fe.iniciar(0, "aqui c.u.i.t. del emisor", "ruta y nombre del certificado *.pfx", "") Then
fe.xversion = 1
If fe.xObtenerTicketAcceso() Then
fe.xFecha_cbte = "20191104"
fe.xFecha_pago = "20191104"
fe.xtipo_expo = 1
fe.xPermiso_existente = "S"
fe.xDst_cmp = 203
fe.xCliente = "Joao Da Silva"
fe.xCuit_pais_clienteS = "50000000016"
fe.xDomicilio_cliente = "Rua 76 km 34.5 Alagoas"
fe.xId_impositivo = "PJ54482221-l"
fe.xMoneda_idS = "012"
fe.xMoneda_ctzS = 0.51
fe.xObs_comerciales = "Sin observaciones"
fe.xImp_total = 500
fe.xForma_pago = "Contado"
fe.xIncoTerms = "CIF"
fe.xIncoTerms_ds = "Texto dic."
fe.xIdioma_cbte = 1
fe.ArchivoXMLRecibido = "c:\recibido.xml"
fe.xItemCantidad = 2
fe.xIndiceItem = 0
fe.xITEMPro_codigo = "PRO1"
fe.xITEMPro_ds = "Producto Tipo 1 Exportacion MERCOSUR ISO 9001"
fe.xITEMPro_qty = 1
fe.xITEMPro_umed = 7
fe.xITEMPro_precio_uni = 250
fe.xITEMPro_precio_item = 250
fe.xIndiceItem = 1
fe.xITEMPro_codigo = "PRO1"
fe.xITEMPro_ds = "Producto Tipo 1 Exportacion MERCOSUR ISO 9001"
fe.xITEMPro_qty = 1
fe.xITEMPro_umed = 7
fe.xITEMPro_precio_uni = 250
fe.xITEMPro_precio_item = 250
fe.xPermisoCantidad = 2
fe.xPermisoNoInformar = 0
fe.xIndiceItem = 0
fe.xPERMISO_id_permiso = "09052EC01006154G"
fe.xPERMISO_dst_merc = 203
fe.xIndiceItem = 1
fe.xPERMISO_id_permiso = "09052EC01006154G"
fe.xPERMISO_dst_merc = 202
fe.xCmps_asocCantidad = 0
If fe.xRegistrar(3, 19, "1") Then
MsgBox("Reproceso " + fe.xRespuestaReproceso)
MsgBox("resultado correcto " + fe.xRespuestaResultado)
MsgBox("CAE " + fe.xRespuestaCAE)
MsgBox("número " + fe.xRespuestacbte_numeroS)
Else
MsgBox("Reproceso " + fe.xRespuestaReproceso)
MsgBox("resultado falso " + fe.xRespuestaResultado)
MsgBox("error " + fe.xerrmsg)
MsgBox("motivo " + fe.xRespuestaMotivos_obs)
MsgBox("ultimo mensaje error " + fe.UltimoMensajeError)
End If
Else
MsgBox("fallo acceso " + fe.UltimoMensajeError)
End If
Else
MsgBox("fallo iniciar" + fe.UltimoMensajeError)
End