Developers · Invoicing API
Invoicing API.Built into your software.
Integrate invoices, customers, PDFs and Verifactu into your ERP, SaaS or online store. Use REST, official SDKs or MCP and validate the workflow in a test environment.
API and MCP are included in paid plans. Limits depend on your plan.
Compatible integrations and formats

WhatsApp

/v1/invoices invoices:readcurl --fail-with-body --silent --show-error \ "https://api.factuarea.com/v1/invoices" \ --header "Authorization: Bearer $FACTUAREA_API_KEY"import { Factuarea } from "@factuarea/sdk";const factuarea = new Factuarea({ apiKey: process.env.FACTUAREA_API_KEY!,});const invoices = await factuarea.invoices.list();for await (const item of invoices) { const invoice = item as { id: string }; console.log(invoice.id);}use Factuarea\Sdk\Custom\FactuareaClient;use Factuarea\Sdk\Custom\Pagination\PageIterator;use Factuarea\Sdk\Models\Operations\PublicApiV1InvoicesListRequest;$factuarea = FactuareaClient::create(getenv('FACTUAREA_API_KEY'));$pages = new PageIterator( fn (?string $cursor) => $factuarea->invoices->publicApiV1InvoicesList( new PublicApiV1InvoicesListRequest(startingAfter: $cursor), )->rawResponse,);foreach ($pages->items() as $invoice) { echo $invoice['id'], PHP_EOL;}FAC-2026-00042Acme Soluciones SLstatus: paidUse a key with invoices:read permission on your server. This code reads your invoices; it does not create documents.
Choose your integration
One account. Your way to build.
Connect your software, receive events or give an assistant access. Each path has its own guide, permissions and examples.
Your business documents, from your code.
Create customers and drafts, issue invoices and retrieve their PDF. The OpenAPI contract documents fields, permissions and errors for each operation.
GET /v1/contactsPOST /v1/invoicesPOST /v1/invoices/{id}/sendGET /v1/invoices/{id}/pdfCustomers, catalog, sales, expenses and reports in one API.
Explore the REST API480 published routes50 resources
Read the full referenceTest before issuing
The same contract. Two separate environments.
Test your integration with a fact_test_ key. When it is ready, configure your company, review permissions and use a production key.
- 1Create a key with the permissions you need.
- 2Prepare the customer, series and taxes.
- 3Follow draft creation, issuance and PDF download.
api.factuarea.com/v1Testing
fact_test_Test documents, with no real tax submission. Payments and WhatsApp are restricted.
Production
fact_live_Real documents and operations, subject to your company settings and plan.
Control over every request
Built for retries, too.
An integration needs to know what happened, what can be repeated and when to wait. These signals are documented and can be verified.
One operation, even when you retry
POST /invoicesIdempotency-KeySame result · no duplicate document
- Prevent duplicates
- Use Idempotency-Key on supported operations. A different body with the same key returns a 409.
- Limited access
- Assign scopes to each key. Your integration gets the permissions it needs for its work.
- Visible quotas
- Check X-RateLimit-Remaining. If you receive a 429, respect Retry-After before trying again.
- Verifiable events
- Check Factuarea-Signature against the original webhook body before processing it.
Choose your connection
An integration that fits your stack
Work with an SDK, explore the API contract or connect your assistant. Choose your tool to find the right starting point and documentation.
Compatible technologies and clients
Your integration, in TypeScript
Install the official SDK to work with the API from Node.js. Includes retries, pagination and webhook signature verification.
npm install @factuarea/sdkConnect TypeScript- API operations
- 595
- resources
- 50
- MCP tools
- 581
- documentation pages
- 1306
Questions
What gets asked before the first line of code
Create your account and a test key in developer settings. The Quickstart explains permissions, required data and the requests needed to take an invoice through to its PDF.
Your next integration starts with a key.
Create your account, choose permissions and follow the Quickstart to your first invoice in the test environment.