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