# BeeL. API Documentation > BeeL. is an invoicing API for businesses in Spain with VeriFactu built in: it issues, numbers and sends invoices, and registers each one with the tax agency (AEAT). This index lists every guide and every fiscal rule an integration must respect. ## Instructions for AI agents Follow these when you write code for, or answer questions about, the BeeL. API: - Use the company-scoped routes, `https://app.beel.es/api/v1/companies/{company_id}/…`. The older flat routes (`/v1/invoices`, `/v1/customers`, …) are deprecated and retire on 9 December 2026; do not write new code against them. - Send an `Idempotency-Key` header on every call that creates, issues, corrects or voids, and reuse the same key when you retry. - Never expose an API key: read it from `BEEL_API_KEY`, never hard-code, log or commit it, and never call the API from a browser. - `beel_sk_test_…` keys use the sandbox; `beel_sk_live_…` keys issue real invoices that reach AEAT. Develop and test with a test key. - Every page below has a Markdown twin (`.md`). The fiscal rules are at https://docs.beel.es/rules and, as JSON, https://docs.beel.es/api/rules.json; cite a rule by its id. - Which official SDK to use for a stack, and how to install it: https://docs.beel.es/api/sdks.json. Install it before writing code; do not hand-write HTTP calls for flows the SDK covers. - To find a page, search instead of downloading everything: `GET https://docs.beel.es/api/search?q=` returns the matching pages, each with the heading that matches, a snippet and an `md_url`; then read only that `md_url`. A rule by id: `https://docs.beel.es/api/rules/`; the rules behind an error code: `https://docs.beel.es/api/rules?error_code=`. - Critical rules: - An issued invoice is never edited or deleted. ([LIF-001](https://docs.beel.es/rules/LIF-001.md)) - Test in the sandbox, never with real invoices. ([LIF-003](https://docs.beel.es/rules/LIF-003.md)) - Retry writes with the same Idempotency-Key. ([LIF-004](https://docs.beel.es/rules/LIF-004.md)) - Void only an invoice that should never have been issued. ([VOI-001](https://docs.beel.es/rules/VOI-001.md)) - Pick the reason code: R1–R4 for standard invoices, R5 for simplified. ([COR-002](https://docs.beel.es/rules/COR-002.md)) - The number is assigned when the invoice is issued. ([NUM-001](https://docs.beel.es/rules/NUM-001.md)) - An issued number is never reused, even when the invoice is voided. ([NUM-002](https://docs.beel.es/rules/NUM-002.md)) - Only a corrective invoice totals less than zero. ([CNT-019](https://docs.beel.es/rules/CNT-019.md)) - A simplified invoice never exceeds 3,000 €. ([SIM-001](https://docs.beel.es/rules/SIM-001.md)) - Send every amount in euros. ([TAX-013](https://docs.beel.es/rules/TAX-013.md)) - Do not send an issue date. ([DAT-001](https://docs.beel.es/rules/DAT-001.md)) - Wait for the QR before you distribute the PDF. ([QRC-002](https://docs.beel.es/rules/QRC-002.md)) - Follow submission_status and fix what AEAT rejects. ([REC-008](https://docs.beel.es/rules/REC-008.md)) ## Get started - [BeeL. API](https://docs.beel.es/index.md): Invoicing API for businesses in Spain, with VERI*FACTU submission to AEAT. - [Overview](https://docs.beel.es/auth.md): How to authenticate your requests to the BeeL. API. - [API keys](https://docs.beel.es/auth/api-keys.md): Authenticate with API keys for server-to-server integrations. - [Scopes](https://docs.beel.es/auth/scopes.md): Available permission scopes for API keys. - [Pricing](https://docs.beel.es/pricing.md): What the BeeL. API costs per NIF (tax ID), what each plan includes and what it doesn't, the Stripe plan's volume tiers, how billing works… - [FAQ](https://docs.beel.es/faq.md): The questions integrators ask most — compliance, architecture, VeriFactu, webhooks, integration, sandbox and pricing — each answered in a… - [Overview](https://docs.beel.es/tools.md): The BeeL. developer ecosystem — REST API, SDKs, CLI, n8n node, MCP server, Claude Code plugin and machine-readable docs, all deriving from… - [Node.js / TypeScript SDK](https://docs.beel.es/sdks/node.md): Fully-typed TypeScript SDK for the BeeL. API with automatic retries, idempotency and built-in webhook verification. - [CLI](https://docs.beel.es/cli.md): Agent-first command-line interface for the BeeL. API — run any endpoint from the terminal, sandbox by default. - [Overview](https://docs.beel.es/n8n.md): Issue VeriFactu invoices from your n8n workflows, without writing HTTP requests. - [Install and connect](https://docs.beel.es/n8n/install.md): Install the node in n8n and point it at your BeeL. account. - [Recipes](https://docs.beel.es/n8n/recipes.md): Workflows worth building, including the one that closes a gap nothing else covers. - [Overview](https://docs.beel.es/mcp.md): Connect AI assistants to BeeL. through the Model Context Protocol — issue invoices, manage NIFs and customers, and read your fiscal data in… - [Tools & prompts](https://docs.beel.es/mcp/tools.md): The tools the BeeL. MCP server exposes and what they do not cover yet, the guided workflow prompts, and the inline invoice PDF viewer. - [Claude Code](https://docs.beel.es/claude-code.md): Use the BeeL. plugin for Claude Code to implement, audit, and maintain BeeL. API integrations with AI assistance. - [AI agents](https://docs.beel.es/ai-agents.md): How to build a BeeL. integration with an AI agent — the official SDK, the MCP server, the Claude Code plugin, the Markdown docs and… - [Guides](https://docs.beel.es/guides.md): Practical guides for the BeeL. API — the invoice lifecycle, amounts, series, recurring invoices, proformas, bulk work, errors, idempotency… - [Integrating BeeL. into your ERP](https://docs.beel.es/guides/erp-integration.md): The decisions every ERP integration makes — who issues the invoice, who renders the PDF and sends the email, how to continue your… - [From order to invoice](https://docs.beel.es/guides/order-to-invoice.md): One page with typed Node.js SDK code for each case a shop meets when it turns orders into invoices, from the first issue to refunds and… - [Invoice lifecycle](https://docs.beel.es/guides/invoice-lifecycle.md): Every invoice status, which operations each one allows, and the difference between the fiscal steps (issue, void, correct) and the… - [Amounts and rounding](https://docs.beel.es/guides/amounts-and-rounding.md): How BeeL. turns quantities, prices and rates into bases, taxes and totals: precision, the three ways to price a line, per-group tax… - [Series and numbering](https://docs.beel.es/guides/series-and-numbering.md): When an invoice gets its number, how the format and counter resets work, default series per document type, and why a series locks once it… - [Recurring invoices](https://docs.beel.es/guides/recurring-invoices.md): Schedule invoices that generate themselves — cadence, first occurrence, review drafts, automatic sending, how a series ends, and what… - [Proformas](https://docs.beel.es/guides/proformas.md): Send a customer a formal quote with no fiscal validity, then turn it into a real invoice once they accept — as a draft or issued in the… - [Branding and PDFs](https://docs.beel.es/guides/branding-and-pdf.md): Set the logo, template, colour and languages of a company's invoices, preview a draft, and download the final PDF without writing a polling… - [Sending email](https://docs.beel.es/guides/sending-email.md): How BeeL. delivers invoice emails — the sandbox recipient restriction, per-account send quotas, queued delivery, and bulk limits. - [Custom sending domain](https://docs.beel.es/guides/custom-sending-domain.md): Send invoice emails from your own domain instead of BeeL.'s address, and choose the sender and default content of each company. - [Bulk operations and exports](https://docs.beel.es/guides/bulk-operations-and-exports.md): Issue, mark, download, email and export many invoices at once, and create or delete customers and products in batches — and how to read… - [Importing data](https://docs.beel.es/guides/importing-data.md): Bring an existing customer base into a company from a CSV or a Holded export, rehearse it first, and create customers or products in bulk… - [Fiscal summary](https://docs.beel.es/guides/fiscal-summary.md): Read the VAT and IRPF totals of a company for any period of up to 365 days, plus an annual IRPF projection — a starting point for preparing… - [Filtering by metadata](https://docs.beel.es/guides/filtering-by-metadata.md): Attach arbitrary key/value pairs to invoices and query them back with `?metadata[key]=value`. - [Custom fields](https://docs.beel.es/guides/custom-fields.md): Define your own labels for a company's invoices (store, site, cost centre), fill them in, and filter and export by them. - [Handling errors](https://docs.beel.es/guides/handling-errors.md): Error response shape, status codes, retry rules with idempotency semantics, and how to consume BeeL. errors programmatically. - [Idempotency](https://docs.beel.es/guides/idempotency.md): How to use idempotency keys to prevent duplicate operations in the BeeL. API. - [Rate limits](https://docs.beel.es/guides/rate-limits.md): Understand the rate limits applied to the BeeL. API and how to handle them. - [Limits and pagination](https://docs.beel.es/guides/limits-and-pagination.md): How collections page and sort, and every size and batch limit the BeeL. API enforces, in one place. - [Deprecation policy](https://docs.beel.es/guides/deprecation-policy.md): How long a deprecated route keeps working, what we consider breaking, and which headers tell you an endpoint is on its way out. - [Glossary](https://docs.beel.es/guides/glossary.md): Spanish-English glossary of fiscal and business terms used in the BeeL. API. - [Overview](https://docs.beel.es/webhooks.md): Receive real-time notifications in your application when events happen in BeeL. - [Events](https://docs.beel.es/webhooks/events.md): All webhook event types and their payload schemas. - [Signature verification](https://docs.beel.es/webhooks/signatures.md): Verify that webhook requests genuinely come from BeeL. using HMAC-SHA256. - [Retries & delivery logs](https://docs.beel.es/webhooks/retries.md): How BeeL. retries failed deliveries and how to inspect the delivery history. - [Deduplication](https://docs.beel.es/webhooks/deduplication.md): Safely handle duplicate webhook deliveries using the BeeL-Event-Id header. ## Multi-NIF - [Overview](https://docs.beel.es/multi-nif.md): The multi-NIF model in one place — accounts, companies (NIFs), members with grants and managed accounts; which credential acts on what… - [Companies & fiscal profile](https://docs.beel.es/multi-nif/companies.md): Create, list, read, update and delete the companies (NIFs) under your account, including the TEST vs PROD creation flow. - [Connect Stripe](https://docs.beel.es/multi-nif/payment-connections.md): Connect Stripe per company (NIF) so its payments auto-generate invoices under the right NIF — for the companies you own and, white-label… - [Members & grants](https://docs.beel.es/multi-nif/members-and-grants.md): Account roles (owner/admin/member), per-company grants with an access level (view/operate), and handing over ownership. - [Invitations](https://docs.beel.es/multi-nif/invitations.md): Invite a person to the account by copy-link or email, assign a role and initial grants, and revoke pending invitations. - [Managed accounts](https://docs.beel.es/multi-nif/managed-accounts.md): Build an accounting-firm or platform integration — provision accounts for your clients, hand them over with claim tokens, operate their… ## VeriFactu - [Overview](https://docs.beel.es/verifactu.md): How BeeL. handles VeriFactu compliance — what BeeL. does for you, what you control, and where to learn each scenario. - [Compliance and responsibilities](https://docs.beel.es/verifactu/compliance-and-responsibilities.md): What BeeL. does for each invoice, who signs its declaración responsable, the rules that apply to software built on the API and to the… - [Enabling VeriFactu for a NIF](https://docs.beel.es/verifactu/enabling-verifactu.md): Put a NIF under the VeriFactu regime in Live — the steps, the configuration fields that tell you where you are, the errors you can hit, and… - [Testing VeriFactu in sandbox](https://docs.beel.es/verifactu/testing-in-sandbox.md): How VeriFactu behaves in sandbox — always on, registered against AEAT's test environment, no representation to sign — and the few ways it… - [Invoice types](https://docs.beel.es/verifactu/invoice-types.md): F1, F2, F3, R1–R5 — what each VeriFactu invoice type means, when BeeL. emits each one, and which API fields map to which AEAT code. - [Simplified vs standard (F1 vs F2)](https://docs.beel.es/verifactu/simplified-vs-standard.md): When BeeL. issues a simplified invoice (F2) or a standard invoice (F1), the rules of the RD 1619/2012 behind them, and what BeeL. enforces… - [Corrective invoices (R1–R5)](https://docs.beel.es/verifactu/corrective-invoices.md): Pick the right rectification type and code, and see the canonical request shapes BeeL. accepts for each scenario. - [Tax classification per line](https://docs.beel.es/verifactu/tax-classification.md): Set `exemption_reason` on each line correctly, with the full mapping from BeeL. API values to AEAT codes (S1/S2/N1/N2/E1–E6). - [Regime keys](https://docs.beel.es/verifactu/regime-keys.md): The catalogue of VeriFactu regime codes BeeL. supports, when each one is required, and how it pairs with `exemption_reason`. - [Equivalence surcharge (recargo de equivalencia)](https://docs.beel.es/verifactu/equivalence-surcharge.md): When to add `equivalence_surcharge_rate` on B2B lines, the surcharge values BeeL. accepts and their periods, and how the line is sent to… - [Disbursements (suplidos)](https://docs.beel.es/verifactu/suplidos.md): Bill back amounts you paid in the client's name with `line_type: SUPLIDO`: they stay out of the taxable base, VAT and VeriFactu, and add to… - [International customers](https://docs.beel.es/verifactu/international-customers.md): Every cross-border scenario — intra-EU B2B, B2C with OSS, exports, services to non-EU — with the exact request shape BeeL. accepts. - [Territorial taxes (IVA, IGIC, IPSI)](https://docs.beel.es/verifactu/territorial-taxes.md): When to use IVA, IGIC (Canary Islands), or IPSI (Ceuta & Melilla) — and which `main_tax.type` value to send. - [Auto-submit policy](https://docs.beel.es/verifactu/auto-submit.md): Whether an issued invoice reaches AEAT is decided by the taxpayer, not by the request — what that means when you issue, and how to read the… - [Submission states](https://docs.beel.es/verifactu/submission-states.md): Every state a VeriFactu submission can be in, what triggers transitions, and when you need to act. - [Handling AEAT rejections](https://docs.beel.es/verifactu/handling-rejections.md): How to read a REJECTED invoice (and an accepted one that carries an error code), what to do for each family of AEAT codes, and how to make… - [Cancel vs amend](https://docs.beel.es/verifactu/cancel-and-fix.md): Decide between cancelling an invoice (void) and issuing a corrective invoice, two operations with different fiscal weight. - [QR code and the invoice PDF](https://docs.beel.es/verifactu/qr-and-pdf.md): When the VeriFactu QR code data is available, how the PDF relates to it, and what applies to any document that carries the QR. - [What AEAT receives from your invoice](https://docs.beel.es/verifactu/what-aeat-receives.md): How BeeL. turns your invoice into the record AEAT registers — the description, the total, the number, the recipient and the late-submission… - [Examples cookbook](https://docs.beel.es/verifactu/examples-cookbook.md): Runnable curl + JSON for every common VeriFactu scenario, mapped to BeeL's public API. ## Stripe - [Overview](https://docs.beel.es/stripe.md): Connect your Stripe account with BeeL. to issue an invoice automatically for every payment. - [Configure proforma invoices in Stripe](https://docs.beel.es/stripe/configuracion-proforma.md): Set up Stripe invoices as proforma so your customers only receive the invoice issued through BeeL. - [How taxes are applied](https://docs.beel.es/stripe/configuracion-impuestos.md): The Fiscal Mirror rule — BeeL. reflects the Stripe charge exactly, with a clean fallback when Stripe Tax isn't enabled. - [Connection settings](https://docs.beel.es/stripe/connection-settings.md): Per-connection settings that affect how BeeL. processes Stripe payments — fiscal limits, customer creation, email delivery. - [Supported Stripe events](https://docs.beel.es/stripe/supported-events.md): Every Stripe event BeeL. listens to, what BeeL. does with each, and which ones are explicitly ignored. - [What invoice gets generated](https://docs.beel.es/stripe/generated-invoices.md): How BeeL. decides between standard and simplified, how it picks a rectification code (R1–R5), and which series is used. - [Data conversion — Stripe → BeeL](https://docs.beel.es/stripe/data-conversion.md): The Fiscal Mirror rule, how amounts and taxes are mapped, why IRPF is always 0, the silent sanitization BeeL. applies to inbound payloads… - [Customer mappings](https://docs.beel.es/stripe/customer-mappings.md): How BeeL. matches Stripe customers to BeeL. customers, auto-creates ad-hoc records, and handles missing fiscal data. - [VeriFactu submission for Stripe invoices](https://docs.beel.es/stripe/verifactu-submission.md): Stripe-generated invoices follow the same VeriFactu rule as any other — decided by the NIF, not by the connection. - [Edge cases and limits](https://docs.beel.es/stripe/edge-cases-and-limits.md): Every reason BeeL. can skip a Stripe event, how to retry one, and the known limits of the integration. ## Rules Each rule has a Markdown twin at https://docs.beel.es/rules/.md; the whole catalogue is https://docs.beel.es/api/rules.json. By domain: - [Invoice lifecycle](https://docs.beel.es/rules/lifecycle.md) - [Voiding](https://docs.beel.es/rules/void.md) - [Corrective invoices](https://docs.beel.es/rules/corrective.md) - [Numbering and series](https://docs.beel.es/rules/numbering.md) - [Invoice contents](https://docs.beel.es/rules/contents.md) - [Simplified invoices](https://docs.beel.es/rules/simplified.md) - [Taxes and exemptions](https://docs.beel.es/rules/taxes.md) - [Equivalence surcharge](https://docs.beel.es/rules/surcharge.md) - [Dates and deadlines](https://docs.beel.es/rules/dates.md) - [QR code and PDF](https://docs.beel.es/rules/qr.md) - [VeriFactu records](https://docs.beel.es/rules/records.md) - [Conservation](https://docs.beel.es/rules/conservation.md) - [Sanctions](https://docs.beel.es/rules/sanctions.md) - LIF-001 — An issued invoice is never edited or deleted - LIF-002 — Only a draft can be issued - LIF-003 — Test in the sandbox, never with real invoices - LIF-004 — Retry writes with the same Idempotency-Key (recommended) - LIF-005 — Duplicating an invoice creates a new one, not a copy - VOI-001 — Void only an invoice that should never have been issued - VOI-002 — Void an issued invoice through the void operation; delete a draft - VOI-003 — A void adds a cancellation record; the original stays - VOI-004 — An emailed or paid invoice is voided only confirming it was issued by mistake - VOI-005 — A corrected invoice, or a total corrective, is not voided - COR-001 — Wrong data on an issued invoice is fixed with a corrective - COR-002 — Pick the reason code: R1–R4 for standard invoices, R5 for simplified - COR-003 — A corrective shows the difference or the amounts after the correction - COR-004 — The corrective record says whether it substitutes or adds a difference - COR-005 — A corrective identifies the invoice it rectifies - COR-006 — Issue the corrective as soon as you know, within 4 years - COR-007 — A wrong corrective is fixed against the original, not corrected itself - COR-008 — A bad-debt corrective (R3) needs the legal conditions first - COR-009 — An insolvency corrective (R2) needs a declaration of insolvency - COR-010 — A provisional price is rectified once the final one is known - COR-011 — Discounts and rebates granted after the sale go on a corrective - COR-012 — Returns can be netted only on a later supply to the same customer (recommended) - COR-013 — A corrective is only for the causes the law lists - COR-014 — A corrective keeps the operation date of the original - COR-015 — Do not raise the VAT charged to a consumer through a corrective - COR-016 — Some unpaid debts never allow an R2 or R3 corrective - COR-017 — A corrective keeps the recipient, except to correct the recipient's data - COR-018 — A corrective can always correct what the original declared - COR-019 — Insolvency and bad-debt correctives need a recipient established in Spain - COR-020 — A bad-debt corrective waits six months and needs a business recipient under 50 € - COR-021 — An identical corrective a moment after another is taken as a double submission (recommended) - COR-022 — An invoice whose record AEAT rejected is fixed before it is corrected - COR-023 — A corrective never rectifies more than was invoiced - COR-024 — A corrective does not change only the withholding - NUM-001 — The number is assigned when the invoice is issued - NUM-002 — An issued number is never reused, even when the invoice is voided - NUM-003 — Numbers are correlative within each series - NUM-004 — Separate series may be used when there is a reason for them (recommended) - NUM-005 — Simplified invoices are numbered in their own series - NUM-006 — Corrective invoices are numbered in their own series - NUM-007 — A series cannot be renumbered once it has issued - NUM-008 — An invoice number fits AEAT's length and character set - NUM-009 — Reverse-charge supplies of metals and electronics go in a special series - CNT-001 — Every operation of the business is invoiced, exempt ones included - CNT-002 — A business customer always gets an invoice, identifying it when asked - CNT-003 — A full invoice names both parties by their legal name - CNT-004 — Every invoice shows the issuer's NIF - CNT-005 — A full invoice identifies the recipient by NIF - CNT-006 — A full invoice shows the address of both parties - CNT-007 — Each line describes the operation, its unit price and any discount - CNT-008 — The tax rate and the tax amount are shown apart from the base - CNT-009 — The base is broken down by rate and by kind of operation - CNT-010 — An exempt operation states why it is exempt - CNT-011 — Only one original of each invoice exists - CNT-012 — A reverse-charge invoice carries the mention «inversión del sujeto pasivo» - CNT-013 — A cash-basis invoice carries the mention «régimen especial del criterio de caja» - CNT-014 — A used-goods, art or antiques invoice carries its regime mention - CNT-015 — A travel-agency invoice carries the mention «régimen especial de las agencias de viajes» - CNT-016 — An intra-EU supply of a new means of transport describes the vehicle - CNT-017 — An invoice may be in any language (recommended) - CNT-018 — Invoices go by email only with the recipient's consent - CNT-019 — Only a corrective invoice totals less than zero - CNT-020 — A Spanish recipient's NIF is in the AEAT census (recommended) - CNT-021 — A recipient without a Spanish NIF is identified by an alternative id - CNT-022 — Invoices to Spanish public administrations are electronic - CNT-023 — Some operations are always invoiced, whoever the customer - CNT-024 — A duplicate for several recipients shows each one's share - CNT-025 — State the establishment when it decides how the operation is taxed - CNT-026 — A recipient in the AEAT census is identified by NIF, not as not registered (recommended) - SIM-001 — A simplified invoice never exceeds 3,000 € - SIM-002 — Above 400 €, a simplified invoice needs an art. 4.2 activity - SIM-003 — Some operations can never go on a simplified invoice - SIM-004 — A simplified invoice still carries its minimum contents - SIM-005 — The record of a simplified invoice carries no recipient - SIM-006 — An identified customer gets a standard invoice (F1) - SIM-007 — Exchanging a simplified invoice for a full one - SIM-008 — A simplified invoice carries the same legal mentions as a full one - SIM-009 — A customer who asks to be identified gets an invoice that identifies it - SIM-010 — A simplified invoice with several VAT rates shows the base of each - SIM-011 — No equivalence surcharge or IRPF withholding on a simplified invoice - TAX-001 — Apply the VAT rate in force when the operation took place - TAX-002 — Reverse-charge operations are invoiced without charging VAT - TAX-003 — Reverse-charge lines carry no tax and never go on a simplified invoice - TAX-004 — Intra-EU supplies of goods are exempt only with the buyer's EU VAT number - TAX-005 — Exempt and non-subject lines carry no VAT rate - TAX-006 — Services to a business abroad are not subject to Spanish VAT - TAX-007 — Sales declared through OSS use regime key 17 - TAX-008 — Disbursements go as SUPLIDO lines, without tax - TAX-009 — IRPF withholding is not part of the total AEAT receives - TAX-010 — Set the IRPF withholding when the customer must withhold (recommended) - TAX-012 — The tax and the billing record are expressed in euros - TAX-013 — Send every amount in euros - TAX-014 — Only the VAT rates AEAT accepts on the operation date - TAX-015 — Regime key 08 means not subject to the line's tax - TAX-016 — Regime keys 03, 06 and 14 are not accepted - TAX-017 — Special regime keys carry the classification AEAT requires - TAX-018 — An issued invoice does not use the intra-EU acquisition exemption - TAX-019 — An issuer that is not an individual never bears the IRPF rates of individuals - TAX-022 — Reduced withholding rates of Ceuta and Melilla derive from their base rate - TAX-023 — A software or electronic service sold to a business in the Canary Islands, Ceuta or Melilla is not subject to IVA - TAX-024 — A sale of goods to a buyer outside the territory where IVA applies is an export exempt under article 21 - SUR-001 — The surcharge rate matches the VAT rate of its line - SUR-002 — Supplies with the surcharge go on separate invoices - DAT-001 — Do not send an issue date - DAT-002 — The issue date is the day the billing record is generated - DAT-003 — The operation date is never after the issue date nor over twenty years old - DAT-004 — Send the operation date when it differs from the issue date - DAT-005 — Invoice consumers when the operation takes place - DAT-006 — Invoice businesses before day 16 of the following month - DAT-007 — One invoice for a month of operations, issued in time - DAT-008 — Deliver the invoice to the customer in time - DAT-009 — VAT is charged by invoice within 1 year of accrual - DAT-010 — Invoice advance payments when you receive them - DAT-011 — Adapted billing systems are mandatory from 1 January 2027 or 1 July 2027 - DAT-012 — Plan for mandatory B2B electronic invoices (recommended) - DAT-013 — Intra-EU supplies of goods are invoiced by the month after transport starts - DAT-014 — Under the cash-basis regime, the deadline runs from the operation, not the payment - QRC-001 — Every invoice carries the tax QR code - QRC-002 — Wait for the QR before you distribute the PDF - QRC-003 — The QR measures between 30 mm and 40 mm - QRC-004 — The QR follows ISO/IEC 18004 with error correction M - QRC-005 — Use qr_url exactly as returned - QRC-006 — The VeriFactu legend goes just below the QR - QRC-007 — «QR tributario:» goes just above the QR - QRC-008 — The QR goes once, at the start of the first page - QRC-009 — Keep a blank margin around the QR - QRC-010 — A structured e-invoice carries the QR URL as a field - REC-001 — Each issued invoice gets a billing record built from its data - REC-002 — The record goes to AEAT as soon as the invoice is issued - REC-003 — VERI*FACTU is kept until the end of the year - REC-004 — BeeL. generates the hash and the chain - REC-005 — One chain per NIF, one company per NIF - REC-006 — No certificate is needed to sign records (recommended) - REC-007 — Keep invoicing when AEAT is unreachable - REC-008 — Follow submission_status and fix what AEAT rejects - REC-009 — Check the data AEAT accepted with errors - REC-010 — Subsanación is only for errors that need no corrective - REC-011 — The NIF holder signs the AEAT representation first - REC-012 — Tax amounts are base times rate - REC-013 — An invoice AEAT would reject is not numbered - CON-001 — Keep copies of issued invoices for the limitation period - CON-002 — AEAT keeps the records, not your invoices - CON-003 — Export your invoices before leaving - CON-004 — Invoices kept electronically are reachable on request - SAN-001 — Do not hold non-compliant or altered billing software - SAN-002 — Invoicing breaches are fined in proportion to the operations - SAN-003 — A substantial breach doubles the invoicing fine ## Optional - [Error codes](https://docs.beel.es/errors/llms.txt): one line per error code the API returns (450) - [API reference](https://docs.beel.es/api-reference/llms.txt): one line per operation (244) - [Changelog](https://docs.beel.es/changelog/llms.txt): every change to the API, newest first (99) - [OpenAPI spec](https://docs.beel.es/api/openapi): the machine-readable contract - [Get started, full text](https://docs.beel.es/get-started/llms-full.txt): every page of the area in one file - [Multi-NIF, full text](https://docs.beel.es/multi-nif/llms-full.txt): every page of the area in one file - [VeriFactu, full text](https://docs.beel.es/verifactu/llms-full.txt): every page of the area in one file - [Rules, full text](https://docs.beel.es/rules/llms-full.txt): every page of the area in one file - [Stripe, full text](https://docs.beel.es/stripe/llms-full.txt): every page of the area in one file - [API reference, full text](https://docs.beel.es/api-reference/llms-full.txt): every page of the area in one file - [Changelog, full text](https://docs.beel.es/changelog/llms-full.txt): every page of the area in one file - [Errors, full text](https://docs.beel.es/errors/llms-full.txt): every page of the area in one file - [Everything, full text](https://docs.beel.es/llms-full.txt): every page in one file