01. VISÃO GERALEssa 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. ENDPOINT03. HEADERChave | Valor |
---|
x-mpn-integrations-signature | t=1651674844016,sign=8ebcf9cb577c0f0847969fee25c904a72c1e70aa13c197f44ef489768ec84a71 |
04. CORPO DA REQUISIÇÃOEstrutura completa do corpo da requisição: Corpo da requisição: Status Code | Corpo da requisição | Legenda |
---|
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"
}
} |
| Campo | Tipo | Legenda |
---|
{ IntegrationHubServiceId | String | O identificador exclusivo do pedido. O ID do pedido é gerado pelo Aplicativo de Pedidos. | data: { | Objeto | Serve como cabeçalho do pedido. | id | String | O identificador exclusivo do pedido. O ID do pedido é gerado pelo Aplicativo de Pedidos. | type | String | DELIVERY, TAKEOUT ou INDOOR. | displayId | String | ID do pedido mostrado na interface do aplicativo de pedidos do cliente. | sourceAppId | String | Id da aplicação que envia o pedido. | salesChannel | String | Indica canal de vendas que foi original do pedido | virtualBrand | String | Identificador alternativo para caso o merchant tenha multiplas brands(Bandeiras). | createdAt | String | Data, formato = AAAA-MM-DDThh:mm:ss | lastEvent | String | Ú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 ] | orderTiming | String | Último evento válido capturado pelo pooling ou webhook, Enum de valores: [ INSTANT, SCHEDULED, ONDEMAND ] | preparationStartDateTime | String | Data de inicio de preparação do pedido. O padrão é o mesmo tempo do order creation time(created at). | merchant { | Objeto | Objeto que tem dados do merchant. | id | String | Identificador da loja. | name }, | String | Nome da loja. | Items [ { | Lista de objetos | Lista os dados relacionados a items. | id | String | Identificador único de pedidos. | index | String | Posição do item. | name | String | Nome do produto. | external code | String | código do produto no PDV. | unit | String | Unidade 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.
| ean | String | Código EAN. | quantity | Number | Quantidade do item, em caso de pedido fracionado deveria passar um float example: 500 gramas = 0.5kg. | specialInstructions | String | Instruções extras. | unitPrice { | Objeto | Objeto de preço unitário | value | Number | Valor unitário do produto, aceita até 4 casas decimais. | currency }, | String | Código da moeda, com base na ISO 4217. | originalPrice { | Objeto | Objeto do preço original | value | Number | Valor original do produto, aceita até 4 casas decimais. | currency }, | String | Código da moeda, com base na ISO 4217. | optionsPrice { | Objeto | Objeto de preço do adicional | value | Number | Valor de preço adicional do produto, aceita até 4 casas decimais. | currency }, | String | Código da moeda, com base na ISO 4217. | subtotalPrice { | Objeto | Objeto do preço do subtotal | value | Number | Valor do preço do subtotal do produto, aceita até 4 casas decimais. | currency }, | String | Código da moeda, com base na ISO 4217. | totalPrice { | Objeto | Objeto do preço total. | value | Number | Valor original do produto, aceita até 4 casas decimais. | currency }, | String | Código da moeda, com base na ISO 4217. | indoor { | Objeto | Indoor = Pedido pra o local. | productionPoint }, | String | Ponto de produção. | options [ { | Objeto | Objeto que contém os adicionais. | index | String | Posição do adicionar. | id | String | Identificador único do item. | name | String | Nome do adicional. | externalCode | String | Código do produto. | unit | String | Unidade 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. | ean | String | Código EAN. | quantity | Number | Quantidade do item, em caso de pedido fracionado deveria passar um float example: 500 gramas = 0.5kg. | unitPrice { | Objeto | Objeto de preço unitário | value | Number | Valor unitário do produto, aceita até 4 casas decimais. | currency }, | String | Código da moeda, com base na ISO 4217. | originalPrice { | Objeto | Objeto do preço original | value | Number | Valor original do produto, aceita até 4 casas decimais. | currency }, | String | Código da moeda, com base na ISO 4217. | totalPrice { | Objeto | Objeto do preço total. | value | Number | Valor original do produto, aceita até 4 casas decimais. | currency }, | String | Código da moeda, com base na ISO 4217. | specialInstructions } ] } ], | String | Instruções extras. | OtherFees [ { | Lista de Objetos | Esse objeto contém dados sobre as taxas. | name | String | nome da taxa. | type | String | Tipo de Taxa. Enum : [ DELIVERY_FEE, SERVICE_FEE, TIP ] | receivedBy | String | recebido por. Enum: [ MARKETPLACE, MERCHANT, LOGISTIC_SERVICES ] | receivedDocument | String | Obeigatório se o receivedBy for marketPlace. | price { | Objeto | Objeto do preço original | value | Number | Valor original do produto, aceita até 4 casas decimais. | currency }, | String | Código da moeda, com base na ISO 4217. | observation } ], | String | Observação. | discounts [ { | Lista de Objeto | Contém os dados de disconto. | name | String | nome do desconto dado. | value } ] | Number | valor do desconto. | total { | Objeto | Objeto que contém todos os totais. | unitPrice { | Objeto | Objeto de preço unitário | value | Number | Valor unitário do produto, aceita até 4 casas decimais. | currency }, | String | Código da moeda, com base na ISO 4217. | otherFees { | Objeto | Objeto do preço original | value | Number | Valor original do produto, aceita até 4 casas decimais. | currency }, | String | Código da moeda, com base na ISO 4217. | discount { | Objeto | Objeto de preço do adicional | value | Number | Valor de preço adicional do produto, aceita até 4 casas decimais. | currency }, | String | Código da moeda, com base na ISO 4217. | orderAmount { | Objeto | Objeto do preço do subtotal | value | Number | Valor do preço do subtotal do produto, aceita até 4 casas decimais. | currency } }, | String | Código da moeda, com base na ISO 4217. | payments { | Objeto | Objeto que contém os dados de pagamento. | prepaid | Number | Valor pago antecipadamente. | pending | Number | Valor pendente de pagamento. | methods [ { | Lista de Objetos | lista de objetos com dados de pagamento. | value | Number | valor do pagamento. | currency | String | Código da moeda, com base na ISO 4217. | type | String | 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. | method | String | Métodos de pagamento: "CREDIT" "DEBIT" "MEAL_VOUCHER" "FOOD_VOUCHER" "DIGITAL_WALLET" "PIX" "CASH" "CREDIT_DEBIT" "COUPON" "REDEEM" "PREPAID_REDEEM" "OTHER"* | brand | String | Indica 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 ] | methodInfo | String | Informação extra sobre o método. | transaction { | Objeto | Objeto com dados da transação. | authorizationCode | String | Cartão de crédito e/ou subsidiária número da autorização da transação. | acquirerDocument }, | String | Documento da intermediária da transação( agência, plataforma de delivery, marketplace e outros) do serviço. | changeFor } ] }, | Number | Indica 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 { | Objeto | Objeto com dados da nota. | issues | Bool | Informa se a nota fiscal já foi emitida para esse pedido. | taxInvoiceURL }, | String | URL da nota para ser baixada. | customer { | Objeto | Dados do consumidor. Obrigatório se o tipo do pedido for delivery | id | String | Identificador único do consumidor. | name | String | Nome do consumidor | documentNumber | String | Documento do consumidor. Documento poderá ser enviado para tratar de questões tributárias. | phone { | Object | Objeto com dados do telefone | number | String | Número de telefone. | extension }, | String | Extensão do número. | email | String | E-mail do consumidor. E-mail poderá ser enviado para tratar de questões tributárias. | orderCountOnMerchant }, | String | Total de pedidos feito pelo consumidor na loja. | Schedule { | Objeto | Objeto de agendamento. | scheduledDateTimeStart | String | Data, formato = AAAA-MM-DDThh:mm:ss. O padrão é o mesmo tempo do order creation time(created at). | scheduledDateTimeEnd }, | String | Data, formato = AAAA-MM-DDThh:mm:ss. O padrão é o mesmo tempo do order creation time(created at). | orderPriority | String | Define 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 { | Objeto | Objeto que contém os dados de delivery. | deliveredBy | String | Enum: [ MARKETPLACE, MERCHANT ] | deliveredAddress { | Objeto | Objeto do endereço. | country | String | Código do país de duas letras ISO 3166-1 alpha-2. | state | String | Estado baseado na ISO 3166-2, Não é obrigatório mas sim recomendado. | city | String | Nome da cidade. | district | String | Distrito ou município. | street | String | Nome da rua. | number | String | Número. | complement | String | Complemento do endereço. | reference | String | Ponto de referência. | formattedAddress | String | Endereço completo. | postalCode | String | Código Postal. | coordinates { | Objeto | Objeto de coordenadas | latitude | Number | Latitude em graus. Limitado pelos valores [[-90, 90]]. | longitude } }, | Number | Longitude em graus. Limitado pelos valores [[-180, 180]]. | estimatedDeliveryDateTime | String | Data e hora estimada da entrega. Mesma data e hora apresentada na aplicação de pedido. | deliveryDateTime | String | Data e hora em que a entrega aconteceu. | pickupCode }, | String | Código para o entregador pegar o pacote. Não confundir com o código do consumidor pra receber. | takeout { | Objeto | Objeto que contém os dados de takeout. | mode | String | Enum: [ DEFAULT, PICKUP_AREA ] | takeoutDateTime } | String | Data 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 { | Objeto | Objeto para pedidos feitos para consumir no local. | mode | String | 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 ] | indoorDateTime | String | Data 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. | place | String | Identificador do Place. Obrigatório quando o mode recebe o valor do Place. | seat | String | Identificador do Seat. Obrigatório quando o mode recebe o valor do Seat. | tab | String | Identificador do Tab. Obrigatório quando o mode recebe o valor do Tab. | waiterCode }, | String | Código do garçom. | sendDelivered | Bool | Este 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. | sendPickedUp | Bool | Este 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. | sendTracking | Bool | Este 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. | extraInfo | String | Informação extra caso seja necessário. |
|
05. RESPONSESStatus Code | Response |
---|
200 | Your request has been accepted but not yet processed, wait a few moments and look for the status. | 400 | Bad request. | 401 | Missing or invalid credentials. | 403 | Missing Authentication Token. | 404 | One or more posted information could not be found.
{
"errors": [
{
"key": "string",
"message": "string"
}
]
} |
|
|
CONTEÚDO
01. VISÃO GERALEste 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
03. EXEMPLO DE UTILIZAÇÃO3.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 |
---|
integrationHubServiceId | String | Id da configuração da integração | orderKeyType | String | Procurar 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. ERROSQuando 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
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
|
|