Versões comparadas

Chave

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

...

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
        • integrationHubServiceId (string): Chave de identificação da integração utilizada.
          Exemplo: "933aadb4-c33b-40b8-8285-bf1e575d8b38"

        • data (object): Objeto que contém os detalhes completos do pedido.

          • id (string): Identificador único do pedido, gerado pela aplicação de pedidos.
            Exemplo: "9ec389e5-7582-4768-875b-ee7c309aa34f"
          • type (string): Tipo do pedido, por exemplo, "TABLE" para pedidos realizados em mesa.
            Exemplo: "TABLE"
          • displayId (string): Identificador de exibição usado para controle interno.
            Exemplo: "29"
          • createdAt (string): Data e hora de criação do pedido.
            Exemplo: "2024-06-24T17:35:00"
          • orderTiming (string): Data e hora estimadas para o pedido.
            Exemplo: "2024-06-24T17:40:24"
          • preparationStartDateTime (string): Data e hora de início da preparação do pedido.
            Exemplo: "2024-06-24T18:00:00"
          • merchant (object): Informações sobre o estabelecimento que está recebendo o pedido.
            • id (string): Identificador único do estabelecimento.
              Exemplo: "c312d2ff-1a8f-40ad-8eed-9ae9a908df6e"
            • name (string): Nome do estabelecimento.
              Exemplo: "BOTECO DO ALBINO"
          • items (array of objects): Lista de itens incluídos no pedido.
            • id (string): Identificador único do item.
              Exemplo: "3973594021"
            • index (string): Índice do item na lista.
              Exemplo: "21"
            • name (string): Nome do item.
              Exemplo: "MARACUJA"
            • externalCode (string): Código externo do item.
              Exemplo: "58"
            • unit (string): Unidade de medida do item.
              Exemplo: "UN"
            • quantity (number): Quantidade do item.
              Exemplo: 1.0
            • specialInstructions (string): Instruções especiais relacionadas ao item.
              Exemplo: "Teste"
            • unitPrice (object): Preço unitário do item.
              • value (number): Valor unitário do item.
                Exemplo: 61.00
              • currency (string): Código da moeda no formato ISO 4217.
                Exemplo: "R$"
            • optionsPrice (object): Preço das opções associadas ao item.
              • value (number): Valor total das opções.
                Exemplo: 0.0
              • currency (string): Código da moeda no formato ISO 4217.
                Exemplo: "R$"
            • totalPrice (object): Preço total do item, incluindo todas as opções.
              • value (number): Valor total do item.
                Exemplo: 61.00
              • currency (string): Código da moeda no formato ISO 4217.
                Exemplo: "R$"
            • productionPoint (string): Ponto de produção do item.
              Exemplo: "Cozinha Principal"
          • otherFees (array of objects): Lista de outras taxas que podem ser aplicadas ao pedido.
            • name (string): Nome relacionado à taxa adicional.
              Exemplo: "DELIVERY_FEE"
            • type (enum): Tipo de taxa, com possíveis valores "DELIVERY_FEE", "SERVICE_FEE", ou "TIP".
              Exemplo: "SERVICE_FEE"
            • receivedBy (enum): Parte responsável por receber a taxa, podendo ser "MARKETPLACE", "MERCHANT" ou "LOGISTIC_SERVICES".
              Exemplo: "MERCHANT"
            • receiverDocument (string): Documento do receptor, obrigatório para marketplaces.
              Exemplo: "12345678901"
            • price (object): Valor da taxa.
              • value (number): Valor da taxa com até 4 casas decimais.
                Exemplo: 5.00
              • currency (string): Código da moeda no formato ISO 4217.
                Exemplo: "BRL"
            • observation (string): Comentários ou observações adicionais sobre a taxa.
              Exemplo: "Taxa de serviço aplicada conforme política da casa."
          • discounts (array of objects): Lista de descontos aplicados ao pedido.
            • value (number): Valor do desconto aplicado.
              Exemplo: 10.00
            • target (enum): Alvo do desconto, podendo ser "CART", "DELIVERY_FEE", ou "ITEM".
              Exemplo: "ITEM"
            • targetId (string): Identificador do item para o qual o desconto é aplicado, obrigatório se target for "ITEM".
              Exemplo: "3973594021"
            • sponsorshipValues (array of objects): Valores patrocinados por terceiros, que devem somar ao valor total do desconto.
              • name (enum): Nome do patrocinador, podendo ser "MARKETPLACE" ou "MERCHANT".
                Exemplo: "MERCHANT"
              • value (number): Valor do desconto patrocinado.
                Exemplo: 5.00
          • total (object): Resumo financeiro do pedido.
            • items (number): Valor total dos itens.
              Exemplo: 61.00
            • otherFees (number): Valor total de outras taxas aplicadas.
              Exemplo: 0.0
            • discount (number): Valor total dos descontos aplicados.
              Exemplo: 10.00
            • orderAmount (number): Valor total do pedido, após a aplicação de taxas e descontos.
              Exemplo: 51.00
            • additionalFees (number): Taxas adicionais aplicadas ao pedido.
              Exemplo: 0.0
            • deliveryFee (number): Taxa de entrega, se aplicável.
              Exemplo: 0.0
          • payments (object): Detalhes sobre os pagamentos realizados.
            • prepaid (number): Valor pré-pago, se houver.
              Exemplo: 0.0
            • pending (number): Valor pendente de pagamento.
              Exemplo: 0.0
            • methods (array of objects): Métodos de pagamento utilizados.
              • value (number): Valor pago através deste método.
                Exemplo: 61.00
              • currency (string): Código da moeda no formato ISO 4217.
                Exemplo: "BRL"
              • type (enum): Tipo de pagamento, como "PREPAID" ou "ON_DELIVERY".
                Exemplo: "PREPAID"
              • method (string): Método de pagamento específico, como "credit" ou "debit".
                Exemplo: "credit"
              • methodInfo (string): Informações adicionais sobre o método de pagamento, como o nome do cartão.
                Exemplo: "Visa"
              • changeFor (number): Troco para o pagamento, se aplicável.
                Exemplo: 0.0
          • delivery (object): Detalhes sobre a entrega, caso o pedido envolva entrega.
          • extraInfo (string): Informações adicionais sobre o pedido.
            Exemplo: "Teste"
          • schedule (object): Informações de agendamento, caso o pedido seja programado para uma data futura.
          • indoor (object): Informações adicionais para pedidos realizados no interior do estabelecimento.
          • takeout (object): Detalhes sobre a retirada do pedido, se aplicável.
          • table (object): Informações sobre a mesa e o garçom responsável.
            • waiterCode (string): Código do garçom que atendeu o pedido.
              Exemplo: "9999"
            • tableNumber (string): Número da mesa onde o pedido foi realizado.
              Exemplo: "29"
            • chairNumber (string): Número da cadeira, se aplicável.
              Exemplo: "1"
          • card (object): Informações sobre o cartão, caso o pagamento seja realizado via cartão.
Informações
titleInformação:

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

orderKey: é o código do pedido



04. ERROS
Âncora
erros
erros

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


  • 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": "3fea8768-bbd9-454b-9e7b-40841e9a6812",
	"data": {
		"id": "b1e26dd8-0a1b-486e-bf62-65e80ddce2f4",
		"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 Resposta
linenumberstrue
{
	"errors": [
		{
			"key": "displayId",
			"message": "body.data.displayId must be a string"
		}
	]
}


...

02. JSON enviando faltando um ou mais campos.

Bloco de código
titleJSON Inválido
linenumberstrue
{
	"integrationHubServiceId": "299f76ba-3ac3-4cc1-abaf-fac5a2510d8c",
	"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": "3fea8768-bbd9-454b-9e7b-40841e9a6812",
	"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 e adicionais  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.

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, descontos e taxa  acesse a documentação clicando

Dica
titleDica

Para obter detalhes técnicos sobre como realizar uma requisição à API Order  no endpoint de newOrder para enviar um item com valor integral, clique aqui.


...


...