Invoice Ninja
App · Accounting & Finance · 20 actions
Manage your Invoice Ninja billing: clients, invoices, quotes, payments, products and expenses.
Actions
| Action | What it does |
|---|---|
| Act on invoices | Mark invoices sent or paid, email them, cancel, clone, archive, restore or delete them. |
| Act on quotes | Approve quotes, convert them into invoices, email them, mark them sent, restore or delete them. |
| Archive, restore or delete clients | Archive, restore or delete one or more Invoice Ninja clients. |
| Create a client | Add a client to your Invoice Ninja company. |
| Create a product | Add a product or service to your Invoice Ninja catalogue. |
| Create a quote | Raise a quote for a client. |
| Create an invoice | Raise an invoice for a client. |
| Get a client | Read one Invoice Ninja client by its ID. |
| Get an invoice | Read one Invoice Ninja invoice by its ID. |
| List clients | Find clients in your Invoice Ninja company. |
| List expenses | Find expenses in your Invoice Ninja company. |
| List invoices | Find invoices in your Invoice Ninja company. |
| List payments | Find payments in your Invoice Ninja company. |
| List products | Find products in your Invoice Ninja company. |
| List quotes | Find quotes in your Invoice Ninja company. |
| Record a payment | Record money received from a client, optionally applying it to that client's invoices. |
| Record an expense | Book an expense in your Invoice Ninja company. |
| Refund a payment | Refund a recorded payment, in full or in part. |
| Update a client | Change details on an existing Invoice Ninja client. |
| Update an invoice | Change an existing Invoice Ninja invoice. |
Act on invoices
Mark invoices sent or paid, email them, cancel, clone, archive, restore or delete them.
Inputs
- What to do
bulk_actiontextRequired - 'Mark sent' turns a draft into a real invoice. 'Send email' emails it to the client's contacts.One of:
mark_sent(Mark sent),mark_paid(Mark paid),send_email(Email to the client),cancel,clone_to_invoice(Copy to a new invoice),clone_to_quote(Copy to a new quote),archive,restore,delete. - Invoice IDs
invoice_idslistRequired - The Invoice Ninja IDs of the invoices to act on, such as 'Opnel5aKBz'.
- Email template
email_typetext - Which email to send. Only used when the action is 'Email to the client'; leave blank for the standard invoice email.One of:
invoice,quote,credit,payment,payment_partial(Payment partial),statement,reminder1,reminder2,reminder3,reminder_endless(Reminder endless), and 5 more.
Outputs
actiontext- The action that was applied.
countnumber- How many invoices Invoice Ninja reported back.
idslist- The IDs the action was applied to.
recordslist- The invoices as they stand after the action.
Example output
{
"action": "mark_sent",
"count": 1,
"ids": [
"Opnel5aKBz"
],
"records": [
{
"amount": 1200.0,
"balance": 1200.0,
"client_id": "Wpmbk5ezJn",
"created_at": 1757462400,
"date": "2026-09-01",
"due_date": "2026-09-30",
"id": "Opnel5aKBz",
"is_deleted": false,
"line_items": [
{
"cost": 150.0,
"line_total": 1200.0,
"notes": "Consulting, September",
"product_key": "CONSULT",
"quantity": 8.0
}
],
"number": "0012",
"paid_to_date": 0.0,
"status_id": "2"
}
]
}Act on quotes
Approve quotes, convert them into invoices, email them, mark them sent, restore or delete them.
Inputs
- What to do
bulk_actiontextRequired - 'Convert to invoice' raises an invoice from the quote and links the two.One of:
approve,convert(Convert to an invoice),send_email(Email to the client),mark_sent(Mark sent),restore,delete. - Quote IDs
quote_idslistRequired - The Invoice Ninja IDs of the quotes to act on, such as 'Opnel5aKBz'.
Outputs
actiontext- The action that was applied.
countnumber- How many quotes Invoice Ninja reported back.
idslist- The IDs the action was applied to.
recordslist- The quotes as they stand after the action.
Example output
{
"action": "mark_sent",
"count": 1,
"ids": [
"Wpmbk5ezJn"
],
"records": [
{
"amount": 900.0,
"client_id": "Opnel5aKBz",
"created_at": 1757462400,
"date": "2026-09-01",
"due_date": "2026-09-15",
"id": "Wpmbk5ezJn",
"invoice_id": "",
"is_deleted": false,
"line_items": [
{
"cost": 150.0,
"line_total": 900.0,
"notes": "Discovery workshop",
"product_key": "CONSULT",
"quantity": 6.0
}
],
"number": "Q0004",
"status_id": "2"
}
]
}Archive, restore or delete clients
Archive, restore or delete one or more Invoice Ninja clients.
Inputs
- What to do
bulk_actiontextRequired - Archiving hides a client without losing anything; deleting removes it from the lists but keeps its history, and can be undone with 'restore'.One of:
archive,restore,delete. - Client IDs
client_idslistRequired - The Invoice Ninja IDs of the clients to act on, such as 'Opnel5aKBz'. Pick one or more, or pass a list from an earlier step.
Outputs
actiontext- The action that was applied.
countnumber- How many clients Invoice Ninja reported back.
idslist- The IDs the action was applied to.
recordslist- The clients as they stand after the action.
Example output
{
"action": "archive",
"count": 1,
"ids": [
"Opnel5aKBz"
],
"records": [
{
"balance": 1200.0,
"classification": "business",
"contacts": [
{
"email": "michael@example.com",
"first_name": "Michael",
"id": "Wpmbk5ezJn",
"is_primary": true,
"last_name": "Bluth"
}
],
"country_id": "840",
"created_at": 1757462400,
"display_name": "Bluth Company",
"id": "Opnel5aKBz",
"is_deleted": false,
"name": "Bluth Company",
"number": "0001",
"paid_to_date": 3400.0
}
]
}Create a client
Add a client to your Invoice Ninja company.
Inputs
- Client name
nametextRequired - The company or person you invoice.
- Contacts
contactslist - The people at this client. The first one becomes the primary contact and is who invoices are emailed to.
- Website
websitetext - The client's website address.
- Phone
phonetext - The client's main phone number.
- Address line 1
address1text - First line of the billing address.
- Address line 2
address2text - Second line of the billing address.
- City
citytext - Billing address city.
- State or region
statetext - Billing address state, province or region.
- Postal code
postal_codetext - Billing address postal or ZIP code.
- Country
country_idtext - The client's country.
- Industry
industry_idtext - The industry the client works in.
- Company size
size_idtext - Roughly how many people the client employs.
- Client type
classificationtext - What kind of entity the client is.One of:
individual,business,company,partnership,trust,charity,government,other. - VAT number
vat_numbertext - The client's VAT or tax registration number.
- Your reference
id_numbertext - Your own reference number for this client.
- Public notes
public_notestext - Notes the client can see.
- Private notes
private_notestext - Notes only your own team can see.
Outputs
An Invoice Ninja client (customer).
address1text- First address line.
address2text- Second address line.
archived_atnumber- When the record was archived, as a Unix timestamp in seconds. 0 when it is not archived.
assigned_user_idtext- ID of the user the client is assigned to.
balancenumber- Amount currently owed by this client.
citytext- City.
classificationtext- What kind of entity the client is, such as 'business' or 'individual'.
client_hashtext- The key in the client's portal link.
contactslist- The client's contacts.
country_idtext- ISO numeric country code as text, such as '840' for the United States.
created_atnumber- When the record was created, as a Unix timestamp in seconds.
credit_balancenumber- Outstanding credit note balance.
custom_value1text- Custom field 1 on this record.
custom_value2text- Custom field 2 on this record.
custom_value3text- Custom field 3 on this record.
custom_value4text- Custom field 4 on this record.
display_nametext- The name Invoice Ninja shows, which falls back to the first contact when the client has no name.
documentslist- Files attached to this record.
e_invoiceobject- E-invoicing settings.
gateway_tokenslist- Stored payment methods.
group_settings_idtext- ID of the client group this client belongs to.
has_valid_vat_numbertrue/false- Whether Invoice Ninja could validate the VAT number.
idtext- The client's Invoice Ninja ID, such as 'Opnel5aKBz'. Use this wherever a step asks for a client.
id_numbertext- Your own reference number for the client.
industry_idtext- Invoice Ninja industry ID, as text.
is_deletedtrue/false- True once the record has been deleted.
is_tax_exempttrue/false- Whether the client is exempt from tax.
last_loginnumber- Client-portal last login, as a Unix timestamp in seconds.
locationslist- Additional addresses recorded for the client.
nametext- Company or person name.
numbertext- The client number, unique within the company.
paid_to_datenumber- Total the client has paid so far.
payment_balancenumber- Unapplied payment credit held for this client.
phonetext- Phone number.
postal_codetext- Postal or ZIP code.
private_notestext- Notes only your team can see.
public_notestext- Notes the client can see.
routing_idtext- Bank routing identifier.
settingsobject- Per-client overrides such as currency, language and payment terms.
shipping_address1text- First shipping address line.
shipping_address2text- Second shipping address line.
shipping_citytext- Shipping city.
shipping_country_idtext- ISO numeric country code of the shipping address, as text.
shipping_postal_codetext- Shipping postal or ZIP code.
shipping_statetext- Shipping state, province or region.
size_idtext- Invoice Ninja company-size ID, as text.
statetext- State, province or region.
tagslist- Tags attached to this record.
tax_infoobject- Tax registration details.
updated_atnumber- When the record last changed, as a Unix timestamp in seconds.
user_idtext- ID of the user who created the client.
vat_numbertext- VAT or tax number.
websitetext- Website address.
Example output
{
"balance": 1200.0,
"classification": "business",
"contacts": [
{
"email": "michael@example.com",
"first_name": "Michael",
"id": "Wpmbk5ezJn",
"is_primary": true,
"last_name": "Bluth"
}
],
"country_id": "840",
"created_at": 1757462400,
"display_name": "Bluth Company",
"id": "Opnel5aKBz",
"is_deleted": false,
"name": "Bluth Company",
"number": "0001",
"paid_to_date": 3400.0
}Create a product
Add a product or service to your Invoice Ninja catalogue.
Inputs
- Product code
product_keytextRequired - The short code or name that appears on an invoice line, such as 'CONSULT'.
- Description
notestext - The description printed on the invoice line.
- Price
pricenumber - What you charge for it.At least 0.
- Cost
costnumber - What it costs you.At least 0.
- Default quantity
quantitynumber - The quantity put on an invoice line by default.At least 0.
- Tax category
tax_idtext - Which tax category this product falls into.One of:
1(Physical goods),2(Service),3(Digital product),4(Shipping),5(Tax exempt),6(Reduced tax),7(Override tax),8(Zero rated),9(Reverse tax). - Tax name
tax_name1text - Name of the tax on this product, such as 'VAT'.
- Tax rate
tax_rate1number - Percentage rate of that tax, such as 20.From 0 to 100.
- Maximum quantity
max_quantitynumber - The largest quantity a client may order.At least 0.
Outputs
An Invoice Ninja product.
archived_atnumber- When the record was archived, as a Unix timestamp in seconds. 0 when it is not archived.
assigned_user_idtext- ID of the user the product is assigned to.
costnumber- What the product costs you.
created_atnumber- When the record was created, as a Unix timestamp in seconds.
custom_value1text- Custom field 1 on this record.
custom_value2text- Custom field 2 on this record.
custom_value3text- Custom field 3 on this record.
custom_value4text- Custom field 4 on this record.
documentslist- Files attached to this record.
idtext- The product's Invoice Ninja ID, such as 'Opnel5aKBz'.
in_stock_quantitynumber- Units currently in stock.
income_account_idtext- Accounting income account the product maps to.
is_deletedtrue/false- True once the record has been deleted.
max_quantitynumber- Largest quantity that may be ordered.
notestext- Product description.
pricenumber- What you charge for it.
product_imagetext- Web address of the product image.
product_keytext- The product code or short name.
quantitynumber- Default quantity put on an invoice line.
stock_notificationtrue/false- Whether Invoice Ninja warns when stock runs low.
stock_notification_thresholdnumber- Stock level that triggers the warning.
tagslist- Tags attached to this record.
tax_idtext- Tax category as text: '1' physical, '2' service, '3' digital, '4' shipping, '5' exempt, '6' reduced tax, '7' override tax, '8' zero rated, '9' reverse tax.
tax_name1text- Name of tax 1, for example 'VAT'.
tax_name2text- Name of tax 2, for example 'VAT'.
tax_name3text- Name of tax 3, for example 'VAT'.
tax_rate1number- Percentage rate of tax 1.
tax_rate2number- Percentage rate of tax 2.
tax_rate3number- Percentage rate of tax 3.
updated_atnumber- When the record last changed, as a Unix timestamp in seconds.
user_idtext- ID of the user who created the product.
Example output
{
"cost": 90.0,
"created_at": 1757462400,
"id": "Wpmbk5ezJn",
"is_deleted": false,
"notes": "Consulting, per hour",
"price": 150.0,
"product_key": "CONSULT",
"quantity": 1.0,
"tax_id": "2"
}Create a quote
Raise a quote for a client.
Inputs
- Client ID
client_idtextRequired - The client's Invoice Ninja ID, such as 'Opnel5aKBz'. Open the client in Invoice Ninja and copy the last part of the web address, or use 'List clients' to find one. This is not the client number shown on the record.
- Quote date
datedateRequired - The date on the quote.
- Valid until
due_datedateRequired - The last day the quote is good for.
- Line items
line_itemslist - The lines on the quote. Each needs at least a description ('notes'), a quantity and a unit price ('cost').
- Public notes
public_notestext - Notes the client can see.
- Private notes
private_notestext - Notes only your own team can see.
Outputs
An Invoice Ninja quote.
amountnumber- Total amount of the document.
archived_atnumber- When the record was archived, as a Unix timestamp in seconds. 0 when it is not archived.
assigned_user_idtext- ID of the user the document is assigned to.
balancenumber- Amount still outstanding.
client_idtext- ID of the client this document belongs to.
created_atnumber- When the record was created, as a Unix timestamp in seconds.
custom_surcharge1text- Custom field 1 on this record.
custom_surcharge2text- Custom field 2 on this record.
custom_surcharge3text- Custom field 3 on this record.
custom_surcharge4text- Custom field 4 on this record.
custom_value1text- Custom field 1 on this record.
custom_value2text- Custom field 2 on this record.
custom_value3text- Custom field 3 on this record.
custom_value4text- Custom field 4 on this record.
datetext- Document date, as 'YYYY-MM-DD'.
design_idtext- ID of the PDF design template used.
discountnumber- Discount applied to the whole document.
documentslist- Files attached to this record.
due_datetext- Due date, as 'YYYY-MM-DD'. On a quote this is the valid-until date.
e_invoiceobject- E-invoicing details.
entity_typetext- Which kind of document this is, such as 'invoice' or 'quote'.
exchange_ratenumber- Rate used to convert the client's currency to the company's.
footertext- Footer shown on the document.
has_expensestrue/false- Whether expenses are billed on this document.
has_taskstrue/false- Whether tasks are billed on this document.
idtext- The record's Invoice Ninja ID, such as 'Opnel5aKBz'.
invitationslist- One entry per contact the document is shared with, each carrying the portal link.
invoice_idtext- ID of the invoice this quote was converted into, once it has been.
is_amount_discounttrue/false- True when the document discount is an amount rather than a percentage.
is_deletedtrue/false- True once the record has been deleted.
last_sent_datetext- When the document was last emailed, as 'YYYY-MM-DD'.
line_itemslist- The document's lines.
location_idtext- ID of the location the document is billed from.
next_send_datetext- When the next reminder is scheduled, as 'YYYY-MM-DD'.
numbertext- The document number, unique within the company.
paid_to_datenumber- Amount paid against this document so far.
partialnumber- Deposit amount requested before the full balance.
partial_due_datetext- Due date of the deposit, as 'YYYY-MM-DD'.
po_numbertext- Purchase order number.
private_notestext- Notes only your team can see.
project_idtext- ID of the linked project, when there is one.
public_notestext- Notes the client can see.
status_idtext- Status as text. For invoices: '1' draft, '2' sent, '3' partial, '4' paid, '5' cancelled, '6' reversed.
subscription_idtext- ID of the subscription that produced the document.
tagslist- Tags attached to this record.
tax_infoobject- Tax registration details.
tax_name1text- Name of tax 1, for example 'VAT'.
tax_name2text- Name of tax 2, for example 'VAT'.
tax_name3text- Name of tax 3, for example 'VAT'.
tax_rate1number- Percentage rate of tax 1.
tax_rate2number- Percentage rate of tax 2.
tax_rate3number- Percentage rate of tax 3.
termstext- Terms shown on the document.
total_taxesnumber- Total tax charged.
updated_atnumber- When the record last changed, as a Unix timestamp in seconds.
user_idtext- ID of the user who created the document.
uses_inclusive_taxestrue/false- True when the line prices already include tax.
vendor_idtext- ID of the linked vendor, when there is one.
Example output
{
"amount": 900.0,
"client_id": "Opnel5aKBz",
"created_at": 1757462400,
"date": "2026-09-01",
"due_date": "2026-09-15",
"id": "Wpmbk5ezJn",
"invoice_id": "",
"is_deleted": false,
"line_items": [
{
"cost": 150.0,
"line_total": 900.0,
"notes": "Discovery workshop",
"product_key": "CONSULT",
"quantity": 6.0
}
],
"number": "Q0004",
"status_id": "2"
}Create an invoice
Raise an invoice for a client. It is created as a draft; use 'Act on invoices' to mark it sent or email it.
Inputs
- Client ID
client_idtextRequired - The client's Invoice Ninja ID, such as 'Opnel5aKBz'. Open the client in Invoice Ninja and copy the last part of the web address, or use 'List clients' to find one. This is not the client number shown on the record.
- Line items
line_itemslist - The lines on the invoice. Each needs at least a description ('notes'), a quantity and a unit price ('cost').
- Invoice number
numbertext - A number for the invoice. Leave blank to let Invoice Ninja allocate the next one; numbers must be unique.
- PO number
po_numbertext - The client's purchase order number.
- Invoice date
datedate - The date on the invoice. Leave blank for today.
- Due date
due_datedate - When payment is due. Leave blank to use the client's payment terms.
- Discount
discountnumber - A discount off the whole invoice.At least 0.
- Discount is an amount
is_amount_discounttrue/false - Turn on to treat the discount as a cash amount. Leave off to treat it as a percentage.
- Terms
termstext - Terms printed on the invoice.
- Footer
footertext - Footer printed on the invoice.
- Public notes
public_notestext - Notes the client can see.
- Private notes
private_notestext - Notes only your own team can see.
Outputs
An Invoice Ninja invoice.
amountnumber- Total amount of the document.
archived_atnumber- When the record was archived, as a Unix timestamp in seconds. 0 when it is not archived.
assigned_user_idtext- ID of the user the document is assigned to.
auto_bill_enabledtrue/false- Whether the client's stored payment method is charged automatically.
balancenumber- Amount still outstanding.
client_idtext- ID of the client this document belongs to.
created_atnumber- When the record was created, as a Unix timestamp in seconds.
custom_surcharge1text- Custom field 1 on this record.
custom_surcharge2text- Custom field 2 on this record.
custom_surcharge3text- Custom field 3 on this record.
custom_surcharge4text- Custom field 4 on this record.
custom_value1text- Custom field 1 on this record.
custom_value2text- Custom field 2 on this record.
custom_value3text- Custom field 3 on this record.
custom_value4text- Custom field 4 on this record.
datetext- Document date, as 'YYYY-MM-DD'.
design_idtext- ID of the PDF design template used.
discountnumber- Discount applied to the whole document.
documentslist- Files attached to this record.
due_datetext- Due date, as 'YYYY-MM-DD'. On a quote this is the valid-until date.
e_invoiceobject- E-invoicing details.
entity_typetext- Which kind of document this is, such as 'invoice' or 'quote'.
exchange_ratenumber- Rate used to convert the client's currency to the company's.
footertext- Footer shown on the document.
has_expensestrue/false- Whether expenses are billed on this document.
has_taskstrue/false- Whether tasks are billed on this document.
idtext- The record's Invoice Ninja ID, such as 'Opnel5aKBz'.
invitationslist- One entry per contact the document is shared with, each carrying the portal link.
is_amount_discounttrue/false- True when the document discount is an amount rather than a percentage.
is_deletedtrue/false- True once the record has been deleted.
last_sent_datetext- When the document was last emailed, as 'YYYY-MM-DD'.
line_itemslist- The document's lines.
location_idtext- ID of the location the document is billed from.
next_send_datetext- When the next reminder is scheduled, as 'YYYY-MM-DD'.
numbertext- The document number, unique within the company.
paid_to_datenumber- Amount paid against this document so far.
partialnumber- Deposit amount requested before the full balance.
partial_due_datetext- Due date of the deposit, as 'YYYY-MM-DD'.
po_numbertext- Purchase order number.
private_notestext- Notes only your team can see.
project_idtext- ID of the linked project, when there is one.
public_notestext- Notes the client can see.
recurring_idtext- ID of the recurring invoice that generated this one.
reminder_last_senttext- When the last reminder went out, as 'YYYY-MM-DD'.
status_idtext- Status as text. For invoices: '1' draft, '2' sent, '3' partial, '4' paid, '5' cancelled, '6' reversed.
subscription_idtext- ID of the subscription that produced the document.
tagslist- Tags attached to this record.
tax_infoobject- Tax registration details.
tax_name1text- Name of tax 1, for example 'VAT'.
tax_name2text- Name of tax 2, for example 'VAT'.
tax_name3text- Name of tax 3, for example 'VAT'.
tax_rate1number- Percentage rate of tax 1.
tax_rate2number- Percentage rate of tax 2.
tax_rate3number- Percentage rate of tax 3.
termstext- Terms shown on the document.
total_taxesnumber- Total tax charged.
updated_atnumber- When the record last changed, as a Unix timestamp in seconds.
user_idtext- ID of the user who created the document.
uses_inclusive_taxestrue/false- True when the line prices already include tax.
vendor_idtext- ID of the linked vendor, when there is one.
Example output
{
"amount": 1200.0,
"balance": 1200.0,
"client_id": "Wpmbk5ezJn",
"created_at": 1757462400,
"date": "2026-09-01",
"due_date": "2026-09-30",
"id": "Opnel5aKBz",
"is_deleted": false,
"line_items": [
{
"cost": 150.0,
"line_total": 1200.0,
"notes": "Consulting, September",
"product_key": "CONSULT",
"quantity": 8.0
}
],
"number": "0012",
"paid_to_date": 0.0,
"status_id": "2"
}Get a client
Read one Invoice Ninja client by its ID.
Inputs
- Client ID
client_idtextRequired - The client's Invoice Ninja ID, such as 'Opnel5aKBz'. Open the client in Invoice Ninja and copy the last part of the web address, or use 'List clients' to find one. This is not the client number shown on the record.
- Also fetch
includetext - Extra details to pull into the client record.One or more of:
contacts,documents,gateway_tokens(Gateway tokens),activities,ledger,system_logs(System logs),group_settings(Group settings).
Outputs
An Invoice Ninja client (customer).
address1text- First address line.
address2text- Second address line.
archived_atnumber- When the record was archived, as a Unix timestamp in seconds. 0 when it is not archived.
assigned_user_idtext- ID of the user the client is assigned to.
balancenumber- Amount currently owed by this client.
citytext- City.
classificationtext- What kind of entity the client is, such as 'business' or 'individual'.
client_hashtext- The key in the client's portal link.
contactslist- The client's contacts.
country_idtext- ISO numeric country code as text, such as '840' for the United States.
created_atnumber- When the record was created, as a Unix timestamp in seconds.
credit_balancenumber- Outstanding credit note balance.
custom_value1text- Custom field 1 on this record.
custom_value2text- Custom field 2 on this record.
custom_value3text- Custom field 3 on this record.
custom_value4text- Custom field 4 on this record.
display_nametext- The name Invoice Ninja shows, which falls back to the first contact when the client has no name.
documentslist- Files attached to this record.
e_invoiceobject- E-invoicing settings.
gateway_tokenslist- Stored payment methods.
group_settings_idtext- ID of the client group this client belongs to.
has_valid_vat_numbertrue/false- Whether Invoice Ninja could validate the VAT number.
idtext- The client's Invoice Ninja ID, such as 'Opnel5aKBz'. Use this wherever a step asks for a client.
id_numbertext- Your own reference number for the client.
industry_idtext- Invoice Ninja industry ID, as text.
is_deletedtrue/false- True once the record has been deleted.
is_tax_exempttrue/false- Whether the client is exempt from tax.
last_loginnumber- Client-portal last login, as a Unix timestamp in seconds.
locationslist- Additional addresses recorded for the client.
nametext- Company or person name.
numbertext- The client number, unique within the company.
paid_to_datenumber- Total the client has paid so far.
payment_balancenumber- Unapplied payment credit held for this client.
phonetext- Phone number.
postal_codetext- Postal or ZIP code.
private_notestext- Notes only your team can see.
public_notestext- Notes the client can see.
routing_idtext- Bank routing identifier.
settingsobject- Per-client overrides such as currency, language and payment terms.
shipping_address1text- First shipping address line.
shipping_address2text- Second shipping address line.
shipping_citytext- Shipping city.
shipping_country_idtext- ISO numeric country code of the shipping address, as text.
shipping_postal_codetext- Shipping postal or ZIP code.
shipping_statetext- Shipping state, province or region.
size_idtext- Invoice Ninja company-size ID, as text.
statetext- State, province or region.
tagslist- Tags attached to this record.
tax_infoobject- Tax registration details.
updated_atnumber- When the record last changed, as a Unix timestamp in seconds.
user_idtext- ID of the user who created the client.
vat_numbertext- VAT or tax number.
websitetext- Website address.
Example output
{
"balance": 1200.0,
"classification": "business",
"contacts": [
{
"email": "michael@example.com",
"first_name": "Michael",
"id": "Wpmbk5ezJn",
"is_primary": true,
"last_name": "Bluth"
}
],
"country_id": "840",
"created_at": 1757462400,
"display_name": "Bluth Company",
"id": "Opnel5aKBz",
"is_deleted": false,
"name": "Bluth Company",
"number": "0001",
"paid_to_date": 3400.0
}Get an invoice
Read one Invoice Ninja invoice by its ID.
Inputs
- Invoice ID
invoice_idtextRequired - The invoice's Invoice Ninja ID, such as 'Opnel5aKBz'. Use 'List invoices' to find one. This is not the invoice number printed on the document.
Outputs
An Invoice Ninja invoice.
amountnumber- Total amount of the document.
archived_atnumber- When the record was archived, as a Unix timestamp in seconds. 0 when it is not archived.
assigned_user_idtext- ID of the user the document is assigned to.
auto_bill_enabledtrue/false- Whether the client's stored payment method is charged automatically.
balancenumber- Amount still outstanding.
client_idtext- ID of the client this document belongs to.
created_atnumber- When the record was created, as a Unix timestamp in seconds.
custom_surcharge1text- Custom field 1 on this record.
custom_surcharge2text- Custom field 2 on this record.
custom_surcharge3text- Custom field 3 on this record.
custom_surcharge4text- Custom field 4 on this record.
custom_value1text- Custom field 1 on this record.
custom_value2text- Custom field 2 on this record.
custom_value3text- Custom field 3 on this record.
custom_value4text- Custom field 4 on this record.
datetext- Document date, as 'YYYY-MM-DD'.
design_idtext- ID of the PDF design template used.
discountnumber- Discount applied to the whole document.
documentslist- Files attached to this record.
due_datetext- Due date, as 'YYYY-MM-DD'. On a quote this is the valid-until date.
e_invoiceobject- E-invoicing details.
entity_typetext- Which kind of document this is, such as 'invoice' or 'quote'.
exchange_ratenumber- Rate used to convert the client's currency to the company's.
footertext- Footer shown on the document.
has_expensestrue/false- Whether expenses are billed on this document.
has_taskstrue/false- Whether tasks are billed on this document.
idtext- The record's Invoice Ninja ID, such as 'Opnel5aKBz'.
invitationslist- One entry per contact the document is shared with, each carrying the portal link.
is_amount_discounttrue/false- True when the document discount is an amount rather than a percentage.
is_deletedtrue/false- True once the record has been deleted.
last_sent_datetext- When the document was last emailed, as 'YYYY-MM-DD'.
line_itemslist- The document's lines.
location_idtext- ID of the location the document is billed from.
next_send_datetext- When the next reminder is scheduled, as 'YYYY-MM-DD'.
numbertext- The document number, unique within the company.
paid_to_datenumber- Amount paid against this document so far.
partialnumber- Deposit amount requested before the full balance.
partial_due_datetext- Due date of the deposit, as 'YYYY-MM-DD'.
po_numbertext- Purchase order number.
private_notestext- Notes only your team can see.
project_idtext- ID of the linked project, when there is one.
public_notestext- Notes the client can see.
recurring_idtext- ID of the recurring invoice that generated this one.
reminder_last_senttext- When the last reminder went out, as 'YYYY-MM-DD'.
status_idtext- Status as text. For invoices: '1' draft, '2' sent, '3' partial, '4' paid, '5' cancelled, '6' reversed.
subscription_idtext- ID of the subscription that produced the document.
tagslist- Tags attached to this record.
tax_infoobject- Tax registration details.
tax_name1text- Name of tax 1, for example 'VAT'.
tax_name2text- Name of tax 2, for example 'VAT'.
tax_name3text- Name of tax 3, for example 'VAT'.
tax_rate1number- Percentage rate of tax 1.
tax_rate2number- Percentage rate of tax 2.
tax_rate3number- Percentage rate of tax 3.
termstext- Terms shown on the document.
total_taxesnumber- Total tax charged.
updated_atnumber- When the record last changed, as a Unix timestamp in seconds.
user_idtext- ID of the user who created the document.
uses_inclusive_taxestrue/false- True when the line prices already include tax.
vendor_idtext- ID of the linked vendor, when there is one.
Example output
{
"amount": 1200.0,
"balance": 1200.0,
"client_id": "Wpmbk5ezJn",
"created_at": 1757462400,
"date": "2026-09-01",
"due_date": "2026-09-30",
"id": "Opnel5aKBz",
"is_deleted": false,
"line_items": [
{
"cost": 150.0,
"line_total": 1200.0,
"notes": "Consulting, September",
"product_key": "CONSULT",
"quantity": 8.0
}
],
"number": "0012",
"paid_to_date": 0.0,
"status_id": "2"
}List clients
Find clients in your Invoice Ninja company.
Inputs
- Client name
nametext - Only return clients whose name matches this. Leave blank for all.
- Contact email
emailtext - Only return clients with a contact at this email address.
- Search
searchtext - Free-text search across client name, ID number, contact names, contact email and phone.
- Include records that are
record_statustext - Which records to include. Leave blank to let Invoice Ninja decide, which normally means active ones only.One or more of:
active,archived,deleted. - Also fetch
includetext - Extra details to pull into each client. Leave blank for the client record on its own.One or more of:
contacts,documents,gateway_tokens(Gateway tokens),activities,ledger,system_logs(System logs),group_settings(Group settings). - Sort by
sort_bytext - Which field to sort on. Leave blank for Invoice Ninja's own order.One of:
name,number,balance,id_number(Id number),created_at(Created at),updated_at(Updated at). - Sort direction
sort_directiontext - Which way to sort. Only used when a sort field is chosen.One of:
asc(Ascending (A-Z, oldest first)),desc(Descending (Z-A, newest first)). - Results per page
per_pagenumber - How many clients to return on one page, from 1 to 100. Leave blank for Invoice Ninja's default of 20.From 1 to 100.
- Page
pagenumber - Which page of results to return. Leave blank for the first page.From 1 to 10000.
Outputs
clientslist- The clients on this page.
paginationobject- Where this page sits in the full result set.
Example output
{
"clients": [
{
"balance": 1200.0,
"classification": "business",
"contacts": [
{
"email": "michael@example.com",
"first_name": "Michael",
"id": "Wpmbk5ezJn",
"is_primary": true,
"last_name": "Bluth"
}
],
"country_id": "840",
"created_at": 1757462400,
"display_name": "Bluth Company",
"id": "Opnel5aKBz",
"is_deleted": false,
"name": "Bluth Company",
"number": "0001",
"paid_to_date": 3400.0
}
],
"pagination": {
"count": 1,
"current_page": 1,
"per_page": 20,
"total": 1,
"total_pages": 1
}
}List expenses
Find expenses in your Invoice Ninja company.
Inputs
- Include records that are
record_statustext - Which records to include. Leave blank to let Invoice Ninja decide, which normally means active ones only.One or more of:
active,archived,deleted. - Sort by
sort_bytext - Which field to sort on. Leave blank for Invoice Ninja's own order.One of:
number,date,amount,created_at(Created at),updated_at(Updated at). - Sort direction
sort_directiontext - Which way to sort. Only used when a sort field is chosen.One of:
asc(Ascending (A-Z, oldest first)),desc(Descending (Z-A, newest first)). - Results per page
per_pagenumber - How many expenses to return on one page, from 1 to 100. Leave blank for Invoice Ninja's default of 20.From 1 to 100.
- Page
pagenumber - Which page of results to return. Leave blank for the first page.From 1 to 10000.
Outputs
expenseslist- The expenses on this page.
paginationobject- Where this page sits in the full result set.
Example output
{
"expenses": [
{
"amount": 42.5,
"created_at": 1757462400,
"date": "2026-09-04",
"id": "Volejrejnm",
"is_deleted": false,
"number": "0003",
"public_notes": "Team lunch",
"should_be_invoiced": false
}
],
"pagination": {
"count": 1,
"current_page": 1,
"per_page": 20,
"total": 1,
"total_pages": 1
}
}List invoices
Find invoices in your Invoice Ninja company.
Inputs
- Client ID
client_idtext - Only return records for this client, using its Invoice Ninja ID such as 'Opnel5aKBz'. Leave blank for every client.
- Invoice number
numbertext - Only return the invoice with this number, such as '0012'.
- Payment status
payment_statustext - Narrow to invoices in this payment state.One of:
all,paid,unpaid,overdue. - Invoice status
status_idtext - Narrow to invoices at these stages.One or more of:
1(Draft),2(Sent),3(Partially paid),4(Paid),5(Cancelled),6(Reversed). - Dated on or after
date_fromdate - Only return invoices dated on or after this day.
- Dated on or before
date_todate - Only return invoices dated on or before this day. Only used together with 'Dated on or after'.
- Search
searchtext - Free-text search across invoice number, PO number, date, amount, client name and line items.
- Include records that are
record_statustext - Which records to include. Leave blank to let Invoice Ninja decide, which normally means active ones only.One or more of:
active,archived,deleted. - Sort by
sort_bytext - Which field to sort on. Leave blank for Invoice Ninja's own order.One of:
number,date,due_date(Due date),amount,balance,status_id(Status id),created_at(Created at),updated_at(Updated at). - Sort direction
sort_directiontext - Which way to sort. Only used when a sort field is chosen.One of:
asc(Ascending (A-Z, oldest first)),desc(Descending (Z-A, newest first)). - Results per page
per_pagenumber - How many invoices to return on one page, from 1 to 100. Leave blank for Invoice Ninja's default of 20.From 1 to 100.
- Page
pagenumber - Which page of results to return. Leave blank for the first page.From 1 to 10000.
Outputs
invoiceslist- The invoices on this page.
paginationobject- Where this page sits in the full result set.
Example output
{
"invoices": [
{
"amount": 1200.0,
"balance": 1200.0,
"client_id": "Wpmbk5ezJn",
"created_at": 1757462400,
"date": "2026-09-01",
"due_date": "2026-09-30",
"id": "Opnel5aKBz",
"is_deleted": false,
"line_items": [
{
"cost": 150.0,
"line_total": 1200.0,
"notes": "Consulting, September",
"product_key": "CONSULT",
"quantity": 8.0
}
],
"number": "0012",
"paid_to_date": 0.0,
"status_id": "2"
}
],
"pagination": {
"count": 1,
"current_page": 1,
"per_page": 20,
"total": 1,
"total_pages": 1
}
}List payments
Find payments in your Invoice Ninja company.
Inputs
- Client ID
client_idtext - Only return records for this client, using its Invoice Ninja ID such as 'Opnel5aKBz'. Leave blank for every client.
- Payment number
numbertext - Only return the payment with this number.
- Search
searchtext - Free-text search across amount, date and custom fields.
- Include records that are
record_statustext - Which records to include. Leave blank to let Invoice Ninja decide, which normally means active ones only.One or more of:
active,archived,deleted. - Include linked invoices
include_invoicestrue/false - Turn on to pull the full invoice records each payment was applied to into the result.
- Sort by
sort_bytext - Which field to sort on. Leave blank for Invoice Ninja's own order.One of:
number,date,amount,created_at(Created at),updated_at(Updated at). - Sort direction
sort_directiontext - Which way to sort. Only used when a sort field is chosen.One of:
asc(Ascending (A-Z, oldest first)),desc(Descending (Z-A, newest first)). - Results per page
per_pagenumber - How many payments to return on one page, from 1 to 100. Leave blank for Invoice Ninja's default of 20.From 1 to 100.
- Page
pagenumber - Which page of results to return. Leave blank for the first page.From 1 to 10000.
Outputs
paginationobject- Where this page sits in the full result set.
paymentslist- The payments on this page.
Example output
{
"pagination": {
"count": 1,
"current_page": 1,
"per_page": 20,
"total": 1,
"total_pages": 1
},
"payments": [
{
"amount": 1200.0,
"applied": 1200.0,
"client_id": "Opnel5aKBz",
"created_at": 1757462400,
"date": "2026-09-05",
"id": "Volejrejnm",
"is_deleted": false,
"is_manual": true,
"number": "0007",
"paymentables": [
{
"amount": 1200.0,
"invoice_id": "Opnel5aKBz"
}
],
"refunded": 0.0,
"type_id": "1"
}
]
}List products
Find products in your Invoice Ninja company.
Inputs
- Search
searchtext - Free-text search across product code, description and custom fields.
- Include records that are
record_statustext - Which records to include. Leave blank to let Invoice Ninja decide, which normally means active ones only.One or more of:
active,archived,deleted. - Sort by
sort_bytext - Which field to sort on. Leave blank for Invoice Ninja's own order.One of:
product_key(Product key),cost,price,created_at(Created at),updated_at(Updated at). - Sort direction
sort_directiontext - Which way to sort. Only used when a sort field is chosen.One of:
asc(Ascending (A-Z, oldest first)),desc(Descending (Z-A, newest first)). - Results per page
per_pagenumber - How many products to return on one page, from 1 to 100. Leave blank for Invoice Ninja's default of 20.From 1 to 100.
- Page
pagenumber - Which page of results to return. Leave blank for the first page.From 1 to 10000.
Outputs
paginationobject- Where this page sits in the full result set.
productslist- The products on this page.
Example output
{
"pagination": {
"count": 1,
"current_page": 1,
"per_page": 20,
"total": 1,
"total_pages": 1
},
"products": [
{
"cost": 90.0,
"created_at": 1757462400,
"id": "Wpmbk5ezJn",
"is_deleted": false,
"notes": "Consulting, per hour",
"price": 150.0,
"product_key": "CONSULT",
"quantity": 1.0,
"tax_id": "2"
}
]
}List quotes
Find quotes in your Invoice Ninja company.
Inputs
- Client ID
client_idtext - Only return records for this client, using its Invoice Ninja ID such as 'Opnel5aKBz'. Leave blank for every client.
- Quote number
numbertext - Only return the quote with this number.
- Search
searchtext - Free-text search across quote number, PO number, amount and client name.
- Include records that are
record_statustext - Which records to include. Leave blank to let Invoice Ninja decide, which normally means active ones only.One or more of:
active,archived,deleted. - Sort by
sort_bytext - Which field to sort on. Leave blank for Invoice Ninja's own order.One of:
number,date,due_date(Due date),amount,created_at(Created at),updated_at(Updated at). - Sort direction
sort_directiontext - Which way to sort. Only used when a sort field is chosen.One of:
asc(Ascending (A-Z, oldest first)),desc(Descending (Z-A, newest first)). - Results per page
per_pagenumber - How many quotes to return on one page, from 1 to 100. Leave blank for Invoice Ninja's default of 20.From 1 to 100.
- Page
pagenumber - Which page of results to return. Leave blank for the first page.From 1 to 10000.
Outputs
paginationobject- Where this page sits in the full result set.
quoteslist- The quotes on this page.
Example output
{
"pagination": {
"count": 1,
"current_page": 1,
"per_page": 20,
"total": 1,
"total_pages": 1
},
"quotes": [
{
"amount": 900.0,
"client_id": "Opnel5aKBz",
"created_at": 1757462400,
"date": "2026-09-01",
"due_date": "2026-09-15",
"id": "Wpmbk5ezJn",
"invoice_id": "",
"is_deleted": false,
"line_items": [
{
"cost": 150.0,
"line_total": 900.0,
"notes": "Discovery workshop",
"product_key": "CONSULT",
"quantity": 6.0
}
],
"number": "Q0004",
"status_id": "2"
}
]
}Record a payment
Record money received from a client, optionally applying it to that client's invoices.
Inputs
- Client ID
client_idtextRequired - The client's Invoice Ninja ID, such as 'Opnel5aKBz'. Open the client in Invoice Ninja and copy the last part of the web address, or use 'List clients' to find one. This is not the client number shown on the record.
- Amount
amountnumberRequired - How much was received.At least 0.
- Payment date
datedate - When the money arrived. Leave blank for today.
- Payment method
type_idtext - How the client paid.
- Apply to invoices
invoiceslist - Which of the client's invoices to settle, and how much of the payment to put against each. The amounts must not add up to more than the payment. Leave blank to leave the payment unapplied.
- Reference
transaction_referencetext - Your own reference for the transaction.
- Private notes
private_notestext - Notes only your own team can see.
- Payment number
numbertext - A number for the payment. Leave blank to let Invoice Ninja allocate the next one.
Outputs
An Invoice Ninja payment.
amountnumber- Amount received.
appliednumber- How much of the amount has been applied to invoices.
archived_atnumber- When the record was archived, as a Unix timestamp in seconds. 0 when it is not archived.
assigned_user_idtext- ID of the user the payment is assigned to.
client_contact_idtext- ID of the contact who paid, when the payment came through the portal.
client_idtext- ID of the client who paid.
company_gateway_idtext- ID of the payment gateway that took the payment.
created_atnumber- When the record was created, as a Unix timestamp in seconds.
currency_idtext- Invoice Ninja currency ID as text.
custom_value1text- Custom field 1 on this record.
custom_value2text- Custom field 2 on this record.
custom_value3text- Custom field 3 on this record.
custom_value4text- Custom field 4 on this record.
datetext- Payment date, as 'YYYY-MM-DD'.
documentslist- Files attached to this record.
exchange_currency_idtext- Currency the amount was converted from, as text.
exchange_ratenumber- Rate used to convert to the company's currency.
gateway_type_idtext- Kind of gateway method used, as text.
idtext- The payment's Invoice Ninja ID, such as 'Opnel5aKBz'.
invitation_idtext- ID of the invitation the payment came from.
invoiceslist- The linked invoices, present only when 'Include linked invoices' is turned on.
is_deletedtrue/false- True once the record has been deleted.
is_manualtrue/false- True when the payment was entered by hand rather than taken by a gateway.
numbertext- The payment number, unique within the company.
paymentableslist- One entry per invoice or credit the payment was applied to, each with the amount applied.
private_notestext- Notes only your team can see.
project_idtext- ID of the linked project.
refundednumber- How much of the amount has been refunded.
status_idtext- Payment status as text.
tagslist- Tags attached to this record.
transaction_idtext- ID of the matched bank transaction.
transaction_referencetext- Your own reference for the transaction.
type_idtext- Payment method ID as text, such as '1' for a bank transfer or '2' for cash.
updated_atnumber- When the record last changed, as a Unix timestamp in seconds.
user_idtext- ID of the user who recorded the payment.
vendor_idtext- ID of the linked vendor.
Example output
{
"amount": 1200.0,
"applied": 1200.0,
"client_id": "Opnel5aKBz",
"created_at": 1757462400,
"date": "2026-09-05",
"id": "Volejrejnm",
"is_deleted": false,
"is_manual": true,
"number": "0007",
"paymentables": [
{
"amount": 1200.0,
"invoice_id": "Opnel5aKBz"
}
],
"refunded": 0.0,
"type_id": "1"
}Record an expense
Book an expense in your Invoice Ninja company.
Inputs
- Amount
amountnumberRequired - How much was spent.At least 0.
- Expense date
datedate - When the money was spent. Leave blank for today.
- Paid on
payment_datedate - When the expense was actually paid, if that differs.
- Currency
currency_idtext - The currency the money was spent in. Leave blank for the company's own currency.
- Public notes
public_notestext - Notes a client, if the expense is rebilled to one can see.
- Private notes
private_notestext - Notes only your own team can see.
- Reference
transaction_referencetext - Your own reference for the transaction.
- Rebill to a client
should_be_invoicedtrue/false - Turn on to mark the expense as one to bill on to a client.
- Expense number
numbertext - A number for the expense. Leave blank to let Invoice Ninja allocate the next one.
Outputs
An Invoice Ninja expense.
amountnumber- Amount spent.
archived_atnumber- When the record was archived, as a Unix timestamp in seconds. 0 when it is not archived.
assigned_user_idtext- ID of the user the expense is assigned to.
bank_idtext- ID of the bank account the expense came from.
calculate_tax_by_amounttrue/false- True when tax is entered as an amount rather than a rate.
category_idtext- ID of the expense category.
client_idtext- ID of the client the expense will be rebilled to.
created_atnumber- When the record was created, as a Unix timestamp in seconds.
currency_idtext- Invoice Ninja currency ID as text.
custom_value1text- Custom field 1 on this record.
custom_value2text- Custom field 2 on this record.
custom_value3text- Custom field 3 on this record.
custom_value4text- Custom field 4 on this record.
datetext- Expense date, as 'YYYY-MM-DD'.
documentslist- Files attached to this record.
e_invoiceobject- E-invoicing details.
entity_typetext- Always 'expense' for these records.
exchange_ratenumber- Rate used to convert to the company's currency.
expense_currency_idtext- Currency the expense was incurred in, as text.
foreign_amountnumber- Amount in the expense's own currency.
idtext- The expense's Invoice Ninja ID, such as 'Opnel5aKBz'.
invoice_currency_idtext- Currency the expense is rebilled in, as text.
invoice_documentstrue/false- Whether the expense's files are attached to the invoice it is billed on.
invoice_idtext- ID of the invoice the expense was billed on.
is_deletedtrue/false- True once the record has been deleted.
numbertext- The expense number, unique within the company.
payment_datetext- When it was paid, as 'YYYY-MM-DD'.
payment_type_idtext- Payment method ID as text.
private_notestext- Notes only your team can see.
project_idtext- ID of the linked project.
public_notestext- Notes the client can see when the expense is rebilled.
recurring_expense_idtext- ID of the recurring expense that generated this one.
should_be_invoicedtrue/false- Whether the expense is marked to rebill to a client.
tagslist- Tags attached to this record.
tax_amount1number- Amount of tax 1 on the expense.
tax_amount2number- Amount of tax 2 on the expense.
tax_amount3number- Amount of tax 3 on the expense.
tax_name1text- Name of tax 1, for example 'VAT'.
tax_name2text- Name of tax 2, for example 'VAT'.
tax_name3text- Name of tax 3, for example 'VAT'.
tax_rate1number- Percentage rate of tax 1.
tax_rate2number- Percentage rate of tax 2.
tax_rate3number- Percentage rate of tax 3.
transaction_idtext- ID of the matched bank transaction.
transaction_referencetext- Your own reference for the transaction.
updated_atnumber- When the record last changed, as a Unix timestamp in seconds.
user_idtext- ID of the user who recorded the expense.
uses_inclusive_taxestrue/false- True when the amount already includes tax.
vendor_idtext- ID of the vendor the money was paid to.
Example output
{
"amount": 42.5,
"created_at": 1757462400,
"date": "2026-09-04",
"id": "Volejrejnm",
"is_deleted": false,
"number": "0003",
"public_notes": "Team lunch",
"should_be_invoiced": false
}Refund a payment
Refund a recorded payment, in full or in part. Invoice Ninja puts the balance back on any invoices the refund covers.
Inputs
- Payment ID
payment_idtextRequired - The payment's Invoice Ninja ID, such as 'Opnel5aKBz'. Use 'List payments' to find one.
- Refund date
datedateRequired - The date of the refund.
- Amount
amountnumber - How much to refund. Leave blank to refund everything that has not been refunded already.At least 0.
- Refund against invoices
invoiceslist - Which invoices the refund comes off, and how much from each. Leave blank to refund the payment without touching any invoice balance.
Outputs
An Invoice Ninja payment.
amountnumber- Amount received.
appliednumber- How much of the amount has been applied to invoices.
archived_atnumber- When the record was archived, as a Unix timestamp in seconds. 0 when it is not archived.
assigned_user_idtext- ID of the user the payment is assigned to.
client_contact_idtext- ID of the contact who paid, when the payment came through the portal.
client_idtext- ID of the client who paid.
company_gateway_idtext- ID of the payment gateway that took the payment.
created_atnumber- When the record was created, as a Unix timestamp in seconds.
currency_idtext- Invoice Ninja currency ID as text.
custom_value1text- Custom field 1 on this record.
custom_value2text- Custom field 2 on this record.
custom_value3text- Custom field 3 on this record.
custom_value4text- Custom field 4 on this record.
datetext- Payment date, as 'YYYY-MM-DD'.
documentslist- Files attached to this record.
exchange_currency_idtext- Currency the amount was converted from, as text.
exchange_ratenumber- Rate used to convert to the company's currency.
gateway_type_idtext- Kind of gateway method used, as text.
idtext- The payment's Invoice Ninja ID, such as 'Opnel5aKBz'.
invitation_idtext- ID of the invitation the payment came from.
invoiceslist- The linked invoices, present only when 'Include linked invoices' is turned on.
is_deletedtrue/false- True once the record has been deleted.
is_manualtrue/false- True when the payment was entered by hand rather than taken by a gateway.
numbertext- The payment number, unique within the company.
paymentableslist- One entry per invoice or credit the payment was applied to, each with the amount applied.
private_notestext- Notes only your team can see.
project_idtext- ID of the linked project.
refundednumber- How much of the amount has been refunded.
status_idtext- Payment status as text.
tagslist- Tags attached to this record.
transaction_idtext- ID of the matched bank transaction.
transaction_referencetext- Your own reference for the transaction.
type_idtext- Payment method ID as text, such as '1' for a bank transfer or '2' for cash.
updated_atnumber- When the record last changed, as a Unix timestamp in seconds.
user_idtext- ID of the user who recorded the payment.
vendor_idtext- ID of the linked vendor.
Example output
{
"amount": 1200.0,
"applied": 1200.0,
"client_id": "Opnel5aKBz",
"created_at": 1757462400,
"date": "2026-09-05",
"id": "Volejrejnm",
"is_deleted": false,
"is_manual": true,
"number": "0007",
"paymentables": [
{
"amount": 1200.0,
"invoice_id": "Opnel5aKBz"
}
],
"refunded": 1200.0,
"type_id": "1"
}Update a client
Change details on an existing Invoice Ninja client. Fields left blank keep their current values.
Inputs
- Client ID
client_idtextRequired - The client's Invoice Ninja ID, such as 'Opnel5aKBz'. Open the client in Invoice Ninja and copy the last part of the web address, or use 'List clients' to find one. This is not the client number shown on the record.
- Client name
nametext - A new name for the client. Leave blank to keep the current one.
- Contacts
contactslist - The full list of people at this client. Invoice Ninja replaces every contact with what is sent here, so leave this blank unless the step means to rewrite them all; the existing contacts are kept for you.
- Website
websitetext - A new website address.
- Phone
phonetext - A new main phone number.
- Address line 1
address1text - First line of the billing address.
- Address line 2
address2text - Second line of the billing address.
- City
citytext - Billing address city.
- State or region
statetext - Billing address state, province or region.
- Postal code
postal_codetext - Billing address postal or ZIP code.
- Country
country_idtext - The client's country.
- Industry
industry_idtext - The industry the client works in.
- Company size
size_idtext - Roughly how many people the client employs.
- Client type
classificationtext - What kind of entity the client is.One of:
individual,business,company,partnership,trust,charity,government,other. - VAT number
vat_numbertext - The client's VAT or tax registration number.
- Your reference
id_numbertext - Your own reference number for this client.
- Public notes
public_notestext - Notes the client can see.
- Private notes
private_notestext - Notes only your own team can see.
Outputs
An Invoice Ninja client (customer).
address1text- First address line.
address2text- Second address line.
archived_atnumber- When the record was archived, as a Unix timestamp in seconds. 0 when it is not archived.
assigned_user_idtext- ID of the user the client is assigned to.
balancenumber- Amount currently owed by this client.
citytext- City.
classificationtext- What kind of entity the client is, such as 'business' or 'individual'.
client_hashtext- The key in the client's portal link.
contactslist- The client's contacts.
country_idtext- ISO numeric country code as text, such as '840' for the United States.
created_atnumber- When the record was created, as a Unix timestamp in seconds.
credit_balancenumber- Outstanding credit note balance.
custom_value1text- Custom field 1 on this record.
custom_value2text- Custom field 2 on this record.
custom_value3text- Custom field 3 on this record.
custom_value4text- Custom field 4 on this record.
display_nametext- The name Invoice Ninja shows, which falls back to the first contact when the client has no name.
documentslist- Files attached to this record.
e_invoiceobject- E-invoicing settings.
gateway_tokenslist- Stored payment methods.
group_settings_idtext- ID of the client group this client belongs to.
has_valid_vat_numbertrue/false- Whether Invoice Ninja could validate the VAT number.
idtext- The client's Invoice Ninja ID, such as 'Opnel5aKBz'. Use this wherever a step asks for a client.
id_numbertext- Your own reference number for the client.
industry_idtext- Invoice Ninja industry ID, as text.
is_deletedtrue/false- True once the record has been deleted.
is_tax_exempttrue/false- Whether the client is exempt from tax.
last_loginnumber- Client-portal last login, as a Unix timestamp in seconds.
locationslist- Additional addresses recorded for the client.
nametext- Company or person name.
numbertext- The client number, unique within the company.
paid_to_datenumber- Total the client has paid so far.
payment_balancenumber- Unapplied payment credit held for this client.
phonetext- Phone number.
postal_codetext- Postal or ZIP code.
private_notestext- Notes only your team can see.
public_notestext- Notes the client can see.
routing_idtext- Bank routing identifier.
settingsobject- Per-client overrides such as currency, language and payment terms.
shipping_address1text- First shipping address line.
shipping_address2text- Second shipping address line.
shipping_citytext- Shipping city.
shipping_country_idtext- ISO numeric country code of the shipping address, as text.
shipping_postal_codetext- Shipping postal or ZIP code.
shipping_statetext- Shipping state, province or region.
size_idtext- Invoice Ninja company-size ID, as text.
statetext- State, province or region.
tagslist- Tags attached to this record.
tax_infoobject- Tax registration details.
updated_atnumber- When the record last changed, as a Unix timestamp in seconds.
user_idtext- ID of the user who created the client.
vat_numbertext- VAT or tax number.
websitetext- Website address.
Example output
{
"balance": 1200.0,
"classification": "business",
"contacts": [
{
"email": "michael@example.com",
"first_name": "Michael",
"id": "Wpmbk5ezJn",
"is_primary": true,
"last_name": "Bluth"
}
],
"country_id": "840",
"created_at": 1757462400,
"display_name": "Bluth Company",
"id": "Opnel5aKBz",
"is_deleted": false,
"name": "Bluth Company",
"number": "0001",
"paid_to_date": 3400.0
}Update an invoice
Change an existing Invoice Ninja invoice. Fields left blank keep their current values.
Inputs
- Invoice ID
invoice_idtextRequired - The invoice's Invoice Ninja ID, such as 'Opnel5aKBz'.
- Client ID
client_idtext - Move the invoice to a different client, using that client's Invoice Ninja ID such as 'Opnel5aKBz'. Leave blank to keep it where it is.
- Line items
line_itemslist - The lines on the invoice. Each needs at least a description ('notes'), a quantity and a unit price ('cost'). Sending lines replaces every existing line, so leave this blank unless the step means to rewrite them all.
- Invoice number
numbertext - A new invoice number. Numbers must be unique.
- PO number
po_numbertext - The client's purchase order number.
- Invoice date
datedate - A new date for the invoice.
- Due date
due_datedate - A new date payment is due.
- Discount
discountnumber - A discount off the whole invoice.At least 0.
- Discount is an amount
is_amount_discounttrue/false - Turn on to treat the discount as a cash amount. Leave off to treat it as a percentage.
- Terms
termstext - Terms printed on the invoice.
- Footer
footertext - Footer printed on the invoice.
- Public notes
public_notestext - Notes the client can see.
- Private notes
private_notestext - Notes only your own team can see.
Outputs
An Invoice Ninja invoice.
amountnumber- Total amount of the document.
archived_atnumber- When the record was archived, as a Unix timestamp in seconds. 0 when it is not archived.
assigned_user_idtext- ID of the user the document is assigned to.
auto_bill_enabledtrue/false- Whether the client's stored payment method is charged automatically.
balancenumber- Amount still outstanding.
client_idtext- ID of the client this document belongs to.
created_atnumber- When the record was created, as a Unix timestamp in seconds.
custom_surcharge1text- Custom field 1 on this record.
custom_surcharge2text- Custom field 2 on this record.
custom_surcharge3text- Custom field 3 on this record.
custom_surcharge4text- Custom field 4 on this record.
custom_value1text- Custom field 1 on this record.
custom_value2text- Custom field 2 on this record.
custom_value3text- Custom field 3 on this record.
custom_value4text- Custom field 4 on this record.
datetext- Document date, as 'YYYY-MM-DD'.
design_idtext- ID of the PDF design template used.
discountnumber- Discount applied to the whole document.
documentslist- Files attached to this record.
due_datetext- Due date, as 'YYYY-MM-DD'. On a quote this is the valid-until date.
e_invoiceobject- E-invoicing details.
entity_typetext- Which kind of document this is, such as 'invoice' or 'quote'.
exchange_ratenumber- Rate used to convert the client's currency to the company's.
footertext- Footer shown on the document.
has_expensestrue/false- Whether expenses are billed on this document.
has_taskstrue/false- Whether tasks are billed on this document.
idtext- The record's Invoice Ninja ID, such as 'Opnel5aKBz'.
invitationslist- One entry per contact the document is shared with, each carrying the portal link.
is_amount_discounttrue/false- True when the document discount is an amount rather than a percentage.
is_deletedtrue/false- True once the record has been deleted.
last_sent_datetext- When the document was last emailed, as 'YYYY-MM-DD'.
line_itemslist- The document's lines.
location_idtext- ID of the location the document is billed from.
next_send_datetext- When the next reminder is scheduled, as 'YYYY-MM-DD'.
numbertext- The document number, unique within the company.
paid_to_datenumber- Amount paid against this document so far.
partialnumber- Deposit amount requested before the full balance.
partial_due_datetext- Due date of the deposit, as 'YYYY-MM-DD'.
po_numbertext- Purchase order number.
private_notestext- Notes only your team can see.
project_idtext- ID of the linked project, when there is one.
public_notestext- Notes the client can see.
recurring_idtext- ID of the recurring invoice that generated this one.
reminder_last_senttext- When the last reminder went out, as 'YYYY-MM-DD'.
status_idtext- Status as text. For invoices: '1' draft, '2' sent, '3' partial, '4' paid, '5' cancelled, '6' reversed.
subscription_idtext- ID of the subscription that produced the document.
tagslist- Tags attached to this record.
tax_infoobject- Tax registration details.
tax_name1text- Name of tax 1, for example 'VAT'.
tax_name2text- Name of tax 2, for example 'VAT'.
tax_name3text- Name of tax 3, for example 'VAT'.
tax_rate1number- Percentage rate of tax 1.
tax_rate2number- Percentage rate of tax 2.
tax_rate3number- Percentage rate of tax 3.
termstext- Terms shown on the document.
total_taxesnumber- Total tax charged.
updated_atnumber- When the record last changed, as a Unix timestamp in seconds.
user_idtext- ID of the user who created the document.
uses_inclusive_taxestrue/false- True when the line prices already include tax.
vendor_idtext- ID of the linked vendor, when there is one.
Example output
{
"amount": 1200.0,
"balance": 1200.0,
"client_id": "Wpmbk5ezJn",
"created_at": 1757462400,
"date": "2026-09-01",
"due_date": "2026-09-30",
"id": "Opnel5aKBz",
"is_deleted": false,
"line_items": [
{
"cost": 150.0,
"line_total": 1200.0,
"notes": "Consulting, September",
"product_key": "CONSULT",
"quantity": 8.0
}
],
"number": "0012",
"paid_to_date": 0.0,
"status_id": "2"
}