openapi: 3.0.0 info: version: 1.0.19-oas3 title: AlayaCare Accounting Accounts API description: '**AlayaCare IDs:** The following terms are used to reference IDs that identify resources in AlayaCare: - id - visit_id - premium_id - visit_premium_id - employee_id - cost_centre_id - client_id **External IDs** The following terms are used to reference IDs that identify resources systems external to AlayaCare: - employee_external_id - client_external_id External IDs are required to be unique. No other assumptions are made regarding their format they are treated as strings. ' servers: - url: https://example.alayacare.com/ext/api/v2/accounting security: - basic_auth: [] tags: - name: Accounts paths: /accounts: get: tags: - Accounts summary: Get a list of accounts parameters: - name: id description: Filter by account id in: query required: false schema: type: integer minimum: 1 - name: search description: Filter by account name in: query required: false schema: type: string - name: types description: Filter by account type in: query required: false schema: type: string enum: - bank - expense - receivables - liability - revenue - name: is_disabled description: Filter by account status in: query required: false schema: type: boolean - name: branch_ids description: Filter by branch id in: query required: false schema: type: array items: type: integer minimum: 1 - name: sort_by description: Field to sort by in: query required: false schema: type: string enum: - name - gl_number - type - name: sort_order description: Order to sort by in: query required: false schema: type: string enum: - ASC - DESC responses: '200': description: A list of accounts content: application/json: schema: $ref: '#/components/schemas/AccountList' '401': $ref: '#/components/responses/ErrorResponseAuthentication' post: tags: - Accounts summary: Create an account requestBody: content: application/json: schema: type: object properties: name: type: string description: Account name example: Account Name gl_number: type: string description: Account GL number example: '123456' type: type: string enum: - bank - expense - receivables - liability - revenue description: Account type example: bank description: Object with fields to be updated responses: '200': description: Created account content: application/json: schema: $ref: '#/components/schemas/Account' '400': $ref: '#/components/responses/ErrorResponseInvalidAccountParams' '401': $ref: '#/components/responses/ErrorResponseAuthentication' '403': $ref: '#/components/responses/ErrorResponseAccessDenied' /accounts/{id}: get: tags: - Accounts summary: Get an account parameters: - name: id description: Account ID in: path required: true schema: type: integer minimum: 1 responses: '200': description: An account content: application/json: schema: $ref: '#/components/schemas/Account' '401': $ref: '#/components/responses/ErrorResponseAuthentication' '403': $ref: '#/components/responses/ErrorResponseAccessDenied' put: tags: - Accounts summary: Update an account parameters: - name: id description: Account ID in: path required: true schema: type: integer minimum: 1 requestBody: content: application/json: schema: type: object properties: name: type: string description: Account name example: Account Name gl_number: type: string description: Account GL number example: '123456' description: Object with fields to be updated responses: '200': description: Updated account content: application/json: schema: $ref: '#/components/schemas/Account' '400': $ref: '#/components/responses/ErrorResponseInvalidAccountParams' '401': $ref: '#/components/responses/ErrorResponseAuthentication' '403': $ref: '#/components/responses/ErrorResponseAccessDenied' components: schemas: BranchSummary: description: Branch summary type: object properties: id: type: integer description: ID of the branch example: 1 minimum: 1 name: type: string description: Name of the branch example: Headquarters PaginatedList: description: Base model of all paginated lists type: object properties: count: type: integer description: Number of items in the response example: 10 page: type: integer description: Current page number example: 1 minimum: 1 total_pages: type: integer description: Total number of pages available example: 1 items: type: array items: type: object required: - count - page - total_pages - items AccountList: allOf: - $ref: '#/components/schemas/PaginatedList' description: Paginated list of accounts properties: items: type: array items: $ref: '#/components/schemas/Account' ErrorResponse: description: Error response type: object properties: code: type: integer example: 400 description: Response code message: type: string example: Invalid request description: Detailed error message required: - code - message Account: description: Account details type: object properties: id: type: integer description: Account ID example: 1 minimum: 1 branch: $ref: '#/components/schemas/BranchSummary' gl_number: type: string description: Account GL number example: 1000 is_default: type: boolean description: Flag indicating if the account is the default account for the branch example: true is_disabled: type: boolean description: Flag indicating if the account is disabled example: false is_read_only: type: boolean description: Flag indicating if the account is read only example: false name: type: string description: Account name example: AlayaCare type: type: string description: Account type example: asset enum: - asset - liability - equity - revenue - expense responses: ErrorResponseAccessDenied: description: Access denied content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: response: value: code: '403' message: You do not have the required permissions to perform this action ErrorResponseInvalidAccountParams: description: Invalid account parameters content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' ErrorResponseAuthentication: description: Authorization required content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: response: value: code: '401' message: Authorization required. securitySchemes: basic_auth: type: http description: Basic HTTP auth over https scheme: basic