Páginas filhas
  • API Order Mesa - Consumption

Versões comparadas

Chave

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

...

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.

Âncora
todos_status
todos_status

...

Nota
titleNota: HTTP Status Code = 226 IM Used

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


...


023.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.

Âncora
multiplos
multiplos

...

Nota
titleNota: HTTP Status Code = 226 IM Used

Consumo enviado com sucesso..


...


Informaçõestip
titleInformações dos campos:

Os dados retornados incluem:

  • integrationHubServiceId: Chave de identificação da integração, usada para identificar de forma única a integração no hub.

  • orderKeyType: Tipo de chave utilizado para identificar o pedido. Pode ser:

    • TABLE: Número da mesa.
    • CARD: Número do cartão.
    • ORDER_ID: Identificador único do pedido.

    Enum: [TABLE, CARD, ORDER_ID]

  • orderKey: Chave do pedido, conforme o tipo selecionado em orderKeyType.

  • success: Indica se a operação foi bem-sucedida:

    • true: A operação foi realizada com sucesso, e o consumo relacionado ao pedido será retornado no campo consumptions.
    • false: A operação falhou, e o campo error trará detalhes sobre o erro.
  • consumptions: Lista de itens consumidos relacionados ao pedido. Quando success for true, o consumo incluirá as seguintes informações:

    • type: Tipo de chave do consumo, conforme o valor em orderKeyType.

    • createdAt: Data e hora da criação do pedido em formato UTC (ISO timestamp).

    • customerName: Nome do cliente que realizou o pedido.

    • items: Lista de itens consumidos, com os seguintes detalhes:

      • id: Identificador único do item.

      • index: Posição do item no pedido.

      • name: Nome do produto consumido.

      • externalCode: Código externo do produto.

      • unit: Unidade de medida do item, podendo ser:

        • UN: Unidade.
        • KG: Quilograma.
        • L: Litro.
        • OZ: Onça.
        • LB: Libra.
        • GAL: Galão.

        Enum: [UN, KG, L, OZ, LB, GAL]

      • ean: Código de barras padrão (EAN) do item.

      • quantity: Quantidade consumida. Valores fracionados são permitidos, como 0,5 KG para 500 gramas.

      • specialInstructions: Instruções especiais relacionadas ao item.

      • unitPrice: Preço por unidade, com as seguintes informações:

        • value: Valor do preço unitário (aceita até 4 casas decimais).
        • currency: Código da moeda (ISO 4217).
      • originalPrice: Preço original do item antes de descontos ou ajustes, para fins informativos.

      • optionsPrice: Preço total das opções associadas ao item.

      • totalPrice: Preço total do item, calculado como a quantidade multiplicada pelo valor unitário e o preço das opções.

      • options: Lista de opções associadas ao item, incluindo detalhes como:

        • id: Identificador único da opção.
        • name: Nome da opção.
        • quantity: Quantidade da opção.
        • unitPrice: Preço por unidade da opção.
      • productionPoint: Ponto de produção associado ao item.

    • otherFees: Lista de outras taxas aplicáveis ao consumo, como taxa de serviço, taxa de entrega ou gorjeta.

      • name: Nome da taxa.
      • type: Tipo da taxa, podendo ser:
        • DELIVERY_FEE: Taxa de entrega.
        • SERVICE_FEE: Taxa de serviço.
        • TIP: Gorjeta.
      • receivedBy: Entidade que recebeu a taxa, podendo ser:
        • MARKETPLACE: Marketplace.
        • MERCHANT: Comerciante.
        • LOGISTIC_SERVICES: Serviços de logística.
      • price: Valor da taxa.
    • discounts: Lista de descontos aplicáveis, com detalhes como:

      • value: Valor total do desconto.
      • target: Destino do desconto, podendo ser aplicado ao carrinho, à taxa de entrega ou ao item.
      • sponsorshipValues: Valores patrocinados por terceiros, como o marketplace ou o comerciante.
    • total: Resumo dos valores do consumo, incluindo:

      • items: Soma do valor total dos itens consumidos.
      • otherFees: Soma das outras taxas aplicáveis.
      • discount: Soma dos descontos aplicáveis.
      • orderAmount: Valor final do pedido, calculado como a soma de itens, taxas e descontos.
    • delivery: Informações de entrega (obrigatório para pedidos de entrega), incluindo:

      • deliveredBy: Entidade responsável pela entrega (Marketplace ou Comerciante).
      • deliveryAddress: Endereço de entrega completo.
      • estimatedDeliveryDateTime: Data e hora estimadas para a entrega.
      • deliveryDateTime: Data e hora em que a entrega foi realizada.
    • takeout: Informações para pedidos de retirada, se aplicável.

    • table: Informações para pedidos feitos em mesas.

    • card: Informações para pedidos feitos com cartão.

  • error: Campo obrigatório quando success for false, contendo informações sobre o erro ocorrido:

    • code: Código do erro.
    • message: Mensagem descritiva do erro.
Dica
titleDica

O corpo da requisição enviada é o mesmo que o corpo da resposta obtida através do endpoint GetConsumption.

...

Informações sobre os retornos da API cancelledItems.

  • orderKeyType: Deve respeita a tabela abaixo:

...

  • orderKey: É o identificador do pedido:

...

Dica

O corpo da requisição enviada é o mesmo que o corpo da resposta obtida através do endpoint GetConsumption.


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.


  • Estrutura OrderConsumption:
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)


  • Estrutura Consumption (dentro de consumptions):
CampoValorDescrição
type *enumTipo do consumo (veja na tabela type)
createdAt *string 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)
errorarrayErro é necessário quando o sucesso é falso (veja tabela de error)


  • Estrutura Consumption (dentro de items):
    Âncora
    table_items
    table_items
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 (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 (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


  • Estrutura Consumption - items (dentro de options):
    Âncora
    table_options
    table_options
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)


  • Estrutura Consumption (dentro de otherFees):
    Âncora
    table_otherFees
    table_otherFees
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


  • Estrutura Consumption (dentro de discounts):
    Âncora
    table_discounts
    table_discounts
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)


  • Estrutura Consumption (dentro de total):
    Âncora
    table_total
    table_total
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


  • Estrutura Consumption (dentro de delevery):
    Âncora
    table_delivery
    table_delivery
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.


...


Tabela de auxiliares e enumerações

  • Estrutura Enumeração orderKeyType
    Âncora
    table_orderKeyType
    table_orderKeyType
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


  • Estrutura Consumption (dentro de type):
    Âncora
    table_type
    table_type
CampoValorDescrição
valuenumberValor do preço
currencystringCódigo da moeda ISO 4217


  • Estrutura Enumeração Consumption - items (dentro de unit):
    Âncora
    table_unit
    table_unit
EnumValorDescrição
UNUNUnidade de medida simples
KGKGQuilograma
LLLitro
OZOZOnça
LBLBLibra
GALGALGalão


  • Estrutura Consumption - items (dentro de unitPrice):
    Âncora
    table_unitPrice
    table_unitPrice
CampoValorDescrição
value *numberValor do preço
currency *stringCódigo da moeda ISO 4217


  • Estrutura Consumption - items (dentro de originalPrice):
    Âncora
    table_originalPrice
    table_originalPrice
CampoValorDescrição
value *numberValor do preço
currency *stringCódigo da moeda ISO 4217


  • Estrutura Consumption - items (dentro de optionsPrice):
    Âncora
    table_optionsPrice
    table_optionsPrice
CampoValorDescrição
value *numberValor do preço
currency *stringCódigo da moeda ISO 4217


  • Estrutura Consumption - items (dentro de totalPrice):
    Âncora
    table_totalPrice
    table_totalPrice
CampoValorDescrição
value *numberValor do preço
currency *stringCódigo da moeda ISO 4217


  • Estrutura Enumeração Consumption - otherFees (dentro de type):
    Âncora
    table_OrderFeesType
    table_OrderFeesType
EnumValorDescrição
DELIVERY_FEEDELIVERY_FEETaxa de entrega
SERVICE_FEESERVICE_FEETaxa de serviço
TIPTIPGorjeta


  • Estrutura Enumeração Consumption - otherFees (dentro de receivedBy):
    Âncora
    table_receivedBy
    table_receivedBy
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


  • Estrutura Enumeração Consumption - delivery (dentro de deliveredBy):
    Âncora
    table_deliveredBy
    table_deliveredBy
EnumValorDescrição
MARKETPLACEMARKETPLACEEntidade responsável pela entrega é o marketplace
MERCHANTMERCHANTEntidade responsável pela entrega é o comerciante


  • Estrutura Consumption - otherFees (dentro de price):
    Âncora
    table_price
    table_price
CampoValorDescrição
value *numberValor do preço
currency *stringCódigo da moeda ISO 4217


  • Estrutura Enumeração Consumption - discounts(dentro de sponsorshipValues):
    Âncora
    table_sponsorshipValues
    table_sponsorshipValues
EnumValorDescrição
MARKETPLACEMARKETPLACEEntidade responsável pela entrega é o marketplace
MERCHANTMERCHANTEntidade responsável pela entrega é o comerciante


  • Estrutura Consumption - delivery (dentro de deliveryAddress):
    Âncora
    table_deliveryAddress
    table_deliveryAddress
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)


  • Estrutura Consumption - delivery - deliveryAddress (dentro de coordinates):
    Âncora
    table_coordinates
    table_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]]


  • Estrutura Consumption (dentro de takeout):
    Âncora
    table_takeout
    table_takeout
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


  • Estrutura Enumeração Consumption - takeout (dentro de mode):
    Âncora
    table_takeout_mode
    table_takeout_mode
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


  • Estrutura Consumption (dentro de table):
    Âncora
    table_table
    table_table
CampoValorDescrição

waiterCode *

numberO identificador do garçom

tableNumber *

numberO identificador da tabela

chairNumber *

numberO identificador do presidente


  • Estrutura Consumption (dentro de card):
    Âncora
    table_card
    table_card
CampoValorDescrição

waiterCode *

numberO identificador do garçom

tableNumber *

numberO identificador da tabela

deliveryTableNumber *

numberO identificador da mesa


  • Estrutura Error:
    Âncora
    table_error
    table_error
CampoValorDescrição
code *string
Código de erro
message *string
Mensagem de erro
Dica
titleCampos obrigatórios

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


...

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.1 - Formando 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
{
	"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
		}
	]
}
Bloco de código
titleResposta do JSON da requisição
linenumberstrue
{
	"errors": [
		{
			"key": "orderKeyType",
			"message": "body.orderKeyType must be one of [ORDER_ID, TABLE, CARD]"
		}
	]
}


...


024.2 - JSON enviando 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": "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
		}
	]
}

...