Following system theme

#Scribo Documentation

Scribo is a free, EN 16931-compliant e-invoicing tool. It generates invoices in the format each jurisdiction requires — today ZUGFeRD and XRechnung for Germany and a plain PDF for the United States; Factur-X (France), Facturae (Spain), and Peppol BIS UBL (Belgium and other EU countries) are coming soon. No credit card — sign in with a magic link sent to your sender email.

It is the same engine that powers scribo.causaprima.ai, available through five surfaces. Pick one:

Surface When to use Reference
Web UI One-off invoice from a browser. scribo.causaprima.ai
HTTP API Server-side integration, partner products. API reference
MCP server Claude Desktop, Cursor, Cline, ChatGPT App, OpenAI Codex CLI, or any MCP client — hosted at scribo.causaprima.ai/mcp. MCP guide
CLI Shell scripts, CI pipelines, terminal workflows. CLI reference
Skill Installable skill for Claude Code (/plugin install), Claude.ai / Claude Desktop / Cowork / ChatGPT (.zip upload), or OpenAI Codex CLI (git clone). Skill guide

All five paths talk to the same /api/v1 API. Whichever you pick, your sender.contact_email is your login — same email across surfaces means the same account.

#Quickstart

The fastest path from zero to a downloadable PDF:

# 1. Install the CLI globally (or use npx)
npm install -g @causaprima/scribo-cli

# 2. Generate an invoice
scribo create \
  --sender-name "Example GmbH" --sender-country DE \
  --sender-address "Example Allee 1" --sender-postcode 10115 --sender-city Berlin \
  --sender-tax-id DE123456788 --sender-email billing@example.com \
  --recipient-name "Acme GmbH" --recipient-country DE \
  --recipient-address "Hauptstrasse 1" --recipient-postcode 10117 --recipient-city Berlin \
  --recipient-email ap@acme.example \
  --line "Consulting,3,1200,19,DAY,S" \
  --currency EUR --due-date 2026-06-01 \
  -o invoice.pdf

The output is a ZUGFeRD COMFORT hybrid (PDF/A-3 with embedded EN 16931 CII XML). On the first invoice for a sender email the CLI prompts for the 6-digit verification code Scribo emails you; the same email carries the magic link for signing back in and re-downloading.

#What Scribo generates

Jurisdiction Default format Status
Germany — B2B ZUGFeRD COMFORT (PDF/A-3 + CII XML) GO
Germany — B2G (federal) XRechnung UBL (triggered by leitweg_id) GO
United States Plain PDF GO
France Factur-X EN 16931 Coming soon
Spain Facturae 3.2.2 Coming soon
Belgium, Netherlands, Luxembourg, Austria Peppol BIS 3.0 UBL Coming soon
Italy, Mexico, Brazil Plain PDF with submission banner Coming soon

Full priority chain and per-format details: jurisdictions.

#What Scribo does not do

  • Tax advice. Scribo never infers the tax category code. The caller picks one of S / Z / E / AE / K / G / O per EN 16931.
  • OCR or invoice reading. Scribo is generate-only. Reading an existing invoice PDF is a different tool.
  • Delivery to the recipient. Scribo returns a download URL and emails the sender a magic-link sign-in. The caller delivers the invoice to the recipient themselves.
  • Credit notes or other document types beyond commercial invoices. Deferred to a later release.

#Compliance posture

Scribo emits invoices conforming to EN 16931-1:2017 with the relevant national CIUS. Every EN 16931 output (ZUGFeRD, XRechnung) runs through Invopop's hosted validator before the bytes are returned — output that fails the rule set never reaches the user. US plain PDFs carry no EN 16931 XML and are rendered directly. See /compliance for the trust posture, retention defaults, sub-processor list, and the per-format support status.

#Reference