openapi: 3.0.0 info: title: 'Invoice Ninja API Reference - Where self host invoicing lives.' description: | ---
The Invoice Ninja API is organized around REST and returns JSON-encoded responses, and uses standard HTTP response codes, authentication, and verbs.

termsOfService: 'https://invoiceninja.github.io/docs/legal/terms_of_service/#page-content' contact: email: contact@invoiceninja.com license: name: 'Elastic License' url: 'https://www.elastic.co/licensing/elastic-license' version: 5.5.70 servers: - url: 'https://demo.invoiceninja.com' description: | ## Demo API Server InvoiceNinja. You can use the demo API key `TOKEN` to test the endpoints from within this API spec paths: /api/v1/activities: get: tags: - actvities summary: "Returns a list of actvities" description: "Lists all activities related to this company" operationId: getActivities parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/activity_include" - $ref: "#/components/parameters/index" - $ref: "#/components/parameters/per_page_meta" - $ref: "#/components/parameters/page_meta" responses: 200: description: "Returns the list of activities" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/Activity' meta: type: object $ref: '#/components/schemas/Meta' 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" "/api/v1/actvities/download_entity/{activity_id}": get: tags: - actvities summary: "Returns a PDF for the given activity" description: "Returns a PDF for the given activity" operationId: getActivityHistoricalEntityPdf parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/activity_include" - name: activity_id in: path description: "The Activity Hashed ID" required: true schema: type: string format: string example: D2J234DFA responses: 200: description: "PDF File" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" 404: description: "No file exists for the given record" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" /api/v1/login: post: tags: - login summary: "Attempts authentication" description: "Returns a CompanyUser object on success" operationId: postLogin security: - [] parameters: - $ref: "#/components/parameters/X-API-SECRET" - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/login_include" - $ref: "#/components/parameters/include_static" - $ref: "#/components/parameters/clear_cache" requestBody: description: "User credentials" required: true content: application/json: schema: properties: email: description: "The users email address." type: string example: "demo@invoiceninja.com" password: description: "The user password. Must meet minimum criteria ~ > 6 characters" type: string example: "Password0" type: object responses: 200: description: "Returns the company user object" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/Client" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" 5XX: $ref: "#/components/responses/5XX" default: $ref: "#/components/responses/default" /api/v1/refresh: post: tags: - refresh summary: "Refresh data by timestamp" description: | Refreshes the dataset. This endpoint can be used if you only need to access the most recent data from a certain point in time. operationId: refresh parameters: - name: updated_at in: query description: "The unix timestamp from which the refreshed data should be sent from, if no value is passed the system will assume you require all data." required: true schema: type: number format: integer example: 1676173763 - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" - $ref: "#/components/parameters/include_static" - $ref: "#/components/parameters/clear_cache" responses: 200: description: "The Company User response" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/CompanyUser" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" /api/v1/yodlee/refresh: post: tags: - yodlee summary: "Yodlee Webhook" description: "Webhook endpoint for Yodlee. Used to notify the system that a data point can be updated." operationId: yodleeRefreshWebhook parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" responses: 200: description: "" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/Credit" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" /api/v1/bank_integrations: get: tags: - bank_integrations summary: "Returns a list of Bank Integrations" description: "Lists all bank integrations" operationId: getBankIntegrations parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/bank_integration_include" - $ref: "#/components/parameters/index" - name: rows in: query description: "The number of bank integrations to return" required: false schema: type: number format: integer example: "50" responses: 200: description: "A list of bank integrations" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/BankIntegration' meta: type: object $ref: '#/components/schemas/Meta' 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" post: tags: - bank_integrations summary: "Adds a bank_integration" description: "Adds an bank_integration to a company" operationId: storeBankIntegration parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" responses: 200: description: "Returns the saved bank_integration object" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/BankIntegration" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" "/api/v1/bank_integrations/{id}": get: tags: - bank_integrations summary: "Shows a bank_integration" description: "Displays a bank_integration by id" operationId: showBankIntegration parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" - name: id in: path description: "The BankIntegration Hashed ID" required: true schema: type: string format: string example: D2J234DFA responses: 200: description: "Returns the bank_integration object" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/BankIntegration" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" put: tags: - bank_integrations summary: "Updates a bank_integration" description: "Handles the updating of a bank_integration by id" operationId: updateBankIntegration parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" - name: id in: path description: "The BankIntegration Hashed ID" required: true schema: type: string format: string example: D2J234DFA responses: 200: description: "Returns the bank_integration object" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/BankIntegration" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" delete: tags: - bank_integrations summary: "Deletes a bank_integration" description: "Handles the deletion of a bank_integration by id" operationId: deleteBankIntegration parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" - name: id in: path description: "The BankIntegration Hashed ID" required: true schema: type: string format: string example: D2J234DFA responses: 200: description: "Returns a HTTP status" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" "/api/v1/bank_integrations/{id}/edit": get: tags: - bank_integrations summary: "Shows a bank_integration for editing" description: "Displays a bank_integration by id" operationId: editBankIntegration parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" - name: id in: path description: "The BankIntegration Hashed ID" required: true schema: type: string format: string example: D2J234DFA responses: 200: description: "Returns the bank_integration object" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/BankIntegration" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" /api/v1/bank_integrations/create: get: tags: - bank_integrations summary: "Gets a new blank bank_integration object" description: "Returns a blank object with default values" operationId: getBankIntegrationsCreate parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" responses: 200: description: "A blank bank_integration object" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/BankIntegration" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" /api/v1/bank_integrations/bulk: post: tags: - bank_integrations summary: "Performs bulk actions on an array of bank_integrations" description: "" operationId: bulkBankIntegrations parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/index" requestBody: description: "Action paramters" required: true content: application/json: schema: type: array items: description: "Array of hashed IDs to be bulk 'actioned" type: integer example: "[0,1,2,3]" responses: 200: description: "The Bulk Action response" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" /api/v1/bank_integrations/refresh_accounts: post: tags: - bank_integrations summary: "Gets the list of accounts from the remote server" description: "Adds an bank_integration to a company" operationId: getRefreshAccounts parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" responses: 200: description: "Returns the saved bank_integration object" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/BankIntegration" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" /api/v1/bank_integrations/remove_account/account_id: post: tags: - bank_integrations summary: "Removes an account from the integration" description: "Removes an account from the integration" operationId: getRemoveAccount parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" responses: 200: description: "Returns the bank_integration object" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/BankIntegration" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" /api/v1/bank_integrations/get_transactions/account_id: post: tags: - bank_integrations summary: "Retrieve transactions for a account" description: "Retrieve transactions for a account" operationId: getAccountTransactions parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" responses: 200: description: "Retrieve transactions for a account" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/BankIntegration" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" /api/v1/bank_transactions: get: tags: - bank_transactions summary: "Gets a list of bank_transactions" description: "Lists all bank integrations" operationId: getBankTransactions parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" - $ref: "#/components/parameters/index" - name: rows in: query description: "The number of bank integrations to return" required: false schema: type: number format: integer example: "50" responses: 200: description: "A list of bank integrations" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/BankTransaction' meta: type: object $ref: '#/components/schemas/Meta' 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" post: tags: - bank_transactions summary: "Adds a bank_transaction" description: "Adds an bank_transaction to a company" operationId: storeBankTransaction parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" responses: 200: description: "Returns the saved bank_transaction object" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/BankTransaction" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" "/api/v1/bank_transactions/{id}": get: tags: - bank_transactions summary: "Shows a bank_transaction" description: "Displays a bank_transaction by id" operationId: showBankTransaction parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" - name: id in: path description: "The BankTransaction Hashed ID" required: true schema: type: string format: string example: D2J234DFA responses: 200: description: "Returns the bank_transaction object" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/BankTransaction" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" put: tags: - bank_transactions summary: "Updates a bank_transaction" description: "Handles the updating of a bank_transaction by id" operationId: updateBankTransaction parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" - name: id in: path description: "The BankTransaction Hashed ID" required: true schema: type: string format: string example: D2J234DFA responses: 200: description: "Returns the bank_transaction object" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/BankTransaction" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" delete: tags: - bank_transactions summary: "Deletes a bank_transaction" description: "Handles the deletion of a bank_transaction by id" operationId: deleteBankTransaction parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" - name: id in: path description: "The BankTransaction Hashed ID" required: true schema: type: string format: string example: D2J234DFA responses: 200: description: "Returns a HTTP status" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" "/api/v1/bank_transactions/{id}/edit": get: tags: - bank_transactions summary: "Shows a bank_transaction for editing" description: "Displays a bank_transaction by id" operationId: editBankTransaction parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" - name: id in: path description: "The BankTransaction Hashed ID" required: true schema: type: string format: string example: D2J234DFA responses: 200: description: "Returns the bank_transaction object" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/BankTransaction" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" /api/v1/bank_transactions/create: get: tags: - bank_transactions summary: "Gets a new blank bank_transaction object" description: "Returns a blank object with default values" operationId: getBankTransactionsCreate parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" responses: 200: description: "A blank bank_transaction object" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/BankTransaction" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" /api/v1/bank_transations/bulk: post: tags: - bank_transactions summary: "Performs bulk actions on an array of bank_transations" description: "" operationId: bulkBankTransactions parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/index" requestBody: description: "Action paramters" required: true content: application/json: schema: type: array items: description: "Array of hashed IDs to be bulk 'actioned" type: integer example: "[0,1,2,3]" responses: 200: description: "The Bulk Action response" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" /api/v1/bank_transations/match: post: tags: - bank_transactions summary: "Performs match actions on an array of bank_transactions" description: "" operationId: matchBankTransactions parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/index" requestBody: description: "Action paramters" required: true content: application/json: schema: type: array items: description: "Array of hashed IDs to be bulk 'actioned" type: integer example: "[0,1,2,3]" responses: 200: description: "The Bulk Action response" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" /api/v1/bank_transaction_rules: get: tags: - bank_transaction_rules summary: "Gets a list of bank_transaction_rules" description: "Lists all bank transaction rules" operationId: getBankTransactionRules parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" - $ref: "#/components/parameters/index" - name: rows in: query description: "The number of bank integrations to return" required: false schema: type: number format: integer example: "50" responses: 200: description: "A list of bank integrations" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/BankTransactionRule' meta: type: object $ref: '#/components/schemas/Meta' 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" post: tags: - bank_transaction_rules summary: "Adds a bank_transaction rule" description: "Adds an bank_transaction to a company" operationId: storeBankTransactionRule parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" responses: 200: description: "Returns the saved bank_transaction rule object" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/BankTransactionRule" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" "/api/v1/bank_transaction_rules/{id}": get: tags: - bank_transaction_rules summary: "Shows a bank_transaction" description: "Displays a bank_transaction by id" operationId: showBankTransactionRule parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" - name: id in: path description: "The Bank Transaction RuleHashed ID" required: true schema: type: string format: string example: D2J234DFA responses: 200: description: "Returns the bank_transaction rule object" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/BankTransactionRule" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" put: tags: - bank_transaction_rules summary: "Updates a bank_transaction Rule" description: "Handles the updating of a bank_transaction rule by id" operationId: updateBankTransactionRule parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" - name: id in: path description: "The Bank Transaction Rule Hashed ID" required: true schema: type: string format: string example: D2J234DFA responses: 200: description: "Returns the bank_transaction rule object" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/BankTransactionRule" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" delete: tags: - bank_transaction_rules summary: "Deletes a bank_transaction rule" description: "Handles the deletion of a bank_transaction rule by id" operationId: deleteBankTransactionRule parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" - name: id in: path description: "The Bank Transaction Rule Hashed ID" required: true schema: type: string format: string example: D2J234DFA responses: 200: description: "Returns a HTTP status" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" "/api/v1/bank_transaction_rules/{id}/edit": get: tags: - bank_transaction_rules summary: "Shows a bank_transaction for editing" description: "Displays a bank_transaction by id" operationId: editBankTransactionRule parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" - name: id in: path description: "The Bank Transaction Rule Hashed ID" required: true schema: type: string format: string example: D2J234DFA responses: 200: description: "Returns the bank_transaction rule object" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/BankTransactionRule" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" /api/v1/bank_transaction_rules/create: get: tags: - bank_transaction_rules summary: "Gets a new blank bank_transaction rule object" description: "Returns a blank object with default values" operationId: getBankTransactionRulesCreate parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" responses: 200: description: "A blank bank_transaction rule object" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/BankTransactionRule" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" /api/v1/bank_transation_rules/bulk: post: tags: - bank_transaction_rules summary: "Performs bulk actions on an array of bank_transation rules" description: "" operationId: bulkBankTransactionRules parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/index" requestBody: description: "Action paramters" required: true content: application/json: schema: type: array items: description: "Array of hashed IDs to be bulk 'actioned" type: integer example: "[0,1,2,3]" responses: 200: description: "The Bulk Action response" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" /api/v1/charts/totals: post: tags: - charts summary: "Get chart data" description: "Get chart data" operationId: getChartTotals parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" - $ref: "#/components/parameters/index" - name: rows in: query description: "The chart" required: false schema: type: number format: integer example: "50" responses: 200: description: "json dataset of chart data" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" /api/v1/client_gateway_tokens: get: tags: - client_gateway_tokens summary: "List of client tokens" description: "Lists client_gateway_tokens, search and filters allow fine grained lists to be generated.\n\n Query parameters can be added to performed more fine grained filtering of the client_gateway_tokens, these are handled by the ClientGatewayTokenFilters class which defines the methods available" operationId: getClientGatewayTokens parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" - $ref: "#/components/parameters/index" responses: 200: description: "A list of client_gateway_tokens" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/ClientGatewayToken' meta: type: object $ref: '#/components/schemas/Meta' 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" post: tags: - client_gateway_tokens summary: "Adds a client" description: "Adds an client to a company" operationId: storeClientGatewayToken parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" responses: 200: description: "Returns the saved client object" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/ClientGatewayToken" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" "/api/v1/client_gateway_tokens/{id}": get: tags: - client_gateway_tokens summary: "Shows a client" description: "Displays a client by id" operationId: showClientGatewayToken parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" - name: id in: path description: "The ClientGatewayToken Hashed ID" required: true schema: type: string format: string example: D2J234DFA responses: 200: description: "Returns the cl.ient object" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/ClientGatewayToken" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" put: tags: - client_gateway_tokens summary: "Updates a client" description: "Handles the updating of a client by id" operationId: updateClientGatewayToken parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" - name: id in: path description: "The ClientGatewayToken Hashed ID" required: true schema: type: string format: string example: D2J234DFA responses: 200: description: "Returns the client object" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/ClientGatewayToken" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" delete: tags: - client_gateway_tokens summary: "Deletes a client" description: "Handles the deletion of a client by id" operationId: deleteClientGatewayToken parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" - name: id in: path description: "The ClientGatewayToken Hashed ID" required: true schema: type: string format: string example: D2J234DFA responses: 200: description: "Returns a HTTP status" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" "/api/v1/client_gateway_tokens/{id}/edit": get: tags: - client_gateway_tokens summary: "Shows a client for editting" description: "Displays a client by id" operationId: editClientGatewayToken parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" - name: id in: path description: "The ClientGatewayToken Hashed ID" required: true schema: type: string format: string example: D2J234DFA responses: 200: description: "Returns the client object" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/ClientGatewayToken" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" /api/v1/client_gateway_tokens/create: get: tags: - client_gateway_tokens summary: "Gets a new blank client object" description: "Returns a blank object with default values" operationId: getClientGatewayTokensCreate parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" responses: 200: description: "A blank client object" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/ClientGatewayToken" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" /api/v1/companies: get: tags: - companies summary: "Gets a list of companies" description: "Lists companies, search and filters allow fine grained lists to be generated.\n\n Query parameters can be added to performed more fine grained filtering of the companies, these are handled by the CompanyFilters class which defines the methods available" operationId: getCompanies parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" responses: 200: description: "A list of companies" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/Company' meta: type: object $ref: '#/components/schemas/Meta' 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" post: tags: - companies summary: "Adds a company" description: "Adds an company to the system" operationId: storeCompany parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" responses: 200: description: "Returns the saved company object" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/Company" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" /api/v1/companies/create: get: tags: - companies summary: "Gets a new blank company object" description: "Returns a blank object with default values" operationId: getCompaniesCreate parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" responses: 200: description: "A blank company object" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/Company" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" "/api/v1/companies/{id}": get: tags: - companies summary: "Shows an company" description: "Displays an company by id" operationId: showCompany parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" - name: id in: path description: "The Company Hashed ID" required: true schema: type: string format: string example: D2J234DFA responses: 200: description: "Returns the company object" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/Company" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" put: tags: - companies summary: "Updates an company" description: "Handles the updating of an company by id" operationId: updateCompany parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" - name: id in: path description: "The Company Hashed ID" required: true schema: type: string format: string example: D2J234DFA responses: 200: description: "Returns the company object" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/Company" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" delete: tags: - companies summary: "Deletes a company" description: "Handles the deletion of an company by id" operationId: deleteCompany parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" - name: id in: path description: "The Company Hashed ID" required: true schema: type: string format: string example: D2J234DFA responses: 200: description: "Returns a HTTP status" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" "/api/v1/companies/{id}/edit": get: tags: - companies summary: "Shows an company for editting" description: "Displays an company by id" operationId: editCompany parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" - name: id in: path description: "The Company Hashed ID" required: true schema: type: string format: string example: D2J234DFA responses: 200: description: "Returns the company object" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/Company" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" "/api/v1/companies/{id}/upload": put: tags: - companies summary: "Uploads a document to a company" description: "Handles the uploading of a document to a company" operationId: uploadCompanies parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" - name: id in: path description: "The Company Hashed ID" required: true schema: type: string format: string example: D2J234DFA responses: 200: description: "Returns the client object" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/Company" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" "/api/v1/companies/{company}/default": post: tags: - companies summary: "Sets the company as the default company." description: "Sets the company as the default company." operationId: setDefaultCompany parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" - name: company in: path description: "The Company Hashed ID" required: true schema: type: string format: string example: D2J234DFA responses: 200: description: "Returns the company object" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/Company" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" /api/v1/company_gateways: get: tags: - company_gateways summary: "Gets a list of company_gateways" description: "Lists company_gateways, search and filters allow fine grained lists to be generated.\n\n Query parameters can be added to performed more fine grained filtering of the company_gateways, these are handled by the CompanyGatewayFilters class which defines the methods available" operationId: getCompanyGateways parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" responses: 200: description: "A list of company_gateways" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/CompanyGateway' meta: type: object $ref: '#/components/schemas/Meta' 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" post: tags: - company_gateways summary: "Adds a CompanyGateway" description: "Adds an CompanyGateway to the system" operationId: storeCompanyGateway parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" responses: 200: description: "Returns the saved CompanyGateway object" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/CompanyGateway" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" /api/v1/company_gateways/create: get: tags: - company_gateways summary: "Gets a new blank CompanyGateway object" description: "Returns a blank object with default values" operationId: getCompanyGatewaysCreate parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" responses: 200: description: "A blank CompanyGateway object" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/CompanyGateway" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" "/api/v1/company_gateways/{id}": get: tags: - company_gateways summary: "Shows an CompanyGateway" description: "Displays an CompanyGateway by id" operationId: showCompanyGateway parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" - name: id in: path description: "The CompanyGateway Hashed ID" required: true schema: type: string format: string example: D2J234DFA responses: 200: description: "Returns the CompanyGateway object" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/CompanyGateway" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" put: tags: - company_gateways summary: "Updates an CompanyGateway" description: "Handles the updating of an CompanyGateway by id" operationId: updateCompanyGateway parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" - name: id in: path description: "The CompanyGateway Hashed ID" required: true schema: type: string format: string example: D2J234DFA responses: 200: description: "Returns the CompanyGateway object" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/CompanyGateway" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" delete: tags: - company_gateways summary: "Deletes a CompanyGateway" description: "Handles the deletion of an CompanyGateway by id" operationId: deleteCompanyGateway parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" - name: id in: path description: "The CompanyGateway Hashed ID" required: true schema: type: string format: string example: D2J234DFA responses: 200: description: "Returns a HTTP status" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" "/api/v1/company_gateways/{id}/edit": get: tags: - company_gateways summary: "Shows an CompanyGateway for editting" description: "Displays an CompanyGateway by id" operationId: editCompanyGateway parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" - name: id in: path description: "The CompanyGateway Hashed ID" required: true schema: type: string format: string example: D2J234DFA responses: 200: description: "Returns the CompanyGateway object" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/CompanyGateway" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" /api/v1/company_gateways/bulk: post: tags: - company_gateways summary: "Performs bulk actions on an array of company_gateways" description: "" operationId: bulkCompanyGateways parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/index" requestBody: description: "Array of company gateway IDs" required: true content: application/json: schema: type: array items: description: "Array of hashed IDs to be bulk 'actioned" type: integer example: "[0,1,2,3]" responses: 200: description: "The Company Gateways response" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/CompanyGateway" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" /api/v1/company_ledger: get: tags: - company_ledger summary: "Gets a list of company_ledger" description: "Lists the company_ledger." operationId: getCompanyLedger parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" responses: 200: description: "A list of company_ledger" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/CompanyLedger' meta: type: object $ref: '#/components/schemas/Meta' 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" /api/v1/company_users: post: tags: - company_user summary: "Update a company user record" description: "Attempts to update a company user record. A company user can modify only their settings fields. Full access for Admin users" operationId: updateCompanyUser parameters: - $ref: "#/components/parameters/X-Requested-With" responses: 200: description: "The Company User response" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/CompanyUser" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" /api/v1/connected_account: post: tags: - connected_account summary: "Connect an oauth user to an existing user" description: "Refreshes the dataset" operationId: connected_account parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" - $ref: "#/components/parameters/include_static" - $ref: "#/components/parameters/clear_cache" responses: 200: description: "The Company User response" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/User" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" /api/v1/designs: get: tags: - designs summary: "Gets a list of designs" description: "Lists designs" operationId: getDesigns parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" - $ref: "#/components/parameters/index" responses: 200: description: "A list of designs" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/Design' meta: type: object $ref: '#/components/schemas/Meta' 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" post: tags: - designs summary: "Adds a design" description: "Adds an design to a company" operationId: storeDesign parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" responses: 200: description: "Returns the saved design object" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/Design" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" "/api/v1/designs/{id}": get: tags: - designs summary: "Shows a design" description: "Displays a design by id" operationId: showDesign parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" - name: id in: path description: "The Design Hashed ID" required: true schema: type: string format: string example: D2J234DFA responses: 200: description: "Returns the expense object" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/Design" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" put: tags: - designs summary: "Updates a design" description: "Handles the updating of a design by id" operationId: updateDesign parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" - name: id in: path description: "The Design Hashed ID" required: true schema: type: string format: string example: D2J234DFA responses: 200: description: "Returns the design object" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/Design" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" delete: tags: - designs summary: "Deletes a design" description: "Handles the deletion of a design by id" operationId: deleteDesign parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" - name: id in: path description: "The Design Hashed ID" required: true schema: type: string format: string example: D2J234DFA responses: 200: description: "Returns a HTTP status" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" "/api/v1/designs/{id}/edit": get: tags: - designs summary: "Shows a design for editting" description: "Displays a design by id" operationId: editDesign parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" - name: id in: path description: "The Design Hashed ID" required: true schema: type: string format: string example: D2J234DFA responses: 200: description: "Returns the design object" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/Design" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" /api/v1/designs/create: get: tags: - designs summary: "Gets a new blank design object" description: "Returns a blank object with default values" operationId: getDesignsCreate parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" responses: 200: description: "A blank design object" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/Design" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" /api/v1/designs/bulk: post: tags: - designs summary: "Performs bulk actions on an array of designs" description: "" operationId: bulkDesigns parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/index" requestBody: description: "User credentials" required: true content: application/json: schema: type: array items: description: "Array of hashed IDs to be bulk 'actioned" type: integer example: "[0,1,2,3]" responses: 200: description: "The Design User response" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/Design" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" /api/v1/documents: get: tags: - documents summary: "Gets a list of documents" description: "Lists documents, search and filters allow fine grained lists to be generated.\n\n Query parameters can be added to performed more fine grained filtering of the documents, these are handled by the DocumentsFilters class which defines the methods available" operationId: getDocuments parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" - $ref: "#/components/parameters/index" responses: 200: description: "A list of documents" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/Document' meta: type: object $ref: '#/components/schemas/Meta' 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" /api/v1/emails: post: tags: - emails summary: "Sends an email for an entity" description: "Sends an email for an entity" operationId: sendEmailTemplate parameters: - $ref: "#/components/parameters/X-Requested-With" requestBody: description: "Required fields to send an email" required: true content: application/json: schema: required: - entity - entity_id - template properties: subject: description: "The email subject" type: string body: description: "The email body" type: string entity: description: "The entity name" type: string entity_id: description: "The entity_id" type: string cc_email: description: "The email address of a user to be CC'd on the email" type: string template: description: "The template required" type: string example: invoice,quote,credit,purchase_order,payment,payment_partial,reminder1,reminder2,reminder3,reminder_endless type: object responses: 200: description: success headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/Template" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" /api/v1/expense_categories: get: tags: - expense_categories summary: "Gets a list of expense_categories" description: "Lists tax rates" operationId: getExpenseCategorys parameters: - $ref: "#/components/parameters/index" responses: 200: description: "A list of expense_categories" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/ExpenseCategory' meta: type: object $ref: '#/components/schemas/Meta' 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" post: tags: - expense_categories summary: "Adds a expense category" description: "Adds an expense category to the system" operationId: storeExpenseCategory parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" responses: 200: description: "Returns the saved invoice object" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/ExpenseCategory" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" /api/v1/expense_categories/create: get: tags: - expense_categories summary: "Gets a new blank Expens Category object" description: "Returns a blank object with default values" operationId: getExpenseCategoryCreate parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" responses: 200: description: "A blank Expens Category object" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/ExpenseCategory" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" "/api/v1/expense_categories/{id}": get: tags: - expense_categories summary: "Shows a Expens Category" description: "Displays an ExpenseCategory by id" operationId: showExpenseCategory parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - name: id in: path description: "The ExpenseCategory Hashed ID" required: true schema: type: string format: string example: D2J234DFA responses: 200: description: "Returns the Expens Category object" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/ExpenseCategory" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" put: tags: - expense_categories summary: "Updates a tax rate" description: "Handles the updating of a tax rate by id" operationId: updateExpenseCategory parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - name: id in: path description: "The ExpenseCategory Hashed ID" required: true schema: type: string format: string example: D2J234DFA responses: 200: description: "Returns the ExpenseCategory object" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/ExpenseCategory" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" delete: tags: - expense_categories summary: "Deletes a ExpenseCategory" description: "Handles the deletion of an ExpenseCategory by id" operationId: deleteExpenseCategory parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - name: id in: path description: "The ExpenseCategory Hashed ID" required: true schema: type: string format: string example: D2J234DFA responses: 200: description: "Returns a HTTP status" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" "/api/v1/expense_categories/{id}/edit": get: tags: - expense_categories summary: "Shows a Expens Category for editting" description: "Displays a Expens Category by id" operationId: editExpenseCategory parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - name: id in: path description: "The ExpenseCategory Hashed ID" required: true schema: type: string format: string example: D2J234DFA responses: 200: description: "Returns the Expens Category object" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/ExpenseCategory" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" /api/v1/expense_categories/bulk: post: tags: - expense_categories summary: "Performs bulk actions on an array of ExpenseCategorys" description: "" operationId: bulkExpenseCategorys parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/index" requestBody: description: "Expens Categorys" required: true content: application/json: schema: type: array items: description: "Array of hashed IDs to be bulk 'actioned" type: integer example: "[0,1,2,3]" responses: 200: description: "The ExpenseCategory List response" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/Webhook" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" /api/v1/expenses: get: tags: - expenses summary: "Gets a list of expenses" description: "Lists expenses, search and filters allow fine grained lists to be generated.\n\n Query parameters can be added to performed more fine grained filtering of the expenses, these are handled by the ExpenseFilters class which defines the methods available" operationId: getExpenses parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" - $ref: "#/components/parameters/index" responses: 200: description: "A list of expenses" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/Expense' meta: type: object $ref: '#/components/schemas/Meta' 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" post: tags: - expenses summary: "Adds a client" description: "Adds an client to a company" operationId: storeExpense parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" responses: 200: description: "Returns the saved client object" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/Expense" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" "/api/v1/expenses/{id}": get: tags: - expenses summary: "Shows a client" description: "Displays a client by id" operationId: showExpense parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" - name: id in: path description: "The Expense Hashed ID" required: true schema: type: string format: string example: D2J234DFA responses: 200: description: "Returns the expense object" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/Expense" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" put: tags: - expenses summary: "Updates a client" description: "Handles the updating of a client by id" operationId: updateExpense parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" - name: id in: path description: "The Expense Hashed ID" required: true schema: type: string format: string example: D2J234DFA responses: 200: description: "Returns the client object" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/Expense" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" delete: tags: - expenses summary: "Deletes a client" description: "Handles the deletion of a client by id" operationId: deleteExpense parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" - name: id in: path description: "The Expense Hashed ID" required: true schema: type: string format: string example: D2J234DFA responses: 200: description: "Returns a HTTP status" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" "/api/v1/expenses/{id}/edit": get: tags: - expenses summary: "Shows a client for editting" description: "Displays a client by id" operationId: editExpense parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" - name: id in: path description: "The Expense Hashed ID" required: true schema: type: string format: string example: D2J234DFA responses: 200: description: "Returns the client object" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/Expense" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" /api/v1/expenses/create: get: tags: - expenses summary: "Gets a new blank client object" description: "Returns a blank object with default values" operationId: getExpensesCreate parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" responses: 200: description: "A blank client object" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/Expense" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" /api/v1/expenses/bulk: post: tags: - expenses summary: "Performs bulk actions on an array of expenses" description: "" operationId: bulkExpenses parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/index" requestBody: description: "User credentials" required: true content: application/json: schema: type: array items: description: "Array of hashed IDs to be bulk 'actioned" type: integer example: "[0,1,2,3]" responses: 200: description: "The Expense User response" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/Expense" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" "/api/v1/expenses/{id}/upload": put: tags: - expense summary: "Uploads a document to a expense" description: "Handles the uploading of a document to a expense" operationId: uploadExpense parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" - name: id in: path description: "The Expense Hashed ID" required: true schema: type: string format: string example: D2J234DFA responses: 200: description: "Returns the Expense object" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/Expense" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" /api/v1/export: post: tags: - export summary: "Export data from the system" description: "Export data from the system" operationId: getExport parameters: - $ref: "#/components/parameters/X-Requested-With" responses: 200: description: success headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" /api/v1/group_settings: get: tags: - group_settings summary: "Gets a list of group_settings" description: "Lists group_settings, search and filters allow fine grained lists to be generated.\n\n Query parameters can be added to performed more fine grained filtering of the group_settings, these are handled by the GroupSettingFilters class which defines the methods available" operationId: getGroupSettings parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" responses: 200: description: "A list of group_settings" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/GroupSetting' meta: type: object $ref: '#/components/schemas/Meta' 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" post: tags: - group_settings summary: "Adds a GroupSetting" description: "Adds an GroupSetting to the system" operationId: storeGroupSetting parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" responses: 200: description: "Returns the saved GroupSetting object" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/GroupSetting" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" /api/v1/group_settings/create: get: tags: - group_settings summary: "Gets a new blank GroupSetting object" description: "Returns a blank object with default values" operationId: getGroupSettingsCreate parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" responses: 200: description: "A blank GroupSetting object" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/GroupSetting" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" "/api/v1/group_settings/{id}": get: tags: - group_settings summary: "Shows an GroupSetting" description: "Displays an GroupSetting by id" operationId: showGroupSetting parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" - name: id in: path description: "The GroupSetting Hashed ID" required: true schema: type: string format: string example: D2J234DFA responses: 200: description: "Returns the GroupSetting object" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/GroupSetting" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" put: tags: - group_settings summary: "Updates an GroupSetting" description: "Handles the updating of an GroupSetting by id" operationId: updateGroupSetting parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" - name: id in: path description: "The GroupSetting Hashed ID" required: true schema: type: string format: string example: D2J234DFA responses: 200: description: "Returns the GroupSetting object" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/GroupSetting" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" delete: tags: - group_settings summary: "Deletes a GroupSetting" description: "Handles the deletion of an GroupSetting by id" operationId: deleteGroupSetting parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" - name: id in: path description: "The GroupSetting Hashed ID" required: true schema: type: string format: string example: D2J234DFA responses: 200: description: "Returns a HTTP status" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" "/api/v1/group_settings/{id}/edit": get: tags: - group_settings summary: "Shows an GroupSetting for editting" description: "Displays an GroupSetting by id" operationId: editGroupSetting parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" - name: id in: path description: "The GroupSetting Hashed ID" required: true schema: type: string format: string example: D2J234DFA responses: 200: description: "Returns the GroupSetting object" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/GroupSetting" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" /api/v1/group_settings/bulk: post: tags: - group_settings summary: "Performs bulk actions on an array of group_settings" description: "" operationId: bulkGroupSettings parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/index" requestBody: description: "An array of group_settings ids" required: true content: application/json: schema: type: array items: description: "Array of hashed IDs to be bulk 'actioned" type: integer example: "[0,1,2,3]" responses: 200: description: "The Bulk Action response" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" "/api/v1/group_settings/{id}/upload": put: tags: - group_settings summary: "Uploads a document to a group setting" description: "Handles the uploading of a document to a group setting" operationId: uploadGroupSetting parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" - name: id in: path description: "The Group Setting Hashed ID" required: true schema: type: string format: string example: D2J234DFA responses: 200: description: "Returns the Group Setting object" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/Invoice" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" /api/v1/preimport: post: tags: - imports summary: "Pre Import checks - returns a reference to the job and the headers of the CSV" description: "Pre Import checks - returns a reference to the job and the headers of the CSV" operationId: preimport parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" requestBody: description: "The CSV file" required: true content: multipart/form-data: schema: type: string format: binary responses: 200: description: "Returns a reference to the file" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" /api/v1/import_json: post: tags: - import summary: "Import data from the system" description: "Import data from the system" operationId: getImportJson parameters: - $ref: "#/components/parameters/X-Requested-With" responses: 200: description: success headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" /api/v1/apple/confirm_purchase: post: tags: - postmark summary: "Processing webhooks from Apple for in app purchases" description: "Adds an credit to the system" operationId: confirmApplePurchase parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" responses: 200: description: "Returns the saved credit object" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" /api/v1/apple/process_webhook: post: tags: - postmark summary: "Processing event webhooks from Apple for in purchase / subscription status update" description: "Adds an credit to the system" operationId: processAppleWebhook parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" responses: 200: description: "Returns the saved credit object" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" /api/v1/claim_license: get: tags: - claim_license summary: "Attempts to claim a white label license" description: "Attempts to claim a white label license" operationId: getClaimLicense parameters: - $ref: "#/components/parameters/X-Requested-With" - name: license_key in: query description: "The license hash" required: true schema: type: string format: string example: d87sh-s755s-s7d76-sdsd8 - name: product_id in: query description: "The ID of the product purchased." required: true schema: type: string format: string example: "1" responses: 200: description: Success! headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" /api/v1/logout: post: tags: - logout summary: "Logs the user out of their current session" description: "Logs the user out of their current session" operationId: getLogout parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" - $ref: "#/components/parameters/index" responses: 200: description: "Success message" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" "/api/v1/migration/purge/{company}": post: tags: - migration summary: "Attempts to purge a company record and all its child records" description: "Attempts to purge a company record and all its child records" operationId: postPurgeCompany parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - name: company in: path description: "The Company Hashed ID" required: true schema: type: string format: string example: D2J234DFA responses: 200: description: Success headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" "/api/v1/migration/purge_save_settings/{company}": post: tags: - migration summary: "Attempts to purge a companies child records but save the company record and its settings" description: "Attempts to purge a companies child records but save the company record and its settings" operationId: postPurgeCompanySaveSettings parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - name: company in: path description: "The Company Hashed ID" required: true schema: type: string format: string example: D2J234DFA responses: 200: description: Success headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" /api/v1/migration/start: post: tags: - migration summary: "Starts the migration from previous version of Invoice Ninja" description: "Starts the migration from previous version of Invoice Ninja" operationId: postStartMigration parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/X-API-PASSWORD" - name: migration in: query description: "The migraton file" required: true schema: type: object format: file example: migration.zip responses: 200: description: Success headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" /api/v1/one_time_token: post: tags: - one_time_token summary: "Attempts to create a one time token" description: "Attempts to create a one time token" operationId: oneTimeToken parameters: - $ref: "#/components/parameters/X-Requested-With" responses: 200: description: "The Company User response" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" /api/v1/payment_terms: get: tags: - payment_terms summary: "Gets a list of payment terms" description: "Lists payment terms" operationId: getPaymentTerms parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" - $ref: "#/components/parameters/index" responses: 200: description: "A list of payment terms" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/PaymentTerm' meta: type: object $ref: '#/components/schemas/Meta' 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" post: tags: - payment_terms summary: "Adds a Payment" description: "Adds a Payment Term to the system" operationId: storePaymentTerm parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" requestBody: description: "The payment_terms request" required: true content: application/json: schema: $ref: "#/components/schemas/PaymentTerm" responses: 200: description: "Returns the saved Payment object" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/PaymentTerm" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" /api/v1/payment_terms/create: get: tags: - payment_terms summary: "Gets a new blank PaymentTerm object" description: "Returns a blank object with default values" operationId: getPaymentTermsCreate parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" responses: 200: description: "A blank PaymentTerm object" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/Payment" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" "/api/v1/payment_terms/{id}": get: tags: - payment_terms summary: "Shows a Payment Term" description: "Displays an Payment Term by id" operationId: showPaymentTerm parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" - name: id in: path description: "The Payment Term Hashed ID" required: true schema: type: string format: string example: D2J234DFA responses: 200: description: "Returns the Payment Term object" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/PaymentTerm" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" put: tags: - payment_terms summary: "Updates a Payment Term" description: "Handles the updating of an Payment Termby id" operationId: updatePaymentTerm parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" - name: id in: path description: "The Payment Term Hashed ID" required: true schema: type: string format: string example: D2J234DFA responses: 200: description: "Returns the Payment Term object" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/PaymentTerm" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" delete: tags: - payment_termss summary: "Deletes a Payment Term" description: "Handles the deletion of an PaymentTerm by id" operationId: deletePaymentTerm parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" - name: id in: path description: "The Payment Term Hashed ID" required: true schema: type: string format: string example: D2J234DFA responses: 200: description: "Returns a HTTP status" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" "/api/v1/payment_terms/{id}/edit": get: tags: - payment_terms summary: "Shows an Payment Term for editting" description: "Displays an Payment Term by id" operationId: editPaymentTerms parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" - name: id in: path description: "The Payment Term Hashed ID" required: true schema: type: string format: string example: D2J234DFA responses: 200: description: "Returns the Payment object" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/PaymentTerm" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" /api/v1/payment_terms/bulk: post: tags: - payment_terms summary: "Performs bulk actions on an array of payment terms" description: "" operationId: bulkPaymentTerms parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/index" requestBody: description: "Payment Ter,s" required: true content: application/json: schema: type: array items: description: "Array of hashed IDs to be bulk 'actioned" type: integer example: "[0,1,2,3]" responses: 200: description: "The Payment Terms response" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/PaymentTerm" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" /api/v1/ping: get: tags: - ping summary: "Attempts to ping the API" description: "Attempts to ping the API" operationId: getPing parameters: - $ref: "#/components/parameters/X-Requested-With" responses: 200: description: "The company and user name" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" /api/v1/health_check: get: tags: - health_check summary: "Attempts to get a health check from the API" description: "Attempts to get a health check from the API" operationId: getHealthCheck parameters: - $ref: "#/components/parameters/X-Requested-With" responses: 200: description: "A key/value map of the system health" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" /api/v1/postmark_webhook: post: tags: - postmark summary: "Processing webhooks from PostMark" description: "Adds an credit to the system" operationId: postmarkWebhook parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" responses: 200: description: "Returns the saved credit object" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/Credit" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" /api/v1/preview: post: tags: - preview summary: "Returns a pdf preview" description: "Returns a pdf preview." operationId: getPreview parameters: - $ref: "#/components/parameters/X-Requested-With" responses: 200: description: "The pdf response" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" /api/v1/preview/purchase_order: post: tags: - preview summary: "Returns a pdf preview for purchase order" description: "Returns a pdf preview for purchase order." operationId: getPreviewPurchaseOrder parameters: - $ref: "#/components/parameters/X-Requested-With" responses: 200: description: "The pdf response" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" /api/v1/recurring_expenses: get: tags: - recurring_expenses summary: "Gets a list of recurring_expenses" description: "Lists recurring_expenses, search and filters allow fine grained lists to be generated.\n\n Query parameters can be added to performed more fine grained filtering of the recurring_expenses, these are handled by the RecurringExpenseFilters class which defines the methods available" operationId: getRecurringExpenses parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" - $ref: "#/components/parameters/index" responses: 200: description: "A list of recurring_expenses" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/RecurringExpense' meta: type: object $ref: '#/components/schemas/Meta' 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" post: tags: - recurring_expenses summary: "Adds a client" description: "Adds an client to a company" operationId: storeRecurringExpense parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" responses: 200: description: "Returns the saved client object" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/RecurringExpense" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" "/api/v1/recurring_expenses/{id}": get: tags: - recurring_expenses summary: "Shows a client" description: "Displays a client by id" operationId: showRecurringExpense parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" - name: id in: path description: "The RecurringExpense Hashed ID" required: true schema: type: string format: string example: D2J234DFA responses: 200: description: "Returns the recurring_expense object" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/RecurringExpense" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" put: tags: - recurring_expenses summary: "Updates a client" description: "Handles the updating of a client by id" operationId: updateRecurringExpense parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" - name: id in: path description: "The RecurringExpense Hashed ID" required: true schema: type: string format: string example: D2J234DFA responses: 200: description: "Returns the client object" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/RecurringExpense" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" delete: tags: - recurring_expenses summary: "Deletes a client" description: "Handles the deletion of a client by id" operationId: deleteRecurringExpense parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" - name: id in: path description: "The RecurringExpense Hashed ID" required: true schema: type: string format: string example: D2J234DFA responses: 200: description: "Returns a HTTP status" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" "/api/v1/recurring_expenses/{id}/edit": get: tags: - recurring_expenses summary: "Shows a client for editting" description: "Displays a client by id" operationId: editRecurringExpense parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" - name: id in: path description: "The RecurringExpense Hashed ID" required: true schema: type: string format: string example: D2J234DFA responses: 200: description: "Returns the client object" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/RecurringExpense" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" /api/v1/recurring_expenses/create: get: tags: - recurring_expenses summary: "Gets a new blank client object" description: "Returns a blank object with default values" operationId: getRecurringExpensesCreate parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" responses: 200: description: "A blank client object" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/RecurringExpense" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" /api/v1/recurring_expenses/bulk: post: tags: - recurring_expenses summary: "Performs bulk actions on an array of recurring_expenses" description: "" operationId: bulkRecurringExpenses parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/index" requestBody: description: "User credentials" required: true content: application/json: schema: type: array items: description: "Array of hashed IDs to be bulk 'actioned" type: integer example: "[0,1,2,3]" responses: 200: description: "The RecurringExpense User response" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/RecurringExpense" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" "/api/v1/recurring_expenses/{id}/upload": put: tags: - recurring_expense summary: "Uploads a document to a recurring_expense" description: "Handles the uploading of a document to a recurring_expense" operationId: uploadRecurringExpense parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" - name: id in: path description: "The RecurringExpense Hashed ID" required: true schema: type: string format: string example: D2J234DFA responses: 200: description: "Returns the RecurringExpense object" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/RecurringExpense" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" /api/v1/recurring_quotes: get: tags: - recurring_quotes summary: "Gets a list of recurring_quotes" description: "Lists recurring_quotes, search and filters allow fine grained lists to be generated.\n\n Query parameters can be added to performed more fine grained filtering of the recurring_quotes, these are handled by the RecurringQuoteFilters class which defines the methods available" operationId: getRecurringQuotes parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" responses: 200: description: "A list of recurring_quotes" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/RecurringQuote' meta: type: object $ref: '#/components/schemas/Meta' 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" post: tags: - recurring_quotes summary: "Adds a RecurringQuote" description: "Adds an RecurringQuote to the system" operationId: storeRecurringQuote parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" responses: 200: description: "Returns the saved RecurringQuote object" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/RecurringQuote" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" /api/v1/recurring_quotes/create: get: tags: - recurring_quotes summary: "Gets a new blank RecurringQuote object" description: "Returns a blank object with default values" operationId: getRecurringQuotesCreate parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" responses: 200: description: "A blank RecurringQuote object" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/RecurringQuote" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" "/api/v1/recurring_quotes/{id}": get: tags: - recurring_quotes summary: "Shows an RecurringQuote" description: "Displays an RecurringQuote by id" operationId: showRecurringQuote parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" - name: id in: path description: "The RecurringQuote Hashed ID" required: true schema: type: string format: string example: D2J234DFA responses: 200: description: "Returns the RecurringQuote object" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/RecurringQuote" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" put: tags: - recurring_quotes summary: "Updates an RecurringQuote" description: "Handles the updating of an RecurringQuote by id" operationId: updateRecurringQuote parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" - name: id in: path description: "The RecurringQuote Hashed ID" required: true schema: type: string format: string example: D2J234DFA responses: 200: description: "Returns the RecurringQuote object" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/RecurringQuote" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" delete: tags: - recurring_quotes summary: "Deletes a RecurringQuote" description: "Handles the deletion of an RecurringQuote by id" operationId: deleteRecurringQuote parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" - name: id in: path description: "The RecurringQuote Hashed ID" required: true schema: type: string format: string example: D2J234DFA responses: 200: description: "Returns a HTTP status" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" "/api/v1/recurring_quotes/{id}/edit": get: tags: - recurring_quotes summary: "Shows an RecurringQuote for editting" description: "Displays an RecurringQuote by id" operationId: editRecurringQuote parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" - name: id in: path description: "The RecurringQuote Hashed ID" required: true schema: type: string format: string example: D2J234DFA responses: 200: description: "Returns the RecurringQuote object" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/RecurringQuote" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" /api/v1/recurring_quotes/bulk: post: tags: - recurring_quotes summary: "Performs bulk actions on an array of recurring_quotes" description: "" operationId: bulkRecurringQuotes parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/index" requestBody: description: "Hashed ids" required: true content: application/json: schema: type: array items: description: "Array of hashed IDs to be bulk 'actioned" type: integer example: "[0,1,2,3]" responses: 200: description: "The RecurringQuote response" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/RecurringQuote" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" "/api/v1/recurring_quotes/{id}/{action}": get: tags: - recurring_quotes summary: "Performs a custom action on an RecurringQuote" description: "Performs a custom action on an RecurringQuote.\n\n The current range of actions are as follows\n - clone_to_RecurringQuote\n - clone_to_quote\n - history\n - delivery_note\n - mark_paid\n - download\n - archive\n - delete\n - email" operationId: actionRecurringQuote parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" - name: id in: path description: "The RecurringQuote Hashed ID" required: true schema: type: string format: string example: D2J234DFA - name: action in: path description: "The action string to be performed" required: true schema: type: string format: string example: clone_to_quote responses: 200: description: "Returns the RecurringQuote object" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/RecurringQuote" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" /api/v1/reports/contacts: post: tags: - reports summary: "Contact reports" description: "Export contact reports" operationId: getContactReport parameters: - $ref: "#/components/parameters/X-Requested-With" requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/GenericReportSchema" responses: 200: description: success headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" /api/v1/reports/clients: post: tags: - reports summary: "Client reports" description: "Export client reports" operationId: getClientReport parameters: - $ref: "#/components/parameters/X-Requested-With" requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/GenericReportSchema" responses: 200: description: success headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" /api/v1/reports/credit: post: tags: - reports summary: "Credit reports" description: "Export credit reports" operationId: getCreditReport parameters: - $ref: "#/components/parameters/X-Requested-With" requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/GenericReportSchema" responses: 200: description: success headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" /api/v1/reports/documents: post: tags: - reports summary: "Document reports" description: "Export document reports" operationId: getDocumentReport parameters: - $ref: "#/components/parameters/X-Requested-With" requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/GenericReportSchema" responses: 200: description: success headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" /api/v1/reports/expense: post: tags: - reports summary: "Expense reports" description: "Export expense reports" operationId: getExpenseReport parameters: - $ref: "#/components/parameters/X-Requested-With" requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/GenericReportSchema" responses: 200: description: success headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" /api/v1/reports/invoice_items: post: tags: - reports summary: "Invoice item reports" description: "Export invoice item reports" operationId: getInvoiceItemReport parameters: - $ref: "#/components/parameters/X-Requested-With" requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/GenericReportSchema" responses: 200: description: success headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" /api/v1/reports/invoices: post: tags: - reports summary: "Invoice reports" description: "Export invoice reports" operationId: getInvoiceReport parameters: - $ref: "#/components/parameters/X-Requested-With" requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/GenericReportSchema" responses: 200: description: success headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" /api/v1/reports/payments: post: tags: - reports summary: "Payment reports" description: "Export payment reports" operationId: getPaymentReport parameters: - $ref: "#/components/parameters/X-Requested-With" requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/GenericReportSchema" responses: 200: description: success headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" /api/v1/reports/products: post: tags: - reports summary: "Product reports" description: "Export product reports" operationId: getProductReport parameters: - $ref: "#/components/parameters/X-Requested-With" requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/GenericReportSchema" responses: 200: description: success headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" /api/v1/reports/product_sales: post: tags: - reports summary: "Product Salesreports" description: "Export product sales reports" operationId: getProductSalesReport parameters: - $ref: "#/components/parameters/X-Requested-With" requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/GenericReportSchema" responses: 200: description: success headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" /api/v1/reports/profitloss: post: tags: - reports summary: "Profit loss reports" description: "Profit loss report" operationId: getProfitLossReport parameters: - $ref: "#/components/parameters/X-Requested-With" requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/GenericReportSchema" responses: 200: description: success headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" /api/v1/reports/quote_items: post: tags: - reports summary: "Quote item reports" description: "Export Quote item reports" operationId: getQuoteItemReport parameters: - $ref: "#/components/parameters/X-Requested-With" requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/GenericReportSchema" responses: 200: description: success headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" /api/v1/reports/quotes: post: tags: - reports summary: "Quote reports" description: "Export quote reports" operationId: getQuoteReport parameters: - $ref: "#/components/parameters/X-Requested-With" requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/GenericReportSchema" responses: 200: description: success headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" /api/v1/reports/recurring_invoices: post: tags: - reports summary: "Recurring Invoice reports" description: "Export recurring invoice reports" operationId: getRecurringInvoiceReport parameters: - $ref: "#/components/parameters/X-Requested-With" requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/GenericReportSchema" responses: 200: description: success headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" /api/v1/reports/tasks: post: tags: - reports summary: "Task reports" description: "Export task reports" operationId: getTaskReport parameters: - $ref: "#/components/parameters/X-Requested-With" requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/GenericReportSchema" responses: 200: description: success headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" /api/v1/self-update: post: tags: - update summary: "Performs a system update" description: "Performs a system update" operationId: selfUpdate parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-API-PASSWORD" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" responses: 200: description: "Success/failure response" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" /api/v1/statics: get: tags: - statics summary: "Gets a list of statics" description: "Lists all statics" operationId: getStatics parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" responses: 200: description: "A list of static data" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" /api/v1/subscriptions: get: tags: - subscriptions summary: "Gets a list of subscriptions" description: "Lists subscriptions." operationId: getSubscriptions parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" responses: 200: description: "A list of subscriptions" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/Subscription' meta: type: object $ref: '#/components/schemas/Meta' 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" post: tags: - subscriptions summary: "Adds a subscriptions" description: "Adds an subscriptions to the system" operationId: storeSubscription parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" responses: 200: description: "Returns the saved subscriptions object" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/Subscription" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" /api/v1/subscriptions/create: get: tags: - subscriptions summary: "Gets a new blank subscriptions object" description: "Returns a blank object with default values" operationId: getSubscriptionsCreate parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" responses: 200: description: "A blank subscriptions object" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/Subscription" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" "/api/v1/subscriptions/{id}": get: tags: - subscriptions summary: "Shows an subscriptions" description: "Displays an subscriptions by id" operationId: showSubscription parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" - name: id in: path description: "The Subscription Hashed ID" required: true schema: type: string format: string example: D2J234DFA responses: 200: description: "Returns the Subscription object" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/Subscription" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" put: tags: - subscriptions summary: "Updates an subscriptions" description: "Handles the updating of an subscriptions by id" operationId: updateSubscription parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" - name: id in: path description: "The Subscription Hashed ID" required: true schema: type: string format: string example: D2J234DFA responses: 200: description: "Returns the subscriptions object" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/Subscription" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" delete: tags: - subscriptions summary: "Deletes a subscriptions" description: "Handles the deletion of an subscriptions by id" operationId: deleteSubscription parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" - name: id in: path description: "The Subscription Hashed ID" required: true schema: type: string format: string example: D2J234DFA responses: 200: description: "Returns a HTTP status" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" "/api/v1/subscriptions/{id}/edit": get: tags: - subscriptions summary: "Shows an subscriptions for editting" description: "Displays an subscriptions by id" operationId: editSubscription parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" - name: id in: path description: "The Subscription Hashed ID" required: true schema: type: string format: string example: D2J234DFA responses: 200: description: "Returns the invoice object" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/Subscription" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" /api/v1/subscriptions/bulk: post: tags: - subscriptions summary: "Performs bulk actions on an array of subscriptions" description: "" operationId: bulkSubscriptions parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/index" requestBody: description: "User credentials" required: true content: application/json: schema: type: array items: description: "Array of hashed IDs to be bulk 'actioned" type: integer example: "[0,1,2,3]" responses: 200: description: "The Subscription response" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/Subscription" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" /api/v1/support/messages/send: post: tags: - support summary: "Sends a support message to Invoice Ninja team" description: "Allows a user to send a support message to the Invoice Ninja Team" operationId: supportMessage parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" requestBody: description: "The message" required: true content: application/json: schema: properties: message: description: "The support message" type: string type: string responses: 200: description: Success headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: type: array items: description: "Server response" type: string example: true default: $ref: "#/components/responses/default" /api/v1/system_logs: get: tags: - system_logs summary: "Gets a list of system logs" description: "Lists system logs, search and filters allow fine grained lists to be generated.\n *\n * Query parameters can be added to performed more fine grained filtering of the system logs, these are handled by the SystemLogFilters class which defines the methods available" operationId: getSystemLogs parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" responses: 200: description: "A list of system logs" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/SystemLog' meta: type: object $ref: '#/components/schemas/Meta' 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" "/api/v1/system_logs/{id}": get: tags: - system_logs summary: "Shows a system_logs" description: "Displays a system_logs by id" operationId: showSystemLogs parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" - name: id in: path description: "The system_logs Hashed ID" required: true schema: type: string format: string example: D2J234DFA responses: 200: description: "Returns the system_logs object" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/SystemLog" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" /api/v1/task_schedulers/: get: tags: - task_schedulers summary: "Task Scheduler Index" description: "Get all schedulers with associated jobs" operationId: getTaskSchedulers parameters: - $ref: "#/components/parameters/X-Requested-With" responses: 200: description: success headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" default: $ref: "#/components/responses/default" post: tags: - task_schedulers summary: "Create task scheduler with job " description: "Create task scheduler with a job (action(job) request should be sent via request also. Example: We want client report to be job which will be run\n * multiple times, we should send the same parameters in the request as we would send if we wanted to get report, see example" operationId: createTaskScheduler parameters: - $ref: "#/components/parameters/X-API-SECRET" - $ref: "#/components/parameters/X-Requested-With" requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/TaskSchedulerSchema" responses: 200: description: success headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" /api/v1/task_schedulers/create: get: tags: - task_schedulers summary: "Gets a new blank scheduler object" description: "Returns a blank object with default values" operationId: getTaskScheduler parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" responses: 200: description: "A blank scheduler object" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/TaskSchedulerSchema" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" "/api/v1/task_schedulers/{id}": get: tags: - task_schedulers summary: "Show given scheduler" description: "Get scheduler with associated job" operationId: showTaskScheduler parameters: - $ref: "#/components/parameters/X-Requested-With" - name: id in: path description: "The Scheduler Hashed ID" required: true schema: type: string format: string example: D2J234DFA responses: 200: description: success headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" default: $ref: "#/components/responses/default" put: tags: - task_schedulers summary: "Update task scheduler " description: "Update task scheduler" operationId: updateTaskScheduler parameters: - $ref: "#/components/parameters/X-API-SECRET" - $ref: "#/components/parameters/X-Requested-With" - name: id in: path description: "The Scheduler Hashed ID" required: true schema: type: string format: string example: D2J234DFA requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/TaskSchedulerSchema" responses: 200: description: success headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" delete: tags: - task_schedulers summary: "Destroy Task Scheduler" description: "Destroy task scheduler and its associated job" operationId: destroyTaskScheduler parameters: - $ref: "#/components/parameters/X-Requested-With" - name: id in: path description: "The Scheduler Hashed ID" required: true schema: type: string format: string example: D2J234DFA responses: 200: description: success headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" default: $ref: "#/components/responses/default" /api/v1/task_schedulers/bulk: post: tags: - task_schedulers summary: "Performs bulk actions on an array of task_schedulers" description: "" operationId: bulkTaskSchedulerActions parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/index" requestBody: description: "array of ids" required: true content: application/json: schema: type: array items: description: "Array of hashed IDs to be bulk 'actioned" type: integer example: "[0,1,2,3]" responses: 200: description: "The TaskSchedule response" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/TaskSchedulerSchema" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" /api/v1/task_statuses: get: tags: - task_status summary: "Gets a list of task statuses" description: "Lists task statuses" operationId: getTaskStatuses parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" - $ref: "#/components/parameters/index" responses: 200: description: "A list of task statuses" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/TaskStatus' meta: type: object $ref: '#/components/schemas/Meta' 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" post: tags: - task_status summary: "Adds a TaskStatus" description: "Adds a TaskStatusto the system" operationId: storeTaskStatus parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" requestBody: description: "The task_status request" required: true content: application/json: schema: $ref: "#/components/schemas/TaskStatus" responses: 200: description: "Returns the saved TaskStatus object" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/TaskStatus" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" /api/v1/task_statuses/create: get: tags: - task_status summary: "Gets a new blank TaskStatus object" description: "Returns a blank object with default values" operationId: getTaskStatussCreate parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" responses: 200: description: "A blank TaskStatus object" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/TaskStatus" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" "/api/v1/task_statuses/{id}": get: tags: - task_status summary: "Shows a TaskStatus Term" description: "Displays an TaskStatusby id" operationId: showTaskStatus parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" - name: id in: path description: "The TaskStatusHashed ID" required: true schema: type: string format: string example: D2J234DFA responses: 200: description: "Returns the TaskStatusobject" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/TaskStatus" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" put: tags: - task_status summary: "Updates a TaskStatus Term" description: "Handles the updating of an TaskStatus Termby id" operationId: updateTaskStatus parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" - name: id in: path description: "The TaskStatusHashed ID" required: true schema: type: string format: string example: D2J234DFA responses: 200: description: "Returns the TaskStatusobject" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/TaskStatus" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" delete: tags: - task_statuss summary: "Deletes a TaskStatus Term" description: "Handles the deletion of an TaskStatus by id" operationId: deleteTaskStatus parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" - name: id in: path description: "The TaskStatusHashed ID" required: true schema: type: string format: string example: D2J234DFA responses: 200: description: "Returns a HTTP status" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" "/api/v1/task_statuses/{id}/edit": get: tags: - task_status summary: "Shows an TaskStatusfor editting" description: "Displays an TaskStatusby id" operationId: editTaskStatuss parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" - name: id in: path description: "The TaskStatusHashed ID" required: true schema: type: string format: string example: D2J234DFA responses: 200: description: "Returns the TaskStatus object" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/TaskStatus" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" /api/v1/task_statuses/bulk: post: tags: - task_status summary: "Performs bulk actions on an array of task statuses" description: "" operationId: bulkTaskStatuss parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/index" requestBody: description: "TaskStatus Ter,s" required: true content: application/json: schema: type: array items: description: "Array of hashed IDs to be bulk 'actioned" type: integer example: "[0,1,2,3]" responses: 200: description: "The TaskStatus Terms response" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/TaskStatus" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" /api/v1/tax_rates: get: tags: - tax_rates summary: "Gets a list of tax_rates" description: "Lists tax rates" operationId: getTaxRates parameters: - $ref: "#/components/parameters/index" responses: 200: description: "A list of tax_rates" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/TaxRate' meta: type: object $ref: '#/components/schemas/Meta' 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" /api/v1/tax_rates/create: get: tags: - tax_rates summary: "Gets a new blank Tax Rate object" description: "Returns a blank object with default values" operationId: getTaxRateCreate parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" responses: 200: description: "A blank Tax Rate object" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/TaxRate" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" "/api/v1/tax_rates/{id}": get: tags: - tax_rates summary: "Shows a Tax Rate" description: "Displays an TaxRate by id" operationId: showTaxRate parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - name: id in: path description: "The TaxRate Hashed ID" required: true schema: type: string format: string example: D2J234DFA responses: 200: description: "Returns the Tax Rate object" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/TaxRate" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" put: tags: - tax_rates summary: "Updates a tax rate" description: "Handles the updating of a tax rate by id" operationId: updateTaxRate parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - name: id in: path description: "The TaxRate Hashed ID" required: true schema: type: string format: string example: D2J234DFA responses: 200: description: "Returns the TaxRate object" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/TaxRate" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" delete: tags: - tax_rates summary: "Deletes a TaxRate" description: "Handles the deletion of an TaxRate by id" operationId: deleteTaxRate parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - name: id in: path description: "The TaxRate Hashed ID" required: true schema: type: string format: string example: D2J234DFA responses: 200: description: "Returns a HTTP status" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" "/api/v1/tax_rates/{id}/edit": get: tags: - tax_rates summary: "Shows a Tax Rate for editting" description: "Displays a Tax Rate by id" operationId: editTaxRate parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - name: id in: path description: "The TaxRate Hashed ID" required: true schema: type: string format: string example: D2J234DFA responses: 200: description: "Returns the Tax Rate object" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/TaxRate" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" /api/v1/tax_rates/bulk: post: tags: - tax_rates summary: "Performs bulk actions on an array of TaxRates" description: "" operationId: bulkTaxRates parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/index" requestBody: description: "Tax Rates" required: true content: application/json: schema: type: array items: description: "Array of hashed IDs to be bulk 'actioned" type: integer example: "[0,1,2,3]" responses: 200: description: "The TaxRate List response" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/Webhook" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" /api/v1/templates: post: tags: - templates summary: "Returns a entity template with the template variables replaced with the Entities" description: "Returns a entity template with the template variables replaced with the Entities" operationId: getShowTemplate parameters: - $ref: "#/components/parameters/X-Requested-With" requestBody: description: "The template subject and body" required: true content: application/json: schema: properties: subject: description: "The email template subject" type: string body: description: "The email template body" type: string type: object responses: 200: description: "The template response" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/Template" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" /api/v1/tokens: get: tags: - tokens summary: "Gets a list of company tokens" description: "Lists company tokens.\n *\n * Query parameters can be added to performed more fine grained filtering of the tokens, these are handled by the TokenFilters class which defines the methods available" operationId: getTokens parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" - $ref: "#/components/parameters/index" responses: 200: description: "A list of tokens" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/CompanyToken' meta: type: object $ref: '#/components/schemas/Meta' 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" post: tags: - tokens summary: "Adds a token" description: "Adds an token to a company" operationId: storeToken parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" responses: 200: description: "Returns the saved token object" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/CompanyToken" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" "/api/v1/tokens/{id}": get: tags: - tokens summary: "Shows a token" description: "Displays a token by id" operationId: showToken parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" - name: id in: path description: "The Token Hashed ID" required: true schema: type: string format: string example: D2J234DFA responses: 200: description: "Returns the token object" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/CompanyToken" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" put: tags: - tokens summary: "Updates a token" description: "Handles the updating of a token by id" operationId: updateToken parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" - name: id in: path description: "The Token Hashed ID" required: true schema: type: string format: string example: D2J234DFA responses: 200: description: "Returns the token object" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/CompanyToken" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" delete: tags: - tokens summary: "Deletes a token" description: "Handles the deletion of a token by id" operationId: deleteToken parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" - name: id in: path description: "The Token Hashed ID" required: true schema: type: string format: string example: D2J234DFA responses: 200: description: "Returns a HTTP status" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" "/api/v1/tokens/{id}/edit": get: tags: - tokens summary: "Shows a token for editting" description: "Displays a token by id" operationId: editToken parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" - name: id in: path description: "The Token Hashed ID" required: true schema: type: string format: string example: D2J234DFA responses: 200: description: "Returns the token object" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/CompanyToken" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" /api/v1/tokens/create: get: tags: - tokens summary: "Gets a new blank token object" description: "Returns a blank object with default values" operationId: getTokensCreate parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" responses: 200: description: "A blank token object" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/CompanyToken" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" /api/v1/tokens/bulk: post: tags: - tokens summary: "Performs bulk actions on an array of tokens" description: "" operationId: bulkTokens parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/index" requestBody: description: "Token ids" required: true content: application/json: schema: type: array items: description: "Array of hashed IDs to be bulk 'actioned" type: integer example: "[0,1,2,3]" responses: 200: description: "The Token response" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/CompanyToken" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" /api/v1/users: get: tags: - users summary: "Gets a list of users" description: "Lists users, search and filters allow fine grained lists to be generated.\n\n Query parameters can be added to performed more fine grained filtering of the users, these are handled by the UserFilters class which defines the methods available" operationId: getUsers parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" responses: 200: description: "A list of users" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/User' meta: type: object $ref: '#/components/schemas/Meta' 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" post: tags: - users summary: "Adds a User" description: "Adds an User to the system" operationId: storeUser parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" responses: 200: description: "Returns the saved User object" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/User" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" /api/v1/users/create: get: tags: - users summary: "Gets a new blank User object" description: "Returns a blank object with default values" operationId: getUsersCreate parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" responses: 200: description: "A blank User object" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/User" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" "/api/v1/users/{id}": get: tags: - users summary: "Shows an User" description: "Displays an User by id" operationId: showUser parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" - name: id in: path description: "The User Hashed ID" required: true schema: type: string format: string example: D2J234DFA responses: 200: description: "Returns the User object" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/User" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" put: tags: - users summary: "Updates an User" description: "Handles the updating of an User by id" operationId: updateUser parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" - name: id in: path description: "The User Hashed ID" required: true schema: type: string format: string example: D2J234DFA responses: 200: description: "Returns the User object" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/User" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" delete: tags: - users summary: "Deletes a User" description: "Handles the deletion of an User by id" operationId: deleteUser parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" - name: token_name in: query description: "Customized name for the Users API Token" required: false schema: type: string format: string example: "iOS Device 11 iPad" - name: id in: path description: "The User Hashed ID" required: true schema: type: string format: string example: D2J234DFA responses: 200: description: "Returns a HTTP status" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" "/api/v1/users/{id}/edit": get: tags: - users summary: "Shows an User for editting" description: "Displays an User by id" operationId: editUser parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" - name: id in: path description: "The User Hashed ID" required: true schema: type: string format: string example: D2J234DFA responses: 200: description: "Returns the User object" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/User" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" /api/v1/users/bulk: post: tags: - users summary: "Performs bulk actions on an array of users" description: "" operationId: bulkUsers parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/index" requestBody: description: "Hashed ids" required: true content: application/json: schema: type: array items: description: "Array of hashed IDs to be bulk 'actioned" type: integer example: "[0,1,2,3]" responses: 200: description: "The User response" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/User" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" "/api/v1/users/{user}/detach_from_company": delete: tags: - users summary: "Detach an existing user to a company" description: "Detach an existing user from a company" operationId: detachUser parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" - name: user in: path description: "The user hashed_id" required: true schema: type: string format: string example: FD767dfd7 responses: 200: description: "Success response" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" "/api/v1/users/{user}/invite": post: tags: - users summary: "Reconfirm an existing user to a company" description: "Reconfirm an existing user from a company" operationId: inviteUser parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" - name: user in: path description: "The user hashed_id" required: true schema: type: string format: string example: FD767dfd7 responses: 200: description: "Success response" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" "/api/v1/users/{user}/reconfirm": post: tags: - users summary: "Reconfirm an existing user to a company" description: "Reconfirm an existing user from a company" operationId: inviteUserReconfirm parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" - name: user in: path description: "The user hashed_id" required: true schema: type: string format: string example: FD767dfd7 responses: 200: description: "Success response" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" /api/v1/webcron: get: tags: - webcron summary: "Executes the task scheduler via a webcron service" description: "Executes the task scheduler via a webcron service" operationId: webcron parameters: - $ref: "#/components/parameters/X-Requested-With" responses: 200: description: "Success response" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" /api/v1/webhooks: get: tags: - webhooks summary: "Gets a list of Webhooks" description: "Lists Webhooks, search and filters allow fine grained lists to be generated.\n *\n * Query parameters can be added to performed more fine grained filtering of the Webhooks, these are handled by the WebhookFilters class which defines the methods available" operationId: getWebhooks parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" - $ref: "#/components/parameters/index" responses: 200: description: "A list of Webhooks" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/Webhook' meta: type: object $ref: '#/components/schemas/Meta' 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" post: tags: - webhooks summary: "Adds a Webhook" description: "Adds an Webhook to a company" operationId: storeWebhook parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" responses: 200: description: "Returns the saved Webhook object" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/Webhook" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" "/api/v1/webhooks/{id}": get: tags: - webhooks summary: "Shows a Webhook" description: "Displays a Webhook by id" operationId: showWebhook parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" - name: id in: path description: "The Webhook Hashed ID" required: true schema: type: string format: string example: D2J234DFA responses: 200: description: "Returns the Webhook object" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/Webhook" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" put: tags: - webhooks summary: "Updates a Webhook" description: "Handles the updating of a Webhook by id" operationId: updateWebhook parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" - name: id in: path description: "The Webhook Hashed ID" required: true schema: type: string format: string example: D2J234DFA responses: 200: description: "Returns the Webhook object" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/Webhook" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" delete: tags: - Webhooks summary: "Deletes a Webhook" description: "Handles the deletion of a Webhook by id" operationId: deleteWebhook parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" - name: id in: path description: "The Webhook Hashed ID" required: true schema: type: string format: string example: D2J234DFA responses: 200: description: "Returns a HTTP status" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" "/api/v1/webhooks/{id}/edit": get: tags: - webhooks summary: "Shows a Webhook for editting" description: "Displays a Webhook by id" operationId: editWebhook parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" - name: id in: path description: "The Webhook Hashed ID" required: true schema: type: string format: string example: D2J234DFA responses: 200: description: "Returns the Webhook object" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/Webhook" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" /api/v1/webhooks/create: get: tags: - webhooks summary: "Gets a new blank Webhook object" description: "Returns a blank object with default values" operationId: getWebhooksCreate parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" responses: 200: description: "A blank Webhook object" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/Webhook" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" /api/v1/webhooks/bulk: post: tags: - webhooks summary: "Performs bulk actions on an array of Webhooks" description: "" operationId: bulkWebhooks parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/index" requestBody: description: "User credentials" required: true content: application/json: schema: type: array items: description: "Array of hashed IDs to be bulk 'actioned" type: integer example: "[0,1,2,3]" responses: 200: description: "The Webhook User response" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/Webhook" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: "#/components/responses/422" default: $ref: "#/components/responses/default" /api/v1/products: get: tags: - products summary: "List products" description: | Lists products, search and filters allow fine grained lists to be generated. Query parameters can be added to perform fine grained filtering of the products list, these are handled by the ProductFilters class which defines the methods available operationId: getProducts parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" - $ref: "#/components/parameters/status" - $ref: "#/components/parameters/client_id" - $ref: "#/components/parameters/created_at" - $ref: "#/components/parameters/updated_at" - $ref: "#/components/parameters/is_deleted" - $ref: "#/components/parameters/filter_deleted_clients" - $ref: "#/components/parameters/vendor_id" - name: filter in: query description: Filter by product name required: false schema: type: string example: bob - name: product_key in: query description: Filter by product key required: false schema: type: string example: bob - name: sort in: query description: Returns the list sorted by column in ascending or descending order. required: false schema: type: string example: id|desc product_key|desc responses: 200: description: "A list of products" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/Product' meta: type: object $ref: '#/components/schemas/Meta' 401: $ref: '#/components/responses/401' 403: $ref: '#/components/responses/403' 422: $ref: '#/components/responses/422' 429: $ref: '#/components/responses/429' 5XX: description: 'Server error' default: $ref: '#/components/responses/default' post: tags: - products summary: "Create Product" description: "Adds a product to a company" operationId: storeProduct parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" requestBody: description: Product object that needs to be added to the company required: true content: application/json: schema: $ref: '#/components/schemas/ProductRequest' responses: 200: description: "Returns the saved product object" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/Product" 401: $ref: '#/components/responses/401' 403: $ref: '#/components/responses/403' 422: $ref: '#/components/responses/422' 429: $ref: '#/components/responses/429' 5XX: description: 'Server error' default: $ref: '#/components/responses/default' "/api/v1/products/{id}": get: tags: - products summary: "Show product" description: "Displays a product by id" operationId: showProduct parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" - name: id in: path description: "The Product Hashed ID" required: true schema: type: string format: string example: D2J234DFA responses: 200: description: "Returns the product object" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/Product" 401: $ref: '#/components/responses/401' 403: $ref: '#/components/responses/403' 422: $ref: '#/components/responses/422' 429: $ref: '#/components/responses/429' 5XX: description: 'Server error' default: $ref: '#/components/responses/default' put: tags: - products summary: "Update product" description: "Handles the updating of a product by id" operationId: updateProduct parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" - name: id in: path description: "The Product Hashed ID" required: true schema: type: string format: string example: D2J234DFA requestBody: description: Product object that needs to be added to the company required: true content: application/json: schema: $ref: '#/components/schemas/ProductRequest' responses: 200: description: "Returns the Product object" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/Product" 401: $ref: '#/components/responses/401' 403: $ref: '#/components/responses/403' 422: $ref: '#/components/responses/422' 429: $ref: '#/components/responses/429' 5XX: description: 'Server error' default: $ref: '#/components/responses/default' delete: tags: - products summary: "Delete product" description: "Handles the deletion of a product by id" operationId: deleteProduct parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" - name: id in: path description: "The Product Hashed ID" required: true schema: type: string format: string example: D2J234DFA responses: 200: description: "Returns a HTTP status" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" 401: $ref: '#/components/responses/401' 403: $ref: '#/components/responses/403' 422: $ref: '#/components/responses/422' 429: $ref: '#/components/responses/429' 5XX: description: 'Server error' default: $ref: '#/components/responses/default' "/api/v1/products/{id}/edit": get: tags: - products summary: "Edit product" description: "Displays an Product by id" operationId: editProduct parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" - name: id in: path description: "The Product Hashed ID" required: true schema: type: string format: string example: D2J234DFA responses: 200: description: "Returns the Product object" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/Product" 401: $ref: '#/components/responses/401' 403: $ref: '#/components/responses/403' 422: $ref: '#/components/responses/422' 429: $ref: '#/components/responses/429' 5XX: description: 'Server error' default: $ref: '#/components/responses/default' "/api/v1/products/create": get: tags: - products summary: "Blank product" description: "Returns a blank product object with default values" operationId: getProductsCreate parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" responses: 200: description: "A blank Product object" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/Product" 401: $ref: '#/components/responses/401' 403: $ref: '#/components/responses/403' 422: $ref: '#/components/responses/422' 429: $ref: '#/components/responses/429' 5XX: description: 'Server error' default: $ref: '#/components/responses/default' /api/v1/products/bulk: post: tags: - products summary: "Bulk product actions" description: "Archive / Restore / Delete / Set tax id in bulk" operationId: bulkProducts parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/index" requestBody: description: 'Bulk action array' required: true content: application/json: schema: $ref: '#/components/schemas/ProductBulkAction' responses: 200: description: "The Product response" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/Product" 401: $ref: '#/components/responses/401' 403: $ref: '#/components/responses/403' 422: $ref: '#/components/responses/422' 429: $ref: '#/components/responses/429' 5XX: description: 'Server error' default: $ref: '#/components/responses/default' "/api/v1/products/{id}/upload": put: tags: - products summary: "Add product document" description: "Handles the uploading of a document to a product" operationId: uploadProduct parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/client_include" - name: id in: path description: "The Product Hashed ID" required: true schema: type: string format: string example: D2J234DFA requestBody: required: true content: multipart/form-data: schema: type: object properties: _method: type: string example: POST documents: type: array items: format: binary responses: 200: description: "Returns the Product object" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/Product" 401: $ref: '#/components/responses/401' 403: $ref: '#/components/responses/403' 422: $ref: '#/components/responses/422' 429: $ref: '#/components/responses/429' 5XX: description: 'Server error' default: $ref: '#/components/responses/default' /api/v1/tasks: get: tags: - tasks summary: "List tasks" description: "Lists tasks, search and filters allow fine grained lists to be generated.\n *\n * Query parameters can be added to performed more fine grained filtering of the tasks, these are handled by the TaskFilters class which defines the methods available" operationId: getTasks parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" - $ref: "#/components/parameters/index" responses: 200: description: "A list of tasks" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/Task' meta: type: object $ref: '#/components/schemas/Meta' 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: '#/components/responses/422' 429: $ref: '#/components/responses/429' 5XX: description: 'Server error' default: $ref: "#/components/responses/default" post: tags: - tasks summary: "Create task" description: "Adds an task to a company" operationId: storeTask parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" responses: 200: description: "Returns the saved task object" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/Task" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: '#/components/responses/422' 429: $ref: '#/components/responses/429' 5XX: description: 'Server error' default: $ref: "#/components/responses/default" "/api/v1/tasks/{id}": get: tags: - tasks summary: "Show task" description: "Displays a task by id" operationId: showTask parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" - name: id in: path description: "The Task Hashed ID" required: true schema: type: string format: string example: D2J234DFA responses: 200: description: "Returns the task object" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/Task" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: '#/components/responses/422' 429: $ref: '#/components/responses/429' 5XX: description: 'Server error' default: $ref: "#/components/responses/default" put: tags: - tasks summary: "Update task" description: "Handles the updating of a task by id" operationId: updateTask parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" - name: id in: path description: "The task Hashed ID" required: true schema: type: string format: string example: D2J234DFA responses: 200: description: "Returns the task object" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/Task" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: '#/components/responses/422' 429: $ref: '#/components/responses/429' 5XX: description: 'Server error' default: $ref: "#/components/responses/default" delete: tags: - tasks summary: "Delete task" description: "Handles the deletion of a task by id" operationId: deleteTask parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" - name: id in: path description: "The Task Hashed ID" required: true schema: type: string format: string example: D2J234DFA responses: 200: description: "Returns a HTTP status" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: '#/components/responses/422' 429: $ref: '#/components/responses/429' 5XX: description: 'Server error' default: $ref: "#/components/responses/default" "/api/v1/tasks/{id}/edit": get: tags: - tasks summary: "Edit task" description: "Displays a task by id" operationId: editTask parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" - name: id in: path description: "The Task Hashed ID" required: true schema: type: string format: string example: D2J234DFA responses: 200: description: "Returns the client object" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/Task" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: '#/components/responses/422' 429: $ref: '#/components/responses/429' 5XX: description: 'Server error' default: $ref: "#/components/responses/default" /api/v1/tasks/create: get: tags: - tasks summary: "Blank task" description: "Returns a blank task with default values" operationId: getTasksCreate parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" responses: 200: description: "A blank task object" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/Task" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: '#/components/responses/422' 429: $ref: '#/components/responses/429' 5XX: description: 'Server error' default: $ref: "#/components/responses/default" /api/v1/tasks/bulk: post: tags: - tasks summary: "Bulk task actions" description: "" operationId: bulkTasks parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/index" requestBody: description: "User credentials" required: true content: application/json: schema: type: array items: description: "Array of hashed IDs to be bulk 'actioned" type: integer example: "[0,1,2,3]" responses: 200: description: "The Task User response" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/Task" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: '#/components/responses/422' 429: $ref: '#/components/responses/429' 5XX: description: 'Server error' default: $ref: "#/components/responses/default" "/api/v1/tasks/{id}/upload": put: tags: - tasks summary: "Uploads a task document" description: "Handles the uploading of a document to a task" operationId: uploadTask parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" - name: id in: path description: "The Task Hashed ID" required: true schema: type: string format: string example: D2J234DFA responses: 200: description: "Returns the Task object" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/Task" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: '#/components/responses/422' 429: $ref: '#/components/responses/429' 5XX: description: 'Server error' default: $ref: "#/components/responses/default" /api/v1/tasks/sort: post: tags: - tasks summary: "Sort tasks on KanBan" description: "Sorts tasks after drag and drop on the KanBan." operationId: sortTasks parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" responses: 200: description: "Returns an Ok, 200 HTTP status" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: '#/components/responses/422' 429: $ref: '#/components/responses/429' 5XX: description: 'Server error' default: $ref: "#/components/responses/default" /api/v1/projects: get: tags: - projects summary: "List projects" description: "Lists projects" operationId: getProjects parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" - $ref: "#/components/parameters/index" responses: 200: description: "A list of projects" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/Project' meta: type: object $ref: '#/components/schemas/Meta' 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: '#/components/responses/422' 429: $ref: '#/components/responses/429' 5XX: description: 'Server error' default: $ref: "#/components/responses/default" post: tags: - projects summary: "Create project" description: "Adds an project to a company" operationId: storeProject parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" responses: 200: description: "Returns the saved project object" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/Project" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: '#/components/responses/422' 429: $ref: '#/components/responses/429' 5XX: description: 'Server error' default: $ref: "#/components/responses/default" "/api/v1/projects/{id}": get: tags: - projects summary: "Show project" description: "Displays a project by id" operationId: showProject parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" - name: id in: path description: "The Project Hashed ID" required: true schema: type: string format: string example: D2J234DFA responses: 200: description: "Returns the expense object" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/Project" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: '#/components/responses/422' 429: $ref: '#/components/responses/429' 5XX: description: 'Server error' default: $ref: "#/components/responses/default" put: tags: - projects summary: "Update project" description: "Handles the updating of a project by id" operationId: updateProject parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" - name: id in: path description: "The Project Hashed ID" required: true schema: type: string format: string example: D2J234DFA responses: 200: description: "Returns the project object" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/Project" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: '#/components/responses/422' 429: $ref: '#/components/responses/429' 5XX: description: 'Server error' default: $ref: "#/components/responses/default" delete: tags: - projects summary: "Delete project" description: "Handles the deletion of a project by id" operationId: deleteProject parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" - name: id in: path description: "The Project Hashed ID" required: true schema: type: string format: string example: D2J234DFA responses: 200: description: "Returns a HTTP status" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: '#/components/responses/422' 429: $ref: '#/components/responses/429' 5XX: description: 'Server error' default: $ref: "#/components/responses/default" "/api/v1/projects/{id}/edit": get: tags: - projects summary: "Edit project" description: "Displays a project by id" operationId: editProject parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" - name: id in: path description: "The Project Hashed ID" required: true schema: type: string format: string example: D2J234DFA responses: 200: description: "Returns the project object" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/Project" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: '#/components/responses/422' 429: $ref: '#/components/responses/429' 5XX: description: 'Server error' default: $ref: "#/components/responses/default" /api/v1/projects/create: get: tags: - projects summary: "Blank project" description: "Returns a blank object with default values" operationId: getProjectsCreate parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" responses: 200: description: "A blank project object" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/Project" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: '#/components/responses/422' 429: $ref: '#/components/responses/429' 5XX: description: 'Server error' default: $ref: "#/components/responses/default" /api/v1/projects/bulk: post: tags: - projects summary: "Bulk project actions" description: "" operationId: bulkProjects parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/index" requestBody: description: "User credentials" required: true content: application/json: schema: type: array items: description: "Array of hashed IDs to be bulk 'actioned" type: integer example: "[0,1,2,3]" responses: 200: description: "The Project User response" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/Project" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: '#/components/responses/422' 429: $ref: '#/components/responses/429' 5XX: description: 'Server error' default: $ref: "#/components/responses/default" "/api/v1/projects/{id}/upload": put: tags: - projects summary: "Uploads a project document" description: "Handles the uploading of a document to a project" operationId: uploadProject parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" - name: id in: path description: "The Project Hashed ID" required: true schema: type: string format: string example: D2J234DFA responses: 200: description: "Returns the Project object" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/Project" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: '#/components/responses/422' 429: $ref: '#/components/responses/429' 5XX: description: 'Server error' default: $ref: "#/components/responses/default" /api/v1/clients: get: tags: - clients summary: 'List clients' description: | When retrieving a list of clients you can also chain query parameters in order to filter the dataset that is returned. For example, you can send a request to the following URL to retrieve clients that have a balance greater than 1000:\ ``` /api/v1/clients?balance=gt:1000 ``` You can also sort the results by adding a sort parameter. The following example will sort the results by the client name in descending order:\ ``` /api/v1/clients?sort=name|desc ``` You can also combine multiple filters together. The following example will return clients that have a balance greater than 1000 and are not deleted and have a name that starts with "Bob":\ ``` /api/v1/clients?balance=gt:1000&name=Bob* ``` If you wish to retrieve child relations, you can also combine the query parameter `?include=` with a comma separated list of relationships:\ ``` /api/v1/clients?include=activities,ledger,system_logs' ``` The per_page and page variables allow pagination of the list of clients. The following example will return the second page of clients with 15 clients per page:\ ``` /api/v1/clients?per_page=15&page=2 ``` The default per_page value is 20. operationId: getClients parameters: - $ref: '#/components/parameters/X-API-TOKEN' - $ref: '#/components/parameters/X-Requested-With' - $ref: '#/components/parameters/client_include' - $ref: '#/components/parameters/index' - $ref: "#/components/parameters/status" - $ref: "#/components/parameters/created_at" - $ref: "#/components/parameters/updated_at" - $ref: "#/components/parameters/is_deleted" - $ref: "#/components/parameters/filter_deleted_clients" - $ref: "#/components/parameters/vendor_id" - name: name in: query description: Filter by client name required: false schema: type: string example: bob - name: balance in: query description: Filter by client balance, format uses an operator and value separated by a colon. lt,lte, gt, gte, eq required: false schema: type: string example: lt:10 - name: between_balance in: query description: Filter between client balances, format uses two values separated by a colon required: false schema: type: string example: 10:100 - name: email in: query description: Filter by client email required: false schema: type: string example: bob@gmail.com - name: id_number in: query description: Filter by client id_number required: false schema: type: string example: a1039883 - name: number in: query description: Filter by client number required: false schema: type: string example: a1039883 - name: filter in: query description: Filters clients on columns - name, id_number, contact.first_name contact.last_name, contact.email, custom_value1-4 required: false schema: type: string example: a1039883 - name: sort in: query description: Returns the list sorted by column in ascending or descending order. required: false schema: type: string example: id|desc name|desc balance|asc responses: 200: description: 'A list of clients' headers: X-MINIMUM-CLIENT-VERSION: $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION' X-RateLimit-Remaining: $ref: '#/components/headers/X-RateLimit-Remaining' X-RateLimit-Limit: $ref: '#/components/headers/X-RateLimit-Limit' content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/Client' example: $ref: '#/components/examples/Client' meta: type: object $ref: '#/components/schemas/Meta' example: $ref: '#/components/examples/Meta' 401: $ref: '#/components/responses/401' 403: $ref: '#/components/responses/403' 422: $ref: '#/components/responses/422' 429: $ref: '#/components/responses/429' default: $ref: '#/components/responses/default' post: tags: - clients summary: 'Create client' description: | Adds a client to a company When creating (or updating) a client you must include the child contacts with all mutating requests. Client contacts cannot be modified in isolation. operationId: storeClient parameters: - $ref: '#/components/parameters/X-API-TOKEN' - $ref: '#/components/parameters/X-Requested-With' - $ref: '#/components/parameters/client_include' requestBody: description: Client object that needs to be added to the company required: true content: application/json: schema: $ref: '#/components/schemas/ClientRequest' responses: 200: description: 'Returns the saved client object' headers: X-MINIMUM-CLIENT-VERSION: $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION' X-RateLimit-Remaining: $ref: '#/components/headers/X-RateLimit-Remaining' X-RateLimit-Limit: $ref: '#/components/headers/X-RateLimit-Limit' content: application/json: schema: $ref: '#/components/schemas/Client' 401: $ref: '#/components/responses/401' 403: $ref: '#/components/responses/403' 422: $ref: '#/components/responses/422' 429: $ref: '#/components/responses/429' default: $ref: '#/components/responses/default' '/api/v1/clients/{id}': get: tags: - clients summary: 'Show client' description: 'Displays a client by id' operationId: showClient parameters: - $ref: '#/components/parameters/X-API-TOKEN' - $ref: '#/components/parameters/X-Requested-With' - $ref: '#/components/parameters/client_include' - name: id in: path description: 'The Client Hashed ID' required: true schema: type: string format: string example: D2J234DFA responses: 200: description: 'Returns the client object' headers: X-MINIMUM-CLIENT-VERSION: $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION' X-RateLimit-Remaining: $ref: '#/components/headers/X-RateLimit-Remaining' X-RateLimit-Limit: $ref: '#/components/headers/X-RateLimit-Limit' content: application/json: schema: $ref: '#/components/schemas/Client' 401: $ref: '#/components/responses/401' 403: $ref: '#/components/responses/403' 422: $ref: '#/components/responses/422' 429: $ref: '#/components/responses/429' default: $ref: '#/components/responses/default' put: tags: - clients summary: 'Update client' description: 'Handles the updating of a client by id' operationId: updateClient parameters: - $ref: '#/components/parameters/X-API-TOKEN' - $ref: '#/components/parameters/X-Requested-With' - $ref: '#/components/parameters/client_include' - name: id in: path description: 'The Client Hashed ID' required: true schema: type: string format: string example: D2J234DFA requestBody: description: Client object that needs to be updated required: true content: application/json: schema: $ref: '#/components/schemas/ClientRequest' responses: 200: description: 'Returns the client object' headers: X-MINIMUM-CLIENT-VERSION: $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION' X-RateLimit-Remaining: $ref: '#/components/headers/X-RateLimit-Remaining' X-RateLimit-Limit: $ref: '#/components/headers/X-RateLimit-Limit' content: application/json: schema: $ref: '#/components/schemas/Client' 401: $ref: '#/components/responses/401' 403: $ref: '#/components/responses/403' 422: $ref: '#/components/responses/422' 429: $ref: '#/components/responses/429' default: $ref: '#/components/responses/default' delete: tags: - clients summary: 'Delete client' description: 'Handles the deletion of a client by id' operationId: deleteClient parameters: - $ref: '#/components/parameters/X-API-TOKEN' - $ref: '#/components/parameters/X-Requested-With' - $ref: '#/components/parameters/client_include' - name: id in: path description: 'The Client Hashed ID' required: true schema: type: string format: string example: D2J234DFA responses: 200: description: 'Returns a HTTP status' headers: X-MINIMUM-CLIENT-VERSION: $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION' X-RateLimit-Remaining: $ref: '#/components/headers/X-RateLimit-Remaining' X-RateLimit-Limit: $ref: '#/components/headers/X-RateLimit-Limit' 401: $ref: '#/components/responses/401' 403: $ref: '#/components/responses/403' 422: $ref: '#/components/responses/422' 429: $ref: '#/components/responses/429' default: $ref: '#/components/responses/default' '/api/v1/clients/{id}/edit': get: tags: - clients summary: 'Edit Client' description: 'Displays a client by id, essentially an alias of the show route' operationId: editClient parameters: - $ref: '#/components/parameters/X-API-TOKEN' - $ref: '#/components/parameters/X-Requested-With' - $ref: '#/components/parameters/include' - name: id in: path description: 'The Client Hashed ID' required: true schema: type: string format: string example: D2J234DFA responses: 200: description: 'Returns the client object' headers: X-MINIMUM-CLIENT-VERSION: $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION' X-RateLimit-Remaining: $ref: '#/components/headers/X-RateLimit-Remaining' X-RateLimit-Limit: $ref: '#/components/headers/X-RateLimit-Limit' content: application/json: schema: $ref: '#/components/schemas/Client' 401: $ref: '#/components/responses/401' 403: $ref: '#/components/responses/403' 422: $ref: '#/components/responses/422' 429: $ref: '#/components/responses/429' default: $ref: '#/components/responses/default' /api/v1/clients/create: get: tags: - clients summary: 'Blank Client' description: 'Returns a blank object with default values' operationId: getClientsCreate parameters: - $ref: '#/components/parameters/X-API-TOKEN' - $ref: '#/components/parameters/X-Requested-With' - $ref: '#/components/parameters/client_include' responses: 200: description: 'A blank client object' headers: X-MINIMUM-CLIENT-VERSION: $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION' X-RateLimit-Remaining: $ref: '#/components/headers/X-RateLimit-Remaining' X-RateLimit-Limit: $ref: '#/components/headers/X-RateLimit-Limit' content: application/json: schema: $ref: '#/components/schemas/Client' 401: $ref: '#/components/responses/401' 403: $ref: '#/components/responses/403' 422: $ref: '#/components/responses/422' 429: $ref: '#/components/responses/429' default: $ref: '#/components/responses/default' /api/v1/clients/bulk: post: tags: - clients summary: 'Bulk client actions' description: 'Archive / Restore / Delete in bulk' operationId: bulkClients parameters: - $ref: '#/components/parameters/X-API-TOKEN' - $ref: '#/components/parameters/X-Requested-With' - $ref: '#/components/parameters/index' requestBody: description: 'Bulk action array' required: true content: application/json: schema: $ref: '#/components/schemas/GenericBulkAction' responses: 200: description: 'The Client listresponse' headers: X-MINIMUM-CLIENT-VERSION: $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION' X-RateLimit-Remaining: $ref: '#/components/headers/X-RateLimit-Remaining' X-RateLimit-Limit: $ref: '#/components/headers/X-RateLimit-Limit' content: application/json: schema: $ref: '#/components/schemas/Client' 401: $ref: '#/components/responses/401' 403: $ref: '#/components/responses/403' 422: $ref: '#/components/responses/422' 429: $ref: '#/components/responses/429' default: $ref: '#/components/responses/default' '/api/v1/clients/{id}/upload': put: tags: - clients summary: 'Add client document' description: 'Handles the uploading of a document to a client, please note due to a quirk in REST you will need to use a _method parameter with value of POST' operationId: uploadClient parameters: - $ref: '#/components/parameters/X-API-TOKEN' - $ref: '#/components/parameters/X-Requested-With' - $ref: '#/components/parameters/client_include' - name: id in: path description: 'The Client Hashed ID' required: true schema: type: string format: string example: D2J234DFA requestBody: required: true content: multipart/form-data: schema: type: object properties: _method: type: string example: POST documents: type: array items: format: binary responses: 200: description: 'Returns the client object' headers: X-MINIMUM-CLIENT-VERSION: $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION' X-RateLimit-Remaining: $ref: '#/components/headers/X-RateLimit-Remaining' X-RateLimit-Limit: $ref: '#/components/headers/X-RateLimit-Limit' content: application/json: schema: $ref: '#/components/schemas/Client' 401: $ref: '#/components/responses/401' 403: $ref: '#/components/responses/403' 422: $ref: '#/components/responses/422' 429: $ref: '#/components/responses/429' default: $ref: '#/components/responses/default' '/api/v1/clients/{id}/purge': post: tags: - clients summary: 'Purge client' description: | Handles purging a clients. Please note this is a destructive action. This action will remove all data associated with the client and cannot be undone. operationId: purgeClient parameters: - $ref: '#/components/parameters/X-API-TOKEN' - $ref: '#/components/parameters/X-Requested-With' - $ref: '#/components/parameters/X-API-PASSWORD' - $ref: '#/components/parameters/client_include' - name: id in: path description: 'The Client Hashed ID' required: true schema: type: string format: string example: D2J234DFA responses: 200: description: 'Returns the client object' headers: X-MINIMUM-CLIENT-VERSION: $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION' X-RateLimit-Remaining: $ref: '#/components/headers/X-RateLimit-Remaining' X-RateLimit-Limit: $ref: '#/components/headers/X-RateLimit-Limit' 401: $ref: '#/components/responses/401' 403: $ref: '#/components/responses/403' 422: $ref: '#/components/responses/422' 429: $ref: '#/components/responses/429' default: $ref: '#/components/responses/default' '/api/v1/clients/{id}/{mergeable_client_hashed_id}/merge': post: tags: - clients summary: 'Merge client' description: | Handles merging 2 clients The id parameter is the client that will be the primary client after the merge has completed. The mergeable_client_hashed_id is the client that will be merged into the primary client, this clients records will be updated and associated with the primary client. operationId: mergeClient parameters: - $ref: '#/components/parameters/X-API-TOKEN' - $ref: '#/components/parameters/X-Requested-With' - $ref: '#/components/parameters/client_include' - $ref: '#/components/parameters/X-API-PASSWORD' - name: id in: path description: 'The Client Hashed ID' required: true schema: type: string format: string example: D2J234DFA - name: mergeable_client_hashed_id in: path description: 'The Mergeable Client Hashed ID' required: true schema: type: string format: string example: D2J234DFA responses: 200: description: 'Returns the client object' headers: X-MINIMUM-CLIENT-VERSION: $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION' X-RateLimit-Remaining: $ref: '#/components/headers/X-RateLimit-Remaining' X-RateLimit-Limit: $ref: '#/components/headers/X-RateLimit-Limit' 401: $ref: '#/components/responses/401' 403: $ref: '#/components/responses/403' 422: $ref: '#/components/responses/422' 429: $ref: '#/components/responses/429' default: $ref: '#/components/responses/default' /api/v1/client_statement: post: tags: - clients summary: 'Client statement PDF' description: 'Return a PDF of the client statement' operationId: clientStatement parameters: - $ref: '#/components/parameters/X-API-TOKEN' - $ref: '#/components/parameters/X-Requested-With' - $ref: '#/components/parameters/include' requestBody: description: 'Statement Options' required: true content: application/json: schema: properties: start_date: description: 'The start date of the statement period - format Y-m-d' type: string end_date: description: 'The start date of the statement period - format Y-m-d' type: string client_id: description: 'The hashed ID of the client' type: string show_payments_table: description: 'Flag which determines if the payments table is shown' type: boolean show_credits_table: description: 'Flag which determines if the credits table is shown' type: boolean show_aging_table: description: 'Flag which determines if the aging table is shown' type: boolean type: object responses: 200: description: 'Returns the client object' headers: X-MINIMUM-CLIENT-VERSION: $ref: '#/components/headers/X-MINIMUM-CLIENT-VERSION' X-RateLimit-Remaining: $ref: '#/components/headers/X-RateLimit-Remaining' X-RateLimit-Limit: $ref: '#/components/headers/X-RateLimit-Limit' content: application/json: schema: $ref: '#/components/schemas/Client' 401: $ref: '#/components/responses/401' 403: $ref: '#/components/responses/403' 422: $ref: '#/components/responses/422' 429: $ref: '#/components/responses/429' 5XX: description: 'Server error' default: $ref: '#/components/responses/default' /api/v1/credits: get: tags: - credits summary: "List credits" description: "Lists credits, search and filters allow fine grained lists to be generated.\n *\n * Query parameters can be added to performed more fine grained filtering of the credits, these are handled by the CreditFilters class which defines the methods available" operationId: getCredits parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" responses: 200: description: "A list of credits" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/Credit' meta: type: object $ref: '#/components/schemas/Meta' 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: '#/components/responses/422' 429: $ref: '#/components/responses/429' 5XX: description: 'Server error' default: $ref: "#/components/responses/default" post: tags: - credits summary: "Create credit" description: "Adds an credit to the system" operationId: storeCredit parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" responses: 200: description: "Returns the saved credit object" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/Credit" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: '#/components/responses/422' 429: $ref: '#/components/responses/429' 5XX: description: 'Server error' default: $ref: "#/components/responses/default" "/api/v1/credits/{id}": get: tags: - credits summary: "Show credit" description: "Displays an credit by id" operationId: showCredit parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" - name: id in: path description: "The Credit Hashed ID" required: true schema: type: string format: string example: D2J234DFA responses: 200: description: "Returns the credit object" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/Credit" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: '#/components/responses/422' 429: $ref: '#/components/responses/429' 5XX: description: 'Server error' default: $ref: "#/components/responses/default" put: tags: - Credits summary: "Update credit" description: "Handles the updating of an Credit by id" operationId: updateCredit parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" - name: id in: path description: "The Credit Hashed ID" required: true schema: type: string format: string example: D2J234DFA responses: 200: description: "Returns the Credit object" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/Credit" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: '#/components/responses/422' 429: $ref: '#/components/responses/429' 5XX: description: 'Server error' default: $ref: "#/components/responses/default" delete: tags: - credits summary: "Delete credit" description: "Handles the deletion of an credit by id" operationId: deleteCredit parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" - name: id in: path description: "The Credit Hashed ID" required: true schema: type: string format: string example: D2J234DFA responses: 200: description: "Returns a HTTP status" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: '#/components/responses/422' 429: $ref: '#/components/responses/429' 5XX: description: 'Server error' default: $ref: "#/components/responses/default" "/api/v1/credits/{id}/edit": get: tags: - credits summary: "Edit credit" description: "Displays an credit by id" operationId: editCredit parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" - name: id in: path description: "The Invoice Hashed ID" required: true schema: type: string format: string example: D2J234DFA responses: 200: description: "Returns the credit object" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/Invoice" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: '#/components/responses/422' 429: $ref: '#/components/responses/429' 5XX: description: 'Server error' default: $ref: "#/components/responses/default" /api/v1/credits/create: get: tags: - credits summary: "Blank credit" description: "Returns a blank object with default values" operationId: getCreditsCreate parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" responses: 200: description: "A blank credit object" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/Credit" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: '#/components/responses/422' 429: $ref: '#/components/responses/429' 5XX: description: 'Server error' default: $ref: "#/components/responses/default" /api/v1/credits/bulk: post: tags: - credits summary: "Bulk credit actions" description: "" operationId: bulkCredits parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/index" requestBody: description: "User credentials" required: true content: application/json: schema: type: array items: description: "Array of hashed IDs to be bulk 'actioned" type: string example: '[D2J234DFA,D2J234DFA,D2J234DFA]' responses: 200: description: "The Bulk Action response" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: '#/components/responses/422' 429: $ref: '#/components/responses/429' 5XX: description: 'Server error' default: $ref: "#/components/responses/default" "/api/v1/credit/{invitation_key}/download": get: tags: - quotes summary: "Download quote PDF" description: "Downloads a specific quote" operationId: downloadCredit parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" - name: invitation_key in: path description: "The Credit Invitation Key" required: true schema: type: string format: string example: D2J234DFA responses: 200: description: "Returns the credit pdf" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: '#/components/responses/422' 429: $ref: '#/components/responses/429' 5XX: description: 'Server error' default: $ref: "#/components/responses/default" "/api/v1/credits/{id}/upload": put: tags: - credits summary: "Upload a credit document" description: "Handles the uploading of a document to a credit" operationId: uploadCredits parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" - name: id in: path description: "The Credit Hashed ID" required: true schema: type: string format: string example: D2J234DFA responses: 200: description: "Returns the Credit object" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/Credit" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: '#/components/responses/422' 429: $ref: '#/components/responses/429' 5XX: description: 'Server error' default: $ref: "#/components/responses/default" /api/v1/payments: get: tags: - payments summary: "List payments" description: "Lists payments, search and filters allow fine grained lists to be generated.\n\n Query parameters can be added to performed more fine grained filtering of the payments, these are handled by the PaymentFilters class which defines the methods available" operationId: getPayments parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" - $ref: "#/components/parameters/status" - $ref: "#/components/parameters/client_id" - $ref: "#/components/parameters/created_at" - $ref: "#/components/parameters/updated_at" - $ref: "#/components/parameters/is_deleted" - $ref: "#/components/parameters/filter_deleted_clients" - $ref: "#/components/parameters/vendor_id" - name: filter in: query description: | Searches across a range of columns including: - amount - date - custom_value1 - custom_value2 - custom_value3 - custom_value4 required: false schema: type: string example: ?filter=10 - name: number in: query description: | Search payments by payment number required: false schema: type: string example: ?number=0001 - name: sort in: query description: Returns the list sorted by column in ascending or descending order. required: false schema: type: string example: id|desc number|desc balance|asc responses: 200: description: "A list of payments" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/Payment' meta: type: object $ref: '#/components/schemas/Meta' 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: '#/components/responses/422' 429: $ref: '#/components/responses/429' 5XX: description: 'Server error' default: $ref: "#/components/responses/default" post: tags: - payments summary: "Create payment" description: "Adds an Payment to the system" operationId: storePayment parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" requestBody: description: "The payment request" required: true content: application/json: schema: $ref: "#/components/schemas/Payment" responses: 200: description: "Returns the saved Payment object" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/Payment" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: '#/components/responses/422' 429: $ref: '#/components/responses/429' 5XX: description: 'Server error' default: $ref: "#/components/responses/default" "/api/v1/payments/{id}": get: tags: - payments summary: "Show payment" description: "Displays an Payment by id" operationId: showPayment parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" - name: id in: path description: "The Payment Hashed ID" required: true schema: type: string format: string example: D2J234DFA responses: 200: description: "Returns the Payment object" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/Payment" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: '#/components/responses/422' 429: $ref: '#/components/responses/429' 5XX: description: 'Server error' default: $ref: "#/components/responses/default" put: tags: - payments summary: "Update payment" description: "Handles the updating of an Payment by id" operationId: updatePayment parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" - name: id in: path description: "The Payment Hashed ID" required: true schema: type: string format: string example: D2J234DFA responses: 200: description: "Returns the Payment object" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/Payment" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: '#/components/responses/422' 429: $ref: '#/components/responses/429' 5XX: description: 'Server error' default: $ref: "#/components/responses/default" delete: tags: - payments summary: "Delete payment" description: "Handles the deletion of an Payment by id" operationId: deletePayment parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" - name: id in: path description: "The Payment Hashed ID" required: true schema: type: string format: string example: D2J234DFA responses: 200: description: "Returns a HTTP status" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: '#/components/responses/422' 429: $ref: '#/components/responses/429' 5XX: description: 'Server error' default: $ref: "#/components/responses/default" "/api/v1/payments/{id}/edit": get: tags: - payments summary: "Edit payment" description: "Displays an Payment by id" operationId: editPayment parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" - name: id in: path description: "The Payment Hashed ID" required: true schema: type: string format: string example: D2J234DFA responses: 200: description: "Returns the Payment object" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/Payment" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: '#/components/responses/422' 429: $ref: '#/components/responses/429' 5XX: description: 'Server error' default: $ref: "#/components/responses/default" /api/v1/payments/create: get: tags: - payments summary: "Blank payment" description: "Returns a blank object with default values" operationId: getPaymentsCreate parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" responses: 200: description: "A blank Payment object" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/Payment" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: '#/components/responses/422' 429: $ref: '#/components/responses/429' 5XX: description: 'Server error' default: $ref: "#/components/responses/default" /api/v1/payments/refund: post: tags: - payments summary: "Refund payment" description: "Adds an Refund to the system" operationId: storeRefund parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" requestBody: description: "The refund request" required: true content: application/json: schema: $ref: "#/components/schemas/Payment" responses: 200: description: "Returns the saved Payment object" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/Payment" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: '#/components/responses/422' 429: $ref: '#/components/responses/429' 5XX: description: 'Server error' default: $ref: "#/components/responses/default" /api/v1/payments/bulk: post: tags: - payments summary: "Bulk payment actions" description: "" operationId: bulkPayments parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/index" requestBody: description: "User credentials" required: true content: application/json: schema: type: array items: description: "Array of hashed IDs to be bulk 'actioned" type: integer example: "[0,1,2,3]" responses: 200: description: "The Payment response" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/Payment" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: '#/components/responses/422' 429: $ref: '#/components/responses/429' 5XX: description: 'Server error' default: $ref: "#/components/responses/default" "/api/v1/payments/{id}/{action}": get: deprecated: true tags: - payments summary: "Custom payment actions" description: "Performs a custom action on an Payment.\n\n The current range of actions are as follows\n - clone_to_Payment\n - clone_to_quote\n - history\n - delivery_note\n - mark_paid\n - download\n - archive\n - delete\n - email" operationId: actionPayment parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" - name: id in: path description: "The Payment Hashed ID" required: true schema: type: string format: string example: D2J234DFA - name: action in: path description: "The action string to be performed" required: true schema: type: string format: string example: clone_to_quote responses: 200: description: "Returns the Payment object" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/Payment" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: '#/components/responses/422' 429: $ref: '#/components/responses/429' 5XX: description: 'Server error' default: $ref: "#/components/responses/default" "/api/v1/payments/{id}/upload": put: tags: - payments summary: "Upload a payment document" description: "Handles the uploading of a document to a payment" operationId: uploadPayment parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" - name: id in: path description: "The Payment Hashed ID" required: true schema: type: string format: string example: D2J234DFA responses: 200: description: "Returns the Payment object" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/Payment" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: '#/components/responses/422' 429: $ref: '#/components/responses/429' 5XX: description: 'Server error' default: $ref: "#/components/responses/default" /api/v1/invoices: get: tags: - invoices summary: "List invoices" description: | Lists invoices with the option to chain multiple query parameters allowing fine grained filtering of the list. operationId: getInvoices parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" - $ref: "#/components/parameters/status" - $ref: "#/components/parameters/client_id" - $ref: "#/components/parameters/created_at" - $ref: "#/components/parameters/updated_at" - $ref: "#/components/parameters/is_deleted" - $ref: "#/components/parameters/filter_deleted_clients" - $ref: "#/components/parameters/vendor_id" - name: client_status in: query description: | A comma separated list of invoice status strings. Valid options include: - all - paid - unpaid - overdue required: false schema: type: string example: ?client_status=paid,unpaid - name: number in: query description: | Search invoices by invoice number required: false schema: type: string example: ?number=INV-001 - name: filter in: query description: | Searches across a range of columns including: - number - po_number - date - amount - balance - custom_value1 - custom_value2 - custom_value3 - custom_value4 required: false schema: type: string example: ?filter=bob - name: without_deleted_clients in: query description: | Returns the invoice list without the invoices of deleted clients. required: false schema: type: string example: ?without_deleted_clients= - name: overdue in: query description: | Returns the list of invoices that are overdue required: false schema: type: string example: ?over_due= - name: payable in: query description: | Returns the invoice list that are payable for a defined client. Please note, you must pass the client_id as the value for this query parameter required: false schema: type: string example: ?payable={client_id} - name: sort in: query description: Returns the list sorted by column in ascending or descending order. required: false schema: type: string example: id|desc number|desc balance|asc - name: private_notes in: query description: | Searches on the private_notes field of the invoices required: false schema: type: string example: ?private_notes=super secret responses: 200: description: "A list of invoices" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/Invoice' meta: type: object $ref: '#/components/schemas/Meta' 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: '#/components/responses/422' 429: $ref: '#/components/responses/429' 5XX: description: 'Server error' default: $ref: "#/components/responses/default" post: tags: - invoices summary: "Create invoice" description: | Adds a invoice to a company Triggered actions are available when updating or creating an invoice. These are query parameters that can be chained in order to perform additional actions on the entity, these include: ``` ?send_email=true [Saves and sends the invoice] ?mark_sent=true [Saves and marks the invoice as sent] ?paid=true [Saves and marks the invoice as paid] ?amount_paid=100 [Saves and marks the invoice as paid with the given amount] ?cancel=true [Saves and marks the invoice as cancelled] ?save_default_footer=true [Saves the current footer as the default footer] ?save_default_terms=true [Saves the current terms as the default terms] ``` operationId: storeInvoice parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/InvoiceRequest" responses: 200: description: "Returns the saved invoice entity" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/Invoice" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: '#/components/responses/422' 429: $ref: '#/components/responses/429' 5XX: description: 'Server error' default: $ref: "#/components/responses/default" "/api/v1/invoices/{id}": get: tags: - invoices summary: "Show invoice" description: "Displays an invoice by id" operationId: showInvoice parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" - name: id in: path description: "The Invoice Hashed ID" required: true schema: type: string format: string example: D2J234DFA responses: 200: description: "Returns the invoice object" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/Invoice" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: '#/components/responses/422' 429: $ref: '#/components/responses/429' 5XX: description: 'Server error' default: $ref: "#/components/responses/default" put: tags: - invoices summary: "Update invoice" description: | Handles the updating of an invoice by id. Triggered actions are available when updating or creating an invoice. These are query parameters that can be chained in order to perform additional actions on the entity, these include: ``` ?send_email=true [Saves and sends the invoice] ?mark_sent=true [Saves and marks the invoice as sent] ?paid=true [Saves and marks the invoice as paid] ?amount_paid=100 [Saves and marks the invoice as paid with the given amount] ?cancel=true [Saves and marks the invoice as cancelled] ?save_default_footer=true [Saves the current footer as the default footer] ?save_default_terms=true [Saves the current terms as the default terms] ``` operationId: updateInvoice parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" - name: id in: path description: "The Invoice Hashed ID" required: true schema: type: string format: string example: D2J234DFA responses: 200: description: "Returns the invoice object" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/Invoice" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: '#/components/responses/422' 429: $ref: '#/components/responses/429' 5XX: description: 'Server error' default: $ref: "#/components/responses/default" delete: tags: - invoices summary: "Delete invoice" description: "Handles the deletion of an invoice by id" operationId: deleteInvoice parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" - name: id in: path description: "The Invoice Hashed ID" required: true schema: type: string format: string example: D2J234DFA responses: 200: description: "Returns a HTTP status" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: '#/components/responses/422' 429: $ref: '#/components/responses/429' 5XX: description: 'Server error' default: $ref: "#/components/responses/default" "/api/v1/invoices/{id}/edit": get: tags: - invoices summary: "Edit invoice" description: "Displays an invoice by id for editting" operationId: editInvoice parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" - name: id in: path description: "The Invoice Hashed ID" required: true schema: type: string format: string example: D2J234DFA responses: 200: description: "Returns the invoice object" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/Invoice" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: '#/components/responses/422' 429: $ref: '#/components/responses/429' 5XX: description: 'Server error' default: $ref: "#/components/responses/default" /api/v1/invoices/create: get: tags: - invoices summary: "Blank invoice" description: "Returns a blank object with default values" operationId: getInvoicesCreate parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" responses: 200: description: "A blank invoice object" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/Invoice" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: '#/components/responses/422' 429: $ref: '#/components/responses/429' 5XX: description: 'Server error' default: $ref: "#/components/responses/default" /api/v1/invoices/bulk: post: tags: - invoices summary: "Bulk invoice actions" description: | There are multiple actions that are available including: operationId: bulkInvoices parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/index" requestBody: description: "Bulk action details" required: true content: application/json: schema: type: object properties: action: required: true type: string description: | The action to be performed, options include: - `bulk_download` Bulk download an array of invoice PDFs (These are sent to the admin via email.) - `download` Download a single PDF. (Returns a single PDF object) - `bulk_print` Merges an array of Invoice PDFs for easy one click printing. - `auto_bill` Attempts to automatically bill the invoices with the payment method on file. - `clone_to_invoice` Returns a clone of the invoice. - `clone_to_quote` Returns a quote cloned using the properties of the given invoice. - `mark_paid` Marks an array of invoices as paid. - `mark_sent` Marks an array of invoices as sent. - `restore` Restores an array of invoices - `delete` Deletes an array of invoices - `archive` Archives an array of invoices - `cancel` Cancels an array of invoices - `email` Emails an array of invoices - `send_email` Emails an array of invoices. Requires additional properties to be sent. `email_type` ids: required: true type: array items: description: "Array of hashed IDs to be bulk 'actioned - ['D2J234DFA','D2J234DFA','D2J234DFA']" type: string example: action: bulk_download ids: "['D2J234DFA','D2J234DFA','D2J234DFA']" responses: 200: description: "The Bulk Action response" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: '#/components/responses/422' 429: $ref: '#/components/responses/429' 5XX: description: 'Server error' default: $ref: "#/components/responses/default" "/api/v1/invoices/{id}/{action}": get: deprecated: true tags: - invoices summary: "Custom invoice action" description: | Performs a custom action on an invoice. The current range of actions are as follows - clone_to_invoice - clone_to_quote - history - delivery_note - mark_paid - download - archive - delete - email operationId: actionInvoice parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" - name: id in: path description: "The Invoice Hashed ID" required: true schema: type: string format: string example: D2J234DFA - name: action in: path description: "The action string to be performed" required: true schema: type: string format: string example: clone_to_quote responses: 200: description: "Returns the invoice object" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/Invoice" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: '#/components/responses/422' 429: $ref: '#/components/responses/429' 5XX: description: 'Server error' default: $ref: "#/components/responses/default" "/api/v1/invoice/{invitation_key}/download": get: tags: - invoices summary: "Download invoice PDF" description: "Downloads a specific invoice" operationId: downloadInvoice parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" - name: invitation_key in: path description: "The Invoice Invitation Key" required: true schema: type: string format: string example: D2J234DFA responses: 200: description: "Returns the invoice pdf" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: '#/components/responses/422' 429: $ref: '#/components/responses/429' 5XX: description: 'Server error' default: $ref: "#/components/responses/default" "/api/v1/invoices/{id}/delivery_note": get: tags: - invoices summary: "Download delivery note" description: "Downloads a specific invoice delivery notes" operationId: deliveryNote parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" - name: id in: path description: "The Invoice Hahsed Id" required: true schema: type: string format: string example: D2J234DFA responses: 200: description: "Returns the invoice delivery note pdf" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: '#/components/responses/422' 429: $ref: '#/components/responses/429' 5XX: description: 'Server error' default: $ref: "#/components/responses/default" "/api/v1/invoices/{id}/upload": post: tags: - invoices summary: "Add invoice document" description: "Handles the uploading of a document to a invoice" operationId: uploadInvoice parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" - name: id in: path description: "The Invoice Hashed ID" required: true schema: type: string format: string example: D2J234DFA requestBody: description: "File Upload Body" required: true content: multipart/form-data: schema: type: object properties: _method: type: string example: PUT documents: type: array items: description: "Array of binary documents for upload" type: string format: binary responses: 200: description: "Returns the Invoice object" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/Invoice" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: '#/components/responses/422' 429: $ref: '#/components/responses/429' 5XX: description: 'Server error' default: $ref: "#/components/responses/default" /api/v1/recurring_invoices: get: tags: - Recurring Invoices summary: "List recurring invoices" description: | Lists invoices with the option to chain multiple query parameters allowing fine grained filtering of the list. operationId: getRecurringInvoices parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" - $ref: "#/components/parameters/client_id" - $ref: "#/components/parameters/created_at" - $ref: "#/components/parameters/updated_at" - $ref: "#/components/parameters/is_deleted" - $ref: "#/components/parameters/filter_deleted_clients" - $ref: "#/components/parameters/vendor_id" - name: filter in: query description: | Searches across a range of columns including: - custom_value1 - custom_value2 - custom_value3 - custom_value4 required: false schema: type: string example: ?filter=bob - name: client_status in: query description: | A comma separated list of invoice status strings. Valid options include: - all - active - paused - completed required: false schema: type: string example: ?client_status=active,paused - name: sort in: query description: Returns the list sorted by column in ascending or descending order. required: false schema: type: string example: id|desc number|desc balance|asc responses: 200: description: "A list of recurring_invoices" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/RecurringInvoice' meta: type: object $ref: '#/components/schemas/Meta' 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: '#/components/responses/422' 429: $ref: '#/components/responses/429' 5XX: description: 'Server error' default: $ref: "#/components/responses/default" post: tags: - Recurring Invoices summary: "Create recurring invoice" description: "Adds a Recurring Invoice to the system" operationId: storeRecurringInvoice parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" responses: 200: description: "Returns the saved RecurringInvoice object" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/RecurringInvoice" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: '#/components/responses/422' 429: $ref: '#/components/responses/429' 5XX: description: 'Server error' default: $ref: "#/components/responses/default" "/api/v1/recurring_invoices/{id}": get: tags: - Recurring Invoices summary: "Show recurring invoice" description: "Displays an RecurringInvoice by id" operationId: showRecurringInvoice parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" - name: id in: path description: "The RecurringInvoice Hashed ID" required: true schema: type: string format: string example: D2J234DFA responses: 200: description: "Returns the RecurringInvoice object" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/RecurringInvoice" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: '#/components/responses/422' 429: $ref: '#/components/responses/429' 5XX: description: 'Server error' default: $ref: "#/components/responses/default" put: tags: - Recurring Invoices summary: "Update recurring invoice" description: "Handles the updating of an RecurringInvoice by id" operationId: updateRecurringInvoice parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" - name: id in: path description: "The RecurringInvoice Hashed ID" required: true schema: type: string format: string example: D2J234DFA responses: 200: description: "Returns the RecurringInvoice object" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/RecurringInvoice" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: '#/components/responses/422' 429: $ref: '#/components/responses/429' 5XX: description: 'Server error' default: $ref: "#/components/responses/default" delete: tags: - Recurring Invoices summary: "Delete recurring invoice" description: "Handles the deletion of an RecurringInvoice by id" operationId: deleteRecurringInvoice parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" - name: id in: path description: "The RecurringInvoice Hashed ID" required: true schema: type: string format: string example: D2J234DFA responses: 200: description: "Returns a HTTP status" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: '#/components/responses/422' 429: $ref: '#/components/responses/429' 5XX: description: 'Server error' default: $ref: "#/components/responses/default" "/api/v1/recurring_invoices/{id}/edit": get: tags: - Recurring Invoices summary: "Edit recurring invoice" description: "Displays an RecurringInvoice by id" operationId: editRecurringInvoice parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" - name: id in: path description: "The RecurringInvoice Hashed ID" required: true schema: type: string format: string example: D2J234DFA responses: 200: description: "Returns the RecurringInvoice object" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/RecurringInvoice" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: '#/components/responses/422' 429: $ref: '#/components/responses/429' 5XX: description: 'Server error' default: $ref: "#/components/responses/default" /api/v1/recurring_invoices/create: get: tags: - Recurring Invoices summary: "Blank recurring invoice" description: "Returns a blank object with default values" operationId: getRecurringInvoicesCreate parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" responses: 200: description: "A blank RecurringInvoice object" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/RecurringInvoice" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: '#/components/responses/422' 429: $ref: '#/components/responses/429' 5XX: description: 'Server error' default: $ref: "#/components/responses/default" /api/v1/recurring_invoices/bulk: post: tags: - Recurring Invoices summary: "Bulk recurring invoice actions" description: | There are multiple actions that are available including: operationId: bulkRecurringInvoices parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/index" requestBody: description: "Bulk action details" required: true content: application/json: schema: type: object properties: action: type: string description: | The action to be performed, options include: - `start` Starts (or restarts) the recurring invoice. **note** if the recurring invoice has been stopped for a long time, it will attempt to catch back up firing a new Invoice every hour per interval that has been missed. If you do not wish to have the recurring invoice catch up, you should set the next_send_date to the correct date you wish the recurring invoice to commence from. - `stop` Stops the recurring invoice. - `send_now` Force sends the recurring invoice - this option is only available when the recurring invoice is in a draft state. - `restore` Restores the recurring invoice from an archived or deleted state. - `archive` Archives the recurring invoice. The recurring invoice will not fire in this state. - `delete` Deletes a recurring invoice. ids: type: array items: description: "Array of hashed IDs to be bulk 'actioned - ['D2J234DFA','D2J234DFA','D2J234DFA']" type: string example: action: start ids: "['D2J234DFA','D2J234DFA','D2J234DFA']" responses: 200: description: "The RecurringInvoice response" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/RecurringInvoice" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: '#/components/responses/422' 429: $ref: '#/components/responses/429' 5XX: description: 'Server error' default: $ref: "#/components/responses/default" "/api/v1/recurring_invoices/{id}/{action}": get: deprecated: true tags: - Recurring Invoices summary: "Custom recurring invoice action" description: "Performs a custom action on an RecurringInvoice.\n\n The current range of actions are as follows\n - clone_to_RecurringInvoice\n - clone_to_quote\n - history\n - delivery_note\n - mark_paid\n - download\n - archive\n - delete\n - email" operationId: actionRecurringInvoice parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" - name: id in: path description: "The RecurringInvoice Hashed ID" required: true schema: type: string format: string example: D2J234DFA - name: action in: path description: "The action string to be performed" required: true schema: type: string format: string example: clone_to_quote responses: 200: description: "Returns the RecurringInvoice object" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/RecurringInvoice" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: '#/components/responses/422' 429: $ref: '#/components/responses/429' 5XX: description: 'Server error' default: $ref: "#/components/responses/default" "/api/v1/recurring_invoice/{invitation_key}/download": get: tags: - Recurring Invoices summary: "Download recurring invoice PDF" description: "Downloads a specific invoice" operationId: downloadRecurringInvoice parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" - name: invitation_key in: path description: "The Recurring Invoice Invitation Key" required: true schema: type: string format: string example: D2J234DFA responses: 200: description: "Returns the recurring invoice pdf" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: '#/components/responses/422' 429: $ref: '#/components/responses/429' 5XX: description: 'Server error' default: $ref: "#/components/responses/default" "/api/v1/recurring_invoices/{id}/upload": put: tags: - Recurring Invoices summary: "Add recurring invoice document" description: "Handles the uploading of a document to a recurring_invoice" operationId: uploadRecurringInvoice parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" - name: id in: path description: "The RecurringInvoice Hashed ID" required: true schema: type: string format: string example: D2J234DFA responses: 200: description: "Returns the RecurringInvoice object" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/RecurringInvoice" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: '#/components/responses/422' 429: $ref: '#/components/responses/429' 5XX: description: 'Server error' default: $ref: "#/components/responses/default" /api/v1/quotes: get: tags: - quotes summary: "List quotes" description: "Lists quotes, search and filters allow fine grained lists to be generated.\n *\n * Query parameters can be added to performed more fine grained filtering of the quotes, these are handled by the QuoteFilters class which defines the methods available" operationId: getQuotes parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" - $ref: "#/components/parameters/status" - $ref: "#/components/parameters/client_id" - $ref: "#/components/parameters/created_at" - $ref: "#/components/parameters/updated_at" - $ref: "#/components/parameters/is_deleted" - $ref: "#/components/parameters/filter_deleted_clients" - $ref: "#/components/parameters/vendor_id" - name: filter in: query description: | Searches across a range of columns including: - number - custom_value1 - custom_value2 - custom_value3 - custom_value4 required: false schema: type: string example: ?filter=bob - name: client_status in: query description: | A comma separated list of quote status strings. Valid options include: - all - draft - sent - approved - expired - upcoming required: false schema: type: string example: ?client_status=paid,unpaid - name: number in: query description: | Search quote by quote number required: false schema: type: string example: ?number=Q-001 - name: sort in: query description: Returns the list sorted by column in ascending or descending order. required: false schema: type: string example: id|desc number|desc balance|asc responses: 200: description: "A list of quotes" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/Quote' meta: type: object $ref: '#/components/schemas/Meta' 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: '#/components/responses/422' 429: $ref: '#/components/responses/429' 5XX: description: 'Server error' default: $ref: "#/components/responses/default" post: tags: - quotes summary: "Create quote" description: "Adds an Quote to the system" operationId: storeQuote parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" responses: 200: description: "Returns the saved Quote object" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/Quote" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: '#/components/responses/422' 429: $ref: '#/components/responses/429' 5XX: description: 'Server error' default: $ref: "#/components/responses/default" "/api/v1/quotes/{id}": get: tags: - quotes summary: "Show quote" description: "Displays an Quote by id" operationId: showQuote parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" - name: id in: path description: "The Quote Hashed ID" required: true schema: type: string format: string example: D2J234DFA responses: 200: description: "Returns the Quote object" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/Quote" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: '#/components/responses/422' 429: $ref: '#/components/responses/429' 5XX: description: 'Server error' default: $ref: "#/components/responses/default" put: tags: - quotes summary: "Update quote" description: "Handles the updating of an Quote by id" operationId: updateQuote parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" - name: id in: path description: "The Quote Hashed ID" required: true schema: type: string format: string example: D2J234DFA responses: 200: description: "Returns the Quote object" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/Quote" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: '#/components/responses/422' 429: $ref: '#/components/responses/429' 5XX: description: 'Server error' default: $ref: "#/components/responses/default" delete: tags: - quotes summary: "Delete quote" description: "Handles the deletion of an Quote by id" operationId: deleteQuote parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" - name: id in: path description: "The Quote Hashed ID" required: true schema: type: string format: string example: D2J234DFA responses: 200: description: "Returns a HTTP status" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: '#/components/responses/422' 429: $ref: '#/components/responses/429' 5XX: description: 'Server error' default: $ref: "#/components/responses/default" "/api/v1/quotes/{id}/edit": get: tags: - quotes summary: "Edit quote" description: "Displays an Quote by id" operationId: editQuote parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" - name: id in: path description: "The Quote Hashed ID" required: true schema: type: string format: string example: D2J234DFA responses: 200: description: "Returns the Quote object" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/Quote" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: '#/components/responses/422' 429: $ref: '#/components/responses/429' 5XX: description: 'Server error' default: $ref: "#/components/responses/default" /api/v1/quotes/create: get: tags: - quotes summary: "Blank quote" description: "Returns a blank object with default values" operationId: getQuotesCreate parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" responses: 200: description: "A blank Quote object" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/Quote" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: '#/components/responses/422' 429: $ref: '#/components/responses/429' 5XX: description: 'Server error' default: $ref: "#/components/responses/default" /api/v1/quotes/bulk: post: tags: - quotes summary: "Bulk quote actions" description: "" operationId: bulkQuotes parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/index" requestBody: description: "Hashed ids" required: true content: application/json: schema: type: array items: description: "Array of hashed IDs to be bulk 'actioned" type: integer example: "[0,1,2,3]" responses: 200: description: "The Quote response" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/Quote" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: '#/components/responses/422' 429: $ref: '#/components/responses/429' 5XX: description: 'Server error' default: $ref: "#/components/responses/default" "/api/v1/quotes/{id}/{action}": get: deprecated: true tags: - quotes summary: "Performs a custom action on an Quote" description: "Performs a custom action on an Quote.\n\n The current range of actions are as follows\n - clone_to_quote\n - history\n - delivery_note\n - mark_paid\n - download\n - archive\n - delete\n - convert\n - convert_to_invoice\n - email" operationId: actionQuote parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" - name: id in: path description: "The Quote Hashed ID" required: true schema: type: string format: string example: D2J234DFA - name: action in: path description: "The action string to be performed" required: true schema: type: string format: string example: clone_to_quote responses: 200: description: "Returns the Quote object" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/Quote" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: '#/components/responses/422' 429: $ref: '#/components/responses/429' 5XX: description: 'Server error' default: $ref: "#/components/responses/default" "/api/v1/quote/{invitation_key}/download": get: tags: - quotes summary: "Download quote PDF" description: "Downloads a specific quote" operationId: downloadQuote parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" - name: invitation_key in: path description: "The Quote Invitation Key" required: true schema: type: string format: string example: D2J234DFA responses: 200: description: "Returns the quote pdf" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: '#/components/responses/422' 429: $ref: '#/components/responses/429' 5XX: description: 'Server error' default: $ref: "#/components/responses/default" "/api/v1/quotes/{id}/upload": put: tags: - quotes summary: "Upload a quote document" description: "Handles the uploading of a document to a quote" operationId: uploadQuote parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" - name: id in: path description: "The Quote Hashed ID" required: true schema: type: string format: string example: D2J234DFA responses: 200: description: "Returns the Quote object" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/Quote" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: '#/components/responses/422' 429: $ref: '#/components/responses/429' 5XX: description: 'Server error' default: $ref: "#/components/responses/default" /api/v1/purchase_orders: get: tags: - Purchase Orders summary: "List purchase orders" description: "Lists purchase orders, search and filters allow fine grained lists to be generated.\n *\n * Query parameters can be added to performed more fine grained filtering of the purchase orders, these are handled by the PurchaseOrderFilters class which defines the methods available" operationId: getPurchaseOrders parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" responses: 200: description: "A list of purchase orders" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/PurchaseOrder' meta: type: object $ref: '#/components/schemas/Meta' 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: '#/components/responses/422' 429: $ref: '#/components/responses/429' 5XX: description: 'Server error' default: $ref: "#/components/responses/default" post: tags: - Purchase Orders summary: "Create purchase order" description: "Adds an purchase order to the system" operationId: storePurchaseOrder parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" responses: 200: description: "Returns the saved purchase order object" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/PurchaseOrder" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: '#/components/responses/422' 429: $ref: '#/components/responses/429' 5XX: description: 'Server error' default: $ref: "#/components/responses/default" "/api/v1/purchase_orders/{id}": get: tags: - Purchase Orders summary: "Show purchase order" description: "Displays an purchase order by id" operationId: showPurchaseOrder parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" - name: id in: path description: "The Purchase order Hashed ID" required: true schema: type: string format: string example: D2J234DFA responses: 200: description: "Returns the purchase order object" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/PurchaseOrder" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: '#/components/responses/422' 429: $ref: '#/components/responses/429' 5XX: description: 'Server error' default: $ref: "#/components/responses/default" "/api/v1/purchase_order/{id}": put: tags: - Purchase Orders summary: "Update purchase order" description: "Handles the updating of an purchase order by id" operationId: updatePurchaseOrder parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" - name: id in: path description: "The purchase order Hashed ID" required: true schema: type: string format: string example: D2J234DFA responses: 200: description: "Returns the purchase order object" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/PurchaseOrder" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: '#/components/responses/422' 429: $ref: '#/components/responses/429' 5XX: description: 'Server error' default: $ref: "#/components/responses/default" delete: tags: - Purchase Orders summary: "Delete purchase order" description: "Handles the deletion of an purchase orders by id" operationId: deletePurchaseOrder parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" - name: id in: path description: "The purhcase order Hashed ID" required: true schema: type: string format: string example: D2J234DFA responses: 200: description: "Returns a HTTP status" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: '#/components/responses/422' 429: $ref: '#/components/responses/429' 5XX: description: 'Server error' default: $ref: "#/components/responses/default" "/api/v1/purchase_orders/{id}/edit": get: tags: - Purchase Orders summary: "Edit purchase order" description: "Displays an purchase order by id" operationId: editPurchaseOrder parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" - name: id in: path description: "The purchase order Hashed ID" required: true schema: type: string format: string example: D2J234DFA responses: 200: description: "Returns the purchase order object" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/PurchaseOrder" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: '#/components/responses/422' 429: $ref: '#/components/responses/429' 5XX: description: 'Server error' default: $ref: "#/components/responses/default" /api/v1/purchase_orders/create: get: tags: - Purchase Orders summary: "Blank purchase order" description: "Returns a blank object with default values" operationId: getPurchaseOrderCreate parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" responses: 200: description: "A blank purchase order object" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/PurchaseOrder" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: '#/components/responses/422' 429: $ref: '#/components/responses/429' 5XX: description: 'Server error' default: $ref: "#/components/responses/default" /api/v1/purchase_orders/bulk: post: tags: - Purchase Orders summary: "Bulk purchase order action" description: "" operationId: bulkPurchaseOrderss parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/index" requestBody: description: "Purchase Order IDS" required: true content: application/json: schema: type: array items: description: "Array of hashed IDs to be bulk 'actioned" type: integer example: "[0,1,2,3]" responses: 200: description: "The Bulk Action response" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: '#/components/responses/422' 429: $ref: '#/components/responses/429' 5XX: description: 'Server error' default: $ref: "#/components/responses/default" "/api/v1/purchase_orders/{id}/{action}": get: deprecated: true tags: - Purchase Orders summary: "Custom purchase order actions" description: "Performs a custom action on an purchase order.\n *\n * The current range of actions are as follows\n * - mark_paid\n * - download\n * - archive\n * - delete\n * - email" operationId: actionPurchaseOrder parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" - name: id in: path description: "The Purchase Order Hashed ID" required: true schema: type: string format: string example: D2J234DFA - name: action in: path description: "The action string to be performed" required: true schema: type: string format: string example: clone_to_quote responses: 200: description: "Returns the purchase order object" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/PurchaseOrder" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: '#/components/responses/422' 429: $ref: '#/components/responses/429' 5XX: description: 'Server error' default: $ref: "#/components/responses/default" "/api/v1/purchase_orders/{id}/upload": put: tags: - Purchase Orders summary: "Uploads a purchase order document" description: "Handles the uploading of a document to a purchase_order" operationId: uploadPurchaseOrder parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" - name: id in: path description: "The Purchase Order Hashed ID" required: true schema: type: string format: string example: D2J234DFA responses: 200: description: "Returns the Purchase Order object" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/PurchaseOrder" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: '#/components/responses/422' 429: $ref: '#/components/responses/429' 5XX: description: 'Server error' default: $ref: "#/components/responses/default" "/api/v1/purchase_order/{invitation_key}/download": get: tags: - Purchase Orders summary: "Download a purchase order PDF" description: "Downloads a specific purchase order" operationId: downloadPurchaseOrder parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" - name: invitation_key in: path description: "The Purchase Order Invitation Key" required: true schema: type: string format: string example: D2J234DFA responses: 200: description: "Returns the Purchase Order pdf" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: '#/components/responses/422' 429: $ref: '#/components/responses/429' 5XX: description: 'Server error' default: $ref: "#/components/responses/default" /api/v1/vendors: get: tags: - vendors summary: "List vendors" description: "Lists vendors, search and filters allow fine grained lists to be generated.\n\n Query parameters can be added to performed more fine grained filtering of the vendors, these are handled by the VendorFilters class which defines the methods available" operationId: getVendors parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" - $ref: "#/components/parameters/index" responses: 200: description: "A list of vendors" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/Vendor' meta: type: object $ref: '#/components/schemas/Meta' 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: '#/components/responses/422' 429: $ref: '#/components/responses/429' 5XX: description: 'Server error' default: $ref: "#/components/responses/default" post: tags: - vendors summary: "Create vendor" description: "Adds a vendor to a company" operationId: storeVendor parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" responses: 200: description: "Returns the saved clivendorent object" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/Vendor" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: '#/components/responses/422' 429: $ref: '#/components/responses/429' 5XX: description: 'Server error' default: $ref: "#/components/responses/default" "/api/v1/vendors/{id}": get: tags: - vendors summary: "Show vendor" description: "Displays a vendor by id" operationId: showVendor parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" - name: id in: path description: "The vendor Hashed ID" required: true schema: type: string format: string example: D2J234DFA responses: 200: description: "Returns the vendor object" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/Vendor" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: '#/components/responses/422' 429: $ref: '#/components/responses/429' 5XX: description: 'Server error' default: $ref: "#/components/responses/default" put: tags: - vendors summary: "Update vendor" description: "Handles the updating of a vendor by id" operationId: updateVendor parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" - name: id in: path description: "The Vendor Hashed ID" required: true schema: type: string format: string example: D2J234DFA responses: 200: description: "Returns the vendor object" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/Vendor" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: '#/components/responses/422' 429: $ref: '#/components/responses/429' 5XX: description: 'Server error' default: $ref: "#/components/responses/default" delete: tags: - vendors summary: "Delete vendor" description: "Handles the deletion of a vendor by id" operationId: deleteVendor parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" - name: id in: path description: "The Vendor Hashed ID" required: true schema: type: string format: string example: D2J234DFA responses: 200: description: "Returns a HTTP status" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: '#/components/responses/422' 429: $ref: '#/components/responses/429' 5XX: description: 'Server error' default: $ref: "#/components/responses/default" "/api/v1/vendors/{id}/edit": get: tags: - vendors summary: "Edit vendor" description: "Displays a vendor by id" operationId: editVendor parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" - name: id in: path description: "The Vendor Hashed ID" required: true schema: type: string format: string example: D2J234DFA responses: 200: description: "Returns the vendor object" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/Vendor" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: '#/components/responses/422' 429: $ref: '#/components/responses/429' 5XX: description: 'Server error' default: $ref: "#/components/responses/default" /api/v1/vendors/create: get: tags: - vendors summary: "Blank vendor" description: "Returns a blank vendor with default values" operationId: getVendorsCreate parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" responses: 200: description: "A blank vendor object" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/Vendor" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: '#/components/responses/422' 429: $ref: '#/components/responses/429' 5XX: description: 'Server error' default: $ref: "#/components/responses/default" /api/v1/vendors/bulk: post: tags: - vendors summary: "Bulk vendor actions" description: "" operationId: bulkVendors parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/index" requestBody: description: "User credentials" required: true content: application/json: schema: type: array items: description: "Array of hashed IDs to be bulk 'actioned" type: integer example: "[0,1,2,3]" responses: 200: description: "The Vendor User response" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/Vendor" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: '#/components/responses/422' 429: $ref: '#/components/responses/429' 5XX: description: 'Server error' default: $ref: "#/components/responses/default" "/api/v1/vendors/{id}/upload": put: tags: - vendors summary: "Uploads a vendor document" description: "Handles the uploading of a document to a vendor" operationId: uploadVendor parameters: - $ref: "#/components/parameters/X-API-TOKEN" - $ref: "#/components/parameters/X-Requested-With" - $ref: "#/components/parameters/include" - name: id in: path description: "The Vendor Hashed ID" required: true schema: type: string format: string example: D2J234DFA responses: 200: description: "Returns the Vendor object" headers: X-MINIMUM-CLIENT-VERSION: $ref: "#/components/headers/X-MINIMUM-CLIENT-VERSION" X-RateLimit-Remaining: $ref: "#/components/headers/X-RateLimit-Remaining" X-RateLimit-Limit: $ref: "#/components/headers/X-RateLimit-Limit" content: application/json: schema: $ref: "#/components/schemas/Vendor" 401: $ref: "#/components/responses/401" 403: $ref: "#/components/responses/403" 422: $ref: '#/components/responses/422' 429: $ref: '#/components/responses/429' 5XX: description: 'Server error' default: $ref: "#/components/responses/default" components: headers: X-MINIMUM-CLIENT-VERSION: description: 'The API version' schema: type: number X-RateLimit-Remaining: description: 'The number of requests left for the time window.' schema: type: integer X-RateLimit-Limit: description: 'The total number of requests in a given time window.' schema: type: integer components: securitySchemes: ApiKeyAuth: type: apiKey in: header name: X-API-TOKEN responses: examples: Client: - id: Opnel5aKBz user_id: Ua6Rw4pVbS assigned_user_id: Ua6Rw4pVbS company_id: Co7Vn3yLmW name: "Jim's Housekeeping" website: https://www.jims-housekeeping.com private_notes: Client prefers email communication over phone calls client_hash: asdfkjhk342hjhbfdvmnfb1 industry_id: 5 size_id: 2 address1: 123 Main St address2: Apt 4B city: Beverly Hills state: California postal_code: 90210 phone: 555-3434-3434 country_id: 1 custom_value1: Email custom_value2: John Doe custom_value3: Yes custom_value4: $50,000 vat_number: VAT123456 id_number: ID123456 number: CL-0001 shipping_address1: 5 Wallaby Way shipping_address2: Suite 5 shipping_city: Perth shipping_state: Western Australia shipping_postal_code: 6110 shipping_country_id: 4 is_deleted: false balance: 500.00 paid_to_date: 2000.00 credit_balance: 100.00 last_login: 1628686031 created_at: 1617629031 updated_at: 1628445631 group_settings_id: Opnel5aKBz routing_id: Opnel5aKBz3489-dfkiu-2239-sdsd is_tax_exempt: false has_valid_vat_number: false payment_balance: 100 contacts: - id: Opnel5aKBz first_name: John last_name: Doe email: jim@gmail.com phone: 555-3434-3434 send_invoice: true custom_value1: Email custom_value2: John Doe custom_value3: Yes custom_value4: $50,000 is_primary: true created_at: 1617629031 updated_at: 1628445631 deleted_at: 1628445631 Meta: value: pagination: total: 1 count: 1 per_page: 20 current_page: 1 total_pages: 1 links: - first: https://invoicing.co/api/v1/invoices?page=1 - last: https://invoicing.co/api/v1/invoices?page=1 - prev: null - next: null 429: description: 'Rate Limit Exceeded' content: application/json: schema: $ref: '#/components/schemas/RateLimiterError' 403: description: 'Authorization error' content: application/json: schema: $ref: '#components/schemas/AuthorizationError' 422: description: 'Validation error' content: application/json: schema: $ref: '#/components/schemas/ValidationError' default: description: 'Unexpected Error' content: application/json: schema: $ref: '#/components/schemas/Error' 400: description: 'Invalid user input' content: application/json: schema: $ref: '#components/schemas/InvalidInputError' 401: description: 'Authentication error' content: application/json: schema: $ref: '#components/schemas/AuthenticationError' parameters: X-API-SECRET: name: X-API-SECRET in: header description: 'The API secret as defined by the .env variable API_SECRET. Only needed for self hosted users, and only applicable on the login route.' required: false schema: type: string example: password X-Requested-With: name: X-Requested-With in: header description: 'Used to send the XMLHttpRequest header' required: true schema: type: string readOnly: true example: XMLHttpRequest X-API-TOKEN: name: X-API-TOKEN in: header description: 'The API token to be used for authentication' required: true schema: type: string example: TOKEN X-API-PASSWORD: name: X-API-PASSWORD in: header description: 'The login password when challenged on certain protected routes' required: true schema: type: string example: supersecretpassword bank_integration_include: name: include in: query description: Include child relations of the BankIntegration object. Format is comma separated. required: false schema: type: string examples: company: value: company summary: The associated Company account: value: account summary: The associated Account bank_transactions: value: bank_transactions summary: The associated Bank Transactions client_include: name: include in: query description: Include child relationships of the Client Object. required: false schema: type: string examples: activities: value: activities summary: include=activities will include the activities object in the response ledger: value: ledger summary: include=ledger will include the ledger object in the response system_logs: value: system_logs summary: include=system_logs will include the system_logs object in the response activity_include: name: include in: query description: Include child relations of the Activity object, format is comma separated. **Note** it is possible to chain multiple includes together, ie. include=account,token required: false schema: type: string examples: history: value: history summary: include=history will include the history object in the response (This could include references to the backup HTML of the entity) user: value: user summary: include=user will include the user object in the response client: value: client summary: include=client will include the client object in the response recurring_invoice: value: recurring_invoice summary: include=recurring_invoice will include the recurring_invoice object in the response invoice: value: invoice summary: include=invoice will include the invoice object in the response credit: value: credit summary: include=credit will include the credit object in the response quote: value: quote summary: include=quote will include the quote object in the response payment: value: payment summary: include=payment will include the payment object in the response expense: value: expense summary: include=expense will include the expense object in the response vendor_contact: value: vendor_contact summary: include=vendor_contact will include the vendor_contact object in the response vendor: value: vendor summary: include=vendor will include the vendor object in the response purchase_order: value: purchase_order summary: include=purchase_order will include the purchase_order object in the response task: value: task summary: include=task will include the task object in the response login_include: name: include in: query description: Include child relations of the CompanyUser object, format is comma separated. **Note** it is possible to chain multiple includes together, ie. include=account,token required: false schema: type: string examples: user: value: user summary: include=user will include the user object in the response company: value: company summary: include=company will include the company object in the response token: value: token summary: include=token will include the token object in the response account: value: account summary: include=account will include the account object in the response per_page_meta: name: per_page in: query description: The number of records to return for each request, default is 20 required: false schema: type: int example: 20 page_meta: name: page in: query description: The page number to return for this request (when performing pagination), default is 1 required: false schema: type: int example: 1 include: name: include in: query description: 'Includes child relationships in the response, format is comma separated. Check each model for the list of associated includes' required: false schema: type: string example: 'first_load' include_static: name: include_static in: query description: 'Returns static variables' required: false schema: type: string example: include_static=true clear_cache: name: clear_cache in: query description: 'Clears the static cache' required: false schema: type: string example: clear_cache=true index: name: index in: query description: 'Replaces the default response index from data to a user specific string' required: false schema: type: string example: user api_version: name: api_version in: query description: 'The API version' required: false schema: type: number example: user ########################### Generic filters available across all filter ################################## status: name: status in: query description: | Filter the entity based on their status. ie active / archived / deleted. Format is a comma separated string with any of the following options: - active - archived - deleted required: false schema: type: string example: ?status=archived,deleted client_id: name: client_id in: query description: | Filters the entity list by client_id. Suitable when you only want the entities of a specific client. required: false schema: type: string example: ?client_id={client_id} created_at: name: created_at in: query description: | Filters the entity list by the created at timestamp. Parameter value can be a datetime string or unix timestamp required: false schema: type: integer example: ?created_at=2022-01-10 updated_at: name: updated_at in: query description: | Filters the entity list by the updated at timestamp. Parameter value can be a datetime string or unix timestamp required: false schema: type: integer example: ?updated_at=2022-01-10 is_deleted: name: is_deleted in: query description: | Filters the entity list by entities that have been deleted. required: false schema: type: booleans example: ?is_deleted=true vendor_id: name: vendor_id in: query description: | Filters the entity list by an associated vendor required: false schema: type: string example: ?vendor_id={vendor_id} filter_deleted_clients: name: filter_deleted_clients in: query description: | Filters the entity list and only returns entities for clients that have not been deleted required: false schema: type: string example: ?filter_deleted_clients=true ########################### Generic filters available across all filter ################################## schemas: CreditPaymentable: properties: credit_id: description: 'The credit hashed id' type: string example: Opnel5aKBz amount: description: 'The credit amount' type: string example: '2' type: object GenericReportSchema: properties: date_range: description: 'The string representation of the date range of data to be returned' type: string example: last7 date_key: description: 'The date column to search between.' type: string example: created_at start_date: description: 'The start date to search between' type: string example: '2000-10-31' end_date: description: 'The end date to search between' type: string example: '2' report_keys: type: array items: description: 'Array of Keys to export' type: string example: '[''name'',''date'']' type: object GroupSetting: properties: id: description: 'The group setting hashed id' type: string example: Opnel5aKBz user_id: description: 'The user hashed id' type: string example: Opnel5aKBz company_id: description: 'The company hashed id' type: string example: Opnel5aKBz name: description: 'The name of the group' type: string example: 'A groupies group' settings: description: 'The settings object' type: object example: '' type: object InvoicePaymentable: properties: invoice_id: description: ______ type: string example: Opnel5aKBz amount: description: ______ type: string example: '2' type: object TaskSchedulerSchema: properties: paused: description: 'The scheduler paused state' type: boolean example: 'false' repeat_every: description: 'Accepted values (DAY,WEEK,MONTH,3MONTHS,YEAR)' type: string example: DAY start_from: description: 'Timestamp when we should start the scheduler, default is today' type: integer example: '1652898504' job: description: 'Job, we can find list of available jobs in Scheduler model' type: string example: create_credit_report date_range: description: 'The string representation of the date range of data to be returned' type: string example: last7 date_key: description: 'The date column to search between.' type: string example: created_at start_date: description: 'The start date to search between' type: string example: '2022-10-31' end_date: description: 'The end date to search between' type: string example: '2022-10-31' report_keys: type: array items: description: 'Array of Keys to export' type: string example: '[''name'',''date'']' type: object UpdateTaskSchedulerSchema: properties: paused: description: 'The scheduler paused state' type: boolean example: 'false' repeat_every: description: 'Accepted values (DAY,WEEK,MONTH,3MONTHS,YEAR)' type: string example: DAY start_from: description: 'Timestamp when we should start the scheduler, default is today' type: integer example: '1652898504' job: description: 'Job, we can find list of available jobs in Scheduler model' type: string example: create_credit_report date_range: description: 'The string representation of the date range of data to be returned' type: string example: last7 date_key: description: 'The date column to search between.' type: string example: created_at start_date: description: 'The start date to search between' type: string example: '2022-10-31' end_date: description: 'The end date to search between' type: string example: '2022-10-31' type: object UpdateJobForASchedulerSchema: properties: job: description: 'Set action name, action names can be found in Scheduler Model' type: string example: create_client_report type: object TaskStatus: properties: id: description: 'The task status hashed id' type: string example: Opnel5aKBz readOnly: true name: description: 'The task status name' type: string example: Backlog color: description: 'The task status color - hex value' type: string example: '#000000' task_status_order: description: 'The order of the task status' type: integer example: '4' created_at: description: Timestamp type: number format: integer example: '134341234234' readOnly: true is_deleted: description: 'A boolean flag determining if the task status has been deleted' type: boolean example: true readOnly: true updated_at: description: Timestamp type: number format: integer example: '134341234234' readOnly: true archived_at: description: Timestamp type: number format: integer example: '134341234234' readOnly: true type: object TaxRate: properties: id: description: 'Thie hashed id of the tax' type: string example: Opnel5aKBz readOnly: true name: description: 'The tax name' type: string example: GST rate: description: 'The tax rate' type: number example: '10' is_deleted: description: 'Boolean flag determining if the tax has been deleted' type: boolean example: true type: object Template: properties: html: description: 'The template HTML' type: string example: '' type: object AuthenticationError: type: object properties: message: description: 'These credentials do not match our records / Invalid Token' type: string example: 'These credentials do not match our records / Invalid Token' ValidationError: properties: message: description: 'The error message' type: string example: 'The given data was invalid.' errors: properties: value: type: array items: type: string type: object type: object AuthorizationError: properties: message: description: 'Insufficient permissions for this resource.' type: string example: 'Insufficient permissions for this resource.' errors: properties: value: type: array items: type: string type: object type: object RateLimiterError: properties: message: description: 'Rate limit exceeded.' type: string example: 'Rate limit exceeded.' errors: properties: value: type: array items: type: string type: object type: object InvalidInputError: properties: message: description: 'Invalid input' type: string example: 'Invalid input' errors: properties: value: type: array items: type: string type: object type: object Webhook: properties: id: description: 'The subscription hashed id' type: string example: AS3df3A event_id: description: 'The subscription event id' type: string example: AS3df3A target_url: description: 'The api endpoint' type: string example: AS3df3A format: description: 'JSON or UBL' type: string example: JSON type: object Product: type: object properties: id: type: string description: 'The hashed product ID.' example: eP01N readOnly: true company_id: type: string description: 'The hashed ID of the company that owns this product.' example: eP01N readOnly: true user_id: type: string description: 'The hashed ID of the user that created this product.' example: n30m4 readOnly: true assigned_user_id: type: string description: 'The hashed ID of the user assigned to this product.' example: pR0j3 project_id: type: string description: 'The hashed ID of the project that this product is associated with.' example: pR0j3 vendor_id: type: string description: 'The hashed ID of the vendor that this product is associated with.' example: pR0j3 custom_value1: type: string description: 'Custom value field 1.' example: 'Custom value 1' custom_value2: type: string description: 'Custom value field 2.' example: 'Custom value 2' custom_value3: type: string description: 'Custom value field 3.' example: 'Custom value 3' custom_value4: type: string description: 'Custom value field 4.' example: 'Custom value 4' product_key: type: string description: 'The product key.' example: '1234' notes: type: string description: 'Notes about the product.' example: 'These are some notes about the product.' cost: type: number format: double description: 'The cost of the product. (Your purchase price for this product)' example: 10.0 price: type: number format: double description: 'The price of the product that you are charging.' example: 20.0 quantity: type: number format: double description: 'The quantity of the product. (used as a default)' example: 5.0 tax_name1: type: string description: 'The name of tax 1.' example: 'Tax 1' tax_rate1: type: number format: double description: 'The rate of tax 1.' example: 10.0 tax_name2: type: string description: 'The name of tax 2.' example: 'Tax 2' tax_rate2: type: number format: double description: 'The rate of tax 2.' example: 5.0 tax_name3: type: string description: 'The name of tax 3.' example: 'Tax 3' tax_rate3: type: number format: double description: 'The rate of tax 3.' example: 0.0 archived_at: type: integer format: timestamp description: 'The timestamp when the product was archived.' example: '2022-03-18T15:00:00Z' readOnly: true created_at: type: integer format: timestamp description: 'The timestamp when the product was created.' example: '2022-03-18T15:00:00Z' readOnly: true updated_at: description: Timestamp type: integer format: timestamp example: '2022-03-18T12:34:56.789Z' readOnly: true is_deleted: type: boolean description: 'Boolean flag determining if the product has been deleted' example: false readOnly: true in_stock_quantity: type: integer format: int32 description: The quantity of the product that is currently in stock default: 0 stock_notification: type: boolean description: Indicates whether stock notifications are enabled for this product default: true stock_notification_threshold: type: integer format: int32 description: The minimum quantity threshold for which stock notifications will be triggered default: 0 max_quantity: type: integer format: int32 description: The maximum quantity that can be ordered for this product product_image: type: string description: The URL of the product image format: uri-reference tax_id: type: string default: '1' description: | The tax category id for this product.' The following constants are available (default = '1') ``` PRODUCT_TYPE_PHYSICAL = '1' PRODUCT_TYPE_SERVICE = '2' PRODUCT_TYPE_DIGITAL = '3' PRODUCT_TYPE_SHIPPING = '4' PRODUCT_TYPE_EXEMPT = '5' PRODUCT_TYPE_REDUCED_TAX = '6' PRODUCT_TYPE_OVERRIDE_TAX = '7' PRODUCT_TYPE_ZERO_RATED = '8' PRODUCT_TYPE_REVERSE_TAX = '9' ``` example: '1' ExpenseCategory: properties: id: description: 'The expense hashed id' type: string example: Opnel5aKBz name: description: 'The expense category name' type: string example: Accounting user_id: description: 'The user hashed id' type: string example: XS987sD is_deleted: description: 'Flag determining whether the expense category has been deleted' type: boolean example: true updated_at: description: 'The updated at timestamp' type: integer example: '2' created_at: description: 'The created at timestamp' type: integer example: '2' type: object ProductRequest: type: object properties: id: type: string description: 'The hashed product ID.' example: eP01N readOnly: true assigned_user_id: type: string description: 'The hashed ID of the user assigned to this product.' example: pR0j3 required: false project_id: type: string description: 'The hashed ID of the project that this product is associated with.' example: pR0j3 required: false vendor_id: type: string description: 'The hashed ID of the vendor that this product is associated with.' example: pR0j3 required: false custom_value1: type: string description: 'Custom value field 1.' example: 'Custom value 1' required: false custom_value2: type: string description: 'Custom value field 2.' example: 'Custom value 2' required: false custom_value3: type: string description: 'Custom value field 3.' example: 'Custom value 3' required: false custom_value4: type: string description: 'Custom value field 4.' example: 'Custom value 4' required: false product_key: type: string description: 'The product key.' example: '1234' required: false notes: type: string description: 'Notes about the product.' example: 'These are some notes about the product.' required: false cost: type: number format: double description: 'The cost of the product.' example: 10.0 required: false price: type: number format: double description: 'The price of the product.' example: 20.0 required: false quantity: type: number format: double description: 'The quantity of the product.' example: 5.0 required: false default: 1 tax_name1: type: string description: 'The name of tax 1.' example: 'Tax 1' required: false tax_rate1: type: number format: double description: 'The rate of tax 1.' example: 10.0 required: false tax_name2: type: string description: 'The name of tax 2.' example: 'Tax 2' required: false tax_rate2: type: number format: double description: 'The rate of tax 2.' example: 5.0 required: false tax_name3: type: string description: 'The name of tax 3.' example: 'Tax 3' required: false tax_rate3: type: number format: double description: 'The rate of tax 3.' example: 0.0 required: false in_stock_quantity: type: integer format: int32 description: | The quantity of the product that is currently in stock. **note** this field is not mutable without passing an extra query parameter which will allow modification of this value. The query parameter ?update_in_stock_quantity=true **MUST** be passed if you wish to update this value manually. default: 0 required: false stock_notification: type: boolean description: Indicates whether stock notifications are enabled for this product default: true required: false stock_notification_threshold: type: integer format: int32 description: The minimum quantity threshold for which stock notifications will be triggered default: 0 required: false max_quantity: type: integer format: int32 description: The maximum quantity that can be ordered for this product required: false product_image: type: string description: The URL of the product image format: uri-reference required: false tax_id: type: string default: '1' required: false description: | The tax category id for this product.' The following constants are available (default = '1') ``` PRODUCT_TYPE_PHYSICAL = '1' PRODUCT_TYPE_SERVICE = '2' PRODUCT_TYPE_DIGITAL = '3' PRODUCT_TYPE_SHIPPING = '4' PRODUCT_TYPE_EXEMPT = '5' PRODUCT_TYPE_REDUCED_TAX = '6' PRODUCT_TYPE_OVERRIDE_TAX = '7' PRODUCT_TYPE_ZERO_RATED = '8' PRODUCT_TYPE_REVERSE_TAX = '9' ``` example: '1' CompanyToken: properties: name: description: 'The token name' type: string example: 'Token Name' token: description: 'The token value' type: string example: AS3df3jUUH765fhfd9KJuidj3JShjA is_system: description: 'Determines whether the token is created by the system rather than a user' type: boolean example: 'true' type: object Document: properties: id: description: 'The document hashed id' type: string example: AS3df3A user_id: description: 'The user hashed id' type: string example: '' assigned_user_id: description: 'The assigned user hashed id' type: string example: '' project_id: description: 'The project associated with this document' type: string example: '' vendor_id: description: 'The vendor associated with this documents' type: string example: '' name: description: 'The document name' type: string example: Beauty url: description: 'The document url' type: string example: Beauty preview: description: 'The document preview url' type: string example: Beauty type: description: 'The document type' type: string example: Beauty disk: description: 'The document disk' type: string example: Beauty hash: description: 'The document hashed' type: string example: Beauty is_deleted: description: 'Flag to determine if the document is deleted' type: boolean example: true is_default: description: 'Flag to determine if the document is a default doc' type: boolean example: true created_at: description: Timestamp type: number format: integer example: '134341234234' updated_at: description: Timestamp type: number format: integer example: '134341234234' deleted_at: description: Timestamp type: number format: integer example: '134341234234' type: object Payment: properties: id: description: 'The payment hashed id' type: string example: Opnel5aKBz client_id: description: 'The client hashed id' type: string example: Opnel5aKBz invitation_id: description: 'The invitation hashed id' type: string example: Opnel5aKBz client_contact_id: description: 'The client contact hashed id' type: string example: Opnel5aKBz user_id: description: 'The user hashed id' type: string example: Opnel5aKBz type_id: description: 'The Payment Type ID' type: string example: '1' date: description: 'The Payment date' type: string example: 1-1-2014 transaction_reference: description: 'The transaction reference as defined by the payment gateway' type: string example: xcsSxcs124asd assigned_user_id: description: 'The assigned user hashed id' type: string example: Opnel5aKBz private_notes: description: 'The private notes of the payment' type: string example: 'The payment was refunded due to error' is_manual: description: 'Flags whether the payment was made manually or processed via a gateway' type: boolean example: true is_deleted: description: 'Defines if the payment has been deleted' type: boolean example: true amount: description: 'The amount of this payment' type: number example: 10 refunded: description: 'The refunded amount of this payment' type: number example: 10 updated_at: description: Timestamp type: number format: integer example: '1434342123' archived_at: description: Timestamp type: number format: integer example: '1434342123' company_gateway_id: description: 'The company gateway id' type: string example: '3' paymentables: $ref: '#/components/schemas/Paymentable' invoices: description: '' type: array items: $ref: '#/components/schemas/InvoicePaymentable' credits: description: '' type: array items: $ref: '#/components/schemas/CreditPaymentable' number: description: 'The payment number - is a unique alpha numeric number per payment per company' type: string example: PAY_101 type: object BankTransactionRule: properties: id: description: 'The bank transaction rules hashed id' type: string example: AS3df3A company_id: description: 'The company hashed id' type: string example: AS3df3A user_id: description: 'The user hashed id' type: string example: AS3df3A name: description: 'The name of the transaction' type: string example: 'Rule 1' rules: description: 'A mapped collection of the sub rules for the BankTransactionRule' type: array items: $ref: '#/components/schemas/BTRules' auto_convert: description: 'Flags whether the rule converts the transaction automatically' type: boolean example: true matches_on_all: description: 'Flags whether all subrules are required for the match' type: boolean example: true applies_to: description: 'Flags whether the rule applies to a CREDIT or DEBIT' type: string example: CREDIT client_id: description: 'The client hashed id' type: string example: AS3df3A vendor_id: description: 'The vendor hashed id' type: string example: AS3df3A category_id: description: 'The category hashed id' type: string example: AS3df3A type: object RecurringQuote: properties: id: description: 'The hashed id of the recurring quote' type: string example: Opnel5aKBz user_id: description: 'The user hashed id' type: string example: Opnel5aKBz assigned_user_id: description: 'The assigned user hashed id' type: string example: Opnel5aKBz company_id: description: 'The company hashed id' type: string example: Opnel5aKBz client_id: description: 'The client hashed id' type: string example: Opnel5aKBz status_id: description: 'The quote status variable' type: string example: '4' frequency_id: description: 'The recurring quote frequency' type: number example: '4' remaining_cycles: description: 'The number of quotes left to be generated' type: number example: '4' number: description: 'The recurringquote number - is a unique alpha numeric number per quote per company' type: string example: INV_101 po_number: description: 'The purchase order associated with this recurring quote' type: string example: PO-1234 terms: description: 'The quote terms' type: string example: 'These are quote terms' public_notes: description: 'The public notes of the quote' type: string example: 'These are some public notes' private_notes: description: 'The private notes of the quote' type: string example: 'These are some private notes' footer: description: 'The quote footer notes' type: string example: '' custom_value1: description: 'A custom field value' type: string example: '2022-10-01' custom_value2: description: 'A custom field value' type: string example: 'Something custom' custom_value3: description: 'A custom field value' type: string example: '' custom_value4: description: 'A custom field value' type: string example: '' tax_name1: description: 'The tax name' type: string example: '' tax_name2: description: 'The tax name' type: string example: '' tax_rate1: description: 'The tax rate' type: number format: float example: '10.00' tax_rate2: description: 'The tax rate' type: number format: float example: '10.00' tax_name3: description: 'The tax name' type: string example: '' tax_rate3: description: 'The tax rate' type: number format: float example: '10.00' total_taxes: description: 'The total taxes for the quote' type: number format: float example: '10.00' line_items: description: 'An array of objects which define the line items of the quote' type: object example: '' amount: description: 'The quote amount' type: number format: float example: '10.00' balance: description: 'The quote balance' type: number format: float example: '10.00' paid_to_date: description: 'The amount paid on the quote to date' type: number format: float example: '10.00' discount: description: 'The quote discount, can be an amount or a percentage' type: number format: float example: '10.00' partial: description: 'The deposit/partial amount' type: number format: float example: '10.00' is_amount_discount: description: 'Flag determining if the discount is an amount or a percentage' type: boolean example: true is_deleted: description: 'Defines if the quote has been deleted' type: boolean example: true uses_inclusive_taxes: description: 'Defines the type of taxes used as either inclusive or exclusive' type: boolean example: true date: description: 'The quote Date' type: string format: date example: '1994-07-30' last_sent_date: description: 'The last date the quote was sent out' type: string format: date example: '1994-07-30' next_send_date: description: 'The Next date for a reminder to be sent' type: string format: date example: '1994-07-30' partial_due_date: description: 'The due date for the deposit/partial amount' type: string format: date example: '1994-07-30' due_date: description: 'The due date of the quote' type: string format: date example: '1994-07-30' settings: $ref: '#/components/schemas/CompanySettings' last_viewed: description: Timestamp type: number format: integer example: '1434342123' updated_at: description: Timestamp type: number format: integer example: '1434342123' archived_at: description: Timestamp type: number format: integer example: '1434342123' custom_surcharge1: description: 'First Custom Surcharge' type: number format: float example: '10.00' custom_surcharge2: description: 'Second Custom Surcharge' type: number format: float example: '10.00' custom_surcharge3: description: 'Third Custom Surcharge' type: number format: float example: '10.00' custom_surcharge4: description: 'Fourth Custom Surcharge' type: number format: float example: '10.00' custom_surcharge_tax1: description: 'Toggles charging taxes on custom surcharge amounts' type: boolean example: true custom_surcharge_tax2: description: 'Toggles charging taxes on custom surcharge amounts' type: boolean example: true custom_surcharge_tax3: description: 'Toggles charging taxes on custom surcharge amounts' type: boolean example: true custom_surcharge_tax4: description: 'Toggles charging taxes on custom surcharge amounts' type: boolean example: true type: object CompanyGateway: properties: id: description: 'The hashed id of the company gateway' type: string example: Opnel5aKBz company_id: description: 'The company hashed id' type: string example: '2' gateway_key: description: 'The gateway key (hash)' type: string example: '2' accepted_credit_cards: description: 'Bitmask representation of cards' type: integer example: '32' require_billing_address: description: 'Determines if the the billing address is required prior to payment.' type: boolean example: true require_shipping_address: description: 'Determines if the the billing address is required prior to payment.' type: boolean example: true config: description: 'The configuration map for the gateway' type: string example: dfadsfdsafsafd update_details: description: 'Determines if the client details should be updated.' type: boolean example: true fees_and_limits: description: 'A mapped collection of the fees and limits for the configured gateway' type: array items: $ref: '#/components/schemas/FeesAndLimits' type: object CompanySettings: required: - currency_id properties: currency_id: description: 'The default currency id' type: string example: true timezone_id: description: 'The timezone id' type: string example: '15' date_format_id: description: 'The date format id' type: string example: '15' military_time: description: 'Toggles 12/24 hour time' type: boolean example: true language_id: description: 'The language id' type: string example: '1' show_currency_code: description: 'Toggles whether the currency symbol or code is shown' type: boolean example: true payment_terms: description: '-1 sets no payment term, 0 sets payment due immediately, positive integers indicates payment terms in days' type: integer example: '1' company_gateway_ids: description: 'A commad separate list of available gateways' type: string example: '1,2,3,4' custom_value1: description: 'A Custom Label' type: string example: 'Custom Label' custom_value2: description: 'A Custom Label' type: string example: 'Custom Label' custom_value3: description: 'A Custom Label' type: string example: 'Custom Label' custom_value4: description: 'A Custom Label' type: string example: 'Custom Label' default_task_rate: description: 'The default task rate' type: number format: float example: '10.00' send_reminders: description: 'Toggles whether reminders are sent' type: boolean example: true enable_client_portal_tasks: description: 'Show/hide the tasks panel in the client portal' type: boolean example: true email_style: description: 'options include plain,light,dark,custom' type: string example: light reply_to_email: description: 'The reply to email address' type: string example: email@gmail.com bcc_email: description: 'A comma separate list of BCC emails' type: string example: 'email@gmail.com, contact@gmail.com' pdf_email_attachment: description: 'Toggles whether to attach PDF as attachment' type: boolean example: true ubl_email_attachment: description: 'Toggles whether to attach UBL as attachment' type: boolean example: true email_style_custom: description: 'The custom template' type: string example: '' counter_number_applied: description: 'enum when the invoice number counter is set, ie when_saved, when_sent, when_paid' type: string example: when_sent quote_number_applied: description: 'enum when the quote number counter is set, ie when_saved, when_sent' type: string example: when_sent custom_message_dashboard: description: 'A custom message which is displayed on the dashboard' type: string example: 'Please pay invoices immediately' custom_message_unpaid_invoice: description: 'A custom message which is displayed in the client portal when a client is viewing a unpaid invoice.' type: string example: 'Please pay invoices immediately' custom_message_paid_invoice: description: 'A custom message which is displayed in the client portal when a client is viewing a paid invoice.' type: string example: 'Thanks for paying this invoice!' custom_message_unapproved_quote: description: 'A custom message which is displayed in the client portal when a client is viewing a unapproved quote.' type: string example: 'Please approve quote' lock_invoices: description: 'Toggles whether invoices are locked once sent and cannot be modified further' type: boolean example: true auto_archive_invoice: description: 'Toggles whether a invoice is archived immediately following payment' type: boolean example: true auto_archive_quote: description: 'Toggles whether a quote is archived after being converted to a invoice' type: boolean example: true auto_convert_quote: description: 'Toggles whether a quote is converted to a invoice when approved' type: boolean example: true inclusive_taxes: description: 'Boolean flag determining whether inclusive or exclusive taxes are used' type: boolean example: true translations: description: 'JSON payload of customized translations' type: object example: '' task_number_pattern: description: 'Allows customisation of the task number pattern' type: string example: '{$year}-{$counter}' task_number_counter: description: 'The incrementing counter for tasks' type: integer example: '1' reminder_send_time: description: 'Time from UTC +0 when the email will be sent to the client' type: integer example: '32400' expense_number_pattern: description: 'Allows customisation of the expense number pattern' type: string example: '{$year}-{$counter}' expense_number_counter: description: 'The incrementing counter for expenses' type: integer example: '1' vendor_number_pattern: description: 'Allows customisation of the vendor number pattern' type: string example: '{$year}-{$counter}' vendor_number_counter: description: 'The incrementing counter for vendors' type: integer example: '1' ticket_number_pattern: description: 'Allows customisation of the ticket number pattern' type: string example: '{$year}-{$counter}' ticket_number_counter: description: 'The incrementing counter for tickets' type: integer example: '1' payment_number_pattern: description: 'Allows customisation of the payment number pattern' type: string example: '{$year}-{$counter}' payment_number_counter: description: 'The incrementing counter for payments' type: integer example: '1' invoice_number_pattern: description: 'Allows customisation of the invoice number pattern' type: string example: '{$year}-{$counter}' invoice_number_counter: description: 'The incrementing counter for invoices' type: integer example: '1' quote_number_pattern: description: 'Allows customisation of the quote number pattern' type: string example: '{$year}-{$counter}' quote_number_counter: description: 'The incrementing counter for quotes' type: integer example: '1' client_number_pattern: description: 'Allows customisation of the client number pattern' type: string example: '{$year}-{$counter}' client_number_counter: description: 'The incrementing counter for clients' type: integer example: '1' credit_number_pattern: description: 'Allows customisation of the credit number pattern' type: string example: '{$year}-{$counter}' credit_number_counter: description: 'The incrementing counter for credits' type: integer example: '1' recurring_invoice_number_prefix: description: 'This string is prepended to the recurring invoice number' type: string example: R reset_counter_frequency_id: description: 'CONSTANT which is used to apply the frequency which the counters are reset' type: integer example: '1' reset_counter_date: description: 'The explicit date which is used to reset counters' type: string example: '2019-01-01' counter_padding: description: 'Pads the counter with leading zeros' type: integer example: '1' shared_invoice_quote_counter: description: 'Flags whether to share the counter for invoices and quotes' type: boolean example: true update_products: description: 'Determines if client fields are updated from third party APIs' type: boolean example: true convert_products: description: '' type: boolean example: true fill_products: description: 'Automatically fill products based on product_key' type: boolean example: true invoice_terms: description: 'The default invoice terms' type: string example: 'Invoice Terms are...' quote_terms: description: 'The default quote terms' type: string example: 'Quote Terms are...' invoice_taxes: description: 'Taxes can be applied to the invoice' type: number example: '1' invoice_design_id: description: 'The default design id (invoice, quote etc)' type: string example: '1' quote_design_id: description: 'The default design id (invoice, quote etc)' type: string example: '1' invoice_footer: description: 'The default invoice footer' type: string example: '1' invoice_labels: description: 'JSON string of invoice labels' type: string example: '1' tax_rate1: description: 'The tax rate (float)' type: number example: '10' tax_name1: description: 'The tax name' type: string example: GST tax_rate2: description: 'The tax rate (float)' type: number example: '10' tax_name2: description: 'The tax name' type: string example: GST tax_rate3: description: 'The tax rate (float)' type: number example: '10' tax_name3: description: 'The tax name' type: string example: GST payment_type_id: description: 'The default payment type id' type: string example: '1' custom_fields: description: 'JSON string of custom fields' type: string example: '{}' email_footer: description: 'The default email footer' type: string example: 'A default email footer' email_sending_method: description: 'The email driver to use to send email, options include default, gmail, client_postmark, client_mailgun, office365' type: string example: default gmail_sending_user_id: description: 'The hashed_id of the user account to send email from' type: string example: F76sd34D email_subject_invoice: description: '' type: string example: 'Your Invoice Subject' email_subject_quote: description: '' type: string example: 'Your Quote Subject' email_subject_payment: description: '' type: string example: 'Your Payment Subject' email_template_invoice: description: 'The full template for invoice emails' type: string example: '' email_template_quote: description: 'The full template for quote emails' type: string example: '' email_template_payment: description: 'The full template for payment emails' type: string example: '' email_subject_reminder1: description: 'Email subject for Reminder' type: string example: '' email_subject_reminder2: description: 'Email subject for Reminder' type: string example: '' email_subject_reminder3: description: 'Email subject for Reminder' type: string example: '' email_subject_reminder_endless: description: 'Email subject for endless reminders' type: string example: '' email_template_reminder1: description: 'The full template for Reminder 1' type: string example: '' email_template_reminder2: description: 'The full template for Reminder 2' type: string example: '' email_template_reminder3: description: 'The full template for Reminder 3' type: string example: '' email_template_reminder_endless: description: 'The full template for enless reminders' type: string example: '' enable_portal_password: description: 'Toggles whether a password is required to log into the client portal' type: boolean example: true show_accept_invoice_terms: description: 'Toggles whether the terms dialogue is shown to the client' type: boolean example: true show_accept_quote_terms: description: 'Toggles whether the terms dialogue is shown to the client' type: boolean example: true require_invoice_signature: description: 'Toggles whether a invoice signature is required' type: boolean example: true require_quote_signature: description: 'Toggles whether a quote signature is required' type: boolean example: true name: description: 'The company name' type: string example: 'Acme Co' company_logo: description: 'The company logo file' type: object example: logo.png website: description: 'The company website URL' type: string example: www.acme.com address1: description: 'The company address line 1' type: string example: 'Suite 888' address2: description: 'The company address line 2' type: string example: '5 Jimbo Way' city: description: 'The company city' type: string example: Sydney state: description: 'The company state' type: string example: Florisa postal_code: description: 'The company zip/postal code' type: string example: '90210' phone: description: 'The company phone' type: string example: 555-213-3948 email: description: 'The company email' type: string example: joe@acme.co country_id: description: 'The country ID' type: string example: '1' vat_number: description: 'The company VAT/TAX ID number' type: string example: '32 120 377 720' page_size: description: 'The default page size' type: string example: A4 font_size: description: 'The font size' type: number example: '9' primary_font: description: 'The primary font' type: string example: roboto secondary_font: description: 'The secondary font' type: string example: roboto hide_paid_to_date: description: 'Flags whether to hide the paid to date field' type: boolean example: false embed_documents: description: 'Toggled whether to embed documents in the PDF' type: boolean example: false all_pages_header: description: 'The header for the PDF' type: boolean example: false all_pages_footer: description: 'The footer for the PDF' type: boolean example: false document_email_attachment: description: 'Toggles whether to attach documents in the email' type: boolean example: false enable_client_portal_password: description: 'Toggles password protection of the client portal' type: boolean example: false enable_email_markup: description: 'Toggles the use of markdown in emails' type: boolean example: false enable_client_portal_dashboard: description: 'Toggles whether the client dashboard is shown in the client portal' type: boolean example: false enable_client_portal: description: 'Toggles whether the entire client portal is displayed to the client, or only the context' type: boolean example: false email_template_statement: description: 'The body of the email for statements' type: string example: 'template matter' email_subject_statement: description: 'The subject of the email for statements' type: string example: 'subject matter' signature_on_pdf: description: 'Toggles whether the signature (if available) is displayed on the PDF' type: boolean example: false quote_footer: description: 'The default quote footer' type: string example: 'the quote footer' email_subject_custom1: description: 'Custom reminder template subject' type: string example: 'Custom Subject 1' email_subject_custom2: description: 'Custom reminder template subject' type: string example: 'Custom Subject 2' email_subject_custom3: description: 'Custom reminder template subject' type: string example: 'Custom Subject 3' email_template_custom1: description: 'Custom reminder template body' type: string example: '' email_template_custom2: description: 'Custom reminder template body' type: string example: '' email_template_custom3: description: 'Custom reminder template body' type: string example: '' enable_reminder1: description: 'Toggles whether this reminder is enabled' type: boolean example: false enable_reminder2: description: 'Toggles whether this reminder is enabled' type: boolean example: false enable_reminder3: description: 'Toggles whether this reminder is enabled' type: boolean example: false num_days_reminder1: description: 'The Reminder interval' type: number example: '9' num_days_reminder2: description: 'The Reminder interval' type: number example: '9' num_days_reminder3: description: 'The Reminder interval' type: number example: '9' schedule_reminder1: description: '(enum: after_invoice_date, before_due_date, after_due_date)' type: string example: after_invoice_date schedule_reminder2: description: '(enum: after_invoice_date, before_due_date, after_due_date)' type: string example: after_invoice_date schedule_reminder3: description: '(enum: after_invoice_date, before_due_date, after_due_date)' type: string example: after_invoice_date late_fee_amount1: description: 'The late fee amount for reminder 1' type: number example: 10 late_fee_amount2: description: 'The late fee amount for reminder 2' type: number example: 20 late_fee_amount3: description: 'The late fee amount for reminder 2' type: number example: 100 endless_reminder_frequency_id: description: 'The frequency id of the endless reminder' type: string example: '1' client_online_payment_notification: description: 'Determines if a client should receive the notification for a online payment' type: boolean example: false client_manual_payment_notification: description: 'Determines if a client should receive the notification for a manually entered payment' type: boolean example: false enable_e_invoice: description: 'Determines if e-invoicing is enabled' type: boolean example: false default_expense_payment_type_id: description: 'The default payment type for expenses' type: string example: '0' e_invoice_type: description: 'The e-invoice type' type: string example: 'EN16931' mailgun_endpoint: description: 'The mailgun endpoint - used to determine whether US or EU endpoints are used' type: string example: 'api.mailgun.net or api.eu.mailgun.net' client_initiated_payments: description: 'Determines if clients can initiate payments directly from the client portal' type: boolean example: false client_initiated_payments_minimum: description: 'The minimum amount a client can pay' type: number example: 10 sync_invoice_quote_columns: description: 'Determines if invoice and quote columns are synced for the PDF rendering, or if they use their own columns' type: boolean example: false show_task_item_description: description: 'Determines if the task item description is shown on the invoice' type: boolean example: false allow_billable_task_items: description: 'Determines if task items can be marked as billable' type: boolean example: false accept_client_input_quote_approval: description: 'Determines if clients can approve quotes and also pass through a PO Number reference' type: boolean example: false custom_sending_email: description: 'When using Mailgun or Postmark, the FROM email address can be customized using this setting.' type: string example: 'bob@gmail.com' show_paid_stamp: description: 'Determines if the PAID stamp is shown on the invoice' type: boolean example: false show_shipping_address: description: 'Determines if the shipping address is shown on the invoice' type: boolean example: false company_logo_size: description: 'The size of the company logo on the PDF - percentage value between 0 and 100' type: number example: 100 show_email_footer: description: 'Determines if the email footer is shown on emails' type: boolean example: false email_alignment: description: 'The alignment of the email body text, options include left / center / right' type: string example: 'left' auto_bill_standard_invoices: description: 'Determines if standard invoices are automatically billed when they are created or due' type: boolean example: false postmark_secret: description: 'The Postmark secret API key' type: string example: '123456' mailgun_secret: description: 'The Mailgun secret API key' type: string example: '123456' mailgun_domain: description: 'The Mailgun domain' type: string example: 'sandbox123456.mailgun.org' send_email_on_mark_paid: description: 'Determines if an email is sent when an invoice is marked as paid' type: boolean example: false vendor_portal_enable_uploads: description: 'Determines if vendors can upload files to the portal' type: boolean example: false besr_id: description: 'The BESR ID' type: string example: '123456' qr_iban: description: 'The IBAN for the QR code' type: string example: 'CH123456' email_subject_purchase_order: description: 'The email subject for purchase orders' type: string example: 'Purchase Order' email_template_purchase_order: description: 'The email template for purchase orders' type: string example: 'Please see attached your purchase order.' require_purchase_order_signature: description: 'Determines if a signature is required on purchase orders' type: boolean example: false purchase_order_public_notes: description: 'The public notes for purchase orders' type: string example: 'Please see attached your purchase order.' purchase_order_terms: description: 'The terms for purchase orders' type: string example: 'Please see attached your purchase order.' purchase_order_footer: description: 'The footer for purchase orders' type: string example: 'Please see attached your purchase order.' purchase_order_design_id: description: 'The design id for purchase orders' type: string example: 'hd677df' purchase_order_number_pattern: description: 'The pattern for purchase order numbers' type: string example: 'PO-000000' purchase_order_number_counter: description: 'The counter for purchase order numbers' type: number example: 1 page_numbering_alignment: description: 'The alignment for page numbering: options include left / center / right' type: string example: 'left' page_numbering: description: 'Determines if page numbering is enabled on Document PDFs' type: boolean example: false auto_archive_invoice_cancelled: description: 'Determines if invoices are automatically archived when they are cancelled' type: boolean example: false email_from_name: description: 'The FROM name for emails when using Custom emailers' type: string example: 'Bob Smith' show_all_tasks_client_portal: description: 'Determines if all tasks are shown on the client portal' type: boolean example: false entity_send_time: description: 'The time that emails are sent. The time is localized to the clients locale, integer values from 1 - 24' type: integer example: 9 shared_invoice_credit_counter: description: 'Determines if the invoice and credit counter are shared' type: boolean example: false reply_to_name: description: 'The reply to name for emails' type: string example: 'Bob Smith' hide_empty_columns_on_pdf: description: 'Determines if empty columns are hidden on PDFs' type: boolean example: false enable_reminder_endless: description: 'Determines if endless reminders are enabled' type: boolean example: false use_credits_payment: description: 'Determines if credits can be used as a payment method' type: boolean example: false recurring_invoice_number_pattern: description: 'The pattern for recurring invoice numbers' type: string example: 'R-000000' recurring_invoice_number_counter: description: 'The counter for recurring invoice numbers' type: number example: 1 client_portal_under_payment_minimum: description: 'The minimum payment payment' type: number example: 10 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))' type: string example: 'on_send_date' primary_color: description: 'The primary color for the client portal / document highlights' type: string example: '#ffffff' secondary_color: description: 'The secondary color for the client portal / document highlights' type: string example: '#ffffff' client_portal_allow_under_payment: description: 'Determines if clients can pay invoices under the invoice amount due' type: boolean example: false client_portal_allow_over_payment: description: 'Determines if clients can pay invoices over the invoice amount' type: boolean example: false 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' type: string example: 'off' client_portal_terms: description: 'The terms which are displayed on the client portal' type: string example: 'Please see attached your invoice.' client_portal_privacy_policy: description: 'The privacy policy which is displayed on the client portal' type: string example: 'These are the terms of use for using the client portal.' client_can_register: description: 'Determines if clients can register on the client portal' type: boolean example: false portal_design_id: description: 'The design id for the client portal' type: string example: 'hd677df' late_fee_endless_percent: description: 'The late fee percentage for endless late fees' type: number example: 10 late_fee_endless_amount: description: 'The late fee amount for endless late fees' type: number example: 10 auto_email_invoice: description: 'Determines if invoices are automatically emailed when they are created' type: boolean example: false email_signature: description: 'The email signature for emails' type: string example: 'Bob Smith' classification: description: 'The classification for the company' type: string example: 'individual' type: object SystemLog: properties: id: description: 'The account hashed id' type: string example: AS3df3A company_id: description: 'The company hashed id' type: string example: AS3df3A user_id: description: 'The user_id hashed id' type: string example: AS3df3A client_id: description: 'The client_id hashed id' type: string example: AS3df3A event_id: description: 'The Log Type ID' type: integer example: 1 category_id: description: 'The Category Type ID' type: integer example: 1 type_id: description: 'The Type Type ID' type: integer example: 1 log: description: 'The json object of the error' type: object example: '{''key'':''value''}' updated_at: description: Timestamp type: string example: '2' created_at: description: Timestamp type: string example: '2' type: object ClientGatewayToken: properties: id: description: 'The hashed id of the client gateway token' type: string example: Opnel5aKBz company_id: description: 'The hashed id of the company' type: string example: '2' client_id: description: 'The hashed_id of the client' type: string example: '2' token: description: 'The payment token' type: string example: '2' routing_number: description: 'THe bank account routing number' type: string example: '2' company_gateway_id: description: 'The hashed id of the company gateway' type: string example: '2' is_default: description: 'Flag determining if the token is the default payment method' type: boolean example: 'true' type: object GenericBulkAction: properties: action: type: string example: archive description: 'The action to perform ie. archive / restore / delete' ids: type: array items: format: string type: string example: 2J234DFA,D2J234DFA,D2J234DFA description: string array of client hashed ids type: object InvoiceInvitationRequest: required: - client_contact_id properties: id: description: 'The entity invitation hashed id' type: string example: Opnel5aKBz readOnly: true client_contact_id: description: 'The client contact hashed id' type: string example: Opnel5aKBz key: description: 'The invitation key' type: string example: Opnel5aKBz4343343566236gvbb readOnly: true link: description: 'The invitation link' type: string example: 'https://www.example.com/invitations/Opnel5aKBz4343343566236gvbb' readOnly: true sent_date: description: 'The invitation sent date' type: string format: date-time readOnly: true viewed_date: description: 'The invitation viewed date' type: string format: date-time readOnly: true opened_date: description: 'The invitation opened date' type: string format: date-time readOnly: true updated_at: description: 'Timestamp' type: number format: integer example: '1434342123' readOnly: true archived_at: description: 'Timestamp' type: number format: integer example: '1434342123' readOnly: true email_error: description: 'The email error' type: string example: 'The email error' readOnly: true email_status: description: 'The email status' type: string readOnly: true Client: properties: id: description: 'The unique identifier of the client' type: string example: Opnel5aKBz readOnly: true contacts: type: array items: $ref: '#/components/schemas/ClientContact' user_id: description: 'The unique identifier of the user who created the client' type: string example: Ua6Rw4pVbS readOnly: true assigned_user_id: description: 'The unique identifier of the user who has been assigned the client' type: string example: Ua6Rw4pVbS company_id: description: 'The unique identifier of the company the client belongs to' type: string example: Co7Vn3yLmW readOnly: true name: description: 'The name of the client company or organization' type: string example: "Jim's Housekeeping" website: description: 'The website URL of the client company or organization' type: string example: 'https://www.jims-housekeeping.com' private_notes: description: 'Notes that are only visible to the user who created the client' type: string example: 'Client prefers email communication over phone calls' client_hash: description: 'A unique hash value for the client' type: string example: asdfkjhk342hjhbfdvmnfb1 readOnly: true industry_id: description: 'The unique identifier of the industry the client operates in' type: number example: '5' size_id: description: 'The unique identifier for the size category of the client company or organization' type: number example: '2' address1: description: "First line of the client's address" type: string example: '123 Main St' address2: description: "Second line of the client's address, if needed" type: string example: 'Apt 4B' city: description: 'The city the client is located in' type: string example: 'Beverly Hills' state: description: 'The state, province, or locality the client is located in' type: string example: 'California' postal_code: description: 'The postal code or ZIP code of the client' type: string example: '90210' phone: description: "The client's phone number" type: string example: '555-3434-3434' country_id: description: "The unique identifier of the client's country" type: number format: integer example: '1' custom_value1: description: 'A custom field for storing additional information' type: string example: 'Preferred contact: Email' custom_value2: description: 'A custom field for storing additional information' type: string example: 'Account manager: John Doe' custom_value3: description: 'A custom field for storing additional information' type: string example: 'VIP client: Yes' custom_value4: description: 'A custom field for storing additional information' type: string example: 'Annual contract value: $50,000' vat_number: description: "The client's VAT (Value Added Tax) number, if applicable" type: string example: 'VAT123456' id_number: description: 'A unique identification number for the client, such as a tax ID or business registration number' type: string number: description: 'A system-assigned unique number for the client, typically used for invoicing purposes' type: string example: 'CL-0001' shipping_address1: description: "First line of the client's shipping address" type: string example: '5 Wallaby Way' shipping_address2: description: "Second line of the client's shipping address, if needed" type: string example: 'Suite 5' shipping_city: description: "The city of the client's shipping address" type: string example: 'Perth' shipping_state: description: "The state, province, or locality of the client's shipping address" type: string example: 'Western Australia' shipping_postal_code: description: "The postal code or ZIP code of the client's shipping address" type: string example: '6110' shipping_country_id: description: "The unique identifier of the country for the client's shipping address" type: number format: integer example: '4' is_deleted: description: 'A boolean value indicating whether the client has been deleted or not' type: boolean example: false readOnly: true balance: description: 'The outstanding balance the client owes' type: number format: float example: '500.00' readOnly: true paid_to_date: description: 'The total amount the client has paid to date' type: number format: float example: '2000.00' readOnly: true credit_balance: description: 'The available credit balance for the client to use on future purchases' type: number format: float example: '100.00' readOnly: true last_login: description: "The timestamp of the client's last login" type: number format: integer example: '1628686031' readOnly: true created_at: description: 'The timestamp when the client was created' type: number format: integer example: '1617629031' readOnly: true updated_at: description: 'The timestamp when the client was last updated' type: number format: integer example: '1628445631' readOnly: true group_settings_id: description: 'The group settings assigned to the client' type: string example: Opnel5aKBz routing_id: description: 'The routing address id for e-invoicing for this client' type: string example: Opnel5aKBz3489-dfkiu-2239-sdsd is_tax_exempt: description: 'Flag which defines if the client is exempt from taxes' type: boolean example: false has_valid_vat_number: description: 'Flag which defines if the client has a valid VAT number' type: boolean example: false readOnly: true payment_balance: description: 'Defines the payment balance the client has on file (pre payments / over payments / unapplied amounts)' type: number example: 100 readOnly: true settings: $ref: '#/components/schemas/ClientSettings' type: object CompanyUser: properties: permissions: description: 'The company user permissions' type: string example: '[create_invoice]' settings: description: 'Settings that are used for the frontend applications to store user preferences / metadata' type: object example: 'json object' react_settings: description: 'Dedicated settings object for the react web application' type: object' example: 'json object' is_owner: description: 'Determines whether the user owns this company' type: boolean example: true is_admin: description: 'Determines whether the user is the admin of this company' type: boolean example: true is_locked: description: 'Determines whether the users access to this company has been locked' type: boolean example: true updated_at: description: 'The last time the record was modified, format Unix Timestamp' type: integer example: '1231232312321' deleted_at: description: 'Timestamp when the user was archived, format Unix Timestamp' type: integer example: '12312312321' account: $ref: '#/components/schemas/Account' company: $ref: '#/components/schemas/Company' user: $ref: '#/components/schemas/User' token: $ref: '#/components/schemas/CompanyToken' type: object Design: properties: id: description: 'The design hashed id' type: string example: AS3df3A name: description: 'The design name' type: string example: Beauty design: description: 'The design HTML' type: string example: '' is_custom: description: 'Flag to determine if the design is a custom user design' type: boolean example: true is_active: description: 'Flag to determine if the design is available for use' type: boolean example: true is_deleted: description: 'Flag to determine if the design is deleted' type: boolean example: true created_at: description: Timestamp type: number format: integer example: '134341234234' updated_at: description: Timestamp type: number format: integer example: '134341234234' deleted_at: description: Timestamp type: number format: integer example: '134341234234' type: object InvoiceRequest: required: - client_id properties: id: description: 'The invoice hashed id' type: string example: Opnel5aKBz readOnly: true user_id: description: 'The user hashed id' type: string example: Opnel5aKBz assigned_user_id: description: 'The assigned user hashed id' type: string example: Opnel5aKBz company_id: description: 'The company hashed id' type: string example: Opnel5aKBz readOnly: true client_id: description: 'The client hashed id' type: string example: Opnel5aKBz status_id: description: 'The invoice status variable' type: string example: '4' readOnly: true number: description: 'The invoice number - is a unique alpha numeric number per invoice per company' type: string example: INV_101 po_number: description: 'The purchase order associated with this invoice' type: string example: PO-1234 terms: description: 'The invoice terms' type: string example: 'These are invoice terms' public_notes: description: 'The public notes of the invoice' type: string example: 'These are some public notes' private_notes: description: 'The private notes of the invoice' type: string example: 'These are some private notes' footer: description: 'The invoice footer notes' type: string example: '' custom_value1: description: 'A custom field value' type: string example: '2022-10-01' custom_value2: description: 'A custom field value' type: string example: 'Something custom' custom_value3: description: 'A custom field value' type: string example: '' custom_value4: description: 'A custom field value' type: string example: '' tax_name1: description: 'The tax name' type: string example: '' tax_name2: description: 'The tax name' type: string example: '' tax_rate1: description: 'The tax rate' type: number format: float example: '10.00' tax_rate2: description: 'The tax rate' type: number format: float example: '10.00' tax_name3: description: 'The tax name' type: string example: '' tax_rate3: description: 'The tax rate' type: number format: float example: '10.00' total_taxes: description: 'The total taxes for the invoice' type: number format: float example: '10.00' readOnly: line_items: type: array description: 'An array of objects which define the line items of the invoice' items: $ref: '#/components/schemas/InvoiceItem' invitations: type: array description: 'An array of objects which define the invitations of the invoice' items: $ref: '#/components/schemas/InvoiceInvitationRequest' amount: description: 'The invoice amount' type: number format: float example: '10.00' readOnly: true balance: description: 'The invoice balance' type: number format: float example: '10.00' readOnly: true paid_to_date: description: 'The amount paid on the invoice to date' type: number format: float example: '10.00' readOnly: true discount: description: 'The invoice discount, can be an amount or a percentage' type: number format: float example: '10.00' partial: description: 'The deposit/partial amount' type: number format: float example: '10.00' is_amount_discount: description: 'Flag determining if the discount is an amount or a percentage' type: boolean example: true is_deleted: description: 'Defines if the invoice has been deleted' type: boolean example: true readOnly: true uses_inclusive_taxes: description: 'Defines the type of taxes used as either inclusive or exclusive' type: boolean example: true date: description: 'The Invoice Date' type: string format: date example: '1994-07-30' last_sent_date: description: 'The last date the invoice was sent out' type: string format: date example: '1994-07-30' readOnly: true next_send_date: description: 'The Next date for a reminder to be sent' type: string format: date example: '1994-07-30' readOnly: true partial_due_date: description: 'The due date for the deposit/partial amount' type: string format: date example: '1994-07-30' due_date: description: 'The due date of the invoice' type: string format: date example: '1994-07-30' last_viewed: description: Timestamp type: number format: integer example: '1434342123' readOnly: true updated_at: description: Timestamp type: number format: integer example: '1434342123' readOnly: true archived_at: description: Timestamp type: number format: integer example: '1434342123' readOnly: true custom_surcharge1: description: 'First Custom Surcharge' type: number format: float example: '10.00' custom_surcharge2: description: 'Second Custom Surcharge' type: number format: float example: '10.00' custom_surcharge3: description: 'Third Custom Surcharge' type: number format: float example: '10.00' custom_surcharge4: description: 'Fourth Custom Surcharge' type: number format: float example: '10.00' custom_surcharge_tax1: description: 'Toggles charging taxes on custom surcharge amounts' type: boolean example: true custom_surcharge_tax2: description: 'Toggles charging taxes on custom surcharge amounts' type: boolean example: true custom_surcharge_tax3: description: 'Toggles charging taxes on custom surcharge amounts' type: boolean example: true custom_surcharge_tax4: description: 'Toggles charging taxes on custom surcharge amounts' type: boolean example: true project_id: description: 'The project associated with this invoice' type: string example: Opnel5aKBz type: object FillableInvoice: properties: assigned_user_id: description: "The assigned user's hashed ID" type: string example: 'a1b2c3d4' client_id: description: "The client's hashed ID" type: string example: 'x1y2z3a4' number: description: "The unique alphanumeric invoice number for each invoice per company" type: string example: INV_101 po_number: description: "The purchase order number associated with the invoice" type: string example: 'PO12345' terms: description: "The terms and conditions for the invoice" type: string example: 'Net 30' public_notes: description: "Public notes visible to the client on the invoice" type: string example: 'Thank you for your business.' private_notes: description: "Private notes for internal use only" type: string example: 'Client is a slow payer.' footer: description: "The footer text displayed on the invoice" type: string example: 'Authorized Signature' custom_value1: description: "First custom value for additional information" type: string example: 'Project ABC' custom_value2: description: "Second custom value for additional information" type: string example: 'Department XYZ' custom_value3: description: "Third custom value for additional information" type: string example: 'Location 123' custom_value4: description: "Fourth custom value for additional information" type: string example: 'Currency USD' tax_name1: description: "Name of the first tax applied to the invoice" type: string example: 'VAT' tax_name2: description: "Name of the second tax applied to the invoice" type: string example: 'GST' tax_rate1: description: "Rate of the first tax applied to the invoice" type: number example: 10.00 tax_rate2: description: "Rate of the second tax applied to the invoice" type: number example: 5.00 tax_name3: description: "Name of the third tax applied to the invoice" type: string example: 'PST' tax_rate3: description: "Rate of the third tax applied to the invoice" type: number example: 8.00 line_items: type: array description: 'An array of objects which define the line items of the invoice' items: $ref: '#/components/schemas/InvoiceItem' discount: description: "The discount applied to the invoice" type: number example: 10.00 partial: description: "The partial amount applied to the invoice" type: number example: 20.00 is_amount_discount: description: "Indicates whether the discount applied is a fixed amount or a percentage" type: boolean example: true uses_inclusive_taxes: description: "Indicates whether the tax rates applied to the invoice are inclusive or exclusive" type: boolean example: true date: description: "The date the invoice was issued" type: string example: '1994-07-30' partial_due_date: description: "The due date for the partial payment" type: string example: '1994-08-15' due_date: description: "The due date for the invoice" type: string example: '1994-08-30' custom_surcharge1: description: "First custom surcharge applied to the invoice" type: number example: 10.00 custom_surcharge2: description: "Second custom surcharge applied to the invoice" type: number example: 15.00 custom_surcharge3: description: "Third custom surcharge applied to the invoice" type: number example: 5.00 custom_surcharge4: description: "Fourth custom surcharge applied to the invoice" type: number example: 20.00 type: object Paymentable: properties: id: description: 'The paymentable hashed id' type: string example: AS3df3A invoice_id: description: 'The invoice hashed id' type: string example: AS3df3A credit_id: description: 'The credit hashed id' type: string example: AS3df3A refunded: description: 'The amount that has been refunded for this payment' type: number format: float example: '10.00' amount: description: 'The amount that has been applied to the payment' type: number format: float example: '10.00' updated_at: description: Timestamp type: number format: integer example: '1434342123' created_at: description: Timestamp type: number format: integer example: '1434342123' type: object BankTransaction: properties: id: description: 'The bank integration hashed id' type: string example: AS3df3A company_id: description: 'The company hashed id' type: string example: AS3df3A user_id: description: 'The user hashed id' type: string example: AS3df3A transaction_id: description: 'The id of the transaction rule' type: integer example: 343434 amount: description: 'The transaction amount' type: number example: 10 currency_id: description: 'The currency ID of the currency' type: string example: '1' account_type: description: 'The account type' type: string example: creditCard description: description: 'The description of the transaction' type: string example: 'Potato purchases for kevin' category_id: description: 'The category id' type: integer example: 1 category_type: description: 'The category description' type: string example: Expenses base_type: description: 'Either CREDIT or DEBIT' type: string example: CREDIT date: description: 'The date of the transaction' type: string example: '2022-09-01' bank_account_id: description: 'The ID number of the bank account' type: integer example: '1' type: object Meta: properties: pagination: $ref: '#/components/schemas/Pagination' Pagination: type: object properties: total: type: integer description: 'The total number of items' example: 1 readOnly: true count: type: integer description: 'The number of items per page' example: 1 readOnly: true per_page: type: integer description: 'The number of items per page' example: 1 readOnly: true current_page: type: integer description: 'The current page number' example: 1 readOnly: true total_pages: type: integer description: 'The total number of pages' example: 1 readOnly: true links: type: array description: 'The pagination links' readOnly: true FeesAndLimits: properties: min_limit: description: 'The minimum amount accepted for this gateway' type: string example: '2' max_limit: description: 'The maximum amount accepted for this gateway' type: string example: '2' fee_amount: description: 'The gateway fee amount' type: number format: float example: '2.0' fee_percent: description: 'The gateway fee percentage' type: number format: float example: '2.0' fee_tax_name1: description: 'Fee tax name' type: string example: GST fee_tax_name2: description: 'Fee tax name' type: string example: VAT fee_tax_name3: description: 'Fee tax name' type: string example: 'CA Sales Tax' fee_tax_rate1: description: 'The tax rate' type: number format: float example: '10.0' fee_tax_rate2: description: 'The tax rate' type: number format: float example: '17.5' fee_tax_rate3: description: 'The tax rate' type: number format: float example: '25.0' fee_cap: description: 'If set the fee amount will be no higher than this amount' type: number format: float example: '2.0' adjust_fee_percent: description: 'Adjusts the fee to match the exact gateway fee.' type: boolean example: true type: object InvoiceItem: type: object properties: quantity: type: integer example: 1 description: 'The quantity of the product offered for this line item' cost: type: number format: float example: 10.00 description: 'The cost of the product offered for this line item' product_key: type: string example: 'Product key' description: 'The product key of the product offered for this line item (Referred to as Product in the product tab)' product_cost: type: number format: float example: 10.00 description: 'The cost of the product offered for this line item (Referred to as Cost in the product tab)' notes: type: string example: 'Item notes' description: 'The notes/description for the product offered for this line item' discount: type: number format: float example: 5.00 description: 'The discount applied to the product offered for this line item' is_amount_discount: type: boolean example: false description: 'Indicates whether the discount applied to the product offered for this line item is a fixed amount or a percentage' tax_name1: type: string example: 'GST' description: 'The name of the first tax applied to the product offered for this line item' tax_rate1: type: number format: float example: 10.00 description: 'The rate of the first tax applied to the product offered for this line item' tax_name2: type: string example: 'VAT' description: 'The name of the second tax applied to the product offered for this line item' tax_rate2: type: number format: float example: 5.00 description: 'The rate of the second tax applied to the product offered for this line item' tax_name3: type: string example: 'CA Sales Tax' description: 'The name of the third tax applied to the product offered for this line item' tax_rate3: type: number format: float example: 3.00 description: 'The rate of the third tax applied to the product offered for this line item' sort_id: type: string example: '0' description: 'Deprecated' deprecated: true line_total: type: number format: float example: 10.00 description: 'The total amount of the product offered for this line item' readOnly: true gross_line_total: type: number format: float example: 15.00 description: 'The total amount of the product offered for this line item before discounts' readOnly: true tax_amount: type: number format: float example: 1.00 description: 'The total amount of tax applied to the product offered for this line item' readOnly: true date: type: string format: date-time example: '2023-03-19T00:00:00Z' description: 'Deprecated' deprecated: true custom_value1: type: string example: 'Custom value 1' description: 'The first custom value of the product offered for this line item' custom_value2: type: string example: 'Custom value 2' description: 'The second custom value of the product offered for this line item' custom_value3: type: string example: 'Custom value 3' description: 'The third custom value of the product offered for this line item' custom_value4: type: string example: 'Custom value 4' description: 'The fourth custom value of the product offered for this line item' type_id: type: string example: '1' description: '1 = product, 2 = service, 3 unpaid gateway fee, 4 paid gateway fee, 5 late fee, 6 expense' default: '1' tax_id: type: string example: '1' default: '1' description: 'The tax ID of the product: 1 product, 2 service, 3 digital, 4 shipping, 5 exempt, 5 reduced tax, 7 override, 8 zero rate, 9 reverse tax' Project: type: object properties: id: description: 'The project hashed id' type: string example: Opnel5aKBz user_id: description: 'The user hashed id' type: string example: Opnel5aKBz assigned_user_id: description: The assigned user identifier associated with the project type: string example: Opnel5aKBz client_id: type: string example: Opnel5aKBz description: The client identifier associated with the project name: type: string description: The name of the project example: 'New Project' task_rate: type: number format: float example: 10 description: The default rate per task for the project due_date: type: string format: date example: '2019-01-01' description: The due date for the project private_notes: type: string description: Private notes associated with the project budgeted_hours: type: number format: float description: The number of budgeted hours for the project custom_value1: type: string description: Custom value field 1 custom_value2: type: string description: Custom value field 2 custom_value3: type: string description: Custom value field 3 custom_value4: type: string description: Custom value field 4 created_at: type: number format: integer example: 134341234234 description: The timestamp of the project creation updated_at: type: number format: integer example: 134341234234 description: The timestamp of the last project update archived_at: type: number format: integer example: 134341234234 description: The timestamp of the project deletion public_notes: type: string description: Public notes associated with the project is_deleted: type: boolean description: A flag indicating if the project is deleted number: type: string description: The project number color: type: string description: The color associated with the project required: - id - user_id - company_id - name - task_rate - budgeted_hours - is_deleted - color PaymentTerm: properties: num_days: description: 'The payment term length in days' type: integer example: '1' name: description: 'The payment term length in string format' type: string example: 'NET 1' created_at: description: Timestamp type: number format: integer example: '134341234234' updated_at: description: Timestamp type: number format: integer example: '134341234234' archived_at: description: Timestamp type: number format: integer example: '134341234234' type: object BankIntegration: properties: id: description: 'The bank integration hashed id' type: string example: AS3df3A company_id: description: 'The company hashed id' type: string example: AS3df3A user_id: description: 'The user hashed id' type: string example: AS3df3A provider_bank_name: description: 'The providers bank name' type: string example: 'Chase Bank' bank_account_id: description: 'The bank account id' type: integer example: '1233434' bank_account_name: description: 'The name of the account' type: string example: 'My Checking Acc' bank_account_number: description: 'The account number' type: string example: '111 234 2332' bank_account_status: description: 'The status of the bank account' type: string example: ACTIVE bank_account_type: description: 'The type of account' type: string example: CREDITCARD balance: description: 'The current bank balance if available' type: number example: '1000000' currency: description: 'iso_3166_3 code' type: string example: USD type: object PurchaseOrder: properties: id: description: 'The unique hashed identifier for the purchase order' type: string example: Opnel5aKBz user_id: description: 'The unique hashed identifier for the user who created the purchase order' type: string example: '' assigned_user_id: description: 'The unique hashed identifier for the user assigned to the purchase order' type: string example: '' company_id: description: 'The unique hashed identifier for the company associated with the purchase order' type: string example: '' vendor_id: description: 'The unique hashed identifier for the vendor associated with the purchase order' type: string example: '' status_id: description: 'The status of the purchase order represented by a unique identifier' type: string example: '' number: description: 'The unique alpha-numeric purchase order number per company' type: string example: PO_101 quote_number: description: 'The quote number associated with this purchase order' type: string example: QUOTE_101 terms: description: 'The terms and conditions for the purchase order' type: string example: 'These are some purchase order terms. Valid for 14 days.' public_notes: description: 'Publicly visible notes associated with the purchase order' type: string example: 'These are public notes which the vendor may see' private_notes: description: 'Privately visible notes associated with the purchase order, not disclosed to the vendor' type: string example: 'These are private notes, not to be disclosed to the vendor' footer: description: 'The footer text of the purchase order' type: string example: 'The text goes in the footer of the purchase order' custom_value1: description: 'First custom value field for additional information' type: string example: 'A custom value' custom_value2: description: 'Second custom value field for additional information' type: string example: 'A custom value' custom_value3: description: 'Third custom value field for additional information' type: string example: 'A custom value' custom_value4: description: 'Fourth custom value field for additional information' type: string example: 'A custom value' tax_name1: description: 'The name of the first tax applied to the purchase order' type: string example: GST tax_name2: description: 'The name of the second tax applied to the purchase order' type: string example: VAT tax_rate1: description: 'The rate of the first tax applied to the purchase order' type: number format: float example: 10.00 tax_rate2: description: 'The rate of the second tax applied to the purchase order' type: number format: float example: 10.00 tax_name3: description: 'The name of the third tax applied to the purchase order' type: string example: '' tax_rate3: description: 'The rate of the third tax applied to the purchase order' type: number format: float example: 10.00 total_taxes: description: 'The total amount of taxes applied to the purchase order' type: number format: float example: 10.00 line_items: type: array description: 'An array of objects which define the line items of the purchase order' items: $ref: '#/components/schemas/InvoiceItem' amount: description: 'The total amount of the purchase order before taxes and discounts' type: number format: float example: 10.00 balance: description: 'The balance due for the purchase order after accounting for payments' type: number format: float example: 10.00 paid_to_date: description: 'The total amount paid on the purchase order so far' type: number format: float example: 10.00 discount: description: 'The discount amount or percentage applied to the purchase order' type: number format: float example: 10.00 partial: description: 'The partial or deposit amount for the purchase order' type: number format: float example: 10.00 is_amount_discount: description: 'Boolean flag indicating if the discount is a fixed amount or a percentage' type: boolean example: true is_deleted: description: 'Boolean flag indicating if the purchase order has been deleted' type: boolean example: false uses_inclusive_taxes: description: 'Boolean flag indicating if the taxes used are inclusive or exclusive' type: boolean example: true date: description: 'The date the purchase order was created' type: string format: date example: '1994-07-30' last_sent_date: description: 'The last date the purchase order was sent to the vendor' type: string format: date example: '1994-07-30' next_send_date: description: 'The next scheduled date for sending a reminder for the purchase order' type: string format: date example: '1994-07-30' partial_due_date: description: 'The due date for the partial or deposit amount' type: string format: date example: '1994-07-30' due_date: description: 'The due date for the total amount of the purchase order' type: string format: date example: '1994-07-30' settings: $ref: '#/components/schemas/CompanySettings' last_viewed: description: Timestamp type: number format: integer example: 1434342123 updated_at: description: Timestamp type: number format: integer example: 1434342123 archived_at: description: Timestamp type: number format: integer example: 1434342123 custom_surcharge1: description: 'First custom surcharge amount for the purchase order' type: number format: float example: 10.00 custom_surcharge2: description: 'Second custom surcharge amount for the purchase order' type: number format: float example: 10.00 custom_surcharge3: description: 'Third custom surcharge amount for the purchase order' type: number format: float example: 10.00 custom_surcharge4: description: 'Fourth custom surcharge amount for the purchase order' type: number format: float example: 10.00 custom_surcharge_tax1: description: 'Boolean flag indicating if taxes are charged on the first custom surcharge amount' type: boolean example: true custom_surcharge_tax2: description: 'Boolean flag indicating if taxes are charged on the second custom surcharge amount' type: boolean example: true custom_surcharge_tax3: description: 'Boolean flag indicating if taxes are charged on the third custom surcharge amount' type: boolean example: true custom_surcharge_tax4: description: 'Boolean flag indicating if taxes are charged on the fourth custom surcharge amount' type: boolean example: true type: object CompanyLedger: properties: entity_id: description: 'This field will reference one of the following entity hashed ID payment_id, invoice_id or credit_id' type: string example: AS3df3A notes: description: 'The notes which reference this entry of the ledger' type: string example: 'Credit note for invoice #3212' balance: description: 'The client balance' type: number format: float example: '10.00' adjustment: description: 'The amount the client balance is adjusted by' type: number format: float example: '10.00' updated_at: description: Timestamp type: number format: integer example: '1434342123' created_at: description: Timestamp type: number format: integer example: '1434342123' type: object Task: properties: id: description: 'The hashed id of the task' type: string example: Opnel5aKBz user_id: description: 'The hashed id of the user who created the task' type: string example: Opnel5aKBz assigned_user_id: description: 'The assigned user of the task' type: string example: Opnel5aKBz company_id: description: 'The hashed id of the company' type: string example: Opnel5aKBz client_id: description: 'The hashed if of the client' type: string example: Opnel5aKBz invoice_id: description: 'The hashed id of the invoice associated with the task' type: string example: Opnel5aKBz project_id: description: 'The hashed id of the project associated with the task' type: string example: Opnel5aKBz number: description: 'The number of the task' type: string example: TASK-123 time_log: description: 'An array of unix time stamps defining the start and end times of the task' type: string example: '[[1,2],[3,4]]' is_running: description: 'Determines if the task is still running' type: boolean example: true is_deleted: description: 'Boolean flag determining if the task has been deleted' type: boolean example: true task_status_id: description: 'The hashed id of the task status' type: string example: Opnel5aKBz description: description: 'The task description' type: string example: 'A wonder task to work on' duration: description: 'The task duration in seconds' type: integer example: '3600' task_status_order: description: 'The order of the task' type: integer example: '4' rate: description: 'The task rate' type: number example: 10.00 custom_value1: description: 'A custom value' type: string example: '2022-10-10' custom_value2: description: 'A custom value' type: string example: $1100 custom_value3: description: 'A custom value' type: string example: 'I need help' custom_value4: description: 'A custom value' type: string example: INV-3343 is_date_based: description: 'Boolean flag determining if the task is date based' type: boolean example: true calculated_start_date: description: 'The calculated start date of the task' type: string example: '2022-10-10' readOnly: true invoice_documents: description: "Boolean flags which determines whether to include the task documents on the invoice" type: boolean example: true created_at: description: Timestamp type: number format: integer example: '1434342123' readOnly: true updated_at: description: Timestamp type: number format: integer example: '1434342123' readOnly: true archived_at: description: Timestamp type: number format: integer example: '1434342123' readOnly: true type: object ClientContact: properties: id: description: 'The hashed if of the contact' type: string example: Opnel5aKBz user_id: description: 'The hashed id of the user who created the contact' type: string example: Opnel5aKBz company_id: description: 'The hashed id of the company' type: string example: Opnel5aKBz client_id: description: 'The hashed id of the client' type: string example: Opnel5aKBz first_name: description: 'The first name of the contact' type: string example: John last_name: description: 'The last name of the contact' type: string example: Doe phone: description: 'The phone number of the contact' type: string example: 555-152-4524 custom_value1: description: 'A Custom field value' type: string example: '' custom_value2: description: 'A Custom field value' type: string example: '' custom_value3: description: 'A Custom field value' type: string example: '' custom_value4: description: 'A Custom field value' type: string example: '' email: description: 'The email of the contact' type: string example: '' accepted_terms_version: description: 'The terms of service which the contact has accpeted' type: string example: 'A long set of ToS' password: description: 'The hashed password of the contact' type: string example: '*****' confirmation-code: description: 'The confirmation code used to authenticate the contacts email address' type: string example: 333-sdjkh34gbasd token: description: 'A uuid based token.' type: string example: 333-sdjkh34gbasd is_primary: description: 'Defines is this contact is the primary contact for the client' type: boolean example: true confirmed: description: 'Boolean value confirms the user has confirmed their account.' type: boolean example: true is_locked: description: 'Boolean value defines if the contact has been locked out.' type: boolean example: true send_email: description: 'Boolean value determines is this contact should receive emails' type: boolean example: true failed_logins: description: 'The number of failed logins the contact has had' type: number format: integer example: '3' email_verified_at: description: 'The date which the contact confirmed their email' type: number format: integer example: '134341234234' last_login: description: Timestamp type: number format: integer example: '134341234234' created_at: description: Timestamp type: number format: integer example: '134341234234' updated_at: description: Timestamp type: number format: integer example: '134341234234' deleted_at: description: Timestamp type: number format: integer example: '134341234234' type: object ClientContactRequest: properties: id: description: 'The hashed if of the contact' type: string example: Opnel5aKBz readOnly: true first_name: description: 'The first name of the contact' type: string example: John last_name: description: 'The last name of the contact' type: string example: Doe phone: description: 'The phone number of the contact' type: string example: 555-152-4524 custom_value1: description: 'A Custom field value' type: string example: '' custom_value2: description: 'A Custom field value' type: string example: '' custom_value3: description: 'A Custom field value' type: string example: '' custom_value4: description: 'A Custom field value' type: string example: '' email: description: 'The email of the contact' type: string example: '' password: description: 'The hashed password of the contact' type: string example: '*****' send_email: description: 'Boolean value determines is this contact should receive emails' type: boolean example: true type: object VendorContact: properties: id: description: 'The hashed id of the vendor contact' type: string example: Opnel5aKBz readOnly: true user_id: description: 'The hashed id of the user id' type: string example: Opnel5aKBz company_id: description: 'The hashed id of the company' type: string example: Opnel5aKBz vendor_id: description: 'The hashed id of the vendor' type: string example: Opnel5aKBz first_name: description: 'The first name of the contact' type: string example: Harry last_name: description: 'The last name of the contact' type: string example: Windsor phone: description: 'The contacts phone number' type: string example: 555-123-1234 custom_value1: description: 'A custom value' type: string example: '2022-10-10' custom_value2: description: 'A custom value' type: string example: $1000 custom_value3: description: 'A custom value' type: string example: '' custom_value4: description: 'A custom value' type: string example: '' email: description: 'The contact email address' type: string example: harry@windsor.com is_primary: description: 'Boolean flag determining if the contact is the primary contact for the vendor' type: boolean example: true created_at: description: Timestamp type: number format: integer example: '134341234234' readOnly: true updated_at: description: Timestamp type: number format: integer example: '134341234234' readOnly: true deleted_at: description: Timestamp type: number format: integer example: '134341234234' readOnly: true type: object Subscription: properties: id: description: Unique identifier for the subscription type: string example: Opnel5aKBz user_id: description: Unique identifier for the user associated with the subscription type: string example: Ua6Rw4pVbS product_id: description: Unique identifier for the product associated with the subscription type: string example: Pr5Ft7yBmC company_id: description: Unique identifier for the company associated with the subscription type: string example: Co7Vn3yLmW recurring_invoice_id: description: Unique identifier for the recurring invoice associated with the subscription type: string example: Ri2Yt8zJkP is_recurring: description: Indicates whether the subscription is recurring type: boolean example: 'true' frequency_id: description: 'integer const representation of the frequency' type: string example: '1' auto_bill: description: 'enum setting' type: string example: always promo_code: description: Promotional code applied to the subscription type: string example: PROMOCODE4U promo_discount: description: Discount percentage or amount applied to the subscription type: number example: 10 is_amount_discount: description: Indicates whether the discount is a fixed amount type: boolean example: 'true' allow_cancellation: description: Indicates whether the subscription can be cancelled type: boolean example: 'true' per_seat_enabled: description: Indicates whether the subscription pricing is per seat type: boolean example: 'true' currency_id: description: Unique identifier for the currency used in the subscription type: integer example: '1' max_seats_limit: description: Maximum number of seats allowed for the subscription type: integer example: '100' trial_enabled: description: Indicates whether the subscription has a trial period type: boolean example: 'true' trial_duration: description: Duration of the trial period in days type: integer example: '14' allow_query_overrides: description: Indicates whether query overrides are allowed for the subscription type: boolean example: 'true' allow_plan_changes: description: Indicates whether plan changes are allowed for the subscription type: boolean example: 'true' refund_period: description: Number of days within which refunds can be requested type: integer example: '30' webhook_configuration: description: Webhook configuration for the subscription type: string example: 'expand reference for this' is_deleted: description: Indicates whether the subscription has been deleted type: boolean example: 'false' archived_at: description: Timestamp type: number format: integer example: '1434342123' created_at: description: Timestamp type: number format: integer example: '134341234234' updated_at: description: Timestamp type: number format: integer example: '134341234234' type: object BulkAction: type: array items: type: integer example: '[0,1,2,3,]' BTRules: properties: data_key: description: 'The key to search' type: string example: 'description,amount' operator: description: 'The operator flag of the search' type: string example: '>' value: description: 'The value to search for' type: string example: bob type: object Company: properties: id: description: "The unique hashed identifier for the company" type: string example: WJxbojagwO size_id: description: "The unique identifier representing the company's size category" type: string example: '2' industry_id: description: "The unique identifier representing the company's industry category" type: string example: '5' slack_webhook_url: description: "The URL for the company's Slack webhook notifications" type: string example: 'https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXX' google_analytics_key: description: "The company's Google Analytics tracking ID" type: string example: 'UA-123456789-1' portal_mode: description: "The mode determining how client-facing URLs are structured (e.g., subdomain, domain, or iframe)" type: string example: subdomain subdomain: description: "The subdomain prefix for the company's domain (e.g., 'acme' in acme.domain.com)" type: string example: acme portal_domain: description: "The fully qualified domain used for client-facing URLs" type: string example: 'https://subdomain.invoicing.co' enabled_tax_rates: description: "The number of tax rates used per entity" type: integer example: '2' fill_products: description: "A flag determining whether to auto-fill product descriptions based on the product key" type: boolean example: true convert_products: description: "A flag determining whether to convert products between different types or units" type: boolean example: true update_products: description: "A flag determining whether to update product descriptions when the description changes" type: boolean example: true show_product_details: description: "A flag determining whether to display product details in the user interface" type: boolean example: true show_product_cost: description: "A flag determining whether to display product cost is shown in the user interface" type: boolean example: true custom_fields: description: "A mapping of custom fields for various objects within the company" type: object enable_product_cost: description: "A flag determining whether to show or hide the product cost field in the user interface" type: boolean example: true enable_product_quantity: description: "A flag determining whether to show or hide the product quantity field in the user interface" type: boolean example: true default_quantity: description: "A flag determining whether to use a default quantity for products" type: boolean example: true custom_surcharge_taxes1: description: "A flag determining whether to apply taxes on custom surcharge amounts for the first custom surcharge field" type: boolean example: true custom_surcharge_taxes2: description: "A flag determining whether to apply taxes on custom surcharge amounts for the second custom surcharge field" type: boolean example: true custom_surcharge_taxes3: description: "A flag determining whether to apply taxes on custom surcharge amounts for the third custom surcharge field" type: boolean example: true custom_surcharge_taxes4: description: "A flag determining whether to apply taxes on custom surcharge amounts for the fourth custom" logo: description: "The company logo file in binary format" type: string format: binary example: logo.png company_key: description: "The static company key hash used to identify the Company" readOnly: true type: string example: "Vnb14bRlwiFjc5ckte6cfbygTRkn5IMQ" client_can_register: description: "A flag determining whether clients can register for the client portal" type: boolean example: true enabled_modules: type: integer description: | Bitmask representation of the modules that are enabled in the application ``` self::ENTITY_RECURRING_INVOICE => 1, self::ENTITY_CREDIT => 2, self::ENTITY_QUOTE => 4, self::ENTITY_TASK => 8, self::ENTITY_EXPENSE => 16, self::ENTITY_PROJECT => 32, self::ENTITY_VENDOR => 64, self::ENTITY_TICKET => 128, self::ENTITY_PROPOSAL => 256, self::ENTITY_RECURRING_EXPENSE => 512, self::ENTITY_RECURRING_TASK => 1024, self::ENTITY_RECURRING_QUOTE => 2048, ``` The default per_page value is 20. example: 2048 db: readOnly: true type: string example: 'db-ninja-01' first_day_of_week: description: "The first day of the week for the company" type: string example: '1' first_month_of_year: description: "The first month for the company financial year" type: string example: '1' enabled_item_tax_rates: description: "The number of tax rates used per item" type: integer example: 2 is_large: description: "A flag determining whether the company is considered large" type: boolean example: true default_auto_bill: type: enum example: 'always' description: | A flag determining whether to auto-bill clients by default values: - always - Always auto bill - disabled - Never auto bill - optin - Allow the client to select their auto bill status with the default being disabled - optout -Allow the client to select their auto bill status with the default being enabled mark_expenses_invoiceable: description: "A flag determining whether to mark expenses as invoiceable by default" type: boolean example: true mark_expenses_paid: description: "A flag determining whether to mark expenses as paid by default" type: boolean example: true invoice_expense_documents: description: "A flag determining whether to include expense documents on invoices by default" type: boolean example: true auto_start_tasks: description: "A flag determining whether to auto-start tasks by default" type: boolean example: true invoice_task_timelog: description: "A flag determining whether to include task time logs on invoices by default" type: boolean example: true invoice_task_documents: description: "A flag determining whether to include task documents on invoices by default" type: boolean example: true show_tasks_table: description: "A flag determining whether to show the tasks table on invoices by default" type: boolean example: true is_disabled: description: "A flag determining whether the company is disabled" type: boolean example: true default_task_is_date_based: description: "A flag determining whether to default tasks to be date-based" type: boolean example: true enable_product_discount: description: "A flag determining whether to show or hide the product discount field in the user interface" type: boolean example: true calculate_expense_tax_by_amount: description: "A flag determining whether to calculate expense taxes by amount" type: boolean example: true expense_inclusive_taxes: description: "A flag determining whether to include taxes in the expense amount" type: boolean example: true session_timeout: description: "The session timeout for the company" type: integer example: 60 oauth_password_required: description: "A flag determining whether to require a password for `dangerous` actions when using OAuth" type: boolean example: true invoice_task_datelog: description: "A flag determining whether to include task date logs on invoices by default" type: boolean example: true default_password_timeout: description: "The default password timeout for the company" type: integer example: 60 show_task_end_date: description: "A flag determining whether to show the task end date on invoices by default" type: boolean example: true markdown_enabled: description: "A flag determining whether markdown is enabled for the company" type: boolean example: true report_include_drafts: description: "A flag determining whether to include draft invoices in reports" type: boolean example: true client_registration_fields: description: "The client registration fields for the company" type: object stop_on_unpaid_recurring: description: "A flag determining whether to stop recurring invoices when they are unpaid" type: boolean example: true use_quote_terms_on_conversion: description: "A flag determining whether to use quote terms on conversion to an invoice" type: boolean example: true enable_applying_payments: description: "A flag determining whether to enable applying payments to invoices" type: boolean example: true track_inventory: description: "A flag determining whether to track inventory for the company" type: boolean example: true inventory_notification_threshold: description: "The inventory notification threshold for the company" type: integer example: 60 stock_notification: description: "A flag determining whether to send stock notifications for the company" type: boolean example: true matomo_url: description: "The Matomo URL for the company" type: string example: 'https://matomo.example.com' matomo_id: description: "The Matomo ID for the company" type: string example: '1' enabled_expense_tax_rates: description: "The number of tax rates used per expense" type: integer example: 2 invoice_task_project: description: "A flag determining whether to include the project on invoices by default" type: boolean example: true report_include_deleted: description: "A flag determining whether to include deleted invoices in reports" type: boolean example: true invoice_task_lock: description: "A flag determining whether to lock tasks when invoiced" type: boolean example: true convert_payment_currency: description: "A flag determining whether to convert the payment currency" type: boolean example: true convert_expense_currency: description: "A flag determining whether to convert the expense currency" type: boolean example: true notify_vendor_when_paid: description: "A flag determining whether to notify the vendor when an expense is paid" type: boolean example: true invoice_task_hours: description: "A flag determining whether to include the task hours on invoices by default" type: boolean example: true calculate_taxes: description: "A flag determining whether to calculate taxes for the company" type: boolean example: true tax_data: description: "The tax data for the company" type: object e_invoice_certificate: description: "The e-invoice certificate for the company" type: string example: '-----BEGIN CERTIFICATE-----' e_invoice_certificate_passphrase: description: "The e-invoice certificate passphrase for the company" type: string example: 'secret' origin_tax_data: description: "The origin tax data for the company" type: object invoice_task_project_header: description: "A flag determining whether to include the project header on invoices by default" type: boolean example: true invoice_task_item_description: description: "A flag determining whether to include the item description on invoices by default" type: boolean example: true settings: $ref: '#/components/schemas/CompanySettings' type: object RecurringInvoice: properties: id: description: 'The hashed id of the recurring invoice' type: string example: Opnel5aKBz user_id: description: 'The user hashed id' type: string example: Opnel5aKBz assigned_user_id: description: 'The assigned user hashed id' type: string example: Opnel5aKBz company_id: description: 'The company hashed id' type: string example: Opnel5aKBz client_id: description: 'The client hashed id' type: string example: Opnel5aKBz status_id: description: 'The invoice status variable' type: string example: '4' frequency_id: description: 'The recurring invoice frequency' type: number example: '4' remaining_cycles: description: 'The number of invoices left to be generated' type: number example: '4' number: description: 'The recurringinvoice number - is a unique alpha numeric number per invoice per company' type: string example: INV_101 po_number: description: 'The purchase order associated with this recurring invoice' type: string example: PO-1234 terms: description: 'The invoice terms' type: string example: 'These are invoice terms' public_notes: description: 'The public notes of the invoice' type: string example: 'These are some public notes' private_notes: description: 'The private notes of the invoice' type: string example: 'These are some private notes' footer: description: 'The invoice footer notes' type: string example: '' custom_value1: description: 'A custom field value' type: string example: '2022-10-01' custom_value2: description: 'A custom field value' type: string example: 'Something custom' custom_value3: description: 'A custom field value' type: string example: '' custom_value4: description: 'A custom field value' type: string example: '' tax_name1: description: 'The tax name' type: string example: '' tax_name2: description: 'The tax name' type: string example: '' tax_rate1: description: 'The tax rate' type: number format: float example: '10.00' tax_rate2: description: 'The tax rate' type: number format: float example: '10.00' tax_name3: description: 'The tax name' type: string example: '' tax_rate3: description: 'The tax rate' type: number format: float example: '10.00' total_taxes: description: 'The total taxes for the invoice' type: number format: float example: '10.00' line_items: description: 'An array of objects which define the line items of the invoice' type: object example: '' amount: description: 'The invoice amount' type: number format: float example: '10.00' balance: description: 'The invoice balance' type: number format: float example: '10.00' paid_to_date: description: 'The amount paid on the invoice to date' type: number format: float example: '10.00' discount: description: 'The invoice discount, can be an amount or a percentage' type: number format: float example: '10.00' partial: description: 'The deposit/partial amount' type: number format: float example: '10.00' is_amount_discount: description: 'Flag determining if the discount is an amount or a percentage' type: boolean example: true is_deleted: description: 'Defines if the invoice has been deleted' type: boolean example: true uses_inclusive_taxes: description: 'Defines the type of taxes used as either inclusive or exclusive' type: boolean example: true date: description: 'The Invoice Date' type: string format: date example: '1994-07-30' last_sent_date: description: 'The last date the invoice was sent out' type: string format: date example: '1994-07-30' next_send_date: description: 'The Next date for a reminder to be sent' type: string format: date example: '1994-07-30' partial_due_date: description: 'The due date for the deposit/partial amount' type: string format: date example: '1994-07-30' due_date: description: 'The due date of the invoice' type: string format: date example: '1994-07-30' settings: $ref: '#/components/schemas/CompanySettings' last_viewed: description: Timestamp type: number format: integer example: '1434342123' updated_at: description: Timestamp type: number format: integer example: '1434342123' archived_at: description: Timestamp type: number format: integer example: '1434342123' custom_surcharge1: description: 'First Custom Surcharge' type: number format: float example: '10.00' custom_surcharge2: description: 'Second Custom Surcharge' type: number format: float example: '10.00' custom_surcharge3: description: 'Third Custom Surcharge' type: number format: float example: '10.00' custom_surcharge4: description: 'Fourth Custom Surcharge' type: number format: float example: '10.00' custom_surcharge_tax1: description: 'Toggles charging taxes on custom surcharge amounts' type: boolean example: true custom_surcharge_tax2: description: 'Toggles charging taxes on custom surcharge amounts' type: boolean example: true custom_surcharge_tax3: description: 'Toggles charging taxes on custom surcharge amounts' type: boolean example: true custom_surcharge_tax4: description: 'Toggles charging taxes on custom surcharge amounts' type: boolean example: true type: object Quote: properties: id: description: 'The unique hashed identifier for the quote' type: string example: Opnel5aKBz user_id: description: 'The unique hashed identifier for the user who created the quote' type: string example: '' assigned_user_id: description: 'The unique hashed identifier for the user assigned to the quote' type: string example: '' company_id: description: 'The unique hashed identifier for the company associated with the quote' type: string example: '' client_id: description: 'The unique hashed identifier for the client associated with the quote' type: string example: '' status_id: description: 'The status of the quote represented by a unique identifier' type: string example: '' number: description: 'The unique alpha-numeric quote number for the quote per company' type: string example: QUOTE_101 po_number: description: 'The purchase order number associated with the quote' type: string example: PO-1234 terms: description: 'The terms and conditions for the quote' type: string example: 'These are some quote terms. Valid for 14 days.' public_notes: description: 'Publicly visible notes associated with the quote' type: string example: 'These are public notes which the client may see' private_notes: description: 'Privately visible notes associated with the quote, not disclosed to the client' type: string example: 'These are private notes, not to be disclosed to the client' footer: description: 'The footer text of the quote' type: string example: 'The text goes in the footer of the quote' custom_value1: description: 'First custom value field for additional information' type: string example: 'A custom value' custom_value2: description: 'Second custom value field for additional information' type: string example: 'A custom value' custom_value3: description: 'Third custom value field for additional information' type: string example: 'A custom value' custom_value4: description: 'Fourth custom value field for additional information' type: string example: 'A custom value' tax_name1: description: 'The name of the first tax applied to the quote' type: string example: GST tax_name2: description: 'The name of the second tax applied to the quote' type: string example: VAT tax_rate1: description: 'The rate of the first tax applied to the quote' type: number format: float example: 10.00 tax_rate2: description: 'The rate of the second tax applied to the quote' type: number format: float example: 10.00 tax_name3: description: 'The name of the third tax applied to the quote' type: string example: '' tax_rate3: description: 'The rate of the third tax applied to the quote' type: number format: float example: 10.00 total_taxes: description: 'The total amount of taxes for the quote' type: number format: float example: 10.00 line_items: type: array description: 'An array of objects which define the line items of the quote' items: $ref: '#/components/schemas/InvoiceItem' amount: description: 'The total amount of the quote before taxes and discounts' type: number format: float example: 10.00 balance: description: 'The balance due for the quote after accounting for payments' type: number format: float example: 10.00 paid_to_date: description: 'The total amount paid on the quote so far' type: number format: float example: 10.00 discount: description: 'The discount amount or percentage applied to the quote' type: number format: float example: 10.00 partial: description: 'The partial or deposit amount for the quote' type: number format: float example: 10.00 is_amount_discount: description: 'Boolean flag indicating if the discount is a fixed amount or a percentage' type: boolean example: true is_deleted: description: 'Boolean flag indicating if the quote has been deleted' type: boolean example: false uses_inclusive_taxes: description: 'Boolean flag indicating if the taxes used are inclusive or exclusive' type: boolean example: true date: description: 'The date the quote was created' type: string format: date example: '1994-07-30' last_sent_date: description: 'The last date the quote was sent to the client' type: string format: date example: '1994-07-30' next_send_date: description: 'The next scheduled date for sending a reminder for the quote' type: string format: date example: '1994-07-30' partial_due_date: description: 'The due date for the partial or deposit amount' type: string format: date example: '1994-07-30' due_date: description: 'The due date for the total amount of the quote' type: string format: date example: '1994-07-30' settings: $ref: '#/components/schemas/CompanySettings' last_viewed: description: 'The timestamp of the last time the quote was viewed' type: number format: integer example: 1434342123 updated_at: description: 'The timestamp of the last update to the quote' type: number format: integer example: 1434342123 archived_at: description: 'The timestamp of when the quote was archived' type: number format: integer example: 1434342123 custom_surcharge1: description: 'First custom surcharge amount for the quote' type: number format: float example: 10.00 custom_surcharge2: description: 'Second custom surcharge amount for the quote' type: number format: float example: 10.00 custom_surcharge3: description: 'Third custom surcharge amount for the quote' type: number format: float example: 10.00 custom_surcharge4: description: 'Fourth custom surcharge amount for the quote' type: number format: float example: 10.00 custom_surcharge_tax1: description: 'Boolean flag indicating if taxes are charged on the first custom surcharge amount' type: boolean example: true custom_surcharge_tax2: description: 'Boolean flag indicating if taxes are charged on the second custom surcharge amount' type: boolean example: true custom_surcharge_tax3: description: 'Boolean flag indicating if taxes are charged on the third custom surcharge amount' type: boolean example: true custom_surcharge_tax4: description: 'Boolean flag indicating if taxes are charged on the fourth custom surcharge amount' type: boolean example: true type: object Invoice: properties: id: description: 'The invoice hashed id' type: string example: Opnel5aKBz readOnly: true user_id: description: 'The user hashed id' type: string example: Opnel5aKBz readOnly: true assigned_user_id: description: 'The assigned user hashed id' type: string example: Opnel5aKBz company_id: description: 'The company hashed id' type: string example: Opnel5aKBz readOnly: true client_id: description: 'The client hashed id' type: string example: Opnel5aKBz status_id: description: 'The invoice status variable' type: string example: '4' number: description: 'The invoice number - is a unique alpha numeric number per invoice per company' type: string example: INV_101 po_number: description: 'The purchase order associated with this invoice' type: string example: PO-1234 terms: description: 'The invoice terms' type: string example: 'These are invoice terms' public_notes: description: 'The public notes of the invoice' type: string example: 'These are some public notes' private_notes: description: 'The private notes of the invoice' type: string example: 'These are some private notes' footer: description: 'The invoice footer notes' type: string example: '' custom_value1: description: 'A custom field value' type: string example: '2022-10-01' custom_value2: description: 'A custom field value' type: string example: 'Something custom' custom_value3: description: 'A custom field value' type: string example: '' custom_value4: description: 'A custom field value' type: string example: '' tax_name1: description: 'The tax name' type: string example: '' tax_name2: description: 'The tax name' type: string example: '' tax_rate1: description: 'The tax rate' type: number format: float example: '10.00' tax_rate2: description: 'The tax rate' type: number format: float example: '10.00' tax_name3: description: 'The tax name' type: string example: '' tax_rate3: description: 'The tax rate' type: number format: float example: '10.00' total_taxes: description: 'The total taxes for the invoice' type: number format: float example: '10.00' line_items: type: array description: 'An array of objects which define the line items of the invoice' items: $ref: '#/components/schemas/InvoiceItem' invitations: type: array description: 'An array of objects which define the invitations of the invoice' items: $ref: '#/components/schemas/InvoiceInvitation' amount: description: 'The invoice amount' type: number format: float example: '10.00' balance: description: 'The invoice balance' type: number format: float example: '10.00' paid_to_date: description: 'The amount paid on the invoice to date' type: number format: float example: '10.00' discount: description: 'The invoice discount, can be an amount or a percentage' type: number format: float example: '10.00' partial: description: 'The deposit/partial amount' type: number format: float example: '10.00' is_amount_discount: description: 'Flag determining if the discount is an amount or a percentage' type: boolean example: true is_deleted: description: 'Defines if the invoice has been deleted' type: boolean example: true uses_inclusive_taxes: description: 'Defines the type of taxes used as either inclusive or exclusive' type: boolean example: true date: description: 'The Invoice Date' type: string format: date example: '1994-07-30' last_sent_date: description: 'The last date the invoice was sent out' type: string format: date example: '1994-07-30' next_send_date: description: 'The Next date for a reminder to be sent' type: string format: date example: '1994-07-30' partial_due_date: description: 'The due date for the deposit/partial amount' type: string format: date example: '1994-07-30' due_date: description: 'The due date of the invoice' type: string format: date example: '1994-07-30' last_viewed: description: Timestamp type: number format: integer example: '1434342123' updated_at: description: Timestamp type: number format: integer example: '1434342123' archived_at: description: Timestamp type: number format: integer example: '1434342123' custom_surcharge1: description: 'First Custom Surcharge' type: number format: float example: '10.00' custom_surcharge2: description: 'Second Custom Surcharge' type: number format: float example: '10.00' custom_surcharge3: description: 'Third Custom Surcharge' type: number format: float example: '10.00' custom_surcharge4: description: 'Fourth Custom Surcharge' type: number format: float example: '10.00' custom_surcharge_tax1: description: 'Toggles charging taxes on custom surcharge amounts' type: boolean example: true custom_surcharge_tax2: description: 'Toggles charging taxes on custom surcharge amounts' type: boolean example: true custom_surcharge_tax3: description: 'Toggles charging taxes on custom surcharge amounts' type: boolean example: true custom_surcharge_tax4: description: 'Toggles charging taxes on custom surcharge amounts' type: boolean example: true project_id: description: 'The project associated with this invoice' type: string example: Opnel5aKBz auto_bill_tries: description: 'The number of times the invoice has attempted to be auto billed' type: integer example: '1' readOnly: true auto_bill_enabled: description: 'Boolean flag determining if the invoice is set to auto bill' type: boolean example: true subscription_id: description: 'The subscription associated with this invoice' type: string example: Opnel5aKBz type: object ClientRequest: required: - contacts - country_id properties: id: description: 'The unique identifier of the client' type: string example: Opnel5aKBz readOnly: true contacts: type: array description: 'A list of contacts associated with the client' items: $ref: '#/components/schemas/ClientContactRequest' name: description: 'The name of the client company or organization' type: string example: "Jim's Housekeeping" website: description: 'The website URL of the client company or organization' type: string example: 'https://www.jims-housekeeping.com' private_notes: description: 'Notes that are only visible to the user who created the client' type: string example: 'Client prefers email communication over phone calls' industry_id: description: 'The unique identifier of the industry the client operates in' type: number example: '5' size_id: description: 'The unique identifier for the size category of the client company or organization' type: number example: '2' address1: description: "First line of the client's address" type: string example: '123 Main St' address2: description: "Second line of the client's address, if needed" type: string example: 'Apt 4B' city: description: 'The city the client is located in' type: string example: 'Beverly Hills' state: description: 'The state, province, or locality the client is located in' type: string example: 'California' postal_code: description: 'The postal code or ZIP code of the client' type: string example: '90210' phone: description: "The client's phone number" type: string example: '555-3434-3434' country_id: description: "The unique identifier of the client's country" type: number format: integer example: '1' custom_value1: description: 'A custom field for storing additional information' type: string example: 'Preferred contact: Email' custom_value2: description: 'A custom field for storing additional information' type: string example: 'Account manager: John Doe' custom_value3: description: 'A custom field for storing additional information' type: string example: 'VIP client: Yes' custom_value4: description: 'A custom field for storing additional information' type: string example: 'Annual contract value: $50,000' vat_number: description: "The client's VAT (Value Added Tax) number, if applicable" type: string example: 'VAT123456' id_number: description: 'A unique identification number for the client, such as a tax ID or business registration number' type: string number: description: 'A system-assigned unique number for the client, typically used for invoicing purposes' type: string example: 'CL-0001' shipping_address1: description: "First line of the client's shipping address" type: string example: '5 Wallaby Way' shipping_address2: description: "Second line of the client's shipping address, if needed" type: string example: 'Suite 5' shipping_city: description: "The city of the client's shipping address" type: string example: 'Perth' shipping_state: description: "The state, province, or locality of the client's shipping address" type: string example: 'Western Australia' shipping_postal_code: description: "The postal code or ZIP code of the client's shipping address" type: string example: '6110' shipping_country_id: description: "The unique identifier of the country for the client's shipping address" type: number format: integer example: '4' is_deleted: description: 'A boolean value indicating whether the client has been deleted or not' type: boolean example: false readOnly: true group_settings_id: description: 'The group settings assigned to the client' type: string example: Opnel5aKBz routing_id: description: 'The routing address id for e-invoicing for this client' type: string example: Opnel5aKBz3489-dfkiu-2239-sdsd is_tax_exempt: description: 'Flag which defines if the client is exempt from taxes' type: boolean example: false has_valid_vat_number: description: 'Flag which defines if the client has a valid VAT number' type: boolean example: false readOnly: true classification: description: 'The classification of the client' type: string example: 'individual' settings: $ref: '#/components/schemas/ClientSettings' type: object Vendor: properties: id: description: 'The hashed id of the vendor. This is a unique identifier for the vendor.' type: string example: Opnel5aKBz readOnly: true user_id: description: 'The hashed id of the user who created the vendor. This is a unique identifier for the user.' type: string example: Opnel5aKBz assigned_user_id: description: 'The hashed id of the assigned user to this vendor. This is a unique identifier for the user.' type: string example: Opnel5aKBz company_id: description: 'The hashed id of the company. This is a unique identifier for the company.' type: string example: Opnel5aKBz client_id: description: 'The hashed id of the client. This is a unique identifier for the client.' type: string example: Opnel5aKBz contacts: type: array items: $ref: '#/components/schemas/VendorContact' description: 'An array of contacts associated with the vendor.' name: description: 'The name of the vendor.' type: string example: 'Harry cafe de wheels' classification: description: 'The classification of the vendor.' type: string example: 'individual' website: description: 'The website of the vendor.' type: string example: www.harry.com private_notes: description: 'The private notes of the vendor. These notes are only visible to users with appropriate permissions.' type: string example: 'Shhh, do not tell the vendor' industry_id: description: 'The industry id of the vendor. This is a unique identifier for the industry.' type: string example: '1' size_id: description: 'The size id of the vendor. This is a unique identifier for the size of the vendor.' type: string example: '' address1: description: 'The first line of the vendor''s address.' type: string example: '' address2: description: 'The second line of the vendor''s address.' type: string example: '' city: description: 'The city of the vendor''s address.' type: string example: '' state: description: 'The state of the vendor''s address.' type: string example: '' postal_code: description: 'The postal code of the vendor''s address.' type: string example: '' phone: description: 'The phone number of the vendor.' type: string example: 555-3434-3434 country_id: description: 'The country id of the vendor. This is a unique identifier for the country.' type: string example: '' currency_id: description: 'The currency id of the vendor. This is a unique identifier for the currency.' type: string example: '4' custom_value1: description: 'The value of the first custom field for the vendor.' type: string example: '' custom_value2: description: 'The value of the second custom field for the vendor.' type: string example: '' custom_value3: description: 'The value of the third custom field for the vendor.' type: string example: '' custom_value4: description: 'The value of the fourth custom field for the vendor.' type: string example: '' vat_number: description: 'The VAT number of the vendor.' type: string example: '' id_number: description: 'The ID number of the vendor.' type: string example: '' number: description: 'The number of the vendor' type: string example: '11234' is_deleted: description: 'Boolean flag determining if the vendor has been deleted' type: boolean example: true language_id: description: 'The language id of the vendor. This is a unique identifier for the language.' type: string example: '1' vendor_hash: description: 'The vendor hash of the vendor. This is a unique identifier for the vendor.' type: string example: 'aaa-sss-www' readOnly: true transaction_name: description: 'The transaction name of the vendor.' type: string example: 'aaa-sss-www' last_login: description: Timestamp type: number format: integer example: '134341234234' readOnly: true created_at: description: Timestamp type: number format: integer example: '134341234234' readOnly: true updated_at: description: Timestamp type: number format: integer example: '134341234234' readOnly: true settings: $ref: '#/components/schemas/CompanySettings' type: object ClientSettings: required: - currency_id properties: currency_id: description: 'The default currency id' type: string example: true timezone_id: description: 'The timezone id' type: string example: '15' date_format_id: description: 'The date format id' type: string example: '15' military_time: description: 'Toggles 12/24 hour time' type: boolean example: true language_id: description: 'The language id' type: string example: '1' show_currency_code: description: 'Toggles whether the currency symbol or code is shown' type: boolean example: true payment_terms: description: '-1 sets no payment term, 0 sets payment due immediately, positive integers indicates payment terms in days' type: integer example: '1' company_gateway_ids: description: 'A commad separate list of available gateways' type: string example: '1,2,3,4' custom_value1: description: 'A Custom Label' type: string example: 'Custom Label' custom_value2: description: 'A Custom Label' type: string example: 'Custom Label' custom_value3: description: 'A Custom Label' type: string example: 'Custom Label' custom_value4: description: 'A Custom Label' type: string example: 'Custom Label' default_task_rate: description: 'The default task rate' type: number format: float example: '10.00' send_reminders: description: 'Toggles whether reminders are sent' type: boolean example: true enable_client_portal_tasks: description: 'Show/hide the tasks panel in the client portal' type: boolean example: true email_style: description: 'options include plain,light,dark,custom' type: string example: light reply_to_email: description: 'The reply to email address' type: string example: email@gmail.com bcc_email: description: 'A comma separate list of BCC emails' type: string example: 'email@gmail.com, contact@gmail.com' pdf_email_attachment: description: 'Toggles whether to attach PDF as attachment' type: boolean example: true ubl_email_attachment: description: 'Toggles whether to attach UBL as attachment' type: boolean example: true email_style_custom: description: 'The custom template' type: string example: '' counter_number_applied: description: 'enum when the invoice number counter is set, ie when_saved, when_sent, when_paid' type: string example: when_sent quote_number_applied: description: 'enum when the quote number counter is set, ie when_saved, when_sent' type: string example: when_sent custom_message_dashboard: description: 'A custom message which is displayed on the dashboard' type: string example: 'Please pay invoices immediately' custom_message_unpaid_invoice: description: 'A custom message which is displayed in the client portal when a client is viewing a unpaid invoice.' type: string example: 'Please pay invoices immediately' custom_message_paid_invoice: description: 'A custom message which is displayed in the client portal when a client is viewing a paid invoice.' type: string example: 'Thanks for paying this invoice!' custom_message_unapproved_quote: description: 'A custom message which is displayed in the client portal when a client is viewing a unapproved quote.' type: string example: 'Please approve quote' lock_invoices: description: 'Toggles whether invoices are locked once sent and cannot be modified further' type: boolean example: true auto_archive_invoice: description: 'Toggles whether a invoice is archived immediately following payment' type: boolean example: true auto_archive_quote: description: 'Toggles whether a quote is archived after being converted to a invoice' type: boolean example: true auto_convert_quote: description: 'Toggles whether a quote is converted to a invoice when approved' type: boolean example: true inclusive_taxes: description: 'Boolean flag determining whether inclusive or exclusive taxes are used' type: boolean example: true task_number_pattern: description: 'Allows customisation of the task number pattern' type: string example: '{$year}-{$counter}' task_number_counter: description: 'The incrementing counter for tasks' type: integer example: '1' reminder_send_time: description: 'Time from UTC +0 when the email will be sent to the client' type: integer example: '32400' expense_number_pattern: description: 'Allows customisation of the expense number pattern' type: string example: '{$year}-{$counter}' expense_number_counter: description: 'The incrementing counter for expenses' type: integer example: '1' vendor_number_pattern: description: 'Allows customisation of the vendor number pattern' type: string example: '{$year}-{$counter}' vendor_number_counter: description: 'The incrementing counter for vendors' type: integer example: '1' ticket_number_pattern: description: 'Allows customisation of the ticket number pattern' type: string example: '{$year}-{$counter}' ticket_number_counter: description: 'The incrementing counter for tickets' type: integer example: '1' payment_number_pattern: description: 'Allows customisation of the payment number pattern' type: string example: '{$year}-{$counter}' payment_number_counter: description: 'The incrementing counter for payments' type: integer example: '1' invoice_number_pattern: description: 'Allows customisation of the invoice number pattern' type: string example: '{$year}-{$counter}' invoice_number_counter: description: 'The incrementing counter for invoices' type: integer example: '1' quote_number_pattern: description: 'Allows customisation of the quote number pattern' type: string example: '{$year}-{$counter}' quote_number_counter: description: 'The incrementing counter for quotes' type: integer example: '1' client_number_pattern: description: 'Allows customisation of the client number pattern' type: string example: '{$year}-{$counter}' client_number_counter: description: 'The incrementing counter for clients' type: integer example: '1' credit_number_pattern: description: 'Allows customisation of the credit number pattern' type: string example: '{$year}-{$counter}' credit_number_counter: description: 'The incrementing counter for credits' type: integer example: '1' recurring_invoice_number_prefix: description: 'This string is prepended to the recurring invoice number' type: string example: R reset_counter_frequency_id: description: 'CONSTANT which is used to apply the frequency which the counters are reset' type: integer example: '1' reset_counter_date: description: 'The explicit date which is used to reset counters' type: string example: '2019-01-01' counter_padding: description: 'Pads the counter with leading zeros' type: integer example: '1' shared_invoice_quote_counter: description: 'Flags whether to share the counter for invoices and quotes' type: boolean example: true update_products: description: 'Determines if client fields are updated from third party APIs' type: boolean example: true convert_products: description: '' type: boolean example: true fill_products: description: 'Automatically fill products based on product_key' type: boolean example: true invoice_terms: description: 'The default invoice terms' type: string example: 'Invoice Terms are...' quote_terms: description: 'The default quote terms' type: string example: 'Quote Terms are...' invoice_taxes: description: 'Taxes can be applied to the invoice' type: number example: '1' invoice_design_id: description: 'The default design id (invoice, quote etc)' type: string example: '1' quote_design_id: description: 'The default design id (invoice, quote etc)' type: string example: '1' invoice_footer: description: 'The default invoice footer' type: string example: '1' invoice_labels: description: 'JSON string of invoice labels' type: string example: '1' tax_rate1: description: 'The tax rate (float)' type: number example: '10' tax_name1: description: 'The tax name' type: string example: GST tax_rate2: description: 'The tax rate (float)' type: number example: '10' tax_name2: description: 'The tax name' type: string example: GST tax_rate3: description: 'The tax rate (float)' type: number example: '10' tax_name3: description: 'The tax name' type: string example: GST payment_type_id: description: 'The default payment type id' type: string example: '1' custom_fields: description: 'JSON string of custom fields' type: string example: '{}' email_footer: description: 'The default email footer' type: string example: 'A default email footer' email_sending_method: description: 'The email driver to use to send email, options include default, gmail' type: string example: default gmail_sending_user_id: description: 'The hashed_id of the user account to send email from' type: string example: F76sd34D email_subject_invoice: description: '' type: string example: 'Your Invoice Subject' email_subject_quote: description: '' type: string example: 'Your Quote Subject' email_subject_payment: description: '' type: string example: 'Your Payment Subject' email_template_invoice: description: 'The full template for invoice emails' type: string example: '' email_template_quote: description: 'The full template for quote emails' type: string example: '' email_template_payment: description: 'The full template for payment emails' type: string example: '' email_subject_reminder1: description: 'Email subject for Reminder' type: string example: '' email_subject_reminder2: description: 'Email subject for Reminder' type: string example: '' email_subject_reminder3: description: 'Email subject for Reminder' type: string example: '' email_subject_reminder_endless: description: 'Email subject for endless reminders' type: string example: '' email_template_reminder1: description: 'The full template for Reminder 1' type: string example: '' email_template_reminder2: description: 'The full template for Reminder 2' type: string example: '' email_template_reminder3: description: 'The full template for Reminder 3' type: string example: '' email_template_reminder_endless: description: 'The full template for enless reminders' type: string example: '' enable_portal_password: description: 'Toggles whether a password is required to log into the client portal' type: boolean example: true show_accept_invoice_terms: description: 'Toggles whether the terms dialogue is shown to the client' type: boolean example: true show_accept_quote_terms: description: 'Toggles whether the terms dialogue is shown to the client' type: boolean example: true require_invoice_signature: description: 'Toggles whether a invoice signature is required' type: boolean example: true require_quote_signature: description: 'Toggles whether a quote signature is required' type: boolean example: true name: description: 'The company name' type: string example: 'Acme Co' company_logo: description: 'The company logo file' type: object example: logo.png website: description: 'The company website URL' type: string example: www.acme.com address1: description: 'The company address line 1' type: string example: 'Suite 888' address2: description: 'The company address line 2' type: string example: '5 Jimbo Way' city: description: 'The company city' type: string example: Sydney state: description: 'The company state' type: string example: Florisa postal_code: description: 'The company zip/postal code' type: string example: '90210' phone: description: 'The company phone' type: string example: 555-213-3948 email: description: 'The company email' type: string example: joe@acme.co country_id: description: 'The country ID' type: string example: '1' vat_number: description: 'The company VAT/TAX ID number' type: string example: '32 120 377 720' page_size: description: 'The default page size' type: string example: A4 font_size: description: 'The font size' type: number example: '9' primary_font: description: 'The primary font' type: string example: roboto secondary_font: description: 'The secondary font' type: string example: roboto hide_paid_to_date: description: 'Flags whether to hide the paid to date field' type: boolean example: false embed_documents: description: 'Toggled whether to embed documents in the PDF' type: boolean example: false all_pages_header: description: 'The header for the PDF' type: boolean example: false all_pages_footer: description: 'The footer for the PDF' type: boolean example: false document_email_attachment: description: 'Toggles whether to attach documents in the email' type: boolean example: false enable_client_portal_password: description: 'Toggles password protection of the client portal' type: boolean example: false enable_email_markup: description: 'Toggles the use of markdown in emails' type: boolean example: false enable_client_portal_dashboard: description: 'Toggles whether the client dashboard is shown in the client portal' type: boolean example: false enable_client_portal: description: 'Toggles whether the entire client portal is displayed to the client, or only the context' type: boolean example: false email_template_statement: description: 'The body of the email for statements' type: string example: 'template matter' email_subject_statement: description: 'The subject of the email for statements' type: string example: 'subject matter' signature_on_pdf: description: 'Toggles whether the signature (if available) is displayed on the PDF' type: boolean example: false quote_footer: description: 'The default quote footer' type: string example: 'the quote footer' email_subject_custom1: description: 'Custom reminder template subject' type: string example: 'Custom Subject 1' email_subject_custom2: description: 'Custom reminder template subject' type: string example: 'Custom Subject 2' email_subject_custom3: description: 'Custom reminder template subject' type: string example: 'Custom Subject 3' email_template_custom1: description: 'Custom reminder template body' type: string example: '' email_template_custom2: description: 'Custom reminder template body' type: string example: '' email_template_custom3: description: 'Custom reminder template body' type: string example: '' enable_reminder1: description: 'Toggles whether this reminder is enabled' type: boolean example: false enable_reminder2: description: 'Toggles whether this reminder is enabled' type: boolean example: false enable_reminder3: description: 'Toggles whether this reminder is enabled' type: boolean example: false num_days_reminder1: description: 'The Reminder interval' type: number example: '9' num_days_reminder2: description: 'The Reminder interval' type: number example: '9' num_days_reminder3: description: 'The Reminder interval' type: number example: '9' schedule_reminder1: description: '(enum: after_invoice_date, before_due_date, after_due_date)' type: string example: after_invoice_date schedule_reminder2: description: '(enum: after_invoice_date, before_due_date, after_due_date)' type: string example: after_invoice_date schedule_reminder3: description: '(enum: after_invoice_date, before_due_date, after_due_date)' type: string example: after_invoice_date late_fee_amount1: description: 'The late fee amount for reminder 1' type: number example: 10 late_fee_amount2: description: 'The late fee amount for reminder 2' type: number example: 20 late_fee_amount3: description: 'The late fee amount for reminder 2' type: number example: 100 endless_reminder_frequency_id: description: 'The frequency id of the endless reminder' type: string example: '1' client_online_payment_notification: description: 'Determines if a client should receive the notification for a online payment' type: boolean example: false client_manual_payment_notification: description: 'Determines if a client should receive the notification for a manually entered payment' type: boolean example: false enable_e_invoice: description: 'Determines if e-invoicing is enabled' type: boolean example: false default_expense_payment_type_id: description: 'The default payment type for expenses' type: string example: '0' e_invoice_type: description: 'The e-invoice type' type: string example: 'EN16931' mailgun_endpoint: description: 'The mailgun endpoint - used to determine whether US or EU endpoints are used' type: string example: 'api.mailgun.net or api.eu.mailgun.net' client_initiated_payments: description: 'Determines if clients can initiate payments directly from the client portal' type: boolean example: false client_initiated_payments_minimum: description: 'The minimum amount a client can pay' type: number example: 10 sync_invoice_quote_columns: description: 'Determines if invoice and quote columns are synced for the PDF rendering, or if they use their own columns' type: boolean example: false show_task_item_description: description: 'Determines if the task item description is shown on the invoice' type: boolean example: false allow_billable_task_items: description: 'Determines if task items can be marked as billable' type: boolean example: false accept_client_input_quote_approval: description: 'Determines if clients can approve quotes and also pass through a PO Number reference' type: boolean example: false custom_sending_email: description: 'When using Mailgun or Postmark, the FROM email address can be customized using this setting.' type: string example: 'bob@gmail.com' show_paid_stamp: description: 'Determines if the PAID stamp is shown on the invoice' type: boolean example: false show_shipping_address: description: 'Determines if the shipping address is shown on the invoice' type: boolean example: false company_logo_size: description: 'The size of the company logo on the PDF - percentage value between 0 and 100' type: number example: 100 show_email_footer: description: 'Determines if the email footer is shown on emails' type: boolean example: false email_alignment: description: 'The alignment of the email body text, options include left / center / right' type: string example: 'left' auto_bill_standard_invoices: description: 'Determines if standard invoices are automatically billed when they are created or due' type: boolean example: false postmark_secret: description: 'The Postmark secret API key' type: string example: '123456' mailgun_secret: description: 'The Mailgun secret API key' type: string example: '123456' mailgun_domain: description: 'The Mailgun domain' type: string example: 'sandbox123456.mailgun.org' send_email_on_mark_paid: description: 'Determines if an email is sent when an invoice is marked as paid' type: boolean example: false vendor_portal_enable_uploads: description: 'Determines if vendors can upload files to the portal' type: boolean example: false besr_id: description: 'The BESR ID' type: string example: '123456' qr_iban: description: 'The IBAN for the QR code' type: string example: 'CH123456' email_subject_purchase_order: description: 'The email subject for purchase orders' type: string example: 'Purchase Order' email_template_purchase_order: description: 'The email template for purchase orders' type: string example: 'Please see attached your purchase order.' require_purchase_order_signature: description: 'Determines if a signature is required on purchase orders' type: boolean example: false purchase_order_public_notes: description: 'The public notes for purchase orders' type: string example: 'Please see attached your purchase order.' purchase_order_terms: description: 'The terms for purchase orders' type: string example: 'Please see attached your purchase order.' purchase_order_footer: description: 'The footer for purchase orders' type: string example: 'Please see attached your purchase order.' purchase_order_design_id: description: 'The design id for purchase orders' type: string example: 'hd677df' purchase_order_number_pattern: description: 'The pattern for purchase order numbers' type: string example: 'PO-000000' purchase_order_number_counter: description: 'The counter for purchase order numbers' type: number example: 1 page_numbering_alignment: description: 'The alignment for page numbering: options include left / center / right' type: string example: 'left' page_numbering: description: 'Determines if page numbering is enabled on Document PDFs' type: boolean example: false auto_archive_invoice_cancelled: description: 'Determines if invoices are automatically archived when they are cancelled' type: boolean example: false email_from_name: description: 'The FROM name for emails when using Custom emailers' type: string example: 'Bob Smith' show_all_tasks_client_portal: description: 'Determines if all tasks are shown on the client portal' type: boolean example: false entity_send_time: description: 'The time that emails are sent. The time is localized to the clients locale, integer values from 1 - 24' type: integer example: 9 shared_invoice_credit_counter: description: 'Determines if the invoice and credit counter are shared' type: boolean example: false reply_to_name: description: 'The reply to name for emails' type: string example: 'Bob Smith' hide_empty_columns_on_pdf: description: 'Determines if empty columns are hidden on PDFs' type: boolean example: false enable_reminder_endless: description: 'Determines if endless reminders are enabled' type: boolean example: false use_credits_payment: description: 'Determines if credits can be used as a payment method' type: boolean example: false recurring_invoice_number_pattern: description: 'The pattern for recurring invoice numbers' type: string example: 'R-000000' recurring_invoice_number_counter: description: 'The counter for recurring invoice numbers' type: number example: 1 client_portal_under_payment_minimum: description: 'The minimum payment payment' type: number example: 10 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))' type: string example: 'on_send_date' primary_color: description: 'The primary color for the client portal / document highlights' type: string example: '#ffffff' secondary_color: description: 'The secondary color for the client portal / document highlights' type: string example: '#ffffff' client_portal_allow_under_payment: description: 'Determines if clients can pay invoices under the invoice amount due' type: boolean example: false client_portal_allow_over_payment: description: 'Determines if clients can pay invoices over the invoice amount' type: boolean example: false 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' type: string example: 'off' client_portal_terms: description: 'The terms which are displayed on the client portal' type: string example: 'Please see attached your invoice.' client_portal_privacy_policy: description: 'The privacy policy which is displayed on the client portal' type: string example: 'These are the terms of use for using the client portal.' client_can_register: description: 'Determines if clients can register on the client portal' type: boolean example: false portal_design_id: description: 'The design id for the client portal' type: string example: 'hd677df' late_fee_endless_percent: description: 'The late fee percentage for endless late fees' type: number example: 10 late_fee_endless_amount: description: 'The late fee amount for endless late fees' type: number example: 10 auto_email_invoice: description: 'Determines if invoices are automatically emailed when they are created' type: boolean example: false email_signature: description: 'The email signature for emails' type: string example: 'Bob Smith' type: object RecurringExpense: properties: id: description: 'The hashed id of the recurring expense' type: string example: Opnel5aKBz user_id: description: 'The hashed id of the user who created the recurring expense' type: string example: Opnel5aKBz assigned_user_id: description: 'The hashed id of the user assigned to this recurring expense' type: string example: Opnel5aKBz company_id: description: 'The hashed id of the company' type: string example: Opnel5aKBz client_id: description: 'The hashed id of the client' type: string example: Opnel5aKBz invoice_id: description: 'The hashed id of the invoice' type: string example: Opnel5aKBz bank_id: description: 'The id of the bank associated with this recurring expense' type: string example: '22' invoice_currency_id: description: 'The currency id of the invoice associated with this recurring expense' type: string example: '1' expense_currency_id: description: 'The currency id of the expense associated with this recurring expense' type: string example: '1' invoice_category_id: description: 'The category id of the invoice' type: string example: '1' payment_type_id: description: 'The payment type id' type: string example: '1' private_notes: description: 'The recurring expense private notes' type: string example: 'Private and confidential' public_notes: description: 'The recurring expense public notes' type: string example: 'This is the best client in the world' transaction_reference: description: 'The recurring expense transaction reference' type: string example: EXP-1223-2333 transcation_id: description: 'The transaction id of the recurring expense' type: string example: '1233312312' custom_value1: description: 'Custom value field' type: string example: $1000 custom_value2: description: 'Custom value field' type: string example: '2022-10-10' custom_value3: description: 'Custom value field' type: string example: 'short text' custom_value4: description: 'Custom value field' type: string example: 'very long text' tax_name1: description: 'The tax name' type: string example: GST tax_name2: description: 'The tax name' type: string example: VAT tax_rate1: description: 'The tax rate' type: number format: float example: '10.00' tax_rate2: description: 'The tax rate' type: number format: float example: '10.00' tax_name3: description: 'The tax name' type: string example: '' tax_rate3: description: 'The tax rate' type: number format: float example: '10.00' amount: description: 'The total amount of the recurring expense' type: number format: float example: '10.00' frequency_id: description: 'The frequency this recurring expense fires' type: number format: int example: '1' remaining_cycles: description: 'The number of remaining cycles for this recurring expense' type: number format: int example: '1' foreign_amount: description: 'The foreign currency amount of the recurring expense' type: number format: float example: '10.00' exchange_rate: description: 'The exchange rate for the expernse' type: number format: float example: '0.80' date: description: 'The date of the expense' type: string example: '' payment_date: description: 'The date the expense was paid' type: string example: '' should_be_invoiced: description: 'Boolean flag determining if the expense should be invoiced' type: boolean example: true is_deleted: description: 'Boolean flag determining if the recurring expense is deleted' type: boolean example: true last_sent_date: description: 'The Date it was sent last' type: string format: date example: '1994-07-30' next_send_date: description: 'The next send date' type: string format: date example: '1994-07-30' invoice_documents: description: 'Boolean flag determining if the documents associated with this expense should be passed onto the invoice if it is converted to an invoice' type: boolean example: true updated_at: description: Timestamp type: number format: integer example: '1434342123' archived_at: description: Timestamp type: number format: integer example: '1434342123' type: object Activity: properties: id: description: 'The id field of the activity' type: string example: Opnel5aKBz activity_type_id: description: 'The activity type id' type: string example: Opnel5aKBz client_id: description: 'The client hashed id' type: string example: Opnel5aKBz company_id: description: 'The company hashed id' type: string example: Opnel5aKBz user_id: description: 'The user hashed id' type: string example: Opnel5aKBz invoice_id: description: 'The invoice hashed id' type: string example: Opnel5aKBz payment_id: description: 'The payment hashed id' type: string example: Opnel5aKBz credit_id: description: 'The credit hashed id' type: string example: Opnel5aKBz updated_at: description: 'Unixtimestamp the last time the record was updated' type: integer example: '343421434' expense_id: description: 'The expense hashed id' type: string example: Opnel5aKBz is_system: description: 'Defines is the activity was performed by the system' type: boolean example: true contact_id: description: 'The contact hashed id' type: string example: Opnel5aKBz task_id: description: 'The task hashed id' type: string example: Opnel5aKBz notes: description: 'Activity Notes' type: string example: Opnel5aKBz token_id: description: 'The hashed ID of the token who performed the action' type: string example: Opnel5aKBz ip: description: 'The IP Address of the user who performed the action' type: string example: 192.168.1.252 user: $ref: '#/components/schemas/User' client: $ref: '#/components/schemas/Client' contact: $ref: '#/components/schemas/ClientContact' recurring_invoice: $ref: '#/components/schemas/RecurringInvoice' invoice: $ref: '#/components/schemas/Invoice' credit: $ref: '#/components/schemas/Credit' quote: $ref: '#/components/schemas/Quote' payment: $ref: '#/components/schemas/Payment' expense: $ref: '#/components/schemas/Expense' task: $ref: '#/components/schemas/Task' purchase_order: $ref: '#/components/schemas/PurchaseOrder' vendor: $ref: '#/components/schemas/Vendor' vendor_contact: $ref: '#/components/schemas/VendorContact' type: object Expense: properties: id: description: 'The expense hashed id' type: string example: Opnel5aKBz user_id: description: 'The user hashed id' type: string example: '' assigned_user_id: description: 'The assigned user hashed id' type: string example: '' company_id: description: 'The company hashed id' type: string example: '' client_id: description: 'The client hashed id' type: string example: '' invoice_id: description: 'The related invoice hashed id' type: string example: '' bank_id: description: 'The bank id related to this expense' type: string example: '' invoice_currency_id: description: 'The currency id of the related invoice' type: string example: '' expense_currency_id: description: 'The currency id of the expense' type: string example: '' invoice_category_id: description: 'The invoice category id' type: string example: '' payment_type_id: description: 'The payment type id' type: string example: '' recurring_expense_id: description: 'The related recurring expense this expense was created from' type: string example: '' private_notes: description: 'The private notes of the expense' type: string example: '' public_notes: description: 'The public notes of the expense' type: string example: '' transaction_reference: description: 'The transaction references of the expense' type: string example: '' transcation_id: description: 'The transaction id of the expense' type: string example: '' custom_value1: description: 'A custom value' type: string example: '' custom_value2: description: 'A custom value' type: string example: '' custom_value3: description: 'A custom value' type: string example: '' custom_value4: description: 'A custom value' type: string example: '' tax_name1: description: 'Tax name' type: string example: '' tax_name2: description: 'Tax name' type: string example: '' tax_rate1: description: 'Tax rate' type: number format: float example: '10.00' tax_rate2: description: 'Tax rate' type: number format: float example: '10.00' tax_name3: description: 'Tax name' type: string example: '' tax_rate3: description: 'Tax rate' type: number format: float example: '10.00' amount: description: 'The total expense amont' type: number format: float example: '10.00' foreign_amount: description: 'The total foreign amount of the expense' type: number format: float example: '10.00' exchange_rate: description: 'The exchange rate at the time of the expense' type: number format: float example: '0.80' date: description: 'The expense date formate Y-m-d' type: string example: '2022-12-01' payment_date: description: 'The date of payment for the expense, format Y-m-d' type: string example: '' should_be_invoiced: description: 'Flag whether the expense should be invoiced' type: boolean example: true is_deleted: description: 'Boolean determining whether the expense has been deleted' type: boolean example: true invoice_documents: description: 'Passing the expense documents over to the invoice' type: boolean example: true updated_at: description: Timestamp type: number format: integer example: '1434342123' archived_at: description: Timestamp type: number format: integer example: '1434342123' type: object Error: properties: message: description: 'Something terrible went wrong' type: string example: 'Unexpected error' code: description: 'The HTTP error code, ie 5xx 4xx' type: integer example: '500' type: object InvoiceInvitation: properties: id: description: 'The entity invitation hashed id' type: string example: Opnel5aKBz readOnly: true client_contact_id: description: 'The client contact hashed id' type: string example: Opnel5aKBz key: description: 'The invitation key' type: string example: Opnel5aKBz4343343566236gvbb readOnly: true link: description: 'The invitation link' type: string example: 'https://www.example.com/invitations/Opnel5aKBz4343343566236gvbb' readOnly: true sent_date: description: 'The invitation sent date' type: string format: date-time readOnly: true viewed_date: description: 'The invitation viewed date' type: string format: date-time readOnly: true opened_date: description: 'The invitation opened date' type: string format: date-time readOnly: true updated_at: description: 'Timestamp' type: number format: integer example: '1434342123' readOnly: true archived_at: description: 'Timestamp' type: number format: integer example: '1434342123' readOnly: true email_error: description: 'The email error' type: string example: 'The email error' readOnly: true email_status: description: 'The email status' type: string readOnly: true ProductBulkAction: required: - action - ids properties: action: type: string example: archive description: 'The action to perform ie. archive / restore / delete / set_tax_id' ids: type: array items: format: string type: string example: 2J234DFA,D2J234DFA,D2J234DFA description: string array of client hashed ids tax_id: type: string example: '1' description: | The tax rate id to set on the list of products The following constants are available (default = '1') ``` PRODUCT_TYPE_PHYSICAL = '1' PRODUCT_TYPE_SERVICE = '2' PRODUCT_TYPE_DIGITAL = '3' PRODUCT_TYPE_SHIPPING = '4' PRODUCT_TYPE_EXEMPT = '5' PRODUCT_TYPE_REDUCED_TAX = '6' PRODUCT_TYPE_OVERRIDE_TAX = '7' PRODUCT_TYPE_ZERO_RATED = '8' PRODUCT_TYPE_REVERSE_TAX = '9' ``` type: object User: properties: id: description: 'The hashed id of the user' type: string example: Opnel5aKBz readOnly: true first_name: description: 'The first name of the user' type: string example: Brad last_name: description: 'The last name of the user' type: string example: Pitt email: description: 'The users email address' type: string example: brad@pitt.com phone: description: 'The users phone number' type: string example: 555-1233-23232 signature: description: 'The users sign off signature' type: string example: 'Have a nice day!' avatar: description: 'The users avatar' type: string example: 'https://url.to.your/avatar.png' accepted_terms_version: description: 'The version of the invoice ninja terms that has been accepted by the user' type: string example: 1.0.1 readOnly: true oauth_user_id: description: 'The provider id of the oauth entity' type: string example: jkhasdf789as6f675sdf768sdfs readOnly: true oauth_provider_id: description: 'The oauth entity id' type: string example: google readOnly: true language_id: description: 'The language id of the user' type: string example: 1 verified_phone_number: description: 'Boolean flag if the user has their phone verified. Required to settings up 2FA' type: boolean example: true readOnly: true sms_verification_code: description: 'The sms verification code for the user. Required to settings up 2FA' type: string example: '123456' readOnly: true oauth_user_token_expiry: description: 'The expiry date of the oauth token' type: string example: '2022-10-10' readOnly: true has_password: description: 'Boolean flag determining if the user has a password' type: boolean example: true readOnly: true last_confirmed_email_address: description: 'The last confirmed email address of the user' type: string example: 'bob@gmail.com' readOnly: true custom_value1: description: 'A custom value' type: string example: 'Custom value 1' custom_value2: description: 'A custom value' type: string example: '$1000' custom_value3: description: 'A custom value' type: string example: 'Custom value 3' custom_value4: description: 'A custom value' type: string example: 'Custom value 4' is_deleted: description: 'Boolean flag determining if the user has been deleted' type: boolean example: true readOnly: true google_2fa_secret: description: 'The google 2fa secret for the user' type: string example: '123456' readOnly: true type: object Account: properties: id: description: 'The account hashed id' type: string example: AS3df3A account_sms_verified: description: 'Boolean flag if the account has been verified by sms' type: string example: true type: object Credit: properties: id: description: "The unique hashed ID of the credit" type: string example: Opnel5aKBz user_id: description: "The unique hashed ID of the user associated with the credit" type: string example: 1a2b3c4d5e assigned_user_id: description: "The unique hashed ID of the assigned user responsible for the credit" type: string example: 6f7g8h9i0j company_id: description: "The unique hashed ID of the company associated with the credit" type: string example: k1l2m3n4o5 client_id: description: "The unique hashed ID of the client associated with the credit" type: string example: p1q2r3s4t5 status_id: description: "The ID representing the current status of the credit" type: string example: 3 invoice_id: description: "The unique hashed ID of the linked invoice to which the credit is applied" type: string example: u1v2w3x4y5 number: description: "The unique alphanumeric credit number per company" type: string example: QUOTE_101 po_number: description: "The purchase order number referred to by the credit" type: string example: PO_12345 terms: description: "The terms associated with the credit" type: string example: "Net 30" public_notes: description: "Public notes for the credit" type: string example: "Thank you for your business." private_notes: description: "Private notes for internal use, not visible to the client" type: string example: "Client is requesting a discount." footer: description: "The footer text for the credit" type: string example: "Footer text goes here." custom_value1: description: "Custom value 1 for additional credit information" type: string example: "Custom data 1" custom_value2: description: "Custom value 2 for additional credit information" type: string example: "Custom data 2" custom_value3: description: "Custom value 3 for additional credit information" type: string example: "Custom data 3" custom_value4: description: "Custom value 4 for additional credit information" type: string example: "Custom data 4" tax_name1: description: "The name of the first tax applied to the credit" type: string example: "VAT" tax_name2: description: "The name of the second tax applied to the credit" type: string example: "GST" tax_rate1: description: "The rate of the first tax applied to the credit" type: number format: float example: 10.00 tax_rate2: description: "The rate of the second tax applied to the credit" type: number format: float example: 5.00 tax_name3: description: "The name of the third tax applied to the credit" type: string example: "PST" tax_rate3: description: "The rate of the third tax applied to the credit" type: number format: float example: 8.00 total_taxes: description: "The total amount of taxes for the credit" type: number format: float example: 23.00 line_items: type: array description: 'An array of objects which define the line items of the credit' items: $ref: '#/components/schemas/InvoiceItem' amount: description: "The total amount of the credit" type: number format: float example: 100.00 balance: description: "The outstanding balance of the credit" type: number format: float example: 50.00 paid_to_date: description: "The total amount paid to date for the credit" type: number format: float example: 50.00 discount: description: "The discount applied to the credit" type: number format: float example: 10.00 partial: description: "The partial amount applied to the credit" type: number format: float example: 20.00 is_amount_discount: description: "Indicates whether the discount applied is a fixed amount or a percentage" type: boolean example: true is_deleted: description: "Indicates whether the credit has been deleted" type: boolean example: false uses_inclusive_taxes: description: "Indicates whether the tax rates applied to the credit are inclusive or exclusive" type: boolean example: true date: description: "The date the credit was issued" type: string format: date example: "1994-07-30" last_sent_date: description: "The date the credit was last sent out" type: string format: date example: "1994-07-30" next_send_date: description: "The next scheduled date for sending a credit reminder" type: string format: date example: "1994-07-30" partial_due_date: description: "The due date for the partial amount of the credit" type: string format: date example: "1994-07-30" due_date: description: "The due date for the total amount of the credit" type: string format: date example: "1994-07-30" settings: $ref: "#/components/schemas/CompanySettings" last_viewed: description: "The timestamp of the last time the credit was viewed" type: number format: integer example: 1434342123 updated_at: description: "The timestamp of the last time the credit was updated" type: number format: integer example: 1434342123 archived_at: description: "The timestamp of the last time the credit was archived" type: number format: integer example: 1434342123 custom_surcharge1: description: "First custom surcharge amount" type: number format: float example: 10.00 custom_surcharge2: description: 'Second Custom Surcharge' type: number format: float example: '10.00' custom_surcharge3: description: 'Third Custom Surcharge' type: number format: float example: '10.00' custom_surcharge4: description: 'Fourth Custom Surcharge' type: number format: float example: '10.00' custom_surcharge_tax1: description: 'Toggles charging taxes on custom surcharge amounts' type: boolean example: true custom_surcharge_tax2: description: 'Toggles charging taxes on custom surcharge amounts' type: boolean example: true custom_surcharge_tax3: description: 'Toggles charging taxes on custom surcharge amounts' type: boolean example: true custom_surcharge_tax4: description: 'Toggles charging taxes on custom surcharge amounts' type: boolean example: true type: object tags: - name: login description: | Attempts to authenticate with the API using a email/password combination. externalDocs: description: "Find out more" url: "https://invoiceninja.github.io" - name: clients description: | Endpoint definitions for interacting with clients. - name: products description: | Endpoint definitions for interacting with products. - name: invoices description: | Endpoint definitions for interacting with invoices. - name: Recurring Invoices description: | Endpoint definitions for interacting with recurring_invoices. - name: payments description: | Endpoint definitions for interacting with payments. - name: quotes description: | Endpoint definitions for interacting with quotes. - name: credits description: | Endpoint definitions for interacting with credits. - name: projects description: | Endpoint definitions for interacting with projects. - name: tasks description: | Endpoint definitions for interacting with tasks. - name: vendors description: | Endpoint definitions for interacting with vendors. - name: Purchase Orders summary: Purchase Orders description: | Endpoint definitions for interacting with purchase orders. - name: expenses description: | Endpoint definitions for interacting with expenses. - name: recurring_expenses description: | Endpoint definitions for interacting with recurring_expenses. - name: bank_transactions description: | Endpoint definitions for interacting with bank transactions. - name: reports description: | Endpoint definitions for interacting with reports. externalDocs: description: "https://invoiceninja.github.io" url: "https://invoiceninja.github.io" security: - ApiKeyAuth: []