---
title: "Quaderno Integration"
description: "Quaderno automates sales tax and invoicing for businesses selling across borders. Agents issue invoices, receipts, credit notes, and proformas, calculate tax and validate tax IDs, manage contacts and products, and record the location evidence EU digital VAT requires."
url: https://flowrunner.ai/integrations/quaderno
date_modified: 2026-09-04T14:53:04-07:00
---

# Quaderno

[Accounting](https://flowrunner.ai/integrations/category/finance-accounting)

Quaderno automates sales tax and invoicing for businesses selling across borders. Agents issue invoices, receipts, credit notes, and proformas, calculate tax and validate tax IDs, manage contacts and products, and record the location evidence EU digital VAT requires.

[Verified](https://flowrunner.ai/integrations/verified "What does verified mean?") · 1 trigger · 92 actions · API key · available

[Quaderno website](https://acme.quadernoapp.com/) · [Platform Documentation](https://developers.quaderno.io/api) · Capability data verified 2026-08-25

1.  A checkout completes for a cross-border sale
2.  Agent reads the buyer's location, the product's tax code, and any business tax ID supplied at checkout
3.  Validate Tax ID checks that number against the relevant government register
4.  Calculate Tax Rate answers the applicable rate for the seller location, the buyer location, and what is being sold
5.  Create Invoice issues the document with the resolved treatment, and Create Evidence records the location proof behind it
6.  Deliver Invoice emails the document to the customer using the account's configured template and language
7.  A tax owner rules on any sale where the tax ID check came back inconclusive rather than valid or invalid

## What This Integration Enables

Quaderno is a tax determination engine that happens to issue invoices. Calculate Tax Rate answers the correct rate for a sale anywhere in the world given where the seller and the buyer are and what is being sold. Validate Tax ID checks a customer's number against the relevant government register. Evidence records the location proof that EU digital services VAT requires, which is what makes a rate defensible later. Reading the API as a billing tool misses the point of it, and reading it as a determination engine tells you exactly where an agent adds value and where it should stop.

The other structural fact is immutability. Documents come in five kinds that are not interchangeable, and the finalized ones cannot be altered: there is no delete for an invoice, a receipt, or a credit note. Corrections happen through Void Invoice, Void Receipt, and Void Credit, each of which requires a stated reason and leaves both the original and the reversal on the record. FlowRunner agents therefore do their thinking before the write. They resolve the treatment, gather the evidence, issue the document, deliver it, record payments against it, and mark uncollectible what will not be paid. Nothing about that turns FlowRunner or Quaderno into a source of tax advice, and this page does not claim otherwise. The determination is the vendor's, and the position the company takes on it belongs to a person.

### Without FlowRunner

**Rates carried in code**: The tax treatment for each country lives in a conditional somebody wrote once and nobody revisits

**Evidence assembled after the fact**: The proof behind a rate is reconstructed during a review, from logs that were not kept for that purpose

**Corrections attempted as edits**: Someone tries to fix an issued document and finds out it cannot be changed

### With FlowRunner

**Rates answered per transaction**: Each sale asks for its own rate, given the seller, the buyer, and what was sold

**Evidence recorded at the sale**: Location proof is written alongside the document, at the moment the facts are known

**Corrections issued as documents**: Voids and credit notes carry a stated reason and both records remain, which is how the platform is designed to work

## Use Case Scenarios

### Cross-border checkout with its evidence attached

A sale completes in [Shopify](https://flowrunner.ai/integrations/shopify) or through [Stripe](https://flowrunner.ai/integrations/stripe). The agent resolves or creates the contact, calls Calculate Tax Rate for the buyer's address and the product's tax code, and issues the document with Create Invoice or, where the sale is already settled, Create Receipt. Create Evidence then records the location signals behind the determination while they are still available, rather than leaving them to be reconstructed during a review. Deliver Invoice sends the document, and the delivery history stays on the record so a customer claiming they never received it can be answered from the platform.

### Quotes that move through a real state machine

Proformas in Quaderno are not draft invoices, they are their own object with a lifecycle. The agent issues one with Create Proforma and Deliver Proforma. Accept Proforma and Decline Proforma record the customer's answer, Revert Proforma puts an accepted or declined quote back to outstanding when the conversation reopens, and Convert Proforma turns an accepted one into a real invoice. Only proformas in the right state accept each transition, so the agent reads the current state before it acts rather than retrying blindly, and a quote that has already been invoiced cannot be reverted at all.

### Registration thresholds that arrive before the obligation does

Quaderno raises events when a tax threshold is approached or crossed in a jurisdiction. The agent listens, then reads List Tax Jurisdictions and the account's own registrations through List Tax IDs to establish what is already in place. It posts the finding into [Slack](https://flowrunner.ai/integrations/slack) with the jurisdiction named and writes it into a tracker in [Google Sheets](https://flowrunner.ai/integrations/google-sheets) alongside the sales that drove it. The agent does not register anything anywhere. It makes sure the threshold is a conversation the finance team has before it becomes a problem they inherit.

## Human-in-Loop Highlight

Validate Tax ID has three possible answers, and the third one is the reason this gate exists. It returns true when the number represents a business, false when it does not, and null when the external validation service is temporarily unavailable. Null is not a verdict. Treated as false, the sale is invoiced with tax charged to a customer who may not owe it. Treated as true, the sale is invoiced on a business-to-business basis that the register never confirmed. Either way the mistake is written into a document that cannot then be edited, because once finalized an invoice is immutable in Quaderno by design. The only correction is Void Invoice, which creates a credit note with a stated reason and leaves both documents permanently on the account. So the agent treats null as a stop. Valid and invalid results flow straight through and get invoiced without anyone looking, which is the whole point of running the check. An inconclusive result is posted with the customer, the number submitted, the jurisdiction, the order value, and the treatment each interpretation would produce, and a tax owner picks one. That person is choosing between two defensible readings of missing information. The agent is choosing whether to guess, and the answer to that is always no.

Agent processes routinely

Detects exception requiring judgment

Clear match Continues automatically

Ambiguous Routes to human via preferred channel

Human decides

Agent resumes with decision

## Agent Capabilities

92 actions

### Invoices

8

-   **List Invoices** Lists invoices, paginated and sorted by creation date, newest first.
-   **Create Invoice** Creates an invoice. Supplying a payment method records a payment for the full amount and marks the invoice paid immediately, so a workflow chooses that deliberately.
-   **Retrieve Invoice** Reads an existing invoice by the identifier returned when it was created.
-   **Update Invoice** Updates an invoice. Once finalized, invoices are immutable in Quaderno, so amounts, line items, dates, and customer details cannot be altered on an issued document.
-   **Deliver Invoice** Emails the invoice to the customer using the account's template and language. The contact needs a valid email address, and the delivery history is kept on the record.
-   **Mark Invoice Uncollectible** Marks an invoice as uncollectible, which is a write-off rather than a void. Used to track what will not be paid without pretending it was never owed.
-   **Record Invoice Payment** Records a payment against an invoice. When payments reach the invoice total it is automatically marked paid.
-   **Void Invoice** Voids an invoice by creating a credit note with the given reason. A pending invoice is marked paid through an offsetting payment. This is the correction path, because deletion does not exist.

### Credit Notes

7

-   **List Credits** Lists credit notes, newest first. Credit notes cancel or partially refund an invoice.
-   **Create Credit** Creates a credit note against an existing invoice, offsetting it fully or partially and recording the refund. Credit notes are immutable after creation.
-   **Retrieve Credit** Reads an existing credit note by its identifier.
-   **Update Credit** Updates a credit note. Once finalized these are immutable, so amounts, line items, and customer details are fixed.
-   **Deliver Credit** Emails the credit note to the customer using the account's template and language.
-   **Record Credit Payment** Records a payment against a credit note. When payments reach the credit note total it is automatically marked paid.
-   **Void Credit** Voids a credit note. A reason is required for the audit record, and voiding reopens the original invoice if this credit note had closed it.

### Receipts

5

-   **List Receipts** Lists receipts, newest first. All receipts are paid by definition.
-   **Create Receipt** Creates a receipt documenting a completed transaction. A payment method is required, and receipts are immutable after creation.
-   **Retrieve Receipt** Reads an existing receipt by its identifier.
-   **Deliver Receipt** Emails the receipt to the customer using the account's template and language.
-   **Void Receipt** Voids a receipt by issuing an offsetting credit note. A reason is required, and this is the only way to reverse a completed transaction here.

### Proformas

9

-   **List Proformas** Lists proformas, newest first.
-   **Create Proforma** Creates a proforma, which is a quote rather than a tax document.
-   **Retrieve Proforma** Reads an existing proforma by its identifier, including the state it is currently in.
-   **Update Proforma** Updates a proforma. Accepted and invoiced proformas cannot be modified.
-   **Accept Proforma** Marks a proforma as accepted by the customer. Only proformas that are outstanding or late can be accepted.
-   **Convert Proforma** Converts an accepted proforma into an invoice and returns the new document. Only accepted proformas can be converted.
-   **Decline Proforma** Marks a proforma as declined by the customer. Only proformas that are outstanding or late can be declined.
-   **Deliver Proforma** Emails a proforma to the customer.
-   **Revert Proforma** Reverts a proforma from accepted or declined back to outstanding. An invoiced proforma cannot be reverted.

### Recurring Documents

5

-   **List Recurrings** Lists the recurring document templates, newest first.
-   **Create Recurring** Creates a recurring template, which issues documents on a schedule.
-   **Retrieve Recurring** Reads an existing recurring template by its identifier.
-   **Update Recurring** Updates a recurring template, which changes every document it issues from that point forward.
-   **Delete Recurring** Deletes a recurring template, after which it stops issuing documents.

### Expenses

5

-   **List Expenses** Lists expenses, newest first.
-   **Create Expense** Creates an expense, which is how a supplier cost reaches the account alongside the revenue side.
-   **Retrieve Expense** Reads an existing expense by its identifier.
-   **Update Expense** Updates an expense.
-   **Delete Expense** Deletes an existing expense.

### Contacts

5

-   **List Contacts** Lists contacts, newest first.
-   **Create Contact** Creates a contact, representing a customer or vendor who appears on invoices, credit notes, and expenses.
-   **Retrieve Contact** Reads an existing contact by its identifier.
-   **Update Contact** Updates a contact. Parameters not supplied are left unchanged.
-   **Delete Contact** Permanently deletes a contact. This cannot be undone.

### Products

5

-   **List Products** Lists products, newest first.
-   **Create Product** Creates a product, which can be used as a line item on invoices, credit notes, and expenses.
-   **Retrieve Product** Reads an existing product by its identifier.
-   **Update Product** Updates a product. Parameters not supplied are left unchanged.
-   **Delete Product** Permanently deletes a product. This cannot be undone.

### Addresses

4

-   **List Addresses** Lists the addresses on a Connect custom account, newest first.
-   **Create Address** Creates an address to be used on a Connect custom account.
-   **Retrieve Address** Reads an existing address by its identifier.
-   **Update Address** Updates an address. Parameters not supplied are left unchanged.

### Tax

12

-   **List Tax Jurisdictions** Lists the tax jurisdictions, each an area subject to its own regulations.
-   **Retrieve Tax Jurisdiction** Reads one tax jurisdiction.
-   **List Tax Codes** Lists the supported tax codes, which classify goods and services for tax purposes.
-   **Retrieve Tax Code** Reads one tax code.
-   **List Tax IDs** Lists the registered tax IDs on the account.
-   **Create Tax ID** Registers a tax ID representing a business and associates it with a specific jurisdiction.
-   **Validate Tax ID** Checks a tax ID against the relevant register. The result is true, false, or null when the external validation service is temporarily unavailable, and that third answer is what this page's human gate is built on.
-   **Retrieve Tax ID** Reads an existing tax ID by its identifier.
-   **Update Tax ID** Updates a tax ID. Parameters not supplied are left unchanged.
-   **Delete Tax ID** Permanently deletes a tax ID. This cannot be undone.
-   **Calculate Tax Rate** Calculates the applicable tax rate for a given address and transaction type. The determination step every cross-border sale runs through.
-   **Create Transaction** Creates a sale or refund transaction, which is how a sale settled elsewhere is reported for tax purposes.

### Evidence

4

-   **List Evidences** Lists the evidence objects, newest first.
-   **Create Evidence** Creates an evidence record, which is the location proof EU digital services VAT requires and what makes a rate defensible in a review.
-   **Retrieve Evidence** Reads updated information from an evidence record.
-   **Update Evidence** Updates an evidence record. Parameters not supplied are left unchanged.

### Checkout

10

-   **List Sessions** Lists the Checkout sessions, newest first.
-   **Create Session** Creates a Checkout session, for sellers without a checkout of their own.
-   **Retrieve Session** Reads an existing session by its identifier.
-   **Update Session** Updates a session. Only pending sessions can be updated.
-   **Delete Session** Permanently deletes a session. Only pending sessions can be deleted, and this cannot be undone.
-   **List Coupons** Lists coupons, newest first.
-   **Create Coupon** Creates a coupon, which represents a discount applied at checkout.
-   **Retrieve Coupon** Reads an existing coupon by its identifier.
-   **Update Coupon** Updates a coupon. Parameters not supplied are left unchanged.
-   **Delete Coupon** Permanently deletes a coupon. This cannot be undone.

### Reporting

3

-   **List Report Requests** Lists the reporting requests on the account.
-   **Create Report Request** Creates a reporting request. The file is ready some minutes later, so a flow polls or listens rather than waiting.
-   **Retrieve Report Request** Reads updated information from a reporting request, including whether its file is ready.

### Connect Accounts

4

-   **Create Custom Account** Creates a Connect custom account. These manage other people's accounts under a platform, so they are for platform builders rather than for managing your own account.
-   **List Custom Accounts** Lists the Connect accounts under the platform.
-   **Retrieve Custom Account** Reads an existing Connect custom account.
-   **Update Custom Account** Updates an existing Connect custom account.

### Webhooks and Tools

6

-   **List Webhooks** Lists the webhooks on the account, newest first, with each endpoint's secret and its last delivery error.
-   **Retrieve Webhook** Reads one webhook by its ID, including its delivery history and last error.
-   **Create Webhook** Creates a webhook for a URL and a set of event types, and returns the secret its signatures are built from.
-   **Update Webhook** Updates a webhook's URL or its event list. The event list replaces what is stored rather than adding to it.
-   **Delete Webhook** Deletes a webhook. This cannot be undone.
-   **Ping** Checks that the account and credentials answer, which is the cheapest connection test before a batch begins.

## Triggers

1 triggers

### Event Triggers

1

-   **On Quaderno Event** Fires when an invoice, receipt, credit note, expense, contact, or payment changes, when a checkout or delivery finishes, when a report completes, or when a tax threshold is approached or crossed. Two behaviors are worth building around. Invoice and receipt creation events fire before payments are recorded, so a flow that reads the paid amount from a creation event will see zero and should listen for the payment event instead. The threshold events are the other half of the tax engine, because they arrive before an obligation exists rather than after.

## Frequently Asked Questions

### What can FlowRunner do with Quaderno?

FlowRunner agents can run Create Custom Account, List Custom Accounts, and Retrieve Custom Account in Quaderno, plus 89 more actions.

### Does connecting Quaderno to FlowRunner require OAuth?

No. Quaderno connects to FlowRunner with an API key, no OAuth flow required.

### Can Quaderno trigger a FlowRunner workflow automatically?

Yes. Quaderno supports 1 trigger that can start a FlowRunner workflow automatically.

**Work at Quaderno?** This integration exposes Quaderno to AI agents on every FlowRunner plan, including through MCP, at no cost to you. [See what FlowRunner offers integration partners](https://flowrunner.ai/integrations/partners), including how to keep this page current.

---
Markdown version of https://flowrunner.ai/integrations/quaderno. Site index: https://flowrunner.ai/llms.txt
