uuid of an existing record in the permissions table.'
example:
- fc086f2f-fe69-33c5-8ad5-08df0c19a2fa
items:
type: string
required:
- name
- display_name
'/api/acl/roles/{id}':
put:
summary: Update
operationId: update
description: 'Update a role.'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
message: string
properties:
message:
type: string
example: string
tags:
- ACL
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
name:
type: string
description: Name.
example: 'Example Name'
display_name:
type: string
description: 'Display name.'
example: 'Example Name'
permissions:
type: array
description: 'Permissions *. The uuid of an existing record in the permissions table.'
example:
- 97eb1d7f-1c11-329e-95af-e005cceefde8
items:
type: string
get:
summary: Show
operationId: show
description: 'Show a role.'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
id: 0233ca0a-c817-31e2-aa4e-8384108c2919
name: perferendis
display_name: 'Eius qui enim quibusdam odio esse et et optio.'
permissions_count: null
properties:
data:
type: object
properties:
id:
type: string
example: 0233ca0a-c817-31e2-aa4e-8384108c2919
name:
type: string
example: perferendis
display_name:
type: string
example: 'Eius qui enim quibusdam odio esse et et optio.'
permissions_count:
type: string
example: null
tags:
- ACL
parameters:
-
in: path
name: id
description: 'The ID of the role.'
example: 1
required: true
schema:
type: integer
'/api/acl/roles/{role}/permissions':
get:
summary: 'Role Permissions'
operationId: rolePermissions
description: 'List permissions associated with a role.'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
-
id: null
name: eius
display_name: 'Itaque alias amet ut eveniet eius.'
-
id: null
name: laborum
display_name: 'Sint quibusdam alias labore ipsa.'
properties:
data:
type: array
example:
-
id: null
name: eius
display_name: 'Itaque alias amet ut eveniet eius.'
-
id: null
name: laborum
display_name: 'Sint quibusdam alias labore ipsa.'
items:
type: object
properties:
id:
type: string
example: null
name:
type: string
example: eius
display_name:
type: string
example: 'Itaque alias amet ut eveniet eius.'
tags:
- ACL
parameters:
-
in: path
name: role
description: 'The role.'
example: 1
required: true
schema:
type: integer
'/api/acl/roles/{role}':
delete:
summary: Delete
operationId: delete
description: 'Delete a role.'
parameters: []
responses:
204:
description: ''
content:
application/json:
schema:
type: object
nullable: true
tags:
- ACL
parameters:
-
in: path
name: role
description: 'The role.'
example: 1
required: true
schema:
type: integer
/api/acl/permissions:
get:
summary: List
operationId: list
description: 'List permissions.'
parameters:
-
in: query
name: q
description: 'Search query.'
example: 'Permission name'
required: false
schema:
type: string
description: 'Search query.'
example: 'Permission name'
nullable: true
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
-
id: null
name: esse
display_name: 'Commodi est voluptas non.'
-
id: null
name: et
display_name: 'Ut neque non qui.'
links:
first: '/?page=1'
last: '/?page=1'
prev: null
next: null
meta:
current_page: 1
from: 1
last_page: 1
links:
-
url: null
label: '« Anterior'
page: null
active: false
-
url: '/?page=1'
label: '1'
page: 1
active: true
-
url: null
label: 'Próximo »'
page: null
active: false
path: /
per_page: 10
to: 2
total: 2
properties:
data:
type: array
example:
-
id: null
name: esse
display_name: 'Commodi est voluptas non.'
-
id: null
name: et
display_name: 'Ut neque non qui.'
items:
type: object
properties:
id:
type: string
example: null
name:
type: string
example: esse
display_name:
type: string
example: 'Commodi est voluptas non.'
links:
type: object
properties:
first:
type: string
example: '/?page=1'
last:
type: string
example: '/?page=1'
prev:
type: string
example: null
next:
type: string
example: null
meta:
type: object
properties:
current_page:
type: integer
example: 1
from:
type: integer
example: 1
last_page:
type: integer
example: 1
links:
type: array
example:
-
url: null
label: '« Anterior'
page: null
active: false
-
url: '/?page=1'
label: '1'
page: 1
active: true
-
url: null
label: 'Próximo »'
page: null
active: false
items:
type: object
properties:
url:
type: string
example: null
label:
type: string
example: '« Anterior'
page:
type: string
example: null
active:
type: boolean
example: false
path:
type: string
example: /
per_page:
type: integer
example: 10
to:
type: integer
example: 2
total:
type: integer
example: 2
tags:
- ACL
post:
summary: Create
operationId: create
description: 'Create a new permission.'
parameters: []
responses:
201:
description: ''
content:
application/json:
schema:
type: object
example:
message: string
properties:
message:
type: string
example: string
tags:
- ACL
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
name:
type: string
description: Name.
example: 'Example Name'
display_name:
type: string
description: 'Display name.'
example: 'Example Name'
required:
- name
- display_name
'/api/acl/permissions/{id}':
put:
summary: Update
operationId: update
description: 'Update a permission.'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
message: string
properties:
message:
type: string
example: string
tags:
- ACL
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
name:
type: string
description: Name.
example: 'Example Name'
display_name:
type: string
description: 'Display name.'
example: 'Example Name'
get:
summary: Show
operationId: show
description: 'Show a permission.'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
id: null
name: laudantium
display_name: 'Consequatur similique iusto sit quasi suscipit distinctio.'
properties:
data:
type: object
properties:
id:
type: string
example: null
name:
type: string
example: laudantium
display_name:
type: string
example: 'Consequatur similique iusto sit quasi suscipit distinctio.'
tags:
- ACL
parameters:
-
in: path
name: id
description: 'The ID of the permission.'
example: 1
required: true
schema:
type: integer
'/api/acl/permissions/{permission}':
delete:
summary: Delete
operationId: delete
description: 'Delete a permission.'
parameters: []
responses:
204:
description: ''
content:
application/json:
schema:
type: object
nullable: true
tags:
- ACL
parameters:
-
in: path
name: permission
description: 'The permission.'
example: 1
required: true
schema:
type: integer
/api/accounts-payable-receivable/reminders:
get:
summary: 'List reminders for accounts payable receivable'
operationId: listRemindersForAccountsPayableReceivable
description: 'List reminders for accounts payable receivable that are about to expire soon'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
-
id: efac3eee-0216-3fe7-9635-283495a1ba9a
type: entrada
payment_method: boleto
amount: 7558.02
due_date: '2026-04-07T03:00:00.000000Z'
status: null
payment_date: null
protest_date: null
paid_amount: null
interest_amount: null
penalty_amount: null
notary_fee_amount: null
description: 'Aut magni quis adipisci et et vel nihil voluptas quia.'
is_recurring: null
recurrence_config: null
parent_id: null
recurrence_order: 1
total_recurrences: null
children_count: 0
remaining_recurrences: null
has_children: false
field1: molestias
field2: 16
field3: true
notes: 'Non sequi voluptatem repellat magni.'
created_at: null
updated_at: null
-
id: ec149540-9bf5-3d4a-9349-3c8a569a79ba
type: entrada
payment_method: cheque
amount: 4823.68
due_date: '2026-04-17T03:00:00.000000Z'
status: null
payment_date: null
protest_date: null
paid_amount: null
interest_amount: null
penalty_amount: null
notary_fee_amount: null
description: 'Vel commodi sed minima esse rerum eos et maxime nemo.'
is_recurring: null
recurrence_config: null
parent_id: null
recurrence_order: 1
total_recurrences: null
children_count: 0
remaining_recurrences: null
has_children: false
field1: pariatur
field2: 94
field3: true
notes: 'Laudantium ab quidem aut commodi rerum culpa ex.'
created_at: null
updated_at: null
properties:
data:
type: array
example:
-
id: efac3eee-0216-3fe7-9635-283495a1ba9a
type: entrada
payment_method: boleto
amount: 7558.02
due_date: '2026-04-07T03:00:00.000000Z'
status: null
payment_date: null
protest_date: null
paid_amount: null
interest_amount: null
penalty_amount: null
notary_fee_amount: null
description: 'Aut magni quis adipisci et et vel nihil voluptas quia.'
is_recurring: null
recurrence_config: null
parent_id: null
recurrence_order: 1
total_recurrences: null
children_count: 0
remaining_recurrences: null
has_children: false
field1: molestias
field2: 16
field3: true
notes: 'Non sequi voluptatem repellat magni.'
created_at: null
updated_at: null
-
id: ec149540-9bf5-3d4a-9349-3c8a569a79ba
type: entrada
payment_method: cheque
amount: 4823.68
due_date: '2026-04-17T03:00:00.000000Z'
status: null
payment_date: null
protest_date: null
paid_amount: null
interest_amount: null
penalty_amount: null
notary_fee_amount: null
description: 'Vel commodi sed minima esse rerum eos et maxime nemo.'
is_recurring: null
recurrence_config: null
parent_id: null
recurrence_order: 1
total_recurrences: null
children_count: 0
remaining_recurrences: null
has_children: false
field1: pariatur
field2: 94
field3: true
notes: 'Laudantium ab quidem aut commodi rerum culpa ex.'
created_at: null
updated_at: null
items:
type: object
properties:
id:
type: string
example: efac3eee-0216-3fe7-9635-283495a1ba9a
type:
type: string
example: entrada
payment_method:
type: string
example: boleto
amount:
type: number
example: 7558.02
due_date:
type: string
example: '2026-04-07T03:00:00.000000Z'
status:
type: string
example: null
payment_date:
type: string
example: null
protest_date:
type: string
example: null
paid_amount:
type: string
example: null
interest_amount:
type: string
example: null
penalty_amount:
type: string
example: null
notary_fee_amount:
type: string
example: null
description:
type: string
example: 'Aut magni quis adipisci et et vel nihil voluptas quia.'
is_recurring:
type: string
example: null
recurrence_config:
type: string
example: null
parent_id:
type: string
example: null
recurrence_order:
type: integer
example: 1
total_recurrences:
type: string
example: null
children_count:
type: integer
example: 0
remaining_recurrences:
type: string
example: null
has_children:
type: boolean
example: false
field1:
type: string
example: molestias
field2:
type: integer
example: 16
field3:
type: boolean
example: true
notes:
type: string
example: 'Non sequi voluptatem repellat magni.'
created_at:
type: string
example: null
updated_at:
type: string
example: null
tags:
- 'Accounts Payable Receivable'
/api/accounts-payable-receivable/reminders/mark-as-read:
post:
summary: 'Mark reminders as read'
operationId: markRemindersAsRead
description: 'Mark reminders for accounts payable receivable as read'
parameters:
-
in: query
name: items
description: 'The uuid of an existing record in the account_payable_receivables table.'
example:
- eveniet
required: true
schema:
type: array
description: 'The uuid of an existing record in the account_payable_receivables table.'
example:
- eveniet
items:
type: string
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
message: string
properties:
message:
type: string
example: string
tags:
- 'Accounts Payable Receivable'
/api/accounts-payable-receivable/protests/summary:
get:
summary: 'Get protest summary'
operationId: getProtestSummary
description: 'Get summary of accounts with protest status'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
to_protest_count: integer
protested_count: integer
protesting_today_count: integer
total_protest_amount: float
properties:
to_protest_count:
type: string
example: integer
protested_count:
type: string
example: integer
protesting_today_count:
type: string
example: integer
total_protest_amount:
type: string
example: float
tags:
- 'Accounts Payable Receivable'
/api/accounts-payable-receivable/protests:
get:
summary: 'List protested accounts'
operationId: listProtestedAccounts
description: 'List accounts with protest date that are not paid/canceled'
parameters:
-
in: query
name: sort_by
description: 'Field to sort by.'
example: created_at
required: false
schema:
type: string
description: 'Field to sort by.'
example: created_at
nullable: true
-
in: query
name: sort_desc
description: 'Sort order (true for descending, false for ascending).'
example: true
required: false
schema:
type: boolean
description: 'Sort order (true for descending, false for ascending).'
example: true
nullable: true
-
in: query
name: page
description: 'Page number. O campo value deve ser pelo menos 1.'
example: 1
required: false
schema:
type: integer
description: 'Page number. O campo value deve ser pelo menos 1.'
example: 1
nullable: true
-
in: query
name: per_page
description: 'Items per page. O campo value deve ser pelo menos 1. O campo value não pode ser superior a 100.'
example: 10
required: false
schema:
type: integer
description: 'Items per page. O campo value deve ser pelo menos 1. O campo value não pode ser superior a 100.'
example: 10
nullable: true
-
in: query
name: q
description: 'Search query.'
example: Salary
required: false
schema:
type: string
description: 'Search query.'
example: Salary
nullable: true
-
in: query
name: type
description: Type.
example: entrada
required: false
schema:
type: string
description: Type.
example: entrada
enum:
- entrada
- saída
nullable: true
-
in: query
name: customers
description: 'The uuid of an existing record in the customers table.'
example:
- provident
required: false
schema:
type: array
description: 'The uuid of an existing record in the customers table.'
example:
- provident
items:
type: string
-
in: query
name: suppliers
description: 'The uuid of an existing record in the suppliers table.'
example:
- et
required: false
schema:
type: array
description: 'The uuid of an existing record in the suppliers table.'
example:
- et
items:
type: string
-
in: query
name: statuses
description: ''
example:
- pago
required: false
schema:
type: array
description: ''
example:
- pago
items:
type: string
enum:
- 'a vencer'
- pago
- vencido
- recebido
- cancelado
- 'a protestar'
- protestado
nullable: true
-
in: query
name: payment_method
description: 'Payment method.'
example: cheque
required: false
schema:
type: string
description: 'Payment method.'
example: cheque
enum:
- cheque
- boleto
- outro
nullable: true
-
in: query
name: date_start
description: 'Start date. O campo value deve ser uma data válida.'
example: '2023-01-01'
required: false
schema:
type: string
description: 'Start date. O campo value deve ser uma data válida.'
example: '2023-01-01'
nullable: true
-
in: query
name: date_end
description: 'End date. O campo value deve ser uma data válida.'
example: '2023-12-31'
required: false
schema:
type: string
description: 'End date. O campo value deve ser uma data válida.'
example: '2023-12-31'
nullable: true
-
in: query
name: protest_date_start
description: 'O campo value deve ser uma data válida.'
example: '2026-03-20T13:32:06'
required: false
schema:
type: string
description: 'O campo value deve ser uma data válida.'
example: '2026-03-20T13:32:06'
nullable: true
-
in: query
name: protest_date_end
description: 'O campo value deve ser uma data válida.'
example: '2026-03-20T13:32:06'
required: false
schema:
type: string
description: 'O campo value deve ser uma data válida.'
example: '2026-03-20T13:32:06'
nullable: true
-
in: query
name: has_protest
description: ''
example: true
required: false
schema:
type: boolean
description: ''
example: true
nullable: true
-
in: query
name: has_children
description: 'Filter accounts that have recurring children.'
example: false
required: false
schema:
type: boolean
description: 'Filter accounts that have recurring children.'
example: false
nullable: true
-
in: query
name: is_recurring
description: 'Filter by recurring status (true: only recurring, false: only non-recurring, null: all).'
example: false
required: false
schema:
type: boolean
description: 'Filter by recurring status (true: only recurring, false: only non-recurring, null: all).'
example: false
nullable: true
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
-
id: 26f2822f-58a4-3a17-8ba1-b23b8e470f5c
type: saída
payment_method: boleto
amount: 3044.24
due_date: '2026-04-04T03:00:00.000000Z'
status: null
payment_date: null
protest_date: null
paid_amount: null
interest_amount: null
penalty_amount: null
notary_fee_amount: null
description: 'Qui earum rem unde aut illo ipsa quos repudiandae et corrupti qui officiis.'
is_recurring: null
recurrence_config: null
parent_id: null
recurrence_order: 1
total_recurrences: null
children_count: 0
remaining_recurrences: null
has_children: false
field1: dolore
field2: 34
field3: false
notes: 'Et maxime sit dolores consequatur.'
created_at: null
updated_at: null
-
id: 2e33835f-009b-3a0c-a8d3-6fea64a83813
type: entrada
payment_method: cheque
amount: 2011.13
due_date: '2026-04-08T03:00:00.000000Z'
status: null
payment_date: null
protest_date: null
paid_amount: null
interest_amount: null
penalty_amount: null
notary_fee_amount: null
description: 'Quia dolore fuga necessitatibus voluptatem eos quo perferendis beatae dolor.'
is_recurring: null
recurrence_config: null
parent_id: null
recurrence_order: 1
total_recurrences: null
children_count: 0
remaining_recurrences: null
has_children: false
field1: et
field2: 62
field3: false
notes: 'Et praesentium a voluptatem nesciunt.'
created_at: null
updated_at: null
links:
first: '/?page=1'
last: '/?page=1'
prev: null
next: null
meta:
current_page: 1
from: 1
last_page: 1
links:
-
url: null
label: '« Anterior'
page: null
active: false
-
url: '/?page=1'
label: '1'
page: 1
active: true
-
url: null
label: 'Próximo »'
page: null
active: false
path: /
per_page: 10
to: 2
total: 2
properties:
data:
type: array
example:
-
id: 26f2822f-58a4-3a17-8ba1-b23b8e470f5c
type: saída
payment_method: boleto
amount: 3044.24
due_date: '2026-04-04T03:00:00.000000Z'
status: null
payment_date: null
protest_date: null
paid_amount: null
interest_amount: null
penalty_amount: null
notary_fee_amount: null
description: 'Qui earum rem unde aut illo ipsa quos repudiandae et corrupti qui officiis.'
is_recurring: null
recurrence_config: null
parent_id: null
recurrence_order: 1
total_recurrences: null
children_count: 0
remaining_recurrences: null
has_children: false
field1: dolore
field2: 34
field3: false
notes: 'Et maxime sit dolores consequatur.'
created_at: null
updated_at: null
-
id: 2e33835f-009b-3a0c-a8d3-6fea64a83813
type: entrada
payment_method: cheque
amount: 2011.13
due_date: '2026-04-08T03:00:00.000000Z'
status: null
payment_date: null
protest_date: null
paid_amount: null
interest_amount: null
penalty_amount: null
notary_fee_amount: null
description: 'Quia dolore fuga necessitatibus voluptatem eos quo perferendis beatae dolor.'
is_recurring: null
recurrence_config: null
parent_id: null
recurrence_order: 1
total_recurrences: null
children_count: 0
remaining_recurrences: null
has_children: false
field1: et
field2: 62
field3: false
notes: 'Et praesentium a voluptatem nesciunt.'
created_at: null
updated_at: null
items:
type: object
properties:
id:
type: string
example: 26f2822f-58a4-3a17-8ba1-b23b8e470f5c
type:
type: string
example: saída
payment_method:
type: string
example: boleto
amount:
type: number
example: 3044.24
due_date:
type: string
example: '2026-04-04T03:00:00.000000Z'
status:
type: string
example: null
payment_date:
type: string
example: null
protest_date:
type: string
example: null
paid_amount:
type: string
example: null
interest_amount:
type: string
example: null
penalty_amount:
type: string
example: null
notary_fee_amount:
type: string
example: null
description:
type: string
example: 'Qui earum rem unde aut illo ipsa quos repudiandae et corrupti qui officiis.'
is_recurring:
type: string
example: null
recurrence_config:
type: string
example: null
parent_id:
type: string
example: null
recurrence_order:
type: integer
example: 1
total_recurrences:
type: string
example: null
children_count:
type: integer
example: 0
remaining_recurrences:
type: string
example: null
has_children:
type: boolean
example: false
field1:
type: string
example: dolore
field2:
type: integer
example: 34
field3:
type: boolean
example: false
notes:
type: string
example: 'Et maxime sit dolores consequatur.'
created_at:
type: string
example: null
updated_at:
type: string
example: null
links:
type: object
properties:
first:
type: string
example: '/?page=1'
last:
type: string
example: '/?page=1'
prev:
type: string
example: null
next:
type: string
example: null
meta:
type: object
properties:
current_page:
type: integer
example: 1
from:
type: integer
example: 1
last_page:
type: integer
example: 1
links:
type: array
example:
-
url: null
label: '« Anterior'
page: null
active: false
-
url: '/?page=1'
label: '1'
page: 1
active: true
-
url: null
label: 'Próximo »'
page: null
active: false
items:
type: object
properties:
url:
type: string
example: null
label:
type: string
example: '« Anterior'
page:
type: string
example: null
active:
type: boolean
example: false
path:
type: string
example: /
per_page:
type: integer
example: 10
to:
type: integer
example: 2
total:
type: integer
example: 2
tags:
- 'Accounts Payable Receivable'
/api/accounts-payable-receivable:
get:
summary: 'List accounts payable receivable'
operationId: listAccountsPayableReceivable
description: 'List all accounts payable receivable'
parameters:
-
in: query
name: sort_by
description: 'Field to sort by.'
example: created_at
required: false
schema:
type: string
description: 'Field to sort by.'
example: created_at
nullable: true
-
in: query
name: sort_desc
description: 'Sort order (true for descending, false for ascending).'
example: true
required: false
schema:
type: boolean
description: 'Sort order (true for descending, false for ascending).'
example: true
nullable: true
-
in: query
name: page
description: 'Page number. O campo value deve ser pelo menos 1.'
example: 1
required: false
schema:
type: integer
description: 'Page number. O campo value deve ser pelo menos 1.'
example: 1
nullable: true
-
in: query
name: per_page
description: 'Items per page. O campo value deve ser pelo menos 1. O campo value não pode ser superior a 100.'
example: 10
required: false
schema:
type: integer
description: 'Items per page. O campo value deve ser pelo menos 1. O campo value não pode ser superior a 100.'
example: 10
nullable: true
-
in: query
name: q
description: 'Search query.'
example: Salary
required: false
schema:
type: string
description: 'Search query.'
example: Salary
nullable: true
-
in: query
name: type
description: Type.
example: entrada
required: false
schema:
type: string
description: Type.
example: entrada
enum:
- entrada
- saída
nullable: true
-
in: query
name: customers
description: 'The uuid of an existing record in the customers table.'
example:
- a
required: false
schema:
type: array
description: 'The uuid of an existing record in the customers table.'
example:
- a
items:
type: string
-
in: query
name: suppliers
description: 'The uuid of an existing record in the suppliers table.'
example:
- ab
required: false
schema:
type: array
description: 'The uuid of an existing record in the suppliers table.'
example:
- ab
items:
type: string
-
in: query
name: statuses
description: ''
example:
- cancelado
required: false
schema:
type: array
description: ''
example:
- cancelado
items:
type: string
enum:
- 'a vencer'
- pago
- vencido
- recebido
- cancelado
- 'a protestar'
- protestado
nullable: true
-
in: query
name: payment_method
description: 'Payment method.'
example: cheque
required: false
schema:
type: string
description: 'Payment method.'
example: cheque
enum:
- cheque
- boleto
- outro
nullable: true
-
in: query
name: date_start
description: 'Start date. O campo value deve ser uma data válida.'
example: '2023-01-01'
required: false
schema:
type: string
description: 'Start date. O campo value deve ser uma data válida.'
example: '2023-01-01'
nullable: true
-
in: query
name: date_end
description: 'End date. O campo value deve ser uma data válida.'
example: '2023-12-31'
required: false
schema:
type: string
description: 'End date. O campo value deve ser uma data válida.'
example: '2023-12-31'
nullable: true
-
in: query
name: protest_date_start
description: 'O campo value deve ser uma data válida.'
example: '2026-03-20T13:32:06'
required: false
schema:
type: string
description: 'O campo value deve ser uma data válida.'
example: '2026-03-20T13:32:06'
nullable: true
-
in: query
name: protest_date_end
description: 'O campo value deve ser uma data válida.'
example: '2026-03-20T13:32:06'
required: false
schema:
type: string
description: 'O campo value deve ser uma data válida.'
example: '2026-03-20T13:32:06'
nullable: true
-
in: query
name: has_protest
description: ''
example: true
required: false
schema:
type: boolean
description: ''
example: true
nullable: true
-
in: query
name: has_children
description: 'Filter accounts that have recurring children.'
example: false
required: false
schema:
type: boolean
description: 'Filter accounts that have recurring children.'
example: false
nullable: true
-
in: query
name: is_recurring
description: 'Filter by recurring status (true: only recurring, false: only non-recurring, null: all).'
example: false
required: false
schema:
type: boolean
description: 'Filter by recurring status (true: only recurring, false: only non-recurring, null: all).'
example: false
nullable: true
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
-
id: 0fd17191-b29f-3603-a73d-861ad4c6e239
type: entrada
payment_method: cheque
amount: 4406.22
due_date: '2026-04-07T03:00:00.000000Z'
status: null
payment_date: null
protest_date: null
paid_amount: null
interest_amount: null
penalty_amount: null
notary_fee_amount: null
description: 'Blanditiis nisi sint quam praesentium corrupti libero.'
is_recurring: null
recurrence_config: null
parent_id: null
recurrence_order: 1
total_recurrences: null
children_count: 0
remaining_recurrences: null
has_children: false
field1: ratione
field2: 41
field3: true
notes: 'Et dolor vel iste eaque velit autem.'
created_at: null
updated_at: null
-
id: 99134930-6177-30b1-839c-26f3427b49b4
type: entrada
payment_method: cheque
amount: 2135.56
due_date: '2026-04-05T03:00:00.000000Z'
status: null
payment_date: null
protest_date: null
paid_amount: null
interest_amount: null
penalty_amount: null
notary_fee_amount: null
description: 'Aperiam non rerum inventore aut eos architecto facere voluptas architecto est consectetur.'
is_recurring: null
recurrence_config: null
parent_id: null
recurrence_order: 1
total_recurrences: null
children_count: 0
remaining_recurrences: null
has_children: false
field1: voluptatibus
field2: 31
field3: false
notes: 'Iusto possimus qui optio qui quo et.'
created_at: null
updated_at: null
links:
first: '/?page=1'
last: '/?page=1'
prev: null
next: null
meta:
current_page: 1
from: 1
last_page: 1
links:
-
url: null
label: '« Anterior'
page: null
active: false
-
url: '/?page=1'
label: '1'
page: 1
active: true
-
url: null
label: 'Próximo »'
page: null
active: false
path: /
per_page: 10
to: 2
total: 2
properties:
data:
type: array
example:
-
id: 0fd17191-b29f-3603-a73d-861ad4c6e239
type: entrada
payment_method: cheque
amount: 4406.22
due_date: '2026-04-07T03:00:00.000000Z'
status: null
payment_date: null
protest_date: null
paid_amount: null
interest_amount: null
penalty_amount: null
notary_fee_amount: null
description: 'Blanditiis nisi sint quam praesentium corrupti libero.'
is_recurring: null
recurrence_config: null
parent_id: null
recurrence_order: 1
total_recurrences: null
children_count: 0
remaining_recurrences: null
has_children: false
field1: ratione
field2: 41
field3: true
notes: 'Et dolor vel iste eaque velit autem.'
created_at: null
updated_at: null
-
id: 99134930-6177-30b1-839c-26f3427b49b4
type: entrada
payment_method: cheque
amount: 2135.56
due_date: '2026-04-05T03:00:00.000000Z'
status: null
payment_date: null
protest_date: null
paid_amount: null
interest_amount: null
penalty_amount: null
notary_fee_amount: null
description: 'Aperiam non rerum inventore aut eos architecto facere voluptas architecto est consectetur.'
is_recurring: null
recurrence_config: null
parent_id: null
recurrence_order: 1
total_recurrences: null
children_count: 0
remaining_recurrences: null
has_children: false
field1: voluptatibus
field2: 31
field3: false
notes: 'Iusto possimus qui optio qui quo et.'
created_at: null
updated_at: null
items:
type: object
properties:
id:
type: string
example: 0fd17191-b29f-3603-a73d-861ad4c6e239
type:
type: string
example: entrada
payment_method:
type: string
example: cheque
amount:
type: number
example: 4406.22
due_date:
type: string
example: '2026-04-07T03:00:00.000000Z'
status:
type: string
example: null
payment_date:
type: string
example: null
protest_date:
type: string
example: null
paid_amount:
type: string
example: null
interest_amount:
type: string
example: null
penalty_amount:
type: string
example: null
notary_fee_amount:
type: string
example: null
description:
type: string
example: 'Blanditiis nisi sint quam praesentium corrupti libero.'
is_recurring:
type: string
example: null
recurrence_config:
type: string
example: null
parent_id:
type: string
example: null
recurrence_order:
type: integer
example: 1
total_recurrences:
type: string
example: null
children_count:
type: integer
example: 0
remaining_recurrences:
type: string
example: null
has_children:
type: boolean
example: false
field1:
type: string
example: ratione
field2:
type: integer
example: 41
field3:
type: boolean
example: true
notes:
type: string
example: 'Et dolor vel iste eaque velit autem.'
created_at:
type: string
example: null
updated_at:
type: string
example: null
links:
type: object
properties:
first:
type: string
example: '/?page=1'
last:
type: string
example: '/?page=1'
prev:
type: string
example: null
next:
type: string
example: null
meta:
type: object
properties:
current_page:
type: integer
example: 1
from:
type: integer
example: 1
last_page:
type: integer
example: 1
links:
type: array
example:
-
url: null
label: '« Anterior'
page: null
active: false
-
url: '/?page=1'
label: '1'
page: 1
active: true
-
url: null
label: 'Próximo »'
page: null
active: false
items:
type: object
properties:
url:
type: string
example: null
label:
type: string
example: '« Anterior'
page:
type: string
example: null
active:
type: boolean
example: false
path:
type: string
example: /
per_page:
type: integer
example: 10
to:
type: integer
example: 2
total:
type: integer
example: 2
tags:
- 'Accounts Payable Receivable'
post:
summary: 'Create accounts payable receivable'
operationId: createAccountsPayableReceivable
description: 'Create a new accounts payable receivable'
parameters: []
responses:
201:
description: ''
content:
application/json:
schema:
type: object
example:
message: string
properties:
message:
type: string
example: string
tags:
- 'Accounts Payable Receivable'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
type:
type: string
description: Tipo.
example: 'Example Type'
enum:
- entrada
- saída
payment_method:
type: string
description: 'Forma de pagamento.'
example: 'Example Payment method'
enum:
- cheque
- boleto
- outro
due_date:
type: string
description: 'Data de vencimento. O campo value deve ser uma data válida.'
example: '2024-01-01'
amount:
type: number
description: Valor.
example: 1.0
description:
type: string
description: Descrição.
example: 'Example Description'
supplier_id:
type: string
description: 'Fornecedor. The uuid of an existing record in the suppliers table.'
example: 79a14056-b1fc-3728-8ace-4d3d68ea52d4
nullable: true
customer_id:
type: string
description: 'Cliente. The uuid of an existing record in the customers table.'
example: 70e8a0d6-fa95-3eee-a541-c753e7901ccc
nullable: true
status:
type: string
description: Status.
example: 'Example Status'
enum:
- 'a vencer'
- pago
- vencido
- recebido
- cancelado
- 'a protestar'
- protestado
protest_date:
type: string
description: 'Protest date. O campo value deve ser uma data válida. O campo value deve ser uma data posterior ou igual a due_date.'
example: '2024-01-01'
nullable: true
bank_account_id:
type: string
description: 'Bank account id. The uuid of an existing record in the bank_accounts table.'
example: 92331447-7791-329b-88ca-fad38d0f754a
nullable: true
custom_fields:
type: object
description: 'Custom fields.'
example:
- example1
- example2
properties: { }
is_recurring:
type: boolean
description: 'Is recurring.'
example: false
recurrence_config:
type: object
description: 'Recurrence config.'
example:
- example1
- example2
properties:
frequency_type:
type: string
description: 'Recurrence config frequency type.'
example: 'Example Recurrence config frequency type'
enum:
- monthly
- weekly
- biweekly
- yearly
frequency_value:
type: integer
description: 'Recurrence config frequency value. O campo value deve ser pelo menos 0. O campo value não pode ser superior a 31.'
example: 1
end_date:
type: string
description: 'Recurrence config end date. O campo value deve ser uma data válida. O campo value deve ser uma data posterior a due_date.'
example: '2024-01-01'
nullable: true
max_occurrences:
type: integer
description: 'Recurrence config max occurrences. O campo value deve ser pelo menos 1.'
example: 1
nullable: true
generation_days_ahead:
type: integer
description: 'Recurrence config generation days ahead. O campo value deve ser pelo menos 1. O campo value não pode ser superior a 30.'
example: 1
required:
- type
- payment_method
- due_date
- amount
- description
'/api/accounts-payable-receivable/{accountPayableReceivable}/history':
get:
summary: 'Get account history'
operationId: getAccountHistory
description: 'Get the activity log history for an account payable receivable'
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- 'Accounts Payable Receivable'
parameters:
-
in: path
name: accountPayableReceivable
description: ''
example: incidunt
required: true
schema:
type: string
'/api/accounts-payable-receivable/{accountPayableReceivable}':
get:
summary: 'Get accounts payable receivable'
operationId: getAccountsPayableReceivable
description: 'Get an accounts payable receivable'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
id: 6ac43858-00a0-308a-8327-e294a4af1fed
type: saída
payment_method: cheque
amount: 7692.36
due_date: '2026-04-01T03:00:00.000000Z'
status: null
payment_date: null
protest_date: null
paid_amount: null
interest_amount: null
penalty_amount: null
notary_fee_amount: null
description: 'Nam fuga aperiam voluptatem iste atque porro.'
is_recurring: null
recurrence_config: null
parent_id: null
recurrence_order: 1
total_recurrences: null
children_count: 0
remaining_recurrences: null
has_children: false
field1: voluptatem
field2: 91
field3: false
notes: 'Inventore nisi quod cum aut dignissimos omnis et.'
created_at: null
updated_at: null
properties:
data:
type: object
properties:
id:
type: string
example: 6ac43858-00a0-308a-8327-e294a4af1fed
type:
type: string
example: saída
payment_method:
type: string
example: cheque
amount:
type: number
example: 7692.36
due_date:
type: string
example: '2026-04-01T03:00:00.000000Z'
status:
type: string
example: null
payment_date:
type: string
example: null
protest_date:
type: string
example: null
paid_amount:
type: string
example: null
interest_amount:
type: string
example: null
penalty_amount:
type: string
example: null
notary_fee_amount:
type: string
example: null
description:
type: string
example: 'Nam fuga aperiam voluptatem iste atque porro.'
is_recurring:
type: string
example: null
recurrence_config:
type: string
example: null
parent_id:
type: string
example: null
recurrence_order:
type: integer
example: 1
total_recurrences:
type: string
example: null
children_count:
type: integer
example: 0
remaining_recurrences:
type: string
example: null
has_children:
type: boolean
example: false
field1:
type: string
example: voluptatem
field2:
type: integer
example: 91
field3:
type: boolean
example: false
notes:
type: string
example: 'Inventore nisi quod cum aut dignissimos omnis et.'
created_at:
type: string
example: null
updated_at:
type: string
example: null
tags:
- 'Accounts Payable Receivable'
put:
summary: 'Update accounts payable receivable'
operationId: updateAccountsPayableReceivable
description: 'Update an accounts payable receivable'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
message: string
properties:
message:
type: string
example: string
tags:
- 'Accounts Payable Receivable'
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
type:
type: string
description: Type.
example: 'Example Type'
enum:
- entrada
- saída
payment_method:
type: string
description: 'Payment method.'
example: 'Example Payment method'
enum:
- cheque
- boleto
- outro
due_date:
type: string
description: 'Due date. O campo value deve ser uma data válida.'
example: '2024-01-01'
amount:
type: number
description: Amount.
example: 1.0
description:
type: string
description: Description.
example: 'Example Description'
supplier_id:
type: string
description: 'Supplier id. The uuid of an existing record in the suppliers table.'
example: afe8e784-675a-3b37-854d-c40940925934
nullable: true
customer_id:
type: string
description: 'Customer id. The uuid of an existing record in the customers table.'
example: f5378b9d-a879-3409-a7d3-60d5f37877ff
nullable: true
status:
type: string
description: Status.
example: 'Example Status'
enum:
- 'a vencer'
- pago
- vencido
- recebido
- cancelado
- 'a protestar'
- protestado
payment_date:
type: string
description: 'Payment date. O campo value deve ser uma data válida.'
example: '2024-01-01'
nullable: true
protest_date:
type: string
description: 'Protest date. O campo value deve ser uma data válida. O campo value deve ser uma data posterior ou igual a due_date.'
example: '2024-01-01'
nullable: true
paid_amount:
type: number
description: 'Paid amount. O campo value deve ser pelo menos 0.'
example: 1.0
nullable: true
interest_amount:
type: number
description: 'Interest amount. O campo value deve ser pelo menos 0.'
example: 1.0
nullable: true
penalty_amount:
type: number
description: 'Penalty amount. O campo value deve ser pelo menos 0.'
example: 1.0
nullable: true
notary_fee_amount:
type: number
description: 'Notary fee amount. O campo value deve ser pelo menos 0.'
example: 1.0
nullable: true
bank_account_id:
type: string
description: 'Bank account id. The uuid of an existing record in the bank_accounts table.'
example: 8e924c83-a3d9-3cba-9a97-ec71692bcfee
nullable: true
custom_fields:
type: object
description: 'Custom fields.'
example:
- example1
- example2
properties: { }
is_recurring:
type: boolean
description: 'Is recurring.'
example: false
recurrence_config:
type: object
description: 'Recurrence config.'
example:
- example1
- example2
properties:
frequency_type:
type: string
description: 'Recurrence config frequency type.'
example: 'Example Recurrence config frequency type'
enum:
- monthly
- weekly
- biweekly
- yearly
frequency_value:
type: integer
description: 'Recurrence config frequency value. O campo value deve ser pelo menos 0. O campo value não pode ser superior a 31.'
example: 1
end_date:
type: string
description: 'Recurrence config end date. O campo value deve ser uma data válida. O campo value deve ser uma data posterior a due_date.'
example: '2024-01-01'
nullable: true
max_occurrences:
type: integer
description: 'Recurrence config max occurrences. O campo value deve ser pelo menos 1.'
example: 1
nullable: true
generation_days_ahead:
type: integer
description: 'Recurrence config generation days ahead. O campo value deve ser pelo menos 1. O campo value não pode ser superior a 30.'
example: 1
delete:
summary: 'Delete accounts payable receivable'
operationId: deleteAccountsPayableReceivable
description: 'Delete an accounts payable receivable'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
message: string
properties:
message:
type: string
example: string
tags:
- 'Accounts Payable Receivable'
parameters:
-
in: path
name: accountPayableReceivable
description: ''
example: quo
required: true
schema:
type: string
/api/auth/login:
post:
summary: Login
operationId: login
description: 'Login with email and password'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
token: string
properties:
token:
type: string
example: string
tags:
- Authentication
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
email:
type: string
description: ''
example: howell.xavier@example.com
password:
type: string
description: 'User password.'
example: password
required:
- email
- password
security: []
/api/auth/user:
get:
summary: Me
operationId: me
description: 'Get the current user'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
id: 817cfd41-d46e-3895-94f4-b3ab67128800
name: 'Lloyd Moore'
username: rrolfson
email: amelia72@example.com
ability:
-
action: read
subject: Auth
-
action: listar
subject: padrão
roles: []
preferences: []
sectors: []
image:
id: null
url: null
properties:
data:
type: object
properties:
id:
type: string
example: 817cfd41-d46e-3895-94f4-b3ab67128800
name:
type: string
example: 'Lloyd Moore'
username:
type: string
example: rrolfson
email:
type: string
example: amelia72@example.com
ability:
type: array
example:
-
action: read
subject: Auth
-
action: listar
subject: padrão
items:
type: object
properties:
action:
type: string
example: read
subject:
type: string
example: Auth
roles:
type: array
example: []
preferences:
type: array
example: []
sectors:
type: array
example: []
image:
type: object
properties:
id:
type: string
example: null
url:
type: string
example: null
tags:
- Authentication
put:
summary: 'Update Profile'
operationId: updateProfile
description: 'Update the current user profile'
parameters: []
responses:
204:
description: ''
content:
application/json:
schema:
type: object
nullable: true
tags:
- Authentication
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
name:
type: string
description: Nome.
example: 'Example Name'
email:
type: string
description: 'E-mail. O campo value deve ser um endereço de e-mail válido.'
example: user@example.com
username:
type: string
description: Usuário.
example: zdeckow
password:
type: string
description: Password.
example: password123
image:
type: object
description: Imagem.
example:
- example1
- example2
properties:
path:
type: string
description: 'Caminho da imagem. This field is required when image is present.'
example: 'Example Image path'
name:
type: string
description: 'Nome da imagem.'
example: 'Example Name'
nullable: true
extension:
type: string
description: 'Extensão da imagem.'
example: 'Example Image extension'
nullable: true
size:
type: string
description: 'Tamanho da imagem.'
example: 'Example Image size'
nullable: true
sectors:
type: array
description: 'UUID do setor. The uuid of an existing record in the sectors table.'
example:
- 18992285-194f-36cb-a236-744016a2b3de
items:
type: string
roles:
type: array
description: 'UUID da função. The uuid of an existing record in the roles table.'
example:
- c0ce4492-0a43-3c1b-aa24-bd66730e2a54
items:
type: string
/api/auth/logout:
post:
summary: Logout
operationId: logout
description: 'Logout the current user'
parameters: []
responses:
204:
description: ''
content:
application/json:
schema:
type: object
nullable: true
tags:
- Authentication
/api/auth/preferences:
get:
summary: 'Get user preferences'
operationId: getUserPreferences
description: 'Get all user preferences'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
theme: dark
language: pt-br
notifications:
email: true
sms: false
properties:
theme:
type: string
example: dark
language:
type: string
example: pt-br
notifications:
type: object
properties:
email:
type: boolean
example: true
sms:
type: boolean
example: false
tags:
- Authentication
post:
summary: 'Set user preference'
operationId: setUserPreference
description: 'Set or update a user preference'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
message: 'Preference saved successfully'
properties:
message:
type: string
example: 'Preference saved successfully'
tags:
- Authentication
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
key:
type: string
description: 'O campo value não pode ser superior a 255 caracteres.'
example: xpzoftql
value:
type: object
description: ''
example: []
properties: { }
required:
- key
- value
'/api/auth/preferences/{key}':
delete:
summary: 'Delete user preference'
operationId: deleteUserPreference
description: 'Delete a specific user preference'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
message: 'Preference deleted successfully'
properties:
message:
type: string
example: 'Preference deleted successfully'
tags:
- Authentication
parameters:
-
in: path
name: key
description: ''
example: debitis
required: true
schema:
type: string
'/api/auth/{user}/token':
post:
summary: 'Generate user token'
operationId: generateUserToken
description: 'Generate a token for a specific user'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
token: string
userData:
id: uuid
name: string
username: string
email: string
ability:
- array
roles:
- array
preferences:
- array
sectors:
- array
image:
id: uuid
url: string
properties:
token:
type: string
example: string
userData:
type: object
properties:
id:
type: string
example: uuid
name:
type: string
example: string
username:
type: string
example: string
email:
type: string
example: string
ability:
type: array
example:
- array
items:
type: string
roles:
type: array
example:
- array
items:
type: string
preferences:
type: array
example:
- array
items:
type: string
sectors:
type: array
example:
- array
items:
type: string
image:
type: object
properties:
id:
type: string
example: uuid
url:
type: string
example: string
tags:
- Authentication
parameters:
-
in: path
name: user
description: 'User UUID'
example: 550e8400-e29b-41d4-a716-446655440000
required: true
schema:
type: string
/api/bank-accounts/balance-summary:
get:
summary: 'Get bank account balance summary'
operationId: getBankAccountBalanceSummary
description: 'Get the balance summary of all bank accounts'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
totalBalancePositive: number
totalBalanceNegative: number
totalLimit: number
sumLimitAndBalancePositive: number
accounts:
'*':
id: string
bank: string
balance: number
limit: number
properties:
data:
type: object
properties:
totalBalancePositive:
type: string
example: number
totalBalanceNegative:
type: string
example: number
totalLimit:
type: string
example: number
sumLimitAndBalancePositive:
type: string
example: number
accounts:
type: object
properties:
'*':
type: object
properties:
id:
type: string
example: string
bank:
type: string
example: string
balance:
type: string
example: number
limit:
type: string
example: number
tags:
- 'Bank Accounts'
/api/bank-accounts:
get:
summary: 'List bank accounts'
operationId: listBankAccounts
description: 'List all bank accounts'
parameters:
-
in: query
name: sort_by
description: 'Field to sort by.'
example: created_at
required: false
schema:
type: string
description: 'Field to sort by.'
example: created_at
nullable: true
-
in: query
name: sort_desc
description: 'Sort order (true for descending, false for ascending).'
example: true
required: false
schema:
type: boolean
description: 'Sort order (true for descending, false for ascending).'
example: true
nullable: true
-
in: query
name: page
description: 'Page number for pagination. O campo value deve ser pelo menos 1.'
example: 1
required: false
schema:
type: integer
description: 'Page number for pagination. O campo value deve ser pelo menos 1.'
example: 1
nullable: true
-
in: query
name: per_page
description: 'Number of items per page (max: 100). O campo value deve ser pelo menos 1. O campo value não pode ser superior a 100.'
example: 15
required: false
schema:
type: integer
description: 'Number of items per page (max: 100). O campo value deve ser pelo menos 1. O campo value não pode ser superior a 100.'
example: 15
nullable: true
-
in: query
name: q
description: 'Search query.'
example: name
required: false
schema:
type: string
description: 'Search query.'
example: name
nullable: true
-
in: query
name: is_default
description: 'Filter by default account (1 or 0).'
example: true
required: false
schema:
type: boolean
description: 'Filter by default account (1 or 0).'
example: true
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
-
id: 1f56d76b-7ba4-39c1-9c7d-6258d63eacd6
agency: '8964'
account: 1231183-7
type: poupança
balance: 1132.03
holder_type: pj
alias: consequuntur
limit: 3833.96
available_balance: 4965.99
used_limit: 0
is_default: null
bank:
id: null
name: null
code: null
created_at: null
updated_at: null
-
id: 6674c6f0-11a8-332d-bf9f-6e8be5e216cd
agency: '1230'
account: 5209009-6
type: poupança
balance: 6091.88
holder_type: pj
alias: aut
limit: 6532.88
available_balance: 12624.76
used_limit: 0
is_default: null
bank:
id: null
name: null
code: null
created_at: null
updated_at: null
links:
first: '/?page=1'
last: '/?page=1'
prev: null
next: null
meta:
current_page: 1
from: 1
last_page: 1
links:
-
url: null
label: '« Anterior'
page: null
active: false
-
url: '/?page=1'
label: '1'
page: 1
active: true
-
url: null
label: 'Próximo »'
page: null
active: false
path: /
per_page: 10
to: 2
total: 2
properties:
data:
type: array
example:
-
id: 1f56d76b-7ba4-39c1-9c7d-6258d63eacd6
agency: '8964'
account: 1231183-7
type: poupança
balance: 1132.03
holder_type: pj
alias: consequuntur
limit: 3833.96
available_balance: 4965.99
used_limit: 0
is_default: null
bank:
id: null
name: null
code: null
created_at: null
updated_at: null
-
id: 6674c6f0-11a8-332d-bf9f-6e8be5e216cd
agency: '1230'
account: 5209009-6
type: poupança
balance: 6091.88
holder_type: pj
alias: aut
limit: 6532.88
available_balance: 12624.76
used_limit: 0
is_default: null
bank:
id: null
name: null
code: null
created_at: null
updated_at: null
items:
type: object
properties:
id:
type: string
example: 1f56d76b-7ba4-39c1-9c7d-6258d63eacd6
agency:
type: string
example: '8964'
account:
type: string
example: 1231183-7
type:
type: string
example: poupança
balance:
type: number
example: 1132.03
holder_type:
type: string
example: pj
alias:
type: string
example: consequuntur
limit:
type: number
example: 3833.96
available_balance:
type: number
example: 4965.99
used_limit:
type: integer
example: 0
is_default:
type: string
example: null
bank:
type: object
properties:
id:
type: string
example: null
name:
type: string
example: null
code:
type: string
example: null
created_at:
type: string
example: null
updated_at:
type: string
example: null
links:
type: object
properties:
first:
type: string
example: '/?page=1'
last:
type: string
example: '/?page=1'
prev:
type: string
example: null
next:
type: string
example: null
meta:
type: object
properties:
current_page:
type: integer
example: 1
from:
type: integer
example: 1
last_page:
type: integer
example: 1
links:
type: array
example:
-
url: null
label: '« Anterior'
page: null
active: false
-
url: '/?page=1'
label: '1'
page: 1
active: true
-
url: null
label: 'Próximo »'
page: null
active: false
items:
type: object
properties:
url:
type: string
example: null
label:
type: string
example: '« Anterior'
page:
type: string
example: null
active:
type: boolean
example: false
path:
type: string
example: /
per_page:
type: integer
example: 10
to:
type: integer
example: 2
total:
type: integer
example: 2
tags:
- 'Bank Accounts'
post:
summary: 'Create bank account'
operationId: createBankAccount
description: 'Create a new bank account'
parameters: []
responses:
201:
description: ''
content:
application/json:
schema:
type: object
example:
message: string
properties:
message:
type: string
example: string
tags:
- 'Bank Accounts'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
agency:
type: string
description: Agency.
example: 'Example Agency'
account:
type: string
description: Account.
example: 9417737-0
bank_id:
type: string
description: 'Bank id. The uuid of an existing record in the banks table.'
example: 1edd7cb5-b5f5-3f0e-83b1-537fec147ab0
type:
type: string
description: Type.
example: 'Example Type'
enum:
- corrente
- poupança
holder_type:
type: string
description: 'Holder type.'
example: 'Example Holder type'
enum:
- pf
- pj
alias:
type: string
description: Alias.
example: 'Example Alias'
balance:
type: number
description: Balance.
example: 1.0
limit:
type: number
description: Limit.
example: 1.0
nullable: true
is_default:
type: boolean
description: 'Is default.'
example: false
required:
- agency
- account
- bank_id
- type
- holder_type
- alias
- balance
'/api/bank-accounts/{bankAccount}':
put:
summary: 'Update bank account'
operationId: updateBankAccount
description: 'Update a bank account'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
message: string
properties:
message:
type: string
example: string
tags:
- 'Bank Accounts'
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
agency:
type: string
description: Agency.
example: 'Example Agency'
account:
type: string
description: Account.
example: 7291741-0
bank_id:
type: string
description: 'Bank id. The uuid of an existing record in the banks table.'
example: 1226c3a5-97f4-3b92-988f-be47d6ad7d1a
type:
type: string
description: Type.
example: 'Example Type'
enum:
- corrente
- poupança
holder_type:
type: string
description: 'Holder type.'
example: 'Example Holder type'
enum:
- pf
- pj
alias:
type: string
description: Alias.
example: 'Example Alias'
nullable: true
balance:
type: number
description: Balance.
example: 1.0
limit:
type: number
description: Limit.
example: 1.0
nullable: true
is_default:
type: boolean
description: 'Is default.'
example: false
get:
summary: 'Show bank account'
operationId: showBankAccount
description: 'Show a bank account'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
id: 419c448e-f3be-3955-835e-75dcf1d2981e
agency: '5639'
account: 1198906-3
type: poupança
balance: 7200.26
holder_type: pf
alias: et
limit: 5246.99
available_balance: 12447.25
used_limit: 0
is_default: null
bank:
id: null
name: null
code: null
created_at: null
updated_at: null
properties:
data:
type: object
properties:
id:
type: string
example: 419c448e-f3be-3955-835e-75dcf1d2981e
agency:
type: string
example: '5639'
account:
type: string
example: 1198906-3
type:
type: string
example: poupança
balance:
type: number
example: 7200.26
holder_type:
type: string
example: pf
alias:
type: string
example: et
limit:
type: number
example: 5246.99
available_balance:
type: number
example: 12447.25
used_limit:
type: integer
example: 0
is_default:
type: string
example: null
bank:
type: object
properties:
id:
type: string
example: null
name:
type: string
example: null
code:
type: string
example: null
created_at:
type: string
example: null
updated_at:
type: string
example: null
tags:
- 'Bank Accounts'
delete:
summary: 'Delete bank account'
operationId: deleteBankAccount
description: 'Delete a bank account'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
message: string
properties:
message:
type: string
example: string
tags:
- 'Bank Accounts'
parameters:
-
in: path
name: bankAccount
description: ''
example: 7
required: true
schema:
type: integer
/api/banks:
get:
summary: 'List banks'
operationId: listBanks
description: 'List all banks'
parameters:
-
in: query
name: sort_by
description: 'Field to sort by.'
example: created_at
required: false
schema:
type: string
description: 'Field to sort by.'
example: created_at
nullable: true
-
in: query
name: sort_desc
description: 'Sort order (true for descending, false for ascending).'
example: true
required: false
schema:
type: boolean
description: 'Sort order (true for descending, false for ascending).'
example: true
nullable: true
-
in: query
name: page
description: 'Page number for pagination. O campo value deve ser pelo menos 1.'
example: 1
required: false
schema:
type: integer
description: 'Page number for pagination. O campo value deve ser pelo menos 1.'
example: 1
nullable: true
-
in: query
name: per_page
description: 'Number of items per page (max: 100). O campo value deve ser pelo menos 1. O campo value não pode ser superior a 100.'
example: 15
required: false
schema:
type: integer
description: 'Number of items per page (max: 100). O campo value deve ser pelo menos 1. O campo value não pode ser superior a 100.'
example: 15
nullable: true
-
in: query
name: q
description: 'Search query.'
example: 'Permission name'
required: false
schema:
type: string
description: 'Search query.'
example: 'Permission name'
nullable: true
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
-
id: f68d1900-7066-3557-ae46-bc117e63cda4
name: Verdara-Lutero
code: '862'
-
id: 9bc9d868-7e9a-310d-966d-6beb1d38ac5d
name: 'Matias Comercial Ltda.'
code: '888'
links:
first: '/?page=1'
last: '/?page=1'
prev: null
next: null
meta:
current_page: 1
from: 1
last_page: 1
links:
-
url: null
label: '« Anterior'
page: null
active: false
-
url: '/?page=1'
label: '1'
page: 1
active: true
-
url: null
label: 'Próximo »'
page: null
active: false
path: /
per_page: 10
to: 2
total: 2
properties:
data:
type: array
example:
-
id: f68d1900-7066-3557-ae46-bc117e63cda4
name: Verdara-Lutero
code: '862'
-
id: 9bc9d868-7e9a-310d-966d-6beb1d38ac5d
name: 'Matias Comercial Ltda.'
code: '888'
items:
type: object
properties:
id:
type: string
example: f68d1900-7066-3557-ae46-bc117e63cda4
name:
type: string
example: Verdara-Lutero
code:
type: string
example: '862'
links:
type: object
properties:
first:
type: string
example: '/?page=1'
last:
type: string
example: '/?page=1'
prev:
type: string
example: null
next:
type: string
example: null
meta:
type: object
properties:
current_page:
type: integer
example: 1
from:
type: integer
example: 1
last_page:
type: integer
example: 1
links:
type: array
example:
-
url: null
label: '« Anterior'
page: null
active: false
-
url: '/?page=1'
label: '1'
page: 1
active: true
-
url: null
label: 'Próximo »'
page: null
active: false
items:
type: object
properties:
url:
type: string
example: null
label:
type: string
example: '« Anterior'
page:
type: string
example: null
active:
type: boolean
example: false
path:
type: string
example: /
per_page:
type: integer
example: 10
to:
type: integer
example: 2
total:
type: integer
example: 2
tags:
- Banks
post:
summary: 'Create bank'
operationId: createBank
description: 'Create a new bank'
parameters: []
responses:
201:
description: ''
content:
application/json:
schema:
type: object
example:
message: string
properties:
message:
type: string
example: string
tags:
- Banks
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
name:
type: string
description: 'Name. O campo value não pode ser superior a 255 caracteres.'
example: 'Example Name'
code:
type: string
description: 'Code. O campo value não pode ser superior a 255 caracteres.'
example: 'Example Code'
required:
- name
- code
'/api/banks/{bank}':
put:
summary: 'Update bank'
operationId: updateBank
description: 'Update a bank'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
message: string
properties:
message:
type: string
example: string
tags:
- Banks
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
name:
type: string
description: 'Name. O campo value não pode ser superior a 255 caracteres.'
example: 'Example Name'
code:
type: string
description: 'Code. O campo value não pode ser superior a 255 caracteres.'
example: 'Example Code'
get:
summary: 'Show bank'
operationId: showBank
description: 'Show a bank'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
id: fdac2796-e314-3162-8c5c-8cbf9d4f4fa4
name: Montenegro-Soares
code: '975'
properties:
data:
type: object
properties:
id:
type: string
example: fdac2796-e314-3162-8c5c-8cbf9d4f4fa4
name:
type: string
example: Montenegro-Soares
code:
type: string
example: '975'
tags:
- Banks
delete:
summary: 'Delete bank'
operationId: deleteBank
description: 'Delete a bank'
parameters: []
responses:
204:
description: ''
content:
application/json:
schema:
type: object
nullable: true
tags:
- Banks
parameters:
-
in: path
name: bank
description: 'The bank.'
example: 1
required: true
schema:
type: integer
'/api/cep/{cep}':
get:
summary: 'Search CEP'
operationId: searchCEP
description: 'Search for address information by CEP (Brazilian postal code)'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
oneOf:
-
description: 'CEP found successfully'
type: object
example:
data:
cep: '01001000'
street: 'Praça da Sé'
district: Sé
city: 'São Paulo'
state: SP
complement: 'lado ímpar'
ibge: '3550308'
ddd: '11'
siafi: '7107'
properties:
data:
type: object
properties:
cep:
type: string
example: '01001000'
street:
type: string
example: 'Praça da Sé'
district:
type: string
example: Sé
city:
type: string
example: 'São Paulo'
state:
type: string
example: SP
complement:
type: string
example: 'lado ímpar'
ibge:
type: string
example: '3550308'
ddd:
type: string
example: '11'
siafi:
type: string
example: '7107'
-
description: 'CEP not found'
type: object
example:
data:
cep: '99999999'
street: null
district: null
city: null
state: null
complement: null
ibge: null
ddd: null
siafi: null
properties:
data:
type: object
properties:
cep:
type: string
example: '99999999'
street:
type: string
example: null
district:
type: string
example: null
city:
type: string
example: null
state:
type: string
example: null
complement:
type: string
example: null
ibge:
type: string
example: null
ddd:
type: string
example: null
siafi:
type: string
example: null
tags:
- CEP
parameters:
-
in: path
name: cep
description: 'CEP to search for'
example: '01001000'
required: true
schema:
type: string
/api/cash-flows/summary:
get:
summary: 'Get cash flow summary'
operationId: getCashFlowSummary
description: 'Get cash flow summary'
parameters:
-
in: query
name: sort_by
description: 'Field to sort by.'
example: created_at
required: false
schema:
type: string
description: 'Field to sort by.'
example: created_at
nullable: true
-
in: query
name: sort_desc
description: 'Sort order (true for descending, false for ascending).'
example: true
required: false
schema:
type: boolean
description: 'Sort order (true for descending, false for ascending).'
example: true
nullable: true
-
in: query
name: page
description: 'Page number for pagination. O campo value deve ser pelo menos 1.'
example: 1
required: false
schema:
type: integer
description: 'Page number for pagination. O campo value deve ser pelo menos 1.'
example: 1
nullable: true
-
in: query
name: per_page
description: 'Number of items per page (max: 100). O campo value deve ser pelo menos 1. O campo value não pode ser superior a 100.'
example: 15
required: false
schema:
type: integer
description: 'Number of items per page (max: 100). O campo value deve ser pelo menos 1. O campo value não pode ser superior a 100.'
example: 15
nullable: true
-
in: query
name: q
description: 'Search query.'
example: Salary
required: false
schema:
type: string
description: 'Search query.'
example: Salary
nullable: true
-
in: query
name: cash_session
description: 'Cash session. The uuid of an existing record in the cash_sessions table.'
example: uuid
required: false
schema:
type: string
description: 'Cash session. The uuid of an existing record in the cash_sessions table.'
example: uuid
nullable: true
-
in: query
name: type
description: 'Cash flow type.'
example: entrada
required: false
schema:
type: string
description: 'Cash flow type.'
example: entrada
enum:
- entrada
- saída
- tarifa
- depósito
- saque
- transferência
- pagamento
- juros
- ajuste
nullable: true
-
in: query
name: description
description: 'Description .'
example: 'Aut impedit aut aperiam dolorem laborum ut.'
required: false
schema:
type: string
description: 'Description .'
example: 'Aut impedit aut aperiam dolorem laborum ut.'
-
in: query
name: categories
description: 'The uuid of an existing record in the transaction_categories table.'
example:
- vero
required: false
schema:
type: array
description: 'The uuid of an existing record in the transaction_categories table.'
example:
- vero
items:
type: string
-
in: query
name: date_start
description: 'Start date. O campo value deve ser uma data válida.'
example: '2021-01-01'
required: false
schema:
type: string
description: 'Start date. O campo value deve ser uma data válida.'
example: '2021-01-01'
nullable: true
-
in: query
name: date_end
description: 'End date. O campo value deve ser uma data válida.'
example: '2021-01-31'
required: false
schema:
type: string
description: 'End date. O campo value deve ser uma data válida.'
example: '2021-01-31'
nullable: true
-
in: query
name: bank_accounts
description: 'The uuid of an existing record in the bank_accounts table.'
example:
- quis
required: false
schema:
type: array
description: 'The uuid of an existing record in the bank_accounts table.'
example:
- quis
items:
type: string
-
in: query
name: customers
description: 'The uuid of an existing record in the customers table.'
example:
- occaecati
required: false
schema:
type: array
description: 'The uuid of an existing record in the customers table.'
example:
- occaecati
items:
type: string
-
in: query
name: suppliers
description: 'The uuid of an existing record in the suppliers table.'
example:
- nesciunt
required: false
schema:
type: array
description: 'The uuid of an existing record in the suppliers table.'
example:
- nesciunt
items:
type: string
-
in: query
name: works
description: 'The uuid of an existing record in the works table.'
example:
- aut
required: false
schema:
type: array
description: 'The uuid of an existing record in the works table.'
example:
- aut
items:
type: string
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
total_income: number
total_expense: number
total_fee: number
total_balance: number
properties:
data:
type: object
properties:
total_income:
type: string
example: number
total_expense:
type: string
example: number
total_fee:
type: string
example: number
total_balance:
type: string
example: number
tags:
- 'Cash Flow'
/api/cash-flows:
get:
summary: 'List cash flow'
operationId: listCashFlow
description: 'List all cash flow'
parameters:
-
in: query
name: sort_by
description: 'Field to sort by.'
example: created_at
required: false
schema:
type: string
description: 'Field to sort by.'
example: created_at
nullable: true
-
in: query
name: sort_desc
description: 'Sort order (true for descending, false for ascending).'
example: true
required: false
schema:
type: boolean
description: 'Sort order (true for descending, false for ascending).'
example: true
nullable: true
-
in: query
name: page
description: 'Page number for pagination. O campo value deve ser pelo menos 1.'
example: 1
required: false
schema:
type: integer
description: 'Page number for pagination. O campo value deve ser pelo menos 1.'
example: 1
nullable: true
-
in: query
name: per_page
description: 'Number of items per page (max: 100). O campo value deve ser pelo menos 1. O campo value não pode ser superior a 100.'
example: 15
required: false
schema:
type: integer
description: 'Number of items per page (max: 100). O campo value deve ser pelo menos 1. O campo value não pode ser superior a 100.'
example: 15
nullable: true
-
in: query
name: q
description: 'Search query.'
example: Salary
required: false
schema:
type: string
description: 'Search query.'
example: Salary
nullable: true
-
in: query
name: cash_session
description: 'Cash session. The uuid of an existing record in the cash_sessions table.'
example: uuid
required: false
schema:
type: string
description: 'Cash session. The uuid of an existing record in the cash_sessions table.'
example: uuid
nullable: true
-
in: query
name: type
description: 'Cash flow type.'
example: entrada
required: false
schema:
type: string
description: 'Cash flow type.'
example: entrada
enum:
- entrada
- saída
- tarifa
- depósito
- saque
- transferência
- pagamento
- juros
- ajuste
nullable: true
-
in: query
name: description
description: 'Description .'
example: 'Repellendus voluptatem quo molestias autem cupiditate ab dignissimos.'
required: false
schema:
type: string
description: 'Description .'
example: 'Repellendus voluptatem quo molestias autem cupiditate ab dignissimos.'
-
in: query
name: categories
description: 'The uuid of an existing record in the transaction_categories table.'
example:
- temporibus
required: false
schema:
type: array
description: 'The uuid of an existing record in the transaction_categories table.'
example:
- temporibus
items:
type: string
-
in: query
name: date_start
description: 'Start date. O campo value deve ser uma data válida.'
example: '2021-01-01'
required: false
schema:
type: string
description: 'Start date. O campo value deve ser uma data válida.'
example: '2021-01-01'
nullable: true
-
in: query
name: date_end
description: 'End date. O campo value deve ser uma data válida.'
example: '2021-01-31'
required: false
schema:
type: string
description: 'End date. O campo value deve ser uma data válida.'
example: '2021-01-31'
nullable: true
-
in: query
name: bank_accounts
description: 'The uuid of an existing record in the bank_accounts table.'
example:
- corrupti
required: false
schema:
type: array
description: 'The uuid of an existing record in the bank_accounts table.'
example:
- corrupti
items:
type: string
-
in: query
name: customers
description: 'The uuid of an existing record in the customers table.'
example:
- commodi
required: false
schema:
type: array
description: 'The uuid of an existing record in the customers table.'
example:
- commodi
items:
type: string
-
in: query
name: suppliers
description: 'The uuid of an existing record in the suppliers table.'
example:
- mollitia
required: false
schema:
type: array
description: 'The uuid of an existing record in the suppliers table.'
example:
- mollitia
items:
type: string
-
in: query
name: works
description: 'The uuid of an existing record in the works table.'
example:
- saepe
required: false
schema:
type: array
description: 'The uuid of an existing record in the works table.'
example:
- saepe
items:
type: string
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
-
id: 4c255faa-8b57-334e-b984-7c69af0c3993
code: FC-15654318
type: depósito
amount: 1876.15
description: 'Delectus quaerat rerum doloribus est aut excepturi.'
transaction_date: '2018-03-13T03:00:00.000000Z'
transaction_category:
id: null
name: null
type: null
created_at: null
updated_at: null
-
id: 78e0b544-6583-3875-ad7a-b1f13d027393
code: FC-71927808
type: depósito
amount: 6818.44
description: 'Saepe nobis quia ut ut quos quos dolor.'
transaction_date: '1984-01-02T03:00:00.000000Z'
transaction_category:
id: null
name: null
type: null
created_at: null
updated_at: null
links:
first: '/?page=1'
last: '/?page=1'
prev: null
next: null
meta:
current_page: 1
from: 1
last_page: 1
links:
-
url: null
label: '« Anterior'
page: null
active: false
-
url: '/?page=1'
label: '1'
page: 1
active: true
-
url: null
label: 'Próximo »'
page: null
active: false
path: /
per_page: 10
to: 2
total: 2
properties:
data:
type: array
example:
-
id: 4c255faa-8b57-334e-b984-7c69af0c3993
code: FC-15654318
type: depósito
amount: 1876.15
description: 'Delectus quaerat rerum doloribus est aut excepturi.'
transaction_date: '2018-03-13T03:00:00.000000Z'
transaction_category:
id: null
name: null
type: null
created_at: null
updated_at: null
-
id: 78e0b544-6583-3875-ad7a-b1f13d027393
code: FC-71927808
type: depósito
amount: 6818.44
description: 'Saepe nobis quia ut ut quos quos dolor.'
transaction_date: '1984-01-02T03:00:00.000000Z'
transaction_category:
id: null
name: null
type: null
created_at: null
updated_at: null
items:
type: object
properties:
id:
type: string
example: 4c255faa-8b57-334e-b984-7c69af0c3993
code:
type: string
example: FC-15654318
type:
type: string
example: depósito
amount:
type: number
example: 1876.15
description:
type: string
example: 'Delectus quaerat rerum doloribus est aut excepturi.'
transaction_date:
type: string
example: '2018-03-13T03:00:00.000000Z'
transaction_category:
type: object
properties:
id:
type: string
example: null
name:
type: string
example: null
type:
type: string
example: null
created_at:
type: string
example: null
updated_at:
type: string
example: null
links:
type: object
properties:
first:
type: string
example: '/?page=1'
last:
type: string
example: '/?page=1'
prev:
type: string
example: null
next:
type: string
example: null
meta:
type: object
properties:
current_page:
type: integer
example: 1
from:
type: integer
example: 1
last_page:
type: integer
example: 1
links:
type: array
example:
-
url: null
label: '« Anterior'
page: null
active: false
-
url: '/?page=1'
label: '1'
page: 1
active: true
-
url: null
label: 'Próximo »'
page: null
active: false
items:
type: object
properties:
url:
type: string
example: null
label:
type: string
example: '« Anterior'
page:
type: string
example: null
active:
type: boolean
example: false
path:
type: string
example: /
per_page:
type: integer
example: 10
to:
type: integer
example: 2
total:
type: integer
example: 2
tags:
- 'Cash Flow'
post:
summary: 'Create cash flow'
operationId: createCashFlow
description: 'Create a new cash flow'
parameters: []
responses:
201:
description: ''
content:
application/json:
schema:
type: object
example:
message: string
properties:
message:
type: string
example: string
tags:
- 'Cash Flow'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
type:
type: string
description: Type.
example: 'Example Type'
enum:
- entrada
- saída
- tarifa
- depósito
- saque
- transferência
- pagamento
- juros
- ajuste
cash_session_id:
type: string
description: 'Cash session id. The uuid of an existing record in the cash_sessions table.'
example: 9df0c1cf-33ef-33c6-b40b-172aae11362d
transaction_category_id:
type: string
description: 'Transaction category id. The uuid of an existing record in the transaction_categories table.'
example: 3302ef35-55b7-3147-8b2e-33851f338bee
bank_account_id:
type: string
description: 'Bank account id. The uuid of an existing record in the bank_accounts table.'
example: c168ffb5-494a-3bf2-a7ad-7d14a937330c
nullable: true
customer_id:
type: string
description: 'Customer id. The uuid of an existing record in the customers table.'
example: 76187b57-b13e-36ce-bf69-6a5aeece02f5
nullable: true
supplier_id:
type: string
description: 'Supplier id. The uuid of an existing record in the suppliers table.'
example: bcbd3825-b5c3-39e6-bc0f-cc79c1e7a020
nullable: true
work_id:
type: string
description: 'Work id. The uuid of an existing record in the works table.'
example: 9f787170-0864-3f8f-8ea7-0da17925a0f8
nullable: true
amount:
type: number
description: Amount.
example: 1.0
description:
type: string
description: Description.
example: 'Example Description'
nullable: true
transaction_date:
type: string
description: 'Transaction date. O campo value deve ser uma data válida.'
example: '2024-01-01'
required:
- type
- cash_session_id
- amount
- transaction_date
'/api/cash-flows/{cashFlow}':
get:
summary: 'Show cash flow'
operationId: showCashFlow
description: 'Show a cash flow'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
id: cdc501cf-d53a-3f2a-8522-acd5f94f36ce
code: FC-06508504
type: juros
amount: -6267.25
description: 'Odit accusantium rerum porro.'
transaction_date: '2013-01-21T02:00:00.000000Z'
transaction_category:
id: null
name: null
type: null
created_at: null
updated_at: null
properties:
data:
type: object
properties:
id:
type: string
example: cdc501cf-d53a-3f2a-8522-acd5f94f36ce
code:
type: string
example: FC-06508504
type:
type: string
example: juros
amount:
type: number
example: -6267.25
description:
type: string
example: 'Odit accusantium rerum porro.'
transaction_date:
type: string
example: '2013-01-21T02:00:00.000000Z'
transaction_category:
type: object
properties:
id:
type: string
example: null
name:
type: string
example: null
type:
type: string
example: null
created_at:
type: string
example: null
updated_at:
type: string
example: null
tags:
- 'Cash Flow'
put:
summary: 'Update cash flow'
operationId: updateCashFlow
description: 'Update a cash flow'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
message: string
properties:
message:
type: string
example: string
tags:
- 'Cash Flow'
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
type:
type: string
description: Type.
example: 'Example Type'
enum:
- entrada
- saída
- tarifa
- depósito
- saque
- transferência
- pagamento
- juros
- ajuste
cash_session_id:
type: string
description: 'Cash session id. The uuid of an existing record in the cash_sessions table.'
example: 95d18953-f666-3bf6-83a2-61bf9debde81
transaction_category_id:
type: string
description: 'Transaction category id. The uuid of an existing record in the transaction_categories table.'
example: e8d1cf19-a007-35b9-9f40-61421a8f0f90
bank_account_id:
type: string
description: 'Bank account id. The uuid of an existing record in the bank_accounts table.'
example: b0694d50-777b-3a98-a115-08da4f18516e
nullable: true
customer_id:
type: string
description: 'Customer id. The uuid of an existing record in the customers table.'
example: 54317664-021f-3192-84a5-5a1249cd3b03
nullable: true
supplier_id:
type: string
description: 'Supplier id. The uuid of an existing record in the suppliers table.'
example: eb34bb1a-30a5-3728-b958-21507fe2efd9
nullable: true
work_id:
type: string
description: 'Work id. The uuid of an existing record in the works table.'
example: 81ea1296-de8b-3e8e-9e32-77219bb14e23
nullable: true
amount:
type: number
description: Amount.
example: 1.0
description:
type: string
description: Description.
example: 'Example Description'
nullable: true
transaction_date:
type: string
description: 'Transaction date. O campo value deve ser uma data válida.'
example: '2024-01-01'
delete:
summary: 'Delete cash flow'
operationId: deleteCashFlow
description: 'Delete a cash flow'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
message: string
properties:
message:
type: string
example: string
tags:
- 'Cash Flow'
parameters:
-
in: path
name: cashFlow
description: ''
example: 13
required: true
schema:
type: integer
/api/cash-sessions:
get:
summary: 'List cash session'
operationId: listCashSession
description: 'List all cash session'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
-
id: 9649fb67-6d09-36f5-b710-1100aa5b5768
code: null
opened_by: null
opened_at: '1988-02-19T21:17:40.000000Z'
closed_by: null
closed_at: '1993-10-04T03:48:26.000000Z'
opening_balance: 6748.54
closing_balance: 35.47
total_income: 0
total_expense: 0
total_balance: 0
status: Fechado
created_at: '1973-09-06T03:00:12.000000Z'
updated_at: '1988-02-26T08:20:49.000000Z'
-
id: 14126c1a-e4ff-3635-9f91-f2b12ecbb6f0
code: null
opened_by: null
opened_at: '2010-01-04T01:23:18.000000Z'
closed_by: null
closed_at: '1998-04-21T19:37:19.000000Z'
opening_balance: 1872.28
closing_balance: 5553.29
total_income: 0
total_expense: 0
total_balance: 0
status: Fechado
created_at: '2013-09-19T03:59:55.000000Z'
updated_at: '1970-05-17T22:54:40.000000Z'
links:
first: '/?page=1'
last: '/?page=1'
prev: null
next: null
meta:
current_page: 1
from: 1
last_page: 1
links:
-
url: null
label: '« Anterior'
page: null
active: false
-
url: '/?page=1'
label: '1'
page: 1
active: true
-
url: null
label: 'Próximo »'
page: null
active: false
path: /
per_page: 10
to: 2
total: 2
properties:
data:
type: array
example:
-
id: 9649fb67-6d09-36f5-b710-1100aa5b5768
code: null
opened_by: null
opened_at: '1988-02-19T21:17:40.000000Z'
closed_by: null
closed_at: '1993-10-04T03:48:26.000000Z'
opening_balance: 6748.54
closing_balance: 35.47
total_income: 0
total_expense: 0
total_balance: 0
status: Fechado
created_at: '1973-09-06T03:00:12.000000Z'
updated_at: '1988-02-26T08:20:49.000000Z'
-
id: 14126c1a-e4ff-3635-9f91-f2b12ecbb6f0
code: null
opened_by: null
opened_at: '2010-01-04T01:23:18.000000Z'
closed_by: null
closed_at: '1998-04-21T19:37:19.000000Z'
opening_balance: 1872.28
closing_balance: 5553.29
total_income: 0
total_expense: 0
total_balance: 0
status: Fechado
created_at: '2013-09-19T03:59:55.000000Z'
updated_at: '1970-05-17T22:54:40.000000Z'
items:
type: object
properties:
id:
type: string
example: 9649fb67-6d09-36f5-b710-1100aa5b5768
code:
type: string
example: null
opened_by:
type: string
example: null
opened_at:
type: string
example: '1988-02-19T21:17:40.000000Z'
closed_by:
type: string
example: null
closed_at:
type: string
example: '1993-10-04T03:48:26.000000Z'
opening_balance:
type: number
example: 6748.54
closing_balance:
type: number
example: 35.47
total_income:
type: integer
example: 0
total_expense:
type: integer
example: 0
total_balance:
type: integer
example: 0
status:
type: string
example: Fechado
created_at:
type: string
example: '1973-09-06T03:00:12.000000Z'
updated_at:
type: string
example: '1988-02-26T08:20:49.000000Z'
links:
type: object
properties:
first:
type: string
example: '/?page=1'
last:
type: string
example: '/?page=1'
prev:
type: string
example: null
next:
type: string
example: null
meta:
type: object
properties:
current_page:
type: integer
example: 1
from:
type: integer
example: 1
last_page:
type: integer
example: 1
links:
type: array
example:
-
url: null
label: '« Anterior'
page: null
active: false
-
url: '/?page=1'
label: '1'
page: 1
active: true
-
url: null
label: 'Próximo »'
page: null
active: false
items:
type: object
properties:
url:
type: string
example: null
label:
type: string
example: '« Anterior'
page:
type: string
example: null
active:
type: boolean
example: false
path:
type: string
example: /
per_page:
type: integer
example: 10
to:
type: integer
example: 2
total:
type: integer
example: 2
tags:
- 'Cash Session'
/api/cash-sessions/open:
post:
summary: 'Open cash session'
operationId: openCashSession
description: 'Open a new cash session'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
id: 7ef51fb0-13a3-3761-9c54-1ec9f1ef5282
code: null
opened_by: null
opened_at: '1988-06-18T09:22:30.000000Z'
closed_by: null
closed_at: '1985-08-09T09:40:51.000000Z'
opening_balance: 1615.9
closing_balance: 8324.55
total_income: 0
total_expense: 0
total_balance: 0
status: Fechado
created_at: '1976-02-02T07:44:39.000000Z'
updated_at: '2011-02-21T04:34:54.000000Z'
properties:
data:
type: object
properties:
id:
type: string
example: 7ef51fb0-13a3-3761-9c54-1ec9f1ef5282
code:
type: string
example: null
opened_by:
type: string
example: null
opened_at:
type: string
example: '1988-06-18T09:22:30.000000Z'
closed_by:
type: string
example: null
closed_at:
type: string
example: '1985-08-09T09:40:51.000000Z'
opening_balance:
type: number
example: 1615.9
closing_balance:
type: number
example: 8324.55
total_income:
type: integer
example: 0
total_expense:
type: integer
example: 0
total_balance:
type: integer
example: 0
status:
type: string
example: Fechado
created_at:
type: string
example: '1976-02-02T07:44:39.000000Z'
updated_at:
type: string
example: '2011-02-21T04:34:54.000000Z'
tags:
- 'Cash Session'
'/api/cash-sessions/close/{uuid}':
post:
summary: 'Close cash session'
operationId: closeCashSession
description: 'Close a cash session'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
message: string
properties:
message:
type: string
example: string
tags:
- 'Cash Session'
parameters:
-
in: path
name: uuid
description: ''
example: 11222344-94d4-36c3-a1fc-fb58b78cbd9d
required: true
schema:
type: string
'/api/cash-sessions/{uuid}':
get:
summary: 'Show cash session'
operationId: showCashSession
description: 'Show a cash session'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
id: 8842ff1a-eb3d-3bb5-bf7e-8d1c9b382da2
code: null
opened_by: null
opened_at: '2018-07-23T06:32:55.000000Z'
closed_by: null
closed_at: '2007-04-22T22:21:59.000000Z'
opening_balance: 805.93
closing_balance: 5141.83
total_income: 0
total_expense: 0
total_balance: 0
status: Aberto
created_at: '2025-03-05T18:09:14.000000Z'
updated_at: '1988-12-17T09:39:39.000000Z'
properties:
data:
type: object
properties:
id:
type: string
example: 8842ff1a-eb3d-3bb5-bf7e-8d1c9b382da2
code:
type: string
example: null
opened_by:
type: string
example: null
opened_at:
type: string
example: '2018-07-23T06:32:55.000000Z'
closed_by:
type: string
example: null
closed_at:
type: string
example: '2007-04-22T22:21:59.000000Z'
opening_balance:
type: number
example: 805.93
closing_balance:
type: number
example: 5141.83
total_income:
type: integer
example: 0
total_expense:
type: integer
example: 0
total_balance:
type: integer
example: 0
status:
type: string
example: Aberto
created_at:
type: string
example: '2025-03-05T18:09:14.000000Z'
updated_at:
type: string
example: '1988-12-17T09:39:39.000000Z'
tags:
- 'Cash Session'
delete:
summary: 'Delete cash session'
operationId: deleteCashSession
description: 'Delete a cash session'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
message: string
properties:
message:
type: string
example: string
tags:
- 'Cash Session'
parameters:
-
in: path
name: uuid
description: ''
example: 3de035f2-a494-39bb-8541-70806544356f
required: true
schema:
type: integer
/api/customers:
get:
summary: 'List customers'
operationId: listCustomers
description: 'List all customers'
parameters:
-
in: query
name: sort_by
description: 'Field to sort by.'
example: created_at
required: false
schema:
type: string
description: 'Field to sort by.'
example: created_at
nullable: true
-
in: query
name: sort_desc
description: 'Sort order (true for descending, false for ascending).'
example: true
required: false
schema:
type: boolean
description: 'Sort order (true for descending, false for ascending).'
example: true
nullable: true
-
in: query
name: page
description: 'Page number for pagination. O campo value deve ser pelo menos 1.'
example: 1
required: false
schema:
type: integer
description: 'Page number for pagination. O campo value deve ser pelo menos 1.'
example: 1
nullable: true
-
in: query
name: per_page
description: 'Number of items per page (max: 100). O campo value deve ser pelo menos 1. O campo value não pode ser superior a 100.'
example: 15
required: false
schema:
type: integer
description: 'Number of items per page (max: 100). O campo value deve ser pelo menos 1. O campo value não pode ser superior a 100.'
example: 15
nullable: true
-
in: query
name: q
description: 'Search query.'
example: 'Customer name'
required: false
schema:
type: string
description: 'Search query.'
example: 'Customer name'
nullable: true
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
-
id: 6bfa22f1-bb08-3fce-bc95-ad39a911eb4c
name: 'Dr. Moisés Meireles Rivera Jr.'
email: aragao.david@example.org
phone: '(74) 3085-9130'
document: 887.788.952-78
type: pf
responsible: 'Naiara Adriana Oliveira'
image:
id: null
url: null
address:
street: null
number: null
complement: null
neighborhood: null
city: null
state: null
zip_code: null
documents_count: 0
-
id: b68a6014-8848-3b65-be6b-2ae80064c464
name: 'Sr. Sebastião Caio Souza Neto'
email: zmadeira@example.net
phone: '(14) 96915-0394'
document: 639.397.305-64
type: pj
responsible: 'Sr. Giovane Barreto Uchoa Filho'
image:
id: null
url: null
address:
street: null
number: null
complement: null
neighborhood: null
city: null
state: null
zip_code: null
documents_count: 0
links:
first: '/?page=1'
last: '/?page=1'
prev: null
next: null
meta:
current_page: 1
from: 1
last_page: 1
links:
-
url: null
label: '« Anterior'
page: null
active: false
-
url: '/?page=1'
label: '1'
page: 1
active: true
-
url: null
label: 'Próximo »'
page: null
active: false
path: /
per_page: 10
to: 2
total: 2
properties:
data:
type: array
example:
-
id: 6bfa22f1-bb08-3fce-bc95-ad39a911eb4c
name: 'Dr. Moisés Meireles Rivera Jr.'
email: aragao.david@example.org
phone: '(74) 3085-9130'
document: 887.788.952-78
type: pf
responsible: 'Naiara Adriana Oliveira'
image:
id: null
url: null
address:
street: null
number: null
complement: null
neighborhood: null
city: null
state: null
zip_code: null
documents_count: 0
-
id: b68a6014-8848-3b65-be6b-2ae80064c464
name: 'Sr. Sebastião Caio Souza Neto'
email: zmadeira@example.net
phone: '(14) 96915-0394'
document: 639.397.305-64
type: pj
responsible: 'Sr. Giovane Barreto Uchoa Filho'
image:
id: null
url: null
address:
street: null
number: null
complement: null
neighborhood: null
city: null
state: null
zip_code: null
documents_count: 0
items:
type: object
properties:
id:
type: string
example: 6bfa22f1-bb08-3fce-bc95-ad39a911eb4c
name:
type: string
example: 'Dr. Moisés Meireles Rivera Jr.'
email:
type: string
example: aragao.david@example.org
phone:
type: string
example: '(74) 3085-9130'
document:
type: string
example: 887.788.952-78
type:
type: string
example: pf
responsible:
type: string
example: 'Naiara Adriana Oliveira'
image:
type: object
properties:
id:
type: string
example: null
url:
type: string
example: null
address:
type: object
properties:
street:
type: string
example: null
number:
type: string
example: null
complement:
type: string
example: null
neighborhood:
type: string
example: null
city:
type: string
example: null
state:
type: string
example: null
zip_code:
type: string
example: null
documents_count:
type: integer
example: 0
links:
type: object
properties:
first:
type: string
example: '/?page=1'
last:
type: string
example: '/?page=1'
prev:
type: string
example: null
next:
type: string
example: null
meta:
type: object
properties:
current_page:
type: integer
example: 1
from:
type: integer
example: 1
last_page:
type: integer
example: 1
links:
type: array
example:
-
url: null
label: '« Anterior'
page: null
active: false
-
url: '/?page=1'
label: '1'
page: 1
active: true
-
url: null
label: 'Próximo »'
page: null
active: false
items:
type: object
properties:
url:
type: string
example: null
label:
type: string
example: '« Anterior'
page:
type: string
example: null
active:
type: boolean
example: false
path:
type: string
example: /
per_page:
type: integer
example: 10
to:
type: integer
example: 2
total:
type: integer
example: 2
tags:
- Customers
post:
summary: 'Create customer'
operationId: createCustomer
description: 'Create a new customer'
parameters: []
responses:
201:
description: ''
content:
application/json:
schema:
type: object
example:
message: string
properties:
message:
type: string
example: string
tags:
- Customers
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
name:
type: string
description: Nome.
example: 'Example Name'
email:
type: string
description: 'E-mail. O campo value deve ser um endereço de e-mail válido.'
example: user@example.com
phone:
type: string
description: Telefone.
example: '(11) 99999-9999'
document:
type: string
description: CPF/CNPJ.
example: 'Example Document'
type:
type: string
description: Tipo.
example: 'Example Type'
enum:
- pf
- pj
responsible:
type: string
description: Responsável.
example: 'Example Responsible'
nullable: true
image:
type: object
description: Imagem.
example:
- example1
- example2
properties:
path:
type: string
description: 'Caminho da imagem. This field is required when image is present.'
example: 'Example Image path'
name:
type: string
description: 'Nome da imagem.'
example: 'Example Name'
nullable: true
extension:
type: string
description: 'Extensão da imagem.'
example: 'Example Image extension'
nullable: true
size:
type: string
description: 'Tamanho da imagem.'
example: 'Example Image size'
nullable: true
address:
type: object
description: Endereço.
example:
- example1
- example2
properties:
street:
type: string
description: Rua.
example: 'Example Address street'
number:
type: string
description: Número.
example: 'Example Address number'
complement:
type: string
description: Complemento.
example: 'Example Address complement'
neighborhood:
type: string
description: Bairro.
example: 'Example Address neighborhood'
city:
type: string
description: Cidade.
example: 'Example Address city'
state:
type: string
description: Estado.
example: 'Example Address state'
zip_code:
type: string
description: CEP.
example: 'Example Address zip code'
required:
- street
- number
- neighborhood
- city
- state
- zip_code
required:
- name
- document
- type
- address
'/api/customers/{id}':
get:
summary: 'Get customer'
operationId: getCustomer
description: 'Get a customer'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
id: 91a50b1e-0a70-3c9a-8b53-ca43d99f62d5
name: 'Gabrielly Elisa Carmona'
email: gil.fabiano@example.com
phone: '(96) 94264-2322'
document: 374.259.525-30
type: pf
responsible: 'Sra. Cynthia Bárbara Barreto Jr.'
image:
id: null
url: null
address:
street: null
number: null
complement: null
neighborhood: null
city: null
state: null
zip_code: null
documents_count: 0
properties:
data:
type: object
properties:
id:
type: string
example: 91a50b1e-0a70-3c9a-8b53-ca43d99f62d5
name:
type: string
example: 'Gabrielly Elisa Carmona'
email:
type: string
example: gil.fabiano@example.com
phone:
type: string
example: '(96) 94264-2322'
document:
type: string
example: 374.259.525-30
type:
type: string
example: pf
responsible:
type: string
example: 'Sra. Cynthia Bárbara Barreto Jr.'
image:
type: object
properties:
id:
type: string
example: null
url:
type: string
example: null
address:
type: object
properties:
street:
type: string
example: null
number:
type: string
example: null
complement:
type: string
example: null
neighborhood:
type: string
example: null
city:
type: string
example: null
state:
type: string
example: null
zip_code:
type: string
example: null
documents_count:
type: integer
example: 0
tags:
- Customers
put:
summary: 'Update customer'
operationId: updateCustomer
description: 'Update a customer'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
message: string
properties:
message:
type: string
example: string
tags:
- Customers
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
name:
type: string
description: Nome.
example: 'Example Name'
email:
type: string
description: 'E-mail. O campo value deve ser um endereço de e-mail válido.'
example: user@example.com
phone:
type: string
description: Telefone.
example: '(11) 99999-9999'
document:
type: string
description: CPF/CNPJ.
example: 'Example Document'
type:
type: string
description: Tipo.
example: 'Example Type'
enum:
- pf
- pj
responsible:
type: string
description: Responsável.
example: 'Example Responsible'
nullable: true
image:
type: object
description: Imagem.
example:
- example1
- example2
properties:
path:
type: string
description: 'Caminho da imagem. This field is required when image is present.'
example: 'Example Image path'
name:
type: string
description: 'Nome da imagem.'
example: 'Example Name'
nullable: true
extension:
type: string
description: 'Extensão da imagem.'
example: 'Example Image extension'
nullable: true
size:
type: string
description: 'Tamanho da imagem.'
example: 'Example Image size'
nullable: true
address:
type: object
description: Endereço.
example:
- example1
- example2
properties:
street:
type: string
description: Rua.
example: 'Example Address street'
number:
type: string
description: Número.
example: 'Example Address number'
complement:
type: string
description: Complemento.
example: 'Example Address complement'
neighborhood:
type: string
description: Bairro.
example: 'Example Address neighborhood'
city:
type: string
description: Cidade.
example: 'Example Address city'
state:
type: string
description: Estado.
example: 'Example Address state'
zip_code:
type: string
description: CEP.
example: 'Example Address zip code'
parameters:
-
in: path
name: id
description: 'The ID of the customer.'
example: 13
required: true
schema:
type: integer
-
in: path
name: customer
description: 'Customer ID'
example: 019556e7-2e9f-777c-a177-30bbf0646c32
required: true
schema:
type: string
'/api/customers/{customer}':
delete:
summary: 'Delete customer'
operationId: deleteCustomer
description: 'Delete a customer'
parameters: []
responses:
204:
description: ''
content:
application/json:
schema:
type: object
nullable: true
tags:
- Customers
parameters:
-
in: path
name: customer
description: 'Customer ID'
example: 019556e7-2e9f-777c-a177-30bbf0646c32
required: true
schema:
type: string
/api/document-categories:
get:
summary: 'List document categories'
operationId: listDocumentCategories
description: 'List all document categories'
parameters:
-
in: query
name: q
description: 'Search query.'
example: Contracts
required: false
schema:
type: string
description: 'Search query.'
example: Contracts
nullable: true
-
in: query
name: module
description: 'Filter by module.'
example: employee
required: false
schema:
type: string
description: 'Filter by module.'
example: employee
nullable: true
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
-
id: 2ee83f08-1d24-3484-a353-810147049e82
name: 'Lidiane Jaqueline Carvalho'
description: 'Reiciendis perferendis eos dolorem quisquam. Rem nihil ut quo. Modi quaerat debitis dolores atque quasi.'
module: document
-
id: ec2377a4-ac63-39ec-bd6f-db40be3105cb
name: 'Sr. David Carrara Serna'
description: 'Ut et quaerat ad perspiciatis. Esse reiciendis tempore exercitationem voluptate impedit eos sint. Voluptatem odit quaerat in sint quibusdam.'
module: document
links:
first: '/?page=1'
last: '/?page=1'
prev: null
next: null
meta:
current_page: 1
from: 1
last_page: 1
links:
-
url: null
label: '« Anterior'
page: null
active: false
-
url: '/?page=1'
label: '1'
page: 1
active: true
-
url: null
label: 'Próximo »'
page: null
active: false
path: /
per_page: 10
to: 2
total: 2
properties:
data:
type: array
example:
-
id: 2ee83f08-1d24-3484-a353-810147049e82
name: 'Lidiane Jaqueline Carvalho'
description: 'Reiciendis perferendis eos dolorem quisquam. Rem nihil ut quo. Modi quaerat debitis dolores atque quasi.'
module: document
-
id: ec2377a4-ac63-39ec-bd6f-db40be3105cb
name: 'Sr. David Carrara Serna'
description: 'Ut et quaerat ad perspiciatis. Esse reiciendis tempore exercitationem voluptate impedit eos sint. Voluptatem odit quaerat in sint quibusdam.'
module: document
items:
type: object
properties:
id:
type: string
example: 2ee83f08-1d24-3484-a353-810147049e82
name:
type: string
example: 'Lidiane Jaqueline Carvalho'
description:
type: string
example: 'Reiciendis perferendis eos dolorem quisquam. Rem nihil ut quo. Modi quaerat debitis dolores atque quasi.'
module:
type: string
example: document
links:
type: object
properties:
first:
type: string
example: '/?page=1'
last:
type: string
example: '/?page=1'
prev:
type: string
example: null
next:
type: string
example: null
meta:
type: object
properties:
current_page:
type: integer
example: 1
from:
type: integer
example: 1
last_page:
type: integer
example: 1
links:
type: array
example:
-
url: null
label: '« Anterior'
page: null
active: false
-
url: '/?page=1'
label: '1'
page: 1
active: true
-
url: null
label: 'Próximo »'
page: null
active: false
items:
type: object
properties:
url:
type: string
example: null
label:
type: string
example: '« Anterior'
page:
type: string
example: null
active:
type: boolean
example: false
path:
type: string
example: /
per_page:
type: integer
example: 10
to:
type: integer
example: 2
total:
type: integer
example: 2
tags:
- 'Document Categories'
post:
summary: 'Create document category'
operationId: createDocumentCategory
description: 'Create a new document category'
parameters: []
responses:
201:
description: ''
content:
application/json:
schema:
type: object
example:
message: string
properties:
message:
type: string
example: string
tags:
- 'Document Categories'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
name:
type: string
description: Name.
example: 'Example Name'
description:
type: string
description: Description.
example: 'Example Description'
module:
type: string
description: Module.
example: 'Example Module'
required:
- name
- module
'/api/document-categories/{documentCategory}':
get:
summary: 'Show document category'
operationId: showDocumentCategory
description: 'Show a document category'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
id: 1c319273-1829-3f5b-a7bc-daebb397e973
name: 'Srta. Jaqueline Stephanie Gil Jr.'
description: 'Culpa vero ut voluptate temporibus. Incidunt eius voluptatum reprehenderit aut. Qui voluptate possimus explicabo molestiae. Maxime vitae distinctio libero enim.'
module: document
properties:
data:
type: object
properties:
id:
type: string
example: 1c319273-1829-3f5b-a7bc-daebb397e973
name:
type: string
example: 'Srta. Jaqueline Stephanie Gil Jr.'
description:
type: string
example: 'Culpa vero ut voluptate temporibus. Incidunt eius voluptatum reprehenderit aut. Qui voluptate possimus explicabo molestiae. Maxime vitae distinctio libero enim.'
module:
type: string
example: document
tags:
- 'Document Categories'
put:
summary: 'Update document category'
operationId: updateDocumentCategory
description: 'Update a document category'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
message: string
properties:
message:
type: string
example: string
tags:
- 'Document Categories'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
name:
type: string
description: Name.
example: 'Example Name'
description:
type: string
description: Description.
example: 'Example Description'
module:
type: string
description: Module.
example: 'Example Module'
required:
- name
- module
delete:
summary: 'Delete document category'
operationId: deleteDocumentCategory
description: 'Delete a document category'
parameters: []
responses:
204:
description: ''
content:
application/json:
schema:
type: object
nullable: true
tags:
- 'Document Categories'
parameters:
-
in: path
name: documentCategory
description: 'Document category UUID'
example: soluta
required: true
schema:
type: string
/api/documents:
get:
summary: 'List documents'
operationId: listDocuments
description: 'List all documents'
parameters:
-
in: query
name: sort_by
description: 'Field to sort by.'
example: created_at
required: false
schema:
type: string
description: 'Field to sort by.'
example: created_at
nullable: true
-
in: query
name: sort_desc
description: 'Sort order (true for descending, false for ascending).'
example: true
required: false
schema:
type: boolean
description: 'Sort order (true for descending, false for ascending).'
example: true
nullable: true
-
in: query
name: page
description: 'Page number for pagination. O campo value deve ser pelo menos 1.'
example: 1
required: false
schema:
type: integer
description: 'Page number for pagination. O campo value deve ser pelo menos 1.'
example: 1
nullable: true
-
in: query
name: per_page
description: 'Number of items per page (max: 100). O campo value deve ser pelo menos 1. O campo value não pode ser superior a 100.'
example: 15
required: false
schema:
type: integer
description: 'Number of items per page (max: 100). O campo value deve ser pelo menos 1. O campo value não pode ser superior a 100.'
example: 15
nullable: true
-
in: query
name: q
description: ''
example: 'Document name'
required: false
schema:
type: string
description: ''
example: 'Document name'
nullable: true
-
in: query
name: categories
description: 'The uuid of an existing record in the document_categories table.'
example:
- sed
required: false
schema:
type: array
description: 'The uuid of an existing record in the document_categories table.'
example:
- sed
items:
type: string
-
in: query
name: documentable_type
description: 'Type of the related documentable entity. The type of an existing record in the documentables table.'
example: provident
required: false
schema:
type: string
description: 'Type of the related documentable entity. The type of an existing record in the documentables table.'
example: provident
nullable: true
-
in: query
name: customers
description: 'The uuid of an existing record in the customers table.'
example:
- assumenda
required: false
schema:
type: array
description: 'The uuid of an existing record in the customers table.'
example:
- assumenda
items:
type: string
-
in: query
name: suppliers
description: 'The uuid of an existing record in the suppliers table.'
example:
- accusamus
required: false
schema:
type: array
description: 'The uuid of an existing record in the suppliers table.'
example:
- accusamus
items:
type: string
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
-
id: 6fa1f714-1de6-3860-8140-e651450b1a2c
name: 'Mirella Deverso Neves Filho'
file:
id: null
url: null
extension: null
created_at: null
updated_at: null
-
id: d7c75667-1d01-31c7-bac4-3a247ffd6ec6
name: 'Sra. Marília Rico Sobrinho'
file:
id: null
url: null
extension: null
created_at: null
updated_at: null
links:
first: '/?page=1'
last: '/?page=1'
prev: null
next: null
meta:
current_page: 1
from: 1
last_page: 1
links:
-
url: null
label: '« Anterior'
page: null
active: false
-
url: '/?page=1'
label: '1'
page: 1
active: true
-
url: null
label: 'Próximo »'
page: null
active: false
path: /
per_page: 10
to: 2
total: 2
properties:
data:
type: array
example:
-
id: 6fa1f714-1de6-3860-8140-e651450b1a2c
name: 'Mirella Deverso Neves Filho'
file:
id: null
url: null
extension: null
created_at: null
updated_at: null
-
id: d7c75667-1d01-31c7-bac4-3a247ffd6ec6
name: 'Sra. Marília Rico Sobrinho'
file:
id: null
url: null
extension: null
created_at: null
updated_at: null
items:
type: object
properties:
id:
type: string
example: 6fa1f714-1de6-3860-8140-e651450b1a2c
name:
type: string
example: 'Mirella Deverso Neves Filho'
file:
type: object
properties:
id:
type: string
example: null
url:
type: string
example: null
extension:
type: string
example: null
created_at:
type: string
example: null
updated_at:
type: string
example: null
links:
type: object
properties:
first:
type: string
example: '/?page=1'
last:
type: string
example: '/?page=1'
prev:
type: string
example: null
next:
type: string
example: null
meta:
type: object
properties:
current_page:
type: integer
example: 1
from:
type: integer
example: 1
last_page:
type: integer
example: 1
links:
type: array
example:
-
url: null
label: '« Anterior'
page: null
active: false
-
url: '/?page=1'
label: '1'
page: 1
active: true
-
url: null
label: 'Próximo »'
page: null
active: false
items:
type: object
properties:
url:
type: string
example: null
label:
type: string
example: '« Anterior'
page:
type: string
example: null
active:
type: boolean
example: false
path:
type: string
example: /
per_page:
type: integer
example: 10
to:
type: integer
example: 2
total:
type: integer
example: 2
tags:
- Documents
post:
summary: 'Create document'
operationId: createDocument
description: 'Create a new document'
parameters: []
responses:
201:
description: ''
content:
application/json:
schema:
type: object
example:
message: string
properties:
message:
type: string
example: string
tags:
- Documents
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
name:
type: string
description: Nome.
example: 'Example Name'
category_id:
type: string
description: 'Categoria. The uuid of an existing record in the document_categories table.'
example: 9786ce23-f005-3ef0-ad71-aa8c8faedd45
file:
type: object
description: Arquivo.
example:
- example1
- example2
properties:
path:
type: string
description: 'Caminho do arquivo. This field is required when file is present.'
example: 'Example File path'
name:
type: string
description: 'Nome do arquivo.'
example: 'Example Name'
extension:
type: string
description: 'Extensão do arquivo.'
example: 'Example File extension'
size:
type: string
description: 'Tamanho do arquivo.'
example: 'Example File size'
required:
- name
- extension
- size
documentable_type:
type: string
description: 'Tipo de relacionado do documento.'
example: 'Example Documentable type'
enum:
- customer
- work
- work_location
- supplier
- employee
documentable_id:
type: string
description: 'Relacionado do documento.'
example: 'Example Documentable id'
required:
- name
- category_id
- file
- documentable_type
- documentable_id
'/api/documents/{id}':
get:
summary: 'Get document'
operationId: getDocument
description: 'Get a document'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
id: d410b4d8-717e-3403-a6a9-9e33ae4fdcd1
name: 'Valentin Horácio Mascarenhas'
file:
id: null
url: null
extension: null
created_at: null
updated_at: null
properties:
data:
type: object
properties:
id:
type: string
example: d410b4d8-717e-3403-a6a9-9e33ae4fdcd1
name:
type: string
example: 'Valentin Horácio Mascarenhas'
file:
type: object
properties:
id:
type: string
example: null
url:
type: string
example: null
extension:
type: string
example: null
created_at:
type: string
example: null
updated_at:
type: string
example: null
tags:
- Documents
put:
summary: 'Update document'
operationId: updateDocument
description: 'Update a document'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
message: string
properties:
message:
type: string
example: string
tags:
- Documents
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
name:
type: string
description: Nome.
example: 'Example Name'
category_id:
type: string
description: 'Categoria. The uuid of an existing record in the document_categories table.'
example: 4cff8889-21cb-3c59-8ef9-4c82ce1c1b1c
file:
type: object
description: Arquivo.
example:
- example1
- example2
properties:
path:
type: string
description: 'Caminho do arquivo. This field is required when file is present.'
example: 'Example File path'
name:
type: string
description: 'Nome do arquivo.'
example: 'Example Name'
extension:
type: string
description: 'Extensão do arquivo.'
example: 'Example File extension'
size:
type: string
description: 'Tamanho do arquivo.'
example: 'Example File size'
documentable_type:
type: string
description: 'Documentable type.'
example: 'Example Documentable type'
enum:
- customer
- work
- work_location
- supplier
- employee
documentable_id:
type: string
description: 'Documentable id.'
example: 'Example Documentable id'
parameters:
-
in: path
name: id
description: 'The ID of the document.'
example: 15
required: true
schema:
type: integer
-
in: path
name: document
description: 'Document ID'
example: 019556e7-2e9f-777c-a177-30bbf0646c32
required: true
schema:
type: string
'/api/documents/{document}':
delete:
summary: 'Delete document'
operationId: deleteDocument
description: 'Delete a document'
parameters: []
responses:
204:
description: ''
content:
application/json:
schema:
type: object
nullable: true
tags:
- Documents
parameters:
-
in: path
name: document
description: 'Document ID'
example: 019556e7-2e9f-777c-a177-30bbf0646c32
required: true
schema:
type: string
/api/employee-roles:
get:
summary: 'List employee roles'
operationId: listEmployeeRoles
description: 'List all employee roles'
parameters:
-
in: query
name: sort_by
description: 'Field to sort by.'
example: created_at
required: false
schema:
type: string
description: 'Field to sort by.'
example: created_at
nullable: true
-
in: query
name: sort_desc
description: 'Sort order (true for descending, false for ascending).'
example: true
required: false
schema:
type: boolean
description: 'Sort order (true for descending, false for ascending).'
example: true
nullable: true
-
in: query
name: page
description: 'Page number for pagination. O campo value deve ser pelo menos 1.'
example: 1
required: false
schema:
type: integer
description: 'Page number for pagination. O campo value deve ser pelo menos 1.'
example: 1
nullable: true
-
in: query
name: per_page
description: 'Number of items per page (max: 100). O campo value deve ser pelo menos 1. O campo value não pode ser superior a 100.'
example: 15
required: false
schema:
type: integer
description: 'Number of items per page (max: 100). O campo value deve ser pelo menos 1. O campo value não pode ser superior a 100.'
example: 15
nullable: true
-
in: query
name: q
description: 'Search query.'
example: Manager
required: false
schema:
type: string
description: 'Search query.'
example: Manager
nullable: true
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
-
id: a1af44a1-0b8d-4582-aff0-a3aaab866815
name: sit
description: null
created_at: null
updated_at: null
-
id: bfc32aba-fc9e-4cc4-b1f4-13173f05ae5e
name: et
description: null
created_at: null
updated_at: null
links:
first: '/?page=1'
last: '/?page=1'
prev: null
next: null
meta:
current_page: 1
from: 1
last_page: 1
links:
-
url: null
label: '« Anterior'
page: null
active: false
-
url: '/?page=1'
label: '1'
page: 1
active: true
-
url: null
label: 'Próximo »'
page: null
active: false
path: /
per_page: 10
to: 2
total: 2
properties:
data:
type: array
example:
-
id: a1af44a1-0b8d-4582-aff0-a3aaab866815
name: sit
description: null
created_at: null
updated_at: null
-
id: bfc32aba-fc9e-4cc4-b1f4-13173f05ae5e
name: et
description: null
created_at: null
updated_at: null
items:
type: object
properties:
id:
type: string
example: a1af44a1-0b8d-4582-aff0-a3aaab866815
name:
type: string
example: sit
description:
type: string
example: null
created_at:
type: string
example: null
updated_at:
type: string
example: null
links:
type: object
properties:
first:
type: string
example: '/?page=1'
last:
type: string
example: '/?page=1'
prev:
type: string
example: null
next:
type: string
example: null
meta:
type: object
properties:
current_page:
type: integer
example: 1
from:
type: integer
example: 1
last_page:
type: integer
example: 1
links:
type: array
example:
-
url: null
label: '« Anterior'
page: null
active: false
-
url: '/?page=1'
label: '1'
page: 1
active: true
-
url: null
label: 'Próximo »'
page: null
active: false
items:
type: object
properties:
url:
type: string
example: null
label:
type: string
example: '« Anterior'
page:
type: string
example: null
active:
type: boolean
example: false
path:
type: string
example: /
per_page:
type: integer
example: 10
to:
type: integer
example: 2
total:
type: integer
example: 2
tags:
- 'Employee Roles'
post:
summary: 'Create employee role'
operationId: createEmployeeRole
description: 'Create a new employee role'
parameters: []
responses:
201:
description: ''
content:
application/json:
schema:
type: object
example:
message: string
properties:
message:
type: string
example: string
tags:
- 'Employee Roles'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
name:
type: string
description: 'Nome. O campo value não pode ser superior a 255 caracteres.'
example: 'Example Name'
description:
type: string
description: Descrição.
example: 'Example Description'
nullable: true
required:
- name
'/api/employee-roles/{employeeRole}':
get:
summary: 'Show employee role'
operationId: showEmployeeRole
description: 'Show an employee role'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
id: 37e1b04c-1946-4cc4-9e1e-0b55c218d5fc
name: et
description: 'Est consequuntur quae voluptates temporibus eos aut.'
created_at: null
updated_at: null
properties:
data:
type: object
properties:
id:
type: string
example: 37e1b04c-1946-4cc4-9e1e-0b55c218d5fc
name:
type: string
example: et
description:
type: string
example: 'Est consequuntur quae voluptates temporibus eos aut.'
created_at:
type: string
example: null
updated_at:
type: string
example: null
tags:
- 'Employee Roles'
put:
summary: 'Update employee role'
operationId: updateEmployeeRole
description: 'Update an employee role'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
message: string
properties:
message:
type: string
example: string
tags:
- 'Employee Roles'
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
name:
type: string
description: 'Nome. O campo value não pode ser superior a 255 caracteres.'
example: 'Example Name'
description:
type: string
description: Descrição.
example: 'Example Description'
nullable: true
delete:
summary: 'Delete employee role'
operationId: deleteEmployeeRole
description: 'Delete an employee role'
parameters: []
responses:
204:
description: ''
content:
application/json:
schema:
type: object
nullable: true
tags:
- 'Employee Roles'
parameters:
-
in: path
name: employeeRole
description: 'Employee Role UUID'
example: tempora
required: true
schema:
type: string
/api/employees:
get:
summary: 'List employees'
operationId: listEmployees
description: 'List all employees'
parameters:
-
in: query
name: sort_by
description: 'Field to sort by.'
example: created_at
required: false
schema:
type: string
description: 'Field to sort by.'
example: created_at
nullable: true
-
in: query
name: sort_desc
description: 'Sort order (true for descending, false for ascending).'
example: true
required: false
schema:
type: boolean
description: 'Sort order (true for descending, false for ascending).'
example: true
nullable: true
-
in: query
name: page
description: 'Page number for pagination. O campo value deve ser pelo menos 1.'
example: 1
required: false
schema:
type: integer
description: 'Page number for pagination. O campo value deve ser pelo menos 1.'
example: 1
nullable: true
-
in: query
name: per_page
description: 'Number of items per page (max: 100). O campo value deve ser pelo menos 1. O campo value não pode ser superior a 100.'
example: 15
required: false
schema:
type: integer
description: 'Number of items per page (max: 100). O campo value deve ser pelo menos 1. O campo value não pode ser superior a 100.'
example: 15
nullable: true
-
in: query
name: q
description: 'Search query.'
example: 'João Silva'
required: false
schema:
type: string
description: 'Search query.'
example: 'João Silva'
nullable: true
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
-
id: 08cc5ae4-7a61-4bdd-a430-b501023590bf
name: 'Jonas Jefferson Godói Filho'
cpf: 382.030.918-48
rg: null
ctps: '588395920'
phone: null
birthdate: '2021-03-27'
email: lucas.vale@example.org
address:
street: null
number: null
complement: null
neighborhood: null
city: null
state: null
zip_code: null
employee_role:
id: null
name: null
created_at: null
updated_at: null
-
id: 75234a07-92fe-44e5-8098-fb2ec797e00b
name: 'Joaquin Erik Rosa Neto'
cpf: 988.319.431-81
rg: null
ctps: null
phone: null
birthdate: '1997-09-14'
email: jmeireles@example.com
address:
street: null
number: null
complement: null
neighborhood: null
city: null
state: null
zip_code: null
employee_role:
id: null
name: null
created_at: null
updated_at: null
links:
first: '/?page=1'
last: '/?page=1'
prev: null
next: null
meta:
current_page: 1
from: 1
last_page: 1
links:
-
url: null
label: '« Anterior'
page: null
active: false
-
url: '/?page=1'
label: '1'
page: 1
active: true
-
url: null
label: 'Próximo »'
page: null
active: false
path: /
per_page: 10
to: 2
total: 2
properties:
data:
type: array
example:
-
id: 08cc5ae4-7a61-4bdd-a430-b501023590bf
name: 'Jonas Jefferson Godói Filho'
cpf: 382.030.918-48
rg: null
ctps: '588395920'
phone: null
birthdate: '2021-03-27'
email: lucas.vale@example.org
address:
street: null
number: null
complement: null
neighborhood: null
city: null
state: null
zip_code: null
employee_role:
id: null
name: null
created_at: null
updated_at: null
-
id: 75234a07-92fe-44e5-8098-fb2ec797e00b
name: 'Joaquin Erik Rosa Neto'
cpf: 988.319.431-81
rg: null
ctps: null
phone: null
birthdate: '1997-09-14'
email: jmeireles@example.com
address:
street: null
number: null
complement: null
neighborhood: null
city: null
state: null
zip_code: null
employee_role:
id: null
name: null
created_at: null
updated_at: null
items:
type: object
properties:
id:
type: string
example: 08cc5ae4-7a61-4bdd-a430-b501023590bf
name:
type: string
example: 'Jonas Jefferson Godói Filho'
cpf:
type: string
example: 382.030.918-48
rg:
type: string
example: null
ctps:
type: string
example: '588395920'
phone:
type: string
example: null
birthdate:
type: string
example: '2021-03-27'
email:
type: string
example: lucas.vale@example.org
address:
type: object
properties:
street:
type: string
example: null
number:
type: string
example: null
complement:
type: string
example: null
neighborhood:
type: string
example: null
city:
type: string
example: null
state:
type: string
example: null
zip_code:
type: string
example: null
employee_role:
type: object
properties:
id:
type: string
example: null
name:
type: string
example: null
created_at:
type: string
example: null
updated_at:
type: string
example: null
links:
type: object
properties:
first:
type: string
example: '/?page=1'
last:
type: string
example: '/?page=1'
prev:
type: string
example: null
next:
type: string
example: null
meta:
type: object
properties:
current_page:
type: integer
example: 1
from:
type: integer
example: 1
last_page:
type: integer
example: 1
links:
type: array
example:
-
url: null
label: '« Anterior'
page: null
active: false
-
url: '/?page=1'
label: '1'
page: 1
active: true
-
url: null
label: 'Próximo »'
page: null
active: false
items:
type: object
properties:
url:
type: string
example: null
label:
type: string
example: '« Anterior'
page:
type: string
example: null
active:
type: boolean
example: false
path:
type: string
example: /
per_page:
type: integer
example: 10
to:
type: integer
example: 2
total:
type: integer
example: 2
tags:
- Employees
post:
summary: 'Create employee'
operationId: createEmployee
description: 'Create a new employee'
parameters: []
responses:
201:
description: ''
content:
application/json:
schema:
type: object
example:
message: string
properties:
message:
type: string
example: string
tags:
- Employees
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
name:
type: string
description: 'Nome. O campo value não pode ser superior a 255 caracteres.'
example: 'Example Name'
cpf:
type: string
description: 'CPF. O campo value deve ser 14 caracteres.'
example: 'Example Cpf'
rg:
type: string
description: 'RG. O campo value não pode ser superior a 20 caracteres.'
example: 'Example Rg'
nullable: true
ctps:
type: string
description: 'CTPS. O campo value não pode ser superior a 20 caracteres.'
example: 'Example Ctps'
nullable: true
phone:
type: string
description: 'Telefone. O campo value não pode ser superior a 20 caracteres.'
example: '(11) 99999-9999'
nullable: true
birthdate:
type: string
description: 'Data de Nascimento. O campo value deve ser uma data válida.'
example: '2024-01-01'
nullable: true
email:
type: string
description: 'E-mail. O campo value deve ser um endereço de e-mail válido.'
example: user@example.com
nullable: true
employee_role_id:
type: string
description: 'Cargo. The uuid of an existing record in the employee_roles table.'
example: 91aec67d-f9a0-4902-bec8-4ac1e2a2b497
address:
type: object
description: Endereço.
example:
- example1
- example2
properties:
street:
type: string
description: Rua.
example: 'Example Address street'
nullable: true
number:
type: string
description: Número.
example: 'Example Address number'
nullable: true
complement:
type: string
description: Complemento.
example: 'Example Address complement'
nullable: true
neighborhood:
type: string
description: Bairro.
example: 'Example Address neighborhood'
nullable: true
city:
type: string
description: Cidade.
example: 'Example Address city'
nullable: true
state:
type: string
description: Estado.
example: 'Example Address state'
nullable: true
zip_code:
type: string
description: CEP.
example: 'Example Address zip code'
nullable: true
nullable: true
required:
- name
- cpf
- employee_role_id
'/api/employees/{id}':
get:
summary: 'Show employee'
operationId: showEmployee
description: 'Show an employee'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
id: 4f7eb6bf-539c-481f-ab81-81990f80ce6b
name: 'Emília Antonella de Freitas'
cpf: 385.649.483-72
rg: '920922945'
ctps: null
phone: null
birthdate: '1982-05-13'
email: null
address:
street: null
number: null
complement: null
neighborhood: null
city: null
state: null
zip_code: null
employee_role:
id: null
name: null
created_at: null
updated_at: null
properties:
data:
type: object
properties:
id:
type: string
example: 4f7eb6bf-539c-481f-ab81-81990f80ce6b
name:
type: string
example: 'Emília Antonella de Freitas'
cpf:
type: string
example: 385.649.483-72
rg:
type: string
example: '920922945'
ctps:
type: string
example: null
phone:
type: string
example: null
birthdate:
type: string
example: '1982-05-13'
email:
type: string
example: null
address:
type: object
properties:
street:
type: string
example: null
number:
type: string
example: null
complement:
type: string
example: null
neighborhood:
type: string
example: null
city:
type: string
example: null
state:
type: string
example: null
zip_code:
type: string
example: null
employee_role:
type: object
properties:
id:
type: string
example: null
name:
type: string
example: null
created_at:
type: string
example: null
updated_at:
type: string
example: null
tags:
- Employees
put:
summary: 'Update employee'
operationId: updateEmployee
description: 'Update an employee'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
message: string
properties:
message:
type: string
example: string
tags:
- Employees
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
name:
type: string
description: 'Nome. O campo value não pode ser superior a 255 caracteres.'
example: 'Example Name'
cpf:
type: string
description: 'CPF. O campo value deve ser 14 caracteres.'
example: 'Example Cpf'
rg:
type: string
description: 'RG. O campo value não pode ser superior a 20 caracteres.'
example: 'Example Rg'
nullable: true
ctps:
type: string
description: 'CTPS. O campo value não pode ser superior a 20 caracteres.'
example: 'Example Ctps'
nullable: true
phone:
type: string
description: 'Telefone. O campo value não pode ser superior a 20 caracteres.'
example: '(11) 99999-9999'
nullable: true
birthdate:
type: string
description: 'Data de Nascimento. O campo value deve ser uma data válida.'
example: '2024-01-01'
nullable: true
email:
type: string
description: 'E-mail. O campo value deve ser um endereço de e-mail válido.'
example: user@example.com
nullable: true
employee_role_id:
type: string
description: 'Cargo. The uuid of an existing record in the employee_roles table.'
example: 72480402-761f-457b-846f-310508e03185
address:
type: object
description: Endereço.
example:
- example1
- example2
properties:
street:
type: string
description: Rua.
example: 'Example Address street'
number:
type: string
description: Número.
example: 'Example Address number'
complement:
type: string
description: Complemento.
example: 'Example Address complement'
neighborhood:
type: string
description: Bairro.
example: 'Example Address neighborhood'
city:
type: string
description: Cidade.
example: 'Example Address city'
state:
type: string
description: Estado.
example: 'Example Address state'
zip_code:
type: string
description: CEP.
example: 'Example Address zip code'
parameters:
-
in: path
name: id
description: 'The ID of the employee.'
example: 8
required: true
schema:
type: integer
-
in: path
name: employee
description: 'Employee ID'
example: 019556e7-2e9f-777c-a177-30bbf0646c32
required: true
schema:
type: string
'/api/employees/{employee}':
delete:
summary: 'Delete employee'
operationId: deleteEmployee
description: 'Delete an employee'
parameters: []
responses:
204:
description: ''
content:
application/json:
schema:
type: object
nullable: true
tags:
- Employees
parameters:
-
in: path
name: employee
description: 'Employee ID'
example: 019556e7-2e9f-777c-a177-30bbf0646c32
required: true
schema:
type: string
/api/reports/cash-flow:
get:
summary: ''
operationId: getApiReportsCashFlow
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- Endpoints
security: []
/api/up:
get:
summary: ''
operationId: getApiUp
description: ''
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
message: 'API is running'
properties:
message:
type: string
example: 'API is running'
tags:
- Endpoints
security: []
'/api/files/{uuid}':
delete:
summary: 'Delete file'
operationId: deleteFile
description: 'Delete a file'
parameters: []
responses:
204:
description: ''
content:
application/json:
schema:
type: object
nullable: true
tags:
- Files
parameters:
-
in: path
name: uuid
description: ''
example: 5b81ca04-a284-32f0-97d2-e2e98cc44326
required: true
schema:
type: integer
'/api/files/{uuid}/info':
get:
summary: 'Get file info'
operationId: getFileInfo
description: 'Get file information'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
uuid: string
name: string
size: integer
type: string
extension: string
path: string
properties:
uuid:
type: string
example: string
name:
type: string
example: string
size:
type: string
example: integer
type:
type: string
example: string
extension:
type: string
example: string
path:
type: string
example: string
tags:
- Files
parameters:
-
in: path
name: uuid
description: ''
example: 64435668-489e-391c-a24e-a7c743074c64
required: true
schema:
type: integer
'/api/files/{uuid}/download':
get:
summary: 'Generate download URL'
operationId: generateDownloadURL
description: 'Generate a signed URL for downloading a file'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
url: string
filename: string
size: integer
type: string
properties:
url:
type: string
example: string
filename:
type: string
example: string
size:
type: string
example: integer
type:
type: string
example: string
tags:
- Files
parameters:
-
in: path
name: uuid
description: 'The UUID of the file to download'
example: 5a2eba9b-cbf8-3bde-b264-66c3d98365fa
required: true
schema:
type: string
/api/files/generate-upload-url:
post:
summary: 'Generate upload URL'
operationId: generateUploadURL
description: 'Generate a signed URL for uploading a file'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
url: string
path: string
headers: array
properties:
url:
type: string
example: string
path:
type: string
example: string
headers:
type: string
example: array
tags:
- Files
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
path:
type: string
description: Path.
example: 'Example Path'
mimetype:
type: string
description: Mimetype.
example: 'Example Mimetype'
public:
type: boolean
description: Public.
example: false
required:
- path
- mimetype
- public
/api/files/generate-bulk-upload-url:
post:
summary: 'Generate bulk upload URL'
operationId: generateBulkUploadURL
description: 'Generate signed URLs for uploading multiple files'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: array
items:
type: object
properties:
url:
type: string
example: string
path:
type: string
example: string
headers:
type: string
example: array
example:
-
url: string
path: string
headers: array
tags:
- Files
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
files:
type: array
description: Files.
example:
- null
- null
items:
type: object
properties:
path:
type: string
description: 'Files * path.'
example: 'Example Files * path'
mimetype:
type: string
description: 'Files * mimetype.'
example: 'Example Files * mimetype'
public:
type: boolean
description: 'Files * public.'
example: false
required:
- path
- mimetype
- public
required:
- files
/api/imports/nfe/products:
post:
summary: 'Create NFe Import'
operationId: createNFeImport
description: 'Upload and process a Brazilian NFe (Nota Fiscal Eletrônica) XML file. The file should be uploaded to S3 first, then this endpoint processes it asynchronously.'
parameters: []
responses:
201:
description: 'Import created successfully'
content:
application/json:
schema:
type: object
example:
import_id: 9d2f8e4a-1b3c-4d5e-6f7a-8b9c0d1e2f3a
status: pending
channel: import-progress.9d2f8e4a-1b3c-4d5e-6f7a-8b9c0d1e2f3a
properties:
import_id:
type: string
example: 9d2f8e4a-1b3c-4d5e-6f7a-8b9c0d1e2f3a
status:
type: string
example: pending
channel:
type: string
example: import-progress.9d2f8e4a-1b3c-4d5e-6f7a-8b9c0d1e2f3a
404:
description: 'File not found in S3'
content:
application/json:
schema:
type: object
example:
error: 'Arquivo não encontrado no S3'
properties:
error:
type: string
example: 'Arquivo não encontrado no S3'
422:
description: 'Invalid XML or not a valid NFe'
content:
application/json:
schema:
type: object
example:
error: 'Arquivo XML inválido ou não é uma NFe'
properties:
error:
type: string
example: 'Arquivo XML inválido ou não é uma NFe'
tags:
- Import
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
s3_file_path:
type: string
description: 'Path to the NFe XML file in S3 storage'
example: imports/nfe_12345.xml
original_filename:
type: string
description: 'Original filename of the uploaded NFe'
example: nota_fiscal_001.xml
import_type:
type: string
description: 'Type of import (currently only "nfe" is supported)'
example: nfe
required:
- s3_file_path
- original_filename
- import_type
/api/imports:
get:
summary: 'List User Imports'
operationId: listUserImports
description: 'List all NFe imports for the authenticated user with filtering and pagination options.'
parameters:
-
in: query
name: sort_by
description: 'Field to sort by.'
example: created_at
required: false
schema:
type: string
description: 'Field to sort by.'
example: created_at
nullable: true
-
in: query
name: sort_desc
description: 'Sort order (true for descending, false for ascending).'
example: true
required: false
schema:
type: boolean
description: 'Sort order (true for descending, false for ascending).'
example: true
nullable: true
-
in: query
name: page
description: 'Page number for pagination. O campo value deve ser pelo menos 1.'
example: 1
required: false
schema:
type: integer
description: 'Page number for pagination. O campo value deve ser pelo menos 1.'
example: 1
nullable: true
-
in: query
name: per_page
description: 'Number of imports per page. O campo value deve ser pelo menos 1. O campo value não pode ser superior a 100.'
example: 15
required: false
schema:
type: integer
description: 'Number of imports per page. O campo value deve ser pelo menos 1. O campo value não pode ser superior a 100.'
example: 15
-
in: query
name: status
description: 'Filter imports by status (pending, processing, completed, failed).'
example: completed
required: false
schema:
type: string
description: 'Filter imports by status (pending, processing, completed, failed).'
example: completed
enum:
- pending
- processing
- completed
- failed
-
in: query
name: import_type
description: 'Filter imports by type.'
example: nfe
required: false
schema:
type: string
description: 'Filter imports by type.'
example: nfe
enum:
- initial_load
- stock_update
- nfe
responses:
200:
description: 'Imports retrieved successfully'
content:
application/json:
schema:
type: object
example:
data:
-
id: 9d2f8e4a-1b3c-4d5e-6f7a-8b9c0d1e2f3a
status: completed
import_type: nfe
original_filename: nota_fiscal_001.xml
nfe_number: '123456'
nfe_date: '2023-12-01'
total_products: 15
processed_products: 15
progress_percentage: 100.0
imported_at: '2023-12-01T10:30:00.000Z'
supplier:
name: 'Fornecedor Ltda'
document: '12345678000199'
properties:
data:
type: array
example:
-
id: 9d2f8e4a-1b3c-4d5e-6f7a-8b9c0d1e2f3a
status: completed
import_type: nfe
original_filename: nota_fiscal_001.xml
nfe_number: '123456'
nfe_date: '2023-12-01'
total_products: 15
processed_products: 15
progress_percentage: 100
imported_at: '2023-12-01T10:30:00.000Z'
supplier:
name: 'Fornecedor Ltda'
document: '12345678000199'
items:
type: object
properties:
id:
type: string
example: 9d2f8e4a-1b3c-4d5e-6f7a-8b9c0d1e2f3a
status:
type: string
example: completed
import_type:
type: string
example: nfe
original_filename:
type: string
example: nota_fiscal_001.xml
nfe_number:
type: string
example: '123456'
nfe_date:
type: string
example: '2023-12-01'
total_products:
type: integer
example: 15
processed_products:
type: integer
example: 15
progress_percentage:
type: number
example: 100.0
imported_at:
type: string
example: '2023-12-01T10:30:00.000Z'
supplier:
type: object
properties:
name:
type: string
example: 'Fornecedor Ltda'
document:
type: string
example: '12345678000199'
tags:
- Import
'/api/imports/{importId}':
get:
summary: 'Get Import Details'
operationId: getImportDetails
description: 'Retrieve detailed information about a specific NFe import, including progress and supplier data.'
parameters: []
responses:
200:
description: 'Import details retrieved successfully'
content:
application/json:
schema:
type: object
example:
import_id: 9d2f8e4a-1b3c-4d5e-6f7a-8b9c0d1e2f3a
status: completed
import_type: nfe
original_filename: nota_fiscal_001.xml
nfe_number: '123456'
nfe_date: '2023-12-01'
total_products: 15
processed_products: 10
progress_percentage: 66.67
imported_by: 'João Silva'
imported_at: '2023-12-01T10:30:00.000Z'
supplier:
id: supplier-uuid
name: 'Fornecedor Ltda'
document: '12345678000199'
channel: import-progress.9d2f8e4a-1b3c-4d5e-6f7a-8b9c0d1e2f3a
properties:
import_id:
type: string
example: 9d2f8e4a-1b3c-4d5e-6f7a-8b9c0d1e2f3a
status:
type: string
example: completed
import_type:
type: string
example: nfe
original_filename:
type: string
example: nota_fiscal_001.xml
nfe_number:
type: string
example: '123456'
nfe_date:
type: string
example: '2023-12-01'
total_products:
type: integer
example: 15
processed_products:
type: integer
example: 10
progress_percentage:
type: number
example: 66.67
imported_by:
type: string
example: 'João Silva'
imported_at:
type: string
example: '2023-12-01T10:30:00.000Z'
supplier:
type: object
properties:
id:
type: string
example: supplier-uuid
name:
type: string
example: 'Fornecedor Ltda'
document:
type: string
example: '12345678000199'
channel:
type: string
example: import-progress.9d2f8e4a-1b3c-4d5e-6f7a-8b9c0d1e2f3a
tags:
- Import
parameters:
-
in: path
name: importId
description: ''
example: repudiandae
required: true
schema:
type: string
'/api/imports/{importId}/products':
get:
summary: 'Get Import Products'
operationId: getImportProducts
description: 'List all products from a specific NFe import with filtering and pagination options.'
parameters:
-
in: query
name: sort_by
description: 'Field to sort by.'
example: created_at
required: false
schema:
type: string
description: 'Field to sort by.'
example: created_at
nullable: true
-
in: query
name: sort_desc
description: 'Sort order (true for descending, false for ascending).'
example: true
required: false
schema:
type: boolean
description: 'Sort order (true for descending, false for ascending).'
example: true
nullable: true
-
in: query
name: page
description: 'Page number for pagination. O campo value deve ser pelo menos 1.'
example: 1
required: false
schema:
type: integer
description: 'Page number for pagination. O campo value deve ser pelo menos 1.'
example: 1
nullable: true
-
in: query
name: per_page
description: 'Number of products per page. O campo value deve ser pelo menos 1. O campo value não pode ser superior a 100.'
example: 15
required: false
schema:
type: integer
description: 'Number of products per page. O campo value deve ser pelo menos 1. O campo value não pode ser superior a 100.'
example: 15
-
in: query
name: status
description: 'Filter products by processing status (pending, processed).'
example: pending
required: false
schema:
type: string
description: 'Filter products by processing status (pending, processed).'
example: pending
enum:
- pending
- processed
nullable: true
-
in: query
name: q
description: 'Search products by name / code / EAN. O campo value não pode ser superior a 255 caracteres.'
example: 'Produto ABC'
required: false
schema:
type: string
description: 'Search products by name / code / EAN. O campo value não pode ser superior a 255 caracteres.'
example: 'Produto ABC'
nullable: true
responses:
200:
description: 'Products retrieved successfully'
content:
application/json:
schema:
type: object
example:
import:
id: 9d2f8e4a-1b3c-4d5e-6f7a-8b9c0d1e2f3a
total_products: 15
processed_products: 10
progress_percentage: 66.67
products:
data:
-
id: product-uuid
supplier_product_code: ABC123
ean_code: '7891234567890'
name: 'Nome do Produto'
unit: UN
quantity: 10
unit_price: 15.5
total_price: 155.0
is_processed: false
system_product: null
linked_at: null
linked_by: null
pagination:
current_page: 1
per_page: 15
total: 15
last_page: 1
properties:
import:
type: object
properties:
id:
type: string
example: 9d2f8e4a-1b3c-4d5e-6f7a-8b9c0d1e2f3a
total_products:
type: integer
example: 15
processed_products:
type: integer
example: 10
progress_percentage:
type: number
example: 66.67
products:
type: object
properties:
data:
type: array
example:
-
id: product-uuid
supplier_product_code: ABC123
ean_code: '7891234567890'
name: 'Nome do Produto'
unit: UN
quantity: 10
unit_price: 15.5
total_price: 155
is_processed: false
system_product: null
linked_at: null
linked_by: null
items:
type: object
properties:
id:
type: string
example: product-uuid
supplier_product_code:
type: string
example: ABC123
ean_code:
type: string
example: '7891234567890'
name:
type: string
example: 'Nome do Produto'
unit:
type: string
example: UN
quantity:
type: integer
example: 10
unit_price:
type: number
example: 15.5
total_price:
type: number
example: 155.0
is_processed:
type: boolean
example: false
system_product:
type: string
example: null
linked_at:
type: string
example: null
linked_by:
type: string
example: null
pagination:
type: object
properties:
current_page:
type: integer
example: 1
per_page:
type: integer
example: 15
total:
type: integer
example: 15
last_page:
type: integer
example: 1
tags:
- Import
parameters:
-
in: path
name: importId
description: ''
example: optio
required: true
schema:
type: string
'/api/imports/{importId}/products/link':
post:
summary: 'Link Products'
operationId: linkProducts
description: 'Inicia, de forma assíncrona, a vinculação de produtos do fornecedor a produtos do sistema ou criação de novos itens no estoque. Retorna 202 com o canal para acompanhar o progresso.'
parameters: []
responses:
202:
description: 'Linking accepted and started asynchronously'
content:
application/json:
schema:
type: object
example:
message: 'Vinculação de produtos iniciada com sucesso'
total_mappings: 2
channel: 'imports.{import-uuid}'
properties:
message:
type: string
example: 'Vinculação de produtos iniciada com sucesso'
total_mappings:
type: integer
example: 2
channel:
type: string
example: 'imports.{import-uuid}'
422:
description: 'Error linking products'
content:
application/json:
schema:
type: object
example:
error: 'Erro ao vincular produtos: Product not found'
properties:
error:
type: string
example: 'Erro ao vincular produtos: Product not found'
tags:
- Import
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
mappings:
type: array
description: 'Array of product mappings'
example:
- ratione
items:
type: string
required:
- mappings
parameters:
-
in: path
name: importId
description: ''
example: labore
required: true
schema:
type: string
/api/notifications:
get:
summary: 'List notifications'
operationId: listNotifications
description: 'List user notifications'
parameters:
-
in: query
name: sort_by
description: 'Field to sort by.'
example: created_at
required: false
schema:
type: string
description: 'Field to sort by.'
example: created_at
nullable: true
-
in: query
name: sort_desc
description: 'Sort order (true for descending, false for ascending).'
example: true
required: false
schema:
type: boolean
description: 'Sort order (true for descending, false for ascending).'
example: true
nullable: true
-
in: query
name: page
description: 'Page number for pagination. O campo value deve ser pelo menos 1.'
example: 1
required: false
schema:
type: integer
description: 'Page number for pagination. O campo value deve ser pelo menos 1.'
example: 1
nullable: true
-
in: query
name: per_page
description: 'Number of items per page (max: 100). O campo value deve ser pelo menos 1. O campo value não pode ser superior a 100.'
example: 15
required: false
schema:
type: integer
description: 'Number of items per page (max: 100). O campo value deve ser pelo menos 1. O campo value não pode ser superior a 100.'
example: 15
-
in: query
name: module
description: 'Filter by module name. O campo value não pode ser superior a 100 caracteres.'
example: CashFlow
required: false
schema:
type: string
description: 'Filter by module name. O campo value não pode ser superior a 100 caracteres.'
example: CashFlow
nullable: true
-
in: query
name: type
description: 'Filter by type (ex.: info, success, warning, error). O campo value não pode ser superior a 100 caracteres.'
example: success
required: false
schema:
type: string
description: 'Filter by type (ex.: info, success, warning, error). O campo value não pode ser superior a 100 caracteres.'
example: success
nullable: true
-
in: query
name: priority
description: 'Filter by priority number. O campo value deve ser pelo menos 0. O campo value não pode ser superior a 255.'
example: 10
required: false
schema:
type: integer
description: 'Filter by priority number. O campo value deve ser pelo menos 0. O campo value não pode ser superior a 255.'
example: 10
nullable: true
-
in: query
name: unread_only
description: 'Only unread notifications when true.'
example: true
required: false
schema:
type: boolean
description: 'Only unread notifications when true.'
example: true
nullable: true
-
in: query
name: read_status
description: 'Filter by read status (all, read, unread).'
example: unread
required: false
schema:
type: string
description: 'Filter by read status (all, read, unread).'
example: unread
enum:
- all
- read
- unread
nullable: true
-
in: query
name: date_start
description: 'Filter notifications created from this date (YYYY-MM-DD). O campo value deve ser uma data válida.'
example: '2024-01-01'
required: false
schema:
type: string
description: 'Filter notifications created from this date (YYYY-MM-DD). O campo value deve ser uma data válida.'
example: '2024-01-01'
nullable: true
-
in: query
name: date_end
description: 'Filter notifications created until this date (YYYY-MM-DD). O campo value deve ser uma data válida. O campo value deve ser uma data posterior ou igual a date_start.'
example: '2024-12-31'
required: false
schema:
type: string
description: 'Filter notifications created until this date (YYYY-MM-DD). O campo value deve ser uma data válida. O campo value deve ser uma data posterior ou igual a date_start.'
example: '2024-12-31'
nullable: true
-
in: query
name: q
description: 'Search by title/message. O campo value não pode ser superior a 255 caracteres.'
example: 'erro faturamento'
required: false
schema:
type: string
description: 'Search by title/message. O campo value não pode ser superior a 255 caracteres.'
example: 'erro faturamento'
nullable: true
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- Notifications
/api/notifications/mark-as-read:
post:
summary: 'Mark notifications as read'
operationId: markNotificationsAsRead
description: 'Mark one or many notifications as read'
parameters: []
responses: { }
tags:
- Notifications
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
notifications:
type: array
description: 'notificação. O campo value deve ser um UUID válido.'
example:
- 'Example Notifications *'
items:
type: string
required:
- notifications
/api/notifications/mark-as-unread:
post:
summary: 'Mark notifications as unread'
operationId: markNotificationsAsUnread
description: 'Mark one or many notifications as unread'
parameters: []
responses: { }
tags:
- Notifications
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
notifications:
type: array
description: 'notificação. O campo value deve ser um UUID válido.'
example:
- 'Example Notifications *'
items:
type: string
required:
- notifications
/api/notifications/mark-all-as-read:
post:
summary: 'Mark all notifications as read'
operationId: markAllNotificationsAsRead
description: 'Mark all user notifications as read'
parameters: []
responses: { }
tags:
- Notifications
/api/notifications/unread-count:
get:
summary: 'Unread notifications count'
operationId: unreadNotificationsCount
description: 'Count of unread notifications for the user'
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- Notifications
/api/payment-receipts:
get:
summary: 'List payment receipts'
operationId: listPaymentReceipts
description: 'List all payment receipts with filters'
parameters:
-
in: query
name: sort_by
description: 'Field to sort by.'
example: created_at
required: false
schema:
type: string
description: 'Field to sort by.'
example: created_at
nullable: true
-
in: query
name: sort_desc
description: 'Sort order (true for descending, false for ascending).'
example: true
required: false
schema:
type: boolean
description: 'Sort order (true for descending, false for ascending).'
example: true
nullable: true
-
in: query
name: page
description: 'Page number for pagination. O campo value deve ser pelo menos 1.'
example: 1
required: false
schema:
type: integer
description: 'Page number for pagination. O campo value deve ser pelo menos 1.'
example: 1
nullable: true
-
in: query
name: per_page
description: 'Number of items per page (max: 100). O campo value deve ser pelo menos 1. O campo value não pode ser superior a 100.'
example: 15
required: false
schema:
type: integer
description: 'Number of items per page (max: 100). O campo value deve ser pelo menos 1. O campo value não pode ser superior a 100.'
example: 15
-
in: query
name: q
description: 'Search query (searches in receiver name, document, and receipt number).'
example: 'João Silva'
required: false
schema:
type: string
description: 'Search query (searches in receiver name, document, and receipt number).'
example: 'João Silva'
nullable: true
-
in: query
name: employee_id
description: 'Filter by employee UUID. The uuid of an existing record in the employees table.'
example: a01edd80-bf3e-40f7-8613-ccb4be5831b3
required: false
schema:
type: string
description: 'Filter by employee UUID. The uuid of an existing record in the employees table.'
example: a01edd80-bf3e-40f7-8613-ccb4be5831b3
-
in: query
name: receiver_type
description: 'Filter by receiver type.'
example: employee
required: false
schema:
type: string
description: 'Filter by receiver type.'
example: employee
enum:
- employee
- custom
-
in: query
name: start_date
description: 'Filter by issue date (start). O campo value deve ser uma data válida.'
example: '2025-01-01'
required: false
schema:
type: string
description: 'Filter by issue date (start). O campo value deve ser uma data válida.'
example: '2025-01-01'
-
in: query
name: end_date
description: 'Filter by issue date (end). O campo value deve ser uma data válida. O campo value deve ser uma data posterior ou igual a start_date.'
example: '2025-12-31'
required: false
schema:
type: string
description: 'Filter by issue date (end). O campo value deve ser uma data válida. O campo value deve ser uma data posterior ou igual a start_date.'
example: '2025-12-31'
-
in: query
name: min_amount
description: 'Filter by minimum amount. O campo value deve ser pelo menos 0.'
example: 100.0
required: false
schema:
type: number
description: 'Filter by minimum amount. O campo value deve ser pelo menos 0.'
example: 100.0
-
in: query
name: max_amount
description: 'Filter by maximum amount. O campo value deve ser pelo menos 0.'
example: 1000.0
required: false
schema:
type: number
description: 'Filter by maximum amount. O campo value deve ser pelo menos 0.'
example: 1000.0
-
in: query
name: payment_method
description: 'Filter by payment method.'
example: PIX
required: false
schema:
type: string
description: 'Filter by payment method.'
example: PIX
-
in: query
name: city
description: 'Filter by city.'
example: 'São Paulo'
required: false
schema:
type: string
description: 'Filter by city.'
example: 'São Paulo'
-
in: query
name: search
description: ''
example: quia
required: false
schema:
type: string
description: ''
example: quia
-
in: query
name: document
description: ''
example: magnam
required: false
schema:
type: string
description: ''
example: magnam
-
in: query
name: work_id
description: 'Filter by work UUID. O campo value deve ser um UUID válido. The uuid of an existing record in the works table.'
example: a01edd80-bf3e-40f7-8613-ccb4be5831b3
required: false
schema:
type: string
description: 'Filter by work UUID. O campo value deve ser um UUID válido. The uuid of an existing record in the works table.'
example: a01edd80-bf3e-40f7-8613-ccb4be5831b3
nullable: true
-
in: query
name: bank_account_id
description: 'Filter by bank account UUID. O campo value deve ser um UUID válido. The uuid of an existing record in the bank_accounts table.'
example: a01edd80-bf3e-40f7-8613-ccb4be5831b3
required: false
schema:
type: string
description: 'Filter by bank account UUID. O campo value deve ser um UUID válido. The uuid of an existing record in the bank_accounts table.'
example: a01edd80-bf3e-40f7-8613-ccb4be5831b3
nullable: true
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
-
id: 832e97cd-2fab-3001-ab25-0dcf9be97c2f
receipt_number: REC-4940
receiver_type: employee
receiver:
id: null
name: 'Elmira Kemmer'
document: 644.578.702-20
payment:
amount: 4619
amount_in_words: 'Valor por extenso de teste'
method: check
description: 'Temporibus quo beatae dicta minima sunt fuga sit.'
issuer:
name: McGlynn-Leffler
document: 53.042.871/7166-39
issue:
date: '2026-02-23'
city: 'New Damionfort'
state: SC
created_by:
id: a158b8fc-4e12-450d-89a5-d17a529ce527
name: 'Cecilia Graham'
created_at: null
updated_at: null
-
id: 949ddca8-3424-3e75-8a89-a72a88d7bd4b
receipt_number: REC-3599
receiver_type: custom
receiver:
id: null
name: 'Prof. Sean Terry MD'
document: 240.046.750-52
payment:
amount: 4322.62
amount_in_words: 'Valor por extenso de teste'
method: pix
description: 'Reprehenderit sapiente tempora consequatur quis repudiandae voluptate.'
issuer:
name: Legros-Lindgren
document: 54.872.424/5546-23
issue:
date: '2026-03-11'
city: Coryside
state: SC
created_by:
id: a158b8fc-573a-4bba-bbb1-1a0e1e64843e
name: 'Mason Gibson PhD'
created_at: null
updated_at: null
pagination:
total: 2
count: 2
per_page: 10
current_page: 1
total_pages: 1
has_more_pages: false
links:
first: '/?page=1'
last: '/?page=1'
prev: null
next: null
meta:
current_page: 1
from: 1
last_page: 1
links:
-
url: null
label: '« Anterior'
page: null
active: false
-
url: '/?page=1'
label: '1'
page: 1
active: true
-
url: null
label: 'Próximo »'
page: null
active: false
path: /
per_page: 10
to: 2
total: 2
properties:
data:
type: array
example:
-
id: 832e97cd-2fab-3001-ab25-0dcf9be97c2f
receipt_number: REC-4940
receiver_type: employee
receiver:
id: null
name: 'Elmira Kemmer'
document: 644.578.702-20
payment:
amount: 4619
amount_in_words: 'Valor por extenso de teste'
method: check
description: 'Temporibus quo beatae dicta minima sunt fuga sit.'
issuer:
name: McGlynn-Leffler
document: 53.042.871/7166-39
issue:
date: '2026-02-23'
city: 'New Damionfort'
state: SC
created_by:
id: a158b8fc-4e12-450d-89a5-d17a529ce527
name: 'Cecilia Graham'
created_at: null
updated_at: null
-
id: 949ddca8-3424-3e75-8a89-a72a88d7bd4b
receipt_number: REC-3599
receiver_type: custom
receiver:
id: null
name: 'Prof. Sean Terry MD'
document: 240.046.750-52
payment:
amount: 4322.62
amount_in_words: 'Valor por extenso de teste'
method: pix
description: 'Reprehenderit sapiente tempora consequatur quis repudiandae voluptate.'
issuer:
name: Legros-Lindgren
document: 54.872.424/5546-23
issue:
date: '2026-03-11'
city: Coryside
state: SC
created_by:
id: a158b8fc-573a-4bba-bbb1-1a0e1e64843e
name: 'Mason Gibson PhD'
created_at: null
updated_at: null
items:
type: object
properties:
id:
type: string
example: 832e97cd-2fab-3001-ab25-0dcf9be97c2f
receipt_number:
type: string
example: REC-4940
receiver_type:
type: string
example: employee
receiver:
type: object
properties:
id:
type: string
example: null
name:
type: string
example: 'Elmira Kemmer'
document:
type: string
example: 644.578.702-20
payment:
type: object
properties:
amount:
type: integer
example: 4619
amount_in_words:
type: string
example: 'Valor por extenso de teste'
method:
type: string
example: check
description:
type: string
example: 'Temporibus quo beatae dicta minima sunt fuga sit.'
issuer:
type: object
properties:
name:
type: string
example: McGlynn-Leffler
document:
type: string
example: 53.042.871/7166-39
issue:
type: object
properties:
date:
type: string
example: '2026-02-23'
city:
type: string
example: 'New Damionfort'
state:
type: string
example: SC
created_by:
type: object
properties:
id:
type: string
example: a158b8fc-4e12-450d-89a5-d17a529ce527
name:
type: string
example: 'Cecilia Graham'
created_at:
type: string
example: null
updated_at:
type: string
example: null
pagination:
type: object
properties:
total:
type: integer
example: 2
count:
type: integer
example: 2
per_page:
type: integer
example: 10
current_page:
type: integer
example: 1
total_pages:
type: integer
example: 1
has_more_pages:
type: boolean
example: false
links:
type: object
properties:
first:
type: string
example: '/?page=1'
last:
type: string
example: '/?page=1'
prev:
type: string
example: null
next:
type: string
example: null
meta:
type: object
properties:
current_page:
type: integer
example: 1
from:
type: integer
example: 1
last_page:
type: integer
example: 1
links:
type: array
example:
-
url: null
label: '« Anterior'
page: null
active: false
-
url: '/?page=1'
label: '1'
page: 1
active: true
-
url: null
label: 'Próximo »'
page: null
active: false
items:
type: object
properties:
url:
type: string
example: null
label:
type: string
example: '« Anterior'
page:
type: string
example: null
active:
type: boolean
example: false
path:
type: string
example: /
per_page:
type: integer
example: 10
to:
type: integer
example: 2
total:
type: integer
example: 2
tags:
- 'Payment Receipts'
post:
summary: 'Create payment receipt'
operationId: createPaymentReceipt
description: 'Create a new payment receipt'
parameters: []
responses:
201:
description: ''
content:
application/json:
schema:
type: object
example:
message: string
properties:
message:
type: string
example: string
tags:
- 'Payment Receipts'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
receiver_type:
type: string
description: 'Tipo de Recebedor.'
example: 'Example Receiver type'
enum:
- employee
- custom
employee_id:
type: string
description: 'Funcionário. This field is required when receiver_type is employee. The uuid of an existing record in the employees table.'
example: b0bd6604-ee49-4c1f-8069-c78d46a7860a
nullable: true
receiver_name:
type: string
description: 'Nome do Recebedor. This field is required when receiver_type is custom. O campo value não pode ser superior a 255 caracteres.'
example: 'Example Name'
nullable: true
receiver_document:
type: string
description: 'Documento do Recebedor. This field is required when receiver_type is custom. O campo value não pode ser superior a 255 caracteres.'
example: 'Example Receiver document'
nullable: true
amount:
type: number
description: 'Valor. O campo value deve ser pelo menos 0.01.'
example: 1.0
amount_in_words:
type: string
description: 'Valor por Extenso.'
example: 'Example Amount in words'
payment_method:
type: string
description: 'Método de Pagamento.'
example: 'Example Payment method'
enum:
- pix
- bank_transfer
- cash
- check
description:
type: string
description: Descrição.
example: 'Example Description'
issuer_name:
type: string
description: 'Nome do Emissor. O campo value não pode ser superior a 255 caracteres.'
example: 'Example Name'
issuer_document:
type: string
description: 'Documento do Emissor. O campo value não pode ser superior a 255 caracteres.'
example: 'Example Issuer document'
issue_date:
type: string
description: 'Data de Emissão. O campo value deve ser uma data válida. O campo value deve ser uma data anterior ou igual a today.'
example: '2024-01-01'
city:
type: string
description: 'Cidade. O campo value não pode ser superior a 255 caracteres.'
example: 'Example City'
state:
type: string
description: 'Estado. O campo value não pode ser superior a 2 caracteres.'
example: 'Example State'
work_id:
type: string
description: 'Obra. O campo value deve ser um UUID válido. The uuid of an existing record in the works table.'
example: 1c8b8666-1a61-394b-a3ec-d0ee4730a8de
nullable: true
bank_account_id:
type: string
description: 'Conta Bancária. O campo value deve ser um UUID válido. The uuid of an existing record in the bank_accounts table.'
example: d58c21be-d6d4-36f1-b58d-59ff23295646
nullable: true
required:
- receiver_type
- amount
- payment_method
- description
- issuer_name
- issuer_document
- issue_date
- city
- state
'/api/payment-receipts/{receipt}':
get:
summary: 'Show payment receipt'
operationId: showPaymentReceipt
description: 'Show a payment receipt'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
id: b51b768c-6c5c-3409-b759-255204f339cf
receipt_number: REC-5332
receiver_type: custom
receiver:
id: null
name: 'Ms. Shaylee Harris DDS'
document: 113.235.772-01
payment:
amount: 4441.04
amount_in_words: 'Valor por extenso de teste'
method: pix
description: 'Aut sit commodi ut sint consectetur consequatur.'
issuer:
name: 'King and Sons'
document: 26.928.593/6281-14
issue:
date: '2026-03-05'
city: Lynchville
state: RS
created_by:
id: a158b8fc-5c45-4cca-9387-83abec280e99
name: 'Micheal Spencer I'
created_at: null
updated_at: null
properties:
data:
type: object
properties:
id:
type: string
example: b51b768c-6c5c-3409-b759-255204f339cf
receipt_number:
type: string
example: REC-5332
receiver_type:
type: string
example: custom
receiver:
type: object
properties:
id:
type: string
example: null
name:
type: string
example: 'Ms. Shaylee Harris DDS'
document:
type: string
example: 113.235.772-01
payment:
type: object
properties:
amount:
type: number
example: 4441.04
amount_in_words:
type: string
example: 'Valor por extenso de teste'
method:
type: string
example: pix
description:
type: string
example: 'Aut sit commodi ut sint consectetur consequatur.'
issuer:
type: object
properties:
name:
type: string
example: 'King and Sons'
document:
type: string
example: 26.928.593/6281-14
issue:
type: object
properties:
date:
type: string
example: '2026-03-05'
city:
type: string
example: Lynchville
state:
type: string
example: RS
created_by:
type: object
properties:
id:
type: string
example: a158b8fc-5c45-4cca-9387-83abec280e99
name:
type: string
example: 'Micheal Spencer I'
created_at:
type: string
example: null
updated_at:
type: string
example: null
tags:
- 'Payment Receipts'
put:
summary: 'Update payment receipt'
operationId: updatePaymentReceipt
description: 'Update a payment receipt'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
message: string
properties:
message:
type: string
example: string
tags:
- 'Payment Receipts'
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
receiver_type:
type: string
description: 'Tipo de Recebedor.'
example: 'Example Receiver type'
enum:
- employee
- custom
employee_id:
type: string
description: 'Funcionário. This field is required when receiver_type is employee. The uuid of an existing record in the employees table.'
example: 261f77f1-16a5-414c-b229-de365d70aaec
nullable: true
receiver_name:
type: string
description: 'Nome do Recebedor. This field is required when receiver_type is custom. O campo value não pode ser superior a 255 caracteres.'
example: 'Example Name'
nullable: true
receiver_document:
type: string
description: 'Documento do Recebedor. This field is required when receiver_type is custom. O campo value não pode ser superior a 255 caracteres.'
example: 'Example Receiver document'
nullable: true
amount:
type: number
description: 'Valor. O campo value deve ser pelo menos 0.01.'
example: 1.0
amount_in_words:
type: string
description: 'Valor por Extenso.'
example: 'Example Amount in words'
payment_method:
type: string
description: 'Método de Pagamento.'
example: 'Example Payment method'
enum:
- pix
- bank_transfer
- cash
- check
description:
type: string
description: Descrição.
example: 'Example Description'
issuer_name:
type: string
description: 'Nome do Emissor. O campo value não pode ser superior a 255 caracteres.'
example: 'Example Name'
issuer_document:
type: string
description: 'Documento do Emissor. O campo value não pode ser superior a 255 caracteres.'
example: 'Example Issuer document'
issue_date:
type: string
description: 'Data de Emissão. O campo value deve ser uma data válida. O campo value deve ser uma data anterior ou igual a today.'
example: '2024-01-01'
city:
type: string
description: 'Cidade. O campo value não pode ser superior a 255 caracteres.'
example: 'Example City'
state:
type: string
description: 'Estado. O campo value não pode ser superior a 2 caracteres.'
example: 'Example State'
work_id:
type: string
description: 'Obra. O campo value deve ser um UUID válido. The uuid of an existing record in the works table.'
example: 5b752018-8c53-34d1-a18f-e02b449132ca
nullable: true
bank_account_id:
type: string
description: 'Conta Bancária. O campo value deve ser um UUID válido. The uuid of an existing record in the bank_accounts table.'
example: 59e2f1eb-1735-38b7-97fc-b16d4dceec5f
nullable: true
delete:
summary: 'Delete payment receipt'
operationId: deletePaymentReceipt
description: 'Delete a payment receipt'
parameters: []
responses:
204:
description: ''
content:
application/json:
schema:
type: object
nullable: true
tags:
- 'Payment Receipts'
parameters:
-
in: path
name: receipt
description: 'Payment Receipt ID'
example: 019556e7-2e9f-777c-a177-30bbf0646c32
required: true
schema:
type: string
'/api/employees/{employee_id}/receipts':
get:
summary: 'List employee receipts'
operationId: listEmployeeReceipts
description: 'List all payment receipts for a specific employee'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
-
id: b71de169-c298-30b0-9d67-da3044c1d2a8
receipt_number: REC-8103
receiver_type: employee
receiver:
id: null
name: 'Kyler Will'
document: 229.927.598-06
payment:
amount: 425.44
amount_in_words: 'Valor por extenso de teste'
method: check
description: 'Quis aliquid velit deserunt.'
issuer:
name: Cartwright-Mraz
document: 08.509.836/2330-59
issue:
date: '2026-02-23'
city: Sheaborough
state: GO
created_by:
id: a158b8fc-6d4f-4322-b7bf-3c316545a038
name: 'Morris Fritsch Jr.'
created_at: null
updated_at: null
-
id: cf51c9df-c49e-3453-aa5e-1d071879d0d3
receipt_number: REC-0441
receiver_type: custom
receiver:
id: null
name: 'Lyric Renner'
document: 817.090.750-52
payment:
amount: 4571.28
amount_in_words: 'Valor por extenso de teste'
method: check
description: 'Quo ipsa neque quaerat.'
issuer:
name: Barrows-McGlynn
document: 25.923.247/1726-51
issue:
date: '2026-02-24'
city: Funkside
state: RS
created_by:
id: a158b8fc-6f6c-4cb1-a9b3-3bd3e588ebdf
name: 'Carole Casper'
created_at: null
updated_at: null
pagination:
total: 2
count: 2
per_page: 10
current_page: 1
total_pages: 1
has_more_pages: false
links:
first: '/?page=1'
last: '/?page=1'
prev: null
next: null
meta:
current_page: 1
from: 1
last_page: 1
links:
-
url: null
label: '« Anterior'
page: null
active: false
-
url: '/?page=1'
label: '1'
page: 1
active: true
-
url: null
label: 'Próximo »'
page: null
active: false
path: /
per_page: 10
to: 2
total: 2
properties:
data:
type: array
example:
-
id: b71de169-c298-30b0-9d67-da3044c1d2a8
receipt_number: REC-8103
receiver_type: employee
receiver:
id: null
name: 'Kyler Will'
document: 229.927.598-06
payment:
amount: 425.44
amount_in_words: 'Valor por extenso de teste'
method: check
description: 'Quis aliquid velit deserunt.'
issuer:
name: Cartwright-Mraz
document: 08.509.836/2330-59
issue:
date: '2026-02-23'
city: Sheaborough
state: GO
created_by:
id: a158b8fc-6d4f-4322-b7bf-3c316545a038
name: 'Morris Fritsch Jr.'
created_at: null
updated_at: null
-
id: cf51c9df-c49e-3453-aa5e-1d071879d0d3
receipt_number: REC-0441
receiver_type: custom
receiver:
id: null
name: 'Lyric Renner'
document: 817.090.750-52
payment:
amount: 4571.28
amount_in_words: 'Valor por extenso de teste'
method: check
description: 'Quo ipsa neque quaerat.'
issuer:
name: Barrows-McGlynn
document: 25.923.247/1726-51
issue:
date: '2026-02-24'
city: Funkside
state: RS
created_by:
id: a158b8fc-6f6c-4cb1-a9b3-3bd3e588ebdf
name: 'Carole Casper'
created_at: null
updated_at: null
items:
type: object
properties:
id:
type: string
example: b71de169-c298-30b0-9d67-da3044c1d2a8
receipt_number:
type: string
example: REC-8103
receiver_type:
type: string
example: employee
receiver:
type: object
properties:
id:
type: string
example: null
name:
type: string
example: 'Kyler Will'
document:
type: string
example: 229.927.598-06
payment:
type: object
properties:
amount:
type: number
example: 425.44
amount_in_words:
type: string
example: 'Valor por extenso de teste'
method:
type: string
example: check
description:
type: string
example: 'Quis aliquid velit deserunt.'
issuer:
type: object
properties:
name:
type: string
example: Cartwright-Mraz
document:
type: string
example: 08.509.836/2330-59
issue:
type: object
properties:
date:
type: string
example: '2026-02-23'
city:
type: string
example: Sheaborough
state:
type: string
example: GO
created_by:
type: object
properties:
id:
type: string
example: a158b8fc-6d4f-4322-b7bf-3c316545a038
name:
type: string
example: 'Morris Fritsch Jr.'
created_at:
type: string
example: null
updated_at:
type: string
example: null
pagination:
type: object
properties:
total:
type: integer
example: 2
count:
type: integer
example: 2
per_page:
type: integer
example: 10
current_page:
type: integer
example: 1
total_pages:
type: integer
example: 1
has_more_pages:
type: boolean
example: false
links:
type: object
properties:
first:
type: string
example: '/?page=1'
last:
type: string
example: '/?page=1'
prev:
type: string
example: null
next:
type: string
example: null
meta:
type: object
properties:
current_page:
type: integer
example: 1
from:
type: integer
example: 1
last_page:
type: integer
example: 1
links:
type: array
example:
-
url: null
label: '« Anterior'
page: null
active: false
-
url: '/?page=1'
label: '1'
page: 1
active: true
-
url: null
label: 'Próximo »'
page: null
active: false
items:
type: object
properties:
url:
type: string
example: null
label:
type: string
example: '« Anterior'
page:
type: string
example: null
active:
type: boolean
example: false
path:
type: string
example: /
per_page:
type: integer
example: 10
to:
type: integer
example: 2
total:
type: integer
example: 2
tags:
- 'Payment Receipts'
parameters:
-
in: path
name: employee_id
description: 'The ID of the employee.'
example: 5
required: true
schema:
type: integer
-
in: path
name: employee
description: 'Employee ID'
example: 019556e7-2e9f-777c-a177-30bbf0646c32
required: true
schema:
type: string
/api/permission-groups:
get:
summary: 'List permission groups'
operationId: listPermissionGroups
description: 'List all permission groups'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
-
id: 89696a88-8c5b-36ea-a82e-fdb92586db4f
name: deleniti-quis
display_name: 'id animi voluptatem'
created_at: null
updated_at: null
-
id: f98394c0-77b5-3f29-aca4-dc8230f19e52
name: odit-cum-nihil
display_name: 'sit nemo ut'
created_at: null
updated_at: null
links:
first: '/?page=1'
last: '/?page=1'
prev: null
next: null
meta:
current_page: 1
from: 1
last_page: 1
links:
-
url: null
label: '« Anterior'
page: null
active: false
-
url: '/?page=1'
label: '1'
page: 1
active: true
-
url: null
label: 'Próximo »'
page: null
active: false
path: /
per_page: 10
to: 2
total: 2
properties:
data:
type: array
example:
-
id: 89696a88-8c5b-36ea-a82e-fdb92586db4f
name: deleniti-quis
display_name: 'id animi voluptatem'
created_at: null
updated_at: null
-
id: f98394c0-77b5-3f29-aca4-dc8230f19e52
name: odit-cum-nihil
display_name: 'sit nemo ut'
created_at: null
updated_at: null
items:
type: object
properties:
id:
type: string
example: 89696a88-8c5b-36ea-a82e-fdb92586db4f
name:
type: string
example: deleniti-quis
display_name:
type: string
example: 'id animi voluptatem'
created_at:
type: string
example: null
updated_at:
type: string
example: null
links:
type: object
properties:
first:
type: string
example: '/?page=1'
last:
type: string
example: '/?page=1'
prev:
type: string
example: null
next:
type: string
example: null
meta:
type: object
properties:
current_page:
type: integer
example: 1
from:
type: integer
example: 1
last_page:
type: integer
example: 1
links:
type: array
example:
-
url: null
label: '« Anterior'
page: null
active: false
-
url: '/?page=1'
label: '1'
page: 1
active: true
-
url: null
label: 'Próximo »'
page: null
active: false
items:
type: object
properties:
url:
type: string
example: null
label:
type: string
example: '« Anterior'
page:
type: string
example: null
active:
type: boolean
example: false
path:
type: string
example: /
per_page:
type: integer
example: 10
to:
type: integer
example: 2
total:
type: integer
example: 2
tags:
- 'Permission Groups'
post:
summary: 'Create permission group'
operationId: createPermissionGroup
description: 'Create a new permission group'
parameters: []
responses:
201:
description: ''
content:
application/json:
schema:
type: object
example:
message: string
properties:
message:
type: string
example: string
tags:
- 'Permission Groups'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
name:
type: string
description: 'Name. O campo value não pode ser superior a 255 caracteres.'
example: 'Example Name'
display_name:
type: string
description: 'Display name. O campo value não pode ser superior a 255 caracteres.'
example: 'Example Name'
required:
- name
- display_name
'/api/permission-groups/{permissionGroup}':
put:
summary: 'Update permission group'
operationId: updatePermissionGroup
description: 'Update a permission group'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
message: string
properties:
message:
type: string
example: string
tags:
- 'Permission Groups'
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
name:
type: string
description: 'Name. O campo value não pode ser superior a 255 caracteres.'
example: 'Example Name'
display_name:
type: string
description: 'Display name. O campo value não pode ser superior a 255 caracteres.'
example: 'Example Name'
get:
summary: 'Show permission group'
operationId: showPermissionGroup
description: 'Show a permission group'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
id: deac2285-4baf-3979-b87f-c5d4b7c61860
name: qui-quo-non
display_name: 'ab non error'
created_at: null
updated_at: null
properties:
data:
type: object
properties:
id:
type: string
example: deac2285-4baf-3979-b87f-c5d4b7c61860
name:
type: string
example: qui-quo-non
display_name:
type: string
example: 'ab non error'
created_at:
type: string
example: null
updated_at:
type: string
example: null
tags:
- 'Permission Groups'
delete:
summary: 'Delete permission group'
operationId: deletePermissionGroup
description: 'Delete a permission group'
parameters: []
responses:
204:
description: ''
content:
application/json:
schema:
type: object
nullable: true
tags:
- 'Permission Groups'
parameters:
-
in: path
name: permissionGroup
description: ''
example: 1
required: true
schema:
type: integer
/api/product-brands:
get:
summary: 'List product brands'
operationId: listProductBrands
description: 'List all product brands'
parameters:
-
in: query
name: q
description: ''
example: Structure
required: false
schema:
type: string
description: ''
example: Structure
nullable: true
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
-
id: e34c9510-27fe-3f8b-9edc-0825c5f5c230
name: 'Nádia Carmona Saito'
created_at: null
updated_at: null
-
id: 460ff85a-404e-3fa1-ba6c-5b1e44221047
name: 'Tábata Deverso Filho'
created_at: null
updated_at: null
links:
first: '/?page=1'
last: '/?page=1'
prev: null
next: null
meta:
current_page: 1
from: 1
last_page: 1
links:
-
url: null
label: '« Anterior'
page: null
active: false
-
url: '/?page=1'
label: '1'
page: 1
active: true
-
url: null
label: 'Próximo »'
page: null
active: false
path: /
per_page: 10
to: 2
total: 2
properties:
data:
type: array
example:
-
id: e34c9510-27fe-3f8b-9edc-0825c5f5c230
name: 'Nádia Carmona Saito'
created_at: null
updated_at: null
-
id: 460ff85a-404e-3fa1-ba6c-5b1e44221047
name: 'Tábata Deverso Filho'
created_at: null
updated_at: null
items:
type: object
properties:
id:
type: string
example: e34c9510-27fe-3f8b-9edc-0825c5f5c230
name:
type: string
example: 'Nádia Carmona Saito'
created_at:
type: string
example: null
updated_at:
type: string
example: null
links:
type: object
properties:
first:
type: string
example: '/?page=1'
last:
type: string
example: '/?page=1'
prev:
type: string
example: null
next:
type: string
example: null
meta:
type: object
properties:
current_page:
type: integer
example: 1
from:
type: integer
example: 1
last_page:
type: integer
example: 1
links:
type: array
example:
-
url: null
label: '« Anterior'
page: null
active: false
-
url: '/?page=1'
label: '1'
page: 1
active: true
-
url: null
label: 'Próximo »'
page: null
active: false
items:
type: object
properties:
url:
type: string
example: null
label:
type: string
example: '« Anterior'
page:
type: string
example: null
active:
type: boolean
example: false
path:
type: string
example: /
per_page:
type: integer
example: 10
to:
type: integer
example: 2
total:
type: integer
example: 2
tags:
- 'Product Brands'
post:
summary: 'Create product brand'
operationId: createProductBrand
description: 'Create a new product brand'
parameters: []
responses:
201:
description: ''
content:
application/json:
schema:
type: object
example:
message: string
properties:
message:
type: string
example: string
tags:
- 'Product Brands'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
name:
type: string
description: Nome.
example: 'Example Name'
required:
- name
'/api/product-brands/{productBrand}':
get:
summary: 'Show product brand'
operationId: showProductBrand
description: 'Show a product brand'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
id: e6f7acbb-925f-3333-bf19-225587ad3dfc
name: 'Norma Sophia Pontes Filho'
created_at: null
updated_at: null
properties:
data:
type: object
properties:
id:
type: string
example: e6f7acbb-925f-3333-bf19-225587ad3dfc
name:
type: string
example: 'Norma Sophia Pontes Filho'
created_at:
type: string
example: null
updated_at:
type: string
example: null
tags:
- 'Product Brands'
put:
summary: 'Update product brand'
operationId: updateProductBrand
description: 'Update a product brand'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
message: string
properties:
message:
type: string
example: string
tags:
- 'Product Brands'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
name:
type: string
description: Nome.
example: 'Example Name'
required:
- name
delete:
summary: 'Delete product brand'
operationId: deleteProductBrand
description: 'Delete a product brand'
parameters: []
responses:
204:
description: ''
content:
application/json:
schema:
type: object
nullable: true
tags:
- 'Product Brands'
parameters:
-
in: path
name: productBrand
description: 'Product brand UUID'
example: blanditiis
required: true
schema:
type: string
/api/product-families:
get:
summary: 'List product families'
operationId: listProductFamilies
description: 'List all product families'
parameters:
-
in: query
name: q
description: ''
example: Structure
required: false
schema:
type: string
description: ''
example: Structure
nullable: true
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
-
id: d1bc9f84-9e71-3921-87fe-f8df3dc58c75
name: 'Sr. Christian Galvão Jr.'
created_at: null
updated_at: null
-
id: 9403594c-ac0d-38d1-ac38-bf921226e861
name: 'Tatiana Agustina Cervantes Sobrinho'
created_at: null
updated_at: null
links:
first: '/?page=1'
last: '/?page=1'
prev: null
next: null
meta:
current_page: 1
from: 1
last_page: 1
links:
-
url: null
label: '« Anterior'
page: null
active: false
-
url: '/?page=1'
label: '1'
page: 1
active: true
-
url: null
label: 'Próximo »'
page: null
active: false
path: /
per_page: 10
to: 2
total: 2
properties:
data:
type: array
example:
-
id: d1bc9f84-9e71-3921-87fe-f8df3dc58c75
name: 'Sr. Christian Galvão Jr.'
created_at: null
updated_at: null
-
id: 9403594c-ac0d-38d1-ac38-bf921226e861
name: 'Tatiana Agustina Cervantes Sobrinho'
created_at: null
updated_at: null
items:
type: object
properties:
id:
type: string
example: d1bc9f84-9e71-3921-87fe-f8df3dc58c75
name:
type: string
example: 'Sr. Christian Galvão Jr.'
created_at:
type: string
example: null
updated_at:
type: string
example: null
links:
type: object
properties:
first:
type: string
example: '/?page=1'
last:
type: string
example: '/?page=1'
prev:
type: string
example: null
next:
type: string
example: null
meta:
type: object
properties:
current_page:
type: integer
example: 1
from:
type: integer
example: 1
last_page:
type: integer
example: 1
links:
type: array
example:
-
url: null
label: '« Anterior'
page: null
active: false
-
url: '/?page=1'
label: '1'
page: 1
active: true
-
url: null
label: 'Próximo »'
page: null
active: false
items:
type: object
properties:
url:
type: string
example: null
label:
type: string
example: '« Anterior'
page:
type: string
example: null
active:
type: boolean
example: false
path:
type: string
example: /
per_page:
type: integer
example: 10
to:
type: integer
example: 2
total:
type: integer
example: 2
tags:
- 'Product Families'
post:
summary: 'Create product family'
operationId: createProductFamily
description: 'Create a new product family'
parameters: []
responses:
201:
description: ''
content:
application/json:
schema:
type: object
example:
message: string
properties:
message:
type: string
example: string
tags:
- 'Product Families'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
name:
type: string
description: Nome.
example: 'Example Name'
required:
- name
'/api/product-families/{productFamily}':
get:
summary: 'Show product family'
operationId: showProductFamily
description: 'Show a product family'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
id: aac262bd-976a-3ad8-ba90-3cbbb4a10705
name: 'Sr. Luiz Mendonça Jr.'
created_at: null
updated_at: null
properties:
data:
type: object
properties:
id:
type: string
example: aac262bd-976a-3ad8-ba90-3cbbb4a10705
name:
type: string
example: 'Sr. Luiz Mendonça Jr.'
created_at:
type: string
example: null
updated_at:
type: string
example: null
tags:
- 'Product Families'
put:
summary: 'Update product family'
operationId: updateProductFamily
description: 'Update a product family'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
message: string
properties:
message:
type: string
example: string
tags:
- 'Product Families'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
name:
type: string
description: Nome.
example: 'Example Name'
required:
- name
delete:
summary: 'Delete product family'
operationId: deleteProductFamily
description: 'Delete a product family'
parameters: []
responses:
204:
description: ''
content:
application/json:
schema:
type: object
nullable: true
tags:
- 'Product Families'
parameters:
-
in: path
name: productFamily
description: 'Product family UUID'
example: veritatis
required: true
schema:
type: string
/api/product-quantity-lists:
get:
summary: 'List product quantity lists'
operationId: listProductQuantityLists
description: 'List all product quantity lists'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
-
id: 9b3a2231-ec8d-3047-86e3-ff659985579f
name: 'Incidunt sint eius.'
description: null
work:
id: a158b8fc-db85-4c66-8fb1-1448791d9f41
name: 'Luiza Juliana Corona'
user:
id: a158b8fc-e1b5-4568-81b9-345f1575d3e1
name: 'Eldora Sawayn DDS'
created_at: null
updated_at: null
-
id: 56980c9d-fa4b-392a-aea5-f30bb4f22711
name: 'Minus iure fuga.'
description: 'Accusantium libero ex perspiciatis. Culpa dolores minus est quis dolorum aut quae. Hic cumque vero exercitationem expedita. Quia expedita est eius et asperiores non ut. Et aliquid voluptas deserunt quis ea sit laboriosam.'
work:
id: a158b8fc-e551-441f-9845-f84c4af65bf1
name: 'Dr. Tábata Fonseca Gil Jr.'
user:
id: a158b8fc-e80f-4c0a-9cab-94fc72cdb62b
name: 'Christina Rutherford'
created_at: null
updated_at: null
links:
first: '/?page=1'
last: '/?page=1'
prev: null
next: null
meta:
current_page: 1
from: 1
last_page: 1
links:
-
url: null
label: '« Anterior'
page: null
active: false
-
url: '/?page=1'
label: '1'
page: 1
active: true
-
url: null
label: 'Próximo »'
page: null
active: false
path: /
per_page: 10
to: 2
total: 2
properties:
data:
type: array
example:
-
id: 9b3a2231-ec8d-3047-86e3-ff659985579f
name: 'Incidunt sint eius.'
description: null
work:
id: a158b8fc-db85-4c66-8fb1-1448791d9f41
name: 'Luiza Juliana Corona'
user:
id: a158b8fc-e1b5-4568-81b9-345f1575d3e1
name: 'Eldora Sawayn DDS'
created_at: null
updated_at: null
-
id: 56980c9d-fa4b-392a-aea5-f30bb4f22711
name: 'Minus iure fuga.'
description: 'Accusantium libero ex perspiciatis. Culpa dolores minus est quis dolorum aut quae. Hic cumque vero exercitationem expedita. Quia expedita est eius et asperiores non ut. Et aliquid voluptas deserunt quis ea sit laboriosam.'
work:
id: a158b8fc-e551-441f-9845-f84c4af65bf1
name: 'Dr. Tábata Fonseca Gil Jr.'
user:
id: a158b8fc-e80f-4c0a-9cab-94fc72cdb62b
name: 'Christina Rutherford'
created_at: null
updated_at: null
items:
type: object
properties:
id:
type: string
example: 9b3a2231-ec8d-3047-86e3-ff659985579f
name:
type: string
example: 'Incidunt sint eius.'
description:
type: string
example: null
work:
type: object
properties:
id:
type: string
example: a158b8fc-db85-4c66-8fb1-1448791d9f41
name:
type: string
example: 'Luiza Juliana Corona'
user:
type: object
properties:
id:
type: string
example: a158b8fc-e1b5-4568-81b9-345f1575d3e1
name:
type: string
example: 'Eldora Sawayn DDS'
created_at:
type: string
example: null
updated_at:
type: string
example: null
links:
type: object
properties:
first:
type: string
example: '/?page=1'
last:
type: string
example: '/?page=1'
prev:
type: string
example: null
next:
type: string
example: null
meta:
type: object
properties:
current_page:
type: integer
example: 1
from:
type: integer
example: 1
last_page:
type: integer
example: 1
links:
type: array
example:
-
url: null
label: '« Anterior'
page: null
active: false
-
url: '/?page=1'
label: '1'
page: 1
active: true
-
url: null
label: 'Próximo »'
page: null
active: false
items:
type: object
properties:
url:
type: string
example: null
label:
type: string
example: '« Anterior'
page:
type: string
example: null
active:
type: boolean
example: false
path:
type: string
example: /
per_page:
type: integer
example: 10
to:
type: integer
example: 2
total:
type: integer
example: 2
tags:
- 'Product Quantity Lists'
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
q:
type: string
description: Busca.
example: 'Example Q'
nullable: true
work_id:
type: string
description: 'Obra. The uuid of an existing record in the works table.'
example: d482c87c-756e-3b53-8bf0-45626048a666
nullable: true
user_id:
type: string
description: 'Usuário. The uuid of an existing record in the users table.'
example: 7f6f9145-e1f3-3aaf-a4c5-745b665267bc
nullable: true
responsible_id:
type: string
description: 'Responsável. The uuid of an existing record in the users table.'
example: 2fa072f3-897e-3311-8f9c-3f12b4ab75bd
nullable: true
per_page:
type: integer
description: 'Itens por página. O campo value deve ser pelo menos 1. O campo value não pode ser superior a 100.'
example: 1
sort:
type: string
description: Ordenação.
example: 'Example Sort'
sort_desc:
type: boolean
description: 'Ordem decrescente.'
example: false
post:
summary: 'Create product quantity list'
operationId: createProductQuantityList
description: 'Create a new product quantity list'
parameters: []
responses:
201:
description: ''
content:
application/json:
schema:
type: object
example:
data: object
properties:
data:
type: string
example: object
tags:
- 'Product Quantity Lists'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
name:
type: string
description: 'Nome. O campo value não pode ser superior a 255 caracteres.'
example: 'Example Name'
nullable: true
description:
type: string
description: Descrição.
example: 'Example Description'
nullable: true
work_id:
type: string
description: 'Obra. The uuid of an existing record in the works table.'
example: 7100e61e-f804-3011-a6e4-8a1ba37dc57b
items:
type: array
description: Itens.
example:
- null
- null
items:
type: object
properties:
product_id:
type: string
description: 'Produto. The uuid of an existing record in the products table.'
example: fa3981f7-3673-3dee-9471-b8bd2e9525ea
quantity:
type: number
description: 'Quantidade. O campo value deve ser pelo menos 0.0001.'
example: 1.0
observation:
type: string
description: Observação.
example: 'Example Items * observation'
nullable: true
required:
- product_id
- quantity
required:
- work_id
'/api/product-quantity-lists/{productQuantityList}':
get:
summary: 'Show product quantity list'
operationId: showProductQuantityList
description: 'Show a product quantity list'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
id: 2620b9ae-1336-3e63-a294-6ea777377a96
name: 'Sint corrupti.'
description: 'Saepe tempora sed dicta impedit et. Exercitationem consequatur reiciendis et mollitia adipisci. Voluptatem dolorem adipisci sint ut. Quia in repudiandae velit debitis voluptas qui laboriosam.'
work:
id: a158b8fc-ee2a-46be-9241-198a2ed949d0
name: 'Gael Carvalho Teles'
user:
id: a158b8fc-f10e-4a14-be0a-6e893a00ef53
name: 'Duane Hansen'
created_at: null
updated_at: null
properties:
data:
type: object
properties:
id:
type: string
example: 2620b9ae-1336-3e63-a294-6ea777377a96
name:
type: string
example: 'Sint corrupti.'
description:
type: string
example: 'Saepe tempora sed dicta impedit et. Exercitationem consequatur reiciendis et mollitia adipisci. Voluptatem dolorem adipisci sint ut. Quia in repudiandae velit debitis voluptas qui laboriosam.'
work:
type: object
properties:
id:
type: string
example: a158b8fc-ee2a-46be-9241-198a2ed949d0
name:
type: string
example: 'Gael Carvalho Teles'
user:
type: object
properties:
id:
type: string
example: a158b8fc-f10e-4a14-be0a-6e893a00ef53
name:
type: string
example: 'Duane Hansen'
created_at:
type: string
example: null
updated_at:
type: string
example: null
tags:
- 'Product Quantity Lists'
put:
summary: 'Update product quantity list'
operationId: updateProductQuantityList
description: 'Update a product quantity list. Can include items to replace all items in the list.'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data: object
properties:
data:
type: string
example: object
tags:
- 'Product Quantity Lists'
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
name:
type: string
description: 'Nome. O campo value não pode ser superior a 255 caracteres.'
example: 'Example Name'
nullable: true
description:
type: string
description: Descrição.
example: 'Example Description'
nullable: true
items:
type: array
description: Itens.
example:
- null
- null
items:
type: object
properties:
id:
type: string
description: 'ID do Item. The uuid of an existing record in the product_quantity_list_items table.'
example: 2739f315-1eef-30ac-a744-10c2bd21e6bf
product_id:
type: string
description: 'Produto. The uuid of an existing record in the products table.'
example: b5a5c0c8-6d28-390e-b691-85eee63d8de6
quantity:
type: number
description: 'Quantidade. O campo value deve ser pelo menos 0.0001.'
example: 1.0
observation:
type: string
description: Observação.
example: 'Example Items * observation'
nullable: true
required:
- product_id
- quantity
delete:
summary: 'Delete product quantity list'
operationId: deleteProductQuantityList
description: 'Delete a product quantity list'
parameters: []
responses:
204:
description: ''
content:
application/json:
schema:
type: object
nullable: true
tags:
- 'Product Quantity Lists'
parameters:
-
in: path
name: productQuantityList
description: 'Product Quantity List UUID'
example: ut
required: true
schema:
type: string
'/api/product-quantity-lists/{productQuantityList}/items':
get:
summary: 'List items'
operationId: listItems
description: 'List all items from a product quantity list with pagination'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
-
id: d9b8ef4d-21b2-3cc7-aa1d-a8d5bbfd6d9e
product:
id: a158b8fd-05d0-40c9-a8c5-3c9fc158deee
name: 'Dr. Aparecida Matos'
code: PRD-036323
unit:
id: a158b8fd-03c1-470f-8983-9f9d712bbdec
name: 'Victor Cléber Escobar'
abbreviation: 'Rebeca Bárbara Bezerra Sobrinho'
quantity: 369.3856
observation: 'Voluptatibus aut veniam quos similique.'
created_at: null
updated_at: null
-
id: 0299361b-37af-309c-afcc-32514be86f33
product:
id: a158b8fd-1da3-4b58-8090-fd781d52b273
name: 'Dr. Simão Rezende'
code: PRD-193790
unit:
id: a158b8fd-1c4d-472d-b9e5-f7b754622d9f
name: 'Sr. Daniel Escobar Neto'
abbreviation: 'Sergio Vitor Leon'
quantity: 410.8014
observation: 'Necessitatibus doloremque deleniti voluptatem rerum.'
created_at: null
updated_at: null
links:
first: '/?page=1'
last: '/?page=1'
prev: null
next: null
meta:
current_page: 1
from: 1
last_page: 1
links:
-
url: null
label: '« Anterior'
page: null
active: false
-
url: '/?page=1'
label: '1'
page: 1
active: true
-
url: null
label: 'Próximo »'
page: null
active: false
path: /
per_page: 10
to: 2
total: 2
properties:
data:
type: array
example:
-
id: d9b8ef4d-21b2-3cc7-aa1d-a8d5bbfd6d9e
product:
id: a158b8fd-05d0-40c9-a8c5-3c9fc158deee
name: 'Dr. Aparecida Matos'
code: PRD-036323
unit:
id: a158b8fd-03c1-470f-8983-9f9d712bbdec
name: 'Victor Cléber Escobar'
abbreviation: 'Rebeca Bárbara Bezerra Sobrinho'
quantity: 369.3856
observation: 'Voluptatibus aut veniam quos similique.'
created_at: null
updated_at: null
-
id: 0299361b-37af-309c-afcc-32514be86f33
product:
id: a158b8fd-1da3-4b58-8090-fd781d52b273
name: 'Dr. Simão Rezende'
code: PRD-193790
unit:
id: a158b8fd-1c4d-472d-b9e5-f7b754622d9f
name: 'Sr. Daniel Escobar Neto'
abbreviation: 'Sergio Vitor Leon'
quantity: 410.8014
observation: 'Necessitatibus doloremque deleniti voluptatem rerum.'
created_at: null
updated_at: null
items:
type: object
properties:
id:
type: string
example: d9b8ef4d-21b2-3cc7-aa1d-a8d5bbfd6d9e
product:
type: object
properties:
id:
type: string
example: a158b8fd-05d0-40c9-a8c5-3c9fc158deee
name:
type: string
example: 'Dr. Aparecida Matos'
code:
type: string
example: PRD-036323
unit:
type: object
properties:
id:
type: string
example: a158b8fd-03c1-470f-8983-9f9d712bbdec
name:
type: string
example: 'Victor Cléber Escobar'
abbreviation:
type: string
example: 'Rebeca Bárbara Bezerra Sobrinho'
quantity:
type: number
example: 369.3856
observation:
type: string
example: 'Voluptatibus aut veniam quos similique.'
created_at:
type: string
example: null
updated_at:
type: string
example: null
links:
type: object
properties:
first:
type: string
example: '/?page=1'
last:
type: string
example: '/?page=1'
prev:
type: string
example: null
next:
type: string
example: null
meta:
type: object
properties:
current_page:
type: integer
example: 1
from:
type: integer
example: 1
last_page:
type: integer
example: 1
links:
type: array
example:
-
url: null
label: '« Anterior'
page: null
active: false
-
url: '/?page=1'
label: '1'
page: 1
active: true
-
url: null
label: 'Próximo »'
page: null
active: false
items:
type: object
properties:
url:
type: string
example: null
label:
type: string
example: '« Anterior'
page:
type: string
example: null
active:
type: boolean
example: false
path:
type: string
example: /
per_page:
type: integer
example: 10
to:
type: integer
example: 2
total:
type: integer
example: 2
tags:
- 'Product Quantity Lists'
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
per_page:
type: integer
description: 'Itens por página. O campo value deve ser pelo menos 1. O campo value não pode ser superior a 100.'
example: 1
q:
type: string
description: 'Busca. O campo value não pode ser superior a 255 caracteres.'
example: 'Example Q'
post:
summary: 'Add items to list'
operationId: addItemsToList
description: 'Add one or more product items to the list'
parameters: []
responses:
201:
description: ''
content:
application/json:
schema:
type: object
example:
data: array
properties:
data:
type: string
example: array
tags:
- 'Product Quantity Lists'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
items:
type: array
description: 'Itens. O campo value deve ter pelo menos 1 itens.'
example:
- null
- null
items:
type: object
properties:
product_id:
type: string
description: 'Produto. The uuid of an existing record in the products table.'
example: 2e4edebc-8dde-3743-b826-8b9078657af5
quantity:
type: number
description: 'Quantidade. O campo value deve ser pelo menos 0.0001.'
example: 1.0
observation:
type: string
description: Observação.
example: 'Example Items * observation'
nullable: true
required:
- product_id
- quantity
required:
- items
delete:
summary: 'Remove items'
operationId: removeItems
description: 'Remove one or more product items from the list'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
deleted: integer
properties:
deleted:
type: string
example: integer
tags:
- 'Product Quantity Lists'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
items:
type: array
description: 'Item. The uuid of an existing record in the product_quantity_list_items table.'
example:
- 23c61526-3fe6-3b96-b64f-96ef40ec39ad
items:
type: string
required:
- items
parameters:
-
in: path
name: productQuantityList
description: 'Product Quantity List UUID'
example: unde
required: true
schema:
type: string
'/api/product-quantity-lists/items/{id}':
put:
summary: 'Update item'
operationId: updateItem
description: 'Update a product item in the list'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data: object
properties:
data:
type: string
example: object
tags:
- 'Product Quantity Lists'
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
quantity:
type: number
description: 'Quantidade. O campo value deve ser pelo menos 0.0001.'
example: 1.0
observation:
type: string
description: Observação.
example: 'Example Observation'
nullable: true
parameters:
-
in: path
name: id
description: 'The ID of the item.'
example: et
required: true
schema:
type: string
-
in: path
name: item
description: 'Product Quantity List Item UUID'
example: in
required: true
schema:
type: string
'/api/product-quantity-lists/{productQuantityList}/sync-items':
put:
summary: 'Sync items'
operationId: syncItems
description: 'Replace all items in the list'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data: object
properties:
data:
type: string
example: object
tags:
- 'Product Quantity Lists'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
items:
type: array
description: Itens.
example:
- null
- null
items:
type: object
properties:
id:
type: string
description: 'ID do Item. The uuid of an existing record in the product_quantity_list_items table.'
example: ac34bdca-93d2-3f40-a622-2d3fda578c12
product_id:
type: string
description: 'Produto. The uuid of an existing record in the products table.'
example: 5f30e75f-221c-3202-89d3-43660350ec8a
quantity:
type: number
description: 'Quantidade. O campo value deve ser pelo menos 0.0001.'
example: 1.0
observation:
type: string
description: Observação.
example: 'Example Items * observation'
nullable: true
required:
- product_id
- quantity
required:
- items
parameters:
-
in: path
name: productQuantityList
description: 'Product Quantity List UUID'
example: impedit
required: true
schema:
type: string
'/api/product-requests/items/{item}/fulfill':
post:
summary: 'Fulfill item'
operationId: fulfillItem
description: 'Fulfill a product request item via transfer or allocation'
parameters: []
responses:
201:
description: ''
content:
application/json:
schema:
type: object
example:
data: object
properties:
data:
type: string
example: object
tags:
- 'Product Request Fulfillment'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
fulfillment_type:
type: string
description: 'Tipo de atendimento.'
example: 'Example Fulfillment type'
enum:
- transfer
- entry
stock_id:
type: string
description: 'Estoque de destino. This field is required when fulfillment_type is transfer. The uuid of an existing record in the stocks table.'
example: bb58eb97-e801-3710-b53f-7e31700c18f7
nullable: true
quantity:
type: number
description: 'Quantidade. O campo value deve ser pelo menos 0.0001.'
example: 1.0
source_stock_id:
type: string
description: 'Estoque de origem. This field is required when fulfillment_type is transfer. The value and stock_id must be different. The uuid of an existing record in the stocks table.'
example: b6ab26ce-ccb6-34b6-a09f-7b262a0f9f30
nullable: true
reason:
type: string
description: 'Motivo. O campo value não pode ser superior a 500 caracteres.'
example: 'Example Reason'
nullable: true
required:
- fulfillment_type
- quantity
parameters:
-
in: path
name: item
description: 'Product Request Item UUID'
example: non
required: true
schema:
type: string
'/api/product-requests/items/{item}/fulfillments':
get:
summary: 'List item fulfillments'
operationId: listItemFulfillments
description: 'List all fulfillments for a product request item'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
-
id: 2c2101de-949d-37b7-a1c2-2994adf8fd77
quantity: 49.939
fulfilled_at: '2026-02-27T09:09:55.000000Z'
created_at: null
-
id: 3ad709f5-13e4-364e-a895-1b0c8359cc12
quantity: 92.2157
fulfilled_at: '2026-02-19T04:01:27.000000Z'
created_at: null
links:
first: '/?page=1'
last: '/?page=1'
prev: null
next: null
meta:
current_page: 1
from: 1
last_page: 1
links:
-
url: null
label: '« Anterior'
page: null
active: false
-
url: '/?page=1'
label: '1'
page: 1
active: true
-
url: null
label: 'Próximo »'
page: null
active: false
path: /
per_page: 10
to: 2
total: 2
properties:
data:
type: array
example:
-
id: 2c2101de-949d-37b7-a1c2-2994adf8fd77
quantity: 49.939
fulfilled_at: '2026-02-27T09:09:55.000000Z'
created_at: null
-
id: 3ad709f5-13e4-364e-a895-1b0c8359cc12
quantity: 92.2157
fulfilled_at: '2026-02-19T04:01:27.000000Z'
created_at: null
items:
type: object
properties:
id:
type: string
example: 2c2101de-949d-37b7-a1c2-2994adf8fd77
quantity:
type: number
example: 49.939
fulfilled_at:
type: string
example: '2026-02-27T09:09:55.000000Z'
created_at:
type: string
example: null
links:
type: object
properties:
first:
type: string
example: '/?page=1'
last:
type: string
example: '/?page=1'
prev:
type: string
example: null
next:
type: string
example: null
meta:
type: object
properties:
current_page:
type: integer
example: 1
from:
type: integer
example: 1
last_page:
type: integer
example: 1
links:
type: array
example:
-
url: null
label: '« Anterior'
page: null
active: false
-
url: '/?page=1'
label: '1'
page: 1
active: true
-
url: null
label: 'Próximo »'
page: null
active: false
items:
type: object
properties:
url:
type: string
example: null
label:
type: string
example: '« Anterior'
page:
type: string
example: null
active:
type: boolean
example: false
path:
type: string
example: /
per_page:
type: integer
example: 10
to:
type: integer
example: 2
total:
type: integer
example: 2
tags:
- 'Product Request Fulfillment'
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
per_page:
type: integer
description: 'Per page. O campo value deve ser pelo menos 1. O campo value não pode ser superior a 100.'
example: 1
nullable: true
page:
type: integer
description: 'Page. O campo value deve ser pelo menos 1.'
example: 1
nullable: true
parameters:
-
in: path
name: item
description: 'Product Request Item UUID'
example: enim
required: true
schema:
type: string
'/api/product-requests/items/{id}':
get:
summary: 'Get item with fulfillment details'
operationId: getItemWithFulfillmentDetails
description: 'Get a single product request item with its fulfillment details'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
id: 41425e0a-94e6-3e01-ad2e-7017686c24b6
product:
id: a158b900-8108-4ecf-96f5-eaeb29f767fd
name: 'Joana Caldeira Colaço'
code: PRD-219121
unit:
id: a158b900-7fe9-4531-969f-f2eb5b7878b2
name: 'Dr. Maiara Pontes Brito'
abbreviation: 'Dr. Teobaldo Lourenço Matos Sobrinho'
quantity: 572.4037
quantity_fulfilled: 0
quantity_pending: 572.4037
is_fulfilled: false
is_partially_fulfilled: false
observation: 'Et quia laboriosam harum fuga iusto.'
created_at: null
updated_at: null
properties:
data:
type: object
properties:
id:
type: string
example: 41425e0a-94e6-3e01-ad2e-7017686c24b6
product:
type: object
properties:
id:
type: string
example: a158b900-8108-4ecf-96f5-eaeb29f767fd
name:
type: string
example: 'Joana Caldeira Colaço'
code:
type: string
example: PRD-219121
unit:
type: object
properties:
id:
type: string
example: a158b900-7fe9-4531-969f-f2eb5b7878b2
name:
type: string
example: 'Dr. Maiara Pontes Brito'
abbreviation:
type: string
example: 'Dr. Teobaldo Lourenço Matos Sobrinho'
quantity:
type: number
example: 572.4037
quantity_fulfilled:
type: integer
example: 0
quantity_pending:
type: number
example: 572.4037
is_fulfilled:
type: boolean
example: false
is_partially_fulfilled:
type: boolean
example: false
observation:
type: string
example: 'Et quia laboriosam harum fuga iusto.'
created_at:
type: string
example: null
updated_at:
type: string
example: null
tags:
- 'Product Request Fulfillment'
put:
summary: 'Update item'
operationId: updateItem
description: 'Update a product item in the request'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data: object
properties:
data:
type: string
example: object
tags:
- 'Product Requests'
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
quantity:
type: number
description: 'Quantidade. O campo value deve ser pelo menos 0.0001.'
example: 1.0
observation:
type: string
description: Observação.
example: 'Example Observation'
nullable: true
parameters:
-
in: path
name: id
description: 'The ID of the item.'
example: et
required: true
schema:
type: string
-
in: path
name: item
description: 'Product Request Item UUID'
example: quia
required: true
schema:
type: string
'/api/product-requests/{productRequest}/pending-items':
get:
summary: 'List pending items'
operationId: listPendingItems
description: 'List all pending items from a product request'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
-
id: d3ed29db-ef2d-3cee-958a-47c97a1fe2cb
product:
id: a158b900-963b-4ede-96b2-2904d4063ae4
name: 'Andressa das Neves'
code: PRD-129169
unit:
id: a158b900-94eb-4bc0-bcbc-1b65ec97228a
name: 'Srta. Eliane Suzana Perez Sobrinho'
abbreviation: 'Sofia Lia Sanches'
quantity: 235.9576
quantity_fulfilled: 0
quantity_pending: 235.9576
is_fulfilled: false
is_partially_fulfilled: false
observation: null
created_at: null
updated_at: null
-
id: 711624c7-bf07-3fa4-bf0a-db62724ce214
product:
id: a158b900-a565-4dff-9917-dd477d604d20
name: 'Srta. Denise Ramos'
code: PRD-058709
unit:
id: a158b900-a440-403e-b06c-30cda9a0ae86
name: 'Sr. Joaquin Alves'
abbreviation: 'Dr. Miguel Valentin Garcia'
quantity: 327.7135
quantity_fulfilled: 0
quantity_pending: 327.7135
is_fulfilled: false
is_partially_fulfilled: false
observation: null
created_at: null
updated_at: null
links:
first: '/?page=1'
last: '/?page=1'
prev: null
next: null
meta:
current_page: 1
from: 1
last_page: 1
links:
-
url: null
label: '« Anterior'
page: null
active: false
-
url: '/?page=1'
label: '1'
page: 1
active: true
-
url: null
label: 'Próximo »'
page: null
active: false
path: /
per_page: 10
to: 2
total: 2
properties:
data:
type: array
example:
-
id: d3ed29db-ef2d-3cee-958a-47c97a1fe2cb
product:
id: a158b900-963b-4ede-96b2-2904d4063ae4
name: 'Andressa das Neves'
code: PRD-129169
unit:
id: a158b900-94eb-4bc0-bcbc-1b65ec97228a
name: 'Srta. Eliane Suzana Perez Sobrinho'
abbreviation: 'Sofia Lia Sanches'
quantity: 235.9576
quantity_fulfilled: 0
quantity_pending: 235.9576
is_fulfilled: false
is_partially_fulfilled: false
observation: null
created_at: null
updated_at: null
-
id: 711624c7-bf07-3fa4-bf0a-db62724ce214
product:
id: a158b900-a565-4dff-9917-dd477d604d20
name: 'Srta. Denise Ramos'
code: PRD-058709
unit:
id: a158b900-a440-403e-b06c-30cda9a0ae86
name: 'Sr. Joaquin Alves'
abbreviation: 'Dr. Miguel Valentin Garcia'
quantity: 327.7135
quantity_fulfilled: 0
quantity_pending: 327.7135
is_fulfilled: false
is_partially_fulfilled: false
observation: null
created_at: null
updated_at: null
items:
type: object
properties:
id:
type: string
example: d3ed29db-ef2d-3cee-958a-47c97a1fe2cb
product:
type: object
properties:
id:
type: string
example: a158b900-963b-4ede-96b2-2904d4063ae4
name:
type: string
example: 'Andressa das Neves'
code:
type: string
example: PRD-129169
unit:
type: object
properties:
id:
type: string
example: a158b900-94eb-4bc0-bcbc-1b65ec97228a
name:
type: string
example: 'Srta. Eliane Suzana Perez Sobrinho'
abbreviation:
type: string
example: 'Sofia Lia Sanches'
quantity:
type: number
example: 235.9576
quantity_fulfilled:
type: integer
example: 0
quantity_pending:
type: number
example: 235.9576
is_fulfilled:
type: boolean
example: false
is_partially_fulfilled:
type: boolean
example: false
observation:
type: string
example: null
created_at:
type: string
example: null
updated_at:
type: string
example: null
links:
type: object
properties:
first:
type: string
example: '/?page=1'
last:
type: string
example: '/?page=1'
prev:
type: string
example: null
next:
type: string
example: null
meta:
type: object
properties:
current_page:
type: integer
example: 1
from:
type: integer
example: 1
last_page:
type: integer
example: 1
links:
type: array
example:
-
url: null
label: '« Anterior'
page: null
active: false
-
url: '/?page=1'
label: '1'
page: 1
active: true
-
url: null
label: 'Próximo »'
page: null
active: false
items:
type: object
properties:
url:
type: string
example: null
label:
type: string
example: '« Anterior'
page:
type: string
example: null
active:
type: boolean
example: false
path:
type: string
example: /
per_page:
type: integer
example: 10
to:
type: integer
example: 2
total:
type: integer
example: 2
tags:
- 'Product Request Fulfillment'
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
per_page:
type: integer
description: 'Per page. O campo value deve ser pelo menos 1. O campo value não pode ser superior a 100.'
example: 1
nullable: true
page:
type: integer
description: 'Page. O campo value deve ser pelo menos 1.'
example: 1
nullable: true
parameters:
-
in: path
name: productRequest
description: 'Product Request UUID'
example: quod
required: true
schema:
type: string
'/api/product-requests/pending-by-product/{product}':
get:
summary: 'List pending items by product'
operationId: listPendingItemsByProduct
description: 'List all pending product request items for a specific product'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
-
id: ba2afa5d-ee82-3555-a7a8-cb5cb2f45949
product:
id: a158b900-b835-4cc1-8d1f-e5de2b194c37
name: 'Juliano Sales Pena'
code: PRD-230134
unit:
id: a158b900-b71c-4aec-9251-250b7aaebe8f
name: 'Noa Violeta Lovato'
abbreviation: 'Dr. Erik Corona'
quantity: 213.1636
quantity_fulfilled: 0
quantity_pending: 213.1636
is_fulfilled: false
is_partially_fulfilled: false
observation: 'Deleniti laudantium asperiores consequuntur unde eveniet non dolores.'
created_at: null
updated_at: null
-
id: b4e2861b-c9ce-3f93-9070-a1166f938bee
product:
id: a158b900-c7f4-4376-acae-67deb60bdda2
name: 'Kelly Liz Carrara'
code: PRD-126138
unit:
id: a158b900-c6b8-4a51-bd9e-37212bab1d7a
name: 'Mayara Perez Mendonça Neto'
abbreviation: 'Dante Queirós'
quantity: 624.1515
quantity_fulfilled: 0
quantity_pending: 624.1515
is_fulfilled: false
is_partially_fulfilled: false
observation: 'Molestiae sed omnis dolor voluptate non.'
created_at: null
updated_at: null
properties:
data:
type: array
example:
-
id: ba2afa5d-ee82-3555-a7a8-cb5cb2f45949
product:
id: a158b900-b835-4cc1-8d1f-e5de2b194c37
name: 'Juliano Sales Pena'
code: PRD-230134
unit:
id: a158b900-b71c-4aec-9251-250b7aaebe8f
name: 'Noa Violeta Lovato'
abbreviation: 'Dr. Erik Corona'
quantity: 213.1636
quantity_fulfilled: 0
quantity_pending: 213.1636
is_fulfilled: false
is_partially_fulfilled: false
observation: 'Deleniti laudantium asperiores consequuntur unde eveniet non dolores.'
created_at: null
updated_at: null
-
id: b4e2861b-c9ce-3f93-9070-a1166f938bee
product:
id: a158b900-c7f4-4376-acae-67deb60bdda2
name: 'Kelly Liz Carrara'
code: PRD-126138
unit:
id: a158b900-c6b8-4a51-bd9e-37212bab1d7a
name: 'Mayara Perez Mendonça Neto'
abbreviation: 'Dante Queirós'
quantity: 624.1515
quantity_fulfilled: 0
quantity_pending: 624.1515
is_fulfilled: false
is_partially_fulfilled: false
observation: 'Molestiae sed omnis dolor voluptate non.'
created_at: null
updated_at: null
items:
type: object
properties:
id:
type: string
example: ba2afa5d-ee82-3555-a7a8-cb5cb2f45949
product:
type: object
properties:
id:
type: string
example: a158b900-b835-4cc1-8d1f-e5de2b194c37
name:
type: string
example: 'Juliano Sales Pena'
code:
type: string
example: PRD-230134
unit:
type: object
properties:
id:
type: string
example: a158b900-b71c-4aec-9251-250b7aaebe8f
name:
type: string
example: 'Noa Violeta Lovato'
abbreviation:
type: string
example: 'Dr. Erik Corona'
quantity:
type: number
example: 213.1636
quantity_fulfilled:
type: integer
example: 0
quantity_pending:
type: number
example: 213.1636
is_fulfilled:
type: boolean
example: false
is_partially_fulfilled:
type: boolean
example: false
observation:
type: string
example: 'Deleniti laudantium asperiores consequuntur unde eveniet non dolores.'
created_at:
type: string
example: null
updated_at:
type: string
example: null
tags:
- 'Product Request Fulfillment'
parameters:
-
in: path
name: product
description: 'Product UUID'
example: aut
required: true
schema:
type: string
/api/product-requests:
get:
summary: 'List product requests'
operationId: listProductRequests
description: 'List all product requests'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
-
id: e712bfdf-f9db-37dd-bab9-920b91c68f0d
code: null
name: 'Beatae est saepe.'
description: null
work:
id: a158b8fe-90e6-4513-86d6-2a8c67a9f2f1
name: 'Srta. Nayara Katherine Lovato Sobrinho'
user:
id: a158b8fe-9386-47f5-90f6-a1ff50ad59d3
name: 'Lillie Stiedemann'
status:
id: a158b8fe-9619-4be4-9412-f656b5a382ca
description: 'Sr. Sandro Barreto'
color: '#707b3b'
text_color: '#ebe07f'
priority: low
priority_label: Baixa
needed_at: '2026-04-02'
approved_at: null
rejection_reason: null
created_at: null
updated_at: null
-
id: 011aa2ea-da21-30e3-b21f-d442e73c0c66
code: null
name: 'Eligendi fugiat.'
description: null
work:
id: a158b8fe-9a68-4238-a7b6-f910bbd5d36b
name: 'Raphael Beltrão'
user:
id: a158b8fe-9cac-4d87-b08d-520e2ed35d04
name: 'Marielle Kerluke'
status:
id: a158b8fe-9e3a-4c90-8f95-266dcb21941b
description: 'Léia Manoela Assunção'
color: '#f288aa'
text_color: '#b78689'
priority: low
priority_label: Baixa
needed_at: '2026-03-20'
approved_at: null
rejection_reason: null
created_at: null
updated_at: null
links:
first: '/?page=1'
last: '/?page=1'
prev: null
next: null
meta:
current_page: 1
from: 1
last_page: 1
links:
-
url: null
label: '« Anterior'
page: null
active: false
-
url: '/?page=1'
label: '1'
page: 1
active: true
-
url: null
label: 'Próximo »'
page: null
active: false
path: /
per_page: 10
to: 2
total: 2
properties:
data:
type: array
example:
-
id: e712bfdf-f9db-37dd-bab9-920b91c68f0d
code: null
name: 'Beatae est saepe.'
description: null
work:
id: a158b8fe-90e6-4513-86d6-2a8c67a9f2f1
name: 'Srta. Nayara Katherine Lovato Sobrinho'
user:
id: a158b8fe-9386-47f5-90f6-a1ff50ad59d3
name: 'Lillie Stiedemann'
status:
id: a158b8fe-9619-4be4-9412-f656b5a382ca
description: 'Sr. Sandro Barreto'
color: '#707b3b'
text_color: '#ebe07f'
priority: low
priority_label: Baixa
needed_at: '2026-04-02'
approved_at: null
rejection_reason: null
created_at: null
updated_at: null
-
id: 011aa2ea-da21-30e3-b21f-d442e73c0c66
code: null
name: 'Eligendi fugiat.'
description: null
work:
id: a158b8fe-9a68-4238-a7b6-f910bbd5d36b
name: 'Raphael Beltrão'
user:
id: a158b8fe-9cac-4d87-b08d-520e2ed35d04
name: 'Marielle Kerluke'
status:
id: a158b8fe-9e3a-4c90-8f95-266dcb21941b
description: 'Léia Manoela Assunção'
color: '#f288aa'
text_color: '#b78689'
priority: low
priority_label: Baixa
needed_at: '2026-03-20'
approved_at: null
rejection_reason: null
created_at: null
updated_at: null
items:
type: object
properties:
id:
type: string
example: e712bfdf-f9db-37dd-bab9-920b91c68f0d
code:
type: string
example: null
name:
type: string
example: 'Beatae est saepe.'
description:
type: string
example: null
work:
type: object
properties:
id:
type: string
example: a158b8fe-90e6-4513-86d6-2a8c67a9f2f1
name:
type: string
example: 'Srta. Nayara Katherine Lovato Sobrinho'
user:
type: object
properties:
id:
type: string
example: a158b8fe-9386-47f5-90f6-a1ff50ad59d3
name:
type: string
example: 'Lillie Stiedemann'
status:
type: object
properties:
id:
type: string
example: a158b8fe-9619-4be4-9412-f656b5a382ca
description:
type: string
example: 'Sr. Sandro Barreto'
color:
type: string
example: '#707b3b'
text_color:
type: string
example: '#ebe07f'
priority:
type: string
example: low
priority_label:
type: string
example: Baixa
needed_at:
type: string
example: '2026-04-02'
approved_at:
type: string
example: null
rejection_reason:
type: string
example: null
created_at:
type: string
example: null
updated_at:
type: string
example: null
links:
type: object
properties:
first:
type: string
example: '/?page=1'
last:
type: string
example: '/?page=1'
prev:
type: string
example: null
next:
type: string
example: null
meta:
type: object
properties:
current_page:
type: integer
example: 1
from:
type: integer
example: 1
last_page:
type: integer
example: 1
links:
type: array
example:
-
url: null
label: '« Anterior'
page: null
active: false
-
url: '/?page=1'
label: '1'
page: 1
active: true
-
url: null
label: 'Próximo »'
page: null
active: false
items:
type: object
properties:
url:
type: string
example: null
label:
type: string
example: '« Anterior'
page:
type: string
example: null
active:
type: boolean
example: false
path:
type: string
example: /
per_page:
type: integer
example: 10
to:
type: integer
example: 2
total:
type: integer
example: 2
tags:
- 'Product Requests'
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
sort_by:
type: string
description: 'Sort by.'
example: 'Example Sort by'
nullable: true
sort_desc:
type: boolean
description: 'Sort desc.'
example: false
nullable: true
page:
type: integer
description: 'Page. O campo value deve ser pelo menos 1.'
example: 1
nullable: true
per_page:
type: integer
description: 'Per page. O campo value deve ser pelo menos 1. O campo value não pode ser superior a 100.'
example: 1
nullable: true
q:
type: string
description: Busca.
example: 'Example Q'
nullable: true
work_id:
type: string
description: 'Obra. The uuid of an existing record in the works table.'
example: b2ea65c2-4e08-38ff-a3cc-5a5f14803f02
nullable: true
work_location_id:
type: string
description: 'Local da obra. The uuid of an existing record in the work_locations table.'
example: f9ecbaa4-496f-3876-8eff-cc48f53fa577
nullable: true
user_id:
type: string
description: 'Usuário. The uuid of an existing record in the users table.'
example: 30161f6a-e483-30ae-89c2-d1719c41cddc
nullable: true
status_id:
type: string
description: 'Status. The uuid of an existing record in the statuses table.'
example: d9528224-2967-374d-916c-b304df08784a
nullable: true
priority:
type: string
description: Prioridade.
example: 'Example Priority'
enum:
- low
- medium
- high
- urgent
nullable: true
needed_at_from:
type: string
description: 'Data de necessidade inicial. O campo value deve ser uma data válida.'
example: 'Example Needed at from'
nullable: true
needed_at_to:
type: string
description: 'Data de necessidade final. O campo value deve ser uma data válida.'
example: 'Example Needed at to'
nullable: true
responsible_id:
type: string
description: 'Responsável. The uuid of an existing record in the users table.'
example: 9156e4b3-c55e-3fd4-8511-d4c86ccf46c0
nullable: true
post:
summary: 'Create product request'
operationId: createProductRequest
description: 'Create a new product request'
parameters: []
responses:
201:
description: ''
content:
application/json:
schema:
type: object
example:
data: object
properties:
data:
type: string
example: object
tags:
- 'Product Requests'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
name:
type: string
description: 'Nome. O campo value não pode ser superior a 255 caracteres.'
example: 'Example Name'
nullable: true
description:
type: string
description: Descrição.
example: 'Example Description'
nullable: true
work_id:
type: string
description: 'Obra. The uuid of an existing record in the works table.'
example: 4fe5549b-4976-3b32-8160-c494e7dbdaf6
work_location_id:
type: string
description: 'Local da obra. The uuid of an existing record in the work_locations table.'
example: 9d6cb1d2-7a9a-32c2-8600-496d5ac77a14
nullable: true
status_id:
type: string
description: 'Status. The uuid of an existing record in the statuses table.'
example: f90fc1ec-8b55-30b3-b827-761c86785ed3
nullable: true
priority:
type: string
description: Prioridade.
example: 'Example Priority'
enum:
- low
- medium
- high
- urgent
needed_at:
type: string
description: 'Data de necessidade. O campo value deve ser uma data válida.'
example: 'Example Needed at'
nullable: true
items:
type: array
description: Itens.
example:
- null
- null
items:
type: object
properties:
product_id:
type: string
description: 'Produto. The uuid of an existing record in the products table.'
example: 48232037-b8ea-317d-9c4d-22eec51b88ea
quantity:
type: number
description: 'Quantidade. O campo value deve ser pelo menos 0.0001.'
example: 1.0
observation:
type: string
description: Observação.
example: 'Example Items * observation'
nullable: true
required:
- product_id
- quantity
required:
- work_id
'/api/product-requests/{productRequest}':
get:
summary: 'Show product request'
operationId: showProductRequest
description: 'Show a product request'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
id: 3ffa96a5-30b2-3e88-b4e0-726d115f26e1
code: null
name: 'Saepe exercitationem rerum.'
description: null
work:
id: a158b8fe-a4a1-4238-9da6-d4cbbf31d92d
name: 'Flávio Teobaldo Gil Sobrinho'
user:
id: a158b8fe-a717-4971-8b72-57e18c3ae799
name: 'Jerome Mosciski'
status:
id: a158b8fe-a8ad-48b2-a704-54d8efc39c86
description: "Théo D'ávila Toledo"
color: '#773fc8'
text_color: '#9c5887'
priority: urgent
priority_label: Urgente
needed_at: null
approved_at: null
rejection_reason: null
created_at: null
updated_at: null
properties:
data:
type: object
properties:
id:
type: string
example: 3ffa96a5-30b2-3e88-b4e0-726d115f26e1
code:
type: string
example: null
name:
type: string
example: 'Saepe exercitationem rerum.'
description:
type: string
example: null
work:
type: object
properties:
id:
type: string
example: a158b8fe-a4a1-4238-9da6-d4cbbf31d92d
name:
type: string
example: 'Flávio Teobaldo Gil Sobrinho'
user:
type: object
properties:
id:
type: string
example: a158b8fe-a717-4971-8b72-57e18c3ae799
name:
type: string
example: 'Jerome Mosciski'
status:
type: object
properties:
id:
type: string
example: a158b8fe-a8ad-48b2-a704-54d8efc39c86
description:
type: string
example: "Théo D'ávila Toledo"
color:
type: string
example: '#773fc8'
text_color:
type: string
example: '#9c5887'
priority:
type: string
example: urgent
priority_label:
type: string
example: Urgente
needed_at:
type: string
example: null
approved_at:
type: string
example: null
rejection_reason:
type: string
example: null
created_at:
type: string
example: null
updated_at:
type: string
example: null
tags:
- 'Product Requests'
put:
summary: 'Update product request'
operationId: updateProductRequest
description: 'Update a product request. Can include items to replace all items in the request.'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data: object
properties:
data:
type: string
example: object
tags:
- 'Product Requests'
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
name:
type: string
description: 'Nome. O campo value não pode ser superior a 255 caracteres.'
example: 'Example Name'
nullable: true
description:
type: string
description: Descrição.
example: 'Example Description'
nullable: true
work_id:
type: string
description: 'Obra. The uuid of an existing record in the works table.'
example: f133c15e-3312-38b7-b37f-0f3823b68677
work_location_id:
type: string
description: 'Local da obra. The uuid of an existing record in the work_locations table.'
example: 90ce7390-aa4c-3a94-a8b8-1f2a8b4cde06
nullable: true
status_id:
type: string
description: 'Status. The uuid of an existing record in the statuses table.'
example: 27a51b13-0191-3d21-96d0-c5f03993a01b
priority:
type: string
description: Prioridade.
example: 'Example Priority'
enum:
- low
- medium
- high
- urgent
needed_at:
type: string
description: 'Data de necessidade. O campo value deve ser uma data válida.'
example: 'Example Needed at'
nullable: true
items:
type: array
description: Itens.
example:
- null
- null
items:
type: object
properties:
id:
type: string
description: 'ID do Item. The uuid of an existing record in the product_request_items table.'
example: 3031dc48-0991-3916-a363-45d09292d8a6
product_id:
type: string
description: 'Produto. The uuid of an existing record in the products table.'
example: 4d0e1dea-e807-3492-b73c-d394622a8993
quantity:
type: number
description: 'Quantidade. O campo value deve ser pelo menos 0.0001.'
example: 1.0
observation:
type: string
description: Observação.
example: 'Example Items * observation'
nullable: true
required:
- product_id
- quantity
delete:
summary: 'Delete product request'
operationId: deleteProductRequest
description: 'Delete a product request'
parameters: []
responses:
204:
description: ''
content:
application/json:
schema:
type: object
nullable: true
tags:
- 'Product Requests'
parameters:
-
in: path
name: productRequest
description: 'Product Request UUID'
example: voluptatem
required: true
schema:
type: string
'/api/product-requests/{productRequest}/items':
get:
summary: 'List items'
operationId: listItems
description: 'List all items from a product request with pagination'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
-
id: 1e2345a7-0030-34ba-8d5f-5bdddf51ee6e
product:
id: a158b8fe-be76-4492-8523-b92fdf0a8b33
name: 'Marília Iasmin Carmona Neto'
code: PRD-155781
unit:
id: a158b8fe-bd2f-41ea-9b09-79943b7fe4fd
name: 'Sra. Alana das Neves Godói Sobrinho'
abbreviation: 'Luna Hortência Franco Sobrinho'
quantity: 69.9287
quantity_fulfilled: 0
quantity_pending: 69.9287
is_fulfilled: false
is_partially_fulfilled: false
observation: null
created_at: null
updated_at: null
-
id: c6309d5f-fccc-36b9-ba9a-795434624878
product:
id: a158b8fe-cc29-4499-b799-935f9838f996
name: 'Tessália Prado Filho'
code: PRD-000577
unit:
id: a158b8fe-cafc-4058-b8b0-95fea41c20ae
name: 'Estêvão Matias Jr.'
abbreviation: 'Sra. Aline Denise Rocha Filho'
quantity: 752.151
quantity_fulfilled: 0
quantity_pending: 752.151
is_fulfilled: false
is_partially_fulfilled: false
observation: 'Ab voluptatum rem et alias sed velit incidunt.'
created_at: null
updated_at: null
links:
first: '/?page=1'
last: '/?page=1'
prev: null
next: null
meta:
current_page: 1
from: 1
last_page: 1
links:
-
url: null
label: '« Anterior'
page: null
active: false
-
url: '/?page=1'
label: '1'
page: 1
active: true
-
url: null
label: 'Próximo »'
page: null
active: false
path: /
per_page: 10
to: 2
total: 2
properties:
data:
type: array
example:
-
id: 1e2345a7-0030-34ba-8d5f-5bdddf51ee6e
product:
id: a158b8fe-be76-4492-8523-b92fdf0a8b33
name: 'Marília Iasmin Carmona Neto'
code: PRD-155781
unit:
id: a158b8fe-bd2f-41ea-9b09-79943b7fe4fd
name: 'Sra. Alana das Neves Godói Sobrinho'
abbreviation: 'Luna Hortência Franco Sobrinho'
quantity: 69.9287
quantity_fulfilled: 0
quantity_pending: 69.9287
is_fulfilled: false
is_partially_fulfilled: false
observation: null
created_at: null
updated_at: null
-
id: c6309d5f-fccc-36b9-ba9a-795434624878
product:
id: a158b8fe-cc29-4499-b799-935f9838f996
name: 'Tessália Prado Filho'
code: PRD-000577
unit:
id: a158b8fe-cafc-4058-b8b0-95fea41c20ae
name: 'Estêvão Matias Jr.'
abbreviation: 'Sra. Aline Denise Rocha Filho'
quantity: 752.151
quantity_fulfilled: 0
quantity_pending: 752.151
is_fulfilled: false
is_partially_fulfilled: false
observation: 'Ab voluptatum rem et alias sed velit incidunt.'
created_at: null
updated_at: null
items:
type: object
properties:
id:
type: string
example: 1e2345a7-0030-34ba-8d5f-5bdddf51ee6e
product:
type: object
properties:
id:
type: string
example: a158b8fe-be76-4492-8523-b92fdf0a8b33
name:
type: string
example: 'Marília Iasmin Carmona Neto'
code:
type: string
example: PRD-155781
unit:
type: object
properties:
id:
type: string
example: a158b8fe-bd2f-41ea-9b09-79943b7fe4fd
name:
type: string
example: 'Sra. Alana das Neves Godói Sobrinho'
abbreviation:
type: string
example: 'Luna Hortência Franco Sobrinho'
quantity:
type: number
example: 69.9287
quantity_fulfilled:
type: integer
example: 0
quantity_pending:
type: number
example: 69.9287
is_fulfilled:
type: boolean
example: false
is_partially_fulfilled:
type: boolean
example: false
observation:
type: string
example: null
created_at:
type: string
example: null
updated_at:
type: string
example: null
links:
type: object
properties:
first:
type: string
example: '/?page=1'
last:
type: string
example: '/?page=1'
prev:
type: string
example: null
next:
type: string
example: null
meta:
type: object
properties:
current_page:
type: integer
example: 1
from:
type: integer
example: 1
last_page:
type: integer
example: 1
links:
type: array
example:
-
url: null
label: '« Anterior'
page: null
active: false
-
url: '/?page=1'
label: '1'
page: 1
active: true
-
url: null
label: 'Próximo »'
page: null
active: false
items:
type: object
properties:
url:
type: string
example: null
label:
type: string
example: '« Anterior'
page:
type: string
example: null
active:
type: boolean
example: false
path:
type: string
example: /
per_page:
type: integer
example: 10
to:
type: integer
example: 2
total:
type: integer
example: 2
tags:
- 'Product Requests'
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
q:
type: string
description: Busca.
example: 'Example Q'
nullable: true
per_page:
type: integer
description: 'Itens por página. O campo value deve ser pelo menos 1. O campo value não pode ser superior a 100.'
example: 1
post:
summary: 'Add items to request'
operationId: addItemsToRequest
description: 'Add one or more product items to the request'
parameters: []
responses:
201:
description: ''
content:
application/json:
schema:
type: object
example:
data: array
properties:
data:
type: string
example: array
tags:
- 'Product Requests'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
items:
type: array
description: 'Itens. O campo value deve ter pelo menos 1 itens.'
example:
- null
- null
items:
type: object
properties:
product_id:
type: string
description: 'Produto. The uuid of an existing record in the products table.'
example: 4a49c2d5-9d31-325f-9c81-56267df0c253
quantity:
type: number
description: 'Quantidade. O campo value deve ser pelo menos 0.0001.'
example: 1.0
observation:
type: string
description: Observação.
example: 'Example Items * observation'
nullable: true
required:
- product_id
- quantity
required:
- items
delete:
summary: 'Remove items'
operationId: removeItems
description: 'Remove one or more product items from the request'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
deleted: integer
properties:
deleted:
type: string
example: integer
tags:
- 'Product Requests'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
items:
type: array
description: 'Item. The uuid of an existing record in the product_request_items table.'
example:
- 5eaca2e3-c987-3635-af92-c6b3ce16015c
items:
type: string
required:
- items
parameters:
-
in: path
name: productRequest
description: 'Product Request UUID'
example: in
required: true
schema:
type: string
'/api/product-requests/{productRequest}/approve':
post:
summary: 'Approve product request'
operationId: approveProductRequest
description: 'Approve a product request'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data: object
properties:
data:
type: string
example: object
tags:
- 'Product Requests'
parameters:
-
in: path
name: productRequest
description: 'Product Request UUID'
example: id
required: true
schema:
type: string
'/api/product-requests/{productRequest}/reject':
post:
summary: 'Reject product request'
operationId: rejectProductRequest
description: 'Reject a product request with a reason'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data: object
properties:
data:
type: string
example: object
tags:
- 'Product Requests'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
reason:
type: string
description: 'Motivo da rejeição. O campo value não pode ser superior a 1000 caracteres.'
example: 'Example Reason'
required:
- reason
parameters:
-
in: path
name: productRequest
description: 'Product Request UUID'
example: aliquam
required: true
schema:
type: string
'/api/product-requests/{productRequest}/sync-items':
put:
summary: 'Sync items'
operationId: syncItems
description: 'Replace all items in the request'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data: object
properties:
data:
type: string
example: object
tags:
- 'Product Requests'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
items:
type: array
description: Itens.
example:
- null
- null
items:
type: object
properties:
id:
type: string
description: 'ID do Item. The uuid of an existing record in the product_request_items table.'
example: a882fc1c-0020-3370-bc7f-f91c65d4e07c
product_id:
type: string
description: 'Produto. The uuid of an existing record in the products table.'
example: 908f56ae-69b6-3082-880f-43de2f10b605
quantity:
type: number
description: 'Quantidade. O campo value deve ser pelo menos 0.0001.'
example: 1.0
observation:
type: string
description: Observação.
example: 'Example Items * observation'
nullable: true
required:
- product_id
- quantity
required:
- items
parameters:
-
in: path
name: productRequest
description: 'Product Request UUID'
example: voluptate
required: true
schema:
type: string
/api/products:
get:
summary: 'List products'
operationId: listProducts
description: 'List all products'
parameters:
-
in: query
name: sort_by
description: 'Field to sort by.'
example: created_at
required: false
schema:
type: string
description: 'Field to sort by.'
example: created_at
nullable: true
-
in: query
name: sort_desc
description: 'Sort order (true for descending, false for ascending).'
example: true
required: false
schema:
type: boolean
description: 'Sort order (true for descending, false for ascending).'
example: true
nullable: true
-
in: query
name: page
description: 'Page number for pagination. O campo value deve ser pelo menos 1.'
example: 1
required: false
schema:
type: integer
description: 'Page number for pagination. O campo value deve ser pelo menos 1.'
example: 1
nullable: true
-
in: query
name: per_page
description: 'Number of items per page (max: 100). O campo value deve ser pelo menos 1. O campo value não pode ser superior a 100.'
example: 15
required: false
schema:
type: integer
description: 'Number of items per page (max: 100). O campo value deve ser pelo menos 1. O campo value não pode ser superior a 100.'
example: 15
nullable: true
-
in: query
name: q
description: 'Search query.'
example: Brick
required: false
schema:
type: string
description: 'Search query.'
example: Brick
nullable: true
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
-
id: e1d9eb78-9aa1-3ed1-9e2d-8fba1e99e732
name: 'Elizabeth Ortega Caldeira'
code: PRD-346083
stock: 648120618
product_family:
id: a158b8fc-86fa-48d0-8503-efa00a9f9e06
name: 'Danilo Emiliano Oliveira Sobrinho'
product_brand:
id: a158b8fc-8af3-4872-8b52-41fced9b2986
name: 'Mariana Aguiar Neto'
unit:
id: a158b8fc-8de9-47a5-8976-a67b9b597687
name: 'Dr. Davi Prado Jimenes'
abbreviation: 'Rayane Thaís Vale'
image:
id: null
url: null
description: 'Id voluptatibus magnam et rem ut et sapiente.'
created_at: null
updated_at: null
-
id: 278862d1-e3c9-3a0e-9628-a096fc40f72f
name: 'Thalita Mendonça Filho'
code: PRD-403944
stock: 16507
product_family:
id: a158b8fc-9287-4898-afd5-bf3f39263a58
name: 'Lara Serra Lira'
product_brand:
id: a158b8fc-9434-40ab-a148-41ded5ae0b4a
name: 'Raphael Wilson de Arruda'
unit:
id: a158b8fc-95d0-47f3-8cee-8ab501ab5dd4
name: 'Dr. Breno Fontes Bittencourt Jr.'
abbreviation: 'Ziraldo Marco Montenegro Sobrinho'
image:
id: null
url: null
description: 'Cumque saepe sit asperiores enim quaerat ea consequuntur.'
created_at: null
updated_at: null
links:
first: '/?page=1'
last: '/?page=1'
prev: null
next: null
meta:
current_page: 1
from: 1
last_page: 1
links:
-
url: null
label: '« Anterior'
page: null
active: false
-
url: '/?page=1'
label: '1'
page: 1
active: true
-
url: null
label: 'Próximo »'
page: null
active: false
path: /
per_page: 10
to: 2
total: 2
properties:
data:
type: array
example:
-
id: e1d9eb78-9aa1-3ed1-9e2d-8fba1e99e732
name: 'Elizabeth Ortega Caldeira'
code: PRD-346083
stock: 648120618
product_family:
id: a158b8fc-86fa-48d0-8503-efa00a9f9e06
name: 'Danilo Emiliano Oliveira Sobrinho'
product_brand:
id: a158b8fc-8af3-4872-8b52-41fced9b2986
name: 'Mariana Aguiar Neto'
unit:
id: a158b8fc-8de9-47a5-8976-a67b9b597687
name: 'Dr. Davi Prado Jimenes'
abbreviation: 'Rayane Thaís Vale'
image:
id: null
url: null
description: 'Id voluptatibus magnam et rem ut et sapiente.'
created_at: null
updated_at: null
-
id: 278862d1-e3c9-3a0e-9628-a096fc40f72f
name: 'Thalita Mendonça Filho'
code: PRD-403944
stock: 16507
product_family:
id: a158b8fc-9287-4898-afd5-bf3f39263a58
name: 'Lara Serra Lira'
product_brand:
id: a158b8fc-9434-40ab-a148-41ded5ae0b4a
name: 'Raphael Wilson de Arruda'
unit:
id: a158b8fc-95d0-47f3-8cee-8ab501ab5dd4
name: 'Dr. Breno Fontes Bittencourt Jr.'
abbreviation: 'Ziraldo Marco Montenegro Sobrinho'
image:
id: null
url: null
description: 'Cumque saepe sit asperiores enim quaerat ea consequuntur.'
created_at: null
updated_at: null
items:
type: object
properties:
id:
type: string
example: e1d9eb78-9aa1-3ed1-9e2d-8fba1e99e732
name:
type: string
example: 'Elizabeth Ortega Caldeira'
code:
type: string
example: PRD-346083
stock:
type: integer
example: 648120618
product_family:
type: object
properties:
id:
type: string
example: a158b8fc-86fa-48d0-8503-efa00a9f9e06
name:
type: string
example: 'Danilo Emiliano Oliveira Sobrinho'
product_brand:
type: object
properties:
id:
type: string
example: a158b8fc-8af3-4872-8b52-41fced9b2986
name:
type: string
example: 'Mariana Aguiar Neto'
unit:
type: object
properties:
id:
type: string
example: a158b8fc-8de9-47a5-8976-a67b9b597687
name:
type: string
example: 'Dr. Davi Prado Jimenes'
abbreviation:
type: string
example: 'Rayane Thaís Vale'
image:
type: object
properties:
id:
type: string
example: null
url:
type: string
example: null
description:
type: string
example: 'Id voluptatibus magnam et rem ut et sapiente.'
created_at:
type: string
example: null
updated_at:
type: string
example: null
links:
type: object
properties:
first:
type: string
example: '/?page=1'
last:
type: string
example: '/?page=1'
prev:
type: string
example: null
next:
type: string
example: null
meta:
type: object
properties:
current_page:
type: integer
example: 1
from:
type: integer
example: 1
last_page:
type: integer
example: 1
links:
type: array
example:
-
url: null
label: '« Anterior'
page: null
active: false
-
url: '/?page=1'
label: '1'
page: 1
active: true
-
url: null
label: 'Próximo »'
page: null
active: false
items:
type: object
properties:
url:
type: string
example: null
label:
type: string
example: '« Anterior'
page:
type: string
example: null
active:
type: boolean
example: false
path:
type: string
example: /
per_page:
type: integer
example: 10
to:
type: integer
example: 2
total:
type: integer
example: 2
tags:
- Products
post:
summary: 'Create product'
operationId: createProduct
description: 'Create a new product'
parameters: []
responses:
201:
description: ''
content:
application/json:
schema:
type: object
example:
message: string
properties:
message:
type: string
example: string
tags:
- Products
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
name:
type: string
description: 'Nome. O campo value não pode ser superior a 255 caracteres.'
example: 'Example Name'
product_family_id:
type: string
description: 'Família do Produto. The uuid of an existing record in the product_families table.'
example: 0ea6f475-2d3a-3587-90af-59418b80e654
product_brand_id:
type: string
description: 'Marca do Produto. The uuid of an existing record in the product_brands table.'
example: dc44e136-40ca-3c29-b12e-e5213f775e84
unit_id:
type: string
description: 'Unidade. The uuid of an existing record in the units table.'
example: 75068e23-e549-3095-b643-306ae70e2255
description:
type: string
description: Descrição.
example: 'Example Description'
nullable: true
stock:
type: number
description: 'Estoque. O campo value deve ser pelo menos 0.'
example: 1.0
required:
- name
- product_family_id
- product_brand_id
- unit_id
- stock
'/api/products/{id}':
get:
summary: 'Show product'
operationId: showProduct
description: 'Show a product'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
id: dff58127-dd14-3ce7-a16c-259f4106ca41
name: 'Esther Pedrosa Quintana'
code: PRD-228896
stock: 1
product_family:
id: a158b8fc-a073-4332-86f5-52fe74eb823e
name: 'Mônica Cordeiro Leal'
product_brand:
id: a158b8fc-a239-4210-b696-8bca2303fb78
name: 'Sr. Wellington Carlos Campos Filho'
unit:
id: a158b8fc-a3ec-4308-a509-fcff34f121b2
name: 'Srta. Amanda Carrara'
abbreviation: 'Sra. Manuela Valente Amaral Jr.'
image:
id: null
url: null
description: 'Nihil accusamus iure eveniet tempore.'
created_at: null
updated_at: null
properties:
data:
type: object
properties:
id:
type: string
example: dff58127-dd14-3ce7-a16c-259f4106ca41
name:
type: string
example: 'Esther Pedrosa Quintana'
code:
type: string
example: PRD-228896
stock:
type: integer
example: 1
product_family:
type: object
properties:
id:
type: string
example: a158b8fc-a073-4332-86f5-52fe74eb823e
name:
type: string
example: 'Mônica Cordeiro Leal'
product_brand:
type: object
properties:
id:
type: string
example: a158b8fc-a239-4210-b696-8bca2303fb78
name:
type: string
example: 'Sr. Wellington Carlos Campos Filho'
unit:
type: object
properties:
id:
type: string
example: a158b8fc-a3ec-4308-a509-fcff34f121b2
name:
type: string
example: 'Srta. Amanda Carrara'
abbreviation:
type: string
example: 'Sra. Manuela Valente Amaral Jr.'
image:
type: object
properties:
id:
type: string
example: null
url:
type: string
example: null
description:
type: string
example: 'Nihil accusamus iure eveniet tempore.'
created_at:
type: string
example: null
updated_at:
type: string
example: null
tags:
- Products
put:
summary: 'Update product '
operationId: updateProduct
description: 'Update a product '
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
message: string
properties:
message:
type: string
example: string
tags:
- Products
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
name:
type: string
description: 'Nome. O campo value não pode ser superior a 255 caracteres.'
example: 'Example Name'
product_family_id:
type: string
description: 'Família do Produto. The uuid of an existing record in the product_families table.'
example: f67505d4-2918-3de1-98bf-4a3523a810f9
product_brand_id:
type: string
description: 'Marca do Produto. The uuid of an existing record in the product_brands table.'
example: e169eac9-c6bb-34ac-8dca-c28d258005ec
unit_id:
type: string
description: 'Unidade. The uuid of an existing record in the units table.'
example: dcdeb667-f0a7-3429-b75b-3b1799b6cd5b
stock:
type: number
description: 'Estoque. O campo value deve ser pelo menos 0.'
example: 1.0
description:
type: string
description: Descrição.
example: 'Example Description'
nullable: true
parameters:
-
in: path
name: id
description: 'The ID of the product.'
example: 1
required: true
schema:
type: integer
-
in: path
name: product
description: 'Product UUID'
example: nisi
required: true
schema:
type: string
'/api/products/{product}':
delete:
summary: 'Delete product'
operationId: deleteProduct
description: 'Delete a product'
parameters: []
responses:
204:
description: ''
content:
application/json:
schema:
type: object
nullable: true
tags:
- Products
parameters:
-
in: path
name: product
description: 'Product UUID'
example: sint
required: true
schema:
type: string
/api/reports/accounts-payable-receivable/excel:
get:
summary: 'Export Accounts Payable/Receivable to Excel'
operationId: exportAccountsPayableReceivableToExcel
description: 'Dispatches async Excel generation. Frontend receives notification via Pusher when ready.'
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- Reports
/api/reports/accounts-payable-receivable:
get:
summary: ''
operationId: getApiReportsAccountsPayableReceivable
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- Reports
security: []
/api/sectors:
get:
summary: 'List sectors'
operationId: listSectors
description: 'List all sectors'
parameters:
-
in: query
name: sort_by
description: 'Field to sort by.'
example: created_at
required: false
schema:
type: string
description: 'Field to sort by.'
example: created_at
nullable: true
-
in: query
name: sort_desc
description: 'Sort order (true for descending, false for ascending).'
example: true
required: false
schema:
type: boolean
description: 'Sort order (true for descending, false for ascending).'
example: true
nullable: true
-
in: query
name: page
description: 'Page number for pagination. O campo value deve ser pelo menos 1.'
example: 1
required: false
schema:
type: integer
description: 'Page number for pagination. O campo value deve ser pelo menos 1.'
example: 1
nullable: true
-
in: query
name: per_page
description: 'Number of items per page (max: 100). O campo value deve ser pelo menos 1. O campo value não pode ser superior a 100.'
example: 15
required: false
schema:
type: integer
description: 'Number of items per page (max: 100). O campo value deve ser pelo menos 1. O campo value não pode ser superior a 100.'
example: 15
nullable: true
-
in: query
name: q
description: 'Search query.'
example: Tecnologia
required: false
schema:
type: string
description: 'Search query.'
example: Tecnologia
nullable: true
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
-
id: b2aed19a-fde4-3225-9a05-e4fc78041bb4
name: 'doloribus commodi'
slug: null
description: null
abbreviation: null
created_at: null
updated_at: null
-
id: 98da0038-3eb8-38a9-8320-f210d979b72e
name: 'quas molestiae'
slug: null
description: 'Et consequatur aut provident et cum qui quia. Dolores magnam laborum id eaque molestiae. Adipisci porro voluptas debitis. Aut voluptatem laborum cupiditate est odio et distinctio.'
abbreviation: null
created_at: null
updated_at: null
links:
first: '/?page=1'
last: '/?page=1'
prev: null
next: null
meta:
current_page: 1
from: 1
last_page: 1
links:
-
url: null
label: '« Anterior'
page: null
active: false
-
url: '/?page=1'
label: '1'
page: 1
active: true
-
url: null
label: 'Próximo »'
page: null
active: false
path: /
per_page: 10
to: 2
total: 2
properties:
data:
type: array
example:
-
id: b2aed19a-fde4-3225-9a05-e4fc78041bb4
name: 'doloribus commodi'
slug: null
description: null
abbreviation: null
created_at: null
updated_at: null
-
id: 98da0038-3eb8-38a9-8320-f210d979b72e
name: 'quas molestiae'
slug: null
description: 'Et consequatur aut provident et cum qui quia. Dolores magnam laborum id eaque molestiae. Adipisci porro voluptas debitis. Aut voluptatem laborum cupiditate est odio et distinctio.'
abbreviation: null
created_at: null
updated_at: null
items:
type: object
properties:
id:
type: string
example: b2aed19a-fde4-3225-9a05-e4fc78041bb4
name:
type: string
example: 'doloribus commodi'
slug:
type: string
example: null
description:
type: string
example: null
abbreviation:
type: string
example: null
created_at:
type: string
example: null
updated_at:
type: string
example: null
links:
type: object
properties:
first:
type: string
example: '/?page=1'
last:
type: string
example: '/?page=1'
prev:
type: string
example: null
next:
type: string
example: null
meta:
type: object
properties:
current_page:
type: integer
example: 1
from:
type: integer
example: 1
last_page:
type: integer
example: 1
links:
type: array
example:
-
url: null
label: '« Anterior'
page: null
active: false
-
url: '/?page=1'
label: '1'
page: 1
active: true
-
url: null
label: 'Próximo »'
page: null
active: false
items:
type: object
properties:
url:
type: string
example: null
label:
type: string
example: '« Anterior'
page:
type: string
example: null
active:
type: boolean
example: false
path:
type: string
example: /
per_page:
type: integer
example: 10
to:
type: integer
example: 2
total:
type: integer
example: 2
tags:
- Sectors
post:
summary: 'Create sector'
operationId: createSector
description: 'Create a new sector'
parameters: []
responses:
201:
description: ''
content:
application/json:
schema:
type: object
example:
message: string
properties:
message:
type: string
example: string
tags:
- Sectors
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
name:
type: string
description: 'Nome. O campo value não pode ser superior a 255 caracteres.'
example: 'Example Name'
slug:
type: string
description: 'Slug. O campo value não pode ser superior a 255 caracteres.'
example: 'Example Slug'
description:
type: string
description: Descrição.
example: 'Example Description'
nullable: true
abbreviation:
type: string
description: 'Abreviação. O campo value não pode ser superior a 10 caracteres.'
example: 'Example Abbreviation'
nullable: true
image:
type: object
description: Imagem.
example:
- example1
- example2
properties:
path:
type: string
description: 'Caminho da imagem. O campo value não pode ser superior a 255 caracteres.'
example: 'Example Image path'
nullable: true
url:
type: string
description: 'URL da imagem. Must be a valid URL.'
example: 'https://example.com'
nullable: true
name:
type: string
description: 'Nome da imagem. O campo value não pode ser superior a 255 caracteres.'
example: 'Example Name'
nullable: true
size:
type: string
description: 'Tamanho da imagem. O campo value não pode ser superior a 50 caracteres.'
example: 'Example Image size'
nullable: true
extension:
type: string
description: 'Extensão da imagem. O campo value não pode ser superior a 10 caracteres.'
example: 'Example Image extension'
nullable: true
nullable: true
required:
- name
'/api/sectors/{id}':
get:
summary: 'Get sector'
operationId: getSector
description: 'Get a sector'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
id: e2540fc1-312f-31a4-bb80-b75612a45857
name: 'illum pariatur'
slug: null
description: null
abbreviation: wzy
created_at: null
updated_at: null
properties:
data:
type: object
properties:
id:
type: string
example: e2540fc1-312f-31a4-bb80-b75612a45857
name:
type: string
example: 'illum pariatur'
slug:
type: string
example: null
description:
type: string
example: null
abbreviation:
type: string
example: wzy
created_at:
type: string
example: null
updated_at:
type: string
example: null
tags:
- Sectors
put:
summary: 'Update sector'
operationId: updateSector
description: 'Update a sector'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
message: string
properties:
message:
type: string
example: string
tags:
- Sectors
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
name:
type: string
description: 'Nome. O campo value não pode ser superior a 255 caracteres.'
example: 'Example Name'
slug:
type: string
description: 'Slug. O campo value não pode ser superior a 255 caracteres.'
example: 'Example Slug'
description:
type: string
description: Descrição.
example: 'Example Description'
nullable: true
abbreviation:
type: string
description: 'Abreviação. O campo value não pode ser superior a 10 caracteres.'
example: 'Example Abbreviation'
nullable: true
image:
type: object
description: Imagem.
example:
- example1
- example2
properties:
path:
type: string
description: 'Caminho da imagem. O campo value não pode ser superior a 255 caracteres.'
example: 'Example Image path'
nullable: true
url:
type: string
description: 'URL da imagem. Must be a valid URL.'
example: 'https://example.com'
nullable: true
name:
type: string
description: 'Nome da imagem. O campo value não pode ser superior a 255 caracteres.'
example: 'Example Name'
nullable: true
size:
type: string
description: 'Tamanho da imagem. O campo value não pode ser superior a 50 caracteres.'
example: 'Example Image size'
nullable: true
extension:
type: string
description: 'Extensão da imagem. O campo value não pode ser superior a 10 caracteres.'
example: 'Example Image extension'
nullable: true
nullable: true
delete:
summary: 'Delete sector'
operationId: deleteSector
description: 'Delete a sector'
parameters: []
responses:
204:
description: ''
content:
application/json:
schema:
type: object
nullable: true
tags:
- Sectors
parameters:
-
in: path
name: id
description: 'The ID of the sector.'
example: 5
required: true
schema:
type: integer
-
in: path
name: sector
description: 'Sector ID'
example: 019556e7-2e9f-777c-a177-30bbf0646c32
required: true
schema:
type: string
'/api/sectors/{sector}/users':
get:
summary: 'List sector users'
operationId: listSectorUsers
description: 'List all users assigned to a sector'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
-
id: b6d4af40-0436-3ef9-8eda-8255cf48af1a
name: 'Prof. Reilly Schuppe PhD'
username: collier.clare
email: lhessel@example.net
image:
id: null
url: null
sectors: []
roles: []
-
id: c8890de6-dead-3a0c-9327-6ab23e212ca0
name: 'Bridget Wolf'
username: dahlia49
email: huel.fern@example.net
image:
id: null
url: null
sectors: []
roles: []
links:
first: '/?page=1'
last: '/?page=1'
prev: null
next: null
meta:
current_page: 1
from: 1
last_page: 1
links:
-
url: null
label: '« Anterior'
page: null
active: false
-
url: '/?page=1'
label: '1'
page: 1
active: true
-
url: null
label: 'Próximo »'
page: null
active: false
path: /
per_page: 10
to: 2
total: 2
properties:
data:
type: array
example:
-
id: b6d4af40-0436-3ef9-8eda-8255cf48af1a
name: 'Prof. Reilly Schuppe PhD'
username: collier.clare
email: lhessel@example.net
image:
id: null
url: null
sectors: []
roles: []
-
id: c8890de6-dead-3a0c-9327-6ab23e212ca0
name: 'Bridget Wolf'
username: dahlia49
email: huel.fern@example.net
image:
id: null
url: null
sectors: []
roles: []
items:
type: object
properties:
id:
type: string
example: b6d4af40-0436-3ef9-8eda-8255cf48af1a
name:
type: string
example: 'Prof. Reilly Schuppe PhD'
username:
type: string
example: collier.clare
email:
type: string
example: lhessel@example.net
image:
type: object
properties:
id:
type: string
example: null
url:
type: string
example: null
sectors:
type: array
example: []
roles:
type: array
example: []
links:
type: object
properties:
first:
type: string
example: '/?page=1'
last:
type: string
example: '/?page=1'
prev:
type: string
example: null
next:
type: string
example: null
meta:
type: object
properties:
current_page:
type: integer
example: 1
from:
type: integer
example: 1
last_page:
type: integer
example: 1
links:
type: array
example:
-
url: null
label: '« Anterior'
page: null
active: false
-
url: '/?page=1'
label: '1'
page: 1
active: true
-
url: null
label: 'Próximo »'
page: null
active: false
items:
type: object
properties:
url:
type: string
example: null
label:
type: string
example: '« Anterior'
page:
type: string
example: null
active:
type: boolean
example: false
path:
type: string
example: /
per_page:
type: integer
example: 10
to:
type: integer
example: 2
total:
type: integer
example: 2
tags:
- Sectors
parameters:
-
in: path
name: sector
description: 'Sector UUID'
example: 019556e7-2e9f-777c-a177-30bbf0646c32
required: true
schema:
type: string
'/api/sectors/{sector}/users/attach':
post:
summary: 'Attach users to sector'
operationId: attachUsersToSector
description: 'Attach users to a sector without removing existing ones. Expects an array of user UUIDs in the "users" field.'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
message: 'Users attached successfully'
properties:
message:
type: string
example: 'Users attached successfully'
tags:
- Sectors
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
users:
type: array
description: 'UUID do usuário. The uuid of an existing record in the users table.'
example:
- 014d7272-557a-3b45-acd1-fabbb45a2716
items:
type: string
parameters:
-
in: path
name: sector
description: 'Sector UUID'
example: 019556e7-2e9f-777c-a177-30bbf0646c32
required: true
schema:
type: string
'/api/sectors/{sector}/users/detach':
post:
summary: 'Detach users from sector'
operationId: detachUsersFromSector
description: 'Remove specific users from a sector. Expects an array of user UUIDs in the "users" field.'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
message: 'Users detached successfully'
properties:
message:
type: string
example: 'Users detached successfully'
tags:
- Sectors
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
users:
type: array
description: 'UUID do usuário. The uuid of an existing record in the users table.'
example:
- 4a8dd2f8-bb3d-3b67-abbf-7f204a23182b
items:
type: string
parameters:
-
in: path
name: sector
description: 'Sector UUID'
example: 019556e7-2e9f-777c-a177-30bbf0646c32
required: true
schema:
type: string
'/api/sectors/{sector}/users/sync':
post:
summary: 'Sync sector users'
operationId: syncSectorUsers
description: 'Replace all sector users with the provided list. Expects an array of user UUIDs in the "users" field.'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
message: 'Users synchronized successfully'
properties:
message:
type: string
example: 'Users synchronized successfully'
tags:
- Sectors
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
users:
type: array
description: 'UUID do usuário. The uuid of an existing record in the users table.'
example:
- feddb68e-c56c-34cc-ada7-2c5276d35759
items:
type: string
parameters:
-
in: path
name: sector
description: 'Sector UUID'
example: 019556e7-2e9f-777c-a177-30bbf0646c32
required: true
schema:
type: string
/api/status-modules:
get:
summary: 'List status modules'
operationId: listStatusModules
description: 'List all modules that have status functionality'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
-
name: 'iure alias'
slug: enim-facilis-voluptatum-nihil-magnam-earum-eveniet
-
name: 'omnis et'
slug: est-quis-harum-sit
properties:
data:
type: array
example:
-
name: 'iure alias'
slug: enim-facilis-voluptatum-nihil-magnam-earum-eveniet
-
name: 'omnis et'
slug: est-quis-harum-sit
items:
type: object
properties:
name:
type: string
example: 'iure alias'
slug:
type: string
example: enim-facilis-voluptatum-nihil-magnam-earum-eveniet
tags:
- 'Status Modules'
/api/statuses:
get:
summary: 'List statuses'
operationId: listStatuses
description: 'List all statuses'
parameters:
-
in: query
name: sort_by
description: 'Field to sort by.'
example: created_at
required: false
schema:
type: string
description: 'Field to sort by.'
example: created_at
nullable: true
-
in: query
name: sort_desc
description: 'Sort order (true for descending, false for ascending).'
example: true
required: false
schema:
type: boolean
description: 'Sort order (true for descending, false for ascending).'
example: true
nullable: true
-
in: query
name: page
description: 'Page number for pagination. O campo value deve ser pelo menos 1.'
example: 1
required: false
schema:
type: integer
description: 'Page number for pagination. O campo value deve ser pelo menos 1.'
example: 1
nullable: true
-
in: query
name: per_page
description: 'Number of items per page (max: 100). O campo value deve ser pelo menos 1. O campo value não pode ser superior a 100.'
example: 15
required: false
schema:
type: integer
description: 'Number of items per page (max: 100). O campo value deve ser pelo menos 1. O campo value não pode ser superior a 100.'
example: 15
nullable: true
-
in: query
name: q
description: 'Search query.'
example: 'Em andamento'
required: false
schema:
type: string
description: 'Search query.'
example: 'Em andamento'
nullable: true
-
in: query
name: module
description: 'Filter by module slug. The slug of an existing record in the status_modules table.'
example: work
required: false
schema:
type: string
description: 'Filter by module slug. The slug of an existing record in the status_modules table.'
example: work
nullable: true
-
in: query
name: sector_id
description: 'Filter by sector UUID. The uuid of an existing record in the sectors table.'
example: 019556e7-2e9f-777c-a177-30bbf0646c32
required: false
schema:
type: string
description: 'Filter by sector UUID. The uuid of an existing record in the sectors table.'
example: 019556e7-2e9f-777c-a177-30bbf0646c32
nullable: true
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
-
id: 461c698d-7981-37fa-a98f-9f0d230a3919
description: 'Dr. Richard Verdugo Sobrinho'
abbreviation: earum
color: '#4e4d6c'
text_color: '#495df8'
module:
name: Obras
slug: work
created_at: null
updated_at: null
-
id: 039225b5-5f21-3926-9c7e-2120c0755188
description: 'Kelly Colaço Cervantes Sobrinho'
abbreviation: pariatur
color: '#5b38b9'
text_color: '#2508e5'
created_at: null
updated_at: null
links:
first: '/?page=1'
last: '/?page=1'
prev: null
next: null
meta:
current_page: 1
from: 1
last_page: 1
links:
-
url: null
label: '« Anterior'
page: null
active: false
-
url: '/?page=1'
label: '1'
page: 1
active: true
-
url: null
label: 'Próximo »'
page: null
active: false
path: /
per_page: 10
to: 2
total: 2
properties:
data:
type: array
example:
-
id: 461c698d-7981-37fa-a98f-9f0d230a3919
description: 'Dr. Richard Verdugo Sobrinho'
abbreviation: earum
color: '#4e4d6c'
text_color: '#495df8'
module:
name: Obras
slug: work
created_at: null
updated_at: null
-
id: 039225b5-5f21-3926-9c7e-2120c0755188
description: 'Kelly Colaço Cervantes Sobrinho'
abbreviation: pariatur
color: '#5b38b9'
text_color: '#2508e5'
created_at: null
updated_at: null
items:
type: object
properties:
id:
type: string
example: 461c698d-7981-37fa-a98f-9f0d230a3919
description:
type: string
example: 'Dr. Richard Verdugo Sobrinho'
abbreviation:
type: string
example: earum
color:
type: string
example: '#4e4d6c'
text_color:
type: string
example: '#495df8'
module:
type: object
properties:
name:
type: string
example: Obras
slug:
type: string
example: work
created_at:
type: string
example: null
updated_at:
type: string
example: null
links:
type: object
properties:
first:
type: string
example: '/?page=1'
last:
type: string
example: '/?page=1'
prev:
type: string
example: null
next:
type: string
example: null
meta:
type: object
properties:
current_page:
type: integer
example: 1
from:
type: integer
example: 1
last_page:
type: integer
example: 1
links:
type: array
example:
-
url: null
label: '« Anterior'
page: null
active: false
-
url: '/?page=1'
label: '1'
page: 1
active: true
-
url: null
label: 'Próximo »'
page: null
active: false
items:
type: object
properties:
url:
type: string
example: null
label:
type: string
example: '« Anterior'
page:
type: string
example: null
active:
type: boolean
example: false
path:
type: string
example: /
per_page:
type: integer
example: 10
to:
type: integer
example: 2
total:
type: integer
example: 2
tags:
- Statuses
post:
summary: 'Create status'
operationId: createStatus
description: 'Create a new status'
parameters: []
responses:
201:
description: ''
content:
application/json:
schema:
type: object
example:
message: string
properties:
message:
type: string
example: string
tags:
- Statuses
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
description:
type: string
description: 'Descrição. O campo value não pode ser superior a 255 caracteres.'
example: 'Example Description'
abbreviation:
type: string
description: 'Abreviação. O campo value não pode ser superior a 255 caracteres.'
example: 'Example Abbreviation'
module:
type: string
description: Módulo.
example: 'Example Module'
sector_id:
type: string
description: 'Setor. The uuid of an existing record in the sectors table.'
example: 6f8c8c94-c39a-3593-b92d-5e52eeb2b486
color:
type: string
description: Cor.
example: 'Example Color'
nullable: true
text_color:
type: string
description: 'Cor do texto.'
example: 'Example Text color'
nullable: true
order:
type: integer
description: 'Ordem. O campo value deve ser pelo menos 0.'
example: 1
nullable: true
is_initial:
type: boolean
description: 'Status inicial.'
example: false
nullable: true
is_final:
type: boolean
description: 'Status final.'
example: false
nullable: true
required:
- description
- abbreviation
- module
- sector_id
'/api/statuses/{id}':
get:
summary: 'Get status'
operationId: getStatus
description: 'Get a status'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
id: 5435d5c9-1714-301f-a7a3-2ad6f470b4ba
description: 'Mauro Bezerra Assunção'
abbreviation: dolorem
color: '#336525'
text_color: '#17d4e5'
created_at: null
updated_at: null
properties:
data:
type: object
properties:
id:
type: string
example: 5435d5c9-1714-301f-a7a3-2ad6f470b4ba
description:
type: string
example: 'Mauro Bezerra Assunção'
abbreviation:
type: string
example: dolorem
color:
type: string
example: '#336525'
text_color:
type: string
example: '#17d4e5'
created_at:
type: string
example: null
updated_at:
type: string
example: null
tags:
- Statuses
put:
summary: 'Update status'
operationId: updateStatus
description: 'Update a status'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
message: string
properties:
message:
type: string
example: string
tags:
- Statuses
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
description:
type: string
description: 'Descrição. O campo value não pode ser superior a 255 caracteres.'
example: 'Example Description'
abbreviation:
type: string
description: 'Abreviação. O campo value não pode ser superior a 255 caracteres.'
example: 'Example Abbreviation'
module:
type: string
description: Módulo.
example: 'Example Module'
sector_id:
type: string
description: 'Setor. The uuid of an existing record in the sectors table.'
example: 0ed3fc7b-7f6d-31b9-8f1d-8a9202d74647
color:
type: string
description: Cor.
example: 'Example Color'
nullable: true
text_color:
type: string
description: 'Cor do texto.'
example: 'Example Text color'
nullable: true
order:
type: integer
description: 'Ordem. O campo value deve ser pelo menos 0.'
example: 1
is_initial:
type: boolean
description: 'Status inicial.'
example: false
is_final:
type: boolean
description: 'Status final.'
example: false
parameters:
-
in: path
name: id
description: 'The ID of the status.'
example: 1
required: true
schema:
type: integer
-
in: path
name: status
description: 'Status ID'
example: 019556e7-2e9f-777c-a177-30bbf0646c32
required: true
schema:
type: string
'/api/statuses/{status}':
delete:
summary: 'Delete status'
operationId: deleteStatus
description: 'Delete a status'
parameters: []
responses:
204:
description: ''
content:
application/json:
schema:
type: object
nullable: true
tags:
- Statuses
parameters:
-
in: path
name: status
description: 'Status ID'
example: 019556e7-2e9f-777c-a177-30bbf0646c32
required: true
schema:
type: string
/api/stocks/available-for-transfer:
get:
summary: 'List stocks available for transfer'
operationId: listStocksAvailableForTransfer
description: 'Returns a list of stock items from other works that have the specified product available for transfer'
parameters:
-
in: query
name: product_id
description: 'Product UUID to search for. O campo value deve ser um UUID válido. The uuid of an existing record in the products table.'
example: 019556e7-2e9f-777c-a177-30bbf0646c32
required: true
schema:
type: string
description: 'Product UUID to search for. O campo value deve ser um UUID válido. The uuid of an existing record in the products table.'
example: 019556e7-2e9f-777c-a177-30bbf0646c32
-
in: query
name: exclude_work_id
description: 'Work UUID to exclude from results (usually the requesting work). O campo value deve ser um UUID válido. The uuid of an existing record in the works table.'
example: 019556e7-2e9f-777c-a177-30bbf0646c33
required: false
schema:
type: string
description: 'Work UUID to exclude from results (usually the requesting work). O campo value deve ser um UUID válido. The uuid of an existing record in the works table.'
example: 019556e7-2e9f-777c-a177-30bbf0646c33
nullable: true
-
in: query
name: min_quantity
description: 'Minimum quantity available. O campo value deve ser pelo menos 0.0001.'
example: 1.0
required: false
schema:
type: number
description: 'Minimum quantity available. O campo value deve ser pelo menos 0.0001.'
example: 1.0
nullable: true
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
-
id: b8b86579-272b-3a15-ab4f-713296b0ba00
quantity: 910.2382
min_quantity: null
max_quantity: null
below_minimum: false
above_maximum: false
created_at: null
updated_at: null
-
id: 17aa287a-4cea-3e44-a338-8d7081d5b815
quantity: 945.7855
min_quantity: null
max_quantity: null
below_minimum: false
above_maximum: false
created_at: null
updated_at: null
properties:
data:
type: array
example:
-
id: b8b86579-272b-3a15-ab4f-713296b0ba00
quantity: 910.2382
min_quantity: null
max_quantity: null
below_minimum: false
above_maximum: false
created_at: null
updated_at: null
-
id: 17aa287a-4cea-3e44-a338-8d7081d5b815
quantity: 945.7855
min_quantity: null
max_quantity: null
below_minimum: false
above_maximum: false
created_at: null
updated_at: null
items:
type: object
properties:
id:
type: string
example: b8b86579-272b-3a15-ab4f-713296b0ba00
quantity:
type: number
example: 910.2382
min_quantity:
type: string
example: null
max_quantity:
type: string
example: null
below_minimum:
type: boolean
example: false
above_maximum:
type: boolean
example: false
created_at:
type: string
example: null
updated_at:
type: string
example: null
tags:
- Stock
/api/stocks:
get:
summary: 'List stocks'
operationId: listStocks
description: 'Returns a paginated list of stocks'
parameters:
-
in: query
name: sort_by
description: 'Field to sort by.'
example: created_at
required: false
schema:
type: string
description: 'Field to sort by.'
example: created_at
nullable: true
-
in: query
name: sort_desc
description: 'Sort order (true for descending, false for ascending).'
example: true
required: false
schema:
type: boolean
description: 'Sort order (true for descending, false for ascending).'
example: true
nullable: true
-
in: query
name: page
description: 'Page number for pagination. O campo value deve ser pelo menos 1.'
example: 1
required: false
schema:
type: integer
description: 'Page number for pagination. O campo value deve ser pelo menos 1.'
example: 1
nullable: true
-
in: query
name: per_page
description: 'Number of items per page. O campo value deve ser pelo menos 1. O campo value não pode ser superior a 100.'
example: 10
required: false
schema:
type: integer
description: 'Number of items per page. O campo value deve ser pelo menos 1. O campo value não pode ser superior a 100.'
example: 10
-
in: query
name: q
description: 'Search by stock name. O campo value não pode ser superior a 255 caracteres.'
example: 'Main Stock'
required: false
schema:
type: string
description: 'Search by stock name. O campo value não pode ser superior a 255 caracteres.'
example: 'Main Stock'
nullable: true
-
in: query
name: module
description: 'Filter by module type (e.g., work, customer). O campo value não pode ser superior a 100 caracteres.'
example: work
required: false
schema:
type: string
description: 'Filter by module type (e.g., work, customer). O campo value não pode ser superior a 100 caracteres.'
example: work
nullable: true
-
in: query
name: is_active
description: 'Filter by active status.'
example: true
required: false
schema:
type: boolean
description: 'Filter by active status.'
example: true
nullable: true
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
-
id: 59d139c3-90b5-3a5e-8de9-42baf00d4935
name: 'Estoque Marés S.A.'
module: work
is_active: true
is_main: false
created_at: null
updated_at: null
-
id: 76a59a89-0f19-39b1-ad7a-b8771043a6a4
name: 'Estoque Alcantara e Associados'
module: work
is_active: true
is_main: false
created_at: null
updated_at: null
links:
first: '/?page=1'
last: '/?page=1'
prev: null
next: null
meta:
current_page: 1
from: 1
last_page: 1
links:
-
url: null
label: '« Anterior'
page: null
active: false
-
url: '/?page=1'
label: '1'
page: 1
active: true
-
url: null
label: 'Próximo »'
page: null
active: false
path: /
per_page: 10
to: 2
total: 2
properties:
data:
type: array
example:
-
id: 59d139c3-90b5-3a5e-8de9-42baf00d4935
name: 'Estoque Marés S.A.'
module: work
is_active: true
is_main: false
created_at: null
updated_at: null
-
id: 76a59a89-0f19-39b1-ad7a-b8771043a6a4
name: 'Estoque Alcantara e Associados'
module: work
is_active: true
is_main: false
created_at: null
updated_at: null
items:
type: object
properties:
id:
type: string
example: 59d139c3-90b5-3a5e-8de9-42baf00d4935
name:
type: string
example: 'Estoque Marés S.A.'
module:
type: string
example: work
is_active:
type: boolean
example: true
is_main:
type: boolean
example: false
created_at:
type: string
example: null
updated_at:
type: string
example: null
links:
type: object
properties:
first:
type: string
example: '/?page=1'
last:
type: string
example: '/?page=1'
prev:
type: string
example: null
next:
type: string
example: null
meta:
type: object
properties:
current_page:
type: integer
example: 1
from:
type: integer
example: 1
last_page:
type: integer
example: 1
links:
type: array
example:
-
url: null
label: '« Anterior'
page: null
active: false
-
url: '/?page=1'
label: '1'
page: 1
active: true
-
url: null
label: 'Próximo »'
page: null
active: false
items:
type: object
properties:
url:
type: string
example: null
label:
type: string
example: '« Anterior'
page:
type: string
example: null
active:
type: boolean
example: false
path:
type: string
example: /
per_page:
type: integer
example: 10
to:
type: integer
example: 2
total:
type: integer
example: 2
tags:
- Stock
post:
summary: 'Create stock'
operationId: createStock
description: 'Creates a new stock linked to a module'
parameters: []
responses:
201:
description: ''
content:
application/json:
schema:
type: object
example:
data:
id: f6d4a2b3-c657-334e-a7a7-2dd99c572e57
name: "Estoque D'ávila Comercial Ltda."
module: work
is_active: true
is_main: false
created_at: null
updated_at: null
properties:
data:
type: object
properties:
id:
type: string
example: f6d4a2b3-c657-334e-a7a7-2dd99c572e57
name:
type: string
example: "Estoque D'ávila Comercial Ltda."
module:
type: string
example: work
is_active:
type: boolean
example: true
is_main:
type: boolean
example: false
created_at:
type: string
example: null
updated_at:
type: string
example: null
tags:
- Stock
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
name:
type: string
description: 'nome. O campo value não pode ser superior a 255 caracteres.'
example: 'Example Name'
module:
type: string
description: 'módulo. O campo value não pode ser superior a 255 caracteres.'
example: 'Example Module'
id:
type: string
description: identificador.
example: 'Example Id'
is_active:
type: boolean
description: ativo.
example: false
required:
- name
- module
- id
/api/stocks/main:
get:
summary: 'Get main stock'
operationId: getMainStock
description: 'Returns the main stock'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
id: b0e38689-c433-3573-b47c-fcedaae31f78
name: 'Estoque Chaves Ltda.'
module: work
is_active: true
is_main: false
created_at: null
updated_at: null
properties:
data:
type: object
properties:
id:
type: string
example: b0e38689-c433-3573-b47c-fcedaae31f78
name:
type: string
example: 'Estoque Chaves Ltda.'
module:
type: string
example: work
is_active:
type: boolean
example: true
is_main:
type: boolean
example: false
created_at:
type: string
example: null
updated_at:
type: string
example: null
tags:
- Stock
'/api/stocks/{id}':
get:
summary: 'Show stock'
operationId: showStock
description: 'Returns details of a specific stock'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
id: d9e7c168-968a-32dc-8a9c-75ed4122ced9
name: "Estoque Soto-D'ávila"
module: work
is_active: true
is_main: false
created_at: null
updated_at: null
properties:
data:
type: object
properties:
id:
type: string
example: d9e7c168-968a-32dc-8a9c-75ed4122ced9
name:
type: string
example: "Estoque Soto-D'ávila"
module:
type: string
example: work
is_active:
type: boolean
example: true
is_main:
type: boolean
example: false
created_at:
type: string
example: null
updated_at:
type: string
example: null
tags:
- Stock
put:
summary: 'Update stock'
operationId: updateStock
description: 'Updates an existing stock'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
id: 7c1bbe9c-7238-3c2e-8e10-bf1011719a22
name: 'Estoque Valência-Serna'
module: work
is_active: true
is_main: false
created_at: null
updated_at: null
properties:
data:
type: object
properties:
id:
type: string
example: 7c1bbe9c-7238-3c2e-8e10-bf1011719a22
name:
type: string
example: 'Estoque Valência-Serna'
module:
type: string
example: work
is_active:
type: boolean
example: true
is_main:
type: boolean
example: false
created_at:
type: string
example: null
updated_at:
type: string
example: null
tags:
- Stock
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
name:
type: string
description: 'nome. O campo value não pode ser superior a 255 caracteres.'
example: 'Example Name'
is_active:
type: boolean
description: ativo.
example: false
delete:
summary: 'Delete stock'
operationId: deleteStock
description: 'Removes a stock (soft delete)'
parameters: []
responses: { }
tags:
- Stock
parameters:
-
in: path
name: id
description: 'The ID of the stock.'
example: 1
required: true
schema:
type: integer
-
in: path
name: stock
description: 'Stock UUID'
example: 019556e7-2e9f-777c-a177-30bbf0646c32
required: true
schema:
type: string
'/api/stocks/{stock}/items':
get:
summary: 'List stock items'
operationId: listStockItems
description: 'Returns a paginated list of items/products in a stock'
parameters:
-
in: query
name: sort_by
description: 'Field to sort by.'
example: created_at
required: false
schema:
type: string
description: 'Field to sort by.'
example: created_at
nullable: true
-
in: query
name: sort_desc
description: 'Sort order (true for descending, false for ascending).'
example: true
required: false
schema:
type: boolean
description: 'Sort order (true for descending, false for ascending).'
example: true
nullable: true
-
in: query
name: page
description: 'Page number for pagination. O campo value deve ser pelo menos 1.'
example: 1
required: false
schema:
type: integer
description: 'Page number for pagination. O campo value deve ser pelo menos 1.'
example: 1
nullable: true
-
in: query
name: per_page
description: 'Number of items per page. O campo value deve ser pelo menos 1. O campo value não pode ser superior a 100.'
example: 10
required: false
schema:
type: integer
description: 'Number of items per page. O campo value deve ser pelo menos 1. O campo value não pode ser superior a 100.'
example: 10
-
in: query
name: q
description: 'Search by product name. O campo value não pode ser superior a 255 caracteres.'
example: Cement
required: false
schema:
type: string
description: 'Search by product name. O campo value não pode ser superior a 255 caracteres.'
example: Cement
nullable: true
-
in: query
name: below_minimum
description: 'Filter items below minimum quantity.'
example: true
required: false
schema:
type: boolean
description: 'Filter items below minimum quantity.'
example: true
nullable: true
-
in: query
name: above_maximum
description: 'Filter items above maximum quantity.'
example: false
required: false
schema:
type: boolean
description: 'Filter items above maximum quantity.'
example: false
nullable: true
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
-
id: 23ef7828-4aa8-37aa-9e5d-b1267b4468bf
quantity: 825.1378
min_quantity: null
max_quantity: null
below_minimum: false
above_maximum: false
created_at: null
updated_at: null
-
id: 135df10f-c5ae-3420-bb38-2005c59a9d2c
quantity: 793.1771
min_quantity: null
max_quantity: null
below_minimum: false
above_maximum: false
created_at: null
updated_at: null
links:
first: '/?page=1'
last: '/?page=1'
prev: null
next: null
meta:
current_page: 1
from: 1
last_page: 1
links:
-
url: null
label: '« Anterior'
page: null
active: false
-
url: '/?page=1'
label: '1'
page: 1
active: true
-
url: null
label: 'Próximo »'
page: null
active: false
path: /
per_page: 10
to: 2
total: 2
properties:
data:
type: array
example:
-
id: 23ef7828-4aa8-37aa-9e5d-b1267b4468bf
quantity: 825.1378
min_quantity: null
max_quantity: null
below_minimum: false
above_maximum: false
created_at: null
updated_at: null
-
id: 135df10f-c5ae-3420-bb38-2005c59a9d2c
quantity: 793.1771
min_quantity: null
max_quantity: null
below_minimum: false
above_maximum: false
created_at: null
updated_at: null
items:
type: object
properties:
id:
type: string
example: 23ef7828-4aa8-37aa-9e5d-b1267b4468bf
quantity:
type: number
example: 825.1378
min_quantity:
type: string
example: null
max_quantity:
type: string
example: null
below_minimum:
type: boolean
example: false
above_maximum:
type: boolean
example: false
created_at:
type: string
example: null
updated_at:
type: string
example: null
links:
type: object
properties:
first:
type: string
example: '/?page=1'
last:
type: string
example: '/?page=1'
prev:
type: string
example: null
next:
type: string
example: null
meta:
type: object
properties:
current_page:
type: integer
example: 1
from:
type: integer
example: 1
last_page:
type: integer
example: 1
links:
type: array
example:
-
url: null
label: '« Anterior'
page: null
active: false
-
url: '/?page=1'
label: '1'
page: 1
active: true
-
url: null
label: 'Próximo »'
page: null
active: false
items:
type: object
properties:
url:
type: string
example: null
label:
type: string
example: '« Anterior'
page:
type: string
example: null
active:
type: boolean
example: false
path:
type: string
example: /
per_page:
type: integer
example: 10
to:
type: integer
example: 2
total:
type: integer
example: 2
tags:
- Stock
parameters:
-
in: path
name: stock
description: 'Stock UUID'
example: 019556e7-2e9f-777c-a177-30bbf0646c32
required: true
schema:
type: string
'/api/stocks/{stock_id}/items/{id}':
patch:
summary: 'Update stock item'
operationId: updateStockItem
description: 'Updates min/max quantity thresholds for a stock item'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
id: 86d86d97-6929-3236-919d-5ded423b6ea5
quantity: 394.3019
min_quantity: null
max_quantity: null
below_minimum: false
above_maximum: false
created_at: null
updated_at: null
properties:
data:
type: object
properties:
id:
type: string
example: 86d86d97-6929-3236-919d-5ded423b6ea5
quantity:
type: number
example: 394.3019
min_quantity:
type: string
example: null
max_quantity:
type: string
example: null
below_minimum:
type: boolean
example: false
above_maximum:
type: boolean
example: false
created_at:
type: string
example: null
updated_at:
type: string
example: null
tags:
- Stock
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
min_quantity:
type: number
description: 'Minimum quantity threshold for low stock alert. O campo value deve ser pelo menos 0.'
example: 10.0
nullable: true
max_quantity:
type: number
description: 'Maximum quantity threshold for over stock alert. O campo value deve ser pelo menos 0.'
example: 100.0
nullable: true
parameters:
-
in: path
name: stock_id
description: 'The ID of the stock.'
example: 1
required: true
schema:
type: integer
-
in: path
name: id
description: 'The ID of the item.'
example: eum
required: true
schema:
type: string
-
in: path
name: stock
description: 'Stock UUID'
example: 019556e7-2e9f-777c-a177-30bbf0646c32
required: true
schema:
type: string
-
in: path
name: item
description: 'Stock item UUID'
example: 019556e7-3a1b-888d-b288-41ccf0757d43
required: true
schema:
type: string
'/api/stocks/{stock}/summary':
get:
summary: 'Stock summary'
operationId: stockSummary
description: 'Returns a summary with totals and alerts for the stock'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
total_products: 15
total_quantity: 1250.5
items_below_minimum: 3
items_above_maximum: 1
properties:
data:
type: object
properties:
total_products:
type: integer
example: 15
total_quantity:
type: number
example: 1250.5
items_below_minimum:
type: integer
example: 3
items_above_maximum:
type: integer
example: 1
tags:
- Stock
parameters:
-
in: path
name: stock
description: 'Stock UUID'
example: 019556e7-2e9f-777c-a177-30bbf0646c32
required: true
schema:
type: string
'/api/stocks/{stock_id}/movements':
get:
summary: 'List movements'
operationId: listMovements
description: 'Returns a paginated list of movements for a stock'
parameters:
-
in: query
name: sort_by
description: 'Field to sort by.'
example: created_at
required: false
schema:
type: string
description: 'Field to sort by.'
example: created_at
nullable: true
-
in: query
name: sort_desc
description: 'Sort order (true for descending, false for ascending).'
example: true
required: false
schema:
type: boolean
description: 'Sort order (true for descending, false for ascending).'
example: true
nullable: true
-
in: query
name: page
description: 'Page number for pagination. O campo value deve ser pelo menos 1.'
example: 1
required: false
schema:
type: integer
description: 'Page number for pagination. O campo value deve ser pelo menos 1.'
example: 1
nullable: true
-
in: query
name: per_page
description: 'Number of items per page. O campo value deve ser pelo menos 1. O campo value não pode ser superior a 100.'
example: 10
required: false
schema:
type: integer
description: 'Number of items per page. O campo value deve ser pelo menos 1. O campo value não pode ser superior a 100.'
example: 10
-
in: query
name: type
description: 'Filter by movement type (entry, consumption, transfer_in, transfer_out, adjustment_up, adjustment_down). O campo value não pode ser superior a 50 caracteres.'
example: entry
required: false
schema:
type: string
description: 'Filter by movement type (entry, consumption, transfer_in, transfer_out, adjustment_up, adjustment_down). O campo value não pode ser superior a 50 caracteres.'
example: entry
nullable: true
-
in: query
name: product_id
description: 'Filter by product UUID. O campo value deve ser um UUID válido.'
example: 019556e7-2e9f-777c-a177-30bbf0646c32
required: false
schema:
type: string
description: 'Filter by product UUID. O campo value deve ser um UUID válido.'
example: 019556e7-2e9f-777c-a177-30bbf0646c32
nullable: true
-
in: query
name: date_start
description: 'Filter movements from this date (YYYY-MM-DD). O campo value deve ser uma data válida.'
example: '2024-01-01'
required: false
schema:
type: string
description: 'Filter movements from this date (YYYY-MM-DD). O campo value deve ser uma data válida.'
example: '2024-01-01'
nullable: true
-
in: query
name: date_end
description: 'Filter movements until this date (YYYY-MM-DD). O campo value deve ser uma data válida. O campo value deve ser uma data posterior ou igual a date_start.'
example: '2024-12-31'
required: false
schema:
type: string
description: 'Filter movements until this date (YYYY-MM-DD). O campo value deve ser uma data válida. O campo value deve ser uma data posterior ou igual a date_start.'
example: '2024-12-31'
nullable: true
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
-
id: 4671ba22-9210-3ec5-a9ff-7777e8a1abab
code: MOV-850515
type: consumo
type_name: CONSUMPTION
is_entry: false
is_exit: true
quantity: 73.092
previous_quantity: 580.5028
new_quantity: 507.4108
reason: 'Rerum illo beatae ea quibusdam ratione debitis.'
movement_date: '2026-03-10T12:33:43.000000Z'
created_at: null
-
id: 5bc24a74-34d9-3be8-a015-8b1746c13a85
code: MOV-138586
type: vencido
type_name: EXPIRED
is_entry: false
is_exit: true
quantity: 92.5371
previous_quantity: 769.8862
new_quantity: 677.3491
reason: 'Vero natus saepe libero sequi corrupti in rem rerum.'
movement_date: '2026-03-05T16:33:20.000000Z'
created_at: null
links:
first: '/?page=1'
last: '/?page=1'
prev: null
next: null
meta:
current_page: 1
from: 1
last_page: 1
links:
-
url: null
label: '« Anterior'
page: null
active: false
-
url: '/?page=1'
label: '1'
page: 1
active: true
-
url: null
label: 'Próximo »'
page: null
active: false
path: /
per_page: 10
to: 2
total: 2
properties:
data:
type: array
example:
-
id: 4671ba22-9210-3ec5-a9ff-7777e8a1abab
code: MOV-850515
type: consumo
type_name: CONSUMPTION
is_entry: false
is_exit: true
quantity: 73.092
previous_quantity: 580.5028
new_quantity: 507.4108
reason: 'Rerum illo beatae ea quibusdam ratione debitis.'
movement_date: '2026-03-10T12:33:43.000000Z'
created_at: null
-
id: 5bc24a74-34d9-3be8-a015-8b1746c13a85
code: MOV-138586
type: vencido
type_name: EXPIRED
is_entry: false
is_exit: true
quantity: 92.5371
previous_quantity: 769.8862
new_quantity: 677.3491
reason: 'Vero natus saepe libero sequi corrupti in rem rerum.'
movement_date: '2026-03-05T16:33:20.000000Z'
created_at: null
items:
type: object
properties:
id:
type: string
example: 4671ba22-9210-3ec5-a9ff-7777e8a1abab
code:
type: string
example: MOV-850515
type:
type: string
example: consumo
type_name:
type: string
example: CONSUMPTION
is_entry:
type: boolean
example: false
is_exit:
type: boolean
example: true
quantity:
type: number
example: 73.092
previous_quantity:
type: number
example: 580.5028
new_quantity:
type: number
example: 507.4108
reason:
type: string
example: 'Rerum illo beatae ea quibusdam ratione debitis.'
movement_date:
type: string
example: '2026-03-10T12:33:43.000000Z'
created_at:
type: string
example: null
links:
type: object
properties:
first:
type: string
example: '/?page=1'
last:
type: string
example: '/?page=1'
prev:
type: string
example: null
next:
type: string
example: null
meta:
type: object
properties:
current_page:
type: integer
example: 1
from:
type: integer
example: 1
last_page:
type: integer
example: 1
links:
type: array
example:
-
url: null
label: '« Anterior'
page: null
active: false
-
url: '/?page=1'
label: '1'
page: 1
active: true
-
url: null
label: 'Próximo »'
page: null
active: false
items:
type: object
properties:
url:
type: string
example: null
label:
type: string
example: '« Anterior'
page:
type: string
example: null
active:
type: boolean
example: false
path:
type: string
example: /
per_page:
type: integer
example: 10
to:
type: integer
example: 2
total:
type: integer
example: 2
tags:
- 'Stock Movements'
post:
summary: 'Create movement'
operationId: createMovement
description: 'Creates a new entry or exit movement in the stock'
parameters: []
responses:
201:
description: ''
content:
application/json:
schema:
type: object
example:
data:
id: 9c03dab8-be96-330f-876d-de4ce8f80b4a
code: MOV-868505
type: 'entrada transferência'
type_name: TRANSFER_IN
is_entry: true
is_exit: false
quantity: 27.123
previous_quantity: 167.0235
new_quantity: 194.1465
reason: null
movement_date: '2026-03-04T22:44:02.000000Z'
created_at: null
properties:
data:
type: object
properties:
id:
type: string
example: 9c03dab8-be96-330f-876d-de4ce8f80b4a
code:
type: string
example: MOV-868505
type:
type: string
example: 'entrada transferência'
type_name:
type: string
example: TRANSFER_IN
is_entry:
type: boolean
example: true
is_exit:
type: boolean
example: false
quantity:
type: number
example: 27.123
previous_quantity:
type: number
example: 167.0235
new_quantity:
type: number
example: 194.1465
reason:
type: string
example: null
movement_date:
type: string
example: '2026-03-04T22:44:02.000000Z'
created_at:
type: string
example: null
tags:
- 'Stock Movements'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
product_id:
type: string
description: 'produto. The uuid of an existing record in the products table.'
example: bd4501a7-2430-390f-ba64-090841984a45
type:
type: string
description: 'tipo de movimentação.'
example: 'Example Type'
enum:
- compra
- produção
- devolução
- consumo
- venda
- perda
- vencido
- alocação
quantity:
type: number
description: quantidade.
example: 1.0
reason:
type: string
description: 'motivo. O campo value não pode ser superior a 500 caracteres.'
example: 'Example Reason'
nullable: true
reference_type:
type: string
description: 'tipo de referência. O campo value não pode ser superior a 255 caracteres.'
example: 'Example Reference type'
nullable: true
reference_id:
type: integer
description: referência.
example: 1
nullable: true
movement_date:
type: string
description: 'data da movimentação. O campo value deve ser uma data válida.'
example: '2024-01-01'
nullable: true
required:
- product_id
- type
- quantity
parameters:
-
in: path
name: stock_id
description: 'The ID of the stock.'
example: 1
required: true
schema:
type: integer
-
in: path
name: stock
description: 'Stock UUID'
example: 019556e7-2e9f-777c-a177-30bbf0646c32
required: true
schema:
type: string
'/api/stocks/{stock}/movements/transfer':
post:
summary: 'Transfer between stocks'
operationId: transferBetweenStocks
description: 'Transfers products from one stock to another'
parameters: []
responses:
201:
description: ''
content:
application/json:
schema:
type: object
example:
data:
id: 6d9bfb4f-bc93-3cfe-a5ca-4ad16cc0fb71
code: MOV-738051
type: compra
type_name: PURCHASE
is_entry: true
is_exit: false
quantity: 88.8642
previous_quantity: 899.3703
new_quantity: 988.2345
reason: 'Ipsa porro debitis aperiam iste repellat laboriosam.'
movement_date: '2026-02-21T14:10:02.000000Z'
created_at: null
properties:
data:
type: object
properties:
id:
type: string
example: 6d9bfb4f-bc93-3cfe-a5ca-4ad16cc0fb71
code:
type: string
example: MOV-738051
type:
type: string
example: compra
type_name:
type: string
example: PURCHASE
is_entry:
type: boolean
example: true
is_exit:
type: boolean
example: false
quantity:
type: number
example: 88.8642
previous_quantity:
type: number
example: 899.3703
new_quantity:
type: number
example: 988.2345
reason:
type: string
example: 'Ipsa porro debitis aperiam iste repellat laboriosam.'
movement_date:
type: string
example: '2026-02-21T14:10:02.000000Z'
created_at:
type: string
example: null
tags:
- 'Stock Movements'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
product_id:
type: string
description: 'produto. The uuid of an existing record in the products table.'
example: ba8d4c0d-6f43-35e8-a4ee-e68a62ee20e4
destination_stock_id:
type: string
description: 'estoque de destino. The value and stock must be different. The uuid of an existing record in the stocks table.'
example: 99b03f9b-ebc3-329a-ac61-37ccf8c9a280
quantity:
type: number
description: quantidade.
example: 1.0
reason:
type: string
description: 'motivo. O campo value não pode ser superior a 500 caracteres.'
example: 'Example Reason'
nullable: true
movement_date:
type: string
description: 'data da movimentação. O campo value deve ser uma data válida.'
example: '2024-01-01'
nullable: true
required:
- product_id
- destination_stock_id
- quantity
parameters:
-
in: path
name: stock
description: 'Source stock UUID'
example: 019556e7-2e9f-777c-a177-30bbf0646c32
required: true
schema:
type: string
'/api/stocks/{stock}/movements/inventory':
post:
summary: 'Inventory adjustment'
operationId: inventoryAdjustment
description: 'Performs inventory adjustment to correct stock quantity'
parameters: []
responses:
201:
description: ''
content:
application/json:
schema:
type: object
example:
data:
id: 690654da-6275-3917-a695-5439eafd4fd9
code: MOV-746655
type: alocação
type_name: ALLOCATION
is_entry: true
is_exit: false
quantity: 74.5583
previous_quantity: 819.3922
new_quantity: 893.9505
reason: 'Maxime quod sed autem reiciendis et et.'
movement_date: '2026-03-09T20:57:08.000000Z'
created_at: null
properties:
data:
type: object
properties:
id:
type: string
example: 690654da-6275-3917-a695-5439eafd4fd9
code:
type: string
example: MOV-746655
type:
type: string
example: alocação
type_name:
type: string
example: ALLOCATION
is_entry:
type: boolean
example: true
is_exit:
type: boolean
example: false
quantity:
type: number
example: 74.5583
previous_quantity:
type: number
example: 819.3922
new_quantity:
type: number
example: 893.9505
reason:
type: string
example: 'Maxime quod sed autem reiciendis et et.'
movement_date:
type: string
example: '2026-03-09T20:57:08.000000Z'
created_at:
type: string
example: null
tags:
- 'Stock Movements'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
product_id:
type: string
description: 'produto. The uuid of an existing record in the products table.'
example: 6df27943-e701-3571-b065-921fbf631b80
new_quantity:
type: number
description: 'nova quantidade.'
example: 1.0
reason:
type: string
description: 'motivo. O campo value não pode ser superior a 500 caracteres.'
example: 'Example Reason'
nullable: true
movement_date:
type: string
description: 'data da movimentação. O campo value deve ser uma data válida.'
example: '2024-01-01'
nullable: true
required:
- product_id
- new_quantity
parameters:
-
in: path
name: stock
description: 'Stock UUID'
example: 019556e7-2e9f-777c-a177-30bbf0646c32
required: true
schema:
type: string
/api/stock-movements/purchase:
post:
summary: 'Purchase entry'
operationId: purchaseEntry
description: 'Registers a purchase entry directly into the main stock'
parameters: []
responses:
201:
description: ''
content:
application/json:
schema:
type: object
example:
data:
id: 5d171a39-9588-37b7-b0e9-1232a498d34d
code: MOV-202140
type: 'ajuste saída'
type_name: ADJUSTMENT_OUT
is_entry: false
is_exit: true
quantity: 89.6856
previous_quantity: 814.3172
new_quantity: 724.6316
reason: null
movement_date: '2026-02-26T18:50:38.000000Z'
created_at: null
properties:
data:
type: object
properties:
id:
type: string
example: 5d171a39-9588-37b7-b0e9-1232a498d34d
code:
type: string
example: MOV-202140
type:
type: string
example: 'ajuste saída'
type_name:
type: string
example: ADJUSTMENT_OUT
is_entry:
type: boolean
example: false
is_exit:
type: boolean
example: true
quantity:
type: number
example: 89.6856
previous_quantity:
type: number
example: 814.3172
new_quantity:
type: number
example: 724.6316
reason:
type: string
example: null
movement_date:
type: string
example: '2026-02-26T18:50:38.000000Z'
created_at:
type: string
example: null
tags:
- 'Stock Movements'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
product_id:
type: string
description: 'produto. The uuid of an existing record in the products table.'
example: f0a6a127-fa2d-399b-b99c-7d6c5b88f9d6
quantity:
type: number
description: 'quantidade. O campo value deve ser pelo menos 0.0001.'
example: 1.0
reason:
type: string
description: 'motivo. O campo value não pode ser superior a 500 caracteres.'
example: 'Example Reason'
nullable: true
movement_date:
type: string
description: 'data do movimento. O campo value deve ser uma data válida.'
example: '2024-01-01'
nullable: true
required:
- product_id
- quantity
'/api/stock-movements/{movement}':
get:
summary: 'Show movement'
operationId: showMovement
description: 'Returns details of a specific movement'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
id: 91d737aa-e7a3-3fdc-9fce-e8425c63be02
code: MOV-481374
type: consumo
type_name: CONSUMPTION
is_entry: false
is_exit: true
quantity: 40.4141
previous_quantity: 304.5392
new_quantity: 264.1251
reason: 'Hic sit modi perferendis in voluptas.'
movement_date: '2026-03-12T02:20:46.000000Z'
created_at: null
properties:
data:
type: object
properties:
id:
type: string
example: 91d737aa-e7a3-3fdc-9fce-e8425c63be02
code:
type: string
example: MOV-481374
type:
type: string
example: consumo
type_name:
type: string
example: CONSUMPTION
is_entry:
type: boolean
example: false
is_exit:
type: boolean
example: true
quantity:
type: number
example: 40.4141
previous_quantity:
type: number
example: 304.5392
new_quantity:
type: number
example: 264.1251
reason:
type: string
example: 'Hic sit modi perferendis in voluptas.'
movement_date:
type: string
example: '2026-03-12T02:20:46.000000Z'
created_at:
type: string
example: null
tags:
- 'Stock Movements'
parameters:
-
in: path
name: movement
description: 'Movement UUID'
example: 019556e7-2e9f-777c-a177-30bbf0646c32
required: true
schema:
type: string
/api/suppliers:
get:
summary: 'List suppliers'
operationId: listSuppliers
description: 'List all suppliers'
parameters:
-
in: query
name: sort_by
description: 'Field to sort by.'
example: created_at
required: false
schema:
type: string
description: 'Field to sort by.'
example: created_at
nullable: true
-
in: query
name: sort_desc
description: 'Sort order (true for descending, false for ascending).'
example: true
required: false
schema:
type: boolean
description: 'Sort order (true for descending, false for ascending).'
example: true
nullable: true
-
in: query
name: page
description: 'Page number for pagination. O campo value deve ser pelo menos 1.'
example: 1
required: false
schema:
type: integer
description: 'Page number for pagination. O campo value deve ser pelo menos 1.'
example: 1
nullable: true
-
in: query
name: per_page
description: 'Number of items per page (max: 100). O campo value deve ser pelo menos 1. O campo value não pode ser superior a 100.'
example: 15
required: false
schema:
type: integer
description: 'Number of items per page (max: 100). O campo value deve ser pelo menos 1. O campo value não pode ser superior a 100.'
example: 15
nullable: true
-
in: query
name: q
description: 'Search query.'
example: 'Supplier name'
required: false
schema:
type: string
description: 'Search query.'
example: 'Supplier name'
nullable: true
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
-
id: 02d00f3a-c9da-39cb-8774-bd058d35333f
name: 'Elias Pontes Jr.'
email: valencia.mary@example.org
phone: '(55) 99997-1789'
document: 48.452.982/0001-89
type: pj
responsible: 'Dr. Marta Marisa Valdez Filho'
image:
id: null
url: null
address:
street: null
number: null
complement: null
neighborhood: null
city: null
state: null
zip_code: null
-
id: 9bb4dded-9f41-352f-b915-b876f87b0f7f
name: 'Simon Deverso Perez'
email: stephany.zamana@example.net
phone: '(47) 3089-5482'
document: 57.965.491/0001-22
type: pf
responsible: 'Mário Carrara Jr.'
image:
id: null
url: null
address:
street: null
number: null
complement: null
neighborhood: null
city: null
state: null
zip_code: null
links:
first: '/?page=1'
last: '/?page=1'
prev: null
next: null
meta:
current_page: 1
from: 1
last_page: 1
links:
-
url: null
label: '« Anterior'
page: null
active: false
-
url: '/?page=1'
label: '1'
page: 1
active: true
-
url: null
label: 'Próximo »'
page: null
active: false
path: /
per_page: 10
to: 2
total: 2
properties:
data:
type: array
example:
-
id: 02d00f3a-c9da-39cb-8774-bd058d35333f
name: 'Elias Pontes Jr.'
email: valencia.mary@example.org
phone: '(55) 99997-1789'
document: 48.452.982/0001-89
type: pj
responsible: 'Dr. Marta Marisa Valdez Filho'
image:
id: null
url: null
address:
street: null
number: null
complement: null
neighborhood: null
city: null
state: null
zip_code: null
-
id: 9bb4dded-9f41-352f-b915-b876f87b0f7f
name: 'Simon Deverso Perez'
email: stephany.zamana@example.net
phone: '(47) 3089-5482'
document: 57.965.491/0001-22
type: pf
responsible: 'Mário Carrara Jr.'
image:
id: null
url: null
address:
street: null
number: null
complement: null
neighborhood: null
city: null
state: null
zip_code: null
items:
type: object
properties:
id:
type: string
example: 02d00f3a-c9da-39cb-8774-bd058d35333f
name:
type: string
example: 'Elias Pontes Jr.'
email:
type: string
example: valencia.mary@example.org
phone:
type: string
example: '(55) 99997-1789'
document:
type: string
example: 48.452.982/0001-89
type:
type: string
example: pj
responsible:
type: string
example: 'Dr. Marta Marisa Valdez Filho'
image:
type: object
properties:
id:
type: string
example: null
url:
type: string
example: null
address:
type: object
properties:
street:
type: string
example: null
number:
type: string
example: null
complement:
type: string
example: null
neighborhood:
type: string
example: null
city:
type: string
example: null
state:
type: string
example: null
zip_code:
type: string
example: null
links:
type: object
properties:
first:
type: string
example: '/?page=1'
last:
type: string
example: '/?page=1'
prev:
type: string
example: null
next:
type: string
example: null
meta:
type: object
properties:
current_page:
type: integer
example: 1
from:
type: integer
example: 1
last_page:
type: integer
example: 1
links:
type: array
example:
-
url: null
label: '« Anterior'
page: null
active: false
-
url: '/?page=1'
label: '1'
page: 1
active: true
-
url: null
label: 'Próximo »'
page: null
active: false
items:
type: object
properties:
url:
type: string
example: null
label:
type: string
example: '« Anterior'
page:
type: string
example: null
active:
type: boolean
example: false
path:
type: string
example: /
per_page:
type: integer
example: 10
to:
type: integer
example: 2
total:
type: integer
example: 2
tags:
- Suppliers
post:
summary: 'Create supplier'
operationId: createSupplier
description: 'Create a new supplier'
parameters: []
responses:
201:
description: ''
content:
application/json:
schema:
type: object
example:
message: string
properties:
message:
type: string
example: string
tags:
- Suppliers
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
name:
type: string
description: Nome.
example: 'Example Name'
email:
type: string
description: 'E-mail. O campo value deve ser um endereço de e-mail válido.'
example: user@example.com
phone:
type: string
description: Telefone.
example: '(11) 99999-9999'
document:
type: string
description: CPF/CNPJ.
example: 'Example Document'
type:
type: string
description: Tipo.
example: 'Example Type'
enum:
- pf
- pj
responsible:
type: string
description: Responsável.
example: 'Example Responsible'
nullable: true
image:
type: object
description: Imagem.
example:
- example1
- example2
properties:
path:
type: string
description: 'Caminho da imagem. This field is required when image is present.'
example: 'Example Image path'
name:
type: string
description: 'Nome da imagem.'
example: 'Example Name'
nullable: true
extension:
type: string
description: 'Extensão da imagem.'
example: 'Example Image extension'
nullable: true
size:
type: string
description: 'Tamanho da imagem.'
example: 'Example Image size'
nullable: true
address:
type: object
description: Endereço.
example:
- example1
- example2
properties:
street:
type: string
description: Rua.
example: 'Example Address street'
number:
type: string
description: Número.
example: 'Example Address number'
complement:
type: string
description: Complemento.
example: 'Example Address complement'
neighborhood:
type: string
description: Bairro.
example: 'Example Address neighborhood'
city:
type: string
description: Cidade.
example: 'Example Address city'
state:
type: string
description: Estado.
example: 'Example Address state'
zip_code:
type: string
description: CEP.
example: 'Example Address zip code'
required:
- street
- number
- neighborhood
- city
- state
- zip_code
required:
- name
- document
- type
'/api/suppliers/{id}':
get:
summary: 'Get supplier'
operationId: getSupplier
description: 'Get a supplier'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
id: 5e18a1e9-0d4f-3ca0-8754-bfc68966ee45
name: 'Jorge Cortês'
email: eduarda.gomes@example.net
phone: '(73) 4844-0410'
document: 29.043.439/0001-83
type: pf
responsible: 'Dr. Cláudio Adriel Garcia'
image:
id: null
url: null
address:
street: null
number: null
complement: null
neighborhood: null
city: null
state: null
zip_code: null
properties:
data:
type: object
properties:
id:
type: string
example: 5e18a1e9-0d4f-3ca0-8754-bfc68966ee45
name:
type: string
example: 'Jorge Cortês'
email:
type: string
example: eduarda.gomes@example.net
phone:
type: string
example: '(73) 4844-0410'
document:
type: string
example: 29.043.439/0001-83
type:
type: string
example: pf
responsible:
type: string
example: 'Dr. Cláudio Adriel Garcia'
image:
type: object
properties:
id:
type: string
example: null
url:
type: string
example: null
address:
type: object
properties:
street:
type: string
example: null
number:
type: string
example: null
complement:
type: string
example: null
neighborhood:
type: string
example: null
city:
type: string
example: null
state:
type: string
example: null
zip_code:
type: string
example: null
tags:
- Suppliers
put:
summary: 'Update supplier'
operationId: updateSupplier
description: 'Update a supplier'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
message: string
properties:
message:
type: string
example: string
tags:
- Suppliers
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
name:
type: string
description: Nome.
example: 'Example Name'
email:
type: string
description: 'E-mail. O campo value deve ser um endereço de e-mail válido.'
example: user@example.com
phone:
type: string
description: Telefone.
example: '(11) 99999-9999'
document:
type: string
description: CPF/CNPJ.
example: 'Example Document'
type:
type: string
description: Tipo.
example: 'Example Type'
enum:
- pf
- pj
responsible:
type: string
description: Responsável.
example: 'Example Responsible'
nullable: true
image:
type: object
description: Imagem.
example:
- example1
- example2
properties:
path:
type: string
description: 'Caminho da imagem. This field is required when image is present.'
example: 'Example Image path'
name:
type: string
description: 'Nome da imagem.'
example: 'Example Name'
nullable: true
extension:
type: string
description: 'Extensão da imagem.'
example: 'Example Image extension'
nullable: true
size:
type: string
description: 'Tamanho da imagem.'
example: 'Example Image size'
nullable: true
address:
type: object
description: Endereço.
example:
- example1
- example2
properties:
street:
type: string
description: Rua.
example: 'Example Address street'
number:
type: string
description: Número.
example: 'Example Address number'
complement:
type: string
description: Complemento.
example: 'Example Address complement'
neighborhood:
type: string
description: Bairro.
example: 'Example Address neighborhood'
city:
type: string
description: Cidade.
example: 'Example Address city'
state:
type: string
description: Estado.
example: 'Example Address state'
zip_code:
type: string
description: CEP.
example: 'Example Address zip code'
parameters:
-
in: path
name: id
description: 'The ID of the supplier.'
example: 20
required: true
schema:
type: integer
-
in: path
name: supplier
description: 'Supplier ID'
example: 019556e7-2e9f-777c-a177-30bbf0646c32
required: true
schema:
type: string
'/api/suppliers/{supplier}':
delete:
summary: 'Delete supplier'
operationId: deleteSupplier
description: 'Delete a supplier'
parameters: []
responses:
204:
description: ''
content:
application/json:
schema:
type: object
nullable: true
tags:
- Suppliers
parameters:
-
in: path
name: supplier
description: 'Supplier ID'
example: 019556e7-2e9f-777c-a177-30bbf0646c32
required: true
schema:
type: string
/api/system-types:
get:
summary: 'System Types'
operationId: systemTypes
description: 'Get the system types'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
bankAccountTypes:
key: value
fileTypes:
key: value
legalEntityTypes:
key: value
transactionTypes:
key: value
properties:
data:
type: object
properties:
bankAccountTypes:
type: object
properties:
key:
type: string
example: value
fileTypes:
type: object
properties:
key:
type: string
example: value
legalEntityTypes:
type: object
properties:
key:
type: string
example: value
transactionTypes:
type: object
properties:
key:
type: string
example: value
tags:
- 'System Types'
/api/transaction-categories:
get:
summary: 'List transaction categories'
operationId: listTransactionCategories
description: 'List all transaction categories'
parameters:
-
in: query
name: sort_by
description: 'Field to sort by.'
example: created_at
required: false
schema:
type: string
description: 'Field to sort by.'
example: created_at
nullable: true
-
in: query
name: sort_desc
description: 'Sort order (true for descending, false for ascending).'
example: true
required: false
schema:
type: boolean
description: 'Sort order (true for descending, false for ascending).'
example: true
nullable: true
-
in: query
name: page
description: 'Page number for pagination. O campo value deve ser pelo menos 1.'
example: 1
required: false
schema:
type: integer
description: 'Page number for pagination. O campo value deve ser pelo menos 1.'
example: 1
nullable: true
-
in: query
name: per_page
description: 'Number of items per page (max: 100). O campo value deve ser pelo menos 1. O campo value não pode ser superior a 100.'
example: 15
required: false
schema:
type: integer
description: 'Number of items per page (max: 100). O campo value deve ser pelo menos 1. O campo value não pode ser superior a 100.'
example: 15
nullable: true
-
in: query
name: q
description: 'Search query.'
example: Salary
required: false
schema:
type: string
description: 'Search query.'
example: Salary
nullable: true
-
in: query
name: type
description: 'Transaction type.'
example: entrada
required: false
schema:
type: string
description: 'Transaction type.'
example: entrada
enum:
- entrada
- saída
- tarifa
- depósito
- saque
- transferência
- pagamento
- juros
- ajuste
nullable: true
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
-
id: 06e1cc6f-704a-37e8-bffa-8c3cbc2bd766
name: 'Jorge Rangel Fontes'
description: 'Ut id in delectus non eaque nesciunt velit. Itaque aut ut qui consequatur. Cupiditate aut ea magni id eos corrupti. Dolorem et deserunt dolores nesciunt est.'
type: tarifa
-
id: 7841ac78-76f6-3ba3-9607-55c7838e179d
name: 'Srta. Stella Pereira Sobrinho'
description: 'Atque similique unde iusto dolorem omnis. Error consectetur perferendis atque est. Harum accusamus nobis odio vero et voluptatem.'
type: saída
links:
first: '/?page=1'
last: '/?page=1'
prev: null
next: null
meta:
current_page: 1
from: 1
last_page: 1
links:
-
url: null
label: '« Anterior'
page: null
active: false
-
url: '/?page=1'
label: '1'
page: 1
active: true
-
url: null
label: 'Próximo »'
page: null
active: false
path: /
per_page: 10
to: 2
total: 2
properties:
data:
type: array
example:
-
id: 06e1cc6f-704a-37e8-bffa-8c3cbc2bd766
name: 'Jorge Rangel Fontes'
description: 'Ut id in delectus non eaque nesciunt velit. Itaque aut ut qui consequatur. Cupiditate aut ea magni id eos corrupti. Dolorem et deserunt dolores nesciunt est.'
type: tarifa
-
id: 7841ac78-76f6-3ba3-9607-55c7838e179d
name: 'Srta. Stella Pereira Sobrinho'
description: 'Atque similique unde iusto dolorem omnis. Error consectetur perferendis atque est. Harum accusamus nobis odio vero et voluptatem.'
type: saída
items:
type: object
properties:
id:
type: string
example: 06e1cc6f-704a-37e8-bffa-8c3cbc2bd766
name:
type: string
example: 'Jorge Rangel Fontes'
description:
type: string
example: 'Ut id in delectus non eaque nesciunt velit. Itaque aut ut qui consequatur. Cupiditate aut ea magni id eos corrupti. Dolorem et deserunt dolores nesciunt est.'
type:
type: string
example: tarifa
links:
type: object
properties:
first:
type: string
example: '/?page=1'
last:
type: string
example: '/?page=1'
prev:
type: string
example: null
next:
type: string
example: null
meta:
type: object
properties:
current_page:
type: integer
example: 1
from:
type: integer
example: 1
last_page:
type: integer
example: 1
links:
type: array
example:
-
url: null
label: '« Anterior'
page: null
active: false
-
url: '/?page=1'
label: '1'
page: 1
active: true
-
url: null
label: 'Próximo »'
page: null
active: false
items:
type: object
properties:
url:
type: string
example: null
label:
type: string
example: '« Anterior'
page:
type: string
example: null
active:
type: boolean
example: false
path:
type: string
example: /
per_page:
type: integer
example: 10
to:
type: integer
example: 2
total:
type: integer
example: 2
tags:
- 'Transaction Categories'
post:
summary: 'Create transaction category'
operationId: createTransactionCategory
description: 'Create a new transaction category'
parameters: []
responses:
201:
description: ''
content:
application/json:
schema:
type: object
example:
message: string
properties:
message:
type: string
example: string
tags:
- 'Transaction Categories'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
name:
type: string
description: Name.
example: 'Example Name'
description:
type: string
description: Description.
example: 'Example Description'
type:
type: string
description: Type.
example: 'Example Type'
enum:
- entrada
- saída
- tarifa
- depósito
- saque
- transferência
- pagamento
- juros
- ajuste
required:
- name
- type
'/api/transaction-categories/{transactionCategory}':
get:
summary: 'Show transaction category'
operationId: showTransactionCategory
description: 'Show a transaction category'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
id: 824801a5-5c69-3dc6-b6b4-a9a3072e2750
name: 'Sr. Leonardo Sandro Burgos'
description: 'Aut occaecati dolorum corporis totam iste quisquam nostrum. Et eligendi et dolore quia est aut rerum. Nostrum eum repellendus assumenda soluta harum id. Ratione fugiat quis vel labore in.'
type: saída
properties:
data:
type: object
properties:
id:
type: string
example: 824801a5-5c69-3dc6-b6b4-a9a3072e2750
name:
type: string
example: 'Sr. Leonardo Sandro Burgos'
description:
type: string
example: 'Aut occaecati dolorum corporis totam iste quisquam nostrum. Et eligendi et dolore quia est aut rerum. Nostrum eum repellendus assumenda soluta harum id. Ratione fugiat quis vel labore in.'
type:
type: string
example: saída
tags:
- 'Transaction Categories'
put:
summary: 'Update transaction category'
operationId: updateTransactionCategory
description: 'Update a transaction category'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
message: string
properties:
message:
type: string
example: string
tags:
- 'Transaction Categories'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
name:
type: string
description: Name.
example: 'Example Name'
description:
type: string
description: Description.
example: 'Example Description'
type:
type: string
description: Type.
example: 'Example Type'
enum:
- entrada
- saída
- tarifa
- depósito
- saque
- transferência
- pagamento
- juros
- ajuste
required:
- name
- type
delete:
summary: 'Delete transaction category'
operationId: deleteTransactionCategory
description: 'Delete a transaction category'
parameters: []
responses:
204:
description: ''
content:
application/json:
schema:
type: object
nullable: true
tags:
- 'Transaction Categories'
parameters:
-
in: path
name: transactionCategory
description: 'Transaction category UUID'
example: odit
required: true
schema:
type: string
/api/units:
get:
summary: 'List units'
operationId: listUnits
description: 'List all units'
parameters:
-
in: query
name: q
description: ''
example: Structure
required: false
schema:
type: string
description: ''
example: Structure
nullable: true
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
-
id: a91f7969-dffe-34fc-bba9-12ebe439da4b
name: 'Fernando Carlos Rivera'
abbreviation: 'Sra. Marina de Arruda Filho'
description: 'Laudantium autem et vel.'
created_at: null
updated_at: null
-
id: a2891ff7-f4e6-316a-afd7-5be2b6028ab2
name: 'Sra. Naomi Pacheco Jr.'
abbreviation: 'Dr. Renan Chaves'
description: 'Aut in quis atque rerum.'
created_at: null
updated_at: null
links:
first: '/?page=1'
last: '/?page=1'
prev: null
next: null
meta:
current_page: 1
from: 1
last_page: 1
links:
-
url: null
label: '« Anterior'
page: null
active: false
-
url: '/?page=1'
label: '1'
page: 1
active: true
-
url: null
label: 'Próximo »'
page: null
active: false
path: /
per_page: 10
to: 2
total: 2
properties:
data:
type: array
example:
-
id: a91f7969-dffe-34fc-bba9-12ebe439da4b
name: 'Fernando Carlos Rivera'
abbreviation: 'Sra. Marina de Arruda Filho'
description: 'Laudantium autem et vel.'
created_at: null
updated_at: null
-
id: a2891ff7-f4e6-316a-afd7-5be2b6028ab2
name: 'Sra. Naomi Pacheco Jr.'
abbreviation: 'Dr. Renan Chaves'
description: 'Aut in quis atque rerum.'
created_at: null
updated_at: null
items:
type: object
properties:
id:
type: string
example: a91f7969-dffe-34fc-bba9-12ebe439da4b
name:
type: string
example: 'Fernando Carlos Rivera'
abbreviation:
type: string
example: 'Sra. Marina de Arruda Filho'
description:
type: string
example: 'Laudantium autem et vel.'
created_at:
type: string
example: null
updated_at:
type: string
example: null
links:
type: object
properties:
first:
type: string
example: '/?page=1'
last:
type: string
example: '/?page=1'
prev:
type: string
example: null
next:
type: string
example: null
meta:
type: object
properties:
current_page:
type: integer
example: 1
from:
type: integer
example: 1
last_page:
type: integer
example: 1
links:
type: array
example:
-
url: null
label: '« Anterior'
page: null
active: false
-
url: '/?page=1'
label: '1'
page: 1
active: true
-
url: null
label: 'Próximo »'
page: null
active: false
items:
type: object
properties:
url:
type: string
example: null
label:
type: string
example: '« Anterior'
page:
type: string
example: null
active:
type: boolean
example: false
path:
type: string
example: /
per_page:
type: integer
example: 10
to:
type: integer
example: 2
total:
type: integer
example: 2
tags:
- Units
post:
summary: 'Create unit'
operationId: createUnit
description: 'Create a new unit'
parameters: []
responses:
201:
description: ''
content:
application/json:
schema:
type: object
example:
message: string
properties:
message:
type: string
example: string
tags:
- Units
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
name:
type: string
description: 'Nome da unidade.'
example: 'Example Name'
abbreviation:
type: string
description: Abreviação.
example: 'Example Abbreviation'
description:
type: string
description: Descrição.
example: 'Example Description'
nullable: true
required:
- name
- abbreviation
'/api/units/{id}':
get:
summary: 'Show unit'
operationId: showUnit
description: 'Show a unit'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
id: 001eb2a9-1224-350e-93ea-0377405f2476
name: 'Dr. Cíntia Romero Lozano Filho'
abbreviation: 'Dr. Joaquin Mendes Vega'
description: 'Consectetur sint nihil earum.'
created_at: null
updated_at: null
properties:
data:
type: object
properties:
id:
type: string
example: 001eb2a9-1224-350e-93ea-0377405f2476
name:
type: string
example: 'Dr. Cíntia Romero Lozano Filho'
abbreviation:
type: string
example: 'Dr. Joaquin Mendes Vega'
description:
type: string
example: 'Consectetur sint nihil earum.'
created_at:
type: string
example: null
updated_at:
type: string
example: null
tags:
- Units
put:
summary: 'Update unit'
operationId: updateUnit
description: 'Update a unit'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
message: string
properties:
message:
type: string
example: string
tags:
- Units
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
name:
type: string
description: 'Nome da unidade.'
example: 'Example Name'
abbreviation:
type: string
description: Abreviação.
example: 'Example Abbreviation'
description:
type: string
description: Descrição.
example: 'Example Description'
nullable: true
required:
- name
- abbreviation
parameters:
-
in: path
name: id
description: 'The ID of the unit.'
example: 1
required: true
schema:
type: integer
-
in: path
name: unit
description: 'Unit UUID'
example: qui
required: true
schema:
type: string
'/api/units/{unit}':
delete:
summary: 'Delete unit'
operationId: deleteUnit
description: 'Delete a unit'
parameters: []
responses:
204:
description: ''
content:
application/json:
schema:
type: object
nullable: true
tags:
- Units
parameters:
-
in: path
name: unit
description: 'Unit UUID'
example: qui
required: true
schema:
type: string
/api/users:
get:
summary: 'List users'
operationId: listUsers
description: 'List all users'
parameters:
-
in: query
name: sort_by
description: 'Field to sort by.'
example: created_at
required: false
schema:
type: string
description: 'Field to sort by.'
example: created_at
nullable: true
-
in: query
name: sort_desc
description: 'Sort order (true for descending, false for ascending).'
example: true
required: false
schema:
type: boolean
description: 'Sort order (true for descending, false for ascending).'
example: true
nullable: true
-
in: query
name: page
description: 'Page number for pagination. O campo value deve ser pelo menos 1.'
example: 1
required: false
schema:
type: integer
description: 'Page number for pagination. O campo value deve ser pelo menos 1.'
example: 1
nullable: true
-
in: query
name: per_page
description: 'Number of items per page (max: 100). O campo value deve ser pelo menos 1. O campo value não pode ser superior a 100.'
example: 15
required: false
schema:
type: integer
description: 'Number of items per page (max: 100). O campo value deve ser pelo menos 1. O campo value não pode ser superior a 100.'
example: 15
nullable: true
-
in: query
name: q
description: 'Search query by name or email.'
example: 'John Doe'
required: false
schema:
type: string
description: 'Search query by name or email.'
example: 'John Doe'
nullable: true
-
in: query
name: sector_id
description: 'Filter by sector UUID. The uuid of an existing record in the sectors table.'
example: 123e4567-e89b-12d3-a456-426614174000
required: false
schema:
type: string
description: 'Filter by sector UUID. The uuid of an existing record in the sectors table.'
example: 123e4567-e89b-12d3-a456-426614174000
nullable: true
-
in: query
name: role
description: 'Filter by role name. The name of an existing record in the roles table.'
example: ADMIN
required: false
schema:
type: string
description: 'Filter by role name. The name of an existing record in the roles table.'
example: ADMIN
nullable: true
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
-
id: 0c4e7bba-aaf7-3a26-81e4-57b95550efcf
name: 'Westley Cole DVM'
username: vkassulke
email: spinka.jovanny@example.org
image:
id: null
url: null
sectors: []
roles: []
-
id: f9ae44f7-8a52-392d-88aa-eabb51a305cd
name: 'Prof. Esta Ratke MD'
username: joelle07
email: kattie41@example.org
image:
id: null
url: null
sectors: []
roles: []
links:
first: '/?page=1'
last: '/?page=1'
prev: null
next: null
meta:
current_page: 1
from: 1
last_page: 1
links:
-
url: null
label: '« Anterior'
page: null
active: false
-
url: '/?page=1'
label: '1'
page: 1
active: true
-
url: null
label: 'Próximo »'
page: null
active: false
path: /
per_page: 10
to: 2
total: 2
properties:
data:
type: array
example:
-
id: 0c4e7bba-aaf7-3a26-81e4-57b95550efcf
name: 'Westley Cole DVM'
username: vkassulke
email: spinka.jovanny@example.org
image:
id: null
url: null
sectors: []
roles: []
-
id: f9ae44f7-8a52-392d-88aa-eabb51a305cd
name: 'Prof. Esta Ratke MD'
username: joelle07
email: kattie41@example.org
image:
id: null
url: null
sectors: []
roles: []
items:
type: object
properties:
id:
type: string
example: 0c4e7bba-aaf7-3a26-81e4-57b95550efcf
name:
type: string
example: 'Westley Cole DVM'
username:
type: string
example: vkassulke
email:
type: string
example: spinka.jovanny@example.org
image:
type: object
properties:
id:
type: string
example: null
url:
type: string
example: null
sectors:
type: array
example: []
roles:
type: array
example: []
links:
type: object
properties:
first:
type: string
example: '/?page=1'
last:
type: string
example: '/?page=1'
prev:
type: string
example: null
next:
type: string
example: null
meta:
type: object
properties:
current_page:
type: integer
example: 1
from:
type: integer
example: 1
last_page:
type: integer
example: 1
links:
type: array
example:
-
url: null
label: '« Anterior'
page: null
active: false
-
url: '/?page=1'
label: '1'
page: 1
active: true
-
url: null
label: 'Próximo »'
page: null
active: false
items:
type: object
properties:
url:
type: string
example: null
label:
type: string
example: '« Anterior'
page:
type: string
example: null
active:
type: boolean
example: false
path:
type: string
example: /
per_page:
type: integer
example: 10
to:
type: integer
example: 2
total:
type: integer
example: 2
tags:
- Users
post:
summary: 'Create user'
operationId: createUser
description: 'Create a new user'
parameters: []
responses:
201:
description: ''
content:
application/json:
schema:
type: object
example:
message: string
properties:
message:
type: string
example: string
tags:
- Users
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
name:
type: string
description: Nome.
example: 'Example Name'
email:
type: string
description: 'E-mail. O campo value deve ser um endereço de e-mail válido.'
example: user@example.com
username:
type: string
description: Usuário.
example: julia59
image:
type: object
description: Imagem.
example:
- example1
- example2
properties:
path:
type: string
description: 'Caminho da imagem. This field is required when image is present.'
example: 'Example Image path'
name:
type: string
description: 'Nome da imagem.'
example: 'Example Name'
nullable: true
extension:
type: string
description: 'Extensão da imagem.'
example: 'Example Image extension'
nullable: true
size:
type: string
description: 'Tamanho da imagem.'
example: 'Example Image size'
nullable: true
sectors:
type: array
description: 'UUID do setor. The uuid of an existing record in the sectors table.'
example:
- 413d864a-006d-3339-a57f-8c30b48f863a
items:
type: string
roles:
type: array
description: 'UUID da função. The uuid of an existing record in the roles table.'
example:
- 56a20e5e-9625-3401-9f04-e521017255a2
items:
type: string
required:
- name
- email
- username
'/api/users/{id}':
get:
summary: 'Get user'
operationId: getUser
description: 'Get a user'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
id: 5ef73b38-15a7-33fa-a27e-820409e685d2
name: 'Everette Pfannerstill'
username: fsmith
email: braynor@example.net
image:
id: null
url: null
sectors: []
roles: []
properties:
data:
type: object
properties:
id:
type: string
example: 5ef73b38-15a7-33fa-a27e-820409e685d2
name:
type: string
example: 'Everette Pfannerstill'
username:
type: string
example: fsmith
email:
type: string
example: braynor@example.net
image:
type: object
properties:
id:
type: string
example: null
url:
type: string
example: null
sectors:
type: array
example: []
roles:
type: array
example: []
tags:
- Users
put:
summary: 'Update user'
operationId: updateUser
description: 'Update a user'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
message: string
properties:
message:
type: string
example: string
tags:
- Users
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
name:
type: string
description: Nome.
example: 'Example Name'
email:
type: string
description: 'E-mail. O campo value deve ser um endereço de e-mail válido.'
example: user@example.com
username:
type: string
description: Usuário.
example: dubuque.rachel
password:
type: string
description: Password.
example: password123
image:
type: object
description: Imagem.
example:
- example1
- example2
properties:
path:
type: string
description: 'Caminho da imagem. This field is required when image is present.'
example: 'Example Image path'
name:
type: string
description: 'Nome da imagem.'
example: 'Example Name'
nullable: true
extension:
type: string
description: 'Extensão da imagem.'
example: 'Example Image extension'
nullable: true
size:
type: string
description: 'Tamanho da imagem.'
example: 'Example Image size'
nullable: true
sectors:
type: array
description: 'UUID do setor. The uuid of an existing record in the sectors table.'
example:
- c69102ab-e72b-3243-adc2-1f37fc479e21
items:
type: string
roles:
type: array
description: 'UUID da função. The uuid of an existing record in the roles table.'
example:
- f4c1df6c-a301-3448-aa55-0d157bd4dd2e
items:
type: string
parameters:
-
in: path
name: id
description: 'The ID of the user.'
example: 1
required: true
schema:
type: integer
'/api/users/{user}':
delete:
summary: 'Delete user'
operationId: deleteUser
description: 'Delete a user'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
message: string
properties:
message:
type: string
example: string
tags:
- Users
parameters:
-
in: path
name: user
description: 'The user.'
example: 1
required: true
schema:
type: integer
'/api/users/{user}/password-reset':
put:
summary: 'Reset user password'
operationId: resetUserPassword
description: 'Reset a user password'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
message: 'Password reset successfully to foobaar'
properties:
message:
type: string
example: 'Password reset successfully to foobaar'
tags:
- Users
parameters:
-
in: path
name: user
description: 'User ID'
example: 019556e7-2e9f-777c-a177-30bbf0646c32
required: true
schema:
type: string
'/api/users/{user}/permissions':
put:
summary: 'Attach permissions to user'
operationId: attachPermissionsToUser
description: 'Attach direct permissions to a user'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
message: 'Permissions attached successfully'
properties:
message:
type: string
example: 'Permissions attached successfully'
tags:
- Users
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
permissions:
type: array
description: 'UUID da permissão. The uuid of an existing record in the permissions table.'
example:
- 6fc8dab9-42a3-3f32-9173-780bb4817671
items:
type: string
get:
summary: 'List user direct permissions'
operationId: listUserDirectPermissions
description: 'List direct permissions associated with a user'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
-
id: null
name: consequatur
display_name: 'Quaerat pariatur est asperiores dolores error ea deserunt sed.'
-
id: null
name: quisquam
display_name: 'Omnis iure beatae expedita maiores.'
properties:
data:
type: array
example:
-
id: null
name: consequatur
display_name: 'Quaerat pariatur est asperiores dolores error ea deserunt sed.'
-
id: null
name: quisquam
display_name: 'Omnis iure beatae expedita maiores.'
items:
type: object
properties:
id:
type: string
example: null
name:
type: string
example: consequatur
display_name:
type: string
example: 'Quaerat pariatur est asperiores dolores error ea deserunt sed.'
tags:
- Users
parameters:
-
in: path
name: user
description: 'The user.'
example: 1
required: true
schema:
type: integer
/api/work-locations:
get:
summary: 'List work locations'
operationId: listWorkLocations
description: 'List all work locations'
parameters:
-
in: query
name: sort_by
description: 'Field to sort by.'
example: created_at
required: false
schema:
type: string
description: 'Field to sort by.'
example: created_at
nullable: true
-
in: query
name: sort_desc
description: 'Sort order (true for descending, false for ascending).'
example: true
required: false
schema:
type: boolean
description: 'Sort order (true for descending, false for ascending).'
example: true
nullable: true
-
in: query
name: page
description: 'Page number for pagination. O campo value deve ser pelo menos 1.'
example: 1
required: false
schema:
type: integer
description: 'Page number for pagination. O campo value deve ser pelo menos 1.'
example: 1
nullable: true
-
in: query
name: per_page
description: 'Number of items per page (max: 100). O campo value deve ser pelo menos 1. O campo value não pode ser superior a 100.'
example: 15
required: false
schema:
type: integer
description: 'Number of items per page (max: 100). O campo value deve ser pelo menos 1. O campo value não pode ser superior a 100.'
example: 15
nullable: true
-
in: query
name: q
description: 'Search query.'
example: Tecnologia
required: false
schema:
type: string
description: 'Search query.'
example: Tecnologia
nullable: true
-
in: query
name: work
description: 'Work. The uuid of an existing record in the works table.'
example: uuid
required: false
schema:
type: string
description: 'Work. The uuid of an existing record in the works table.'
example: uuid
nullable: true
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
-
id: 61183365-8469-3a34-bd07-c7ea6edf7f86
description: 'Fabrício Eduardo Ávila Neto'
work:
id: null
name: null
documents: []
created_at: null
updated_at: null
-
id: 8ca39c4a-534c-302c-bfca-95fead1142a8
description: 'Ricardo Neves da Rosa'
work:
id: null
name: null
documents: []
created_at: null
updated_at: null
links:
first: '/?page=1'
last: '/?page=1'
prev: null
next: null
meta:
current_page: 1
from: 1
last_page: 1
links:
-
url: null
label: '« Anterior'
page: null
active: false
-
url: '/?page=1'
label: '1'
page: 1
active: true
-
url: null
label: 'Próximo »'
page: null
active: false
path: /
per_page: 10
to: 2
total: 2
properties:
data:
type: array
example:
-
id: 61183365-8469-3a34-bd07-c7ea6edf7f86
description: 'Fabrício Eduardo Ávila Neto'
work:
id: null
name: null
documents: []
created_at: null
updated_at: null
-
id: 8ca39c4a-534c-302c-bfca-95fead1142a8
description: 'Ricardo Neves da Rosa'
work:
id: null
name: null
documents: []
created_at: null
updated_at: null
items:
type: object
properties:
id:
type: string
example: 61183365-8469-3a34-bd07-c7ea6edf7f86
description:
type: string
example: 'Fabrício Eduardo Ávila Neto'
work:
type: object
properties:
id:
type: string
example: null
name:
type: string
example: null
documents:
type: array
example: []
created_at:
type: string
example: null
updated_at:
type: string
example: null
links:
type: object
properties:
first:
type: string
example: '/?page=1'
last:
type: string
example: '/?page=1'
prev:
type: string
example: null
next:
type: string
example: null
meta:
type: object
properties:
current_page:
type: integer
example: 1
from:
type: integer
example: 1
last_page:
type: integer
example: 1
links:
type: array
example:
-
url: null
label: '« Anterior'
page: null
active: false
-
url: '/?page=1'
label: '1'
page: 1
active: true
-
url: null
label: 'Próximo »'
page: null
active: false
items:
type: object
properties:
url:
type: string
example: null
label:
type: string
example: '« Anterior'
page:
type: string
example: null
active:
type: boolean
example: false
path:
type: string
example: /
per_page:
type: integer
example: 10
to:
type: integer
example: 2
total:
type: integer
example: 2
tags:
- 'Work Locations'
post:
summary: 'Create work location'
operationId: createWorkLocation
description: 'Create a new work location'
parameters: []
responses:
201:
description: ''
content:
application/json:
schema:
type: object
example:
message: string
properties:
message:
type: string
example: string
tags:
- 'Work Locations'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
description:
type: string
description: 'Descrição. O campo value não pode ser superior a 255 caracteres.'
example: 'Example Description'
work_id:
type: string
description: 'Obra. The uuid of an existing record in the works table.'
example: fb58867a-8645-3a5c-8a96-8e27f1a8c8ec
required:
- description
- work_id
'/api/work-locations/{workLocation}':
get:
summary: 'Get work location'
operationId: getWorkLocation
description: 'Get a work location'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
id: 16bbfa26-9db1-3d45-83d0-a926a993ff18
description: 'Gilberto Aaron Torres Neto'
work:
id: null
name: null
documents: []
created_at: null
updated_at: null
properties:
data:
type: object
properties:
id:
type: string
example: 16bbfa26-9db1-3d45-83d0-a926a993ff18
description:
type: string
example: 'Gilberto Aaron Torres Neto'
work:
type: object
properties:
id:
type: string
example: null
name:
type: string
example: null
documents:
type: array
example: []
created_at:
type: string
example: null
updated_at:
type: string
example: null
tags:
- 'Work Locations'
put:
summary: 'Update work location'
operationId: updateWorkLocation
description: 'Update a work location'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
message: string
properties:
message:
type: string
example: string
tags:
- 'Work Locations'
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
description:
type: string
description: 'Descrição. O campo value não pode ser superior a 255 caracteres.'
example: 'Example Description'
work_id:
type: string
description: 'Obra. The uuid of an existing record in the works table.'
example: c776c01b-8977-337a-a96d-9bea91877028
delete:
summary: 'Delete work location'
operationId: deleteWorkLocation
description: 'Delete a work location'
parameters: []
responses:
204:
description: ''
content:
application/json:
schema:
type: object
nullable: true
tags:
- 'Work Locations'
parameters:
-
in: path
name: workLocation
description: 'Work Location ID'
example: 019556e7-2e9f-777c-a177-30bbf0646c32
required: true
schema:
type: string
/api/works:
get:
summary: 'List works'
operationId: listWorks
description: 'List all works'
parameters:
-
in: query
name: sort_by
description: 'Field to sort by.'
example: created_at
required: false
schema:
type: string
description: 'Field to sort by.'
example: created_at
nullable: true
-
in: query
name: sort_desc
description: 'Sort order (true for descending, false for ascending).'
example: true
required: false
schema:
type: boolean
description: 'Sort order (true for descending, false for ascending).'
example: true
nullable: true
-
in: query
name: page
description: 'Page number for pagination. O campo value deve ser pelo menos 1.'
example: 1
required: false
schema:
type: integer
description: 'Page number for pagination. O campo value deve ser pelo menos 1.'
example: 1
nullable: true
-
in: query
name: per_page
description: 'Number of items per page (max: 100). O campo value deve ser pelo menos 1. O campo value não pode ser superior a 100.'
example: 15
required: false
schema:
type: integer
description: 'Number of items per page (max: 100). O campo value deve ser pelo menos 1. O campo value não pode ser superior a 100.'
example: 15
nullable: true
-
in: query
name: q
description: 'Search query.'
example: Tecnologia
required: false
schema:
type: string
description: 'Search query.'
example: Tecnologia
nullable: true
-
in: query
name: customer_id
description: 'Filter by customer UUID. The uuid of an existing record in the customers table.'
example: 019556e7-2e9f-777c-a177-30bbf0646c32
required: false
schema:
type: string
description: 'Filter by customer UUID. The uuid of an existing record in the customers table.'
example: 019556e7-2e9f-777c-a177-30bbf0646c32
nullable: true
-
in: query
name: status_id
description: 'Filter by status UUID. The uuid of an existing record in the statuses table.'
example: 019556e7-2e9f-777c-a177-30bbf0646c32
required: false
schema:
type: string
description: 'Filter by status UUID. The uuid of an existing record in the statuses table.'
example: 019556e7-2e9f-777c-a177-30bbf0646c32
nullable: true
-
in: query
name: responsible_id
description: 'Filter by responsible user UUID. Only works if user has "work view-all" permission. The uuid of an existing record in the users table.'
example: 019556e7-2e9f-777c-a177-30bbf0646c32
required: false
schema:
type: string
description: 'Filter by responsible user UUID. Only works if user has "work view-all" permission. The uuid of an existing record in the users table.'
example: 019556e7-2e9f-777c-a177-30bbf0646c32
nullable: true
-
in: query
name: no_responsible
description: 'Filter works without any responsible users.'
example: true
required: false
schema:
type: boolean
description: 'Filter works without any responsible users.'
example: true
nullable: true
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
-
id: 54bf8530-68e8-33bf-b632-4888e41f0acc
name: 'Sr. Mário Gil Marés'
address:
street: null
number: null
complement: null
neighborhood: null
city: null
state: null
zip_code: null
documents: []
locations: []
product_quantity_lists_count: 0
product_quantity_list_items_count: 0
documents_count: 0
locations_documents_count: 0
total_documents_count: 0
started_at:
date: '1994-03-20 02:34:47.000000'
timezone_type: 3
timezone: America/Sao_Paulo
created_at: null
updated_at: null
-
id: e0cd1587-dba8-301a-9f50-dd42015e0361
name: 'Gilberto Everton Ortiz'
address:
street: null
number: null
complement: null
neighborhood: null
city: null
state: null
zip_code: null
documents: []
locations: []
product_quantity_lists_count: 0
product_quantity_list_items_count: 0
documents_count: 0
locations_documents_count: 0
total_documents_count: 0
started_at:
date: '1997-12-09 16:09:04.000000'
timezone_type: 3
timezone: America/Sao_Paulo
created_at: null
updated_at: null
links:
first: '/?page=1'
last: '/?page=1'
prev: null
next: null
meta:
current_page: 1
from: 1
last_page: 1
links:
-
url: null
label: '« Anterior'
page: null
active: false
-
url: '/?page=1'
label: '1'
page: 1
active: true
-
url: null
label: 'Próximo »'
page: null
active: false
path: /
per_page: 10
to: 2
total: 2
properties:
data:
type: array
example:
-
id: 54bf8530-68e8-33bf-b632-4888e41f0acc
name: 'Sr. Mário Gil Marés'
address:
street: null
number: null
complement: null
neighborhood: null
city: null
state: null
zip_code: null
documents: []
locations: []
product_quantity_lists_count: 0
product_quantity_list_items_count: 0
documents_count: 0
locations_documents_count: 0
total_documents_count: 0
started_at:
date: '1994-03-20 02:34:47.000000'
timezone_type: 3
timezone: America/Sao_Paulo
created_at: null
updated_at: null
-
id: e0cd1587-dba8-301a-9f50-dd42015e0361
name: 'Gilberto Everton Ortiz'
address:
street: null
number: null
complement: null
neighborhood: null
city: null
state: null
zip_code: null
documents: []
locations: []
product_quantity_lists_count: 0
product_quantity_list_items_count: 0
documents_count: 0
locations_documents_count: 0
total_documents_count: 0
started_at:
date: '1997-12-09 16:09:04.000000'
timezone_type: 3
timezone: America/Sao_Paulo
created_at: null
updated_at: null
items:
type: object
properties:
id:
type: string
example: 54bf8530-68e8-33bf-b632-4888e41f0acc
name:
type: string
example: 'Sr. Mário Gil Marés'
address:
type: object
properties:
street:
type: string
example: null
number:
type: string
example: null
complement:
type: string
example: null
neighborhood:
type: string
example: null
city:
type: string
example: null
state:
type: string
example: null
zip_code:
type: string
example: null
documents:
type: array
example: []
locations:
type: array
example: []
product_quantity_lists_count:
type: integer
example: 0
product_quantity_list_items_count:
type: integer
example: 0
documents_count:
type: integer
example: 0
locations_documents_count:
type: integer
example: 0
total_documents_count:
type: integer
example: 0
started_at:
type: object
properties:
date:
type: string
example: '1994-03-20 02:34:47.000000'
timezone_type:
type: integer
example: 3
timezone:
type: string
example: America/Sao_Paulo
created_at:
type: string
example: null
updated_at:
type: string
example: null
links:
type: object
properties:
first:
type: string
example: '/?page=1'
last:
type: string
example: '/?page=1'
prev:
type: string
example: null
next:
type: string
example: null
meta:
type: object
properties:
current_page:
type: integer
example: 1
from:
type: integer
example: 1
last_page:
type: integer
example: 1
links:
type: array
example:
-
url: null
label: '« Anterior'
page: null
active: false
-
url: '/?page=1'
label: '1'
page: 1
active: true
-
url: null
label: 'Próximo »'
page: null
active: false
items:
type: object
properties:
url:
type: string
example: null
label:
type: string
example: '« Anterior'
page:
type: string
example: null
active:
type: boolean
example: false
path:
type: string
example: /
per_page:
type: integer
example: 10
to:
type: integer
example: 2
total:
type: integer
example: 2
tags:
- Works
post:
summary: 'Create work'
operationId: createWork
description: 'Create a new work'
parameters: []
responses:
201:
description: ''
content:
application/json:
schema:
type: object
example:
message: string
properties:
message:
type: string
example: string
tags:
- Works
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
name:
type: string
description: 'Nome. O campo value não pode ser superior a 255 caracteres.'
example: 'Example Name'
customer_id:
type: string
description: 'Cliente. The uuid of an existing record in the customers table.'
example: 59cdab8d-8cf6-3a42-b685-1e8cc4a5afa1
status_id:
type: string
description: 'Status id. The uuid of an existing record in the statuses table.'
example: ce23e033-062b-314d-8d3d-f95f9eb94d46
started_at:
type: string
description: 'Início da obra. O campo value deve ser uma data válida.'
example: 'Example Started at'
nullable: true
address:
type: object
description: Endereço.
example:
- example1
- example2
properties:
street:
type: string
description: Rua.
example: 'Example Address street'
number:
type: string
description: Número.
example: 'Example Address number'
complement:
type: string
description: Complemento.
example: 'Example Address complement'
neighborhood:
type: string
description: Bairro.
example: 'Example Address neighborhood'
city:
type: string
description: Cidade.
example: 'Example Address city'
state:
type: string
description: Estado.
example: 'Example Address state'
zip_code:
type: string
description: CEP.
example: 'Example Address zip code'
required:
- street
- number
- neighborhood
- city
- state
- zip_code
required:
- name
- customer_id
- status_id
- address
'/api/works/{id}':
get:
summary: 'Get work'
operationId: getWork
description: 'Get a work'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
id: fc47f1bb-08b3-3ac2-a9a6-17c4d9acb82f
name: 'Sueli Grego Meireles'
address:
street: null
number: null
complement: null
neighborhood: null
city: null
state: null
zip_code: null
documents: []
locations: []
product_quantity_lists_count: 0
product_quantity_list_items_count: 0
documents_count: 0
locations_documents_count: 0
total_documents_count: 0
started_at:
date: '1970-03-30 11:10:44.000000'
timezone_type: 3
timezone: America/Sao_Paulo
created_at: null
updated_at: null
properties:
data:
type: object
properties:
id:
type: string
example: fc47f1bb-08b3-3ac2-a9a6-17c4d9acb82f
name:
type: string
example: 'Sueli Grego Meireles'
address:
type: object
properties:
street:
type: string
example: null
number:
type: string
example: null
complement:
type: string
example: null
neighborhood:
type: string
example: null
city:
type: string
example: null
state:
type: string
example: null
zip_code:
type: string
example: null
documents:
type: array
example: []
locations:
type: array
example: []
product_quantity_lists_count:
type: integer
example: 0
product_quantity_list_items_count:
type: integer
example: 0
documents_count:
type: integer
example: 0
locations_documents_count:
type: integer
example: 0
total_documents_count:
type: integer
example: 0
started_at:
type: object
properties:
date:
type: string
example: '1970-03-30 11:10:44.000000'
timezone_type:
type: integer
example: 3
timezone:
type: string
example: America/Sao_Paulo
created_at:
type: string
example: null
updated_at:
type: string
example: null
tags:
- Works
put:
summary: 'Update work'
operationId: updateWork
description: 'Update a work'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
message: string
properties:
message:
type: string
example: string
tags:
- Works
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
name:
type: string
description: 'Nome. O campo value não pode ser superior a 255 caracteres.'
example: 'Example Name'
customer_id:
type: string
description: 'Cliente. The uuid of an existing record in the customers table.'
example: 7fedf326-554b-366d-8650-2861f4cb2349
status_id:
type: string
description: 'Status id. The uuid of an existing record in the statuses table.'
example: a28d265f-e4b1-3cfd-9242-af31afa638b6
started_at:
type: string
description: 'Início da obra. O campo value deve ser uma data válida.'
example: 'Example Started at'
nullable: true
address:
type: object
description: Endereço.
example:
- example1
- example2
properties:
street:
type: string
description: Rua.
example: 'Example Address street'
number:
type: string
description: Número.
example: 'Example Address number'
complement:
type: string
description: Complemento.
example: 'Example Address complement'
neighborhood:
type: string
description: Bairro.
example: 'Example Address neighborhood'
city:
type: string
description: Cidade.
example: 'Example Address city'
state:
type: string
description: Estado.
example: 'Example Address state'
zip_code:
type: string
description: CEP.
example: 'Example Address zip code'
delete:
summary: 'Delete work'
operationId: deleteWork
description: 'Delete a work'
parameters: []
responses:
204:
description: ''
content:
application/json:
schema:
type: object
nullable: true
tags:
- Works
parameters:
-
in: path
name: id
description: 'The ID of the work.'
example: 1
required: true
schema:
type: integer
-
in: path
name: work
description: 'Work ID'
example: 019556e7-2e9f-777c-a177-30bbf0646c32
required: true
schema:
type: string
'/api/works/{work}/responsibles':
get:
summary: 'List work responsibles'
operationId: listWorkResponsibles
description: 'List all users responsible for a work'
parameters:
-
in: query
name: sort_by
description: 'Field to sort by.'
example: created_at
required: false
schema:
type: string
description: 'Field to sort by.'
example: created_at
nullable: true
-
in: query
name: sort_desc
description: 'Sort order (true for descending, false for ascending).'
example: true
required: false
schema:
type: boolean
description: 'Sort order (true for descending, false for ascending).'
example: true
nullable: true
-
in: query
name: page
description: 'Page number for pagination. O campo value deve ser pelo menos 1.'
example: 1
required: false
schema:
type: integer
description: 'Page number for pagination. O campo value deve ser pelo menos 1.'
example: 1
nullable: true
-
in: query
name: per_page
description: 'Number of items per page (max: 100). O campo value deve ser pelo menos 1. O campo value não pode ser superior a 100.'
example: 15
required: false
schema:
type: integer
description: 'Number of items per page (max: 100). O campo value deve ser pelo menos 1. O campo value não pode ser superior a 100.'
example: 15
nullable: true
-
in: query
name: q
description: 'Search by name or email.'
example: John
required: false
schema:
type: string
description: 'Search by name or email.'
example: John
nullable: true
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
-
id: 7e9fb913-ab76-3bb0-a760-e58455241dcb
name: 'Jayde McDermott'
username: sim03
email: volkman.idella@example.org
image:
id: null
url: null
sectors: []
roles: []
-
id: e8951c31-c39a-3826-ac60-70e28d20d880
name: 'Brad Cormier'
username: isobel.herman
email: tkemmer@example.net
image:
id: null
url: null
sectors: []
roles: []
links:
first: '/?page=1'
last: '/?page=1'
prev: null
next: null
meta:
current_page: 1
from: 1
last_page: 1
links:
-
url: null
label: '« Anterior'
page: null
active: false
-
url: '/?page=1'
label: '1'
page: 1
active: true
-
url: null
label: 'Próximo »'
page: null
active: false
path: /
per_page: 10
to: 2
total: 2
properties:
data:
type: array
example:
-
id: 7e9fb913-ab76-3bb0-a760-e58455241dcb
name: 'Jayde McDermott'
username: sim03
email: volkman.idella@example.org
image:
id: null
url: null
sectors: []
roles: []
-
id: e8951c31-c39a-3826-ac60-70e28d20d880
name: 'Brad Cormier'
username: isobel.herman
email: tkemmer@example.net
image:
id: null
url: null
sectors: []
roles: []
items:
type: object
properties:
id:
type: string
example: 7e9fb913-ab76-3bb0-a760-e58455241dcb
name:
type: string
example: 'Jayde McDermott'
username:
type: string
example: sim03
email:
type: string
example: volkman.idella@example.org
image:
type: object
properties:
id:
type: string
example: null
url:
type: string
example: null
sectors:
type: array
example: []
roles:
type: array
example: []
links:
type: object
properties:
first:
type: string
example: '/?page=1'
last:
type: string
example: '/?page=1'
prev:
type: string
example: null
next:
type: string
example: null
meta:
type: object
properties:
current_page:
type: integer
example: 1
from:
type: integer
example: 1
last_page:
type: integer
example: 1
links:
type: array
example:
-
url: null
label: '« Anterior'
page: null
active: false
-
url: '/?page=1'
label: '1'
page: 1
active: true
-
url: null
label: 'Próximo »'
page: null
active: false
items:
type: object
properties:
url:
type: string
example: null
label:
type: string
example: '« Anterior'
page:
type: string
example: null
active:
type: boolean
example: false
path:
type: string
example: /
per_page:
type: integer
example: 10
to:
type: integer
example: 2
total:
type: integer
example: 2
tags:
- Works
parameters:
-
in: path
name: work
description: 'Work UUID'
example: 019556e7-2e9f-777c-a177-30bbf0646c32
required: true
schema:
type: string
'/api/works/{work}/responsibles/attach':
post:
summary: 'Attach responsibles to work'
operationId: attachResponsiblesToWork
description: 'Attach users as responsibles to a work without removing existing ones'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
message: 'Responsibles attached successfully'
properties:
message:
type: string
example: 'Responsibles attached successfully'
tags:
- Works
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
users:
type: array
description: 'UUID do usuário. The uuid of an existing record in the users table.'
example:
- ec2a8906-0988-3eac-9a7a-0f22878bc86f
items:
type: string
parameters:
-
in: path
name: work
description: 'Work UUID'
example: 019556e7-2e9f-777c-a177-30bbf0646c32
required: true
schema:
type: string
'/api/works/{work}/responsibles/detach':
post:
summary: 'Detach responsibles from work'
operationId: detachResponsiblesFromWork
description: 'Remove specific users as responsibles from a work'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
message: 'Responsibles detached successfully'
properties:
message:
type: string
example: 'Responsibles detached successfully'
tags:
- Works
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
users:
type: array
description: 'UUID do usuário. The uuid of an existing record in the users table.'
example:
- 816fa762-3813-30ea-88d6-d6aef8e56478
items:
type: string
parameters:
-
in: path
name: work
description: 'Work UUID'
example: 019556e7-2e9f-777c-a177-30bbf0646c32
required: true
schema:
type: string
'/api/works/{work}/responsibles/sync':
post:
summary: 'Sync work responsibles'
operationId: syncWorkResponsibles
description: 'Replace all responsibles of a work with the provided list'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
message: 'Responsibles synchronized successfully'
properties:
message:
type: string
example: 'Responsibles synchronized successfully'
tags:
- Works
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
users:
type: array
description: 'UUID do usuário. The uuid of an existing record in the users table.'
example:
- 2ce07247-c4c8-3844-8833-61dcb6767cce
items:
type: string
parameters:
-
in: path
name: work
description: 'Work UUID'
example: 019556e7-2e9f-777c-a177-30bbf0646c32
required: true
schema:
type: string