CONTEÚDO


01. VISÃO GERAL

Este endpoint é utilizado para obter informações detalhadas sobre consumo, fornecendo um retorno em formato JSON com diversos atributos relevantes. Ao enviar uma solicitação conforme especificado nos exemplos abaixo, o endpoint processa a requisição e retorna um conjunto de dados que inclui o status mais recente do consumo.

Obtenha o consumo atribuído a um ou mais pedidos utilizando o parâmetro orderKeyType, que pode ser ORDER_ID, TABLE ou CARD.



02. ENDPOINT


MétodoURLAmbiente
POSThttps://api-barramento.meuelevestage.com/order/getConsumptionHomologação
POSThttps://api-barramento.meueleve.com/order/getConsumptionProdução



03. EXEMPLO DE UTILIZAÇÃO

3.1 -  Request - Retornar todos os status dos consumos

Ao fazer essa requisição, o sistema processa a solicitação para obter o status dos consumos indicados, retornando as informações de cada consumo solicitado.

{
  "integrationHubServiceId": "66ca34be-a568-4444-a78d-098a68686e58",
  "orderKeyType": "CARD",
  "orderKey": []
}

O seu pedido foi aceite, mas ainda não foi processado, aguarde alguns instantes e contacte a mesma morada para obter o consumo solicitado.




3.2-  Request - Ao reenviar a solicitação, a resposta retornada será a seguinte:
Após reenviar a requisição para o mesmo endpoint, o sistema retornará uma resposta detalhando o status atualizado dos consumos solicitados.

{
	"success": true,
	"error": null,
	"integrationHubServiceId": "66ca34be-a568-4444-a78d-098a68686e58",
	"orderKeyType": "CARD",
	"orderKey": [],
	"consumption": [
		{
			"orderId": "ad976378-8823-48d3-9cd1-62d68cf3be77",
			"type": "CARD",
			"createdAt": "2024-09-09 12:33:52",
			"customerName": "TOTVS",
			"items": [
				{
					"id": "181",
					"index": "181",
					"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"
						}
					]
				},
				{
					"id": "1",
					"index": "1",
					"name": "MARACUJA",
					"externalCode": "58",
					"unit": "UNIT",
					"ean": "",
					"quantity": 1,
					"specialInstructions": "TESTE",
					"unitPrice": {
						"value": 61,
						"currency": "R$"
					},
					"optionsPrice": {
						"value": 0,
						"currency": "R$"
					},
					"totalPrice": {
						"value": 61,
						"currency": "R$"
					},
					"options": null,
					"productionPoint": [
						{
							"name": "NENHUM"
						}
					]
				}
			],
			"otherFees": [
				{
					"name": "Taxa de Serviço",
					"type": "SERVICE_FEE",
					"receivedBy": "MERCHANT",
					"receiverDocument": "",
					"price": {
						"value": 13.09,
						"currency": "R$"
					},
					"observation": ""
				}
			],
			"discounts": null,
			"total": {
				"items": 130.9,
				"otherFees": 13.09,
				"discount": 0,
				"orderAmount": 143.99
			},
			"delivery": null,
			"takeout": null,
			"indoor": null,
			"table": null,
			"card": {
				"waiterCode": 9999,
				"cardNumber": 1,
				"deliveryTableNumber": 326
			}
		},
		{
			"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": "5b8d7e5c-f87e-40ac-91b7-726da529fc88",
			"type": "CARD",
			"createdAt": "2024-09-09 14:39:39",
			"customerName": "TOTVS",
			"items": [
				{
					"id": "1",
					"index": "332003",
					"name": "A FRANCESA",
					"externalCode": "1",
					"unit": "UNIT",
					"ean": "",
					"quantity": 1,
					"specialInstructions": "",
					"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": 4040,
				"deliveryTableNumber": 0
			}
		}
	]
}

Sua solicitação foi retornada com sucesso.




3.4 - Request - Obter detalhes de um consumo específico:

Ao fazer essa requisição, o sistema processa a solicitação e retorna os detalhes completos de um consumo específico, incluindo todas as informações relevantes sobre o pedido consumido

:

{
  "integrationHubServiceId": "66ca34be-a568-4444-a78d-098a68686e58",
  "orderKeyType": "CARD",
  "orderKey": ["40"]
}

O seu pedido foi aceite, mas ainda não foi processado, aguarde alguns instantes e contacte a mesma morada para obter o consumo solicitado.




3.5 - Request - Reenviando a solicitação para obter os detalhes de um consumo:

Ao reenviar a requisição para o mesmo endpoint, o sistema retornará as informações atualizadas sobre o consumo solicitado, refletindo seu status mais recente.

{
	"errors": [
		{
			"key": "orderKeyType_orderKey",
			"message": "Order consumption request already exists: CARD_40"
		}
	]
}  
 

Seu pedido já foi enviado, aguarde alguns instantes e entre em contato com o mesmo endereço para obter o consumo solicitado.




3.6 - Request - Solicitação de processamento para obter detalhes específicos do consumo:

Reenviando a requisição, o sistema processará o pedido de forma detalhada e retornará as informações completas sobre o consumo, conforme os dados disponíveis no momento.

{
	"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.7 - Request - Retornar o status de múltiplos pedidos:

Ao realizar essa requisição, o sistema processa a solicitação e fornece o status atualizado de vários pedidos ao mesmo tempo, incluindo informações detalhadas sobre cada um deles.

{
  "integrationHubServiceId": "66ca34be-a568-4444-a78d-098a68686e58",
  "orderKeyType": "CARD",
  "orderKey": ["340", "350"]
}

O seu pedido foi aceite, mas ainda não foi processado, aguarde alguns instantes e contacte a mesma morada para obter o consumo solicitado.




3.8 - Request - Reenviando a solicitação para obter o status de múltiplos pedidos:

Ao reenviar a requisição, o sistema retornará as informações atualizadas sobre o status dos pedidos solicitados, refletindo quaisquer alterações desde a última consulta.

{
	"errors": [
		{
			"key": "orderKeyType_orderKey",
			"message": "Order consumption request already exists: CARD_340, 350"
		}
	]
}  
 

Seu pedido já foi enviado, aguarde alguns instantes e entre em contato com o mesmo endereço para obter o consumo solicitado.




3.9 - Request - Solicitação de processamento para o status de múltiplos pedidos:

Reenviando a requisição, o sistema processará o pedido e fornecerá uma resposta que detalha o status atual de todos os pedidos incluídos na solicitação.

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


Dicionário de Requisição


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.


CampoValorDescrição
integrationHubServiceId *stringIdentificador único da integração
orderKeyType *stringTipo de chave do pedido
orderKeystringChave do pedido correspondente


EnumValorDescrição
TABLETABLEIdentifica o pedido pelo número da mesa
CARDCARDIdentifica o pedido pelo número do cartão
ORDER_IDORDER_IDIdentifica o pedido por um ID exclusivo

Campos marcaos com o * (asteristico) o seu preenchimento é obrigatório



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.


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.

{
    "integrationHubServiceId": "66ca34be-a568-4444-a78d-098a68686e58",
	  "orderKeyType": "string",
	  "orderKey": ["string"]
}
{
	"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.

{
    "integrationHubServiceId": "66ca34be-a568-4444-a78d-098a68686e58"
}
{
	"errors": [
		{
			"key": "orderKeyType",
			"message": "body.orderKeyType is required"
		},
		{
			"key": "orderKey",
			"message": "body.orderKey is required"
		}
	]
}




4.3 -  GUID incorreto:

O GUID (Identificador Globalmente Único) enviado na requisição está incorreto ou malformado, o que pode resultar em um erro. Um GUID é uma sequência específica que deve seguir o padrão correto.

{
    "integrationHubServiceId": "66ca34be-a568-4444-a78d-098a68686eAA",
	  "orderKeyType": "CARD",
	  "orderKey": []
}
{
	"errors": [
		{
			"key": "integrationHubServiceId",
			"message": "body.integrationHubServiceId must be a valid GUID"
		}
	]
}




4.4 - Requisição enviada sem informar o orderKey corretamente:

Caso a requisição seja enviada sem o campo orderKey ou com o valor incorreto, o sistema não conseguirá identificar o pedido, resultando em um erro 400. O orderKey deve estar corretamente preenchido e de acordo com o orderKeyType informado.

{
    "integrationHubServiceId": "66ca34be-a568-4444-a78d-098a68686e58",
	  "orderKeyType": "CARD",
	  "orderKey": [""]
}
{
	"errors": [
		{
			"key": 0,
			"message": "body.orderKey[0] is not allowed to be empty"
		}
	]
}

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 entendeu a requisição do cliente, mas está se recusando a cumpri-la. Isso geralmente ocorre quando o cliente enviou a URL incorreta para a requisição.

https://api-barramento.meuelevestage.com/order/getConsumptionS
{
	"message": "Missing Authentication Token"
}

O cliente enviou a URL incorreta para solicitação da requisição.



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 pode ocorrer quando o integrationHubId  está incorreto ou inválido.

{
    "integrationHubServiceId": "f1b874af-96ab-4535-aac3-25118fe586cc",
	  "orderKeyType": "CARD",
	  "orderKey": ["350"]
}
{
	"errors": [
		{
			"key": "integrationHubServiceId",
			"message": "Provider Merchant for integrationHubServiceId \"f1b874af-96ab-4535-aac3-25118fe586cc\" not found or disabled"
		}
	]
}

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



Alguma regra para atendimento de sua solicitação não foi atendida, analise o corpo da declaração para saber os motivos.



O código de status HTTP 429, conhecido como "Too Many Requests" (Muitas Requisições), indica que o cliente excedeu o limite de requisições permitido para um determinado período de tempo. Esse limite é definido pelo servidor e pode variar de acordo com a política de limitação de taxa implementada.


{
    "integrationHubServiceId": "66ca34be-a568-4444-a78d-098a68686e58",
	  "orderKeyType": "CARD",
	  "orderKey": ["340", "350"]
}
{
	"success": true,
	"error": null,
	"integrationHubServiceId": "7d7d205b-83ba-47c5-91ba-e4f32a2bbd9e",
	"orderKeyType": "CARD",
	"orderKey": [
		"20",
		"40"
	],
	"consumption": [
		{
			"orderId": "f5fee4b4-c13f-482d-8e98-0dd840629e02",
			"type": "TABLE",
			"createdAt": "2024-06-28 17:27:20",
			"customerName": "TOTVS",
			"items": [
				{
					"id": "39735945",
					"index": "4",
					"name": "MARACUJA",
					"externalCode": "58",
					"unit": "UNIT",
					"ean": "",
					"quantity": 1,
					"specialInstructions": "TESTE",
					"unitPrice": {
						"value": 61,
						"currency": "R$"
					},
					"optionsPrice": {
						"value": 0,
						"currency": "R$"
					},
					"totalPrice": {
						"value": 61,
						"currency": "R$"
					},
					"options": null,
					"productionPoint": [
						{
							"name": "NENHUM"
						}
					]
				}
			],
			"otherFees": [
				{
					"name": "Taxa de Serviço",
					"type": "SERVICE_FEE",
					"receivedBy": "MERCHANT",
					"receiverDocument": "",
					"price": {
						"value": 6.1,
						"currency": "R$"
					},
					"observation": ""
				}
			],
			"discounts": [],
			"total": {
				"items": 61,
				"otherFees": 6.1,
				"discount": 0,
				"orderAmount": 67.1
			},
			"delivery": null,
			"takeout": null,
			"indoor": null,
			"table": {
				"waiterCode": 9999,
				"tableNumber": 20,
				"chairNumber": 0
			},
			"card": null
		}
	]
}

Alguma regra para atender ao seu pedido não foi cumprida; analise o corpo da resposta para descobrir as razões.


05. LINKS


API Order Cartão - New Order
API Order Cartão - Consumption
API Order Cartão - Payment
API Order Cartão - Get Cancelled Items
API Order Cartão - Cancelled Items
API Order Cartão - Get Status
API Order Cartão - Status