Ayuda a desarrolladores para integrar Verifactu con Visual Basic: aprende a realizar peticiones REST, generar facturas con QR, firmar con certificado digital y crear XML de forma eficiente.
Para realizar una petición a una API REST, como la API de Verifacti, desde Visual Basic, podemos utilizar HttpClient. Aquí tienes un ejemplo de cómo hacer una petición POST:
Imports System.Net.Http
Imports System.Net.Http.Headers
Imports System.Text
Imports System.Threading.Tasks
Module Module1
Sub Main()
' Call the asynchronous method and wait for completion
CreateInvoiceAsync().Wait()
End Sub
Private Async Function CreateInvoiceAsync() As Task
Dim apiKey As String = "<API_KEY>"
Dim url As String = "https://api.verifacti.com/verifactu/create"
' Build the JSON payload as a string
Dim jsonPayload As String = "{" & _
"""serie"": ""A""," & _
"""numero"": ""234634""," & _
"""fecha_expedicion"": ""02-12-2024""," & _
"""tipo_factura"": ""F1""," & _
"""descripcion"": ""Descripcion de la operacion""," & _
"""nif"": ""A15022510""," & _
"""nombre"": ""Empresa de prueba SL""," & _
"""lineas"": [{" & _
"""base_imponible"": ""200""," & _
"""tipo_impositivo"": ""21""," & _
"""cuota_repercutida"": ""42""" & _
"}]," & _
"""importe_total"": ""242""" & _
"}"
Using client As New HttpClient()
' Set the authorization header
client.DefaultRequestHeaders.Authorization = New AuthenticationHeaderValue("Bearer", apiKey)
' Set the Content-Type header
client.DefaultRequestHeaders.Accept.Add(New MediaTypeWithQualityHeaderValue("application/json"))
' Create the StringContent with the JSON payload
Dim content As New StringContent(jsonPayload, Encoding.UTF8, "application/json")
' Send the POST request asynchronously
Dim response As HttpResponseMessage = Await client.PostAsync(url, content)
If response.IsSuccessStatusCode Then
Dim result As String = Await response.Content.ReadAsStringAsync()
Console.WriteLine("Success: " & result)
Else
Console.WriteLine("Error: " & response.StatusCode.ToString())
End If
End Using
End Function
End Module
Para incrustar un código QR en una factura en formato PDF en Visual Basic, se pueden utilizar bibliotecas como:
Ejemplo de cómo insertar una imagen en base64 en un PDF con iTextSharp:
Imports System.IO
Imports iTextSharp.text
Imports iTextSharp.text.pdf
Sub InsertarQR(ByVal pdfPath As String, ByVal qrBase64 As String)
Dim pdfReader As New PdfReader(pdfPath)
Dim pdfStamper As New PdfStamper(pdfReader, New FileStream("FacturaConQR.pdf", FileMode.Create))
Dim content As PdfContentByte = pdfStamper.GetOverContent(1)
Dim qrBytes As Byte() = Convert.FromBase64String(qrBase64)
Dim qrImage As Image = Image.GetInstance(qrBytes)
qrImage.SetAbsolutePosition(50, 50)
content.AddImage(qrImage)
pdfStamper.Close()
pdfReader.Close()
End Sub
Para generar un código QR en Visual Basic, se pueden utilizar estas bibliotecas:
Ejemplo de generación de un código QR con ZXing.Net:
Imports ZXing
Imports System.Drawing
Sub GenerarQR(ByVal texto As String)
Dim qrWriter As New BarcodeWriter()
qrWriter.Format = BarcodeFormat.QR_CODE
Dim bitmap As Bitmap = qrWriter.Write(texto)
bitmap.Save("QR.png", Imaging.ImageFormat.Png)
End Sub
“No dejes para mañana lo que puedes hacer hoy.”
Benjamin Franklin
Los contenidos proporcionados por Bilbabit SL en cualquiera de sus secciones (Blog, guías, landing pages, sección preguntas frecuentes, emails comerciales o de atención al cliente) son exclusivamente informativos y no tienen validez legal. BILBABIT no es una empresa de consultoría fiscal, sino una desarrolladora de software fiscal, por lo que la información que ofrece es de carácter orientativo. En cualquier caso, cualquier actividad relacionada con la facturación y la fiscalidad debe ser consultada siempre y sin excepción con un asesor fiscal que entienda las implicaciones específicas de cada normativa para cada empresa o profesional en particular.