Páginas filhas
  • New Order Mesa - Itens com Valor Integral e Adicionais

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

Este endpoint permite o envio de requisições para a criação de novos pedidos na API Order , especificamente para pedidos realizados em mesa, utilizando a barramento de serviços. A estrutura JSON apresentada ilustra um exemplo de payload para o endpoint newOrder, destinado ao registro de pedidos com itens de valor integral incluindo adicionais no pedido.

...

Essa documentação tem como finalidade demonstrar o formato do JSON para envio de requisições de pedidos, como valor integração e adicionais.


...

02. EXEMPLO DE UTILIZAÇÃO
Âncora
utilizar
utilizar

2.1 -  Request Itens com Valor Integral e Adicionais:

Estrutura do corpo da requisição para criação de novos pedidos com itens de valor integral e adiconais

Bloco de código
titleJSON para pedido com inteiro
linenumberstrue
{
	"integrationHubServiceId": "3fea8768-bbd9-454b-9e7b-40841e9a6812",
	"data": {
		"id": "f4114e16-c2e4-4dc3-86f3-98a52bfd5d7d",
		"type": "TABLE",
		"displayId": "58",
		"

...

Estrutura do corpo da requisição para criação de novos pedidos com itens de valor integral e adiconais

Bloco de código
titleJSON para pedido com inteiro
linenumberstrue
{
	"integrationHubServiceId": "5ffec6b8-1c55-4a7d-985f-12d13685b553",
	"data": {
		"id": "f4114e16-c2e4-4dc3-86f3-98a52bfd5d7d",
		"type": "TABLE",
		"displayId": "58",
		"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": "61",
				"index": "60",
				"name": "A FRANCESA",
				"externalCode": "1",
				"unit": "UN",
				"quantity": 1,
				"specialInstructions": "Teste",
				"unitPrice": {
					"value": 69.90,
					"currency": "R$"
				},
				"optionsPrice": {
					"value": 0.0,
					"currency": "R$"
				},
				"totalPrice": {
					"value": 69.90,
					"currency": "R$"
				},
				 "options": [
          {
            "index": "61",
            "id": "61",
            "name": "COMPOSICAO A",
            "externalCode": "201",
            "unit": "UN",
            "quantity": 1,
            "unitPrice": {
              "value": 1.00,
              "currency": "R$"
            },
            "originalPrice": {
              "value": 1.00,
              "currency": "R$"
            },
            "totalPrice": {
              "value": 1.00,
              "currency": "R$"
            },
            "productionPoint": "Teste"
          }
        ]
			}
		],
		"otherFees": [],
		"total": {
			"items": 70.90,
			"otherFees": 0,
			"discount": 0.0,
			"orderAmount": 70.90,
			"additionalFees": 0,
			"deliveryFee": 0
		},
		"payments": {
			"prepaid": 0.0,
			"pending": 0.0,
			"methods": [
				{
					"value": 70.90,
					"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": "57",
			"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.


...

03. ERROS

...

Âncora

...

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


3.1. Formato inválido do JSON esperado:

A requisição foi enviada com um JSON malformado ou inválido, o que impede o sistema de interpretá-la corretamente. Isso ocorre quando a estrutura JSON contém erros de sintaxe, como chaves ou colchetes incorretos

Bloco de código
titleJSON Inválido
linenumberstrue
{
	"integrationHubServiceId": "3fea8768-bbd9-454b-9e7b-40841e9a6812",
	"data": {
		"id": "b1e26dd8-0a1b-486e-bf62-65e80ddce2f4",
		"type": "TABLE",
		"displayId": 55,
		"createdAt": 
Nota:

O JSON newOrder é utilizado para o envio dados no endpoint da API Order, para a criação de novos pedidos. Abaixo está uma explicação detalhada de cada campo presente no JSON:

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: "5ffec6b8-1c55-4a7d-985f-12d13685b553"

data (objeto, obrigatório)
Descrição: Objeto contendo informações detalhadas sobre o pedido.

  • id (string, obrigatório)
    Descrição: Identificador único do pedido. Este ID é gerado pelo aplicativo de pedidos.
    Exemplo: "f4114e16-c2e4-4dc3-86f3-98a52bfd5d7d"

  • 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: "TABLE"

  • displayId (string, obrigatório)
    Descrição: ID de exibição do pedido. Pode ser usado para identificar o pedido de forma amigável.
    Exemplo: "58"

  • createdAt (string, obrigatório)
    Descrição: Data e hora de criação do pedido.
    Exemplo:
    "2024-06-24T17:35:00"
    orderTiming (string, obrigatório)
    Descrição: Momento em que o pedido foi feito.
    Exemplo:
    ,
    		"orderTiming": "2024-06-24T17:40:24",
    		"
    preparationStartDateTime (string, obrigatório)
    Descrição: Data e hora de início da preparação do pedido.
    Exemplo:
    preparationStartDateTime": "2024-06-24T18:00:00"

    merchant (objeto, obrigatório)
    Descrição: Informações sobre o comerciante.

    id (string, obrigatório)
    Descrição: Identificador único do comerciante.
    Exemplo:
    ,
    		"merchant": {
    			"id": "c312d2ff-1a8f-40ad-8eed-9ae9a908df6e"
  • name (string, obrigatório)
    Descrição: Nome do comerciante.
    Exemplo: "BOTECO DO ALBINO"

  • items (array de objetos, obrigatório)
    Descrição: Lista de itens incluídos no pedido.

    • id (string, obrigatório)
      Descrição: Identificador único do item no pedido.
      Exemplo: "61"

    • index (string, obrigatório)
      Descrição: Índice do item na lista de itens do pedido.
      Exemplo: "60"

    • name (string, obrigatório)
      Descrição: Nome do item.
      Exemplo: "A FRANCESA"

    • externalCode (string, obrigatório)
      Descrição: Código externo do item, utilizado para integração com sistemas externos.
      Exemplo: "1"

    • unit (string, obrigatório)
      Descrição: Unidade de medida do item.
      Exemplo: "UN"

    • quantity (number, obrigatório)
      Descrição: Quantidade do item solicitada no pedido.
      Exemplo: 1

    • specialInstructions (string, opcional)
      Descrição: Instruções especiais para a preparação do item.
      Exemplo: "Teste"

    • unitPrice (objeto, obrigatório)
      Descrição: Preço unitário do item.

      • value (number, obrigatório)
        Descrição: Valor do preço unitário.
        Exemplo: 69.90

      • currency (string, obrigatório)
        Descrição: Moeda do preço unitário.
        Exemplo: "R$"

    • optionsPrice (objeto, opcional)
      Descrição: Preço das opções adicionais do item.

      • value (number, obrigatório)
        Descrição: Valor das opções adicionais.
        Exemplo: 0.0

      • currency (string, obrigatório)
        Descrição: Moeda das opções adicionais.
        Exemplo: "R$"

    • totalPrice (objeto, obrigatório)
      Descrição: Preço total do item, incluindo as opções adicionais.

      • value (number, obrigatório)
        Descrição: Valor total do item.
        Exemplo: 69.90

      • currency (string, obrigatório)
        Descrição: Moeda do valor total.
        Exemplo: "R$"

    • options (array de objetos, opcional)
      Descrição: Lista de opções adicionais para o item.

      • index (string, obrigatório)
        Descrição: Índice da opção na lista de opções do item.
        Exemplo: "61"

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

      • name (string, obrigatório)
        Descrição: Nome da opção.
        Exemplo: "COMPOSICAO A"

      • externalCode (string, obrigatório)
        Descrição: Código externo da opção, utilizado para integração com sistemas externos.
        Exemplo: "201"

      • unit (string, obrigatório)
        Descrição: Unidade de medida da opção.
        Exemplo: "UN"

      • quantity (number, obrigatório)
        Descrição: Quantidade da opção solicitada.
        Exemplo: 1

      • unitPrice (objeto, obrigatório)
        Descrição: Preço unitário da opção.

        • value (number, obrigatório)
          Descrição: Valor do preço unitário da opção.
          Exemplo: 1.00

        • currency (string, obrigatório)
          Descrição: Moeda do preço unitário da opção.
          Exemplo: "R$"

      • originalPrice (objeto, opcional)
        Descrição: Preço original da opção antes de descontos ou promoções.

        • value (number, obrigatório)
          Descrição: Valor original da opção.
          Exemplo: 1.00

        • currency (string, obrigatório)
          Descrição: Moeda do valor original.
          Exemplo: "R$"

      • totalPrice (objeto, obrigatório)
        Descrição: Preço total da opção.

        • value (number, obrigatório)
          Descrição: Valor total da opção.
          Exemplo: 1.00

        • currency (string, obrigatório)
          Descrição: Moeda do valor total.
          Exemplo: "R$"

      • productionPoint (string, opcional)
        Descrição: Ponto de produção onde a opção será preparada.
        Exemplo: "Teste"

  • otherFees (array de objetos, opcional)
    Descrição: Lista de outras taxas aplicáveis ao pedido.

  • total (objeto, obrigatório)
    Descrição: Total do pedido, incluindo valores de itens, taxas e descontos.

    • items (number, obrigatório)
      Descrição: Valor total dos itens do pedido.
      Exemplo: 70.90

    • otherFees (number, obrigatório)
      Descrição: Valor total de outras taxas aplicáveis ao pedido.
      Exemplo: 0

    • discount (number, obrigatório)
      Descrição: Valor total dos descontos aplicáveis ao pedido.
      Exemplo: 0.0

    • orderAmount (number, obrigatório)
      Descrição: Valor total do pedido, incluindo itens, taxas e descontos.
      Exemplo: 70.90

    • additionalFees (number, opcional)
      Descrição: Valor de taxas adicionais aplicáveis ao pedido.
      Exemplo: 0

    • deliveryFee (number, obrigatório)
      Descrição: Valor da taxa de entrega do pedido.
      Exemplo: 0

  • payments (objeto, obrigatório)
    Descrição: Informações sobre os pagamentos do pedido.

    • prepaid (number, obrigatório)
      Descrição: Valor pré-pago do pedido.
      Exemplo: 0.0

    • pending (number, obrigatório)
      Descrição: Valor pendente do pedido.
      Exemplo: 0.0

    • methods (array de objetos, obrigatório)
      Descrição: Métodos de pagamento utilizados no pedido.

      • value (number, obrigatório)
        Descrição: Valor pago utilizando este método.
        Exemplo: 70.90

      • currency (string, obrigatório)
        Descrição: Moeda utilizada no pagamento.
        Exemplo: "BRL"

      • type (string, obrigatório)
        Descrição: Tipo de pagamento.
        Valores possíveis: "PREPAID", "PENDING"
        Exemplo: "PREPAID"

      • method (string, obrigatório)
        Descrição: Método de pagamento utilizado.
        Exemplo: "credit"

      • methodInfo (string, opcional)
        Descrição: Informações adicionais sobre o método de pagamento.
        Exemplo: "Visa"

      • changeFor (number, opcional)
        Descrição: Valor do troco solicitado, caso o pagamento seja em dinheiro.
        Exemplo: 0.0

  • delivery (objeto, opcional)
    Descrição: Informações sobre a entrega do pedido. Pode ser nulo se não aplicável.

  • extraInfo (string, opcional)
    Descrição: Informações adicionais sobre o pedido.
    Exemplo: "Teste"

  • schedule (objeto, opcional)
    Descrição: Informações sobre o agendamento do pedido. Pode ser nulo se não aplicável.

  • indoor (objeto, opcional)
    Descrição: Informações sobre consumo interno. Pode ser nulo se não aplicável.

  • takeout (objeto, opcional)
    Descrição: Informações sobre retirada do pedido. Pode ser nulo se não aplicável.

  • table (objeto, opcional)
    Descrição: Informações sobre a mesa onde o pedido foi realizado.

    • waiterCode (string, obrigatório)
      Descrição: Código do garçom que atendeu o pedido.
      Exemplo: "9999"

    • tableNumber (string, obrigatório)
      Descrição: Número da mesa onde o pedido foi realizado.
      Exemplo: "57"

    • chairNumber (string, obrigatório)
      Descrição: Número da cadeira onde o cliente estava sentado.
      Exemplo: "1"

  • card (objeto, opcional)
    Descrição: Informações sobre pagamento com cartão. Pode ser nulo se não aplicável.

  • ...

    A seguir, alguns dos erros comuns que podem ser apresentados ao lidar com requisições HTTP e suas respectivas respostas:

    ...

    ,
    			"name": "BOTECO DO ALBINO"
    		},
    		"items": [
    			{
    				"id": "54",
    				"index": "54",
    				"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.0,
    			"otherFees": 0,
    			"discount": 0.0,
    			"orderAmount": 61.0,
    			"additionalFees": 0,
    			"deliveryFee": 0
    		},
    		"payments": {
    			"prepaid": 0.0,
    			"pending": 0.0,
    			"methods": [
    				{
    					"value": 61.0,
    					"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": "54",
    			"chairNumber": "1"
    		},
    		"card": null
    	}
    }
    Bloco de código
    titleJSON Resposta
    linenumberstrue
    {
    	"errors": [
    		{
    			"key": "displayId",
    			"message": "body.data.displayId must be a string"
    		}
    	]
    }


    ...


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

    Bloco de código
    titleJSON Inválido
    linenumberstrue
    {
    	"integrationHubServiceId": "3fea8768-bbd9-454b-9e7b-40841e9a6812",
    	"data": {
    		"id": "fa3a2d45-3a29-4136-95e7-692d93db8b2b",
    		"type": "TABLE",
    		"displayId": "55",
    		"createdAt": "2024-06-24T17:35:00",
    		"orderTiming": "2024-06-24T17:40:24",
    		"preparationStartDateTime": "2024-06-24T18:00:00",		
    		"items": [
    			{
    				"id": "54",
    				"index": "54",
    				"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.0,
    			"otherFees": 0,
    			"discount": 0.0,
    			"orderAmount": 61.0,
    			"additionalFees": 0,
    			"deliveryFee": 0
    		},
    		"payments": {
    			"prepaid": 0.0,
    			"pending": 0.0,
    			"methods": [
    				{
    					"value": 61.0,
    					"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": "54",
    			"chairNumber": "1"
    		},
    		"card": null
    	}
    }
    Bloco de código
    titleJSON Resposta
    linenumberstrue
    {
    	"errors": [
    		{
    			"key": "merchant",
    			"message": "body.data.merchant is required"
    		}
    	]
    }
    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/newOrderS
    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",
    	"data": {
    		"id": "f1bddb3f-63c4-4b2f-be53-e4527275ad9d",
    		"type": "TABLE",
    		"displayId": "55",
    		"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": "54",
    				"index": "54",
    				"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.0,
    			"otherFees": 0,
    			"discount": 0.0,
    			"orderAmount": 61.0,
    			"additionalFees": 0,
    			"deliveryFee": 0
    		},
    		"payments": {
    			"prepaid": 0.0,
    			"pending": 0.0,
    			"methods": [
    				{
    					"value": 61.0,
    					"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": "54",
    			"chairNumber": "1"
    		},
    		"card": null
    	}
    }
    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

    Dica
    titleSaiba mais!

    Para obter detalhes técnicos sobre o envio de requisições ao endpoint newOrder, incluindo a estrutura do corpo da requisição para itens com valor integral acesse a documentação clicando aqui.

    Dica
    titleSaiba mais!

    Para obter detalhes técnicos sobre o envio de requisições ao endpoint newOrder, incluindo a estrutura do corpo da requisição para itens com valor integral, adicionais e descontos  acesse a documentação clicando aqui.


    ...


    ...


    Templatedocumentos