Help for developers to integrate Verifactu with Visual Basic: learn to make REST requests, generate invoices with QR, sign with digital certificate and create XML efficiently.

To make a request to a REST API, such as the Verifacti API, from Visual Basic, we can use HttpClient. Here is an example of how to make a POST request:
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"": ""Nombre cliente""," & _
"""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 ModuleTo embed a QR code in an invoice in PDF format in Visual Basic, you can use libraries such as:
Example of how to insert a base64 image into a PDF with 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 SubTo generate a QR code in Visual Basic, you can use these libraries:
Example of generating a QR code with 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 SubVerifactu mandatory compliance. Who is required to comply with VeriFactu. Mandatory compliance for computerized invoicing systems, legal entities and self-employed workers.
Explanation of Royal Decree 1007/2023, known as the VeriFactu regulation. Summary and implications of the VeriFactu regulation.
Help for developers to integrate Verifactu with C#: learn to make REST requests, generate invoices with QR, sign with digital certificate and create XML efficiently.