Páginas filhas
  • API Order Mesa - Get Consumption

Versões comparadas

Chave

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

...

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
Âncora
endpoint
endpoint

...

A estrutura OrderConsumption representa as informações de consumo de um pedido e contém os seguintes campos:

integrationHubServiceId (string, obrigatório):
Nota
titleNota: HTTP Status Code = 226 IM Used

Sua solicitação foi retornada com sucesso.

Informações
titleInformações dos campos:


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.


  • Estrutura OrderConsumption:
CampoValorDescrição
integrationHubServiceIdstringIdentificador único da integração

...

orderKeyType

...

stringTipo de chave do pedido

...

  • "TABLE"
  • "CARD"
  • "ORDER_ID"
    Enum: [TABLE, CARD, ORDER_ID]
orderKeystring
Chave do pedido correspondente

...

success

...

boolean

...

Indica se a operação foi bem-sucedida

...

consumptions

...

arrayDetalhes dos consumos relacionados ao pedido

...

. Cada consumption inclui:

...


  • Estrutura Consumption (dentro de consumptions):
CampoValorDescrição
typestringTipo do consumo

...

createdAtstring (data e hora)

...

Data e hora da criação do

...

pedidos
customerName

...

string

...

Nome do cliente

...

items

...

arrayItens do pedido, onde cada

...

item inclui:

...


  • Estrutura OrderItems (dentro de items):
CampoValorDescrição
idstringIdentificador único do item

...

index

...

string

...

Posição do item

...

(opcional)
name

...

string

...

Nome do produto

...

externalCode

...

string

...

Código externo do produto

...

(opcional)
unit

...

stringUnidade de medida do item

...

  • UN (Unit)
  • KG (Kilogram)
  • L (Liter)
  • OZ (Ounce)
  • LB (Pound)
  • GAL (Gallon)
    Enum: [UN, KG, L, OZ, LB, GAL]

...

ean (string, opcional):
Código de barras EAN do item.

...

quantity (number, obrigatório):
Quantidade de itens, utilizando valores fracionários quando necessário (exemplo: 500 gramas = 0.5 KG).

...

specialInstructions (string, opcional):
Instruções especiais sobre os itens.

eanstringCódigo de barras EAN do item (opcional)
quantitynumberQuantidade de itens
specialInstructionsstringInstruções especiais sobre o item (opcional)
unitPricenumber

...

Preço por unidade, considerando 4 casas decimais

...

value

...

number

...

Valor do preço

...

currency

...

string

...

Código da moeda ISO 4217

...

originalPrice

...

numberPreço original do produto

...

  • value (number, obrigatório):
    Valor do preço original.

  • currency (string, obrigatório):
    Código da moeda ISO 4217.

(opcional)
optionsPricenumberPreço total das opções (opcional)
totalPricenumberPreço total do item
optionsarrayExtras opcionais escolhidos pelo consumidor. Cada opção inclui:


  • Estrutura OrderItemsOptions (dentro de options):
CampoValorDescrição
indexstringPosição da opção (opcional)
idstringIdentificador único da opção
namestringNome da opção
unitnumberUnidade de medida da opção
quantitynumberQuantidade de itens opcionais
unitPricenumber

...

optionsPrice (OptionsPrice, opcional):
Soma dos preços de todas as opções do item.

  • value (number, obrigatório):
    Valor do preço total das opções.

  • currency (string, obrigatório):
    Código da moeda ISO 4217.

...

totalPrice (TotalPrice, obrigatório):
Preço total do item, calculado como (quantidade * (unitPrice + optionsPrice)).

  • value (number, obrigatório):
    Valor do preço total.

  • currency (string, obrigatório):
    Código da moeda ISO 4217.

options (Array de OrderItemsOptions, opcional):
Extras opcionais escolhidos pelo consumidor, onde cada OrderItemsOptions inclui:

...

index (string, opcional):
Posição da opção.

...

id (string, obrigatório):
Identificador único da opção.

...

name (string, obrigatório):
Nome da opção.

...

externalCode (string, opcional):
Código externo da opção.

...

unit (Unit, obrigatório):
Unidade de medida da opção, podendo ser:

  • UN (Unit)
  • KG (Kilogram)
  • L (Liter)
  • OZ (Ounce)
  • LB (Pound)
  • GAL (Gallon)
    Enum: [UN, KG, L, OZ, LB, GAL]

...

ean (string, opcional):
Código de barras EAN da opção.

...

quantity (number, obrigatório):
Quantidade de itens opcionais, utilizando valores fracionários se necessário.

...

Preço por unidade da opção, considerando 4 casas decimais

...

originalPrice (OriginalPrice, opcional):
Preço original da opção.

totalPricenumber
Preço total da opção

...

specialInstructions

...

string

...

Instruções especiais sobre a opção

...

(opcional)
productionPoint

...

string

...

Ponto de produção da opção

...

(

...

opcional)


  • Estrutura OtherFees:

...

otherFees (Array de OtherFees, opcional):
Outras taxas que podem ser aplicadas, onde cada OtherFees inclui:

CampoValorDescrição
namestring

...

Nome relacionado às taxas

...

type

...

stringTipo da taxa

...

pricenumberValor da taxa
currencystringCódigo da moeda ISO 4217


  • Estrutura Discounts:
CampoValorDescrição
valuenumberValor do desconto
targetstringDestino do desconto
targetIdstringIdentificador do alvo (obrigatório quando target = ITEM).


  • Estrutura Total:
CampoValorDescrição
itemsnumberSoma do preço total dos itens listados
orderAmountnumberValor final do pedido (itens + outras taxas - descontos).


  • Estrutura Delivery:
CampoValorDescrição
deliveredBystringEntidade responsável pela entrega
deliveryAddressstringEndereço de entrega do pedido
estimatedDeliveryDateTimestringData e hora estimadas de entrega
deliveryDateTimestringData e hora em que a entrega realmente ocorreu (opcional)


Tabela de Enumerações

  • Enumerações para unit:
EnumDescrição
UNUnidade de medida simples
KGQuilograma
LLitro
OZOnça
LBLibra
GALGalão


  • Enumerações para orderKeyType:
EnumDescriçã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


  • Enumerações para type (OtherFees):
EnumDescrição
DELIVERY_FEETaxa de entrega
SERVICE_FEETaxa de serviço
TIPGorjeta


  • Enumerações para target (Discounts):
EnumDescrição
CARTAplicável ao total do carrinho
DELIVERY_FEEAplicável à taxa de entrega
ITEMAplicável a um item específico


  • Enumerações para receivedBy
EnumDescrição
MARKETPLACEEntidade que recebeu o pedido é o marketplace
MERCHANTEntidade que recebeu o pedido é o comerciante
LOGISTIC_SERVICESEntidade que recebeu o pedido é a logística

,

  • Enumerações para deliveredBy
EnumDescrição
MARKETPLACEEntidade responsável pela entrega é o marketplace
MERCHANTEntidade responsável pela entrega é o comerciante

...

receivedBy (OrderReceivedBy, obrigatório):
Entidade que recebeu o pedido, que pode ser "MARKETPLACE", "MERCHANT" ou "LOGISTIC_SERVICES".
Enum: [MARKETPLACE, MERCHANT, LOGISTIC_SERVICES]

...

receiverDocument (string, opcional):
Documento do receptor, obrigatório para marketplace.

...

price (OtherFeesPrice, obrigatório):
Preço da taxa.

  • value (number, obrigatório):
    Valor da taxa.

  • currency (string, obrigatório):
    Código da moeda ISO 4217.

...

observation (string, opcional):
Comentários adicionais.

...

discounts (Array de Discounts, opcional):
Descontos que podem ser aplicados, onde cada Discounts inclui:

  • value (number, obrigatório):
    Valor do desconto.

  • target (OrderDiscountsTarget, obrigatório):
    Destino do desconto, que pode ser "CART", "DELIVERY_FEE" ou "ITEM".
    Enum: [CART, DELIVERY_FEE, ITEM]

  • targetId (string, opcional):
    Identificador do alvo, obrigatório apenas para target = ITEM.

  • sponsorshipValues (Array de SponsorshipValues, obrigatório):
    Valores patrocinados por qualquer uma das partes, onde cada SponsorshipValues inclui:

    • name (OrderSponsorshipName, obrigatório):
      Nome do patrocinador, que pode ser "MARKETPLACE" ou "MERCHANT".
      Enum: [MARKETPLACE, MERCHANT]

    • value (number, obrigatório):
      Valor do desconto dado pelo patrocinador.

...

total (Total, obrigatório):
Resumo das somas de valores descritos no pedido.

  • items (number, obrigatório):
    Soma do preço total dos itens listados.

  • otherFees (number, obrigatório):
    Soma do valor total das outras taxas. Se não houver, use 0.

  • discount (number, obrigatório):
    Soma de qualquer desconto. Se não houver, use 0.

  • orderAmount (number, obrigatório):
    Valor final do pedido (itens + outras taxas + taxas adicionais + taxa de entrega - descontos).

  • additionalFees (number, obrigatório):
    Soma do valor total das taxas adicionais. Se não houver, use 0.

  • deliveryFee (number, obrigatório):
    Soma do valor total da taxa de entrega. Se não houver, use 0.

...

delivery (OrderTypeDelivery, obrigatório):
Informações para pedidos de entrega. Necessário se o tipo escolhido for "DELIVERY".

  • deliveredBy (OrderDeliveryBy, obrigatório):
    Entidade responsável pela entrega, que pode ser "MARKETPLACE" ou "MERCHANT".
    Enum: [MARKETPLACE, MERCHANT]

  • deliveryAddress (OrderTypeDeliveryAddress, obrigatório):
    Endereço de entrega do pedido.

    • country (string, obrigatório):
      Código do país em formato ISO 3166-1 alpha-2.

    • state (string, opcional):
      Estado ou subdivisão do país.

    • city (string, obrigatório):
      Nome da cidade.

    • district (string, opcional):
      Bairro ou distrito.

    • street (string, obrigatório):
      Nome da rua.

    • number (string, obrigatório):
      Número da rua.

    • complement (string, opcional):
      Complemento do endereço.

    • reference (string, opcional):
      Referência do endereço.

    • formattedAddress (string, obrigatório):
      Texto completo do endereço formatado.

    • postalCode (string, obrigatório):
      Código postal.

    • coordinates (OrderTypeDeliveryAddressCoordinates, obrigatório):
      Coordenadas do endereço.

      • latitude (number, obrigatório):
        Latitude em graus.

      • longitude (number, obrigatório):
        Longitude em graus.

  • estimatedDeliveryDateTime (string, obrigatório):
    Data e hora estimadas de entrega.

  • deliveryDateTime (string, opcional):
    Data e hora em que a entrega realmente ocorreu.

...

takeout (OrderTypeTakeout, obrigatório):
Informações para pedidos de retirada. Necessário se o tipo escolhido for "TAKEOUT".

  • mode (OrderTakeoutMode, obrigatório):
    Modo de retirada, podendo ser "DEFAULT" ou "PICKUP_AREA".
    Enum: [DEFAULT, PICKUP_AREA]

  • takeoutDateTime (string, opcional):
    Data e hora para quando o pedido estiver pronto.

...

table (OrderTypeTable, obrigatório):
Informações para pedidos de mesa. Necessário se o tipo escolhido for "TABLE".

  • waiterCode (number, obrigatório):
    Identificador do garçom.

  • tableNumber (number, obrigatório):
    Identificador da mesa.

  • chairNumber (number, opcional):
    Identificador da cadeira.

...

card (OrderTypeCard, obrigatório):
Informações para pedidos de cartão. Necessário se o tipo escolhido for "CARD".

  • waiterCode (number, obrigatório):
    Identificador do garçom.

  • cardNumber (number, obrigatório):
    Identificador do cartão.

  • deliveryTableNumber (number, opcional):
    Identificador da mesa de entrega.

error (Error, obrigatório):
Detalhes do erro caso a operação não tenha sido bem-sucedida.

...

code (string, obrigatório):
Código do erro.

...


...

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.

014.Formando 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.

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 faltando um ou mais campos2 - 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.

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

...