Skip to main content
POST
Create invoice

Authorizations

Authorization
string
header
required

Authenticate using a bearer token. To create a token, navigate to /settings/api-tokens and click Create API Token.

Body

application/json
company_id
integer
required

ID of the company (customer) this invoice is for

order_date
string<date>
required

Invoice date (YYYY-MM-DD)

payment_terms
string
required

Payment terms label (e.g. "Net 30")

items
object[]
required

Line items for the invoice

Minimum array length: 1
status
enum<string> | null

Status to create the invoice with. Defaults to ACTIVE when omitted, which creates the invoice and its sales order immediately (the historical behavior). DRAFT and ESTIMATE create the invoice without a sales order — the sales order is generated later when the invoice is activated. Case-insensitive; invalid values return a 422.

Available options:
DRAFT,
ESTIMATE,
ACTIVE
ship_by_date
string<date> | null

Required ship by date (YYYY-MM-DD)

customer_po_number
string | null

Customer PO number

public_note
string | null

Note visible to the customer

private_note
string | null

Internal note

total_shipping
number<float> | null

Shipping charge to apply to the invoice

tax_amount
number<float> | null

Tax amount

order_discount_amount
number<float> | null

Order-level discount amount

warehouse_id
integer | null

Warehouse ID to associate with the invoice

sales_channel_id
integer | null

Sales channel ID

revenue_account_id
integer | null

Chart of accounts ID for revenue recognition

invoice_export_template_id
integer | null

Export template ID

alternate_ids
string[] | null

Alternate identifier strings for the invoice

tags
string[] | null

Tags to attach to the invoice

custom_fields
object | null

Custom field key/value pairs

ship_to
object | null

Shipping address

Response

Invoice created

data
object