Card |
---|
| 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. ENDPOINTChave | 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 | Bloco de código |
---|
firstline | 0 |
---|
title | Corpo da Requisição |
---|
linenumbers | true |
---|
| {
"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.
Bloco de código |
---|
language | c# |
---|
firstline | 0 |
---|
title | Resposta New Order 404 |
---|
linenumbers | true |
---|
| {
"errors": [
{
"key": "string",
"message": "string"
}
]
} |
|
|
Card |
---|
| 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
|
Card |
---|
| CONTEÚDO
01. VISÃO GERALO endpoint Get Status da API Order Mesa é utilizado para o envio do resultado da solicitação de status dos pedidos do Ponto de Venda (PDV). Este endpoint recebe o mesmo corpo de resposta obtido pelo endpoint GetOrderStatus - API Order Mesa - Get Status
02. ENDPOINT
03. EXEMPLO DE UTILIZAÇÃO3.1 - Request - O corpo da requisição enviada para retornar todos os status dos pedidos é o seguinte: Ao enviar essa requisição, o sistema processa a solicitação e retorna o status atualizado de todos os pedidos. O corpo da requisição contém informações essenciais que permitem ao sistema identificar e consultar o status de cada pedido. Corpo da requisição no JSO
Status Code | Corpo da requisição | Legenda |
---|
200 | Bloco de código |
---|
firstline | 0 |
---|
title | Corpo da Requisição |
---|
linenumbers | true |
---|
| {
"integrationHubServiceId": "7354ffcc-3d8b-4b5e-b345-2ff1f31c960b",
"success": true,
"lastestUpdatedStatus": "string",
"orderKey": "string",
"orderKeyType": "INDOOR",
"items": [
{
"id": "string",
"status": {
"code": 0,
"description": "string"
},
"deliveryAgent": "string",
"deliveryDateTime": "string",
"cancellationReason": "string"
}
],
"error": {
"code": "string",
"message": "string"
}
} |
| Campo | Tipo | Legenda |
---|
{ IntegrationHubServiceId | String | O identificador exclusivo do pedido. O ID do pedido é gerado pelo Aplicativo de Pedidos. | success | Boolean | Indica se houve sucesso. | lastestUpdateStatus | String | Última atualização do status do pedido - Formato: AAAA-MM-DD h:m:s. | orderKey | String | Identificador do pedido. | OrderKeyType | String | Procurar pelo order id ou pelo tipo indoor. Enum: [ INDOOR, ORDER_ID ]. | items | Lista de Objeto | Lista os items. | id | String | Identificador do item. | status | Objeto | Objeto que indica o status do pedido. | code | Number | Código do Status. | description | String | Descrição do Status. | deliveryAgent | String | Nome do entregador, Obrigatório quando o pedido é delivery. | deliveryDateTime | String | Data do momento da entrega - Formato: AAAA-MM-DD h:m:s. | cancellationReason | String | Motivo do cancelamento. | error | Objeto | Objeto com dados de erro. | code | String | Código do erro. | message | String | Mensagem do erro. |
|
Nota: HTTP Status Code = 226 IM Used
Status enviado com sucesso.
3.2 - Request - Enviando o pedido para obter o status de um pedido específico: Essa requisição é utilizada para consultar o status de um único pedido. Ao enviar o identificador do pedido, o sistema retornará o status detalhado do pedido solicitado, incluindo todas as informações relacionadas ao seu processamento. Corpo da requisição no JSON Bloco de código |
---|
firstline | 0 |
---|
title | Corpo da requisição |
---|
linenumbers | true |
---|
| {
"integrationHubServiceId": "7354ffcc-3d8b-4b5e-b345-2ff1f31c960b",
"success": true,
"lastestUpdatedStatus": "string",
"orderKey": ["1"],
"orderKeyType": "INDOOR",
"items": [
{
"id": "string",
"status": {
"code": 0,
"description": "string"
},
"deliveryAgent": "string",
"deliveryDateTime": "string",
"cancellationReason": "string"
}
],
"error": {
"code": "string",
"message": "string"
}
} |
Nota: HTTP Status Code = 226 IM Used Status enviado com sucesso.
3.3 - Request - Corpo da requisição para obter o status de múltiplos pedidos: Ao utilizar essa requisição, é possível consultar o status atualizado de vários pedidos simultaneamente. O sistema retornará informações detalhadas sobre cada pedido, permitindo uma visão geral do processamento de múltiplas solicitações ao mesmo tempo. Corpo da requisição no JSON
Bloco de código |
---|
firstline | 0 |
---|
title | Corpo da requisição |
---|
linenumbers | true |
---|
| {
"integrationHubServiceId": "7354ffcc-3d8b-4b5e-b345-2ff1f31c960b",
"success": true,
"lastestUpdatedStatus": "string",
"orderKey": ["1", "2"],
"orderKeyType": "INDOOR",
"items": [
{
"id": "1",
"status": {
"code": 001,
"description": "string"
},
"deliveryAgent": "string",
"deliveryDateTime": "string",
"cancellationReason": "string"
},
{
"id": "2",
"status": {
"code": 002,
"description": "string"
},
"deliveryAgent": "string",
"deliveryDateTime": "string",
"cancellationReason": "string"
}
],
"error": {
"code": "string",
"message": "string"
}
} |
Nota: HTTP Status Code = 226 IM Used Status enviado com sucesso. Dica O corpo da requisição enviada é o mesmo que o corpo da resposta obtida através do endpoint GetOrderStatus .
Dicionário de Requisição Essa requisição permite verificar o o status atualizado do(s) pedido(s), retornando informações de acordo com o corpo da response obtida atráves do endpoint getStatus.
- Detalhamento dos campos da requisição:
Campo | Valor | Descrição |
---|
integrationHubServiceId * | string | Chave de identificação da integração no hub | success * | boolean | Indica se a operação foi bem-sucedida | true | A operação foi concluída com sucesso e o status dos pedidos será retornado | false | A operação falhou, com detalhes fornecidos no campo error | lastestUpdatedStatus * | string | Data e hora da última atualização do status dos pedidos | orderKey * | array | Lista de identificadores dos pedidos (neste caso, o número da mesa) | orderKeyType * | enum | Tipo de chave do pedido, que pode ser mesa, cartão ou ID do pedido | items * | array | Lista de itens associados ao pedido, detalhando o status de cada item |
- Itens associados detalhados:
Campo | Valor | Descrição |
---|
id * | string | Identificador do item dentro do pedido | status * | objeto | Objeto contendo informações detalhadas sobre o status do item | deliveryAgent | string | Agente responsável pela entrega (obrigatório para pedidos de entrega) | deliveryDateTime | string | Data e hora em que a entrega foi realizada (obrigatório para pedidos de entrega) | cancellationReason | string | Motivo do cancelamento do item (se o item foi cancelado) |
- Estrutura do Enum Items - Status
Campo | Valor | Descrição |
---|
code * | number | Código do status | description * | string | Descrição do status |
- Erro (quando
success é false):
Campo | Valor | Descrição |
---|
code * | código do erro | Identifica o tipo de erro ocorrido | message * | mensagem descritiva | Detalha a falha e fornece mais informações sobre o erro |
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. Corpo da requisição no JSON faltando campos 1 2 3 4 5 6 7 8 9 10 11 12 13 | {
"integrationHubServiceId": "5ffec6b8-1c55-4a7d-985f-12d13685b5538",
"success": true,
"orderStatus": [
{
"id": "bd768726-91ef-4161-b35b-4e28e711dfd8",
"status": {
"code": 1,
"description": "Em Preparo"
}
}
]
}
|
Resposta do JSON da requisição
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | {
"errors": [
{
"key": "integrationHubServiceId",
"message": "body.integrationHubServiceId must be a valid GUID"
},
{
"key": "orderKeyType",
"message": "body.orderKeyType is required"
},
{
"key": "orderKey",
"message": "body.orderKey is required"
}
]
}
|
3.2 - JSON enviado com a ausência de um ou mais campos obrigatórios: Se a requisição estiver faltando um ou mais campos obrigatórios, o servidor responderá com um erro 400. Cada campo requerido deve estar presente para que a operação seja processada corretamente. JSON Inválido 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": "644a4d3c-6d2c-4154-a089-c1ab3fd89151",
"orderKeyType": "String",
"orderKey": [
"22"
],
"lastestUpdatedStatus": "2024-07-16 15:48:30",
"items": [
{
"id": "975dbf9b-a11d-4efe-b491-197ee123bfe4",
"status": {
"code": 504,
"description": "OPEN_TABLE"
},
"deliveryAgent": null,
"deliveryDateTime": null,
"cancellationReason": null,
"tableCardNumber": "22"
}
]
}
|
Resposta do JSON da requisição
1 2 3 4 5 6 7 8 | {
"errors": [
{
"key": "orderKeyType",
"message": "body.orderKeyType must be one of [ORDER_ID, TABLE, CARD]"
}
]
}
|
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
Corpo da requisição no JSON
1 2 3 4 5 | {
"integrationHubServiceId": "1188f64e-3ce8-45be-882c-6c8dcfcb70d4",
"orderKeyType": "TABLE",
"orderKey": ["09"]
}
|
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 ocorrer quando o token da requisição da autenticação, é diferente do token gerado utilizando o integrationHubId diferente do corpo da requisição.
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 | {
"success": true,
"error": null,
"integrationHubServiceId": "f1b874af-96ab-4535-aac3-25118fe586cc",
"orderKeyType": "TABLE",
"orderKey": [
"19"
],
"lastestUpdatedStatus": "2024-07-15 17:02:35",
"items": [
{
"id": "406a2a14-ac79-422a-b667-769fa1d2a9a0",
"status": {
"code": 505,
"description": "TABLE_IN_USE"
},
"deliveryAgent": null,
"deliveryDateTime": null,
"cancellationReason": null,
"tableCardNumber": "19"
}
]
}
|
Resposta do JSON da requisição
1 2 3 4 5 6 7 8 | {
"errors": [
{
"key": "orderKeyType_orderKey",
"message": "Order status for: TABLE_22 not found"
}
]
}
|
Nota: HTTP Status Code = 404 - Not Found Uma ou mais informações enviadas não puderam ser encontradas.
05. LINKS
|
Card |
---|
| 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
|
Card |
---|
| CONTEÚDO
01. VISÃO GERALO endpoint Status da API Order Mesa é utilizado para envio do resultado da solicitação de consumo do pedido através do Ponto de Venda (PDV). Este endpoint recebe o mesmo corpo de resposta obtida pelo endpoint GetConsumption - API Order Mesa - Get Consumption
02. ENDPOINT
03. EXEMPLO DE UTILIZAÇÃO3.1. Request - Corpo da requisição para retornar o consumo específico: Essa requisição é enviada para obter detalhes sobre o consumo de um pedido específico, retornando as informações relevantes do consumo solicitado. Corpo da requisição no JSON Status Code | Body | Legendas |
---|
200 | Bloco de código |
---|
firstline | 0 |
---|
linenumbers | true |
---|
| {
"integrationHubServiceId": "7354ffcc-3d8b-4b5e-b345-2ff1f31c960b",
"orderKeyType": "INDOOR",
"orderKey": [
"29"
],
"success": true,
"consumptions": [
{
"type": "INDOOR",
"createdAt": "2025-01-09T17:35:00",
"customerName": "Testinho",
"items": [
{
"id": "283",
"index": "283",
"name": "A FRANCESA",
"externalCode": "1",
"unit": "UN",
"ean": "string",
"quantity": 1,
"specialInstructions": "teste",
"unitPrice": {
"value": 69.9,
"currency": "R$"
},
"price": {
"value": 69.9,
"currency": "R$"
},
"originalPrice": {
"value": 69.9,
"currency": "R$"
},
"optionsPrice": {
"value": 0,
"currency": "R$"
},
"totalPrice": {
"value": 69.9,
"currency": "R$"
},
"indoor": {
"productionPoint": "string"
},
"options": []
}
],
"otherFees": [],
"discounts": [],
"total": {
"itemsPrice": {
"value": 0,
"currency": "string"
},
"otherFees": {
"value": 0,
"currency": "string"
},
"discount": {
"value": 0,
"currency": "string"
},
"orderAmount": {
"value": 0,
"currency": "string"
}
},
"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"
}
}
],
"error": {
"code": "string",
"message": "string"
}
} |
| Campo | Tipo | Valor |
---|
integrationHubServiceId | String | Identificador da integração | orderKeyType | String | Tipo da orderKey do pedido. Enum: [ "INDOOR","ORDER_ID"] | orderKey | Lista de String | Lista de key que vinculam o pedido. | success | Boolean | Indica se teve sucesso ou não. | consumptions | Lista de Objeto | Lista com os objetos da consumação. | type | String | tipo do pedido. | createdAt | String | data de criação desse pedido. Formato: AAAA-MM-DDThh:mm:ss | customerName | String | Nome do cliente. | items | Lista de Objeto | Lista com os objetos dos items do pedido. | id | String | identificado do produto. | index | String | Index de exibição no PDV. | name | String | nome do produto no PDV. | externalCode | 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 de barras do produto. | quantity | Number | Quantidade do produto. | specialInstructions | String | Instruções extras do pedido. | 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 | Objeto que contém o dado de quando o pedido for INDOOR. | productionPoint | String | Indica o ponto de produção que o pedido foi feito. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Nota: HTTP Status Code = 226 IM Used A solicitação foi processada com sucesso e o resultado foi retornado conforme esperado.
3.2. Request - Corpo da requisição para obter o status de múltiplos pedidos: Essa requisição é utilizada para consultar o status atualizado de vários pedidos simultaneamente, retornando as informações detalhadas de cada pedido solicitado. Corpo da requisição no JSON 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 | {
"success": true,
"error": null,
"integrationHubServiceId": "644a4d3c-6d2c-4154-a089-c1ab3fd8915",
"orderKeyType": "TABLE",
"orderKey": [
"06",
"19"
],
"consumption": [
{
"orderId": "c5c1bf93-d112-4f4c-af3b-450b39519e12",
"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": "644a4d3c-6d2c-4154-a089-c1ab3fd89151",
"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 Consumo enviado com sucesso..
Dica O corpo da requisição enviada é o mesmo que o corpo da resposta obtida através do endpoint GetConsumption .
Dicionário da Request
O endpoint Consumption retorna informações sobre o consumo, utilizando o como corpo da requisição a resposta do status code 226 do endpoint API Order Mesa - Get Consumption. O endpoint Consumption permite consultar os dados de consumo de uma mesa ou várias mesas. Ele retorna informações detalhadas sobre os itens pedidos, preços e outros dados relevantes, facilitando o gerenciamento dos consumos em ambientes de atendimento.
- Estrutura OrderConsumption:
Campo | Valor | Descrição |
---|
integrationHubServiceId * | string | Identificador único da integração | orderKeyType * | enum | Tipo de chave do pedido (veja na tabela orderKeyType) | orderKey * | array | Chave do pedido correspondente | success * | boolean | Indica se a operação foi bem-sucedida | consumptions | array | Detalhes dos consumos relacionados ao pedido. (veja na tabela consumptios) | error | array | O erro é necessário quando o sucesso é falso. (veja na tabela de error) |
- Estrutura Consumption (dentro de
consumptions ):
Campo | Valor | Descrição |
---|
type * | enum | Tipo do consumo (veja na tabela type) | createdAt * | string | Data e hora da criação do pedidos | customerName * | string | Nome do cliente | items * | array | Itens do pedido (veja na tabela de items) | ortherFess | array | Outras taxas que podem ser aplicadas (veja na tabela otherFees) | discounts | array | Quaisquer descontos que possam ser aplicados (veja na tabela discounts) | total * | array | Conjunto de campos com a soma dos valores descritos anteriormente no pedido (veja na tabela total) | delivery | array | Informações para pedidos DELIVERY. OBRIGATÓRIO se o tipo escolhido for DELIVERY. (veja tabela delivery) | takeout | array | Informações para pedidos TAKEOUT. OBRIGATÓRIO se o tipo escolhido for TAKEOUT (veja na tabela takeout) | table | array | Informações para pedidos de TABLE. OBRIGATÓRIO se o tipo escolhido for TABLE (veja na tabela table) | card | array | Informações para pedidos CARD. OBRIGATÓRIO se o tipo escolhido for CARTÃO (veja na tabela de card) | error | array | Erro é necessário quando o sucesso é falso (veja tabela de error) |
- Estrutura Consumption (dentro de
items ):
Campo | Valor | Descrição |
---|
id * | string | Identificador único do item | index | string | Posição do item (opcional) | name * | string | Nome do produto | externalCode * | string | Código externo do produto (opcional) | unit * | string | Unidade de medida do item (veja na tabela unit) | ean | string | Código de barras EAN do item (opcional) | quantity * | number | Quantidade de itens | specialInstructions | string | Instruções especiais sobre o item (opcional) | unitPrice * | array | Preço por unidade, considerando 4 casas decimais (veja tabela de unitPrice) | originalPrice | array | Preço original do produto (opcional) (veja tabela de originalPrice) | optionsPrice | array | Preço total das opções (opcional) (veja tabela de optionsPrice) | totalPrice * | number | Preço total do item (veja tabela de totalPrice) | options | array | Extras opcionais escolhidos pelo consumidor. (veja na tabela de options) | productionPoint * | string | Ponto de produção do produto |
- Estrutura Consumption - items (dentro de
options ):
Campo | Valor | Descrição |
---|
index | string | Posição da opção (opcional) | id * | string | Identificador único da opção | name * | string | Nome da opção | externalCode * | string | Código do produto externo | unit * | enum | Unidade de medida da opção (veja na tabela unit) | ean | string | EAN é o padrão de código de barras usado nos itens. | quantity * | number | Quantidade de itens opcionais | unitPrice * | array | Preço por unidade, considerando 4 casas decimais (veja tabela de unitPrice). | originalPrice | array | Preço original do produto (opcional) (veja tabela de originalPrice). | totalPrice * | array | Preço total da opção (veja tabela de totalPrice) | specialInstructions | string | Instruções especiais sobre a opção (opcional) | productionPoint * | string | Ponto de produção da opção (opcional) |
- Estrutura Consumption (dentro de
otherFees ):
Campo | Valor | Descrição |
---|
name * | string | Nome relacionado às taxas | type * | enum | Tipo da taxa (veja na tabela type) | receivedBy * | enum | Pedido recebido por (veja na tabela receivedBy) | receiverDocument | string | Documento do receptor de outras taxas | price * | array | Preço da taxa(veja tabela de price). | observation | string | Observação de outras taxas. Quaisquer comentários extras |
- Estrutura Consumption (dentro de
discounts ):
Campo | Valor | Descrição |
---|
value * | number | Valor do desconto | target * | enum | Destino do desconto (vejna na tabela de cart) | targetId | string | Identificador do alvo (obrigatório quando target = ITEM). | sponsorshipValues * | array | Valores patrocinados por qualquer uma das partes. A soma dos valores listados neste atributo deverá corresponder ao valor informado no atributo valor acima (veja na tabela sponsorshipValues) |
- Estrutura Consumption (dentro de
total ):
Campo | Valor | Descrição |
---|
items * | number | Soma do preço total dos itens listados no atributo itens | otherFees | number | Soma do valor total das demais taxas listadas no atributo otherFees. Se não houver, use 0 | discount | number | Soma de quaisquer descontos que possam estar listados no atributo descontos. Se não houver, use 0 | orderAmount * | number | O valor final da encomenda (itens + outrasTaxas +Taxas adicionais +Taxa de entrega - descontos) | additionalFees | number | Soma do valor total das taxas adicionais listadas no atributo adicionalFees. Se não houver, use 0 | deliveryFee | number | Soma do valor total da taxa de entrega listada no atributo deliveryFee. Se não houver, use 0 |
- Estrutura Consumption (dentro de
delevery ):
Campo | Valor | Descrição |
---|
deliveredBy * | enum | Solicitar entrega por (veja na tabela de deliveredBy) | deliveryAddress * | array | O endereço onde o pedido será entregue (veja na tabela deliveryAddress) | estimatedDeliveryDateTime * | string | Data e hora estimada de entrega. A mesma data mostrada ao cliente, na interface do Aplicativo de Pedidos | deliveryDateTime | string | Data de entrega. A data e hora em que a entrega realmente ocorreu. |
Tabela de auxiliares e enumerações - Estrutura Enumeração orderKeyType
Enum | Valor | Descrição |
---|
TABLE | TABLE | Identifica o pedido pelo número da mesa | CARD | CARD | Identifica o pedido pelo número do cartão | ORDER_ID | ORDER_ID | Identifica o pedido por um ID exclusivo |
- Estrutura Consumption (dentro de
type ):
Campo | Valor | Descrição |
---|
value | number | Valor do preço | currency | string | Código da moeda ISO 4217 |
- Estrutura Enumeração Consumption - items (dentro de
unit ):
Enum | Valor | Descrição |
---|
UN | UN | Unidade de medida simples | KG | KG | Quilograma | L | L | Litro | OZ | OZ | Onça | LB | LB | Libra | GAL | GAL | Galão |
- Estrutura Consumption - items (dentro de
unitPrice ):
Campo | Valor | Descrição |
---|
value * | number | Valor do preço | currency * | string | Código da moeda ISO 4217 |
- Estrutura Consumption - items (dentro de
originalPrice ):
Campo | Valor | Descrição |
---|
value * | number | Valor do preço | currency * | string | Código da moeda ISO 4217 |
- Estrutura Consumption - items (dentro de
optionsPrice ):
Campo | Valor | Descrição |
---|
value * | number | Valor do preço | currency * | string | Código da moeda ISO 4217 |
- Estrutura Consumption - items (dentro de
totalPrice ):
Campo | Valor | Descrição |
---|
value * | number | Valor do preço | currency * | string | Código da moeda ISO 4217 |
- Estrutura Enumeração Consumption - otherFees (dentro de
type ):
Enum | Valor | Descrição |
---|
DELIVERY_FEE | DELIVERY_FEE | Taxa de entrega | SERVICE_FEE | SERVICE_FEE | Taxa de serviço | TIP | TIP | Gorjeta |
- Estrutura Enumeração Consumption - otherFees (dentro de
receivedBy ):
Enum | Valor | Descrição |
---|
MARKETPLACE | MARKETPLACE | Entidade que recebeu o pedido é o marketplace | MERCHANT | MERCHANT | Entidade que recebeu o pedido é o comerciante | LOGISTIC_SERVICES | LOGISTIC_SERVICES | Entidade que recebeu o pedido é a logística |
- Estrutura Enumeração Consumption - delivery (dentro de
deliveredBy ):
Enum | Valor | Descrição |
---|
MARKETPLACE | MARKETPLACE | Entidade responsável pela entrega é o marketplace | MERCHANT | MERCHANT | Entidade responsável pela entrega é o comerciante |
- Estrutura Consumption - otherFees (dentro de
price ):
Campo | Valor | Descrição |
---|
value * | number | Valor do preço | currency * | string | Código da moeda ISO 4217 |
- Estrutura Enumeração Consumption - discounts(dentro de
sponsorshipValues ):
Enum | Valor | Descrição |
---|
MARKETPLACE | MARKETPLACE | Entidade responsável pela entrega é o marketplace | MERCHANT | MERCHANT | Entidade responsável pela entrega é o comerciante |
- Estrutura Consumption - delivery (dentro de
deliveryAddress ):
Campo | Valor | Descição |
---|
country * | string | Tipo de pedido País do endereço de entrega. *Código de país ISO 3166-1 alfa-2 de duas letras. | state * | string | Subdivisão de estado ou país. É recomendado (mas não obrigatório) que você use a representação ISO 3166-2 | city * | string | Nome da cidade | district * | string | Bairro ou Distrito | street * | string | Nome da rua | number * | string | Número da rua | complement | string | Complemento de endereço | reference * | string | Referência de endereço | formattedAddress * | string | Texto de endereço totalmente formatado | postalCode * | string | Código postal | coordinates * | array | Tipo de pedido Endereço de entrega Coordenadas latitude (veja na tabela coordinates) |
- Estrutura Consumption - delivery - deliveryAddress (dentro de
coordinates ):
Campo | Valor | Descrição |
---|
latitude * | number | Latitude em graus. Os valores estão restritos ao intervalo [[-90, 90]] | longitude * | number | Longitude em graus. Os valores estão restritos ao intervalo [[-180, 180]] |
- Estrutura Consumption (dentro de
takeout ):
Campo | Valor | Descrição |
---|
mode * | enum | Modo de pedido para viagem (veja na tabela mode) | takeoutDateTime * | string | Data e hora em que o pedido estará pronto. Pode ser calculado pelo Aplicativo de Pedidos utilizando o tempo médio de preparo dos pratos. O padrão é o mesmo horário de criação do pedido |
- Estrutura Enumeração Consumption - takeout (dentro de
mode ):
Campo | Valor | Descrição |
---|
DEFAULT* | DEFAULT | Indica que o pedido será retirado pelo cliente sem um local específico de coleta, ou seja, de maneira padrão no estabelecimento | PICKUP_AREA* | PICKUP_AREA | Indica que o pedido será retirado em uma área de coleta designada dentro do estabelecimento |
- Estrutura Consumption (dentro de
table ):
Campo | Valor | Descrição |
---|
waiterCode * | number | O identificador do garçom | tableNumber * | number | O identificador da tabela | chairNumber * | number | O identificador do presidente |
- Estrutura Consumption (dentro de
card ):
Campo | Valor | Descrição |
---|
waiterCode * | number | O identificador do garçom | tableNumber * | number | O identificador da tabela | deliveryTableNumber * | number | O identificador da mesa |
Campo | Valor | Descrição |
---|
code * | string | Código de erro | message * | string | Mensagem de erro |
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 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 | {
"success": true,
"error": null,
"integrationHubServiceId": "644a4d3c-6d2c-4154-a089-c1ab3fd89151",
"orderKeyType": "String",
"orderKey": [
"06"
],
"consumption": [
{
"orderId": "542e6b3e-8e63-4498-bdc8-1e334a22012e",
"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
}
]
}
|
Resposta do JSON da requisição
1 2 3 4 5 6 7 8 | {
"errors": [
{
"key": "orderKeyType",
"message": "body.orderKeyType must be one of [ORDER_ID, TABLE, CARD]"
}
]
}
|
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 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 | {
"integrationHubServiceId": "644a4d3c-6d2c-4154-a089-c1ab3fd89151",
"orderKeyType": "String",
"orderKey": [
"06"
],
"consumption": [
{
"orderId": "542e6b3e-8e63-4498-bdc8-1e334a22012e",
"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
}
]
}
|
Resposta do JSON da requisição
1 2 3 4 5 6 7 8 | {
"errors": [
{
"key": "success",
"message": "body.success is required"
}
]
}
|
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
Corpo da requisição no JSON
1 2 3 4 5 | {
"integrationHubServiceId": "1188f64e-3ce8-45be-882c-6c8dcfcb70d4",
"orderKeyType": "TABLE",
"orderKey": ["09"]
}
|
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 ocorrer quando o token da requisição da autenticação, é diferente do token gerado utilizando o integrationHubId diferente do corpo da requisição. Corpo da requisição no JSON 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 | {
"success": true,
"error": null,
"integrationHubServiceId": "644a4d3c-6d2c-4154-a089-c1ab3fd891513",
"orderKeyType": "TABLE",
"orderKey": [
"06"
],
"consumption": [
{
"orderId": "542e6b3e-8e63-4498-bdc8-1e334a22012e",
"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
}
]
}
|
Resposta do JSON da requisição
1 2 3 | {
"Message": "User is not authorized to access this resource with an explicit deny"
}
|
Nota: HTTP Status Code = 404 - Not Found Uma ou mais informações enviadas não puderam ser encontradas.
05. LINKS
|
Card |
---|
| CONTEÚDO
01. VISÃO GERAL
Este endpoint é utilizado para obter itens de cancelamento de pedidos por meio de integração do PDV, fornecendo um retorno em formato JSON com os itens cancelados. Obtenha os itens cancelados atribuídos a um ou mais pedidos utilizando o parâmetro orderKeyType , que pode ser ORDER_ID , TABLE ou CARD .
02. ENDPOINT
03. EXEMPLO DE UTILIZAÇÃO
3.1 - Request - Enviando a solicitação para o cancelamento de um pedido específico: Ao fazer essa requisição, o sistema processa a solicitação de cancelamento do pedido indicado. 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 retornada será a seguinte: Após reenviar a requisição, você receberá uma resposta detalhando o status atualizado do processamento do pedido. JSON de resposta do retorno - HTTP Status Code = 208 1 2 3 4 5 6 7 8 | {
"errors": [
{
"key": "orderKeyType_orderKey",
"message": "Order cancelled itens request already exists: INDOOR_22"
}
]
}
|
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 os itens cancelados solicitados.
3.3 - Request - Ao enviar novamente a solicitação, o processamento será realizado conforme a seguinte resposta: Reenviando a requisição, o sistema processará o pedido e retornará uma resposta que reflete o status do processamento realizado.
JSON de resposta do retorno - Status Code = 226
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | {
"success": true,
"error": null,
"integrationHubServiceId": "7056c970-cb11-400f-9d4f-9f30253f3b0b",
"orderKeyType": "INDOOR",
"orderKey": ["22"],
"lastestUpdatedStatus": "2024-07-17 14:21:24",
"items": [
{
"id": "39735945",
"index": "5",
"name": "MARACUJA",
"externalCode": "58",
"quantity": 1,
"cancellationAgent": "ALBINO",
"cancellationDateTime": "2024-07-17 14:19:33",
"cancellationReason": " 55596;",
"tableCardNumber": "22",
"productionPoint": "NENHUM"
}
]
}
|
Nota: HTTP Status Code = 226 IM Used A solicitação foi processada com sucesso e o resultado foi retornado conforme esperado.
3.4 - Request - Enviando o pedido para requisição do cancelamento de múltiplos pedidos: Essa requisição é utilizada para solicitar o cancelamento de diversos pedidos simultaneamente, permitindo que o sistema processe e cancele cada pedido listado de forma eficiente. Corpo da requisição no JSON 1 2 3 4 5 | {
"integrationHubServiceId": "7056c970-cb11-400f-9d4f-9f30253f3b0b",
"orderKeyType": "INDOOR",
"orderKey": ["22", "23"]
}
|
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 retornada será a seguinte: Após reenviar a requisição, você receberá uma resposta detalhando o status atualizado do processamento do pedido. JSON de resposta do retorno - HTTP Status Code = 208 1 2 3 4 5 6 7 8 | {
"errors": [
{
"key": "orderKeyType_orderKey",
"message": "Order cancelled itens request already exists: INDOOR_22,23"
}
]
}
|
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 - Ao enviar novamente a solicitação, o processamento será realizado conforme a seguinte resposta: Reenviando a requisição, o sistema processará o pedido e retornará uma resposta que reflete o status do processamento realizado. 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 | {
"success": true,
"error": null,
"integrationHubServiceId": "7056c970-cb11-400f-9d4f-9f30253f3b0b",
"orderKeyType": "INDOOR",
"orderKey": [
"22",
"23"
],
"lastestUpdatedStatus": "2024-07-17 16:18:40",
"items": [
{
"id": "39735945",
"index": "5",
"name": "MARACUJA",
"externalCode": "58",
"quantity": 1,
"cancellationAgent": "ALBINO",
"cancellationDateTime": "2024-07-17 14:19:33",
"cancellationReason": " 55596;",
"tableCardNumber": "22",
"productionPoint": "NENHUM"
},
{
"id": "3973594011",
"index": "19",
"name": "MARACUJA",
"externalCode": "58",
"quantity": 1,
"cancellationAgent": "ALBINO",
"cancellationDateTime": "2024-07-17 16:04:27",
"cancellationReason": " 55596;",
"tableCardNumber": "23",
"productionPoint": "NENHUM"
}
]
}
|
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. 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": "7056c970-cb11-400f-9d4f-9f30253f3b0b",
"orderKeyType": "string",
"orderKey": ["22"]
}
|
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": "TABLE",
"orderKey": [""]
}
|
JSON Response
1 2 3 4 5 6 7 8 | {
"errors": [
{
"key": "orderKeyType",
"message": "body.orderKeyType must be one of [ORDER_ID, TABLE, CARD]"
}
]
}
|
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": "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 IntegrationHubId incorreto ou inválido
- 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": ["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 24 | {
"success": true,
"error": null,
"integrationHubServiceId": "5ffec6b8-1c55-4a7d-985f-12d13685b553",
"orderKeyType": "INDOOR",
"orderKey": [
"22"
],
"lastestUpdatedStatus": "2024-07-17 17:08:45",
"items": [
{
"id": "39735945",
"index": "5",
"name": "MARACUJA",
"externalCode": "58",
"quantity": 1,
"cancellationAgent": "ALBINO",
"cancellationDateTime": "2024-07-17 14:19:33",
"cancellationReason": " 55596;",
"tableCardNumber": "22",
"productionPoint": "NENHUM"
}
]
}
|
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
|
Card |
---|
| CONTEÚDO
01. VISÃO GERALO endpoint CancelledItems da API Order Mesa é utilizado para envio do resultado da solicitação de itens cancelados de pedido através do Ponto de Vendas (PDV). Este endpoint recebe o mesmo corpo da resposta obtida pelo endpoint GetCancelledItems - API Order Mesa - Get Cancelled Items
02. ENDPOINT
03. EXEMPLO DE UTILIZAÇÃO3.1 - Envio da requisição para obter o status de um item cancelado no PDV: Ao enviar a requisição para este endpoint, o sistema processa a solicitação e retorna o status atualizado de um item cancelado no PDV. O corpo da requisição deve conter os dados obtidos no endpoint getCancelledItems, e a resposta fornecerá as informações detalhadas sobre o cancelamento solicitado. Corpo da requisição no JSON 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | {
"success": true,
"error": null,
"integrationHubServiceId": "5ffec6b8-1c55-4a7d-985f-12d13685b553",
"orderKeyType": "TABLE",
"orderKey": ["22"],
"lastestUpdatedStatus": "2024-07-18 09:26:47",
"items": [
{
"id": "39735945",
"index": "5",
"name": "MARACUJA",
"externalCode": "58",
"quantity": 1,
"cancellationAgent": "ALBINO",
"cancellationDateTime": "2024-07-17 14:19:33",
"cancellationReason": " 55596;",
"tableCardNumber": "22",
"productionPoint": "NENHUM"
}
]
}
|
Nota: HTTP Status Code = 226 IM Used A solicitação foi processada com sucesso e o resultado foi retornado conforme esperado.
3.2. Request - Corpo da requisição para consultar o cancelamento de vários pedidos no PDV específico: Essa requisição é enviada para verificar se os itens de vários pedidos cancelados em um PDV específico foram transmitidos com sucesso. Corpo da requisição no JSON 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 | {
"success": true,
"error": null,
"integrationHubServiceId": "d01ea5cd-7952-4b77-b0ae-ed93aa32e832",
"orderKeyType": "TABLE",
"orderKey": [
"22",
"23"
],
"lastestUpdatedStatus": "2024-07-18 09:48:03",
"items": [
{
"id": "39735945",
"index": "5",
"name": "MARACUJA",
"externalCode": "58",
"quantity": 1,
"cancellationAgent": "ALBINO",
"cancellationDateTime": "2024-07-17 14:19:33",
"cancellationReason": " 55596;",
"tableCardNumber": "22",
"productionPoint": "NENHUM"
},
{
"id": "3973594011",
"index": "19",
"name": "MARACUJA",
"externalCode": "58",
"quantity": 1,
"cancellationAgent": "ALBINO",
"cancellationDateTime": "2024-07-17 16:04:27",
"cancellationReason": " 55596;",
"tableCardNumber": "23",
"productionPoint": "NENHUM"
}
]
}
|
Request O corpo da request preenchida, deverá ser obrigatóriamente o é o mesmo que o corpo do response obtido através do endpoint GetCancelledItems
Dicionário de Request
Informações sobre o campos da request da API cancelledItems, é utilizada para retornar os dados do(s) pedido(s) cancelado(s).
- Estrutura cancelledItems:
Campo | Valor | Descrição |
---|
success * | boolean | Indica se a operação foi bem-sucedida | error | objeto | Contém informações sobre erros, se houver (veja na tabela de error) | integrationHubServiceId * | string | Chave de identificação de integração | orderKeyType * | enum | Tipo da chave do pedido (veja na tabela orderKeyType) | orderKey * | array | Lista de identificadores de pedidos (números de mesa, cartão, ou ID de pedido) | lastestUpdatedStatus * | string (data e hora) | Data e hora da última atualização do status dos pedidos | items * | array | Lista de itens cancelados |
- Enumerações para orderKeyType:
Enum | Valor | Descrição |
---|
TABLE | TABLE | Identifica o pedido pelo número da mesa | CARD | CARD | Identifica o pedido pelo número do cartão | ORDER_ID | ORDER_ID | Identifica o pedido por um ID exclusivo |
- Estrutura cancelledItems (dentro de
item ):
Campo | Valor | Descrição |
---|
id * | string | Identificador do produto no lançamento. | index * | string | Posição do produto no lançamento. | name * | string | Nome do item/produto. | externalCode * | string | Código do produto no PDV integrado. | quantity * | número | Quantidade do item cancelado. | cancellationAgent * | string | Operador responsável pelo cancelamento. | cancellationDateTime * | string (data e hora) | Data e hora do cancelamento. | cancellationReason * | string | Motivo do cancelamento. | tableCardNumber * | string | Número da mesa ou cartão associado ao item cancelado | productionPoint * | string | Ponto de produção relacionado ao item |
Enum | Valor | Descrição |
---|
code * | código do erro | Identifica o código do erro | message * | messagem do erro | Descrição detalhada do erro ocorrido, ex: "body.orderKeyType must be one of [ORDER_ID, TABLE, CARD]" |
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. Corpo da requisição no JSON faltando campos 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 | {
"integrationHubServiceId": "5ffec6b8-1c55-4a7d-985f-12d13685b553",
"orderKeyType": "TABLE",
"orderKey": [
"22",
"23"
],
"lastestUpdatedStatus": "2024-07-18 09:48:03",
"items": [
{
"id": "39735945",
"index": "5",
"name": "MARACUJA",
"externalCode": "58",
"quantity": 1,
"cancellationAgent": "ALBINO",
"cancellationDateTime": "2024-07-17 14:19:33",
"cancellationReason": " 55596;",
"tableCardNumber": "22",
"productionPoint": "NENHUM"
},
{
"id": "3973594011",
"index": "19",
"name": "MARACUJA",
"externalCode": "58",
"quantity": 1,
"cancellationAgent": "ALBINO",
"cancellationDateTime": "2024-07-17 16:04:27",
"cancellationReason": " 55596;",
"tableCardNumber": "23",
"productionPoint": "NENHUM"
}
]
}
|
Resposta do JSON da requisição
1 2 3 4 5 6 7 8 | {
"errors": [
{
"key": "success",
"message": "body.success is required"
}
]
}
|
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 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 | {
"success": true,
"error": null,
"integrationHubServiceId": "5ffec6b8-1c55-4a7d-985f-12d13685b553",
"orderKeyType": "String",
"orderKey": [
"22",
"23"
],
"lastestUpdatedStatus": "2024-07-18 09:48:03",
"items": [
{
"id": "39735945",
"index": "5",
"name": "MARACUJA",
"externalCode": "58",
"quantity": 1,
"cancellationAgent": "ALBINO",
"cancellationDateTime": "2024-07-17 14:19:33",
"cancellationReason": " 55596;",
"tableCardNumber": "22",
"productionPoint": "NENHUM"
},
{
"id": "3973594011",
"index": "19",
"name": "MARACUJA",
"externalCode": "58",
"quantity": 1,
"cancellationAgent": "ALBINO",
"cancellationDateTime": "2024-07-17 16:04:27",
"cancellationReason": " 55596;",
"tableCardNumber": "23",
"productionPoint": "NENHUM"
}
]
}
|
Resposta do JSON da requisição
1 2 3 4 5 6 7 8 | {
"errors": [
{
"key": "orderKeyType",
"message": "body.orderKeyType must be one of [ORDER_ID, TABLE, CARD]"
}
]
}
|
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, por causa do Token de autenticação ausente.
- 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 ocorrer quando o token da requisição da autenticação, é diferente do token gerado utilizando o integrationHubId diferente do corpo da requisição. 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 | {
"success": true,
"error": null,
"integrationHubServiceId": "f1b874af-96ab-4535-aac3-25118fe586cc",
"orderKeyType": "TABLE",
"orderKey": [
"19"
],
"lastestUpdatedStatus": "2024-07-15 17:02:35",
"items": [
{
"id": "406a2a14-ac79-422a-b667-769fa1d2a9a0",
"status": {
"code": 505,
"description": "TABLE_IN_USE"
},
"deliveryAgent": null,
"deliveryDateTime": null,
"cancellationReason": null,
"tableCardNumber": "19"
}
]
}
|
Resposta do JSON da requisição
1 2 3 4 5 6 7 8 | {
"errors": [
{
"key": "orderKeyType_orderKey",
"message": "Order status for: TABLE_22 not found"
}
]
}
|
Nota: HTTP Status Code = 404 - Not Found Uma ou mais informações enviadas não puderam ser encontradas.
05. LINKS
|
Card |
---|
| CONTEÚDO
01. VISÃO GERALEste endpoint é utilizado para realizar o pagamento de pedidos
02. ENDPOINT
03. EXEMPLO DE UTILIZAÇÃO3.1 - Envio da solicitação de processamento de um pagamento: Na primeira requisição, o pagamento é enviado ao sistema e colocado na fila de processamento. Esse é o ponto inicial onde o sistema apenas confirma o recebimento da solicitação e inicia os preparativos para validar e processar o pagamento. A resposta indicará que o pagamento foi registrado e está aguardando processamento.
Payload | Legenda |
---|
JSON Para retornar o status de um pedido específico 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 | {
"integrationHubServiceId": "string",
"orderKeyType": "INDOOR",
"orderKey": "string",
"paymentObject": {
"printOrderAtPos": true,
"generateInvoice": true,
"printInvoiceAtPos": true,
"sendInvoiceEmail": true,
"summaryExtract": true,
"customerDocument": "string",
"documentInReceipt": true,
"numberPersons": 0,
"removeServiceFee": true,
"methods": [
{
"value": 0,
"currency": "string",
"type": "PREPAID",
"method": "CREDIT",
"brand": "VISA",
"methodInfo": "string",
"transaction": {
"authorizationCode": "string",
"acquirerDocument": "string"
},
"changeFor": 0
}
],
"orderAmount": 0,
"discounts": 0,
"fees": 0,
"total": 0
}
}
|
| 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. | paymentObject | Objeto | Objeto com dados de Pagamento | printOrderAtPos | Bool | Indica se o pedido deve ser exibidor no POS | generateInvoice | Bool | Indica se a nota deve ser emitida. | printInvoiceAtPos | Bool | Indica se a nota deve ser exibida no POS. | sendInvoiceEmail | Bool | Indica se a nota deve ser enviada por email | summaryExtract | Bool | Este campo controla se um extrato resumido deve vir junto com o retorno da solicitação | customerDocument | String | customerDocument é obrigatório quando documentInReceipt é true. | documentInReceipt | bool | Indica se o documento do cliente deve aparecer na nota. | numberPerson | Number | Serve para indicar o número de pessoas | removeServiceFee | Bool | Remove a taxa de serviço do total da conta. | methods | Lista de Objeto | Lista dos métodos de pagamentos | value | Number | Valor do pagamento | currency | String | O código de 3 dígitos de moeda seguindo o padrão ISO 4217 . | type | String | Prepaid se o pagamento foi feito através de alguma plataforma, ou pending se for pago na entrega ou à vista, por exemplo. Enum: [ PREPAID, PENDING ] | method | String | Enum: [ CREDIT, DEBIT, MEAL_VOUCHER, FOOD_VOUCHER, DIGITAL_WALLET, PIX, CASH, CREDIT_DEBIT, COUPON, REDEEM, PREPAID_REDEEM, OTHER ] | brand | String | Indica a marca do cartão selecionado no campo método. Este campo só deverá ser preenchido se o método for CREDIT, DEBIT, CREDIT_DEBIT, MEAL_VOUCHER ou FOOD_VOUCHER 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ções adicionais sobre a forma de pagamento. Pode ser utilizado para indicar algumas informações úteis do meio de pagamento escolhido, como o nome da carteira ou um número de autorização. Este campo pode ser utilizado para qualquer método informado, mas é altamente recomendável preenchê-lo quando o método escolhido for OTHER. | 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. | orderAmount | Number | Valor final do pedido | discounts | Number | Total de desconto aplicado. | fees | Number | O valor total de taxas. | total | Number | Valor total dos pedidos após o somatório |
|
Nota: HTTP Status Code = 202 Accepted O seu pedido foi aceite, mas ainda não foi processado, aguarde alguns instantes e contacte o mesmo endereço para obter o resultado do pagamento da encomenda solicitada.
3.2 - Reenvio da requisição para verificação do processamento do pagamento Na segunda requisição, o pagamento já entrou na fase de processamento ativo. O sistema estará validando os dados da transação e realizando a autorização junto às instituições financeiras. O status retornado confirmará que o pagamento está sendo processado, mas ainda não foi concluído. JSON Para retornar o status de um pedido específico 1 2 3 4 5 6 7 8 | {
"errors": [
{
"key": "orderKeyType_orderKey",
"message": "Order Payment request already exists: INDOOR-2"
}
]
}
|
Nota: HTTP Status Code = 208 Already Reported Sua solicitação foi aceita mas ainda não processada, aguarde alguns instantes e procure o status.
3.3 - Reenvio final da requisição com o retorno do processamento e emissão da NFC-e Ao reenviar a requisição, o pagamento terá sido processado com sucesso. O sistema retornará a NFC-e (Nota Fiscal de Consumidor Eletrônica) como comprovante fiscal, confirmando que a transação foi finalizada e concluída com êxito. JSON da resposta do processamento 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 | {
"integrationHubServiceId": "4bac08db-2c6e-4663-a285-d7acfdce579c",
"success": true,
"orderKeyType": "TABLE",
"orderKey": "50",
"paymentObject": {
"printOrderAtPos": true,
"generateInvoice": true,
"printInvoiceAtPos": true,
"sendInvoiceEmail": false,
"summaryExtract": false,
"customerDocument": null,
"documentInReceipt": false,
"numberPersons": 1,
"removeServiceFee": false,
"methods": [
{
"value": 67.1,
"currency": "BRL",
"type": "ONLINE",
"method": "CREDIT",
"methodInfo": "VISA"
}
],
"orderAmount": 61,
"discounts": 0,
"fees": 6.1,
"total": 67.1
},
"invoiceDetails": {
"orderXML": "
<? xml version=\"1.0\" encoding=\"UTF-8\"?>
< nfeProc versao=\"4.00\"
xmlns=\"http://www.portalfiscal.inf.br/nfe\" >
< NFe >
< infNFe versao=\"4.00\" Id=\"NFe35240882373077000171650010004112441194594623\">
< ide >
< cUF >35</ cUF >
< cNF >19459462</ cNF >
< natOp >VENDA</ natOp >
< mod >65</ mod >
< serie >1</ serie >
< nNF >411244</ nNF >
< dhEmi >2024-08-16T15:17:35-03:00</ dhEmi >
< tpNF >1</ tpNF >
< idDest >1</ idDest >
< cMunFG >3539806</ cMunFG >
< tpImp >4</ tpImp >
< tpEmis >1</ tpEmis >
< cDV >3</ cDV >
< tpAmb >2</ tpAmb >
< finNFe >1</ finNFe >
< indFinal >1</ indFinal >
< indPres >1</ indPres >
< procEmi >0</ procEmi >
< verProc >03.2408.</ verProc >
</ ide >
< emit >
< CNPJ >82373077000171</ CNPJ >
< xNome >ALBINO LTDA</ xNome >
< xFant >BOTECO DO ALBINO</ xFant >
< enderEmit >
< xLgr >AMELIA LATURRE</ xLgr >
< nro >100</ nro >
< xBairro >CENTRO</ xBairro >
< cMun >3539806</ cMun >
< xMun >POA</ xMun >
< UF >SP</ UF >
< CEP >13211815</ CEP >
< cPais >1058</ cPais >
< xPais >BRASIL</ xPais >
< fone >4145838800</ fone >
</ enderEmit >
< IE >128571670117</ IE >
< IM >65656565</ IM >
< CRT >3</ CRT >
</ emit >
< det nItem=\"1\">
< prod >
< cProd >058</ cProd >
< cEAN >SEM GTIN</ cEAN >
< xProd >NOTA FISCAL EMITIDA EM AMBIENTE DE HOMOLOGACAO - SEM VALOR FISCAL</ xProd >
< NCM >22021000</ NCM >
< cBenef >PR810000</ cBenef >
< CFOP >5101</ CFOP >
< uCom >UN</ uCom >
< qCom >1.0000</ qCom >
< vUnCom >61.0000</ vUnCom >
< vProd >61.00</ vProd >
< cEANTrib >SEM GTIN</ cEANTrib >
< uTrib >UN</ uTrib >
< qTrib >1.0000</ qTrib >
< vUnTrib >61.0000</ vUnTrib >
< indTot >1</ indTot >
</ prod >
< imposto >
< vTotTrib >19.45</ vTotTrib >
< ICMS >
< ICMS20 >
< orig >0</ orig >
< CST >20</ CST >
< modBC >3</ modBC >
< pRedBC >12.0000</ pRedBC >
< vBC >53.68</ vBC >
< pICMS >18.0000</ pICMS >
< vICMS >9.66</ vICMS >
</ ICMS20 >
</ ICMS >
< PIS >
< PISNT >
< CST >07</ CST >
</ PISNT >
</ PIS >
< COFINS >
< COFINSNT >
< CST >07</ CST >
</ COFINSNT >
</ COFINS >
</ imposto >
</ det >
< det nItem=\"2\">
< prod >
< cProd >999</ cProd >
< cEAN >SEM GTIN</ cEAN >
< xProd >TAXA SERVICO</ xProd >
< NCM >22021000</ NCM >
< CFOP >5102</ CFOP >
< uCom >UN</ uCom >
< qCom >6.1000</ qCom >
< vUnCom >1.0000</ vUnCom >
< vProd >6.10</ vProd >
< cEANTrib >SEM GTIN</ cEANTrib >
< uTrib >UN</ uTrib >
< qTrib >6.1000</ qTrib >
< vUnTrib >1.0000</ vUnTrib >
< indTot >1</ indTot >
</ prod >
< imposto >
< vTotTrib >1.95</ vTotTrib >
< ICMS >
< ICMS00 >
< orig >0</ orig >
< CST >00</ CST >
< modBC >3</ modBC >
< vBC >6.10</ vBC >
< pICMS >3.0000</ pICMS >
< vICMS >0.18</ vICMS >
</ ICMS00 >
</ ICMS >
< PIS >
< PISNT >
< CST >07</ CST >
</ PISNT >
</ PIS >
< COFINS >
< COFINSNT >
< CST >07</ CST >
</ COFINSNT >
</ COFINS >
</ imposto >
</ det >
< total >
< ICMSTot >
< vBC >59.78</ vBC >
< vICMS >9.84</ vICMS >
< vICMSDeson >0.00</ vICMSDeson >
< vFCP >0.00</ vFCP >
< vBCST >0.00</ vBCST >
< vST >0.00</ vST >
< vFCPST >0.00</ vFCPST >
< vFCPSTRet >0.00</ vFCPSTRet >
< vProd >67.10</ vProd >
< vFrete >0.00</ vFrete >
< vSeg >0.00</ vSeg >
< vDesc >0.00</ vDesc >
< vII >0.00</ vII >
< vIPI >0.00</ vIPI >
< vIPIDevol >0.00</ vIPIDevol >
< vPIS >0.00</ vPIS >
< vCOFINS >0.00</ vCOFINS >
< vOutro >0.00</ vOutro >
< vNF >67.10</ vNF >
< vTotTrib >21.40</ vTotTrib >
</ ICMSTot >
</ total >
< transp >
< modFrete >9</ modFrete >
</ transp >
< pag >
< detPag >
< indPag >0</ indPag >
< tPag >03</ tPag >
< vPag >67.10</ vPag >
< card >
< tpIntegra >2</ tpIntegra >
</ card >
</ detPag >
< vTroco >0.00</ vTroco >
</ pag >
< infAdic >
< infCpl >Mesa: 50 Pedido:48 TOTVS CHEF Aplicativo: TOTVS Chef 03.2408. Serie: 96736041 Valor aproximado dos tributos deste cupom: Federal: R$ 9.32 Estadual: R$ 12.08 Municipal: R$ 0.00 Fonte IBPT/empresometro.com.br SP B047CD</ infCpl >
< obsCont xCampo=\"Series\">
< xTexto >MDAxMDAwNDExMjQ0MDAxMDAwNDExMjQ0</ xTexto >
</ obsCont >
</ infAdic >
< infRespTec >
< CNPJ >82373077000171</ CNPJ >
< xContato >Renato Alves</ xContato >
< email >resp_tecnico_dfe_varejo@totvs.com.br</ email >
< fone >1120997271</ fone >
</ infRespTec >
</ infNFe >
< infNFeSupl >
< qrCode >
<![CDATA[https://www.homologacao.nfce.fazenda.sp.gov.br/qrcode?p=35240882373077000171650010004112441194594623|2|2|3|8D40911388AD28F90084AE3719A34693E143BFC3]]>
</ qrCode >
< urlChave >https://www.homologacao.nfce.fazenda.sp.gov.br/consulta</ urlChave >
</ infNFeSupl >
< Signature
xmlns=\"http://www.w3.org/2000/09/xmldsig#\">
< SignedInfo >
< CanonicalizationMethod Algorithm=\"http://www.w3.org/TR/2001/REC-xml-c14n-20010315\"/>
< SignatureMethod Algorithm=\"http://www.w3.org/2000/09/xmldsig#rsa-sha1\"/>
< Reference URI=\"#NFe35240882373077000171650010004112441194594623\">
< Transforms >
< Transform Algorithm=\"http://www.w3.org/2000/09/xmldsig#enveloped-signature\"/>
< Transform Algorithm=\"http://www.w3.org/TR/2001/REC-xml-c14n-20010315\"/>
</ Transforms >
< DigestMethod Algorithm=\"http://www.w3.org/2000/09/xmldsig#sha1\"/>
< DigestValue >MXavema7a33mkklhtGM9J06sZG0=</ DigestValue >
</ Reference >
</ SignedInfo >
< SignatureValue >E231EM9ovdpJzgrXNoM0cNxnmrJ11uvRJqlWHtIEZPqYFoCE89vQ/H9ZI2+XjBsaqFzjBzM/Q0MaeACVb8/6pboktVvUc51dFlsc43ZE29btX7USJveK17XOUvZB/vQ3ig7nEnPbiQUI/fJHwUaTyhZx4IUNyOKBp9mHoMIyKcrsMkVcsOBRvz1TW3w5deoLVpcYk3hiqeNzax00wGZqhJqE0kGEyayCmN6By5WkzBvOuJd388R6ZX28a2ABekUVOwv7XlkVon7QhqXm47umON7sR5ksvQ2Op+OKxL8NlzKeTjb4AG6SwRitAJ6XHCMuN9pl3ZTOTmGHdF8e7jB77Q==</ SignatureValue >
< KeyInfo >
< X509Data >
< X509Certificate >MIIH5DCCBcygAwIBAgIUEU0TcJfzT1nRO/DUHjQaoGrv4vQwDQYJKoZIhvcNAQELBQAwejELMAkGA1UEBhMCQlIxEzARBgNVBAoTCklDUC1CcmFzaWwxNjA0BgNVBAsTLVNlY3JldGFyaWEgZGEgUmVjZWl0YSBGZWRlcmFsIGRvIEJyYXNpbCAtIFJGQjEeMBwGA1UEAxMVQUMgRElHSVRBTFNJR04gUkZCIEczMB4XDTIzMDkxMTE2NTY0NVoXDTI0MDkxMTE2NTY0NFowggEAMQswCQYDVQQGEwJCUjETMBEGA1UECgwKSUNQLUJyYXNpbDELMAkGA1UECAwCU1AxEjAQBgNVBAcMCVNhbyBQYXVsbzE2MDQGA1UECwwtU2VjcmV0YXJpYSBkYSBSZWNlaXRhIEZlZGVyYWwgZG8gQnJhc2lsIC0gUkZCMRYwFAYDVQQLDA1SRkIgZS1DTlBKIEExMRcwFQYDVQQLDA4yNDE4MTI1MzAwMDE3NzETMBEGA1UECwwKcHJlc2VuY2lhbDE9MDsGA1UEAww0VE9UVlMgTEFSR0UgRU5URVJQUklTRSBURUNOT0xPR0lBIFMgQTo4MjM3MzA3NzAwMDE3MTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKpuos2YqOPC3XUCl1CiFuCYT9wgEc9Et2om5idQt2/NCZPNaLQrbHC9yGTZrRZbYi28J52pXoWMlAl8nqindCUaxKbnBrdt6tQ/6wMj3bDYBg5eStD9gCAIATMERo/8RrD6G5RkUrrGLKvSoSwKkoF80tRhSbjYNkKpHwy8tmG0mTm1TTZzbs3OPR1nQXtMDxv0BED2Lydi2bIYCkKK45IGHHpsnE3VxP+XymnYK0y7D1s5pY2SxWT9lNsrNrfclP9UpYUt7wyB4yoh80lEb0o9GnoBf6zba0jXrxUtzo25SCVe/2rKyiSDyEprvUGgh0X36KCg03plBo/fIGp4Ck0CAwEAAaOCAtgwggLUMAkGA1UdEwQCMAAwHwYDVR0jBBgwFoAU3bi13QLcuFDKfgZUQ8F+/K70rXswgagGCCsGAQUFBwEBBIGbMIGYMF0GCCsGAQUFBzAChlFodHRwOi8vd3d3LmRpZ2l0YWxzaWduY2VydGlmaWNhZG9yYS5jb20uYnIvcmVwb3NpdG9yaW8vcmZiL0FDRElHSVRBTFNJR05SRkJHMy5wN2IwNwYIKwYBBQUHMAGGK2h0dHA6Ly9vY3NwLmRpZ2l0YWxzaWduY2VydGlmaWNhZG9yYS5jb20uYnIwXQYDVR0gBFYwVDBSBgZgTAECASwwSDBGBggrBgEFBQcCARY6aHR0cDovL3d3dy5kaWdpdGFsc2lnbmNlcnRpZmljYWRvcmEuY29tLmJyL3JlcG9zaXRvcmlvL3JmYjAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwQwgbEGA1UdHwSBqTCBpjBXoFWgU4ZRaHR0cDovL3d3dy5kaWdpdGFsc2lnbmNlcnRpZmljYWRvcmEuY29tLmJyL3JlcG9zaXRvcmlvL3JmYi9BQ0RJR0lUQUxTSUdOUkZCRzMuY3JsMEugSaBHhkVodHRwOi8vd3d3LmRpZ2l0YWx0cnVzdC5jb20uYnIvcmVwb3NpdG9yaW8vcmZiL0FDRElHSVRBTFNJR05SRkJHMy5jcmwwDgYDVR0PAQH/BAQDAgXgMIG4BgNVHREEgbAwga2BGW5ld3Rvbi5jZXNhckB0b3R2cy5jb20uYnKgOAYFYEwBAwSgLwQtMDYxMjE5NzUxNzQxODkyODgwNzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwoCIGBWBMAQMCoBkEF0dJTFNPTUFSIE1BSUEgU0VCQVNUSUFPoBkGBWBMAQMDoBAEDjgyMzczMDc3MDAwMTcxoBcGBWBMAQMHoA4EDDAwMDAwMDAwMDAwMDANBgkqhkiG9w0BAQsFAAOCAgEAOcL9EqIH7BChrULLpdyC9XynpllmCt30JNcccHWXNBac1X5XEtNKhPGJowtqBx/hWoo3bh/kJfFPH9vTXVhBaH3llduBU+xQwaBD1wuURPtZqDaKIIOmxBZUqfFlGt1U6JptB+zBiNRUe16cMmEJ86rlgVqlCgLe7161HDBEX+JyjfQyuolfObimjP9IilQWAFUkqJDvnBVfXYEwz69gg0JM8tYL3O18ldrkpDQ68KiZAiMoImkbr6oL48js+MQEfhMA0Q33LAXYj1enqlsimw4w/zZMZGvdE5PBbrv9spL0mg8AQIxy+GTx/QMwoC8XHgUrq+mAv9Eflp/w+LP2D0eP/ELilfwBDzPE2FECU+F8Bz5AQcbD8VHGAn0f5FtdqEssPlJyjOhGN26aYnoZ++2wLHPUq60qsZAM+9xEo2anwCwERJpwN64PsJItk2qQfGJeKYXGJrmMrGtxGRuONO1bW506Sdn4i/UdBt1XZhnaT2U4R/nytcuQ2E7DnBcLLdHD/MCP5UavJ4+1cQbCwD6xe6+GpkJTnk0Ei76HRSRdHRZR2xU6ebMV4x+Dcc7jR4pH0mMoXFkAn+IMd2M3JGKMjOikh49PguWRUYDtQo37Hs/cYTBc/3h452dV9qV6GI9c3Eg4vZPX3LebnsjYYkSdRdvqXYW+8xibmxa1vF8=</ X509Certificate >
</ X509Data >
</ KeyInfo >
</ Signature >
</ NFe >
< protNFe versao=\"4.00\">
< infProt >
< tpAmb >2</ tpAmb >
< verAplic >SP_NFCE_PL_009_V400</ verAplic >
< chNFe >35240882373077000171650010004112441194594623</ chNFe >
< dhRecbto >2024-08-16T15:17:38-03:00</ dhRecbto >
< nProt >135240002154737</ nProt >
< digVal >MXavema7a33mkklhtGM9J06sZG0=</ digVal >
< cStat >100</ cStat >
< xMotivo >Autorizado o uso da NF-e</ xMotivo >
</ infProt >
</ protNFe >
</ nfeProc >",
"invoiceKey": "35240882373077000171650010004112441194594623",
"qrCode": "https://www.homologacao.nfce.fazenda.sp.gov.br/qrcode?p=35240882373077000171650010004112441194594623|2|2|3|8D40911388AD28F90084AE3719A34693E143BFC3"
},
"error": null
}
|
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 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 | {
"integrationHubServiceId": "02990348-9d85-416d-a573-6dc83eee52e7",
"orderKeyType": "INDOOR",
"orderKey": 2,
"paymentObject": {
"printOrderAtPos": true,
"generateInvoice": true,
"printInvoiceAtPos": true,
"sendInvoiceEmail": false,
"summaryExtract": false,
"customerDocument": null,
"documentInReceipt": false,
"numberPersons": 1,
"removeServiceFee": false,
"methods": [
{
"value": 67.10,
"currency": "BRL",
"type": "OFFLINE",
"method": "CREDIT",
"methodInfo": "VISA"
}
],
"orderAmount": 61.0,
"discounts": 0.00,
"fees": 6.10,
"total": 67.10
}
}
|
JSON Resposta
1 2 3 4 5 6 7 8 | {
"errors": [
{
"key": "orderKey",
"message": "body.orderKey must be a string"
}
]
}
|
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 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 | {
"integrationHubServiceId": "02990348-9d85-416d-a573-6dc83eee52e7",
"orderKey": 2,
"paymentObject": {
"printOrderAtPos": true,
"generateInvoice": true,
"printInvoiceAtPos": true,
"sendInvoiceEmail": false,
"summaryExtract": false,
"customerDocument": null,
"documentInReceipt": false,
"numberPersons": 1,
"removeServiceFee": false,
"methods": [
{
"value": 67.10,
"currency": "BRL",
"type": "OFFLINE",
"method": "CREDIT",
"methodInfo": "VISA"
}
],
"orderAmount": 61.0,
"discounts": 0.00,
"fees": 6.10,
"total": 67.10
}
}
|
JSON Resposta
1 2 3 4 5 6 7 8 | {
"errors": [
{
"key": "orderKeyType",
"message": "body.orderKeyType 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 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | {
"integrationHubServiceId": "02990348-9d85-416d-a573-6dc83eee52eA",
"orderKey": 2,
"paymentObject": {
"printOrderAtPos": true,
"generateInvoice": true,
"printInvoiceAtPos": true,
"sendInvoiceEmail": false,
"summaryExtract": false,
"customerDocument": null,
"documentInReceipt": false,
"numberPersons": 1,
"removeServiceFee": false,
"methods": [
{
"value": 67.10,
"currency": "BRL",
"type": "OFFLINE",
"method": "CREDIT",
"methodInfo": "VISA"
}
],
"orderAmount": 61.0,
"discounts": 0.00,
"fees": 6.10,
"total": 67.10
}
}
|
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 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | {
"integrationHubServiceId": "02990348-9d85-416d-a573-6dc83eee52e7",
"orderKey": 2,
"paymentObject": {
"printOrderAtPos": true,
"generateInvoice": true,
"printInvoiceAtPos": true,
"sendInvoiceEmail": false,
"summaryExtract": false,
"customerDocument": null,
"documentInReceipt": false,
"numberPersons": 1,
"removeServiceFee": false,
"methods": [],
"orderAmount": 61.0,
"discounts": 0.00,
"fees": 6.10,
"total": 67.10
}
}
|
JSON Response
1 2 3 4 5 6 7 8 | {
"errors": [
{
"key": "methods",
"message": "body.paymentObject.methods must contain at least 1 items"
}
]
}
|
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 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 | {
"integrationHubServiceId": "02990348-9d85-416d-a573-6dc83eee52e7",
"orderKeyType": "INDOOR",
"orderKey": "2",
"paymentObject": {
"printOrderAtPos": true,
"generateInvoice": true,
"printInvoiceAtPos": true,
"sendInvoiceEmail": false,
"summaryExtract": false,
"customerDocument": null,
"documentInReceipt": false,
"numberPersons": 1,
"removeServiceFee": false,
"methods": [
{
"value": 67.10,
"currency": "BRL",
"type": "OFFLINE",
"method": "CREDIT",
"methodInfo": "VISA"
}
],
"orderAmount": 61.0,
"discounts": 0.00,
"fees": 6.10,
"total": 67.10
}
}
|
JSON Response
1 2 3 4 5 6 7 8 | {
"errors": [
{
"key": "integrationHubServiceId",
"message": "Provider Merchant for integrationHubServiceId \"02990348-9d85-416d-a573-6dc83eee52e7\" 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), alguma regra para atendimento de sua solicitação não foi atendida, analise o corpo da declaração para saber os motivos.
JSON
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 | {
"integrationHubServiceId": "efdd6093-5539-4ac4-ad84-7423a8078dde",
"orderKeyType": "INDOOR",
"orderKey": "2",
"paymentObject": {
"printOrderAtPos": true,
"generateInvoice": true,
"printInvoiceAtPos": true,
"sendInvoiceEmail": false,
"summaryExtract": false,
"customerDocument": null,
"documentInReceipt": false,
"numberPersons": 1,
"removeServiceFee": false,
"methods": [
{
"value": 67.10,
"currency": "BRL",
"type": "OFFLINE",
"method": "CREDIT",
"methodInfo": "VISA"
}
],
"orderAmount": 61.0,
"discounts": 0.00,
"fees": 6.10,
"total": 67.10
}
}
|
HTTP Status Code 412 = Precpndition Failed
1 2 3 4 | {
"message": "Mesa não possui itens sem vinculo com cadeiras para recebimento completo.;Total dos produtos informado é diferente do total dos produtos das Cadeiras informadas.;Total da Conta informada é diferente do total da conta no sistema.",
"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": ["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
|
|