Verifactu Visual Basic: Cumpliendo con la normativa de Verifactu

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.

screenshot
Verifacti

Verifacti

18 mar 2025

Cómo hacer una petición a una API REST desde Visual Basic

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

Cómo pegar el QR a la factura en Visual Basic

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

Cómo generar un QR en Visual Basic

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
imagen footer

“No dejes para mañana lo que puedes hacer hoy.”

Benjamin Franklin

Contacta con nosotros

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.