1
0
mirror of https://github.com/invoiceninja/invoiceninja.git synced 2024-11-11 05:32:39 +01:00
invoiceninja/openapi/paths/clients.yaml

553 lines
18 KiB
YAML
Raw Normal View History

2023-02-12 08:58:00 +01:00
/api/v1/clients:
get:
tags:
- clients
summary: 'List clients'
description: |
Lists clients. Fine grained filtering is also available using query parameters.
operationId: getClients
parameters:
2023-02-18 04:21:42 +01:00
- $ref: '#/components/parameters/X-API-TOKEN'
- $ref: '#/components/parameters/X-Requested-With'
- $ref: '#/components/parameters/client_include'
- $ref: '#/components/parameters/index'
- name: name
2023-02-12 08:58:00 +01:00
in: query
description: Filter by client name
required: false
schema:
type: string
example: bob
2023-02-18 04:21:42 +01:00
- name: balance
2023-02-12 08:58:00 +01:00
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
2023-02-18 04:21:42 +01:00
- name: between_balance
2023-02-12 08:58:00 +01:00
in: query
description: Filter between client balances, format uses two values separated by a colon
required: false
schema:
type: string
example: 10:100
2023-02-18 04:21:42 +01:00
- name: email
2023-02-12 08:58:00 +01:00
in: query
description: Filter by client email
required: false
schema:
type: string
example: bob@gmail.com
2023-02-18 04:21:42 +01:00
- name: id_number
2023-02-12 08:58:00 +01:00
in: query
description: Filter by client id_number
required: false
schema:
type: string
example: a1039883
2023-02-18 04:21:42 +01:00
- name: number
2023-02-12 08:58:00 +01:00
in: query
description: Filter by client number
required: false
schema:
type: string
example: a1039883
2023-02-18 04:21:42 +01:00
- name: filter
2023-02-12 08:58:00 +01:00
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
2023-02-18 04:21:42 +01:00
- name: sort
2023-02-12 08:58:00 +01:00
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:
$ref: '#/components/schemas/Client'
401:
2023-02-18 05:08:56 +01:00
$ref: '#/components/responses/401'
2023-02-12 08:58:00 +01:00
403:
2023-02-18 04:21:42 +01:00
$ref: '#/components/responses/403'
2023-02-12 08:58:00 +01:00
422:
2023-02-18 04:21:42 +01:00
$ref: '#/components/responses/422'
2023-02-12 08:58:00 +01:00
default:
2023-02-18 04:21:42 +01:00
$ref: '#/components/responses/default'
2023-02-12 08:58:00 +01:00
post:
tags:
- clients
summary: 'Create client'
2023-02-18 04:21:42 +01:00
description: 'Adds a client to a company'
2023-02-12 08:58:00 +01:00
operationId: storeClient
parameters:
2023-02-18 04:21:42 +01:00
- $ref: '#/components/parameters/X-API-TOKEN'
- $ref: '#/components/parameters/X-Requested-With'
- $ref: '#/components/parameters/client_include'
2023-02-12 08:58:00 +01:00
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:
2023-02-18 05:08:56 +01:00
$ref: '#/components/responses/401'
2023-02-12 08:58:00 +01:00
403:
2023-02-18 04:21:42 +01:00
$ref: '#/components/responses/403'
2023-02-12 08:58:00 +01:00
422:
2023-02-18 04:21:42 +01:00
$ref: '#/components/responses/422'
2023-02-12 08:58:00 +01:00
default:
2023-02-18 04:21:42 +01:00
$ref: '#/components/responses/default'
2023-02-12 08:58:00 +01:00
'/api/v1/clients/{id}':
get:
tags:
- clients
summary: 'Show client'
description: 'Displays a client by id'
operationId: showClient
parameters:
2023-02-18 04:21:42 +01:00
- $ref: '#/components/parameters/X-API-TOKEN'
- $ref: '#/components/parameters/X-Requested-With'
- $ref: '#/components/parameters/client_include'
- name: id
2023-02-12 08:58:00 +01:00
in: path
description: 'The Client Hashed ID'
required: true
schema:
type: string
format: string
example: D2J234DFA
responses:
200:
2023-02-18 04:21:42 +01:00
description: 'Returns the client object'
2023-02-12 08:58:00 +01:00
headers:
X-MINIMUM-CLIENT-VERSION:
$ref: '#/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:
2023-02-18 05:08:56 +01:00
$ref: '#/components/responses/401'
2023-02-12 08:58:00 +01:00
403:
2023-02-18 04:21:42 +01:00
$ref: '#/components/responses/403'
2023-02-12 08:58:00 +01:00
422:
2023-02-18 04:21:42 +01:00
$ref: '#/components/responses/422'
2023-02-12 08:58:00 +01:00
default:
2023-02-18 04:21:42 +01:00
$ref: '#/components/responses/default'
2023-02-12 08:58:00 +01:00
put:
tags:
- clients
summary: 'Update client'
description: 'Handles the updating of a client by id'
operationId: updateClient
parameters:
2023-02-18 04:21:42 +01:00
- $ref: '#/components/parameters/X-API-TOKEN'
- $ref: '#/components/parameters/X-Requested-With'
- $ref: '#/components/parameters/client_include'
- name: id
2023-02-12 08:58:00 +01:00
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:
2023-02-18 05:08:56 +01:00
$ref: '#/components/responses/401'
2023-02-12 08:58:00 +01:00
403:
2023-02-18 04:21:42 +01:00
$ref: '#/components/responses/403'
2023-02-12 08:58:00 +01:00
422:
2023-02-18 04:21:42 +01:00
$ref: '#/components/responses/422'
2023-02-12 08:58:00 +01:00
default:
2023-02-18 04:21:42 +01:00
$ref: '#/components/responses/default'
2023-02-12 08:58:00 +01:00
delete:
tags:
- clients
summary: 'Delete client'
description: 'Handles the deletion of a client by id'
operationId: deleteClient
parameters:
2023-02-18 04:21:42 +01:00
- $ref: '#/components/parameters/X-API-TOKEN'
- $ref: '#/components/parameters/X-Requested-With'
- $ref: '#/components/parameters/client_include'
- name: id
2023-02-12 08:58:00 +01:00
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:
2023-02-18 05:08:56 +01:00
$ref: '#/components/responses/401'
2023-02-12 08:58:00 +01:00
403:
2023-02-18 04:21:42 +01:00
$ref: '#/components/responses/403'
2023-02-12 08:58:00 +01:00
422:
2023-02-18 04:21:42 +01:00
$ref: '#/components/responses/422'
2023-02-12 08:58:00 +01:00
default:
2023-02-18 04:21:42 +01:00
$ref: '#/components/responses/default'
2023-02-12 08:58:00 +01:00
'/api/v1/clients/{id}/edit':
get:
tags:
- clients
summary: 'Edit Client'
description: 'Displays a client by id'
operationId: editClient
parameters:
2023-02-18 04:21:42 +01:00
- $ref: '#/components/parameters/X-API-TOKEN'
- $ref: '#/components/parameters/X-Requested-With'
- $ref: '#/components/parameters/include'
- name: id
2023-02-12 08:58:00 +01:00
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:
2023-02-18 05:08:56 +01:00
$ref: '#/components/responses/401'
2023-02-12 08:58:00 +01:00
403:
2023-02-18 04:21:42 +01:00
$ref: '#/components/responses/403'
2023-02-12 08:58:00 +01:00
422:
2023-02-18 04:21:42 +01:00
$ref: '#/components/responses/422'
2023-02-12 08:58:00 +01:00
default:
2023-02-18 04:21:42 +01:00
$ref: '#/components/responses/default'
2023-02-12 08:58:00 +01:00
/api/v1/clients/create:
get:
tags:
- clients
summary: 'Blank Client'
description: 'Returns a blank object with default values'
operationId: getClientsCreate
parameters:
2023-02-18 04:21:42 +01:00
- $ref: '#/components/parameters/X-API-TOKEN'
- $ref: '#/components/parameters/X-Requested-With'
- $ref: '#/components/parameters/client_include'
2023-02-12 08:58:00 +01:00
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:
2023-02-18 05:08:56 +01:00
$ref: '#/components/responses/401'
2023-02-12 08:58:00 +01:00
403:
2023-02-18 04:21:42 +01:00
$ref: '#/components/responses/403'
2023-02-12 08:58:00 +01:00
422:
2023-02-18 04:21:42 +01:00
$ref: '#/components/responses/422'
2023-02-12 08:58:00 +01:00
default:
2023-02-18 04:21:42 +01:00
$ref: '#/components/responses/default'
2023-02-12 08:58:00 +01:00
/api/v1/clients/bulk:
post:
tags:
- clients
2023-02-18 04:21:42 +01:00
summary: 'Bulk client actions'
description: 'Archive / Restore / Delete in bulk'
2023-02-12 08:58:00 +01:00
operationId: bulkClients
parameters:
2023-02-18 04:21:42 +01:00
- $ref: '#/components/parameters/X-API-TOKEN'
- $ref: '#/components/parameters/X-Requested-With'
- $ref: '#/components/parameters/index'
2023-02-12 08:58:00 +01:00
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 Client 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/Client'
401:
2023-02-18 05:08:56 +01:00
$ref: '#/components/responses/401'
2023-02-12 08:58:00 +01:00
403:
2023-02-18 04:21:42 +01:00
$ref: '#/components/responses/403'
2023-02-12 08:58:00 +01:00
422:
2023-02-18 04:21:42 +01:00
$ref: '#/components/responses/422'
2023-02-12 08:58:00 +01:00
default:
2023-02-18 04:21:42 +01:00
$ref: '#/components/responses/default'
2023-02-12 08:58:00 +01:00
'/api/v1/clients/{id}/upload':
put:
tags:
- clients
summary: 'Add client document'
2023-02-18 02:22:48 +01:00
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'
2023-02-12 08:58:00 +01:00
operationId: uploadClient
parameters:
2023-02-18 04:21:42 +01:00
- $ref: '#/components/parameters/X-API-TOKEN'
- $ref: '#/components/parameters/X-Requested-With'
- $ref: '#/components/parameters/client_include'
- name: id
2023-02-12 08:58:00 +01:00
in: path
description: 'The Client Hashed ID'
required: true
schema:
type: string
format: string
example: D2J234DFA
2023-02-18 02:22:48 +01:00
produces:
- application/json
requestBody:
required: true
content:
multipart/form-data:
schema:
type: object
properties:
_method:
type: string
example: POST
documents:
type: array
format: binary
2023-02-12 08:58:00 +01:00
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:
2023-02-18 05:08:56 +01:00
$ref: '#/components/responses/401'
2023-02-12 08:58:00 +01:00
403:
2023-02-18 04:21:42 +01:00
$ref: '#/components/responses/403'
2023-02-12 08:58:00 +01:00
422:
2023-02-18 04:21:42 +01:00
$ref: '#/components/responses/422'
2023-02-12 08:58:00 +01:00
default:
2023-02-18 04:21:42 +01:00
$ref: '#/components/responses/default'
2023-02-12 08:58:00 +01:00
'/api/v1/clients/{id}/purge':
post:
tags:
- clients
summary: 'Purge client'
description: 'Handles purging a client'
operationId: purgeClient
parameters:
2023-02-18 04:21:42 +01:00
- $ref: '#/components/parameters/X-API-TOKEN'
- $ref: '#/components/parameters/X-Requested-With'
- $ref: '#/components/parameters/client_include'
- name: id
2023-02-12 08:58:00 +01:00
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:
2023-02-18 05:08:56 +01:00
$ref: '#/components/responses/401'
2023-02-12 08:58:00 +01:00
403:
2023-02-18 04:21:42 +01:00
$ref: '#/components/responses/403'
2023-02-12 08:58:00 +01:00
422:
2023-02-18 04:21:42 +01:00
$ref: '#/components/responses/422'
2023-02-12 08:58:00 +01:00
default:
2023-02-18 04:21:42 +01:00
$ref: '#/components/responses/default'
2023-02-12 08:58:00 +01:00
'/api/v1/clients/{id}/{mergeable_client_hashed_id}/merge':
post:
tags:
- clients
summary: 'Merge client'
description: 'Handles merging 2 clients'
operationId: mergeClient
parameters:
2023-02-18 04:21:42 +01:00
- $ref: '#/components/parameters/X-API-TOKEN'
- $ref: '#/components/parameters/X-Requested-With'
- $ref: '#/components/parameters/client_include'
- name: id
2023-02-12 08:58:00 +01:00
in: path
description: 'The Client Hashed ID'
required: true
schema:
type: string
format: string
example: D2J234DFA
2023-02-18 04:21:42 +01:00
- name: mergeable_client_hashed_id
2023-02-12 08:58:00 +01:00
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:
2023-02-18 05:08:56 +01:00
$ref: '#/components/responses/401'
2023-02-12 08:58:00 +01:00
403:
2023-02-18 04:21:42 +01:00
$ref: '#/components/responses/403'
2023-02-12 08:58:00 +01:00
422:
2023-02-18 04:21:42 +01:00
$ref: '#/components/responses/422'
2023-02-12 08:58:00 +01:00
default:
2023-02-18 04:21:42 +01:00
$ref: '#/components/responses/default'
2023-02-12 08:58:00 +01:00
/api/v1/client_statement:
post:
tags:
- clients
summary: 'Client statement PDF'
description: 'Return a PDF of the client statement'
operationId: clientStatement
parameters:
2023-02-18 04:21:42 +01:00
- $ref: '#/components/parameters/X-API-TOKEN'
- $ref: '#/components/parameters/X-Requested-With'
- $ref: '#/components/parameters/include'
2023-02-12 08:58:00 +01:00
requestBody:
description: 'Statment 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_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:
2023-02-18 04:21:42 +01:00
$ref: '#/components/responses/401'
2023-02-12 08:58:00 +01:00
403:
2023-02-18 04:21:42 +01:00
$ref: '#/components/responses/403'
2023-02-12 08:58:00 +01:00
422:
2023-02-18 04:21:42 +01:00
$ref: '#/components/responses/422'
2023-02-12 08:58:00 +01:00
default:
2023-02-18 04:21:42 +01:00
$ref: '#/components/responses/default'