CONTEÚDO


01. VISÃO GERAL

O endpoint CancelledItems da API Order Mesa é utilizado para envio do resultado da solicitação de itens cancelados de pedido através do Ponto de Vendas (PDV). Este endpoint recebe o mesmo corpo da resposta obtida pelo endpoint GetCancelledItems -   API Order Mesa - Get Cancelled Items



02. ENDPOINT


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



03. EXEMPLO DE UTILIZAÇÃO

3.1 - Envio da requisição para obter o status de um item cancelado no PDV:
Ao enviar a requisição para este endpoint, o sistema processa a solicitação e retorna o status atualizado de um item cancelado no PDV. O corpo da requisição deve conter os dados obtidos no endpoint getCancelledItems, e a resposta fornecerá as informações detalhadas sobre o cancelamento solicitado.

{
	"success": true,
	"error": null,
	"integrationHubServiceId": "5ffec6b8-1c55-4a7d-985f-12d13685b553",
	"orderKeyType": "TABLE",
	"orderKey": ["22"],
	"lastestUpdatedStatus": "2024-07-18 09:26:47",
	"items": [
		{
			"id": "39735945",
			"index": "5",
			"name": "MARACUJA",
			"externalCode": "58",
			"quantity": 1,
			"cancellationAgent": "ALBINO",
			"cancellationDateTime": "2024-07-17 14:19:33",
			"cancellationReason": " 55596;",
			"tableCardNumber": "22",
			"productionPoint": "NENHUM"
		}
	]
}

A solicitação foi processada com sucesso e o resultado foi retornado conforme esperado.




3.2. Request - Corpo da requisição para consultar o cancelamento de vários pedidos no PDV específico:

Essa requisição é enviada para verificar se os itens de vários pedidos cancelados em um PDV específico foram transmitidos com sucesso. 

{
	"success": true,
	"error": null,
	"integrationHubServiceId": "d01ea5cd-7952-4b77-b0ae-ed93aa32e832",
	"orderKeyType": "TABLE",
	"orderKey": [
		"22",
		"23"
	],
	"lastestUpdatedStatus": "2024-07-18 09:48:03",
	"items": [
		{
			"id": "39735945",
			"index": "5",
			"name": "MARACUJA",
			"externalCode": "58",
			"quantity": 1,
			"cancellationAgent": "ALBINO",
			"cancellationDateTime": "2024-07-17 14:19:33",
			"cancellationReason": " 55596;",
			"tableCardNumber": "22",
			"productionPoint": "NENHUM"
		},
		{
			"id": "3973594011",
			"index": "19",
			"name": "MARACUJA",
			"externalCode": "58",
			"quantity": 1,
			"cancellationAgent": "ALBINO",
			"cancellationDateTime": "2024-07-17 16:04:27",
			"cancellationReason": " 55596;",
			"tableCardNumber": "23",
			"productionPoint": "NENHUM"
		}
	]
}

O corpo da request preenchida, deverá ser obrigatóriamente o é o mesmo que o corpo do response obtido através do endpoint GetCancelledItems


Dicionário de Request


Informações sobre o campos da request da API cancelledItems, é utilizada para retornar os dados do(s) pedido(s) cancelado(s).

CampoValorDescrição
success *booleanIndica se a operação foi bem-sucedida
errorobjetoContém informações sobre erros, se houver (veja na tabela de error)
integrationHubServiceId *stringChave de identificação de integração
orderKeyType *enumTipo da chave do pedido (veja na tabela orderKeyType)
orderKey *arrayLista de identificadores de pedidos (números de mesa, cartão, ou ID de pedido)
lastestUpdatedStatus *string (data e hora)Data e hora da última atualização do status dos pedidos
items *arrayLista de itens cancelados


Enum

Valor

Descriçã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
id *stringIdentificador do produto no lançamento.
index *stringPosição do produto no lançamento.
name *stringNome do item/produto.
externalCode *stringCódigo do produto no PDV integrado.
quantity *númeroQuantidade do item cancelado.
cancellationAgent *stringOperador responsável pelo cancelamento.
cancellationDateTime *string (data e hora)Data e hora do cancelamento.
cancellationReason *stringMotivo do cancelamento.
tableCardNumber *stringNúmero da mesa ou cartão associado ao item cancelado
productionPoint *stringPonto de produção relacionado ao item


EnumValorDescrição
code *código do erroIdentifica o código do erro
message *messagem do erroDescrição detalhada do erro ocorrido, ex: "body.orderKeyType must be one of [ORDER_ID, TABLE, CARD]"

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": "5ffec6b8-1c55-4a7d-985f-12d13685b553",
	"orderKeyType": "TABLE",
	"orderKey": [
		"22",
		"23"
	],
	"lastestUpdatedStatus": "2024-07-18 09:48:03",
	"items": [
		{
			"id": "39735945",
			"index": "5",
			"name": "MARACUJA",
			"externalCode": "58",
			"quantity": 1,
			"cancellationAgent": "ALBINO",
			"cancellationDateTime": "2024-07-17 14:19:33",
			"cancellationReason": " 55596;",
			"tableCardNumber": "22",
			"productionPoint": "NENHUM"
		},
		{
			"id": "3973594011",
			"index": "19",
			"name": "MARACUJA",
			"externalCode": "58",
			"quantity": 1,
			"cancellationAgent": "ALBINO",
			"cancellationDateTime": "2024-07-17 16:04:27",
			"cancellationReason": " 55596;",
			"tableCardNumber": "23",
			"productionPoint": "NENHUM"
		}
	]
}
{
	"errors": [
		{
			"key": "success",
			"message": "body.success is required"
		}
	]
}




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": "5ffec6b8-1c55-4a7d-985f-12d13685b553",
	"orderKeyType": "String",
	"orderKey": [
		"22",
		"23"
	],
	"lastestUpdatedStatus": "2024-07-18 09:48:03",
	"items": [
		{
			"id": "39735945",
			"index": "5",
			"name": "MARACUJA",
			"externalCode": "58",
			"quantity": 1,
			"cancellationAgent": "ALBINO",
			"cancellationDateTime": "2024-07-17 14:19:33",
			"cancellationReason": " 55596;",
			"tableCardNumber": "22",
			"productionPoint": "NENHUM"
		},
		{
			"id": "3973594011",
			"index": "19",
			"name": "MARACUJA",
			"externalCode": "58",
			"quantity": 1,
			"cancellationAgent": "ALBINO",
			"cancellationDateTime": "2024-07-17 16:04:27",
			"cancellationReason": " 55596;",
			"tableCardNumber": "23",
			"productionPoint": "NENHUM"
		}
	]
}
{
	"errors": [
		{
			"key": "orderKeyType",
			"message": "body.orderKeyType must be one of [ORDER_ID, TABLE, CARD]"
		}
	]
}

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, por causa do 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.

{
	"success": true,
	"error": null,
	"integrationHubServiceId": "f1b874af-96ab-4535-aac3-25118fe586cc",
	"orderKeyType": "TABLE",
	"orderKey": [
		"19"
	],
	"lastestUpdatedStatus": "2024-07-15 17:02:35",
	"items": [
		{
			"id": "406a2a14-ac79-422a-b667-769fa1d2a9a0",
			"status": {
				"code": 505,
				"description": "TABLE_IN_USE"
			},
			"deliveryAgent": null,
			"deliveryDateTime": null,
			"cancellationReason": null,
			"tableCardNumber": "19"
		}
	]
}
{
	"errors": [
		{
			"key": "orderKeyType_orderKey",
			"message": "Order status for: TABLE_22 not found"
		}
	]
}

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 - Consumption
API Order Mesa - Payment
API Order Mesa - Get Cancelled Items