Pedidos
A API de pedidos oferece métodos para a manipulação eficiente dos pedidos de eventos, incluindo operações de listar, cadastrar itens, editar e deletar. Com funcionalidades adicionais para filtragem e pesquisa detalhada, a API facilita a gestão de pedidos e a tomada de decisões informadas.
Introdução
Nesta documentação, detalhamos os campos que você pode esperar manipular ao interagir com a API. Cada campo é descrito para esclarecer sua função e o tipo de dado esperado, garantindo que você possa fornecer ou obter informações precisas.
A API permite gerenciar pedidos de eventos e seus itens (serviços/produtos e equipamentos/itens de estoque), além de consultar itens vinculados a orçamentos.
O identificador de um pedido segue o formato evento-sequencial (ex: 1764-6), onde 1764 é o ID do evento e 6 é o número sequencial do pedido dentro do evento. Alternativamente, o ID interno do pedido pode ser utilizado.
Veja abaixo:
URLs
| Método | URL | Ação | Descrição |
|---|---|---|---|
| GET | /api/v1/orders | Listar | Lista itens de pedidos com filtros |
| GET | /api/v1/orders/{id} | Visualizar | Exibe um item específico pelo ID |
| POST | /api/v1/orders | Criar | Cria um novo pedido e/ou adiciona itens |
| PUT | /api/v1/orders/{id} | Editar | Atualiza itens de um pedido |
| DELETE | /api/v1/orders/{id} | Deletar | Remove um pedido e todos os seus itens |
| DELETE | /api/v1/orders/{id}/items | Deletar Itens | Remove itens específicos de um pedido |
O parâmetro
{id}aceita o ID interno do pedido (numérico) ou o formatoevento-sequencial(ex:1764-6).
Campos dos Itens de Pedidos
| Campo | Tipo | Descrição |
|---|---|---|
| id | integer | ID do item no pedido |
| idpedido | integer | ID do pedido |
| id_evento | integer | ID do evento |
| id_produto | integer | ID do produto ou equipamento |
| nome | string | Nome do produto/serviço |
| descricao | string | Descrição do item |
| quantidade | decimal | Quantidade |
| ndias | decimal | Número de dias |
| valor | decimal | Valor unitário |
| valorvenda | decimal | Valor de venda |
| valororiginal | decimal | Valor original |
| valordesconto | decimal | Valor de desconto |
| valoradd | decimal | Valor adicional |
| valorcusto | decimal | Valor de custo |
| tipo | integer | Tipo: 2 = Serviço/Produto, 7 = Item/Equipamento |
| ordem | integer | Ordem de exibição |
| datacadastro | date | Data de cadastro |
| id_vendedor | integer | ID do vendedor |
| id_cliente | integer | ID do cliente |
| numero_pedido | integer | Número sequencial do pedido |
| numero_pedido_completo | string | Número completo no formato evento-sequencial (ex: 1764-6) |
| nomeevento | string | Nome do evento |
Campos dos Itens de Orçamentos
| Campo | Tipo | Descrição |
|---|---|---|
| id | integer | ID do item |
| idproduto | integer | ID do produto ou equipamento |
| idorcamento | integer | ID do orçamento |
| idevento | integer | ID do evento (se vinculado) |
| quantidade | decimal | Quantidade |
| desconto | decimal | Valor de desconto |
| tipocalculo | string | Tipo de cálculo (ex: R$) |
| valor | decimal | Valor unitário |
| valorepoca | decimal | Valor da época |
| valoradd | decimal | Valor adicional |
| tipo | string | Tipo: produto ou item |
| campoextra | string | Campo extra |
| descricao | string | Descrição |
| ordem | integer | Ordem de exibição |
| ndias | decimal | Número de dias |
| formato | string | Formato |
| datacadastro | date | Data de cadastro |
| nome_produto | string | Nome do produto/equipamento |
| medida | string | Sigla da unidade de medida |
Listar
Endpoint: /api/v1/orders
Método: GET
Retorna uma lista de itens de pedidos. A API identifica automaticamente o tipo de consulta com base nos parâmetros enviados: se idorcamento estiver presente, busca nos itens de orçamentos; caso contrário, busca nos itens dos pedidos do evento.
Filtros por Evento
| Parâmetro | Tipo | Descrição | Obrigatório |
|---|---|---|---|
| idevento | integer | Filtra itens pelo ID do evento | Não |
| pedido | string | Filtra pelo pedido no formato evento-sequencial (ex: 1764-6) | Não |
| idpedido | string/integer | Filtra pelo ID do pedido (numérico ou formato evento-sequencial ex: 1764-3) | Não |
| tipo | integer | Filtra pelo tipo do item (2 = serviço, 7 = equipamento) | Não |
Filtros por Orçamento
| Parâmetro | Tipo | Descrição | Obrigatório |
|---|---|---|---|
| idorcamento | integer | Filtra itens pelo ID do orçamento | Sim (para busca por orçamento) |
| proposta | string | Filtra pela proposta no formato orcamento-sequencial (ex: 2582-1) | Não |
Ordenação
Parâmetros:
field_sort: Especifica o campo pelo qual os registros devem ser ordenados.sort: Define a direção da ordenação. Valores permitidos:ascpara ascendente,descpara descendente.
Exemplo de Uso: /api/v1/orders?idevento=1764&field_sort=ordem&sort=asc
Paginação
Parâmetro:
limit(opcional): Número de registros por página, o limite é de até 200 registros. Padrão: 100.page: Número da página desejada.
Exemplo de Uso: /api/v1/orders?idevento=1764&page=1&limit=50
Resumo
Utilizar as funcionalidades de Filtros, Ordenação e Paginação em conjunto permite uma manipulação eficiente e precisa dos dados na API. Por exemplo, para listar apenas os serviços do evento 1764, ordenados pela ordem, exibindo 10 resultados por página:
/api/v1/orders?idevento=1764&tipo=2&field_sort=ordem&sort=asc&page=1&limit=10
Esta combinação otimiza suas consultas, permitindo que você obtenha dados específicos de forma rápida e organizada.
Exemplos de Uso
Listar todos os itens de um evento:
GET /api/v1/orders?idevento=1764Listar itens de um pedido específico (formato evento-sequencial):
GET /api/v1/orders?pedido=1764-6Listar itens de um pedido específico usando idpedido (formato evento-sequencial):
GET /api/v1/orders?idpedido=1764-3Combinar filtro de evento com pedido:
GET /api/v1/orders?idevento=1764&idpedido=1764-3Listar apenas serviços/produtos (tipo 2) de um evento:
GET /api/v1/orders?idevento=1764&tipo=2Listar apenas equipamentos/itens de estoque (tipo 7) de um evento:
GET /api/v1/orders?idevento=1764&tipo=7Listar itens de um orçamento:
GET /api/v1/orders?idorcamento=2582Listar itens de uma proposta específica:
GET /api/v1/orders?idorcamento=2582&proposta=2582-1Response (Pedidos do Evento):
{
"data": [
{
"id": 2402,
"idpedido": 892,
"id_evento": 1764,
"id_produto": 321,
"nome": "Aluguel do Espaço",
"descricao": "",
"quantidade": 1.000,
"ndias": 1.000,
"valor": 2100.00,
"valorvenda": 2100.00,
"valororiginal": 2100.00,
"valordesconto": 0.00,
"valoradd": 0.00,
"valorcusto": 500.00,
"tipo": 2,
"ordem": 1,
"datacadastro": "2025-12-08",
"id_vendedor": 0,
"id_cliente": 0,
"numero_pedido": 6,
"numero_pedido_completo": "1764-6",
"nomeevento": "Aniversário MeEventos"
}
],
"pagination": {
"page": 1,
"page_size": 100,
"total_page": 1,
"total_data": 1
}
}Response (Itens do Orçamento):
{
"data": [
{
"id": 150,
"idproduto": 321,
"idorcamento": 2582,
"idevento": 0,
"quantidade": 1.000,
"desconto": 0.00,
"tipocalculo": "R$",
"valor": 2100.00,
"valorepoca": 2100.00,
"valoradd": 0.00,
"tipo": "produto",
"campoextra": "",
"descricao": "",
"ordem": 1,
"ndias": 1.000,
"formato": "",
"datacadastro": "2025-11-12",
"nome_produto": "Aluguel do Espaço",
"medida": "un"
}
],
"pagination": {
"page": 1,
"page_size": 100,
"total_page": 1,
"total_data": 1
}
}Visualizar
Endpoint: /api/v1/orders/{id}
Método: GET
Para visualizar as informações de um item de pedido, você pode fazer uma solicitação GET para o endpoint acima. Não é necessário fornecer informações no corpo da solicitação, já que você estará apenas recuperando dados. O ID do item a ser consultado deve ser especificado no endpoint.
Exemplo de Uso:
GET /api/v1/orders/2402Response:
{
"id": 2402,
"idpedido": 892,
"id_evento": 1764,
"id_produto": 321,
"nome": "Aluguel do Espaço",
"descricao": "",
"quantidade": 1.000,
"ndias": 1.000,
"valor": 2100.00,
"valorvenda": 2100.00,
"valororiginal": 2100.00,
"valordesconto": 0.00,
"valoradd": 0.00,
"valorcusto": 500.00,
"tipo": 2,
"ordem": 1,
"datacadastro": "2025-12-08",
"id_vendedor": 0,
"id_cliente": 0,
"numero_pedido": 6,
"numero_pedido_completo": "1764-6",
"nomeevento": "Aniversário MeEventos"
}Criar
Endpoint: /api/v1/orders
Método: POST
Permite criar um novo pedido e/ou adicionar itens em um pedido existente. O comportamento varia conforme o parâmetro idpedido:
- Sem
idpedido: Cria um novo pedido automaticamente e insere os itens. - Com
idpedido: Adiciona os itens no pedido existente.
Campos da Requisição
| Campo | Tipo | Descrição | Obrigatório |
|---|---|---|---|
| id_evento | integer | ID do evento | Sim |
| idpedido | string/integer | ID do pedido existente (numérico ou formato 1764-6) | Não (se omitido, cria novo pedido) |
| id_cliente | integer | ID do cliente vinculado ao pedido | Não |
| itens | array | Array de itens a adicionar | Não |
Campos de cada item no array itens
| Campo | Tipo | Descrição | Obrigatório |
|---|---|---|---|
| id_produto | integer | ID do serviço/produto | Sim* |
| id_item | integer | ID do equipamento/item de estoque | Sim* |
| quantidade | decimal | Quantidade | Não (padrão: 1) |
| ndias | decimal | Número de dias | Não (padrão: 1) |
| valor | decimal | Valor unitário (se omitido, busca do cadastro) | Não |
| valorcusto | decimal | Valor de custo (se omitido, busca do cadastro) | Não |
| descricao | string | Descrição do item | Não |
| nome | string | Nome do item (se omitido, busca do cadastro) | Não |
| tipo | integer | Tipo (2 = serviço, 7 = equipamento, auto-detectado) | Não |
| id_vendedor | integer | ID do vendedor | Não |
| id_cliente | integer | ID do cliente | Não |
| ordem | integer | Ordem de exibição (auto-incrementada) | Não |
* Deve ser informado
id_produto(serviço/produto) ouid_item(equipamento/item de estoque). O nome, valor e custo são buscados automaticamente do cadastro.
Criar novo pedido com itens
Request:
{
"id_evento": 1764,
"itens": [
{ "id_produto": 321, "quantidade": 2 },
{ "id_produto": 793, "quantidade": 1 },
{ "id_item": 329, "quantidade": 3 }
]
}Response:
{
"status": "success",
"message": "Pedido criado com sucesso. 3 item(ns) adicionado(s).",
"data": {
"idpedido": 892,
"id_evento": 1764,
"numero": "1764-7",
"sequencial": 7,
"itens": [
{
"id": 2410,
"idpedido": 892,
"id_evento": 1764,
"id_produto": 321,
"nome": "Aluguel do Espaço",
"quantidade": 2.000,
"valor": 2100.00,
"tipo": 2,
"numero_pedido_completo": "1764-7"
}
]
},
"errors": []
}Criar pedido sem itens
Request:
{
"id_evento": 1764
}Response:
{
"status": "success",
"message": "Pedido criado com sucesso.",
"data": {
"idpedido": 893,
"id_evento": 1764,
"numero": "1764-8",
"sequencial": 8
}
}Adicionar itens em pedido existente
Request:
{
"idpedido": "1764-6",
"id_evento": 1764,
"itens": [
{ "id_produto": 321, "quantidade": 1 },
{ "id_item": 329, "quantidade": 2 }
]
}Response:
{
"status": "success",
"message": "2 item(ns) adicionado(s).",
"data": {
"idpedido": 892,
"id_evento": 1764,
"itens": [
{
"id": 2415,
"nome": "Aluguel do Espaço",
"quantidade": 1.000,
"tipo": 2
},
{
"id": 2416,
"nome": "Mesa de Vidro",
"quantidade": 2.000,
"tipo": 7
}
]
},
"errors": []
}Observações
- Ao informar
id_produto, o item é tratado como serviço/produto (tipo 2). Ao informarid_item, é tratado como equipamento/item de estoque (tipo 7). - Os campos
nome,valorevalorcustosão buscados automaticamente do cadastro com base noid_produtoouid_item. Valores informados manualmente têm prioridade. - A
ordemé calculada automaticamente se não informada. - A API verifica se o evento, pedido, produto e equipamento existem antes de processar.
Editar
Endpoint: /api/v1/orders/{id}
Método: PUT
Permite editar itens de um pedido. O {id} na URL identifica o pedido (formato evento-sequencial ou ID interno). O body contém os itens a atualizar com seus respectivos IDs.
Campos permitidos para edição
| Campo | Tipo | Descrição | Obrigatório |
|---|---|---|---|
| id | integer | ID do item no pedido | Sim |
| quantidade | decimal | Nova quantidade | Não |
| ndias | decimal | Novo número de dias | Não |
| descricao | string | Nova descrição | Não |
Envie ao menos um campo além do
idpara cada item.
Request:
{
"itens": [
{ "id": 2402, "quantidade": 3 },
{ "id": 2403, "ndias": 2 },
{ "id": 2404, "quantidade": 1, "descricao": "Observação aqui" }
]
}Response:
{
"status": "success",
"message": "3 item(ns) atualizado(s).",
"data": [
{
"id": 2402,
"idpedido": 892,
"id_evento": 1764,
"nome": "Aluguel do Espaço",
"quantidade": 3.000,
"ndias": 1.000,
"numero_pedido_completo": "1764-6"
},
{
"id": 2403,
"idpedido": 892,
"nome": "Buffet",
"ndias": 2.000,
"numero_pedido_completo": "1764-6"
},
{
"id": 2404,
"idpedido": 892,
"nome": "Mesa de Vidro",
"quantidade": 1.000,
"descricao": "Observação aqui",
"numero_pedido_completo": "1764-6"
}
],
"errors": []
}Observações
- A API valida que cada item pertence ao pedido informado na URL.
- Apenas os campos enviados são atualizados — campos omitidos permanecem inalterados.
Deletar Pedido
Endpoint: /api/v1/orders/{id}
Método: DELETE
Remove um pedido específico e todos os seus itens.
Exemplo de Uso:
DELETE /api/v1/orders/1764-6Response:
{
"status": "success",
"message": "Pedido 1764-6 deletado com sucesso."
}Deletar Itens
Endpoint: /api/v1/orders/{id}/items
Método: DELETE
Remove itens específicos de um pedido. Os IDs dos itens devem ser enviados no body.
Exemplo de Uso:
DELETE /api/v1/orders/1764-6/itemsRequest:
{
"itens": [2402, 2403]
}Response:
{
"status": "success",
"message": "2 item(ns) deletado(s).",
"deleted": [2402, 2403],
"errors": []
}Para deletar um único item:
{
"itens": [2402]
}Observações
- A API valida que cada item pertence ao pedido informado na URL.