CONTEÚDO


01. VISÃO GERAL

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 resposta obtida pelo endpoint GetConsumption -   API Order Mesa - Get Consumption



02. ENDPOINT


MétodoURLAmbiente
POSThttps://api-barramento.meuelevestage.com/order/consumptionHomologação
POSThttps://api-barramento.meueleve.com.br/order/consumptionProdução



03. EXEMPLO DE UTILIZAÇÃ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": "5ffec6b8-1c55-4a7d-985f-12d13685b553",
	"orderKeyType": "TABLE",
	"orderKey": [
		"204"
	],
	"consumption": [
		{
			"orderId": "f217d261-126c-456a-86d5-d92eda8fbd1a",
			"type": "TABLE",
			"createdAt": "2024-09-24 11:07:41",
			"customerName": "TOTVS",
			"items": [
				{
					"id": "204",
					"index": "204",
					"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": {
				"waiterCode": 9999,
				"tableNumber": 204,
				"chairNumber": 0
			},
			"card": null
		}
	]
}

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": "644a4d3c-6d2c-4154-a089-c1ab3fd8915",
	"orderKeyType": "TABLE",
	"orderKey": [
		"06",
		"19"
	],
	"consumption": [
		{
			"orderId": "c5c1bf93-d112-4f4c-af3b-450b39519e12",
			"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
		},
		{
			"orderId": "644a4d3c-6d2c-4154-a089-c1ab3fd89151",
			"type": "TABLE",
			"createdAt": "2024-02-25 14:01:50",
			"customerName": "TOTVS",
			"items": [
				{
					"id": "5",
					"index": "331838",
					"name": "BRIGADEIRO COM BABA DE MOCA",
					"externalCode": "5",
					"unit": "UNIT",
					"ean": "",
					"quantity": 2,
					"specialInstructions": "",
					"unitPrice": {
						"value": 29.99,
						"currency": "R$"
					},
					"optionsPrice": {
						"value": 0,
						"currency": "R$"
					},
					"totalPrice": {
						"value": 30.2,
						"currency": "R$"
					},
					"options": null,
					"productionPoint": [
						{
							"name": "COZINHA"
						}
					]
				},
				{
					"id": "6",
					"index": "331839",
					"name": "BRIGADEIRO 2",
					"externalCode": "6",
					"unit": "UNIT",
					"ean": "",
					"quantity": 2,
					"specialInstructions": "",
					"unitPrice": {
						"value": 63,
						"currency": "R$"
					},
					"optionsPrice": {
						"value": 0,
						"currency": "R$"
					},
					"totalPrice": {
						"value": 63.42,
						"currency": "R$"
					},
					"options": null,
					"productionPoint": [
						{
							"name": "COZINHA"
						}
					]
				},
				{
					"id": "5",
					"index": "331841",
					"name": "BRIGADEIRO COM BABA DE MOCA",
					"externalCode": "5",
					"unit": "UNIT",
					"ean": "",
					"quantity": 1,
					"specialInstructions": "",
					"unitPrice": {
						"value": 29.99,
						"currency": "R$"
					},
					"optionsPrice": {
						"value": 0,
						"currency": "R$"
					},
					"totalPrice": {
						"value": 15.11,
						"currency": "R$"
					},
					"options": null,
					"productionPoint": [
						{
							"name": "COZINHA"
						}
					]
				},
				{
					"id": "6",
					"index": "331842",
					"name": "BRIGADEIRO 2",
					"externalCode": "6",
					"unit": "UNIT",
					"ean": "",
					"quantity": 1,
					"specialInstructions": "",
					"unitPrice": {
						"value": 63,
						"currency": "R$"
					},
					"optionsPrice": {
						"value": 0,
						"currency": "R$"
					},
					"totalPrice": {
						"value": 31.7,
						"currency": "R$"
					},
					"options": null,
					"productionPoint": [
						{
							"name": "COZINHA"
						}
					]
				}
			],
			"otherFees": [
				{
					"name": "Taxa de Serviço",
					"type": "SERVICE_FEE",
					"receivedBy": "MERCHANT",
					"receiverDocument": "",
					"price": {
						"value": 14.04,
						"currency": "R$"
					},
					"observation": ""
				}
			],
			"discounts": null,
			"total": {
				"items": 140.43,
				"otherFees": 14.04,
				"discount": 0,
				"orderAmount": 154.47
			},
			"delivery": null,
			"takeout": null,
			"indoor": null,
			"table": {
				"waiterCode": 9999,
				"tableNumber": 19,
				"chairNumber": 0
			},
			"card": null
		}
	]
}

Consumo enviado com sucesso..




Os dados retornados incluem:

  • integrationHubServiceId: Chave de identificação da integração, usada para identificar de forma única a integração no hub.

  • orderKeyType: Tipo de chave utilizado para identificar o pedido. Pode ser:

    • TABLE: Número da mesa.
    • CARD: Número do cartão.
    • ORDER_ID: Identificador único do pedido.

    Enum: [TABLE, CARD, ORDER_ID]

  • orderKey: Chave do pedido, conforme o tipo selecionado em orderKeyType.

  • success: Indica se a operação foi bem-sucedida:

    • true: A operação foi realizada com sucesso, e o consumo relacionado ao pedido será retornado no campo consumptions.
    • false: A operação falhou, e o campo error trará detalhes sobre o erro.
  • consumptions: Lista de itens consumidos relacionados ao pedido. Quando success for true, o consumo incluirá as seguintes informações:

    • type: Tipo de chave do consumo, conforme o valor em orderKeyType.

    • createdAt: Data e hora da criação do pedido em formato UTC (ISO timestamp).

    • customerName: Nome do cliente que realizou o pedido.

    • items: Lista de itens consumidos, com os seguintes detalhes:

      • id: Identificador único do item.

      • index: Posição do item no pedido.

      • name: Nome do produto consumido.

      • externalCode: Código externo do produto.

      • unit: Unidade de medida do item, podendo ser:

        • UN: Unidade.
        • KG: Quilograma.
        • L: Litro.
        • OZ: Onça.
        • LB: Libra.
        • GAL: Galão.

        Enum: [UN, KG, L, OZ, LB, GAL]

      • ean: Código de barras padrão (EAN) do item.

      • quantity: Quantidade consumida. Valores fracionados são permitidos, como 0,5 KG para 500 gramas.

      • specialInstructions: Instruções especiais relacionadas ao item.

      • unitPrice: Preço por unidade, com as seguintes informações:

        • value: Valor do preço unitário (aceita até 4 casas decimais).
        • currency: Código da moeda (ISO 4217).
      • originalPrice: Preço original do item antes de descontos ou ajustes, para fins informativos.

      • optionsPrice: Preço total das opções associadas ao item.

      • totalPrice: Preço total do item, calculado como a quantidade multiplicada pelo valor unitário e o preço das opções.

      • options: Lista de opções associadas ao item, incluindo detalhes como:

        • id: Identificador único da opção.
        • name: Nome da opção.
        • quantity: Quantidade da opção.
        • unitPrice: Preço por unidade da opção.
      • productionPoint: Ponto de produção associado ao item.

    • otherFees: Lista de outras taxas aplicáveis ao consumo, como taxa de serviço, taxa de entrega ou gorjeta.

      • name: Nome da taxa.
      • type: Tipo da taxa, podendo ser:
        • DELIVERY_FEE: Taxa de entrega.
        • SERVICE_FEE: Taxa de serviço.
        • TIP: Gorjeta.
      • receivedBy: Entidade que recebeu a taxa, podendo ser:
        • MARKETPLACE: Marketplace.
        • MERCHANT: Comerciante.
        • LOGISTIC_SERVICES: Serviços de logística.
      • price: Valor da taxa.
    • discounts: Lista de descontos aplicáveis, com detalhes como:

      • value: Valor total do desconto.
      • target: Destino do desconto, podendo ser aplicado ao carrinho, à taxa de entrega ou ao item.
      • sponsorshipValues: Valores patrocinados por terceiros, como o marketplace ou o comerciante.
    • total: Resumo dos valores do consumo, incluindo:

      • items: Soma do valor total dos itens consumidos.
      • otherFees: Soma das outras taxas aplicáveis.
      • discount: Soma dos descontos aplicáveis.
      • orderAmount: Valor final do pedido, calculado como a soma de itens, taxas e descontos.
    • delivery: Informações de entrega (obrigatório para pedidos de entrega), incluindo:

      • deliveredBy: Entidade responsável pela entrega (Marketplace ou Comerciante).
      • deliveryAddress: Endereço de entrega completo.
      • estimatedDeliveryDateTime: Data e hora estimadas para a entrega.
      • deliveryDateTime: Data e hora em que a entrega foi realizada.
    • takeout: Informações para pedidos de retirada, se aplicável.

    • table: Informações para pedidos feitos em mesas.

    • card: Informações para pedidos feitos com cartão.

  • error: Campo obrigatório quando success for false, contendo informações sobre o erro ocorrido:

    • code: Código do erro.
    • message: Mensagem descritiva do erro.

O corpo da requisição enviada é o mesmo que o corpo da resposta obtida através do endpoint GetConsumption.


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

CampoValorDescrição
integrationHubServiceIdstringChave de identificação única da integração no hub
orderKeyTypeenumTipo de chave usada para identificar o pedido. Enum: OrderKeyType (veja tabela abaixo)
orderKeystringChave correspondente ao tipo selecionado em orderKeyType
successbooleanIndica se a operação foi bem-sucedida
consumptionsarray

Lista de itens consumidos relacionados ao pedido (veja tabela de consumptions).

errorobject

Informações sobre o erro, presente quando success for false (veja tabela de error).


Campo

Valor

Descrição

typeenumTipo do consumo
createdAtstring (data e hora)Data e hora da criação do pedidos
customerNamestringNome do cliente
itemsarrayItens do pedido, onde cada item inclui:
otherFeesarrayLista de outras taxas aplicáveis (veja tabela de OtherFees)
discountsarrayLista de descontos aplicáveis (veja tabela de Discounts)
deliveryarrayInformações sobre entregas (veja tabela de OrderTypeDelivery)
takeoutarrayInformações sobre pedidos para retirada (veja tabela de OrderTypeTakeout)
tablearrayInformações sobre pedidos em mesa (veja tabela de OrderTypeTable)
cardarrayInformações sobre pedidos por cartão (veja tabela de OrderTypeCard)


Enum

Descrição

TABLEIdentifica o pedido pelo número da mesa
CARDIdentifica o pedido pelo número do cartão
ORDER_IDIdentifica o pedido por um ID exclusivo


Campo

Valor

Descrição

codecódigo do erroIdentifica o tipo de erro ocorrido
messagemensagem descritivaDetalha a falha e fornece mais informações sobre o erro




















Campo

Valor

Descrição

idstringIdentificador único do item
indexstringPosição do item (opcional)
namestringNome do produto
externalCodestringCódigo externo do produto (opcional)
unitstringUnidade de medida do item
eanstringCódigo de barras EAN do item (opcional)
quantitynumberQuantidade de itens
specialInstructionsstringInstruções especiais sobre o item (opcional)
unitPricenumberPreço por unidade, considerando 4 casas decimais
originalPricenumberPreço original antes de descontos
originalPrice numberCódigo da moeda ISO 4217
optionsPricenumberPreço total das opções associadas ao item
totalPricenumberPreço total do item
optionsarrayExtras opcionais escolhidos pelo consumidor. Cada opção inclui:
productionPointstringPonto de produção associado ao item


Campo

Valor

Descrição

idstringIdentificador único da opção
namestringNome da opção
unitnumberUnidade de medida da opção
quantitynumberQuantidade de itens opcionais




CampoValor
orderKeyCódigo de identificação do pedido, sendo uma "string"



04. ERROS

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.

01. Formando inválido do JSON esperado.

{
	"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]"
		}
	]
}



02. JSON enviando faltando um ou mais campos.

{
	"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": "success",
			"message": "body.success 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 servidor não entendeu a requisição do cliente por está tentando acessar uma URL incorreta


https://api-barramento.meuelevestage.com/order/consumptionS
{
    "integrationHubServiceId": "1188f64e-3ce8-45be-882c-6c8dcfcb70d4",
	  "orderKeyType": "TABLE",
	   "orderKey": ["09"]
}

O cliente não enviou uma requisição para a URL  incorreta.



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.

{
	"success": true,
	"error": null,
	"integrationHubServiceId": "644a4d3c-6d2c-4154-a089-c1ab3fd891513",
	"orderKeyType": "TABLE",
	"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
		}
	]
}
{
	"Message": "User is not authorized to access this resource with an explicit deny"
}

Uma ou mais informações enviadas não puderam ser encontradas.



05. LINKS


API Order Mesa - New Order
API Order Mesa - Get Status
API Order Mesa - Status
API Order Mesa - Get Consumption
API Order Mesa - Payment
API Order Mesa - Get Cancelled Items
API Order Mesa - Cancelled Items