Customer invoices

Scopes: invoices:read to read, invoices:write to modify.

Read

GET /user-companies/{company_id}/customer-invoices
GET /user-companies/{company_id}/customer-invoices/{invoice_id}
GET /user-companies/{company_id}/customers/{customer_id}/customer-invoices

The third form lists the invoices belonging to a single customer.

Create

POST /user-companies/{company_id}/customers/{customer_id}/customer-invoices

Required fields

Field

Type

Description

type

string

"I" for invoice, "CR" for credit note.

currency

string

Three-letter ISO code.

rows

array

Invoice line objects.

Optional fields

Field

Description

customer_id

Customer identifier.

invoice_date

YYYY-MM-DD.

payment_due_date

YYYY-MM-DD.

days_expire

Days until due, as an alternative to payment_due_date.

pay_date

YYYY-MM-DD. Set when the invoice is already paid.

amount_ex_vat

Amount excluding VAT.

vat

VAT amount.

vat_percent

VAT rate.

amount_to_pay

Total amount to pay.

layout

Invoice template to render with.

order_id

Reference to an order.

order_number

Order number shown on the invoice.

Row object

{
  "description": "Product A",
  "price": 100.00,
  "amount": 1,
  "vat": 25.00,
  "vat_percent": 25,
  "products_id": 0
}

Update and delete

PUT and DELETE are available on the invoice resources, under invoices:write.

Practical notes

Create a credit note rather than deleting. A sent invoice that turns out to be wrong should be credited with a type: "CR" invoice referencing the original, not removed. That is both what the law expects and what the customer can reconcile against.

Totals. The amount fields are optional because the rows carry the detail, but sending them explicitly lets you verify that your calculation and Economydesk’s agree. Compare rather than assume.

Customers must exist before you can invoice them. The API has no endpoint for creating customers; set them up in the application first.