Páginas filhas
  • API Order Mesa - Get Consumption

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

CONTEÚDOCON

...

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.

...

Dica
titleCampos obrigatórios

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

...

Bloco de código
titleJSON Para retornar o status de todos os consumos
linenumberstrue
{
  "integrationHubServiceId": "66ca34be-a568-4444-a78d-098a68686e58",
  "orderKeyType": "TABLE",
  "orderKey": []
}
Bloco de código
titleResposta do JSON da requisição
linenumberstrue
{
   "success":true,
   "error":null,
   "integrationHubServiceId":"ea2aecdb-7a37-449f-99e1-aa1346b09524",
   "orderKeyType":"TABLE",
   "orderKey":[
      "06",
      "10",
      "19"
   ],
   "consumption":[
      {
         "orderId":"7cf20761-adc7-4a79-98c3-2259dd2b2856",
         "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":"244e2bc1-b7ef-4260-bbf5-49251bdc5f0f",
         "type":"TABLE",
         "createdAt":"2024-02-08 10:45:02",
         "customerName":"TOTVS",
         "items":[
            {
               "id":"1",
               "index":"331820",
               "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"
                  }
               ]
            },
            {
               "id":"4",
               "index":"331821",
               "name":"AVELA",
               "externalCode":"4",
               "unit":"UNIT",
               "ean":"",
               "quantity":1,
               "specialInstructions":"",
               "unitPrice":{
                  "value":37.99,
                  "currency":"R$"
               },
               "optionsPrice":{
                  "value":0,
                  "currency":"R$"
               },
               "totalPrice":{
                  "value":37.99,
                  "currency":"R$"
               },
               "options":null,
               "productionPoint":[
                  {
                     "name":"COZINHA"
                  }
               ]
            }
         ],
         "otherFees":[
            {
               "name":"Taxa de Serviço",
               "type":"SERVICE_FEE",
               "receivedBy":"MERCHANT",
               "receiverDocument":"",
               "price":{
                  "value":10.78,
                  "currency":"R$"
               },
               "observation":""
            }
         ],
         "discounts":null,
         "total":{
            "items":107.89,
            "otherFees":10.78,
            "discount":0,
            "orderAmount":118.67
         },
         "delivery":null,
         "takeout":null,
         "indoor":null,
         "table":{
            "waiterCode":1,
            "tableNumber":10,
            "chairNumber":0
         },
         "card":null
      },
      {
         "orderId":"b6017f3d-e680-4840-b69f-d2b573d4f8c0",
         "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
      }
   ]
}

...

Bloco de código
titleJSON Para retornar o status de um consumo específico
linenumberstrue
{
  "integrationHubServiceId": "7056c970-cb11-400f-9d4f-9f30253f3b0b",
  "orderKeyType": "TABLE",
  "orderKey": ["40"]
}
Nota
titleNota: HTTP Status Code = 202 Accepted

A solicitação foi aceita, mas ainda não foi processada. É necessário aguardar alguns momentos e, em seguida, entrar em contato no mesmo endereço para obter o status do consumo solicitado.

Bloco de código
titleJSON de resposta do retorno de um consumo específico HTTP Status Code = 208
linenumberstrue
{
	"errors": [
		{
			"key": "orderKeyType_orderKey",
			"message": "Order consumption request already exists: TABLE_40"
		}
	]
}  
 
Nota
titleNota: HTTP Status Code = 208 Already Reported

A solicitação já foi enviada. É necessário aguardar alguns momentos e, em seguida, entrar em contato no mesmo endereço para obter o status do consumo solicitado.

Bloco de código
titleJSON de resposta do retorno de um consumo
linenumberstrue
{
	"success": true,
	"error": null,
	"integrationHubServiceId": "7056c970-cb11-400f-9d4f-9f30253f3b0b",
	"orderKeyType": "TABLE",
	"orderKey": ["40"],
	"consumption": [
		{
			"orderId": "d8ef12c3-ce5f-4bfa-b1d2-ebde107a2f02",
			"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": 40,
				"chairNumber": 0
			},
			"card": null
		}
	]
}
Nota
titleNota: HTTP Status Code = 226 IM Used

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

04. Retornar o status de múltiplos pedidos:

Bloco de código
titleJSON Para retornar múltiplos consumos
linenumberstrue
{
  "integrationHubServiceId": "ab70a3ce-915b-42ee-9d7f-049d36e26eca",
  "orderKeyType": "TABLE",
  "orderKey": ["20", "40"]
}
Bloco de código
titleJSON de retorno de múltiplos consumos
linenumberstrue
{
	"success": true,
	"error": null,
	"integrationHubServiceId": "ab70a3ce-915b-42ee-9d7f-049d36e26eca",
	"orderKeyType": "TABLE",
	"orderKey": [
		"20",
		"40"
	],
	"consumption": [
		{
			"orderId": "2299a4af-2363-4aa8-803b-b95f7d8e8a7b",
			"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
		}
	]
}
Informações
titleNota:

Neste exemplo, os dados retornados incluem:

  • success: Indica se a operação foi bem-sucedida.
  • error: Contém informações sobre erros, se houver.
  • integrationHubServiceId: O identificador do serviço de integração.
  • orderKeyType: O tipo da chave do pedido (neste caso, "TABLE").
  • orderKey: A chave do pedido, que pode ser uma lista de identificadores.
  • consumption: Uma lista de consumos associados ao pedido, onde cada consumo inclui:
  • orderId: O identificador do pedido.
  • type: O tipo de consumo (neste caso, "TABLE").
  • createdAt: Data e hora de criação do pedido.
  • customerName: Nome do cliente.
  • items: Uma lista de itens consumidos, onde cada item inclui:
    • id: O identificador do item.
    • index: O índice do item.
    • name: O nome do item.
    • externalCode: O código externo do item.
    • unit: A unidade do item.
    • ean: O código EAN do item (pode estar vazio).
    • quantity: A quantidade do item.
    • specialInstructions: Instruções especiais para o item.
    • unitPrice: O preço unitário do item.
    • optionsPrice: O preço das opções do item.
    • totalPrice: O preço total do item.
    • options: As opções do item (pode ser null).
    • productionPoint: Pontos de produção associados ao item.
  • otherFees: Outras taxas associadas ao pedido.
  • discounts: Descontos aplicados ao pedido.
  • total: Totais do pedido, incluindo valores de itens, outras taxas e descontos.
  • delivery: Informações sobre entrega (pode ser null).
  • takeout: Informações sobre retirada (pode ser null).
  • indoor: Informações sobre consumo no local (pode ser null).
  • table: Informações sobre a mesa, incluindo o código do garçom e o número da mesa.
  • card: Informações sobre o cartão (pode ser null).


    ...

    04. ERROS
    Âncora
    erros
    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 incorretos01. Formando inválido do JSON esperado.

    Bloco de código
    titleJSON Inválido
    linenumberstrue
    {
        "integrationHubServiceId": "a9cad639-5775-4f8a-917b-2ae0f2d284d8",
    	  "orderKeyType": "string",
    	   "orderKey": ["string"]
    }
    Bloco de código
    titleJSON Resposta
    linenumberstrue
    {
    	"errors": [
    		{
    			"key": "orderKeyType",
    			"message": "body.orderKeyType must be one of [ORDER_ID, TABLE, CARD]"
    		}
    	]
    }


    ...


    024. JSON enviando 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.

    Bloco de código
    titleJSON Inválido
    linenumberstrue
    {
        "integrationHubServiceId": "a5c4e135-aacd-49c1-b051-160a78a83b56"
    }
    Bloco de código
    titleJSON Resposta
    linenumberstrue
    {
    	"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.

     03. GUID incorreto 

    Bloco de código
    titleJSON com o GUID inválido
    linenumberstrue
    {
        "integrationHubServiceId": "9a1cf326-c962-456f-8c49-c1bb2f340fc6A",
    	  "orderKeyType": "TABLE",
    	  "orderKey": []
    }
    Bloco de código
    titleJSON Inválido GUID incorreto
    linenumberstrue
    {
    	"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.04. Enviando uma requisição sem informar o código da orderKey corretamente

    Bloco de código
    titleJSON com sem informar o código da orderKey
    linenumberstrue
    {
        "integrationHubServiceId": "808c143d-d6d4-4b95-8c37-efa3a934f222",
    	  "orderKeyType": "TABLE",
    	  "orderKey": [""]
    }

    ...