mirror of
https://github.com/invoiceninja/invoiceninja.git
synced 2024-11-14 15:13:29 +01:00
657 lines
22 KiB
YAML
657 lines
22 KiB
YAML
/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' |