Skip to content

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étodoURLAçãoDescrição
GET/api/v1/ordersListarLista itens de pedidos com filtros
GET/api/v1/orders/{id}VisualizarExibe um item específico pelo ID
POST/api/v1/ordersCriarCria um novo pedido e/ou adiciona itens
PUT/api/v1/orders/{id}EditarAtualiza itens de um pedido
DELETE/api/v1/orders/{id}DeletarRemove um pedido e todos os seus itens
DELETE/api/v1/orders/{id}/itemsDeletar ItensRemove itens específicos de um pedido

O parâmetro {id} aceita o ID interno do pedido (numérico) ou o formato evento-sequencial (ex: 1764-6).

Campos dos Itens de Pedidos

CampoTipoDescrição
idintegerID do item no pedido
idpedidointegerID do pedido
id_eventointegerID do evento
id_produtointegerID do produto ou equipamento
nomestringNome do produto/serviço
descricaostringDescrição do item
quantidadedecimalQuantidade
ndiasdecimalNúmero de dias
valordecimalValor unitário
valorvendadecimalValor de venda
valororiginaldecimalValor original
valordescontodecimalValor de desconto
valoradddecimalValor adicional
valorcustodecimalValor de custo
tipointegerTipo: 2 = Serviço/Produto, 7 = Item/Equipamento
ordemintegerOrdem de exibição
datacadastrodateData de cadastro
id_vendedorintegerID do vendedor
id_clienteintegerID do cliente
numero_pedidointegerNúmero sequencial do pedido
numero_pedido_completostringNúmero completo no formato evento-sequencial (ex: 1764-6)
nomeeventostringNome do evento

Campos dos Itens de Orçamentos

CampoTipoDescrição
idintegerID do item
idprodutointegerID do produto ou equipamento
idorcamentointegerID do orçamento
ideventointegerID do evento (se vinculado)
quantidadedecimalQuantidade
descontodecimalValor de desconto
tipocalculostringTipo de cálculo (ex: R$)
valordecimalValor unitário
valorepocadecimalValor da época
valoradddecimalValor adicional
tipostringTipo: produto ou item
campoextrastringCampo extra
descricaostringDescrição
ordemintegerOrdem de exibição
ndiasdecimalNúmero de dias
formatostringFormato
datacadastrodateData de cadastro
nome_produtostringNome do produto/equipamento
medidastringSigla 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âmetroTipoDescriçãoObrigatório
ideventointegerFiltra itens pelo ID do eventoNão
pedidostringFiltra pelo pedido no formato evento-sequencial (ex: 1764-6)Não
idpedidostring/integerFiltra pelo ID do pedido (numérico ou formato evento-sequencial ex: 1764-3)Não
tipointegerFiltra pelo tipo do item (2 = serviço, 7 = equipamento)Não

Filtros por Orçamento

ParâmetroTipoDescriçãoObrigatório
idorcamentointegerFiltra itens pelo ID do orçamentoSim (para busca por orçamento)
propostastringFiltra 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: asc para ascendente, desc para 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=1764

Listar itens de um pedido específico (formato evento-sequencial):

GET /api/v1/orders?pedido=1764-6

Listar itens de um pedido específico usando idpedido (formato evento-sequencial):

GET /api/v1/orders?idpedido=1764-3

Combinar filtro de evento com pedido:

GET /api/v1/orders?idevento=1764&idpedido=1764-3

Listar apenas serviços/produtos (tipo 2) de um evento:

GET /api/v1/orders?idevento=1764&tipo=2

Listar apenas equipamentos/itens de estoque (tipo 7) de um evento:

GET /api/v1/orders?idevento=1764&tipo=7

Listar itens de um orçamento:

GET /api/v1/orders?idorcamento=2582

Listar itens de uma proposta específica:

GET /api/v1/orders?idorcamento=2582&proposta=2582-1

Response (Pedidos do Evento):

json
{
  "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):

json
{
  "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/2402

Response:

json
{
  "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

CampoTipoDescriçãoObrigatório
id_eventointegerID do eventoSim
idpedidostring/integerID do pedido existente (numérico ou formato 1764-6)Não (se omitido, cria novo pedido)
id_clienteintegerID do cliente vinculado ao pedidoNão
itensarrayArray de itens a adicionarNão

Campos de cada item no array itens

CampoTipoDescriçãoObrigatório
id_produtointegerID do serviço/produtoSim*
id_itemintegerID do equipamento/item de estoqueSim*
quantidadedecimalQuantidadeNão (padrão: 1)
ndiasdecimalNúmero de diasNão (padrão: 1)
valordecimalValor unitário (se omitido, busca do cadastro)Não
valorcustodecimalValor de custo (se omitido, busca do cadastro)Não
descricaostringDescrição do itemNão
nomestringNome do item (se omitido, busca do cadastro)Não
tipointegerTipo (2 = serviço, 7 = equipamento, auto-detectado)Não
id_vendedorintegerID do vendedorNão
id_clienteintegerID do clienteNão
ordemintegerOrdem de exibição (auto-incrementada)Não

* Deve ser informado id_produto (serviço/produto) ou id_item (equipamento/item de estoque). O nome, valor e custo são buscados automaticamente do cadastro.

Criar novo pedido com itens

Request:

json
{
  "id_evento": 1764,
  "itens": [
    { "id_produto": 321, "quantidade": 2 },
    { "id_produto": 793, "quantidade": 1 },
    { "id_item": 329, "quantidade": 3 }
  ]
}

Response:

json
{
  "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:

json
{
  "id_evento": 1764
}

Response:

json
{
  "status": "success",
  "message": "Pedido criado com sucesso.",
  "data": {
    "idpedido": 893,
    "id_evento": 1764,
    "numero": "1764-8",
    "sequencial": 8
  }
}

Adicionar itens em pedido existente

Request:

json
{
  "idpedido": "1764-6",
  "id_evento": 1764,
  "itens": [
    { "id_produto": 321, "quantidade": 1 },
    { "id_item": 329, "quantidade": 2 }
  ]
}

Response:

json
{
  "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 informar id_item, é tratado como equipamento/item de estoque (tipo 7).
  • Os campos nome, valor e valorcusto são buscados automaticamente do cadastro com base no id_produto ou id_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

CampoTipoDescriçãoObrigatório
idintegerID do item no pedidoSim
quantidadedecimalNova quantidadeNão
ndiasdecimalNovo número de diasNão
descricaostringNova descriçãoNão

Envie ao menos um campo além do id para cada item.

Request:

json
{
  "itens": [
    { "id": 2402, "quantidade": 3 },
    { "id": 2403, "ndias": 2 },
    { "id": 2404, "quantidade": 1, "descricao": "Observação aqui" }
  ]
}

Response:

json
{
  "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-6

Response:

json
{
  "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/items

Request:

json
{
  "itens": [2402, 2403]
}

Response:

json
{
  "status": "success",
  "message": "2 item(ns) deletado(s).",
  "deleted": [2402, 2403],
  "errors": []
}

Para deletar um único item:

json
{
  "itens": [2402]
}

Observações

  • A API valida que cada item pertence ao pedido informado na URL.