Skip to content
Factuarea

Invoicing REST API

Invoicing REST API. Your software, connected

Create and send invoices, record payments and connect customers, catalog and workflows to your ERP, store or application. An invoicing REST API with VeriFactu and FacturaE, using the same data as your team.

  • Sandbox for testing
  • TypeScript and PHP SDKs
  • Public OpenAPI

Compatible integrations and formats

  • Stripe
  • WhatsAppWhatsApp
  • Facturae
api.factuarea.comSandbox

POST/v1/invoices

{
  "client_id": "f58fbf7f-333f-499b-affc-c0d396cbd83f",
  "series_id": "019e5584-7a72-7038-a8f6-561ed180b699",
  "issued_on": "2026-09-22", "due_on": "2026-10-22",
  "external_id": "order_1042",
  "lines": [{
    "description": "Consultoría",
    "quantity": 2, "unit_price": 150, "tax_rate": 21
  }]
}
ResultDraft without a fiscal number2 × €150.00 + 21% VAT
363,00 €Draft

What you can build

Your invoicing API connects business operations too

Connect your ERP, store or application to the same documents and data your team uses in Factuarea. Explore the real scope before building your integration.

595 operations50 resourcesOpenAPI

The complete sales cycle

01

Create invoices, convert quotes and work with proformas, delivery notes and recurring invoices. Assign numbers, send, download PDFs and record payments or corrections.

  • POST /invoices
  • POST /quotes/{quote}/convert
  • POST /recurring_invoices
View reference and permissions

Customers, catalog and pricing

02

Sync contacts, products, variants and price lists. Read stock levels and movements to connect sales with your catalog.

  • POST /contacts
  • GET /products
  • GET /price-lists
View reference and permissions

Purchases and supplier payments

03

Record expenses, retrieve their details and register payments. Keep supplier documents connected to expense management.

  • POST /purchase_invoices
  • POST /purchase_invoices/{purchase_invoice}/payments
View reference and permissions

VeriFactu, FacturaE and FACe

04

Access VeriFactu records and statuses, generate FacturaE XML and submit invoices to FACe when the company has the required configuration and certificate.

  • GET /invoices/{invoice}/facturae
  • POST /invoices/{invoice}/face-submissions
View reference and permissions

Workflows and automations

05

Explore the trigger and action catalog, create rules, test with dry run and inspect each execution. Use webhooks to continue the workflow in your system.

  • POST /automations/rules
  • POST /automations/rules/{rule}/dry_run
  • GET /automations/runs
View reference and permissions

Team and time tracking

06

Integrate employees, work schedules, time entries, absences and monthly closes. Each resource uses the company’s enabled permissions and modules.

  • GET /employees
  • GET /time-entries
  • GET /absence-requests
View reference and permissions

Projects, tasks and billable hours

07

Create tasks, move them across the project’s columns and log time with the timer. Billable hours become a draft invoice.

  • POST /tasks
  • POST /tasks/{task}/timer/start
  • POST /projects/{project}/time-invoices
View reference and permissions

Each key’s access depends on its permissions, plan and active modules. The reference lists the requirements for every operation.

Integrations with a purpose

From a business event to a useful invoice

The REST API lets you decide when to create a document, what data it contains and how work continues. Here are three journeys you can build using the available operations.

Integration journeyThe same data
Starts in your systemOrder ready to invoice
order_1042
  1. 1
    Create or reuse the customerPOST /contacts
  2. 2
    Create the invoice with its line itemsPOST /invoices
  3. 3
    Email the invoice to the customerPOST /invoices/{id}/send
The order retains its invoiceCustomer, line items and taxes in the same document.

Each flow requires a key with the right permissions and configuration for the resources it uses.

F-2026-142Estudio Ribera
Invoice total363,00 €
NumberedNet €300.00 · VAT €63.00
VeriFactuAccepted

Retrievable record and status

Previous hash
7C21…B9F0
Record hash
A3F1…7B44
Record typeCreation · F1
GET/invoices/{invoice}/verifactu

Invoicing in Spain

Integrate the invoice and its tax workflow

An invoicing API with VeriFactu should explain what document is created and what happens next. Factuarea keeps records, formats and statuses within the issuing company.

VeriFactu, according to your company’s mode

Issuance follows the company’s tax configuration. If VeriFactu is enabled, the record is generated and submitted; its statuses are available through the API. Using REST does not enable VeriFactu by itself.

FacturaE and FACe submission

Download FacturaE XML for an issued invoice. Signing and submitting to FACe requires an active certificate and the customer’s three DIR3 codes. The submission record stays linked to the invoice.

Factuarea test mode

Validate the request before taking it to production

An invalid quantity fails in the sandbox too. Check the API response with fact_test_ and prepare your application to handle both success and rejection.

POST /v1/invoicesfact_test_…
Line item fields
"lines": [{
  "quantity": 2,
  "unit_price": 150,
  "tax_rate": 21
}]
Result201 Created
{
  "data": {
    "status": "draft",
    "number": null,
    "total": 363,
    "currency": "EUR"
  }
}

Draft created: €300.00 net and €63.00 VAT. No invoice number is used yet.

The sandbox inherits your plan. API access requirements and limits still apply.

Explore the API sandbox

Ready to integrate

Test, retry and stay in control

The technical contract supports the result: authentication, permissions, idempotency, limits and versioning. Check the documentation before connecting real data.

Idempotency-Key24 h
1attempts
1invoice
201 Created
data.id: 01931b3e…8a42

1 attempt, one invoice. The same key and body retrieve the original response for 24 hours.

How to use idempotency

Keys with specific permissions

Authenticate from your server and grant only the permissions you need. Every operation respects key access and company context.

Configure keys and permissions

Sandbox separate from real data

fact_test_ keys operate in a test company. Real emails and AEAT records are not delivered, and event webhooks do not reach the receiver. An explicit webhook ping does make an external request.

Explore the sandbox

Visible version and capacity

Pin the API version and read rate-limit headers. On a 429, Retry-After tells you how long to wait. Quotas depend on the plan and configuration.

See API versioning

Start with a test key

Use HTTP or the TypeScript and PHP SDKs. Create your first document, review the result and extend the workflow as you need.

TypeScriptPHPOpenAPI
Quickstart TypeScript / PHP View plans and limits

Questions

What people ask when evaluating the API

Create, number and send invoices, retrieve PDFs, record payments and issue corrections. You can also work with customers, catalog, purchases, quotes, recurring invoices and workflows. Each resource requires its permissions and corresponding modules.

FactuareaA more connected business

Build your first invoicing workflow

Explore the sandbox, create a test invoice and connect the operations your business needs.