CONTEÚDO
O endpoint Status da API Order Mesa é utilizado para envio do resultado da solicitação de consumo do pedido através do Ponto de Venda (PDV). Este endpoint recebe o mesmo corpo de requisição utilizado pelo endpoint GetConsumption
- API Order Cartão - Get Consumption
Método | URL | Ambiente |
---|---|---|
POST | https://api-barramento.meuelevestage.com/order/consumption | Homologação |
POST | https://api-barramento.meueleve.com/order/consumption | Produção |
3.1. Request - Corpo da requisição para retornar o consumo específico:
Essa requisição é enviada para obter detalhes sobre o consumo de um pedido específico, retornando as informações relevantes do consumo solicitado.
{ "success": true, "error": null, "integrationHubServiceId": "66ca34be-a568-4444-a78d-098a68686e58", "orderKeyType": "CARD", "orderKey": [ "340" ], "consumption": [ { "orderId": "2160c838-97d0-432f-a43a-dce087150d49", "type": "CARD", "createdAt": "2024-09-09 14:57:36", "customerName": "TOTVS", "items": [ { "id": "200", "index": "20", "name": "A FRANCESA", "externalCode": "1", "unit": "UNIT", "ean": "", "quantity": 1, "specialInstructions": "TESTE", "unitPrice": { "value": 69.9, "currency": "R$" }, "optionsPrice": { "value": 0, "currency": "R$" }, "totalPrice": { "value": 69.9, "currency": "R$" }, "options": null, "productionPoint": [ { "name": "COZINHA" } ] } ], "otherFees": [ { "name": "Taxa de Serviço", "type": "SERVICE_FEE", "receivedBy": "MERCHANT", "receiverDocument": "", "price": { "value": 6.99, "currency": "R$" }, "observation": "" } ], "discounts": null, "total": { "items": 69.9, "otherFees": 6.99, "discount": 0, "orderAmount": 76.89 }, "delivery": null, "takeout": null, "indoor": null, "table": null, "card": { "waiterCode": 9999, "cardNumber": 340, "deliveryTableNumber": 340 } } ] } |
A solicitação foi processada com sucesso e o resultado foi retornado conforme esperado. |
3.2. Request - Corpo da requisição para obter o status de múltiplos pedidos:
Essa requisição é utilizada para consultar o status atualizado de vários pedidos simultaneamente, retornando as informações detalhadas de cada pedido solicitado.
{ "success": true, "error": null, "integrationHubServiceId": "66ca34be-a568-4444-a78d-098a68686e58", "orderKeyType": "CARD", "orderKey": [ "340", "350" ], "consumption": [ { "orderId": "2160c838-97d0-432f-a43a-dce087150d49", "type": "CARD", "createdAt": "2024-09-09 14:57:36", "customerName": "TOTVS", "items": [ { "id": "200", "index": "20", "name": "A FRANCESA", "externalCode": "1", "unit": "UNIT", "ean": "", "quantity": 1, "specialInstructions": "TESTE", "unitPrice": { "value": 69.9, "currency": "R$" }, "optionsPrice": { "value": 0, "currency": "R$" }, "totalPrice": { "value": 69.9, "currency": "R$" }, "options": null, "productionPoint": [ { "name": "COZINHA" } ] } ], "otherFees": [ { "name": "Taxa de Serviço", "type": "SERVICE_FEE", "receivedBy": "MERCHANT", "receiverDocument": "", "price": { "value": 6.99, "currency": "R$" }, "observation": "" } ], "discounts": null, "total": { "items": 69.9, "otherFees": 6.99, "discount": 0, "orderAmount": 76.89 }, "delivery": null, "takeout": null, "indoor": null, "table": null, "card": { "waiterCode": 9999, "cardNumber": 340, "deliveryTableNumber": 340 } }, { "orderId": "1fbcd589-1bbd-472c-a28d-6b1164282964", "type": "CARD", "createdAt": "2024-09-09 15:27:18", "customerName": "TOTVS", "items": [ { "id": "201", "index": "201", "name": "A FRANCESA", "externalCode": "1", "unit": "UNIT", "ean": "", "quantity": 1, "specialInstructions": "TESTE", "unitPrice": { "value": 69.9, "currency": "R$" }, "optionsPrice": { "value": 0, "currency": "R$" }, "totalPrice": { "value": 69.9, "currency": "R$" }, "options": null, "productionPoint": [ { "name": "COZINHA" } ] } ], "otherFees": [ { "name": "Taxa de Serviço", "type": "SERVICE_FEE", "receivedBy": "MERCHANT", "receiverDocument": "", "price": { "value": 6.99, "currency": "R$" }, "observation": "" } ], "discounts": null, "total": { "items": 69.9, "otherFees": 6.99, "discount": 0, "orderAmount": 76.89 }, "delivery": null, "takeout": null, "indoor": null, "table": null, "card": { "waiterCode": 9999, "cardNumber": 350, "deliveryTableNumber": 340 } } ] } |
Consumo enviado com sucesso.. |
O corpo da requisição enviada é o mesmo que o corpo da resposta obtida através do endpoint |
Dicionário da Request
O endpoint Consumption retorna informações sobre o consumo, utilizando o como corpo da requisição a resposta do status code 226 do endpoint API Order Mesa - Get Consumption.
O endpoint Consumption permite consultar os dados de consumo de uma mesa ou várias mesas. Ele retorna informações detalhadas sobre os itens pedidos, preços e outros dados relevantes, facilitando o gerenciamento dos consumos em ambientes de atendimento.
Campo | Valor | Descrição |
---|---|---|
integrationHubServiceId * | string | Identificador único da integração |
orderKeyType * | enum | Tipo de chave do pedido (veja na tabela orderKeyType) |
orderKey * | array | Chave do pedido correspondente |
success * | boolean | Indica se a operação foi bem-sucedida |
consumptions | array | Detalhes dos consumos relacionados ao pedido. (veja na tabela consumptios) |
error | array | o erro é necessário quando o sucesso é falso. (veja na tabela de error) |
consumptions
):Campo | Valor | Descrição |
---|---|---|
type * | enum | Tipo do consumo (veja na tabela type) |
createdAt * | string (data e hora) | Data e hora da criação do pedidos |
customerName * | string | Nome do cliente |
items * | array | Itens do pedido (veja na tabela de items) |
ortherFess | array | Outras taxas que podem ser aplicadas (veja na tabela otherFees) |
discounts | array | Quaisquer descontos que possam ser aplicados (veja na tabela discounts) |
total * | array | Conjunto de campos com a soma dos valores descritos anteriormente no pedido (veja na tabela total) |
delivery | array | Informações para pedidos DELIVERY. OBRIGATÓRIO se o tipo escolhido for DELIVERY. (veja tabela delivery) |
takeout | array | Informações para pedidos TAKEOUT. OBRIGATÓRIO se o tipo escolhido for TAKEOUT (veja na tabela takeout) |
table | array | Informações para pedidos de TABLE. OBRIGATÓRIO se o tipo escolhido for TABLE (veja na tabela table) |
card | array | Informações para pedidos CARD. OBRIGATÓRIO se o tipo escolhido for CARTÃO (veja na tabela de card) |
items
):Campo | Valor | Descrição |
---|---|---|
id * | string | Identificador único do item |
index | string | Posição do item (opcional) |
name * | string | Nome do produto |
externalCode * | string | Código externo do produto (opcional) |
unit * | string | Unidade de medida do item. Utilize valores fracionários para quantidades menores que a unidade de medida: Exemplo: 500 gramas = 0,5 KG (veja na tabela unit) |
ean | string | Código de barras EAN do item (opcional) |
quantity * | number | Quantidade de itens |
specialInstructions | string | Instruções especiais sobre o item (opcional) |
unitPrice * | array | Preço por unidade, considerando 4 casas decimais (veja tabela de unitPrice) |
originalPrice | array | Preço original do produto. Este preço é meramente informativo e deve ser utilizado para informar o preço de um item antes de aplicar descontos no preço de tabela. Descontos aplicados durante o pedido, como cupons e vouchers, não devem ser considerados aqui. Estes devem ser informados no objeto descontos. ESTE PREÇO NÃO SERÁ CONSIDERADO PARA CÁLCULOS DE TOTAIS DO PEDIDO. (opcional) (veja tabela de originalPrice) |
optionsPrice | array | Preço total das opções (opcional) (veja tabela de optionsPrice) |
totalPrice * | number | Preço total do item (veja tabela de totalPrice) |
options | array | Extras opcionais escolhidos pelo consumidor. (veja na tabela de options) |
productionPoint * | string | Ponto de produção do produto |
options
):Campo | Valor | Descrição |
---|---|---|
index | string | Posição da opção (opcional) |
id * | string | Identificador único da opção |
name * | string | Nome da opção |
externalCode * | string | Código do produto externo |
unit * | enum | Unidade de medida da opção (veja na tabela unit) |
ean | string | EAN é o padrão de código de barras usado nos itens. |
quantity * | number | Quantidade de itens opcionais |
unitPrice * | array | Preço por unidade, considerando 4 casas decimais (veja tabela de unitPrice). |
originalPrice | array | Preço original do produto (opcional) (veja tabela de originalPrice). |
totalPrice * | array | Preço total da opção (veja tabela de totalPrice) |
specialInstructions | string | Instruções especiais sobre a opção (opcional) |
productionPoint * | string | Ponto de produção da opção (opcional) |
otherFees
):Campo | Valor | Descrição |
---|---|---|
name * | string | Nome relacionado às taxas |
type * | enum | Tipo da taxa (veja na tabela type) |
receivedBy * | enum | Pedido recebido por (veja na tabela receivedBy) |
receiverDocument | string | Documento do receptor de outras taxas |
price * | array | Preço da taxa(veja tabela de price). |
observation | string | Observação de outras taxas. Quaisquer comentários extras |
discounts
):Campo | Valor | Descrição |
---|---|---|
value * | number | Valor do desconto |
target * | enum | Destino do desconto (vejna na tabela de cart) |
targetId | string | Identificador do alvo (obrigatório quando target = ITEM). |
sponsorshipValues * | array | Valores patrocinados por qualquer uma das partes. A soma dos valores listados neste atributo deverá corresponder ao valor informado no atributo valor acima (veja na tabela sponsorshipValues) |
total
):Campo | Valor | Descrição |
---|---|---|
items * | number | Soma do preço total dos itens listados no atributo itens |
otherFees | number | Soma do valor total das demais taxas listadas no atributo otherFees. Se não houver, use 0 |
discount | number | Soma de quaisquer descontos que possam estar listados no atributo descontos. Se não houver, use 0 |
orderAmount * | number | O valor final da encomenda (itens + outrasTaxas +Taxas adicionais +Taxa de entrega - descontos) |
additionalFees | number | Soma do valor total das taxas adicionais listadas no atributo adicionalFees. Se não houver, use 0 |
deliveryFee | number | Soma do valor total da taxa de entrega listada no atributo deliveryFee. Se não houver, use 0 |
delevery
):Campo | Valor | Descrição |
---|---|---|
deliveredBy * | enum | Solicitar entrega por (veja na tabela de deliveredBy) |
deliveryAddress * | array | O endereço onde o pedido será entregue (veja na tabela deliveryAddress) |
estimatedDeliveryDateTime * | string | Data e hora estimada de entrega. A mesma data mostrada ao cliente, na interface do Aplicativo de Pedidos |
deliveryDateTime | string | Data de entrega. A data e hora em que a entrega realmente ocorreu. |
takeout
):Campo | Valor | Descrição |
---|---|---|
mode * | enum | Modo de pedido para viagem (veja na tabela mode) |
takeoutDateTime * | string | Data e hora em que o pedido estará pronto. Pode ser calculado pelo Aplicativo de Pedidos utilizando o tempo médio de preparo dos pratos. O padrão é o mesmo horário de criação do pedido |
mode
):Campo | Valor | Descrição |
---|---|---|
DEFAULT* | DEFAULT | Indica que o pedido será retirado pelo cliente sem um local específico de coleta, ou seja, de maneira padrão no estabelecimento |
PICKUP_AREA* | PICKUP_AREA | Indica que o pedido será retirado em uma área de coleta designada dentro do estabelecimento |
table
):Campo | Valor | Descrição |
---|---|---|
waiterCode * | number | O identificador do garçom |
tableNumber * | number | O identificador da tabela |
chairNumber * | number | O identificador do presidente |
card
):Campo | Valor | Descrição |
---|---|---|
waiterCode * | number | O identificador do garçom |
tableNumber * | number | O identificador da tabela |
deliveryTableNumber * | number | O identificador da mesa |
Campo | Valor | Descrição |
---|---|---|
code * | string | Código de erro |
message * | string | Mensagem de erro |
Tabela de auxiliares e enumerações
Enum | Valor | Descrição |
---|---|---|
TABLE | TABLE | Identifica o pedido pelo número da mesa |
CARD | CARD | Identifica o pedido pelo número do cartão |
ORDER_ID | ORDER_ID | Identifica o pedido por um ID exclusivo |
type
):Campo | Valor | Descrição |
---|---|---|
value | number | Valor do preço |
currency | string | Código da moeda ISO 4217 |
unit
):Enum | Valor | Descrição |
---|---|---|
UN | UN | Unidade de medida simples |
KG | KG | Quilograma |
L | L | Litro |
OZ | OZ | Onça |
LB | LB | Libra |
GAL | GAL | Galão |
unitPrice
):Campo | Valor | Descrição |
---|---|---|
value * | number | Valor do preço |
currency * | string | Código da moeda ISO 4217 |
originalPrice
):Campo | Valor | Descrição |
---|---|---|
value * | number | Valor do preço |
currency * | string | Código da moeda ISO 4217 |
optionsPrice
):Campo | Valor | Descrição |
---|---|---|
value * | number | Valor do preço |
currency * | string | Código da moeda ISO 4217 |
totalPrice
):Campo | Valor | Descrição |
---|---|---|
value * | number | Valor do preço |
currency * | string | Código da moeda ISO 4217 |
type
):Enum | Valor | Descrição |
---|---|---|
DELIVERY_FEE | DELIVERY_FEE | Taxa de entrega |
SERVICE_FEE | SERVICE_FEE | Taxa de serviço |
TIP | TIP | Gorjeta |
receivedBy
):Enum | Valor | Descrição |
---|---|---|
MARKETPLACE | MARKETPLACE | Entidade que recebeu o pedido é o marketplace |
MERCHANT | MERCHANT | Entidade que recebeu o pedido é o comerciante |
LOGISTIC_SERVICES | LOGISTIC_SERVICES | Entidade que recebeu o pedido é a logística |
deliveredBy
):Enum | Valor | Descrição |
---|---|---|
MARKETPLACE | MARKETPLACE | Entidade responsável pela entrega é o marketplace |
MERCHANT | MERCHANT | Entidade responsável pela entrega é o comerciante |
price
):Campo | Valor | Descrição |
---|---|---|
value * | number | Valor do preço |
currency * | string | Código da moeda ISO 4217 |
sponsorshipValues
):Enum | Valor | Descrição |
---|---|---|
MARKETPLACE | MARKETPLACE | Entidade responsável pela entrega é o marketplace |
MERCHANT | MERCHANT | Entidade responsável pela entrega é o comerciante |
deliveryAddress
):Campo | Valor | Descição |
---|---|---|
country * | string | Tipo de pedido País do endereço de entrega. *Código de país ISO 3166-1 alfa-2 de duas letras. |
state * | string | Subdivisão de estado ou país. É recomendado (mas não obrigatório) que você use a representação ISO 3166-2 |
city * | string | Nome da cidade |
district * | string | Bairro ou Distrito |
street * | string | Nome da rua |
number * | string | Número da rua |
complement | string | Complemento de endereço |
reference | string | Referência de endereço |
formattedAddress * | string | Texto de endereço totalmente formatado |
postalCode * | string | Código postal |
coordinates * | array | Tipo de pedido Endereço de entrega Coordenadas latitude (veja na tabela coordinates) |
coordinates
):Campo | Valor | Descrição |
---|---|---|
latitude * | number | Latitude em graus. Os valores estão restritos ao intervalo [[-90, 90]] |
longitude * | number | Longitude em graus. Os valores estão restritos ao intervalo [[-180, 180]] |
Campos marcaos com o * (asteristico) o seu preenchimento é obrigatório |
A seguir, alguns dos erros comuns que podem ser apresentados ao lidar com requisições HTTP e suas respectivas respostas:
O código de status HTTP 400, conhecido como "Bad Request" (Requisição Inválida), indica que o servidor não pôde processar a requisição do cliente devido a uma sintaxe inválida, estrutura malformada ou dados inválidos presentes na requisição.
4.1 - Formato inválido do JSON esperado:
A requisição foi enviada com um JSON malformado ou inválido, o que impede o sistema de interpretá-la corretamente. Isso ocorre quando a estrutura JSON contém erros de sintaxe, como chaves ou colchetes incorretos.
{ "success": true, "error": null, "integrationHubServiceId": "644a4d3c-6d2c-4154-a089-c1ab3fd89151", "orderKeyType": "String", "orderKey": [ "06" ], "consumption": [ { "orderId": "542e6b3e-8e63-4498-bdc8-1e334a22012e", "type": "TABLE", "createdAt": "2024-02-08 10:12:05", "customerName": "TOTVS", "items": [ { "id": "251", "index": "331811", "name": "TESTE MYTAPP", "externalCode": "251", "unit": "UNIT", "ean": "", "quantity": 1, "specialInstructions": "", "unitPrice": { "value": 99.9, "currency": "R$" }, "optionsPrice": { "value": 0, "currency": "R$" }, "totalPrice": { "value": 99.9, "currency": "R$" }, "options": null, "productionPoint": [ { "name": "NENHUM" } ] } ], "otherFees": [ { "name": "Taxa de Serviço", "type": "SERVICE_FEE", "receivedBy": "MERCHANT", "receiverDocument": "", "price": { "value": 9.99, "currency": "R$" }, "observation": "" } ], "discounts": null, "total": { "items": 99.9, "otherFees": 9.99, "discount": 0, "orderAmount": 109.89 }, "delivery": null, "takeout": null, "indoor": null, "table": { "waiterCode": 9999, "tableNumber": 6, "chairNumber": 0 }, "card": null } ] } |
{ "errors": [ { "key": "orderKeyType", "message": "body.orderKeyType must be one of [ORDER_ID, TABLE, CARD]" } ] } |
4.2 - JSON enviado com a ausência de um ou mais campos obrigatórios:
Se a requisição estiver faltando um ou mais campos obrigatórios, o servidor responderá com um erro 400. Cada campo requerido deve estar presente para que a operação seja processada corretamente.
{ "success": true, "error": null, "integrationHubServiceId": "66ca34be-a568-4444-a78d-098a68686e58", "orderKey": [ "340" ], "consumption": [ { "orderId": "2160c838-97d0-432f-a43a-dce087150d49", "type": "CARD", "createdAt": "2024-09-09 14:57:36", "customerName": "TOTVS", "items": [ { "id": "200", "index": "20", "name": "A FRANCESA", "externalCode": "1", "unit": "UNIT", "ean": "", "quantity": 1, "specialInstructions": "TESTE", "unitPrice": { "value": 69.9, "currency": "R$" }, "optionsPrice": { "value": 0, "currency": "R$" }, "totalPrice": { "value": 69.9, "currency": "R$" }, "options": null, "productionPoint": [ { "name": "COZINHA" } ] } ], "otherFees": [ { "name": "Taxa de Serviço", "type": "SERVICE_FEE", "receivedBy": "MERCHANT", "receiverDocument": "", "price": { "value": 6.99, "currency": "R$" }, "observation": "" } ], "discounts": null, "total": { "items": 69.9, "otherFees": 6.99, "discount": 0, "orderAmount": 76.89 }, "delivery": null, "takeout": null, "indoor": null, "table": null, "card": { "waiterCode": 9999, "cardNumber": 340, "deliveryTableNumber": 340 } } ] } |
{ "errors": [ { "key": "orderKeyType", "message": "body.orderKeyType is required" } ] } |
A solicitação é inválida e não pôde ser processada devido a erros na entrada fornecida. Verifique os dados enviados e tente novamente. |
O código de status HTTP 401, conhecido como "Unauthorized" (Não Autorizado), indica que a requisição não foi aplicada porque carece de credenciais de autenticação válidas para o recurso alvo. Diferente do código 403 (Forbidden), que significa que o servidor entendeu a requisição, mas se recusa a autorizá-la, o 401 é usado especificamente quando a autenticação é necessária e falhou ou ainda não foi fornecida.
A solicitação não pôde ser processada porque o usuário não possui as permissões necessárias. Verifique suas credenciais e tente novamente. |
O código de status HTTP 403, conhecido como "Forbidden" (Proibido), indica que o Token de autenticação ausente.
O código de status HTTP 404, conhecido como "Not Found" (Não Encontrado), indica que o servidor não encontrou o recurso solicitado. Isso ocorrer quando o token
da requisição da autenticação, é diferente do token
gerado utilizando o integrationHubId
diferente do corpo da requisição.
https://api-barramento.meuelevestage.com/order/consumption |
{ |