Conteúdo:

  1. Visão Geral
  2. Endpoint
  3. Header
  4. Corpo da Requisição


01. VISÃO GERAL

Essa requisição é responsável por realizar pedidos, também conhecida como pedidos online, a API Order/newOrder tem a responsabilidade de suprir todas as necessidades de pedidos online de um pdv, podendo ser lançado, pedidos normais, com adicional, fracionado, com taxa ou sem, realizar o pagamento junto ao pedido entre outros.


02. ENDPOINT

Método

URL

Ambiente

POSThttps://api-barramento.meuelevestage.com/order/newOrderHomologação
POSThttps://api-barramento.meueleve.com.br/order/newOrderProdução

03. HEADER

Chave

Valor

x-mpn-integrations-signaturet=1651674844016,sign=8ebcf9cb577c0f0847969fee25c904a72c1e70aa13c197f44ef489768ec84a71

04. CORPO DA REQUISIÇÃO

Estrutura completa do corpo da requisição:

Corpo da requisição:

Status CodeCorpo da requisiçãoLegenda
200
{
  "integrationHubServiceId": "string",
  "data": {
    "id": "string",
    "type": "DELIVERY",
    "displayId": "string",
    "sourceAppId": "string",
    "salesChannel": "string",
    "virtualBrand": "string",
    "createdAt": "string",
    "lastEvent": "CREATED",
    "orderTiming": "INSTANT",
    "preparationStartDateTime": "string",
    "merchant": {
      "id": "string",
      "name": "string"
    },
    "items": [
      {
        "id": "string",
        "index": "string",
        "name": "string",
        "externalCode": "string",
        "unit": "UN",
        "ean": "string",
        "quantity": 0,
        "specialInstructions": "string",
        "unitPrice": {
          "value": 0,
          "currency": "string"
        },
        "originalPrice": {
          "value": 0,
          "currency": "string"
        },
        "optionsPrice": {
          "value": 0,
          "currency": "string"
        },
        "subtotalPrice": {
          "value": 0,
          "currency": "string"
        },
        "totalPrice": {
          "value": 0,
          "currency": "string"
        },
        "indoor": {
          "productionPoint": "string"
        },
        "options": [
          {
            "index": "string",
            "id": "string",
            "name": "string",
            "externalCode": "string",
            "unit": "UN",
            "ean": "string",
            "quantity": 0,
            "unitPrice": {
              "value": 0,
              "currency": "string"
            },
            "originalPrice": {
              "value": 0,
              "currency": "string"
            },
            "totalPrice": {
              "value": 0,
              "currency": "string"
            },
            "specialInstructions": "string"
          }
        ]
      }
    ],
    "otherFees": [
      {
        "name": "string",
        "type": "DELIVERY_FEE",
        "receivedBy": "MARKETPLACE",
        "receiverDocument": "string",
        "price": {
          "value": 0,
          "currency": "string"
        },
        "observation": "string"
      }
    ],
    "discounts": [
      {
        "name": "string",
        "value": 0
      }
    ],
    "total": {
      "itemsPrice": {
        "value": 0,
        "currency": "string"
      },
      "otherFees": {
        "value": 0,
        "currency": "string"
      },
      "discount": {
        "value": 0,
        "currency": "string"
      },
      "orderAmount": {
        "value": 0,
        "currency": "string"
      }
    },
    "payments": {
      "prepaid": 0,
      "pending": 0,
      "methods": [
        {
          "value": 0,
          "currency": "string",
          "type": "PREPAID",
          "method": "CREDIT",
          "brand": "VISA",
          "methodInfo": "string",
          "transaction": {
            "authorizationCode": "string",
            "acquirerDocument": "string"
          },
          "changeFor": 0
        }
      ]
    },
    "taxInvoice": {
      "issued": true,
      "taxInvoiceURL": "string"
    },
    "customer": {
      "id": "string",
      "name": "string",
      "documentNumber": "string",
      "phone": {
        "number": "string",
        "extension": "string"
      },
      "email": "string",
      "ordersCountOnMerchant": "string"
    },
    "schedule": {
      "scheduledDateTimeStart": "string",
      "scheduledDateTimeEnd": "string"
    },
    "orderPriority": "PRIORITY1",
    "delivery": {
      "deliveredBy": "MARKETPLACE",
      "deliveryAddress": {
        "country": "string",
        "state": "string",
        "city": "string",
        "district": "string",
        "street": "string",
        "number": "string",
        "complement": "string",
        "reference": "string",
        "formattedAddress": "string",
        "postalCode": "string",
        "coordinates": {
          "latitude": 0,
          "longitude": 0
        }
      },
      "estimatedDeliveryDateTime": "string",
      "deliveryDateTime": "string",
      "pickupCode": "string"
    },
    "takeout": {
      "mode": "DEFAULT",
      "takeoutDateTime": "string"
    },
    "indoor": {
      "mode": "DEFAULT",
      "indoorDateTime": "string",
      "place": "string",
      "seat": "string",
      "tab": "string",
      "waiterCode": 0
    },
    "sendDelivered": true,
    "sendPickedUp": true,
    "sendTracking": true,
    "extraInfo": "string"
  }
}
CampoTipoLegenda
{  IntegrationHubServiceIdStringO identificador exclusivo do pedido. O ID do pedido é gerado pelo Aplicativo de Pedidos.
data: {ObjetoServe como cabeçalho do pedido.
idStringO identificador exclusivo do pedido. O ID do pedido é gerado pelo Aplicativo de Pedidos.
typeStringDELIVERY, TAKEOUT ou INDOOR.
displayIdStringID do pedido mostrado na interface do aplicativo de pedidos do cliente.
sourceAppIdStringId da aplicação que envia o pedido.
salesChannelStringIndica canal de vendas que foi original do pedido
virtualBrandStringIdentificador alternativo para caso o merchant tenha multiplas brands(Bandeiras).
createdAtStringData, formato = AAAA-MM-DDThh:mm:ss
lastEventStringÚtimo evento capturato por Pooling ou Webhook, Enum de valores: [ CREATED, CONFIRMED, DISPATCHED, READY_FOR_PICKUP, PICKUP_AREA_ASSIGNED, DELIVERED, CONCLUDED, CANCELLATION_REQUESTED, CANCELLATION_REQUEST_DENIED, CANCELLED, ORDER_CANCELLATION_REQUEST, CANCELLED_DENIED ]
orderTimingStringÚltimo evento válido capturado pelo pooling ou webhook, Enum de valores: [ INSTANT, SCHEDULED, ONDEMAND ]
preparationStartDateTimeStringData de inicio de preparação do pedido. O padrão é o mesmo tempo do order creation time(created at).
merchant  {  ObjetoObjeto que tem dados do merchant.
idStringIdentificador da loja.
name   },StringNome da loja.
Items  [ {Lista de objetosLista os dados relacionados a items.
idStringIdentificador único de pedidos.
indexStringPosição do item.
nameStringNome do produto.
external codeStringcódigo do produto no PDV.
unitStringUnidade de medida, Enum: UN - Unit
KG - Kilogram
L - Liter
OZ - Ounce
LB - Pound
GAL - Gallon
Em caso de pedido fracionado deveria passar um float example: 500 gramas = 0.5kg.
eanStringCódigo EAN.
quantityNumberQuantidade do item, em caso de pedido fracionado deveria passar um float example: 500 gramas = 0.5kg.
specialInstructionsStringInstruções extras.
unitPrice  {ObjetoObjeto de preço unitário
valueNumberValor unitário do produto, aceita até 4 casas decimais.
currency  },StringCódigo da moeda, com base na ISO 4217.
originalPrice  {ObjetoObjeto do preço original
valueNumberValor original do produto, aceita até 4 casas decimais.
currency  },StringCódigo da moeda, com base na ISO 4217.
optionsPrice  {ObjetoObjeto de preço do adicional
valueNumberValor de preço adicional do produto, aceita até 4 casas decimais.
currency  },StringCódigo da moeda, com base na ISO 4217.
subtotalPrice  {ObjetoObjeto do preço do subtotal
valueNumberValor do preço do subtotal do produto, aceita até 4 casas decimais.
currency  },StringCódigo da moeda, com base na ISO 4217.
totalPrice  {ObjetoObjeto do preço total.
valueNumberValor original do produto, aceita até 4 casas decimais.
currency  },StringCódigo da moeda, com base na ISO 4217.
indoor   {ObjetoIndoor = Pedido pra o local.
productionPoint   },StringPonto de produção.
options   [ {ObjetoObjeto que contém os adicionais.
indexStringPosição do adicionar.
idStringIdentificador único do item.
nameStringNome do adicional.
externalCodeStringCódigo do produto.
unitStringUnidade de medida, Enum: UN - Unit
KG - Kilogram
L - Liter
OZ - Ounce
LB - Pound
GAL - Gallon
Em caso de pedido fracionado deveria passar um float example: 500 gramas = 0.5kg.
eanStringCódigo EAN.
quantityNumberQuantidade do item, em caso de pedido fracionado deveria passar um float example: 500 gramas = 0.5kg.
unitPrice   {ObjetoObjeto de preço unitário
valueNumberValor unitário do produto, aceita até 4 casas decimais.
currency   },StringCódigo da moeda, com base na ISO 4217.
originalPrice   {ObjetoObjeto do preço original
valueNumberValor original do produto, aceita até 4 casas decimais.
currency   },StringCódigo da moeda, com base na ISO 4217.
totalPrice   {ObjetoObjeto do preço total.
valueNumberValor original do produto, aceita até 4 casas decimais.
currency   },StringCódigo da moeda, com base na ISO 4217.
specialInstructions   } ] } ],StringInstruções extras.
OtherFees   [  {Lista de ObjetosEsse objeto contém dados sobre as taxas.
nameStringnome da taxa.
typeStringTipo de Taxa. Enum : [ DELIVERY_FEE, SERVICE_FEE, TIP ]
receivedByStringrecebido por. Enum: [ MARKETPLACE, MERCHANT, LOGISTIC_SERVICES ]
receivedDocumentStringObeigatório se o receivedBy for marketPlace.
price   {ObjetoObjeto do preço original
valueNumberValor original do produto, aceita até 4 casas decimais.
currency   },StringCódigo da moeda, com base na ISO 4217.
observation   } ],StringObservação.
discounts   [ {Lista de ObjetoContém os dados de disconto.
nameStringnome do desconto dado.
value   } ]Numbervalor do desconto.

total   {

ObjetoObjeto que contém todos os totais.
unitPrice   {ObjetoObjeto de preço unitário
valueNumberValor unitário do produto, aceita até 4 casas decimais.
currency   },StringCódigo da moeda, com base na ISO 4217.
otherFees   {ObjetoObjeto do preço original
valueNumberValor original do produto, aceita até 4 casas decimais.
currency   },StringCódigo da moeda, com base na ISO 4217.
discount   {ObjetoObjeto de preço do adicional
valueNumberValor de preço adicional do produto, aceita até 4 casas decimais.
currency   },StringCódigo da moeda, com base na ISO 4217.
orderAmount   {ObjetoObjeto do preço do subtotal
valueNumberValor do preço do subtotal do produto, aceita até 4 casas decimais.
currency   } },StringCódigo da moeda, com base na ISO 4217.
payments   {ObjetoObjeto que contém os dados de pagamento.
prepaidNumberValor pago antecipadamente.
pendingNumberValor pendente de pagamento.
methods   [ {Lista de Objetoslista de objetos com dados de pagamento.
valueNumbervalor do pagamento.
currencyStringCódigo da moeda, com base na ISO 4217.
typeString

Enum: Prepaid e Pending.

O Prepaind é quando algum pagamento já foi feito em outra plataforma.

O Pending é quando algum pagamento vai ser pago na entrega ou no dinheiro.

methodStringMétodos de pagamento: "CREDIT" "DEBIT" "MEAL_VOUCHER" "FOOD_VOUCHER" "DIGITAL_WALLET" "PIX" "CASH" "CREDIT_DEBIT" "COUPON" "REDEEM" "PREPAID_REDEEM" "OTHER"*
brandStringIndica a bandeira do cartão selecionado no método acima.
esse campo deve ser preechido se o método acima for CREDIT, DEBIT, CREDIT_DEBIT, MEAL_VOUCHER or FOOD_VOUCHER.
Se OTHER foi escolhido, é recomendado informar a bandeira no campo methodInfo. Enum: [ VISA, MASTERCARD, DINERS, AMEX, HIPERCARD, ELO, AURA, DISCOVER, VR_BENEFICIOS, SODEXO, TICKET, GOOD_CARD, BANESCARD, SOROCARD, POLICARD, VALECARD, AGICARD, JCB, CREDSYSTEM, CABAL, GREEN_CARD, VEROCHEQUE, AVISTA, OTHER ]
methodInfoStringInformação extra sobre o método.
transaction   {ObjetoObjeto com dados da transação.
authorizationCodeStringCartão de crédito e/ou subsidiária número da autorização da transação.
acquirerDocument   },StringDocumento da intermediária da transação( agência, plataforma de delivery, marketplace e outros) do serviço.
changeFor   } ] },NumberIndica o total que será pago em dinheiro pelo consumidor e será considerado para o calculo de troco.
(ex. o consumidor vai pagar um pedido de $43 com uma nota de $50. Então deve inserir $50.).
Obrigatório quando o método é CASH.
taxInvoice   {ObjetoObjeto com dados da nota.
issuesBoolInforma se a nota fiscal já foi emitida para esse pedido.
taxInvoiceURL   },StringURL da nota para ser baixada.
customer   {ObjetoDados do consumidor. Obrigatório se o tipo do pedido for delivery
idStringIdentificador único do consumidor.
nameStringNome do consumidor
documentNumberStringDocumento do consumidor. Documento poderá ser enviado para tratar de questões tributárias. 
phone   {ObjectObjeto com dados do telefone
numberStringNúmero de telefone.
extension   },StringExtensão do número.
emailStringE-mail do consumidor. E-mail poderá ser enviado para tratar de questões tributárias.
orderCountOnMerchant   },StringTotal de pedidos feito pelo consumidor na loja.
Schedule   {ObjetoObjeto de agendamento.
scheduledDateTimeStartStringData, formato = AAAA-MM-DDThh:mm:ss. O padrão é o mesmo tempo do order creation time(created at).
scheduledDateTimeEnd   },StringData, formato = AAAA-MM-DDThh:mm:ss. O padrão é o mesmo tempo do order creation time(created at).
orderPriorityStringDefine a prioridade do pedido em relação a outros pedidos com base na aplicação do pedido.
Quanto menor a prioridade, mas rápido deve ser atendido.
Note: Esse campo depende se a aplicação de pedidos e o pdv suportam a funcionalidade. Enum: [ PRIORITY1, PRIORITY2, PRIORITY3, PRIORITY4 ]
delivery   {ObjetoObjeto que contém os dados de delivery.
deliveredByStringEnum: [ MARKETPLACE, MERCHANT ]
deliveredAddress   {ObjetoObjeto do endereço.
countryStringCódigo do país de duas letras ISO 3166-1 alpha-2. 
stateStringEstado baseado na ISO 3166-2, Não é obrigatório mas sim recomendado.
cityStringNome da cidade.
districtStringDistrito ou município.
streetStringNome da rua.
numberStringNúmero.
complementStringComplemento do endereço.
referenceStringPonto de referência.
formattedAddressStringEndereço completo.
postalCodeStringCódigo Postal.
coordinates   {ObjetoObjeto de coordenadas
latitudeNumberLatitude em graus. Limitado pelos valores [[-90, 90]].
longitude   }  },NumberLongitude em graus. Limitado pelos valores [[-180, 180]].
estimatedDeliveryDateTimeStringData e hora estimada da entrega. Mesma data e hora apresentada na aplicação de pedido.
deliveryDateTimeStringData e hora em que a entrega aconteceu.
pickupCode   },StringCódigo para o entregador pegar o pacote. Não confundir com o código do consumidor pra receber.
takeout   {ObjetoObjeto que contém os dados de takeout.
modeStringEnum: [ DEFAULT, PICKUP_AREA ]
takeoutDateTime   }StringData e tempo em que o pedido está pronto. Pode ser calculado pelo aplicativo de entrega pelo tempo médio de preparo. Padrão é o mesmo horário do Creation Time
indoor   {ObjetoObjeto para pedidos feitos para consumir no local. 
modeString

Identificador Indoor Mode:
DEFAULT: Consumir dentro do estabelecimento.
PLACE: Consumir dentro do estabelecimento em lugar específico, como uma mesa.
TAB: Usado pra controlar pedidos via Tab ou cartão consumo. Enum:[ DEFAULT, PLACE, TAB, TERMINAL ]

indoorDateTimeStringData e hora que o pedido ficou pronto. Pode ser calculado pelo aplicativo de entrega pelo tempo médio de preparo. Padrão é o mesmo horário do Creation Time.
placeStringIdentificador do Place. Obrigatório quando o mode recebe o valor do Place.
seatStringIdentificador do Seat. Obrigatório quando o mode recebe o valor do Seat.
tabStringIdentificador do Tab. Obrigatório quando o mode recebe o valor do Tab.
waiterCode   },StringCódigo do garçom.
sendDeliveredBoolEste campo indica se é necessário que o Serviço de Software faça uma solicitação ao terminal para indicar ao Aplicativo de Pedido que o pedido foi entregue ao cliente. true: Indica que o Aplicativo de Pedido está aguardando uma solicitação. falso ou não informado: Não é obrigatório fazer solicitação.
sendPickedUpBoolEste campo indica se é necessário que o Serviço de Software faça uma solicitação ao endpoint para indicar ao Aplicativo de Pedido que o pedido foi retirado pelo cliente. true: Indica que o Aplicativo de Pedido está aguardando uma solicitação. falso ou não informado: Não é obrigatório fazer solicitação.
sendTrackingBoolEste campo indica se é necessário que o Serviço de Software faça uma solicitação ao terminal para informar o Aplicativo de Pedido sobre atualizações de entrega. true: Indica que o Aplicativo de Pedido está aguardando uma solicitação. falso ou não informado: Não é obrigatório fazer solicitação.
extraInfoStringInformação extra caso seja necessário.


05. RESPONSES

Status CodeResponse
200Your request has been accepted but not yet processed, wait a few moments and look for the status.
400

Bad request.

401Missing or invalid credentials.
403Missing Authentication Token.
404

One or more posted information could not be found.


{
  "errors": [
    {
      "key": "string",
      "message": "string"
    }
  ]
}

CONTEÚDO


01. VISÃO GERAL

Este endpoint é utilizado para obter informações detalhadas sobre os pedidos, fornecendo um retorno em formato JSON com diversos atributos relevantes. Ao enviar uma solicitação no formato especificado, como nos exemplos abaixo, o endpoint processa a requisição e retorna um conjunto de dados que inclui o status mais recente do pedido, a identificação do serviço, a chave do pedido e detalhes específicos de cada item relacionado ao pedido.



02. ENDPOINT


Método

URL

Ambiente

POSThttps://api-barramento.meuelevestage.com/order/getStatusHomologação
POSThttps://api-barramento.meueleve.com.br/order/getStatusProdução



03. EXEMPLO DE UTILIZAÇÃO

3.1 - Request - Obter detalhes de um pedido específico:

Essa requisição é utilizada para buscar informações detalhadas sobre um pedido específico:

Payload

Legenda

JSON Para retornar o status de um pedido específico

1
2
3
4
5

{
  "integrationHubServiceId": "7056c970-cb11-400f-9d4f-9f30253f3b0b",
  "orderKeyType": "INDOOR",
  "orderKey": ["40"]
}

Chave

Tipo

Legenda

integrationHubServiceIdStringId da configuração da integração
orderKeyTypeStringProcurar pelo order id ou pelo tipo indoor. Enum: [ INDOOR, ORDER_ID ]
orderKey

Lista de

String

Id do pedido, caso vazio retorna todo do type escolhido.

Nota: 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 pedido solicitado.




3.2 - Request - Ao reenviar a solicitação, a resposta será a seguinte:

Ao reenviar a requisição, você receberá uma resposta contendo o status atualizado e os detalhes do pedido.
JSON de resposta do retorno de um pedido específico HTTP Status Code = 208

1
2
3
4
5
6
7
8

{
    "errors": [
        {
            "key": "orderKeyType_orderKey",
            "message": "Order status request already exists: INDOOR_40"
        }
    ]
}  

Nota: 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 pedido solicitado.




3.3 - Request - Reenvio da solicitação, resposta de processamento:

Reenviando a solicitação, o sistema processará o pedido e fornecerá a resposta com o status do processamento. 
JSON de resposta do retorno de um pedido

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23

{
    "success": true,
    "error": null,
    "integrationHubServiceId": "1853f0ab-faf7-47d6-a193-610b20807143",
    "orderKeyType": "INDOOR",
    "orderKey": [
        "40"
    ],
    "lastestUpdatedStatus": "2024-06-28 09:04:06",
    "items": [
        {
            "id": "50425147-5d06-4b87-a05b-4586f2dccc71",
            "status": {
                "code": 505,
                "description": "TABLE_IN_USE"
            },
            "deliveryAgent": null,
            "deliveryDateTime": null,
            "cancellationReason": null,
            "tableCardNumber": "40"
        }
    ]
}

Nota: HTTP Status Code = 226 IM Used

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




3.4 - Request - Retornar o status de múltiplos pedidos:

Essa requisição é utilizada para obter o status atualizado de diversos pedidos simultaneamente. O sistema retornará as informações detalhadas de cada pedido
JSON Para retornar múltiplos pedidos

1
2
3
4
5

{
  "integrationHubServiceId": "7056c970-cb11-400f-9d4f-9f30253f3b0b",
  "orderKeyType": "INDOOR",
  "orderKey": ["40", "20"]
}

Nota: 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 pedido solicitado.




3.5 - Request - Ao reenviar a solicitação, a resposta será a seguinte:

Ao reenviar a requisição, receberá uma resposta contendo o status atualizado e os detalhes dos pedidos.
JSON de resposta do retorno de um pedido específico HTTP Status Code = 208

1
2
3
4
5
6
7
8

{
    "errors": [
        {
            "key": "orderKeyType_orderKey",
            "message": "Order status request already exists: INDOOR_40, 20"
        }
    ]
}  

Nota: 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 pedido solicitado.




3.6 - Request - Reenvio da solicitação, resposta de processamento:

Reenviando a solicitação, o sistema processará o pedido e fornecerá a resposta com o status do processamento. 
JSON de retorno de múltiplos pedidos

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35

{
    "success": true,
    "error": null,
    "integrationHubServiceId": "647469f8-b31b-4fae-ba33-99e04def555b",
    "orderKeyType": "INDOOR",
    "orderKey": [
        "40",
        "20"
    ],
    "lastestUpdatedStatus": "2024-06-28 09:13:46",
    "items": [
        {
            "id": "8c3752a1-ae15-42a1-bafb-189ca95f0211",
            "status": {
                "code": 505,
                "description": "TABLE_IN_USE"
            },
            "deliveryAgent": null,
            "deliveryDateTime": null,
            "cancellationReason": null,
            "tableCardNumber": "18"
        },
        {
            "id": "5ebf990f-9075-462c-b675-a8c57a350d61",
            "status": {
                "code": 504,
                "description": "OPEN_TABLE"
            },
            "deliveryAgent": null,
            "deliveryDateTime": null,
            "cancellationReason": null,
            "tableCardNumber": "19"
        }
    ]
}

Nota: HTTP Status Code = 226 IM Used

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




3.7 - Request - Retornar o status de múltiplos pedidos:

Essa requisição é utilizada para obter o status atualizado de diversos pedidos simultaneamente. O sistema retornará as informações detalhadas de cada pedido.
JSON Para retornar o status de todos os pedidos

1
2
3
4
5

{
  "integrationHubServiceId": "7056c970-cb11-400f-9d4f-9f30253f3b0b",
  "orderKeyType": "INDOOR",
  "orderKey": []
}

Nota: 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 pedido solicitado.




3.8 - Request - Ao reenviar a solicitação, a resposta será a seguinte:

Ao reenviar a requisição, receberá uma resposta contendo o status atualizado e os detalhes dos pedidos.
JSON de resposta do retorno de um pedido específico HTTP Status Code = 208

1
2
3
4
5
6
7
8

{
    "errors": [
        {
            "key": "orderKeyType_orderKey",
            "message": "Order status request already exists: INDOOR"
        }
    ]
}  

Nota: 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 pedido solicitado.




3.9 - Request - Ao reenviar a solicitação, a resposta será a seguinte:

Ao reenviar a requisição, receberá uma resposta contendo o status atualizado e os detalhes dos pedidos.
Resposta do JSON da requisição

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43

{
    "success": true,
    "error": null,
    "integrationHubServiceId": "ab3e5b94-3a02-423a-8500-bbb5292fb13a",
    "orderKeyType": "INDOOR",
    "orderKey": [],
    "lastestUpdatedStatus": "2024-09-24 17:35:52",
    "items": [
        {
            "id": "f217d261-126c-456a-86d5-d92eda8fbd1a",
            "status": {
                "code": 504,
                "description": "OPEN_TABLE"
            },
            "deliveryAgent": null,
            "deliveryDateTime": null,
            "cancellationReason": null,
            "tableCardNumber": "204"
        },
        {
            "id": "1730ccab-ba9e-4b0b-b7f2-ad2652659d0a",
            "status": {
                "code": 504,
                "description": "OPEN_TABLE"
            },
            "deliveryAgent": null,
            "deliveryDateTime": null,
            "cancellationReason": null,
            "tableCardNumber": "500"
        },
        {
            "id": "dbd9bc55-6c26-4160-bee3-e74822d8b81b",
            "status": {
                "code": 504,
                "description": "OPEN_TABLE"
            },
            "deliveryAgent": null,
            "deliveryDateTime": null,
            "cancellationReason": null,
            "tableCardNumber": "503"
        }
    ]
}

Nota: HTTP Status Code = 226 IM Used

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




Campos obrigatórios

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



04. ERROS

Quando a requisição for reenviada, o sistema processará a solicitação e retornará uma resposta com o status atualizado, juntamente com os detalhes de cada pedido solicitado. Isso garante que qualquer modificação ou atualização recente seja refletida na resposta.
A seguir, alguns dos erros comuns que podem ser apresentados ao lidar com requisições HTTP e suas respectivas respostas:

  • HTTP Status Code - 400 - Bad Request

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.
JSON Inválido

1
2
3
4
5

{
    "integrationHubServiceId": "393d9572-2ec9-4cda-9ad3-5b69e02c988d",
      "orderKeyType": "string",
       "orderKey": ["string"]
}


JSON Resposta

1
2
3
4
5
6
7
8

{
    "errors": [
        {
            "key": "orderKeyType",
            "message": "body.orderKeyType must be one of [ORDER_ID, INDOOR]"
        }
    ]
}




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.
JSON Inválido

1
2
3

{
    "integrationHubServiceId": "a5c4e135-aacd-49c1-b051-160a78a83b56"
}


JSON Resposta

1
2
3
4
5
6
7
8
9
10
11
12

{
    "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.
JSON com o GUID inválido

1
2
3
4
5

{
    "integrationHubServiceId": "9a1cf326-c962-456f-8c49-c1bb2f340fc6A",
      "orderKeyType": "TABLE",
      "orderKey": []
}


JSON Inválido GUID incorreto

1
2
3
4
5
6
7
8

{
    "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.
JSON com sem informar o código da orderKey

1
2
3
4
5

{
    "integrationHubServiceId": "808c143d-d6d4-4b95-8c37-efa3a934f222",
      "orderKeyType": "INDOOR",
      "orderKey": [""]
}


JSON Response

1
2
3
4
5
6
7
8

{
    "errors": [
        {
            "key": 0,
            "message": "body.orderKey[0] is not allowed to be empty"
        }
    ]
}

Nota: HTTP Status Code = 400 Bad Request

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.



  • HTTP Status Code 401 - Unauthorized  

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.


Nota: HTTP Status Code = 401 Unauthorized

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.



  • HTTP Status Code 403 - Forbidden

O código de status HTTP 403, conhecido como "Forbidden" (Proibido), indica que o servidor não entendeu a requisição do cliente por está tentando acessar uma URL incorreta



URL enviada incorreda

https://api-barramento.meuelevestage.com/order/getStatuS


JSON Response para URL incorreta

1
2
3

{
    "message": "Missing Authentication Token"
}

Nota: HTTP Status Code = 403 - Forbidden

O cliente não enviou uma requisição para a URL  incorreta.



  • HTTP Status Code 404 - Not Found

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 pode ocorrer quando o integrationHubId  está incorreto ou inválido.



Integration Hub Code Inválido

1
2
3
4
5

{
    "integrationHubServiceId": "f1b874af-96ab-4535-aac3-25118fe586cc",
      "orderKeyType": "TABLE",
      "orderKey": ["5"]
}


JSON Response

1
2
3
4
5
6
7
8

{
    "errors": [
        {
            "key": "integrationHubServiceId",
            "message": "Provider Merchant for integrationHubServiceId \"f1b874af-96ab-4535-aac3-25118fe586cc\" not found or disabled"
        }
    ]
}

Nota: HTTP Status Code = 404 - Not Found

IntegrationHubId incorreto ou inválido



  • HTTP Status Code 412 - Precondition Failed

O código de status HTTP 412, conhecido como "Precondition Failed" (Pré-condição Falhou), indica que o servidor não atendeu a uma das pré-condições que o cliente colocou no cabeçalho da requisição. 



JSON

1
2
3
4
5

{
    "integrationHubServiceId": "8f7949c3-cdd6-4db0-8746-369e651026b4",
      "orderKeyType": "TABLE",
      "orderKey": []
}


HTTP Status Code 412 = Precpndition Failed

1
2
3
4

{
    "message": "NOT_FOUND",
    "code": 412
}

Nota: HTTP Status Code = 412 Precondition Failed

Alguma regra necessária para a execução da solicitação não foi atendida. É necessário analisar o conteúdo da resposta retornada para identificar os motivos.



  • HTTP Status Code 429 - Too Many Requests

O código de status HTTP 429, conhecido como "Too Many Requests" (Muitas Requisições), indica que o cliente excedeu o limite de requisições permitido para um determinado período de tempo. Esse limite é definido pelo servidor e pode variar de acordo com a política de limitação de taxa implementada.



JSON da requisição

1
2
3
4
5

{
    "integrationHubServiceId": "7d7d205b-83ba-47c5-91ba-e4f32a2bbd9e",
      "orderKeyType": "TABLE",
        "orderKey": ["5"]
}


Resposta da última execução

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23

{
    "success": true,
    "error": null,
    "integrationHubServiceId": "7d7d205b-83ba-47c5-91ba-e4f32a2bbd9e",
    "orderKeyType": "TABLE",
    "orderKey": [
        "5"
    ],
    "lastestUpdatedStatus": "2024-07-02 18:54:28",
    "items": [
        {
            "id": "de9fd388-c223-4325-a64d-08889250f839",
            "status": {
                "code": 504,
                "description": "OPEN_TABLE"
            },
            "deliveryAgent": null,
            "deliveryDateTime": null,
            "cancellationReason": null,
            "tableCardNumber": "5"
        }
    ]
}

Nota: HTTP Status Code = 429 - Too Many Requests

Alguma regra para atender ao seu pedido não foi cumprida; analise o corpo da resposta para descobrir as razões.


05. LINKS


API Order Mesa - New Order

API Order Mesa - Status
API Order Mesa - Get Consumption
API Order Mesa - Consumption
API Order Mesa - Payment
API Order Mesa - Get Cancelled Items
API Order Mesa - Cancelled Items





CONTEÚDO


01. VISÃO GERAL


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.



02. ENDPOINT


Método

URL

Ambiente

POSThttps://api-barramento.meuelevestage.com/order/getConsumptionHomologação
POSThttps://api-barramento.meueleve.com.br/order/getConsumptionProdução



03. EXEMPLO DE UTILIZAÇÃO

3.1- Request - Retornar todos os status dos consumos:

Ao fazer essa requisição, o sistema processa a solicitação para obter o status dos consumos indicados, retornando as informações de cada consumo solicitado.

Payload

Legenda

JSON Para retornar o status de um pedido específico

1
2
3
4
5

{
  "integrationHubServiceId": "7056c970-cb11-400f-9d4f-9f30253f3b0b",
  "orderKeyType": "INDOOR",
  "orderKey": ["40"]
}

Chave

Tipo

Legenda

integrationHubServiceIdStringId da configuração da integração
orderKeyTypeStringProcurar pelo order id ou pelo tipo indoor. Enum: [ INDOOR, ORDER_ID ]
orderKey

Lista de

String

Id do pedido, caso vazio retorna todo do type escolhido.



Nota: HTTP Status Code = 202 Accepted

O seu pedido foi aceite, mas ainda não foi processado, aguarde alguns instantes e contacte a mesma morada para obter o consumo solicitado.




3.2-  Request - Ao reenviar a solicitação, a resposta retornada será a seguinte:
Após reenviar a requisição para o mesmo endpoint, o sistema retornará uma resposta detalhando o status atualizado dos consumos solicitados.

JSON de resposta do retorno de um consumo específico HTTP Status Code = 208

1
2
3
4
5
6
7
8

{
    "errors": [
        {
            "key": "orderKeyType_orderKey",
            "message": "Order consumption request already exists: INDOOR_"
        }
    ]
}  

Nota: HTTP Status Code = 208 Already Reported

Seu pedido já foi enviado, aguarde alguns instantes e entre em contato com o mesmo endereço para obter o consumo solicitado.




3.3 - Request - Ao enviar novamente a solicitação, o processamento será realizado conforme a seguinte resposta:
Reenviando a requisição após o processamento, o sistema retornará o status final dos consumos, indicando se o processamento foi concluído com sucesso e exibindo as informações detalhadas.

Resposta do JSON da requisição

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320

{
   "success":true,
   "error":null,
   "integrationHubServiceId":"ea2aecdb-7a37-449f-99e1-aa1346b09524",
   "orderKeyType":"INDOOR",
   "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
      }
   ]
}

Nota: HTTP Status Code = 226 IM Used

Sua solicitação foi retornada com sucesso.




3.4 - Request - Obter detalhes de um consumo específico:

Ao fazer essa requisição, o sistema processa a solicitação e retorna os detalhes completos de um consumo específico, incluindo todas as informações relevantes sobre o pedido consumido
JSON Para retornar o status de um consumo específico

1
2
3
4
5

{
  "integrationHubServiceId": "7056c970-cb11-400f-9d4f-9f30253f3b0b",
  "orderKeyType": "INDOOR",
  "orderKey": ["40"]
}

Nota: HTTP Status Code = 202 Accepted

O seu pedido foi aceite, mas ainda não foi processado, aguarde alguns instantes e contacte a mesma morada para obter o consumo solicitado.




3.5 - Request - Reenviando a solicitação para obter os detalhes de um consumo:

Ao reenviar a requisição para o mesmo endpoint, o sistema retornará as informações atualizadas sobre o consumo solicitado, refletindo seu status mais recente.
JSON de resposta do retorno de um consumo específico HTTP Status Code = 208

1
2
3
4
5
6
7
8

{
    "errors": [
        {
            "key": "orderKeyType_orderKey",
            "message": "Order consumption request already exists: INDOOR_40"
        }
    ]
}  

Nota: HTTP Status Code = 208 Already Reported

Seu pedido já foi enviado, aguarde alguns instantes e entre em contato com o mesmo endereço para obter o consumo solicitado.




3.6 - Request - Solicitação de processamento para obter detalhes específicos do consumo:

Reenviando a requisição, o sistema processará o pedido de forma detalhada e retornará as informações completas sobre o consumo, conforme os dados disponíveis no momento.
JSON de resposta do retorno de um consumo

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74

{
    "success": true,
    "error": null,
    "integrationHubServiceId": "7056c970-cb11-400f-9d4f-9f30253f3b0b",
    "orderKeyType": "INDOOR",
    "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: HTTP Status Code = 226 IM Used

Sua solicitação foi retornada com sucesso.



3.7 - Request - Retornar o status de múltiplos pedidos:

Ao realizar essa requisição, o sistema processa a solicitação e fornece o status atualizado de vários pedidos ao mesmo tempo, incluindo informações detalhadas sobre cada um deles.
JSON Para retornar múltiplos consumos

1
2
3
4
5

{
  "integrationHubServiceId": "ab70a3ce-915b-42ee-9d7f-049d36e26eca",
  "orderKeyType": "TABLE",
  "orderKey": ["20", "40"]
}

Nota: HTTP Status Code = 202 Accepted

O seu pedido foi aceite, mas ainda não foi processado, aguarde alguns instantes e contacte a mesma morada para obter o consumo solicitado.




3.8 - Request - Reenviando a solicitação para obter o status de múltiplos pedidos:

Ao reenviar a requisição, o sistema retornará as informações atualizadas sobre o status dos pedidos solicitados, refletindo quaisquer alterações desde a última consulta.
JSON de resposta do retorno de um consumo específico HTTP Status Code = 208

1
2
3
4
5
6
7
8

{
    "errors": [
        {
            "key": "orderKeyType_orderKey",
            "message": "Order consumption request already exists: TABLE_20, 40"
        }
    ]
}  

Nota: HTTP Status Code = 208 Already Reported

Seu pedido já foi enviado, aguarde alguns instantes e entre em contato com o mesmo endereço para obter o consumo solicitado.




3.9 - Request - Solicitação de processamento para o status de múltiplos pedidos:

Reenviando a requisição, o sistema processará o pedido e fornecerá uma resposta que detalha o status atual de todos os pedidos incluídos na solicitação.
JSON de retorno de múltiplos consumos

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77

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

Nota: HTTP Status Code = 226 IM Used

Sua solicitação foi retornada com sucesso.

Campos obrigatórios

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:

  • HTTP Status Code - 400 - Bad Request

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.
JSON Inválido

1
2
3
4
5

{
    "integrationHubServiceId": "a9cad639-5775-4f8a-917b-2ae0f2d284d8",
      "orderKeyType": "string",
       "orderKey": ["string"]
}


JSON Resposta

1
2
3
4
5
6
7
8

{
    "errors": [
        {
            "key": "orderKeyType",
            "message": "body.orderKeyType must be one of [ORDER_ID, INDOOR]"
        }
    ]
}




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.
JSON Inválido

1
2
3

{
    "integrationHubServiceId": "a5c4e135-aacd-49c1-b051-160a78a83b56"
}


JSON Resposta

1
2
3
4
5
6
7
8
9
10
11
12

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

 
JSON com o GUID inválido

1
2
3
4
5

{
    "integrationHubServiceId": "9a1cf326-c962-456f-8c49-c1bb2f340fc6A",
      "orderKeyType": "INDOOR",
      "orderKey": []
}


JSON Inválido GUID incorreto

1
2
3
4
5
6
7
8

{
    "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.
JSON com sem informar o código da orderKey

1
2
3
4
5

{
    "integrationHubServiceId": "808c143d-d6d4-4b95-8c37-efa3a934f222",
      "orderKeyType": "INDOOR",
      "orderKey": [""]
}


JSON Response

1
2
3
4
5
6
7
8

{
    "errors": [
        {
            "key": 0,
            "message": "body.orderKey[0] is not allowed to be empty"
        }
    ]
}

Nota: HTTP Status Code = 400 Bad Request

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.



  • HTTP Status Code 401 - Unauthorized  

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.


Nota: HTTP Status Code = 401 Unauthorized

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.



  • HTTP Status Code 403 - Forbidden

O código de status HTTP 403, conhecido como "Forbidden" (Proibido), indica que o servidor entendeu a requisição do cliente, mas está se recusando a cumpri-la. Isso geralmente ocorre quando o cliente não possui permissões adequadas para acessar o recurso solicitado, mesmo que as credenciais de autenticação tenham sido fornecidas corretamente.



URL enviada incorreda

https://api-barramento.meuelevestage.com/order/getConsumptions


JSON Response para URL incorreta

1
2
3

{
    "message": "Missing Authentication Token"
}

Nota: HTTP Status Code = 403 - Forbidden

O cliente enviou a URL incorreta para solicitação da requisição.



  • HTTP Status Code 404 - Not Found

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 pode ocorrer quando o URL fornecido está incorreto, o recurso foi removido permanentemente ou não está disponível no momento da requisição.
Integration Hub Code Inválido

1
2
3
4
5

{
    "integrationHubServiceId": "f1b874af-96ab-4535-aac3-25118fe586cc",
      "orderKeyType": "INDOOR",
        "orderKey": ["5"]
}


JSON Response

1
2
3
4
5
6
7
8

{
    "errors": [
        {
            "key": "integrationHubServiceId",
            "message": "Provider Merchant for integrationHubServiceId \"f1b874af-96ab-4535-aac3-25118fe586cc\" not found or disabled"
        }
    ]
}

Nota: HTTP Status Code = 404 - Not Found

Uma ou mais informações enviadas não puderam ser encontradas.



  • HTTP Status Code 412 - Precondition Failed VERIFICAR COM O KENNEDY

O código de status HTTP 412, conhecido como "Precondition Failed" (Pré-condição Falhou), indica que o servidor não atendeu a uma das pré-condições que o cliente colocou no cabeçalho da requisição. 
JSON

1
2
3
4
5

{
    "integrationHubServiceId": "8f7949c3-cdd6-4db0-8746-369e651026b4",
      "orderKeyType": "INDOOR",
      "orderKey": []
}


HTTP Status Code 412 = Precpndition Failed

1
2
3
4

{
    "message": "NOT_FOUND",
    "code": 412
}

Nota: HTTP Status Code = 412 Precondition Failed

Alguma regra necessária para a execução da solicitação não foi atendida. É necessário analisar o conteúdo da resposta retornada para identificar os motivos.



  • HTTP Status Code 429 - Too Many Requests

O código de status HTTP 429, conhecido como "Too Many Requests" (Muitas Requisições), indica que o cliente excedeu o limite de requisições permitido para um determinado período de tempo. Esse limite é definido pelo servidor e pode variar de acordo com a política de limitação de taxa implementada.
JSON da requisição

1
2
3
4
5

{
    "integrationHubServiceId": "7d7d205b-83ba-47c5-91ba-e4f32a2bbd9e",
      "orderKeyType": "INDOOR",
        "orderKey": ["20", "40"]
}


Resposta da última execução

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77

{
    "success": true,
    "error": null,
    "integrationHubServiceId": "7d7d205b-83ba-47c5-91ba-e4f32a2bbd9e",
    "orderKeyType": "INDOOR",
    "orderKey": [
        "20",
        "40"
    ],
    "consumption": [
        {
            "orderId": "f5fee4b4-c13f-482d-8e98-0dd840629e02",
            "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
        }
    ]
}

Nota: HTTP Status Code = 429 - Too Many Requests

Alguma regra para atender ao seu pedido não foi cumprida; analise o corpo da resposta para descobrir as razões.


05. LINKS


API Order Mesa - New Order

API Order Mesa - Get Status
API Order Mesa - Status
API Order Mesa - Consumption
API Order Mesa - Payment
API Order Mesa - Get Cancelled Items
API Order Mesa - Cancelled Items