Fixes for openapi spec

This commit is contained in:
David Bomba 2024-11-17 21:48:33 +11:00
parent 34064f8b7c
commit 9817158076
3 changed files with 1794 additions and 1723 deletions

View File

@ -1,4 +1,4 @@
openapi: 3.0.0 openapi: 3.0.1
info: info:
title: 'Invoice Ninja API Reference.' title: 'Invoice Ninja API Reference.'
description: | description: |
@ -71,7 +71,8 @@ info:
license: license:
name: 'Elastic License' name: 'Elastic License'
url: 'https://www.elastic.co/licensing/elastic-license' url: 'https://www.elastic.co/licensing/elastic-license'
version: 5.10.31 version: 5.10.53
servers: servers:
- url: 'https://demo.invoiceninja.com' - url: 'https://demo.invoiceninja.com'
description: | description: |
@ -17992,13 +17993,14 @@ components:
- color - color
CompanySettings: CompanySettings:
type: object
required: required:
- currency_id - currency_id
properties: properties:
currency_id: currency_id:
description: "The default currency id" description: "The default currency id"
type: string type: string
example: true example: "1"
timezone_id: timezone_id:
description: "The timezone id" description: "The timezone id"
type: string type: string
@ -18022,7 +18024,7 @@ components:
payment_terms: payment_terms:
description: "-1 sets no payment term, 0 sets payment due immediately, positive integers indicates payment terms in days" description: "-1 sets no payment term, 0 sets payment due immediately, positive integers indicates payment terms in days"
type: integer type: integer
example: "1" example: 1
company_gateway_ids: company_gateway_ids:
description: "A commad separate list of available gateways" description: "A commad separate list of available gateways"
type: string type: string
@ -18047,7 +18049,7 @@ components:
description: "The default task rate" description: "The default task rate"
type: number type: number
format: float format: float
example: "10.00" example: 10.00
send_reminders: send_reminders:
description: "Toggles whether reminders are sent" description: "Toggles whether reminders are sent"
type: boolean type: boolean
@ -18059,11 +18061,13 @@ components:
email_style: email_style:
description: "options include plain,light,dark,custom" description: "options include plain,light,dark,custom"
type: string type: string
example: light enum: [plain, light, dark, custom]
example: "light"
reply_to_email: reply_to_email:
description: "The reply to email address" description: "The reply to email address"
type: string type: string
example: email@gmail.com format: email
example: "email@gmail.com"
bcc_email: bcc_email:
description: "A comma separate list of BCC emails" description: "A comma separate list of BCC emails"
type: string type: string
@ -18081,13 +18085,15 @@ components:
type: string type: string
example: "<HTML></HTML>" example: "<HTML></HTML>"
counter_number_applied: counter_number_applied:
description: "enum when the invoice number counter is set, ie when_saved, when_sent, when_paid" description: "enum when the invoice number counter is set"
type: string type: string
example: when_sent enum: [when_saved, when_sent, when_paid]
example: "when_sent"
quote_number_applied: quote_number_applied:
description: "enum when the quote number counter is set, ie when_saved, when_sent" description: "enum when the quote number counter is set"
type: string type: string
example: when_sent enum: [when_saved, when_sent]
example: "when_sent"
custom_message_dashboard: custom_message_dashboard:
description: "A custom message which is displayed on the dashboard" description: "A custom message which is displayed on the dashboard"
type: string type: string
@ -18106,9 +18112,9 @@ components:
example: "Please approve quote" example: "Please approve quote"
lock_invoices: lock_invoices:
description: "Toggles whether invoices are locked once sent and cannot be modified further" description: "Toggles whether invoices are locked once sent and cannot be modified further"
type: enum type: string
enum: [off, when_sent, when_paid, end_of_month] enum: [off, when_sent, when_paid, end_of_month]
example: 'off' example: "off"
auto_archive_invoice: auto_archive_invoice:
description: "Toggles whether a invoice is archived immediately following payment" description: "Toggles whether a invoice is archived immediately following payment"
type: boolean type: boolean
@ -18128,7 +18134,7 @@ components:
translations: translations:
description: "JSON payload of customized translations" description: "JSON payload of customized translations"
type: object type: object
example: "" example: {}
task_number_pattern: task_number_pattern:
description: "Allows customisation of the task number pattern" description: "Allows customisation of the task number pattern"
type: string type: string
@ -18136,11 +18142,11 @@ components:
task_number_counter: task_number_counter:
description: "The incrementing counter for tasks" description: "The incrementing counter for tasks"
type: integer type: integer
example: "1" example: 1
reminder_send_time: reminder_send_time:
description: "Time from UTC +0 when the email will be sent to the client" description: "Time from UTC +0 when the email will be sent to the client"
type: integer type: integer
example: "32400" example: 32400
expense_number_pattern: expense_number_pattern:
description: "Allows customisation of the expense number pattern" description: "Allows customisation of the expense number pattern"
type: string type: string
@ -18148,7 +18154,7 @@ components:
expense_number_counter: expense_number_counter:
description: "The incrementing counter for expenses" description: "The incrementing counter for expenses"
type: integer type: integer
example: "1" example: 1
vendor_number_pattern: vendor_number_pattern:
description: "Allows customisation of the vendor number pattern" description: "Allows customisation of the vendor number pattern"
type: string type: string
@ -18156,7 +18162,7 @@ components:
vendor_number_counter: vendor_number_counter:
description: "The incrementing counter for vendors" description: "The incrementing counter for vendors"
type: integer type: integer
example: "1" example: 1
ticket_number_pattern: ticket_number_pattern:
description: "Allows customisation of the ticket number pattern" description: "Allows customisation of the ticket number pattern"
type: string type: string
@ -18164,7 +18170,7 @@ components:
ticket_number_counter: ticket_number_counter:
description: "The incrementing counter for tickets" description: "The incrementing counter for tickets"
type: integer type: integer
example: "1" example: 1
payment_number_pattern: payment_number_pattern:
description: "Allows customisation of the payment number pattern" description: "Allows customisation of the payment number pattern"
type: string type: string
@ -18172,7 +18178,7 @@ components:
payment_number_counter: payment_number_counter:
description: "The incrementing counter for payments" description: "The incrementing counter for payments"
type: integer type: integer
example: "1" example: 1
invoice_number_pattern: invoice_number_pattern:
description: "Allows customisation of the invoice number pattern" description: "Allows customisation of the invoice number pattern"
type: string type: string
@ -18180,7 +18186,7 @@ components:
invoice_number_counter: invoice_number_counter:
description: "The incrementing counter for invoices" description: "The incrementing counter for invoices"
type: integer type: integer
example: "1" example: 1
quote_number_pattern: quote_number_pattern:
description: "Allows customisation of the quote number pattern" description: "Allows customisation of the quote number pattern"
type: string type: string
@ -18188,7 +18194,7 @@ components:
quote_number_counter: quote_number_counter:
description: "The incrementing counter for quotes" description: "The incrementing counter for quotes"
type: integer type: integer
example: "1" example: 1
client_number_pattern: client_number_pattern:
description: "Allows customisation of the client number pattern" description: "Allows customisation of the client number pattern"
type: string type: string
@ -18196,7 +18202,7 @@ components:
client_number_counter: client_number_counter:
description: "The incrementing counter for clients" description: "The incrementing counter for clients"
type: integer type: integer
example: "1" example: 1
credit_number_pattern: credit_number_pattern:
description: "Allows customisation of the credit number pattern" description: "Allows customisation of the credit number pattern"
type: string type: string
@ -18204,23 +18210,24 @@ components:
credit_number_counter: credit_number_counter:
description: "The incrementing counter for credits" description: "The incrementing counter for credits"
type: integer type: integer
example: "1" example: 1
recurring_invoice_number_prefix: recurring_invoice_number_prefix:
description: "This string is prepended to the recurring invoice number" description: "This string is prepended to the recurring invoice number"
type: string type: string
example: R example: "R"
reset_counter_frequency_id: reset_counter_frequency_id:
description: "CONSTANT which is used to apply the frequency which the counters are reset" description: "CONSTANT which is used to apply the frequency which the counters are reset"
type: integer type: integer
example: "1" example: 1
reset_counter_date: reset_counter_date:
description: "The explicit date which is used to reset counters" description: "The explicit date which is used to reset counters"
type: string type: string
format: date
example: "2019-01-01" example: "2019-01-01"
counter_padding: counter_padding:
description: "Pads the counter with leading zeros" description: "Pads the counter with leading zeros"
type: integer type: integer
example: "1" example: 1
shared_invoice_quote_counter: shared_invoice_quote_counter:
description: "Flags whether to share the counter for invoices and quotes" description: "Flags whether to share the counter for invoices and quotes"
type: boolean type: boolean
@ -18247,8 +18254,8 @@ components:
example: "Quote Terms are..." example: "Quote Terms are..."
invoice_taxes: invoice_taxes:
description: "The number of Taxes that can be applied to the invoice" description: "The number of Taxes that can be applied to the invoice"
type: number type: integer
example: "1" example: 1
invoice_design_id: invoice_design_id:
description: "The default design id (invoice, quote etc)" description: "The default design id (invoice, quote etc)"
type: string type: string
@ -18268,27 +18275,30 @@ components:
tax_rate1: tax_rate1:
description: "The tax rate (float)" description: "The tax rate (float)"
type: number type: number
example: "10" format: float
example: 10
tax_name1: tax_name1:
description: "The tax name" description: "The tax name"
type: string type: string
example: GST example: "GST"
tax_rate2: tax_rate2:
description: "The tax rate (float)" description: "The tax rate (float)"
type: number type: number
example: "10" format: float
example: 10
tax_name2: tax_name2:
description: "The tax name" description: "The tax name"
type: string type: string
example: GST example: "GST"
tax_rate3: tax_rate3:
description: "The tax rate (float)" description: "The tax rate (float)"
type: number type: number
example: "10" format: float
example: 10
tax_name3: tax_name3:
description: "The tax name" description: "The tax name"
type: string type: string
example: GST example: "GST"
payment_type_id: payment_type_id:
description: "The default payment type id" description: "The default payment type id"
type: string type: string
@ -18302,14 +18312,14 @@ components:
type: string type: string
example: "A default email footer" example: "A default email footer"
email_sending_method: email_sending_method:
description: "The email driver to use to send email, options include default, gmail, client_postmark, client_mailgun, client_brevo, office365" description: "The email driver to use to send email"
type: string type: string
enum: [default, gmail, office365, client_postmark, client_mailgun, mailgun, client_brevo] enum: [default, gmail, office365, client_postmark, client_mailgun, mailgun, client_brevo]
example: 'default' example: "default"
gmail_sending_user_id: gmail_sending_user_id:
description: "The hashed_id of the user account to send email from" description: "The hashed_id of the user account to send email from"
type: string type: string
example: F76sd34D example: "F76sd34D"
email_subject_invoice: email_subject_invoice:
description: "" description: ""
type: string type: string
@ -18392,12 +18402,13 @@ components:
example: "Acme Co" example: "Acme Co"
company_logo: company_logo:
description: "The company logo file" description: "The company logo file"
type: object type: string
example: logo.png example: "logo.png"
website: website:
description: "The company website URL" description: "The company website URL"
type: string type: string
example: www.acme.com format: uri
example: "www.acme.com"
address1: address1:
description: "The company address line 1" description: "The company address line 1"
type: string type: string
@ -18409,11 +18420,11 @@ components:
city: city:
description: "The company city" description: "The company city"
type: string type: string
example: Sydney example: "Sydney"
state: state:
description: "The company state" description: "The company state"
type: string type: string
example: Florisa example: "Florida"
postal_code: postal_code:
description: "The company zip/postal code" description: "The company zip/postal code"
type: string type: string
@ -18421,11 +18432,12 @@ components:
phone: phone:
description: "The company phone" description: "The company phone"
type: string type: string
example: 555-213-3948 example: "555-213-3948"
email: email:
description: "The company email" description: "The company email"
type: string type: string
example: joe@acme.co format: email
example: "joe@acme.co"
country_id: country_id:
description: "The country ID" description: "The country ID"
type: string type: string
@ -18437,19 +18449,19 @@ components:
page_size: page_size:
description: "The default page size" description: "The default page size"
type: string type: string
example: A4 example: "A4"
font_size: font_size:
description: "The font size" description: "The font size"
type: number type: number
example: "9" example: 9
primary_font: primary_font:
description: "The primary font" description: "The primary font"
type: string type: string
example: roboto example: "roboto"
secondary_font: secondary_font:
description: "The secondary font" description: "The secondary font"
type: string type: string
example: roboto example: "roboto"
hide_paid_to_date: hide_paid_to_date:
description: "Flags whether to hide the paid to date field" description: "Flags whether to hide the paid to date field"
type: boolean type: boolean
@ -18540,39 +18552,45 @@ components:
example: false example: false
num_days_reminder1: num_days_reminder1:
description: "The Reminder interval" description: "The Reminder interval"
type: number type: integer
example: "9" example: 9
num_days_reminder2: num_days_reminder2:
description: "The Reminder interval" description: "The Reminder interval"
type: number type: integer
example: "9" example: 9
num_days_reminder3: num_days_reminder3:
description: "The Reminder interval" description: "The Reminder interval"
type: number type: integer
example: "9" example: 9
schedule_reminder1: schedule_reminder1:
description: "(enum: after_invoice_date, before_due_date, after_due_date)" description: "(enum: after_invoice_date, before_due_date, after_due_date)"
type: string type: string
example: after_invoice_date enum: [after_invoice_date, before_due_date, after_due_date]
example: "after_invoice_date"
schedule_reminder2: schedule_reminder2:
description: "(enum: after_invoice_date, before_due_date, after_due_date)" description: "(enum: after_invoice_date, before_due_date, after_due_date)"
type: string type: string
example: after_invoice_date enum: [after_invoice_date, before_due_date, after_due_date]
example: "after_invoice_date"
schedule_reminder3: schedule_reminder3:
description: "(enum: after_invoice_date, before_due_date, after_due_date)" description: "(enum: after_invoice_date, before_due_date, after_due_date)"
type: string type: string
example: after_invoice_date enum: [after_invoice_date, before_due_date, after_due_date]
example: "after_invoice_date"
late_fee_amount1: late_fee_amount1:
description: "The late fee amount for reminder 1" description: "The late fee amount for reminder 1"
type: number type: number
format: float
example: 10 example: 10
late_fee_amount2: late_fee_amount2:
description: "The late fee amount for reminder 2" description: "The late fee amount for reminder 2"
type: number type: number
format: float
example: 20 example: 20
late_fee_amount3: late_fee_amount3:
description: "The late fee amount for reminder 2" description: "The late fee amount for reminder 2"
type: number type: number
format: float
example: 100 example: 100
endless_reminder_frequency_id: endless_reminder_frequency_id:
description: "The frequency id of the endless reminder" description: "The frequency id of the endless reminder"
@ -18601,7 +18619,8 @@ components:
mailgun_endpoint: mailgun_endpoint:
description: "The mailgun endpoint - used to determine whether US or EU endpoints are used" description: "The mailgun endpoint - used to determine whether US or EU endpoints are used"
type: string type: string
example: "api.mailgun.net or api.eu.mailgun.net" enum: ["api.mailgun.net", "api.eu.mailgun.net"]
example: "api.mailgun.net"
client_initiated_payments: client_initiated_payments:
description: "Determines if clients can initiate payments directly from the client portal" description: "Determines if clients can initiate payments directly from the client portal"
type: boolean type: boolean
@ -18609,6 +18628,7 @@ components:
client_initiated_payments_minimum: client_initiated_payments_minimum:
description: "The minimum amount a client can pay" description: "The minimum amount a client can pay"
type: number type: number
format: float
example: 10 example: 10
sync_invoice_quote_columns: sync_invoice_quote_columns:
description: "Determines if invoice and quote columns are synced for the PDF rendering, or if they use their own columns" description: "Determines if invoice and quote columns are synced for the PDF rendering, or if they use their own columns"
@ -18629,6 +18649,7 @@ components:
custom_sending_email: custom_sending_email:
description: "When using Mailgun or Postmark, the FROM email address can be customized using this setting." description: "When using Mailgun or Postmark, the FROM email address can be customized using this setting."
type: string type: string
format: email
example: "bob@gmail.com" example: "bob@gmail.com"
show_paid_stamp: show_paid_stamp:
description: "Determines if the PAID stamp is shown on the invoice" description: "Determines if the PAID stamp is shown on the invoice"
@ -18640,7 +18661,9 @@ components:
example: false example: false
company_logo_size: company_logo_size:
description: "The size of the company logo on the PDF - percentage value between 0 and 100" description: "The size of the company logo on the PDF - percentage value between 0 and 100"
type: number type: integer
minimum: 0
maximum: 100
example: 100 example: 100
show_email_footer: show_email_footer:
description: "Determines if the email footer is shown on emails" description: "Determines if the email footer is shown on emails"
@ -18649,6 +18672,7 @@ components:
email_alignment: email_alignment:
description: "The alignment of the email body text, options include left / center / right" description: "The alignment of the email body text, options include left / center / right"
type: string type: string
enum: [left, center, right]
example: "left" example: "left"
auto_bill_standard_invoices: auto_bill_standard_invoices:
description: "Determines if standard invoices are automatically billed when they are created or due" description: "Determines if standard invoices are automatically billed when they are created or due"
@ -18716,11 +18740,12 @@ components:
example: "PO-000000" example: "PO-000000"
purchase_order_number_counter: purchase_order_number_counter:
description: "The counter for purchase order numbers" description: "The counter for purchase order numbers"
type: number type: integer
example: 1 example: 1
page_numbering_alignment: page_numbering_alignment:
description: "The alignment for page numbering: options include left / center / right" description: "The alignment for page numbering: options include left / center / right"
type: string type: string
enum: [left, center, right]
example: "left" example: "left"
page_numbering: page_numbering:
description: "Determines if page numbering is enabled on Document PDFs" description: "Determines if page numbering is enabled on Document PDFs"
@ -18741,6 +18766,8 @@ components:
entity_send_time: entity_send_time:
description: "The time that emails are sent. The time is localized to the clients locale, integer values from 1 - 24" description: "The time that emails are sent. The time is localized to the clients locale, integer values from 1 - 24"
type: integer type: integer
minimum: 1
maximum: 24
example: 9 example: 9
shared_invoice_credit_counter: shared_invoice_credit_counter:
description: "Determines if the invoice and credit counter are shared" description: "Determines if the invoice and credit counter are shared"
@ -18768,23 +18795,27 @@ components:
example: "R-000000" example: "R-000000"
recurring_invoice_number_counter: recurring_invoice_number_counter:
description: "The counter for recurring invoice numbers" description: "The counter for recurring invoice numbers"
type: number type: integer
example: 1 example: 1
client_portal_under_payment_minimum: client_portal_under_payment_minimum:
description: "The minimum payment payment" description: "The minimum payment payment"
type: number type: number
format: float
example: 10 example: 10
auto_bill_date: auto_bill_date:
description: "Determines when the invoices are auto billed, options are on_send_date (when the invoice is sent) or on_due_date (when the invoice is due))" description: "Determines when the invoices are auto billed"
type: string type: string
enum: [on_send_date, on_due_date]
example: "on_send_date" example: "on_send_date"
primary_color: primary_color:
description: "The primary color for the client portal / document highlights" description: "The primary color for the client portal / document highlights"
type: string type: string
pattern: "^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$"
example: "#ffffff" example: "#ffffff"
secondary_color: secondary_color:
description: "The secondary color for the client portal / document highlights" description: "The secondary color for the client portal / document highlights"
type: string type: string
pattern: "^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$"
example: "#ffffff" example: "#ffffff"
client_portal_allow_under_payment: client_portal_allow_under_payment:
description: "Determines if clients can pay invoices under the invoice amount due" description: "Determines if clients can pay invoices under the invoice amount due"
@ -18795,8 +18826,9 @@ components:
type: boolean type: boolean
example: false example: false
auto_bill: auto_bill:
description: "Determines how autobilling is applied for recurring invoices. off (no auto billed), always (always auto bill), optin (The user must opt in to auto billing), optout (The user must opt out of auto billing" description: "Determines how autobilling is applied for recurring invoices"
type: string type: string
enum: [off, always, optin, optout]
example: "off" example: "off"
client_portal_terms: client_portal_terms:
description: "The terms which are displayed on the client portal" description: "The terms which are displayed on the client portal"
@ -18817,10 +18849,12 @@ components:
late_fee_endless_percent: late_fee_endless_percent:
description: "The late fee percentage for endless late fees" description: "The late fee percentage for endless late fees"
type: number type: number
format: float
example: 10 example: 10
late_fee_endless_amount: late_fee_endless_amount:
description: "The late fee amount for endless late fees" description: "The late fee amount for endless late fees"
type: number type: number
format: float
example: 10 example: 10
auto_email_invoice: auto_email_invoice:
description: "Determines if invoices are automatically emailed when they are created" description: "Determines if invoices are automatically emailed when they are created"
@ -18835,16 +18869,17 @@ components:
type: string type: string
example: "individual" example: "individual"
valid_until: valid_until:
description: 'Default validity period for quotes' description: "Default validity period for quotes"
type: string type: string
example: "30 days"
credit_terms: credit_terms:
description: 'Default terms for credit notes' description: "Default terms for credit notes"
type: string type: string
example: "Credit note terms"
credit_footer: credit_footer:
description: 'Default footer for credit notes' description: "Default footer for credit notes"
type: string type: string
type: object example: "Credit note footer"
Design: Design:
properties: properties:
id: id:

View File

@ -1,11 +1,12 @@
CompanySettings: CompanySettings:
type: object
required: required:
- currency_id - currency_id
properties: properties:
currency_id: currency_id:
description: "The default currency id" description: "The default currency id"
type: string type: string
example: true example: "1"
timezone_id: timezone_id:
description: "The timezone id" description: "The timezone id"
type: string type: string
@ -29,7 +30,7 @@
payment_terms: payment_terms:
description: "-1 sets no payment term, 0 sets payment due immediately, positive integers indicates payment terms in days" description: "-1 sets no payment term, 0 sets payment due immediately, positive integers indicates payment terms in days"
type: integer type: integer
example: "1" example: 1
company_gateway_ids: company_gateway_ids:
description: "A commad separate list of available gateways" description: "A commad separate list of available gateways"
type: string type: string
@ -54,7 +55,7 @@
description: "The default task rate" description: "The default task rate"
type: number type: number
format: float format: float
example: "10.00" example: 10.00
send_reminders: send_reminders:
description: "Toggles whether reminders are sent" description: "Toggles whether reminders are sent"
type: boolean type: boolean
@ -66,11 +67,13 @@
email_style: email_style:
description: "options include plain,light,dark,custom" description: "options include plain,light,dark,custom"
type: string type: string
example: light enum: [plain, light, dark, custom]
example: "light"
reply_to_email: reply_to_email:
description: "The reply to email address" description: "The reply to email address"
type: string type: string
example: email@gmail.com format: email
example: "email@gmail.com"
bcc_email: bcc_email:
description: "A comma separate list of BCC emails" description: "A comma separate list of BCC emails"
type: string type: string
@ -88,13 +91,15 @@
type: string type: string
example: "<HTML></HTML>" example: "<HTML></HTML>"
counter_number_applied: counter_number_applied:
description: "enum when the invoice number counter is set, ie when_saved, when_sent, when_paid" description: "enum when the invoice number counter is set"
type: string type: string
example: when_sent enum: [when_saved, when_sent, when_paid]
example: "when_sent"
quote_number_applied: quote_number_applied:
description: "enum when the quote number counter is set, ie when_saved, when_sent" description: "enum when the quote number counter is set"
type: string type: string
example: when_sent enum: [when_saved, when_sent]
example: "when_sent"
custom_message_dashboard: custom_message_dashboard:
description: "A custom message which is displayed on the dashboard" description: "A custom message which is displayed on the dashboard"
type: string type: string
@ -113,9 +118,9 @@
example: "Please approve quote" example: "Please approve quote"
lock_invoices: lock_invoices:
description: "Toggles whether invoices are locked once sent and cannot be modified further" description: "Toggles whether invoices are locked once sent and cannot be modified further"
type: enum type: string
enum: [off, when_sent, when_paid, end_of_month] enum: [off, when_sent, when_paid, end_of_month]
example: 'off' example: "off"
auto_archive_invoice: auto_archive_invoice:
description: "Toggles whether a invoice is archived immediately following payment" description: "Toggles whether a invoice is archived immediately following payment"
type: boolean type: boolean
@ -135,7 +140,7 @@
translations: translations:
description: "JSON payload of customized translations" description: "JSON payload of customized translations"
type: object type: object
example: "" example: {}
task_number_pattern: task_number_pattern:
description: "Allows customisation of the task number pattern" description: "Allows customisation of the task number pattern"
type: string type: string
@ -143,11 +148,11 @@
task_number_counter: task_number_counter:
description: "The incrementing counter for tasks" description: "The incrementing counter for tasks"
type: integer type: integer
example: "1" example: 1
reminder_send_time: reminder_send_time:
description: "Time from UTC +0 when the email will be sent to the client" description: "Time from UTC +0 when the email will be sent to the client"
type: integer type: integer
example: "32400" example: 32400
expense_number_pattern: expense_number_pattern:
description: "Allows customisation of the expense number pattern" description: "Allows customisation of the expense number pattern"
type: string type: string
@ -155,7 +160,7 @@
expense_number_counter: expense_number_counter:
description: "The incrementing counter for expenses" description: "The incrementing counter for expenses"
type: integer type: integer
example: "1" example: 1
vendor_number_pattern: vendor_number_pattern:
description: "Allows customisation of the vendor number pattern" description: "Allows customisation of the vendor number pattern"
type: string type: string
@ -163,7 +168,7 @@
vendor_number_counter: vendor_number_counter:
description: "The incrementing counter for vendors" description: "The incrementing counter for vendors"
type: integer type: integer
example: "1" example: 1
ticket_number_pattern: ticket_number_pattern:
description: "Allows customisation of the ticket number pattern" description: "Allows customisation of the ticket number pattern"
type: string type: string
@ -171,7 +176,7 @@
ticket_number_counter: ticket_number_counter:
description: "The incrementing counter for tickets" description: "The incrementing counter for tickets"
type: integer type: integer
example: "1" example: 1
payment_number_pattern: payment_number_pattern:
description: "Allows customisation of the payment number pattern" description: "Allows customisation of the payment number pattern"
type: string type: string
@ -179,7 +184,7 @@
payment_number_counter: payment_number_counter:
description: "The incrementing counter for payments" description: "The incrementing counter for payments"
type: integer type: integer
example: "1" example: 1
invoice_number_pattern: invoice_number_pattern:
description: "Allows customisation of the invoice number pattern" description: "Allows customisation of the invoice number pattern"
type: string type: string
@ -187,7 +192,7 @@
invoice_number_counter: invoice_number_counter:
description: "The incrementing counter for invoices" description: "The incrementing counter for invoices"
type: integer type: integer
example: "1" example: 1
quote_number_pattern: quote_number_pattern:
description: "Allows customisation of the quote number pattern" description: "Allows customisation of the quote number pattern"
type: string type: string
@ -195,7 +200,7 @@
quote_number_counter: quote_number_counter:
description: "The incrementing counter for quotes" description: "The incrementing counter for quotes"
type: integer type: integer
example: "1" example: 1
client_number_pattern: client_number_pattern:
description: "Allows customisation of the client number pattern" description: "Allows customisation of the client number pattern"
type: string type: string
@ -203,7 +208,7 @@
client_number_counter: client_number_counter:
description: "The incrementing counter for clients" description: "The incrementing counter for clients"
type: integer type: integer
example: "1" example: 1
credit_number_pattern: credit_number_pattern:
description: "Allows customisation of the credit number pattern" description: "Allows customisation of the credit number pattern"
type: string type: string
@ -211,23 +216,24 @@
credit_number_counter: credit_number_counter:
description: "The incrementing counter for credits" description: "The incrementing counter for credits"
type: integer type: integer
example: "1" example: 1
recurring_invoice_number_prefix: recurring_invoice_number_prefix:
description: "This string is prepended to the recurring invoice number" description: "This string is prepended to the recurring invoice number"
type: string type: string
example: R example: "R"
reset_counter_frequency_id: reset_counter_frequency_id:
description: "CONSTANT which is used to apply the frequency which the counters are reset" description: "CONSTANT which is used to apply the frequency which the counters are reset"
type: integer type: integer
example: "1" example: 1
reset_counter_date: reset_counter_date:
description: "The explicit date which is used to reset counters" description: "The explicit date which is used to reset counters"
type: string type: string
format: date
example: "2019-01-01" example: "2019-01-01"
counter_padding: counter_padding:
description: "Pads the counter with leading zeros" description: "Pads the counter with leading zeros"
type: integer type: integer
example: "1" example: 1
shared_invoice_quote_counter: shared_invoice_quote_counter:
description: "Flags whether to share the counter for invoices and quotes" description: "Flags whether to share the counter for invoices and quotes"
type: boolean type: boolean
@ -254,8 +260,8 @@
example: "Quote Terms are..." example: "Quote Terms are..."
invoice_taxes: invoice_taxes:
description: "The number of Taxes that can be applied to the invoice" description: "The number of Taxes that can be applied to the invoice"
type: number type: integer
example: "1" example: 1
invoice_design_id: invoice_design_id:
description: "The default design id (invoice, quote etc)" description: "The default design id (invoice, quote etc)"
type: string type: string
@ -275,27 +281,30 @@
tax_rate1: tax_rate1:
description: "The tax rate (float)" description: "The tax rate (float)"
type: number type: number
example: "10" format: float
example: 10
tax_name1: tax_name1:
description: "The tax name" description: "The tax name"
type: string type: string
example: GST example: "GST"
tax_rate2: tax_rate2:
description: "The tax rate (float)" description: "The tax rate (float)"
type: number type: number
example: "10" format: float
example: 10
tax_name2: tax_name2:
description: "The tax name" description: "The tax name"
type: string type: string
example: GST example: "GST"
tax_rate3: tax_rate3:
description: "The tax rate (float)" description: "The tax rate (float)"
type: number type: number
example: "10" format: float
example: 10
tax_name3: tax_name3:
description: "The tax name" description: "The tax name"
type: string type: string
example: GST example: "GST"
payment_type_id: payment_type_id:
description: "The default payment type id" description: "The default payment type id"
type: string type: string
@ -309,14 +318,14 @@
type: string type: string
example: "A default email footer" example: "A default email footer"
email_sending_method: email_sending_method:
description: "The email driver to use to send email, options include default, gmail, client_postmark, client_mailgun, client_brevo, office365" description: "The email driver to use to send email"
type: string type: string
enum: [default, gmail, office365, client_postmark, client_mailgun, mailgun, client_brevo] enum: [default, gmail, office365, client_postmark, client_mailgun, mailgun, client_brevo]
example: 'default' example: "default"
gmail_sending_user_id: gmail_sending_user_id:
description: "The hashed_id of the user account to send email from" description: "The hashed_id of the user account to send email from"
type: string type: string
example: F76sd34D example: "F76sd34D"
email_subject_invoice: email_subject_invoice:
description: "" description: ""
type: string type: string
@ -399,12 +408,13 @@
example: "Acme Co" example: "Acme Co"
company_logo: company_logo:
description: "The company logo file" description: "The company logo file"
type: object type: string
example: logo.png example: "logo.png"
website: website:
description: "The company website URL" description: "The company website URL"
type: string type: string
example: www.acme.com format: uri
example: "www.acme.com"
address1: address1:
description: "The company address line 1" description: "The company address line 1"
type: string type: string
@ -416,11 +426,11 @@
city: city:
description: "The company city" description: "The company city"
type: string type: string
example: Sydney example: "Sydney"
state: state:
description: "The company state" description: "The company state"
type: string type: string
example: Florisa example: "Florida"
postal_code: postal_code:
description: "The company zip/postal code" description: "The company zip/postal code"
type: string type: string
@ -428,11 +438,12 @@
phone: phone:
description: "The company phone" description: "The company phone"
type: string type: string
example: 555-213-3948 example: "555-213-3948"
email: email:
description: "The company email" description: "The company email"
type: string type: string
example: joe@acme.co format: email
example: "joe@acme.co"
country_id: country_id:
description: "The country ID" description: "The country ID"
type: string type: string
@ -444,19 +455,19 @@
page_size: page_size:
description: "The default page size" description: "The default page size"
type: string type: string
example: A4 example: "A4"
font_size: font_size:
description: "The font size" description: "The font size"
type: number type: number
example: "9" example: 9
primary_font: primary_font:
description: "The primary font" description: "The primary font"
type: string type: string
example: roboto example: "roboto"
secondary_font: secondary_font:
description: "The secondary font" description: "The secondary font"
type: string type: string
example: roboto example: "roboto"
hide_paid_to_date: hide_paid_to_date:
description: "Flags whether to hide the paid to date field" description: "Flags whether to hide the paid to date field"
type: boolean type: boolean
@ -547,39 +558,45 @@
example: false example: false
num_days_reminder1: num_days_reminder1:
description: "The Reminder interval" description: "The Reminder interval"
type: number type: integer
example: "9" example: 9
num_days_reminder2: num_days_reminder2:
description: "The Reminder interval" description: "The Reminder interval"
type: number type: integer
example: "9" example: 9
num_days_reminder3: num_days_reminder3:
description: "The Reminder interval" description: "The Reminder interval"
type: number type: integer
example: "9" example: 9
schedule_reminder1: schedule_reminder1:
description: "(enum: after_invoice_date, before_due_date, after_due_date)" description: "(enum: after_invoice_date, before_due_date, after_due_date)"
type: string type: string
example: after_invoice_date enum: [after_invoice_date, before_due_date, after_due_date]
example: "after_invoice_date"
schedule_reminder2: schedule_reminder2:
description: "(enum: after_invoice_date, before_due_date, after_due_date)" description: "(enum: after_invoice_date, before_due_date, after_due_date)"
type: string type: string
example: after_invoice_date enum: [after_invoice_date, before_due_date, after_due_date]
example: "after_invoice_date"
schedule_reminder3: schedule_reminder3:
description: "(enum: after_invoice_date, before_due_date, after_due_date)" description: "(enum: after_invoice_date, before_due_date, after_due_date)"
type: string type: string
example: after_invoice_date enum: [after_invoice_date, before_due_date, after_due_date]
example: "after_invoice_date"
late_fee_amount1: late_fee_amount1:
description: "The late fee amount for reminder 1" description: "The late fee amount for reminder 1"
type: number type: number
format: float
example: 10 example: 10
late_fee_amount2: late_fee_amount2:
description: "The late fee amount for reminder 2" description: "The late fee amount for reminder 2"
type: number type: number
format: float
example: 20 example: 20
late_fee_amount3: late_fee_amount3:
description: "The late fee amount for reminder 2" description: "The late fee amount for reminder 2"
type: number type: number
format: float
example: 100 example: 100
endless_reminder_frequency_id: endless_reminder_frequency_id:
description: "The frequency id of the endless reminder" description: "The frequency id of the endless reminder"
@ -608,7 +625,8 @@
mailgun_endpoint: mailgun_endpoint:
description: "The mailgun endpoint - used to determine whether US or EU endpoints are used" description: "The mailgun endpoint - used to determine whether US or EU endpoints are used"
type: string type: string
example: "api.mailgun.net or api.eu.mailgun.net" enum: ["api.mailgun.net", "api.eu.mailgun.net"]
example: "api.mailgun.net"
client_initiated_payments: client_initiated_payments:
description: "Determines if clients can initiate payments directly from the client portal" description: "Determines if clients can initiate payments directly from the client portal"
type: boolean type: boolean
@ -616,6 +634,7 @@
client_initiated_payments_minimum: client_initiated_payments_minimum:
description: "The minimum amount a client can pay" description: "The minimum amount a client can pay"
type: number type: number
format: float
example: 10 example: 10
sync_invoice_quote_columns: sync_invoice_quote_columns:
description: "Determines if invoice and quote columns are synced for the PDF rendering, or if they use their own columns" description: "Determines if invoice and quote columns are synced for the PDF rendering, or if they use their own columns"
@ -636,6 +655,7 @@
custom_sending_email: custom_sending_email:
description: "When using Mailgun or Postmark, the FROM email address can be customized using this setting." description: "When using Mailgun or Postmark, the FROM email address can be customized using this setting."
type: string type: string
format: email
example: "bob@gmail.com" example: "bob@gmail.com"
show_paid_stamp: show_paid_stamp:
description: "Determines if the PAID stamp is shown on the invoice" description: "Determines if the PAID stamp is shown on the invoice"
@ -647,7 +667,9 @@
example: false example: false
company_logo_size: company_logo_size:
description: "The size of the company logo on the PDF - percentage value between 0 and 100" description: "The size of the company logo on the PDF - percentage value between 0 and 100"
type: number type: integer
minimum: 0
maximum: 100
example: 100 example: 100
show_email_footer: show_email_footer:
description: "Determines if the email footer is shown on emails" description: "Determines if the email footer is shown on emails"
@ -656,6 +678,7 @@
email_alignment: email_alignment:
description: "The alignment of the email body text, options include left / center / right" description: "The alignment of the email body text, options include left / center / right"
type: string type: string
enum: [left, center, right]
example: "left" example: "left"
auto_bill_standard_invoices: auto_bill_standard_invoices:
description: "Determines if standard invoices are automatically billed when they are created or due" description: "Determines if standard invoices are automatically billed when they are created or due"
@ -723,11 +746,12 @@
example: "PO-000000" example: "PO-000000"
purchase_order_number_counter: purchase_order_number_counter:
description: "The counter for purchase order numbers" description: "The counter for purchase order numbers"
type: number type: integer
example: 1 example: 1
page_numbering_alignment: page_numbering_alignment:
description: "The alignment for page numbering: options include left / center / right" description: "The alignment for page numbering: options include left / center / right"
type: string type: string
enum: [left, center, right]
example: "left" example: "left"
page_numbering: page_numbering:
description: "Determines if page numbering is enabled on Document PDFs" description: "Determines if page numbering is enabled on Document PDFs"
@ -748,6 +772,8 @@
entity_send_time: entity_send_time:
description: "The time that emails are sent. The time is localized to the clients locale, integer values from 1 - 24" description: "The time that emails are sent. The time is localized to the clients locale, integer values from 1 - 24"
type: integer type: integer
minimum: 1
maximum: 24
example: 9 example: 9
shared_invoice_credit_counter: shared_invoice_credit_counter:
description: "Determines if the invoice and credit counter are shared" description: "Determines if the invoice and credit counter are shared"
@ -775,23 +801,27 @@
example: "R-000000" example: "R-000000"
recurring_invoice_number_counter: recurring_invoice_number_counter:
description: "The counter for recurring invoice numbers" description: "The counter for recurring invoice numbers"
type: number type: integer
example: 1 example: 1
client_portal_under_payment_minimum: client_portal_under_payment_minimum:
description: "The minimum payment payment" description: "The minimum payment payment"
type: number type: number
format: float
example: 10 example: 10
auto_bill_date: auto_bill_date:
description: "Determines when the invoices are auto billed, options are on_send_date (when the invoice is sent) or on_due_date (when the invoice is due))" description: "Determines when the invoices are auto billed"
type: string type: string
enum: [on_send_date, on_due_date]
example: "on_send_date" example: "on_send_date"
primary_color: primary_color:
description: "The primary color for the client portal / document highlights" description: "The primary color for the client portal / document highlights"
type: string type: string
pattern: "^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$"
example: "#ffffff" example: "#ffffff"
secondary_color: secondary_color:
description: "The secondary color for the client portal / document highlights" description: "The secondary color for the client portal / document highlights"
type: string type: string
pattern: "^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$"
example: "#ffffff" example: "#ffffff"
client_portal_allow_under_payment: client_portal_allow_under_payment:
description: "Determines if clients can pay invoices under the invoice amount due" description: "Determines if clients can pay invoices under the invoice amount due"
@ -802,8 +832,9 @@
type: boolean type: boolean
example: false example: false
auto_bill: auto_bill:
description: "Determines how autobilling is applied for recurring invoices. off (no auto billed), always (always auto bill), optin (The user must opt in to auto billing), optout (The user must opt out of auto billing" description: "Determines how autobilling is applied for recurring invoices"
type: string type: string
enum: [off, always, optin, optout]
example: "off" example: "off"
client_portal_terms: client_portal_terms:
description: "The terms which are displayed on the client portal" description: "The terms which are displayed on the client portal"
@ -824,10 +855,12 @@
late_fee_endless_percent: late_fee_endless_percent:
description: "The late fee percentage for endless late fees" description: "The late fee percentage for endless late fees"
type: number type: number
format: float
example: 10 example: 10
late_fee_endless_amount: late_fee_endless_amount:
description: "The late fee amount for endless late fees" description: "The late fee amount for endless late fees"
type: number type: number
format: float
example: 10 example: 10
auto_email_invoice: auto_email_invoice:
description: "Determines if invoices are automatically emailed when they are created" description: "Determines if invoices are automatically emailed when they are created"
@ -842,12 +875,14 @@
type: string type: string
example: "individual" example: "individual"
valid_until: valid_until:
description: 'Default validity period for quotes' description: "Default validity period for quotes"
type: string type: string
example: "30 days"
credit_terms: credit_terms:
description: 'Default terms for credit notes' description: "Default terms for credit notes"
type: string type: string
example: "Credit note terms"
credit_footer: credit_footer:
description: 'Default footer for credit notes' description: "Default footer for credit notes"
type: string type: string
type: object example: "Credit note footer"

View File

@ -1,4 +1,4 @@
openapi: 3.0.0 openapi: 3.0.1
info: info:
title: 'Invoice Ninja API Reference.' title: 'Invoice Ninja API Reference.'
description: | description: |
@ -71,7 +71,8 @@ info:
license: license:
name: 'Elastic License' name: 'Elastic License'
url: 'https://www.elastic.co/licensing/elastic-license' url: 'https://www.elastic.co/licensing/elastic-license'
version: 5.10.31 version: 5.10.53
servers: servers:
- url: 'https://demo.invoiceninja.com' - url: 'https://demo.invoiceninja.com'
description: | description: |