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 requisição utilizado pelo endpoint GetConsumption -   API Order Cartão - Get Consumption



02. ENDPOINT


MétodoURLAmbiente
POSThttps://api-barramento.meuelevestage.com/order/consumptionHomologação
POSThttps://api-barramento.meueleve.com/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": "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 GetOrderStatus.


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.


CampoValorDescrição
integrationHubServiceId *stringIdentificador único da integração
orderKeyType *enum Tipo de chave do pedido (veja na tabela orderKeyType)
orderKey *arrayChave do pedido correspondente 
success *booleanIndica se a operação foi bem-sucedida
consumptionsarrayDetalhes dos consumos relacionados ao pedido. (veja na tabela consumptios)
errorarrayo erro é necessário quando o sucesso é falso. (veja na tabela de error)


CampoValorDescrição
type *enumTipo do consumo (veja na tabela type)
createdAt *string (data e hora)Data e hora da criação do pedidos
customerName *stringNome do cliente
items *arrayItens do pedido (veja na tabela de items)
ortherFessarrayOutras taxas que podem ser aplicadas (veja na tabela otherFees)
discountsarrayQuaisquer descontos que possam ser aplicados (veja na tabela discounts)
total *arrayConjunto de campos com a soma dos valores descritos anteriormente no pedido (veja na tabela total)
deliveryarrayInformações para pedidos DELIVERY. OBRIGATÓRIO se o tipo escolhido for DELIVERY. (veja tabela delivery)
takeoutarrayInformações para pedidos TAKEOUT. OBRIGATÓRIO se o tipo escolhido for TAKEOUT (veja na tabela takeout)
tablearrayInformações para pedidos de TABLE. OBRIGATÓRIO se o tipo escolhido for TABLE (veja na tabela table)
cardarrayInformações para pedidos CARD. OBRIGATÓRIO se o tipo escolhido for CARTÃO (veja na tabela de card)


CampoValorDescrição
id *stringIdentificador único do item
indexstringPosição do item (opcional)
name *stringNome do produto
externalCode *stringCódigo externo do produto (opcional)
unit *stringUnidade 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)
eanstringCódigo de barras EAN do item (opcional)
quantity *numberQuantidade de itens
specialInstructionsstringInstruções especiais sobre o item (opcional)
unitPrice *arrayPreço por unidade, considerando 4 casas decimais (veja tabela de unitPrice)
originalPricearrayPreç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)
optionsPricearrayPreço total das opções (opcional) (veja tabela de optionsPrice)
totalPrice *numberPreço total do item (veja tabela de totalPrice)
optionsarrayExtras opcionais escolhidos pelo consumidor. (veja na tabela de options)
productionPoint *stringPonto de produção do produto


CampoValorDescrição
indexstringPosição da opção (opcional)
id *stringIdentificador único da opção
name *stringNome da opção

externalCode *

stringCódigo do produto externo
unit *enumUnidade de medida da opção (veja na tabela unit)
eanstringEAN é o padrão de código de barras usado nos itens.
quantity *numberQuantidade de itens opcionais
unitPrice *arrayPreço por unidade, considerando 4 casas decimais (veja tabela de unitPrice).

originalPrice

arrayPreço original do produto (opcional) (veja tabela de originalPrice).
totalPrice *arrayPreço total da opção (veja tabela de totalPrice)
specialInstructionsstringInstruções especiais sobre a opção (opcional)
productionPoint *stringPonto de produção da opção (opcional)


CampoValorDescrição
name *stringNome relacionado às taxas
type *enumTipo da taxa (veja na tabela type)
receivedBy *enumPedido recebido por (veja na tabela receivedBy)
receiverDocumentstringDocumento do receptor de outras taxas
price *arrayPreço da taxa(veja tabela de price).
observationstringObservação de outras taxas. Quaisquer comentários extras


CampoValorDescrição
value *numberValor do desconto
target *enumDestino do desconto (vejna na tabela de cart)
targetIdstring

Identificador do alvo (obrigatório quando target = ITEM).

sponsorshipValues *

arrayValores 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)


CampoValorDescrição
items *numberSoma do preço total dos itens listados no atributo itens
otherFeesnumberSoma do valor total das demais taxas listadas no atributo otherFees. Se não houver, use 0
discountnumberSoma de quaisquer descontos que possam estar listados no atributo descontos. Se não houver, use 0
orderAmount *numberO valor final da encomenda (itens + outrasTaxas +Taxas adicionais +Taxa de entrega - descontos)
additionalFeesnumberSoma do valor total das taxas adicionais listadas no atributo adicionalFees. Se não houver, use 0
deliveryFeenumberSoma do valor total da taxa de entrega listada no atributo deliveryFee. Se não houver, use 0


CampoValorDescrição

deliveredBy *

enumSolicitar entrega por (veja na tabela de deliveredBy)

deliveryAddress *

arrayO endereço onde o pedido será entregue (veja na tabela deliveryAddress)

estimatedDeliveryDateTime *

stringData e hora estimada de entrega. A mesma data mostrada ao cliente, na interface do Aplicativo de Pedidos

deliveryDateTime

stringData de entrega. A data e hora em que a entrega realmente ocorreu.



CampoValorDescrição
mode *enumModo de pedido para viagem (veja na tabela mode)

takeoutDateTime *

stringData 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


CampoValorDescrição
DEFAULT*DEFAULTIndica 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_AREAIndica que o pedido será retirado em uma área de coleta designada dentro do estabelecimento


CampoValorDescrição

waiterCode *

numberO identificador do garçom

tableNumber *

numberO identificador da tabela

chairNumber *

numberO identificador do presidente


CampoValorDescrição

waiterCode *

numberO identificador do garçom

tableNumber *

numberO identificador da tabela

deliveryTableNumber *

numberO identificador da mesa


CampoValorDescrição
code *string
Código de erro
message *string
Mensagem de erro


Tabela de auxiliares e enumerações

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


CampoValorDescrição
valuenumberValor do preço
currencystringCódigo da moeda ISO 4217


EnumValorDescrição
UNUNUnidade de medida simples
KGKGQuilograma
LLLitro
OZOZOnça
LBLBLibra
GALGALGalão


CampoValorDescrição
value *numberValor do preço
currency *stringCódigo da moeda ISO 4217


CampoValorDescrição
value *numberValor do preço
currency *stringCódigo da moeda ISO 4217


CampoValorDescrição
value *numberValor do preço
currency *stringCódigo da moeda ISO 4217


CampoValorDescrição
value *numberValor do preço
currency *stringCódigo da moeda ISO 4217


EnumValorDescrição
DELIVERY_FEEDELIVERY_FEETaxa de entrega
SERVICE_FEESERVICE_FEETaxa de serviço
TIPTIPGorjeta


EnumValorDescrição
MARKETPLACEMARKETPLACEEntidade que recebeu o pedido é o marketplace
MERCHANTMERCHANTEntidade que recebeu o pedido é o comerciante
LOGISTIC_SERVICESLOGISTIC_SERVICESEntidade que recebeu o pedido é a logística


EnumValorDescrição
MARKETPLACEMARKETPLACEEntidade responsável pela entrega é o marketplace
MERCHANTMERCHANTEntidade responsável pela entrega é o comerciante


CampoValorDescrição
value *numberValor do preço
currency *stringCódigo da moeda ISO 4217


EnumValorDescrição
MARKETPLACEMARKETPLACEEntidade responsável pela entrega é o marketplace
MERCHANTMERCHANTEntidade responsável pela entrega é o comerciante


CampoValorDescição

country *

stringTipo de pedido País do endereço de entrega. *Código de país ISO 3166-1 alfa-2 de duas letras.

state *

stringSubdivisão de estado ou país. É recomendado (mas não obrigatório) que você use a representação ISO 3166-2

city *

stringNome da cidade

district *

stringBairro ou Distrito

street *

stringNome da rua

number *

stringNúmero da rua

complement

stringComplemento de endereço

reference

stringReferência de endereço

formattedAddress *

stringTexto de endereço totalmente formatado

postalCode *

stringCódigo postal

coordinates *

arrayTipo de pedido Endereço de entrega Coordenadas latitude (veja na tabela coordinates)


CampoValorDescrição

latitude *

numberLatitude em graus. Os valores estão restritos ao intervalo [[-90, 90]]

longitude *

numberLongitude em graus. Os valores estão restritos ao intervalo [[-180, 180]]

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.

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

{
    "errors": [
        {
            "key": "orderKeyType_orderKey",
            "message": "Order consumption for : CARD_340 not found"
        }
    ]
}



05. LINKS


API Order Cartão - New Order
API Order Cartão - Get 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