Insights
pinned answers · every figure is computed from your ledger, not by the AILedger
| Number | Client | Total | Status | Due | Actions |
|---|
| Number | Client | Total | Status | Due | Actions |
|---|
VeriFactu-compliant invoicing software is mandatory in Spain from 2027, and non-compliant software can be fined up to €50,000 a year. Cuadra never takes a cut of your payments: PayPal charges its usual fees on what you collect.
The same engine ships as an MCP server. Claude, ChatGPT or any MCP client can draft, issue and collect VeriFactu invoices with PayPal, chase payments and draft the VAT return, while your MCP client asks you to approve every action. Same validation, same hash chain, your own PayPal account. Below, a real session: an agent drafts an invoice, issues it, collects it with PayPal and checks the chain.
A real run of mcp/server.js, recorded by scripts/mcp-demo.js. PayPal is the in-memory stand-in (hence the MOCK ids), so no network and no credentials. Messages are abbreviated for reading and the text copy of each result is left out: the full JSON.
{
"mcpServers": {
"cuadra": {
"command": "node",
"args": ["/path/to/cuadra/mcp/server.js"],
"env": { "CUADRA_NIF": "B76543214", "CUADRA_NAME": "Estudio Norte SL",
"PAYPAL_CLIENT_ID": "…", "PAYPAL_CLIENT_SECRET": "…" }
}
}
}
draft_invoice · issue_invoice · list_invoices · sync_paypal · collect_with_paypal · send_reminder · record_payment · cancel_invoice · rectify_invoice · vat_return · verify_ledger · export_verifactu_xml
Read-only tools are annotated as such and cancel_invoice as destructive, so your client asks before it runs. If the ledger file is edited by hand, verify_ledger says where and every tool that writes refuses to run.