floogos
    All templates
    New

    Supplier PDF invoice to a Holded purchase with validation

    AI reads the PDF invoice, validates amounts and required fields, finds or creates the supplier in Holded and records the purchase; if anything fails it alerts you on Telegram.

    Everything is created inactive in a new folder of your account. Nothing runs until you activate it, and you can undo it for 24 hours.

    Workflow diagram: Supplier PDF invoice to a Holded purchase with validation

    What it does

    Automatically records your suppliers' invoices in Holded. Each PDF received via webhook is read and AI turns it into JSON; the Normalizar factura node cleans and validates the data (supplier, tax ID, number, date and total required, net + VAT = total, sum of lines). If valid, the supplier is looked up in Holded by tax ID (created as supplier if missing) and the purchase document is created as a draft with its lines. If invalid, Holded is left untouched and a Telegram alert with the reason arrives.

    What you need: an OpenAI API key, the Holded credential and a Telegram bot.

    How to use it: install the template, connect the three accounts and send invoices to the webhook. The document is created unapproved so you can review it in Holded; once you trust the result, turn on approveDoc in the purchase nodes.

    Limitation: text PDFs only (not scanned) and the tax ID must appear on the invoice.

    How to set it up

    1. 1

      Connect the openai credential

      This template uses openai in: Extraer datos con IA. Create or pick the credential and assign it in those nodes.

    2. 2

      Connect the holded credential

      This template uses holded in: Buscar proveedor por NIF, Crear compra (proveedor existente), Crear proveedor, Crear compra (proveedor nuevo). Create or pick the credential and assign it in those nodes.

    3. 3

      Connect the telegram credential

      This template uses telegram in: Avisar de factura a revisar. Create or pick the credential and assign it in those nodes.

    4. 4

      Copy the webhook URL (Recibir factura)

      A new URL is generated on install. Paste it into the external system that must call this workflow.

    5. 5

      Connect OpenAI, Holded and Telegram

      Set up the credentials of Extraer datos con IA, the Holded nodes and Avisar de factura a revisar, and enter your Telegram chatId.

    6. 6

      Send an invoice

      Send a POST to the webhook URL with {"pdf_base64":"<base64 encoded PDF>"}. A draft purchase should appear in Holded.

    7. 7

      JSON format and validation

      The validated JSON has this shape: {"proveedor":"Suministros Norte S.L.","nif":"B12345678","numero_factura":"F-2026-0412","fecha":"2026-09-30","moneda":"EUR","base_imponible":200,"iva_porcentaje":21,"iva_importe":42,"total":242,"lineas":[{"descripcion":"Papel A4 (caja)","cantidad":4,"precio_unitario":50,"importe":200}],"estado":"OK"}. For Holded, each line subtotal is the unit price without VAT. Required fields (including nif) and the confidence threshold are changed at the top of the Normalizar factura script.

    8. 8

      Activate the workflow

      Workflows are installed inactive. Once everything is set, activate it.

    Try it in under 5 minutes

    Create the template in your account, connect your credentials and activate it when you are ready.

    Use this template