Legal invoices in Mexico, commercial everywhere else, over the API.

Cord Invoicing issues invoices from the app or over the API and adapts the document to your business's country: CFDI 4.0 stamped with Mexico's SAT, and a commercial invoice with each country's taxes everywhere else. Spain has the Verifactu registry built and in the process of activation with the AEAT.

Tax issuing is available from the Starter plan where enabled. Free issues commercial documents.

POST /api/v1/facturas/f3a8d1c4-…200 OK
{ "action": "finalize" }
{
  "data": {
    "numero": "F-00231",
    "folio_fiscal": "3F29A7C1-5D2E-4B8A-9C61-0E7A1B2C3D4F",
    "estado": "open",
    "estado_fiscal": "issued",
    "pais": "MX", "tipo": "cfdi_40",
    "moneda": "MXN", "total": 71780.80,
    "saldo": 71780.80, "vence": "2026-10-30"
  }
}
CFDI 4.0 stamped with the SATinvoice.finalized → webhook

FULL CYCLE

Create, issue, collect and correct from your code.

POST /api/v1/facturas creates a draft. Then, on that same invoice, you issue it, email it with the PDF attached, record a full or partial payment, void it or create a credit note. Each action fires its event, so your system can react by webhook.

  • Draft first: nothing is stamped until you issue
  • Partial payments capped at the real balance
  • invoice.finalized, invoice.paid and invoice.voided as webhooks
An invoice lifecycle over the API
POST /api/v1/facturas                # draft
  { "cliente_id": "9b41…", "items": [ … ] }
← 200  { "id": "f3a8d1c4-…" }

POST /api/v1/facturas/f3a8…  { "action": "finalize" }
← 200  estado_fiscal: "issued"       # invoice.finalized

POST /api/v1/facturas/f3a8…  { "action": "send" }
← 200  # email with the PDF attached

POST /api/v1/facturas/f3a8…  { "action": "payment", "monto": 35000 }
← 200  saldo: 36780.80                # partial payment

INVOICES IN THE APP

Your team sees what your integration sees.

What you create over the API shows up in Invoices with its commercial and tax status: open, overdue, paid or void, and whether issuing failed. Open, overdue and collected this month are calculated for you.

  • Commercial status and tax status kept apart
  • Balance and due date for each invoice
  • CSV export and recurring invoices
InvoicesExport CSV+ New invoice
$248,610open
$61,250overdue
$412,880collected this month
AllDraftsOpenOverduePaid
InvoiceClientDueTotalStatus
F-00231ELEl Zarco DistributionOct 30$71,781Open
F-00230ÁVÁvila ConstructionOct 12$96,400Partially paid
F-00229FEFerretera del NorteSep 21$61,250Overdue
F-00228ALAltamira GroupSep 18$148,320Paid
F-00227CACasa SerranoSep 15$22,040Paid

BY COUNTRY

The right document for each country.

In Mexico, Cord stamps CFDI 4.0 with the SAT using your digital seal certificate through an authorized provider. Everywhere else it issues a commercial invoice with that country's per-line taxes, such as state sales tax in the United States or VAT and IRPF in Spain. For Spain, the Verifactu registry with a chained SHA-256 hash is built and verified against the AEAT's official examples; it goes live once registration with the AEAT is complete.

  • Mexico: CFDI 4.0 with the SAT UUID, PDF and XML
  • Per-line taxes and withholdings, not a flat rate
  • Spain: Verifactu built, pending activation with the AEAT
Document by countryby your business country
MX
MexicoCFDI 4.0 stamped with the SAT · UUID, PDF and XML
Legal
ES
SpainVAT and IRPF per line · Verifactu built, AEAT activation pending
Commercial
US
United StatesState sales tax · commercial invoice
Commercial
CO
ColombiaVAT per line · commercial invoice
Commercial

FREQUENTLY ASKED QUESTIONS

What developers ask about Tax invoicing.

Yes. In Mexico, Cord stamps CFDI 4.0 with the SAT using your digital seal certificate (CSD) through an authorized provider (PAC), and returns the UUID, the PDF and the XML.

Yes. POST /api/v1/facturas creates a draft and POST /api/v1/facturas/{id} with action finalize issues it. The same route accepts send, payment, void and credit_note.

Cord issues commercial invoices with state sales tax. The United States has no national e-invoicing system like the CFDI, so the commercial invoice is the usual document.

Not yet. The Verifactu registry is built and verified against the AEAT's official examples, but going live depends on Cord's registration as the software producer with the AEAT. Until then, invoices in Spain are issued as commercial invoices.

The invoice keeps the tax status "error" and is not marked as issued. You see it in the app and over the API, and can fix the data and issue again.

Explore the rest of the developer platform.

Invoice from your system, with the right document.

Create your account, set up your tax details and issue your first invoice over the API.

See what you'll pay

Integrated per-transaction pricing with no hidden fees.

Pricing info →

Start building

Start operating and sending quotes in just 10 minutes.

Integration options →