Versões comparadas

Chave

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

CONTEÚDO


01. VISÃO GERAL
Âncora
ver_geral
ver_geral

...

02. ENDPOINT
Âncora
endpoint
endpoint


MétodoURL
POSThttps://api-barramento.meuelevestage.com/order/newOrder


...

03. EXEMPLO DE UTILIZAÇÃO

01. Corpo da requisição de envio de novo pedidos inteiro:

Âncora
pedido_inteiro
pedido_inteiro

Bloco de código
titleJSON para pedido com inteiro
linenumberstrue
{
   "integrationHubServiceId":"933aadb4-c33b-40b8-8285-bf1e575d8b38",
   "data":{
      "id":"9ec389e5-7582-4768-875b-ee7c309aa34f",
      "type":"TABLE",
      "displayId":"29",
      "createdAt":"2024-06-24T17:35:00",
      "orderTiming":"2024-06-24T17:40:24",
      "preparationStartDateTime":"2024-06-24T18:00:00",
      "merchant":{
         "id":"c312d2ff-1a8f-40ad-8eed-9ae9a908df6e",
         "name":"BOTECO DO ALBINO"
      },
      "items":[
         {
            "id":"3973594021",
            "index":"21",
            "name":"MARACUJA",
            "externalCode":"58",
            "unit":"UN",
            "quantity":1.0,
            "specialInstructions":"Teste",
            "unitPrice":{
               "value":61.00,
               "currency":"R$"
            },
            "optionsPrice":{
               "value":0.0,
               "currency":"R$"
            },
            "totalPrice":{
               "value":61.00,
               "currency":"R$"
            },
            "otherFees":[]
         }
      ],
      "total":{
         "items":61.00,
         "otherFees":0,
         "discount":0.00,
         "orderAmount":61.00,
         "additionalFees":0,
         "deliveryFee":0
      },
      "payments":{
         "prepaid":0.0,
         "pending":0.0,
         "methods":[
            {
               "value":61.00,
               "currency":"BRL",
               "type":"PREPAID",
               "method":"credit",
               "methodInfo":"Visa",
               "changeFor":0.0
            }
         ]
      },
      "delivery":null,
      "extraInfo":"Teste",
      "schedule":null,
      "indoor":null,
      "takeout":null,
      "table":{
         "waiterCode":"9999",
         "tableNumber":"29",
         "chairNumber":"1"
      },
      "card":null
   }
}
Nota
titleNota: HTTP Status Code = 200 OK

Sua solicitação foi aceita mas ainda não processada, aguarde alguns instantes e procure o status.


...


Informações
titleNota:

JSON de RequestOrderNewOrder Este JSON é utilizado para enviar informações de um novo pedido, incluindo detalhes do pedido, itens, cliente, pagamentos e outras taxas associadas. Ele serve como um formato padronizado para criar pedidos através de um sistema de integração.

Campos:

integrationHubServiceId (string, obrigatório)

  • Descrição: Chave de identificação da integração. Este campo é essencial para identificar de forma única a integração em questão.
  • Exemplo: "string"

data (objeto, obrigatório)

  • Descrição: Objeto contendo informações detalhadas sobre o pedido.

    Campos do data:

    • id (string, obrigatório)

      • Descrição: Identificador único do pedido. Este ID é gerado pelo aplicativo de pedidos.
      • Exemplo: "string"
    • type (string, obrigatório)

      • Descrição: Tipo do pedido, indicando a modalidade de entrega ou consumo.
      • Valores possíveis: "DELIVERY", "TAKEOUT", "INDOOR", "TABLE", "CARD", "COUNTER"
      • Exemplo: "DELIVERY"
    • displayId (string, obrigatório)

      • Descrição: ID do pedido exibido na interface do aplicativo de pedidos para o cliente.
      • Exemplo: "string"
    • sourceAppId (string)

      • Descrição: ID do aplicativo de pedidos que originou o pedido. Ajuda a identificar o aplicativo dentro de um Hub de integração.
      • Exemplo: "string"
    • salesChannel (string)

      • Descrição: Canal de vendas pelo qual o pedido foi originado.
      • Exemplo: "string"
    • createdAt (string, obrigatório)

      • Descrição: Data e hora de criação do pedido no formato ISO timestamp.
      • Exemplo: "2024-08-09T14:52:00Z"
    • lastEvent (string)

      • Descrição: Último evento válido do pedido, seja ele confirmado ou não.
      • Valores possíveis: "CREATED", "CONFIRMED", "DISPATCHED", "READY_FOR_PICKUP", "PICKUP_AREA_ASSIGNED", "DELIVERED", "CONCLUDED", "CANCELLATION_REQUESTED", "CANCELLATION_REQUEST_DENIED", "CANCELLED", "ORDER_CANCELLATION_REQUEST", "CANCELLED_DENIED"
      • Exemplo: "CREATED"
    • orderTiming (string, obrigatório)

      • Descrição: Indica se o pedido será entregue imediatamente ou em horário agendado.
      • Valores possíveis: "INSTANT", "SCHEDULED"
      • Exemplo: "INSTANT"
    • preparationStartDateTime (string, obrigatório)

      • Descrição: Sugestão de horário de início da preparação após a criação do pedido. Pode ser usado para informar ao estabelecimento sobre um atraso na preparação.
      • Exemplo: "2024-08-09T15:00:00Z"

merchant (objeto, obrigatório)

  • Descrição: Objeto contendo informações sobre o estabelecimento.

    Campos do merchant:

    • id (string, obrigatório)

      • Descrição: Identificador único do estabelecimento. Deve ser gerado pelo sistema de software do estabelecimento.
      • Exemplo: "string"
    • name (string, obrigatório)

      • Descrição: Nome público do estabelecimento.
      • Exemplo: "string"

items (array de objetos, obrigatório)

  • Descrição: Lista dos itens do pedido.

    Campos do items:

    • id (string, obrigatório)

      • Descrição: Identificador único do item.
      • Exemplo: "string"
    • index (string)

      • Descrição: Posição do item no pedido.
      • Exemplo: "1"
    • name (string, obrigatório)

      • Descrição: Nome do produto.
      • Exemplo: "Pizza Margherita"
    • externalCode (string, obrigatório)

      • Descrição: Código externo do produto.
      • Exemplo: "123456"
    • unit (string, obrigatório)

      • Descrição: Unidade de medida do item.
      • Valores possíveis: "UN", "KG", "L", "OZ", "LB", "GAL"
      • Exemplo: "UN"
    • ean (string)

      • Descrição: Código de barras padrão do item (EAN).
      • Exemplo: "7891234567890"
    • quantity (number, obrigatório)

      • Descrição: Quantidade de itens.
      • Exemplo: 2
    • specialInstructions (string)

      • Descrição: Instruções especiais sobre os itens.
      • Exemplo: "Sem cebola"
    • unitPrice (objeto, obrigatório)

      • Descrição: Preço por unidade do item.

      Campos do unitPrice:

      • value (number, obrigatório)

        • Descrição: Valor do preço. Aceita até 4 casas decimais.
        • Exemplo: 20.00
      • currency (string, obrigatório)

        • Descrição: Código da moeda no formato ISO 4217.
        • Exemplo: "BRL"
    • originalPrice (objeto)

      • Descrição: Preço original do produto antes de qualquer desconto. Apenas para fins informativos.

      Campos do originalPrice:

      • value (number, obrigatório)

        • Descrição: Valor do preço original.
        • Exemplo: 25.00
      • currency (string, obrigatório)

        • Descrição: Código da moeda no formato ISO 4217.
        • Exemplo: "BRL"
    • optionsPrice (objeto)

      • Descrição: Soma dos preços de todas as opções escolhidas para o item.

      Campos do optionsPrice:

      • value (number, obrigatório)

        • Descrição: Valor do preço das opções.
        • Exemplo: 5.00
      • currency (string, obrigatório)

        • Descrição: Código da moeda no formato ISO 4217.
        • Exemplo: "BRL"
    • totalPrice (objeto, obrigatório)

      • Descrição: Preço total do item, calculado como a quantidade multiplicada pelo preço unitário somado ao preço das opções.

      Campos do totalPrice:

      • value (number, obrigatório)

        • Descrição: Valor do preço total.
        • Exemplo: 45.00
      • currency (string, obrigatório)

        • Descrição: Código da moeda no formato ISO 4217.
        • Exemplo: "BRL"
    • options (array de objetos)

      • Descrição: Extras opcionais escolhidos pelo consumidor, relacionados a este item.

      Campos do options:

      • index (string)

        • Descrição: Posição da opção no pedido.
        • Exemplo: "1"
      • id (string, obrigatório)

        • Descrição: Identificador único da opção.
        • Exemplo: "string"
      • name (string, obrigatório)

        • Descrição: Nome da opção.
        • Exemplo: "Queijo Extra"
      • externalCode (string, obrigatório)

        • Descrição: Código externo do produto da opção.
        • Exemplo: "789456123"
      • unit (string, obrigatório)

        • Descrição: Unidade de medida da opção.
        • Valores possíveis: "UN", "KG", "L", "OZ", "LB", "GAL"
        • Exemplo: "UN"
      • ean (string)

        • Descrição: Código de barras padrão da opção (EAN).
        • Exemplo: "7891236547890"
      • quantity (number, obrigatório)

        • Descrição: Quantidade de opções.
        • Exemplo: 1
      • unitPrice (objeto, obrigatório)

        • Descrição: Preço por unidade da opção.

        Campos do unitPrice:

        • value (number, obrigatório)

          • Descrição: Valor do preço. Aceita até 4 casas decimais.
          • Exemplo: 2.00
        • currency (string, obrigatório)

          • Descrição: Código da moeda no formato ISO 4217.
          • Exemplo: "BRL"
      • originalPrice (objeto)

        • Descrição: Preço original da opção antes de qualquer desconto. Apenas para fins informativos.

        Campos do originalPrice:

        • value (number, obrigatório)

          • Descrição: Valor do preço original.
          • Exemplo: 2.50
        • currency (string, obrigatório)

          • Descrição: Código da moeda no formato ISO 4217.
          • Exemplo: "BRL"
      • totalPrice (objeto, obrigatório)

        • Descrição: Preço total da opção, calculado como a quantidade multiplicada pelo preço unitário.
        • Exemplo: 2.00
Informações
titleInformação:

integrationHubServiceId: é um código da integração da loja com o Integration Hub

orderKey: é o código do pedido

Dica
titleDica

Para obter informações detalhadas sobre como enviar uma requisição para a API Order  no endpoint payment para a criação de um pedido completo, incluindo itens adicionais, consulte a documentação clicando aqui.



...

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

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.


01. Formando inválido do JSON esperado.

Bloco de código
titleJSON Inválido
linenumberstrue
{
    "integrationHubServiceId": "393d9572-2ec9-4cda-9ad3-5b69e02c988d",
	  "orderKeyType": "string",
	   "orderKey": ["string"]
}
Bloco de código
titleJSON Resposta
linenumberstrue
{
	"errors": [
		{
			"key": "orderKeyType",
			"message": "body.orderKeyType must be one of [ORDER_ID, TABLE, CARD]"
		}
	]
}


...

02. JSON enviando faltando um ou mais campos.

Bloco de código
titleJSON Inválido
linenumberstrue
{
    "integrationHubServiceId": "a5c4e135-aacd-49c1-b051-160a78a83b56"
}
Bloco de código
titleJSON Resposta
linenumberstrue
{
	"errors": [
		{
			"key": "orderKeyType",
			"message": "body.orderKeyType is required"
		},
		{
			"key": "orderKey",
			"message": "body.orderKey is required"
		}
	]
}


...

03. GUID incorreto 

Bloco de código
titleJSON com o GUID inválido
linenumberstrue
{
    "integrationHubServiceId": "9a1cf326-c962-456f-8c49-c1bb2f340fc6A",
	  "orderKeyType": "TABLE",
	  "orderKey": []
}
Bloco de código
titleJSON Inválido GUID incorreto
linenumberstrue
{
	"errors": [
		{
			"key": "integrationHubServiceId",
			"message": "body.integrationHubServiceId must be a valid GUID"
		}
	]
}


...


04. Enviando uma requisição sem informar o código da orderKey corretamente

Bloco de código
titleJSON com sem informar o código da orderKey
linenumberstrue
{
    "integrationHubServiceId": "808c143d-d6d4-4b95-8c37-efa3a934f222",
	  "orderKeyType": "TABLE",
	  "orderKey": [""]
}
Bloco de código
titleJSON Response
linenumberstrue
{
	"errors": [
		{
			"key": 0,
			"message": "body.orderKey[0] is not allowed to be empty"
		}
	]
}
Nota
titleNota: 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
    Âncora
    status_code_401
    status_code_401
     

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
titleNota: 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
    Âncora
    status_code_403
    status_code_403

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


Bloco de código
titleURL enviada incorreda
https://api-barramento.meuelevestage.com/order/getStatuS
Bloco de código
titleJSON Response para URL incorreta
linenumberstrue
{
	"message": "Missing Authentication Token"
}
Nota
titleNota: HTTP Status Code = 403 - Forbidden

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


...


  • HTTP Status Code 404 - Not Found
    Âncora
    status_code_404
    status_code_404

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.


Bloco de código
titleIntegration Hub Code Inválido
linenumberstrue
{
    "integrationHubServiceId": "f1b874af-96ab-4535-aac3-25118fe586cc",
	  "orderKeyType": "TABLE",
	  "orderKey": ["5"]
}
Bloco de código
titleJSON Response
linenumberstrue
{
	"errors": [
		{
			"key": "integrationHubServiceId",
			"message": "Provider Merchant for integrationHubServiceId \"f1b874af-96ab-4535-aac3-25118fe586cc\" not found or disabled"
		}
	]
}
Nota
titleNota: HTTP Status Code = 404 - Not Found

IntegrationHubId incorreto ou inválido


...


  • HTTP Status Code 412 - Precondition Failed
    Âncora
    status_code_412
    status_code_412

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. 


Bloco de código
titleJSON
linenumberstrue
{
    "integrationHubServiceId": "8f7949c3-cdd6-4db0-8746-369e651026b4",
	  "orderKeyType": "TABLE",
	  "orderKey": []
}
Bloco de código
titleHTTP Status Code 412 = Precpndition Failed
linenumberstrue
{
	"message": "NOT_FOUND",
	"code": 412
}
Nota
titleNota: 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
    Âncora
    status_code_429
    status_code_429

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.


Bloco de código
titleJSON da requisição
linenumberstrue
{
    "integrationHubServiceId": "7d7d205b-83ba-47c5-91ba-e4f32a2bbd9e",
	  "orderKeyType": "TABLE",
		"orderKey": ["5"]
}
Bloco de código
titleResposta da última execução
linenumberstrue
{
	"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
titleNota: 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.

...

...




Templatedocumentos