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
|
CONTEÚDO
01. VISÃO GERAL
Este endpoint é utilizado para obter informações detalhadas sobre consumo, fornecendo um retorno em formato JSON com diversos atributos relevantes. Ao enviar uma solicitação conforme especificado nos exemplos abaixo, o endpoint processa a requisição e retorna um conjunto de dados que inclui o status mais recente do consumo.
02. ENDPOINT
03. EXEMPLO DE UTILIZAÇÃO3.1- Request - Retornar todos os status dos consumos: Ao fazer essa requisição, o sistema processa a solicitação para obter o status dos consumos indicados, retornando as informações de cada consumo solicitado. 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 O seu pedido foi aceite, mas ainda não foi processado, aguarde alguns instantes e contacte a mesma morada para obter o consumo solicitado.
3.2- Request - Ao reenviar a solicitação, a resposta retornada será a seguinte: Após reenviar a requisição para o mesmo endpoint, o sistema retornará uma resposta detalhando o status atualizado dos consumos solicitados. JSON de resposta do retorno de um consumo específico HTTP Status Code = 208 1 2 3 4 5 6 7 8 | {
"errors": [
{
"key": "orderKeyType_orderKey",
"message": "Order consumption request already exists: INDOOR_"
}
]
}
|
Nota: HTTP Status Code = 208 Already Reported Seu pedido já foi enviado, aguarde alguns instantes e entre em contato com o mesmo endereço para obter o consumo solicitado.
3.3 - Request - Ao enviar novamente a solicitação, o processamento será realizado conforme a seguinte resposta: Reenviando a requisição após o processamento, o sistema retornará o status final dos consumos, indicando se o processamento foi concluído com sucesso e exibindo as informações detalhadas. 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 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 | {
"success":true,
"error":null,
"integrationHubServiceId":"ea2aecdb-7a37-449f-99e1-aa1346b09524",
"orderKeyType":"INDOOR",
"orderKey":[
"06",
"10",
"19"
],
"consumption":[
{
"orderId":"7cf20761-adc7-4a79-98c3-2259dd2b2856",
"type":"TABLE",
"createdAt":"2024-02-08 10:12:05",
"customerName":"TOTVS",
"items":[
{
"id":"251",
"index":"331811",
"name":"TESTE MYTAPP",
"externalCode":"251",
"unit":"UNIT",
"ean":"",
"quantity":1,
"specialInstructions":"",
"unitPrice":{
"value":99.9,
"currency":"R$"
},
"optionsPrice":{
"value":0,
"currency":"R$"
},
"totalPrice":{
"value":99.9,
"currency":"R$"
},
"options":null,
"productionPoint":[
{
"name":"NENHUM"
}
]
}
],
"otherFees":[
{
"name":"Taxa de Serviço",
"type":"SERVICE_FEE",
"receivedBy":"MERCHANT",
"receiverDocument":"",
"price":{
"value":9.99,
"currency":"R$"
},
"observation":""
}
],
"discounts":null,
"total":{
"items":99.9,
"otherFees":9.99,
"discount":0,
"orderAmount":109.89
},
"delivery":null,
"takeout":null,
"indoor":null,
"table":{
"waiterCode":9999,
"tableNumber":6,
"chairNumber":0
},
"card":null
},
{
"orderId":"244e2bc1-b7ef-4260-bbf5-49251bdc5f0f",
"type":"TABLE",
"createdAt":"2024-02-08 10:45:02",
"customerName":"TOTVS",
"items":[
{
"id":"1",
"index":"331820",
"name":"A FRANCESA",
"externalCode":"1",
"unit":"UNIT",
"ean":"",
"quantity":1,
"specialInstructions":"",
"unitPrice":{
"value":69.9,
"currency":"R$"
},
"optionsPrice":{
"value":0,
"currency":"R$"
},
"totalPrice":{
"value":69.9,
"currency":"R$"
},
"options":null,
"productionPoint":[
{
"name":"COZINHA"
}
]
},
{
"id":"4",
"index":"331821",
"name":"AVELA",
"externalCode":"4",
"unit":"UNIT",
"ean":"",
"quantity":1,
"specialInstructions":"",
"unitPrice":{
"value":37.99,
"currency":"R$"
},
"optionsPrice":{
"value":0,
"currency":"R$"
},
"totalPrice":{
"value":37.99,
"currency":"R$"
},
"options":null,
"productionPoint":[
{
"name":"COZINHA"
}
]
}
],
"otherFees":[
{
"name":"Taxa de Serviço",
"type":"SERVICE_FEE",
"receivedBy":"MERCHANT",
"receiverDocument":"",
"price":{
"value":10.78,
"currency":"R$"
},
"observation":""
}
],
"discounts":null,
"total":{
"items":107.89,
"otherFees":10.78,
"discount":0,
"orderAmount":118.67
},
"delivery":null,
"takeout":null,
"indoor":null,
"table":{
"waiterCode":1,
"tableNumber":10,
"chairNumber":0
},
"card":null
},
{
"orderId":"b6017f3d-e680-4840-b69f-d2b573d4f8c0",
"type":"TABLE",
"createdAt":"2024-02-25 14:01:50",
"customerName":"TOTVS",
"items":[
{
"id":"5",
"index":"331838",
"name":"BRIGADEIRO COM BABA DE MOCA",
"externalCode":"5",
"unit":"UNIT",
"ean":"",
"quantity":2,
"specialInstructions":"",
"unitPrice":{
"value":29.99,
"currency":"R$"
},
"optionsPrice":{
"value":0,
"currency":"R$"
},
"totalPrice":{
"value":30.2,
"currency":"R$"
},
"options":null,
"productionPoint":[
{
"name":"COZINHA"
}
]
},
{
"id":"6",
"index":"331839",
"name":"BRIGADEIRO 2",
"externalCode":"6",
"unit":"UNIT",
"ean":"",
"quantity":2,
"specialInstructions":"",
"unitPrice":{
"value":63,
"currency":"R$"
},
"optionsPrice":{
"value":0,
"currency":"R$"
},
"totalPrice":{
"value":63.42,
"currency":"R$"
},
"options":null,
"productionPoint":[
{
"name":"COZINHA"
}
]
},
{
"id":"5",
"index":"331841",
"name":"BRIGADEIRO COM BABA DE MOCA",
"externalCode":"5",
"unit":"UNIT",
"ean":"",
"quantity":1,
"specialInstructions":"",
"unitPrice":{
"value":29.99,
"currency":"R$"
},
"optionsPrice":{
"value":0,
"currency":"R$"
},
"totalPrice":{
"value":15.11,
"currency":"R$"
},
"options":null,
"productionPoint":[
{
"name":"COZINHA"
}
]
},
{
"id":"6",
"index":"331842",
"name":"BRIGADEIRO 2",
"externalCode":"6",
"unit":"UNIT",
"ean":"",
"quantity":1,
"specialInstructions":"",
"unitPrice":{
"value":63,
"currency":"R$"
},
"optionsPrice":{
"value":0,
"currency":"R$"
},
"totalPrice":{
"value":31.7,
"currency":"R$"
},
"options":null,
"productionPoint":[
{
"name":"COZINHA"
}
]
}
],
"otherFees":[
{
"name":"Taxa de Serviço",
"type":"SERVICE_FEE",
"receivedBy":"MERCHANT",
"receiverDocument":"",
"price":{
"value":14.04,
"currency":"R$"
},
"observation":""
}
],
"discounts":null,
"total":{
"items":140.43,
"otherFees":14.04,
"discount":0,
"orderAmount":154.47
},
"delivery":null,
"takeout":null,
"indoor":null,
"table":{
"waiterCode":9999,
"tableNumber":19,
"chairNumber":0
},
"card":null
}
]
}
|
Nota: HTTP Status Code = 226 IM Used Sua solicitação foi retornada com sucesso.
3.4 - Request - Obter detalhes de um consumo específico: Ao fazer essa requisição, o sistema processa a solicitação e retorna os detalhes completos de um consumo específico, incluindo todas as informações relevantes sobre o pedido consumido JSON Para retornar o status de um consumo específico 1 2 3 4 5 | {
"integrationHubServiceId": "7056c970-cb11-400f-9d4f-9f30253f3b0b",
"orderKeyType": "INDOOR",
"orderKey": ["40"]
}
|
Nota: HTTP Status Code = 202 Accepted O seu pedido foi aceite, mas ainda não foi processado, aguarde alguns instantes e contacte a mesma morada para obter o consumo solicitado.
3.5 - Request - Reenviando a solicitação para obter os detalhes de um consumo: Ao reenviar a requisição para o mesmo endpoint, o sistema retornará as informações atualizadas sobre o consumo solicitado, refletindo seu status mais recente. JSON de resposta do retorno de um consumo específico HTTP Status Code = 208 1 2 3 4 5 6 7 8 | {
"errors": [
{
"key": "orderKeyType_orderKey",
"message": "Order consumption request already exists: INDOOR_40"
}
]
}
|
Nota: HTTP Status Code = 208 Already Reported Seu pedido já foi enviado, aguarde alguns instantes e entre em contato com o mesmo endereço para obter o consumo solicitado.
3.6 - Request - Solicitação de processamento para obter detalhes específicos do consumo: Reenviando a requisição, o sistema processará o pedido de forma detalhada e retornará as informações completas sobre o consumo, conforme os dados disponíveis no momento. JSON de resposta do retorno de um consumo 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 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 | {
"success": true,
"error": null,
"integrationHubServiceId": "7056c970-cb11-400f-9d4f-9f30253f3b0b",
"orderKeyType": "INDOOR",
"orderKey": ["40"],
"consumption": [
{
"orderId": "d8ef12c3-ce5f-4bfa-b1d2-ebde107a2f02",
"type": "TABLE",
"createdAt": "2024-06-28 17:27:20",
"customerName": "TOTVS",
"items": [
{
"id": "39735945",
"index": "4",
"name": "MARACUJA",
"externalCode": "58",
"unit": "UNIT",
"ean": "",
"quantity": 1,
"specialInstructions": "TESTE",
"unitPrice": {
"value": 61,
"currency": "R$"
},
"optionsPrice": {
"value": 0,
"currency": "R$"
},
"totalPrice": {
"value": 61,
"currency": "R$"
},
"options": null,
"productionPoint": [
{
"name": "NENHUM"
}
]
}
],
"otherFees": [
{
"name": "Taxa de Serviço",
"type": "SERVICE_FEE",
"receivedBy": "MERCHANT",
"receiverDocument": "",
"price": {
"value": 6.1,
"currency": "R$"
},
"observation": ""
}
],
"discounts": [],
"total": {
"items": 61,
"otherFees": 6.1,
"discount": 0,
"orderAmount": 67.1
},
"delivery": null,
"takeout": null,
"indoor": null,
"table": {
"waiterCode": 9999,
"tableNumber": 40,
"chairNumber": 0
},
"card": null
}
]
}
|
Nota: HTTP Status Code = 226 IM Used Sua solicitação foi retornada com sucesso.
3.7 - Request - Retornar o status de múltiplos pedidos: Ao realizar essa requisição, o sistema processa a solicitação e fornece o status atualizado de vários pedidos ao mesmo tempo, incluindo informações detalhadas sobre cada um deles. JSON Para retornar múltiplos consumos 1 2 3 4 5 | {
"integrationHubServiceId": "ab70a3ce-915b-42ee-9d7f-049d36e26eca",
"orderKeyType": "TABLE",
"orderKey": ["20", "40"]
}
|
Nota: HTTP Status Code = 202 Accepted O seu pedido foi aceite, mas ainda não foi processado, aguarde alguns instantes e contacte a mesma morada para obter o consumo solicitado.
3.8 - Request - Reenviando a solicitação para obter o status de múltiplos pedidos: Ao reenviar a requisição, o sistema retornará as informações atualizadas sobre o status dos pedidos solicitados, refletindo quaisquer alterações desde a última consulta. JSON de resposta do retorno de um consumo específico HTTP Status Code = 208 1 2 3 4 5 6 7 8 | {
"errors": [
{
"key": "orderKeyType_orderKey",
"message": "Order consumption request already exists: TABLE_20, 40"
}
]
}
|
Nota: HTTP Status Code = 208 Already Reported Seu pedido já foi enviado, aguarde alguns instantes e entre em contato com o mesmo endereço para obter o consumo solicitado.
3.9 - Request - Solicitação de processamento para o status de múltiplos pedidos: Reenviando a requisição, o sistema processará o pedido e fornecerá uma resposta que detalha o status atual de todos os pedidos incluídos na solicitação. JSON de retorno de múltiplos consumos 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 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 | {
"success": true,
"error": null,
"integrationHubServiceId": "ab70a3ce-915b-42ee-9d7f-049d36e26eca",
"orderKeyType": "TABLE",
"orderKey": [
"20",
"40"
],
"consumption": [
{
"orderId": "2299a4af-2363-4aa8-803b-b95f7d8e8a7b",
"type": "TABLE",
"createdAt": "2024-06-28 17:27:20",
"customerName": "TOTVS",
"items": [
{
"id": "39735945",
"index": "4",
"name": "MARACUJA",
"externalCode": "58",
"unit": "UNIT",
"ean": "",
"quantity": 1,
"specialInstructions": "TESTE",
"unitPrice": {
"value": 61,
"currency": "R$"
},
"optionsPrice": {
"value": 0,
"currency": "R$"
},
"totalPrice": {
"value": 61,
"currency": "R$"
},
"options": null,
"productionPoint": [
{
"name": "NENHUM"
}
]
}
],
"otherFees": [
{
"name": "Taxa de Serviço",
"type": "SERVICE_FEE",
"receivedBy": "MERCHANT",
"receiverDocument": "",
"price": {
"value": 6.1,
"currency": "R$"
},
"observation": ""
}
],
"discounts": [],
"total": {
"items": 61,
"otherFees": 6.1,
"discount": 0,
"orderAmount": 67.1
},
"delivery": null,
"takeout": null,
"indoor": null,
"table": {
"waiterCode": 9999,
"tableNumber": 20,
"chairNumber": 0
},
"card": null
}
]
}
|
Nota: HTTP Status Code = 226 IM Used Sua solicitação foi retornada com sucesso. Campos obrigatórios Campos marcaos com o * (asteristico) o seu preenchimento é obrigatório
04. ERROSA 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": "a9cad639-5775-4f8a-917b-2ae0f2d284d8",
"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": "INDOOR",
"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 entendeu a requisição do cliente, mas está se recusando a cumpri-la. Isso geralmente ocorre quando o cliente não possui permissões adequadas para acessar o recurso solicitado, mesmo que as credenciais de autenticação tenham sido fornecidas corretamente.
URL enviada incorreda
JSON Response para URL incorreta
1 2 3 | {
"message": "Missing Authentication Token"
}
|
Nota: HTTP Status Code = 403 - Forbidden O cliente enviou a URL incorreta para solicitação da requisição.
- 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 URL fornecido está incorreto, o recurso foi removido permanentemente ou não está disponível no momento da requisição. Integration Hub Code Inválido 1 2 3 4 5 | {
"integrationHubServiceId": "f1b874af-96ab-4535-aac3-25118fe586cc",
"orderKeyType": "INDOOR",
"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 Uma ou mais informações enviadas não puderam ser encontradas.
- HTTP Status Code 412 - Precondition Failed VERIFICAR COM O KENNEDY
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": "INDOOR",
"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": "INDOOR",
"orderKey": ["20", "40"]
}
|
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 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 | {
"success": true,
"error": null,
"integrationHubServiceId": "7d7d205b-83ba-47c5-91ba-e4f32a2bbd9e",
"orderKeyType": "INDOOR",
"orderKey": [
"20",
"40"
],
"consumption": [
{
"orderId": "f5fee4b4-c13f-482d-8e98-0dd840629e02",
"type": "TABLE",
"createdAt": "2024-06-28 17:27:20",
"customerName": "TOTVS",
"items": [
{
"id": "39735945",
"index": "4",
"name": "MARACUJA",
"externalCode": "58",
"unit": "UNIT",
"ean": "",
"quantity": 1,
"specialInstructions": "TESTE",
"unitPrice": {
"value": 61,
"currency": "R$"
},
"optionsPrice": {
"value": 0,
"currency": "R$"
},
"totalPrice": {
"value": 61,
"currency": "R$"
},
"options": null,
"productionPoint": [
{
"name": "NENHUM"
}
]
}
],
"otherFees": [
{
"name": "Taxa de Serviço",
"type": "SERVICE_FEE",
"receivedBy": "MERCHANT",
"receiverDocument": "",
"price": {
"value": 6.1,
"currency": "R$"
},
"observation": ""
}
],
"discounts": [],
"total": {
"items": 61,
"otherFees": 6.1,
"discount": 0,
"orderAmount": 67.1
},
"delivery": null,
"takeout": null,
"indoor": null,
"table": {
"waiterCode": 9999,
"tableNumber": 20,
"chairNumber": 0
},
"card": null
}
]
}
|
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
|
|