# Visão geral

Bem vindo a documentação da API Hub Delivery!

Você usará esta API para criar uma comunicação entre seu sistema e os endpoints de envio e recebimento de informações da Hub Delivery.

Ao longo da documentação, mostraremos descrições detalhadas dos métodos que disponibilizamos para sua integração.

Precisa de ajuda ou quer tirar dúvidas? Entre em contato com nosso time de desenvolvimento pelo email <integracao@hubdelivery.com.br>.

Antes de começar a integração você precisa conhecer os [primeiros passos](/master/primeiros-passos) para iniciar a integração.


# Primeiros passos

#### Credenciamento

Para iniciar o processo de credenciamento envie um e-mail para <integracao@hubdelivery.com.br> contendo o CNPJ e nome da empresa integradora e ambiente necessário (sandbox ou produção).\
Nosso processo de credenciamento tem como prazo total 24 horas (úteis) para a sua conclusão.

Após a liberação das credenciais, será enviado ao e-mail solicitante o ***client\_id**, **client\_secret** e **account***.\
\
Para a finalização da conta, é necessário a criação de um alias de e-mail com o padrão  **<noreply@dominiodasuaempresa.com.br>** para a configuração e validação do disparador de e-mails.

Abaixo um exemplo da url base a ser utilizada em toda a comunicação com as apis da Hub Delivery.\
Substitua o **{{account}}** pela account enviada pelo time de integração.

{% hint style="success" %}
https\://**{account}}**.myhubdelivery.io
{% endhint %}


# Fluxos

#### Novo merchant (SignUp) <a href="#fluxo-de-codigo-de-autorizacao" id="fluxo-de-codigo-de-autorizacao"></a>

{% hint style="warning" %}
O fluxo de novo merchant é **obrigatório** para a utilização das APIS e portal do parceiro.
{% endhint %}

Ao realizar o fluxo de signup é retornado um identificador do merchant que será utilizado em todos as apis.\
É recomendado que seja armazenado este identificador no PDV para as futuras atualizações.

#### Abertura e fechamento de merchant

Para a abertura e fechamento de loja pode ser automática, utilizando com base a estrutura do merchant com seus horários de funcionamento ou de forma manual através das apis.\
\
Caso a estrutura de merchant já contenha as informações de horários de funcionamento, o consumo de pedidos nos canais de venda é automático.\
\
É **importante** salientar que caso o acionamento seja manual e a loja não for aberta, os pedidos podem ser recusados por indisponibilidade de recebimento da loja.

#### Portal do merchant

Para a utilização do portal é obrigatório que o PDV direcione o parceiro para a url.

> #### https\://{account}.myhubdelivery.com/signin/token?merchantId={merchantId}

#### Jornada do merchant

Reunimos a seguir uma sequência de passos para demonstrar a jornada de um novo merchant, desde o seu pré cadastro (signup) até a iteração com pedidos.\
\
Caso sua integração seja realizada via portal do merchant, as etapas 4, 5 ,6 e 7 devem ser realizadas pelo merchant diretamente no portal e não dependem.<br>

1. [Autenticar o PDV na Hub Delivery](/orders/licenses/authentication)
2. [Pré cadastrar o Merchant na Hub Delivery (SignUp)](/orders/licenses/sign-up)
3. [Importar o catálogo de produtos e serviços do merchant **(Opcional)**](/orders/merchants)
4. [Habilitar os canais de venda para o merchant](/orders/merchants)
5. [Habilitar os operadores logísticos para o merchant (**Opcional)**](/orders/merchants)
6. [Associar os operadores logíticos aos canais de venda habilitados (Opcional)](/orders/merchants)
7. [Iniciar a integração com o canal de vendas **(Somente se os horários de funcionamento não estiverem definidos)**](/orders/merchants)
8. [Iniciar iteração pedidos do merchant](/orders/orders)


# Canais de venda

### Marketplaces

Conheça a lista de marketplaces e as possibilidades disponíveis dentro do nosso ecossistema.

<table><thead><tr><th>Canal de venda</th><th data-type="checkbox">Pedidos</th><th data-type="checkbox">Cardápio</th></tr></thead><tbody><tr><td><a href="/pages/aArlPGeBrCk3AIDWL9qx">Ifood</a></td><td>true</td><td>true</td></tr><tr><td><a href="/pages/PA7XgAlvh7Qaw4S7G6M7">Rappi</a></td><td>true</td><td>true</td></tr><tr><td><a href="/pages/m1xvA1U0HvzTilgxFYfs">Pede Pronto</a></td><td>true</td><td>true</td></tr><tr><td><a href="/pages/YiEMuWKYm3zwAS3Q3dW4">Zé Delivery</a></td><td>true</td><td>true</td></tr><tr><td><a href="/pages/FZPxjLpQsxOoYppDqU4Z">AiQFome</a></td><td>true</td><td>false</td></tr><tr><td><a href="/pages/4n9n35nbVUqQ8Vg5gxzJ">Delivery Much</a></td><td>true</td><td>false</td></tr><tr><td><a href="/pages/Kskjj3I9LccyNJjCSZYe">Americanas Delivery</a></td><td>true</td><td>false</td></tr></tbody></table>

### Aplicativos próprios

Conheça a lista de aplicativos próprios e as possibilidades disponíveis dentro do nosso ecossistema.

<table><thead><tr><th>Canal de venda</th><th data-type="checkbox">Pedidos</th><th data-type="checkbox">Cardápio</th></tr></thead><tbody><tr><td><a href="/pages/C5EotoyaOraZfjVK5yNC">Accon</a></td><td>true</td><td>false</td></tr><tr><td><a href="/pages/R3XDMkyhJwcVNQ2hhIse">Alloy</a></td><td>true</td><td>false</td></tr><tr><td><a href="/pages/MCG6GA7ZuXIDPwm5YGnt">Goomer</a></td><td>true</td><td>false</td></tr><tr><td><a href="/pages/d4EDQUCH25lTPoaWkxNz">Wabiz</a></td><td>true</td><td>false</td></tr><tr><td><a href="/pages/8Wb8T5rEUNqkMJA0f8Tn">Delivery Direto</a></td><td>true</td><td>false</td></tr><tr><td><a href="/pages/E7BGUvSaxB3rAr7GUicH">PedZap</a></td><td>true</td><td>false</td></tr><tr><td><a href="/pages/HbpBgwKKEYu7Df6DI61g">TwData</a></td><td>true</td><td>false</td></tr><tr><td><a href="/pages/bog5WX1FDBtwiW7ajpVY">Neemo (Delivery App)</a></td><td>true</td><td>false</td></tr><tr><td><a href="/pages/9oIIA9rMxwjyAg0cva9W">Delivery Vip</a></td><td>true</td><td>true</td></tr><tr><td><a href="/pages/AAHKmYRPDp8REwM9DkrX">Super Menu</a></td><td>true</td><td>false</td></tr><tr><td><a href="/pages/uu97xQaYaO2d7hgejJNC">Oi Menu</a></td><td>true</td><td>false</td></tr><tr><td><a href="/pages/qPx0HNraF7ssmi6KVG9z">Pekus</a></td><td>true</td><td>true</td></tr><tr><td><a href="/pages/qpbai5eVCrEqovnhROj0">VTEX</a></td><td>true</td><td>true</td></tr><tr><td><a href="/pages/v2G7Gw1OJP4KniPEIWAY">On Pedidos</a></td><td>true</td><td>false</td></tr></tbody></table>


# Ifood

#### Configurações

<table><thead><tr><th>Chave</th><th>Valores</th><th data-type="checkbox">Obrigatório</th></tr></thead><tbody><tr><td><strong>IFOOD.CLIENT_ID</strong></td><td>Client ID fornecido pelo ifood</td><td>true</td></tr><tr><td><strong>IFOOD.CLIENT_SECRET</strong></td><td>Client SECRET fornecido pelo ifood</td><td>true</td></tr></tbody></table>

#### Exemplo de configuração

```json
[
    { "Key": "IFOOD.CLIENT_ID", "Value": "468613b71029407fb160978ba71df2dd" },
    { "Key": "IFOOD.CLIENT_SECRET", "Value": "YjdiNDJlNmNhNTczNDBmZDkwMWQyNGQ1MjA0ZWIyZWY=" }
]
```

#### Source App ID

> 0babcbcf2d5c4c69a9d1b6677cb4f593

**Hook (Order Events)**

https\://**{account}.**&#x6D;yhubdelivery.io/hooks/api/v1/ifood


# Rappi

#### Configurações

<table><thead><tr><th>Chave</th><th>Valores</th><th data-type="checkbox">Obrigatório</th></tr></thead><tbody><tr><td><strong>RAPPI.ENV</strong></td><td><strong>DEV|PROD</strong></td><td>true</td></tr><tr><td><strong>RAPPI.CLIENT_ID</strong></td><td>Client ID fornecido pelo canal de venda</td><td>true</td></tr><tr><td><strong>RAPPI.CLIENT_SECRET</strong></td><td>Client SECRET fornecido pelo canal de venda</td><td>true</td></tr></tbody></table>

#### Exemplo de configuração

```json
[
    { "Key": "RAPPI.ENV", "Value": "DEV" },
    { "Key": "RAPPI.CLIENT_ID", "Value": "468613b71029407fb160978ba71df2dd" },
    { "Key": "RAPPI.CLIENT_SECRET", "Value": "YjdiNDJlNmNhNTczNDBmZDkwMWQyNGQ1MjA0ZWIyZWY=" }
]
```

#### Source App ID

> 5b8dcfbf297b4d919e830333e70c269e


# Pede Pronto

#### Configurações

<table><thead><tr><th width="324">Chave</th><th width="398.3333333333333">Valores</th><th data-type="checkbox">Obrigatório</th></tr></thead><tbody><tr><td><strong>OPENDELIVERY.CLIENTID</strong></td><td>Client ID fornecido pelo canal de vendas</td><td>true</td></tr><tr><td><strong>OPENDELIVERY.CLIENTSECRET</strong></td><td>Client SECRET fornecido pelo canal de vendas</td><td>true</td></tr><tr><td><strong>OPENDELIVERY.BASEADDRESS</strong></td><td><a href="https://api.pedepronto.com.br/v1/">https://api.pedepronto.com.br/v1/</a></td><td>true</td></tr><tr><td><strong>OPENDELIVERY.AUTHENTICATIONPATH</strong></td><td>oauth2/token</td><td>true</td></tr><tr><td><strong>OPENDELIVERY.ORDERSPATH</strong></td><td>orders</td><td>true</td></tr><tr><td><strong>OPENDELIVERY.EVENTSPATH</strong></td><td></td><td>false</td></tr></tbody></table>

#### Exemplo de configuração

```json
[
    { "Key": "OPENDELIVERY.BASEADDRESS", "Value": "https://api.pedepronto.com.br/v1/" },
    { "Key": "OPENDELIVERY.AUTHENTICATIONPATH", "Value": "oauth2/token" },
    { "Key": "OPENDELIVERY.ORDERSPATH", "Value": "orders" },
    { "Key": "OPENDELIVERY.EVENTSPATH", "Value": "" },
    { "Key": "OPENDELIVERY.CLIENTID", "Value": "468613b71029407fb160978ba71df2dd" },
    { "Key": "OPENDELIVERY.CLIENTSECRET", "Value": "YjdiNDJlNmNhNTczNDBmZDkwMWQyNGQ1MjA0ZWIyZWY=" }
]
```

#### Source App ID

> 4a8c3e447f9542cfb85ecd533345a352


# Delivery Vip

#### Configurações

<table><thead><tr><th width="391">Chave</th><th width="479.3333333333333">Valores</th><th data-type="checkbox">Obrigatório</th></tr></thead><tbody><tr><td><strong>OPENDELIVERY.CLIENTID</strong></td><td>Client ID fornecido pelo canal de vendas</td><td>true</td></tr><tr><td><strong>OPENDELIVERY.CLIENTSECRET</strong></td><td>Client SECRET fornecido pelo canal de vendas</td><td>true</td></tr><tr><td><strong>OPENDELIVERY.BASEADDRESS</strong></td><td>https://api.deliveryvip.com.br/</td><td>true</td></tr><tr><td><strong>OPENDELIVERY.AUTHENTICATIONPATH</strong></td><td>authentication/v1/oauth/token</td><td>true</td></tr><tr><td><strong>OPENDELIVERY.ORDERSPATH</strong></td><td>merchant/v3/orders</td><td>true</td></tr><tr><td><strong>OPENDELIVERY.EVENTSPATH</strong></td><td>merchant/v3</td><td>true</td></tr></tbody></table>

#### Exemplo de configuração

```json
[
    { "Key": "OPENDELIVERY.BASEADDRESS", "Value": "https://api.deliveryvip.com.br/" },
    { "Key": "OPENDELIVERY.AUTHENTICATIONPATH", "Value": "authentication/v1/oauth/token" },
    { "Key": "OPENDELIVERY.ORDERSPATH", "Value": "merchant/v3/orders" },
    { "Key": "OPENDELIVERY.EVENTSPATH", "Value": "merchant/v3" },
    { "Key": "OPENDELIVERY.CLIENTID", "Value": "468613b71029407fb160978ba71df2dd" },
    { "Key": "OPENDELIVERY.CLIENTSECRET", "Value": "YjdiNDJlNmNhNTczNDBmZDkwMWQyNGQ1MjA0ZWIyZWY=" }
]
```

#### Source App ID

> 1650dee7c53b4e6b80f94db38fd982ac


# Pekus

#### Configurações

<table><thead><tr><th width="391">Chave</th><th width="479.3333333333333">Valores</th><th data-type="checkbox">Obrigatório</th></tr></thead><tbody><tr><td><strong>PEKUS.ACCOUNT</strong></td><td>Account fornecida pelo canal de vendas</td><td>false</td></tr><tr><td><strong>OPENDELIVERY.CLIENTID</strong></td><td>Client ID fornecido pelo canal de vendas</td><td>true</td></tr><tr><td><strong>OPENDELIVERY.CLIENTSECRET</strong></td><td>Client SECRET fornecido pelo canal de vendas</td><td>true</td></tr><tr><td><strong>OPENDELIVERY.BASEADDRESS</strong></td><td>Endereço fornecido pelo canal de vendas</td><td>true</td></tr><tr><td><strong>OPENDELIVERY.AUTHENTICATIONPATH</strong></td><td>oauth/token</td><td>true</td></tr><tr><td><strong>OPENDELIVERY.ORDERSPATH</strong></td><td>orders</td><td>true</td></tr><tr><td><strong>OPENDELIVERY.EVENTSPATH</strong></td><td></td><td>true</td></tr></tbody></table>

#### Exemplo de configuração

```json
[
    { "Key": "PEKUS.ACCOUNT", "Value": "ACCOUNT" },
    { "Key": "OPENDELIVERY.BASEADDRESS", "Value": "https://www.pekuscloud.com.br/{0}/api/" },
    { "Key": "OPENDELIVERY.AUTHENTICATIONPATH", "Value": "aoauth/token" },
    { "Key": "OPENDELIVERY.ORDERSPATH", "Value": "orders" },
    { "Key": "OPENDELIVERY.EVENTSPATH", "Value": "" },
    { "Key": "OPENDELIVERY.CLIENTID", "Value": "468613b71029407fb160978ba71df2dd" },
    { "Key": "OPENDELIVERY.CLIENTSECRET", "Value": "YjdiNDJlNmNhNTczNDBmZDkwMWQyNGQ1MjA0ZWIyZWY=" }
]
```

#### Source App ID

> e7ce90a2ecba497ea200b8eec38cee52


# Zé Delivery

#### Configurações

<table><thead><tr><th width="391">Chave</th><th width="479.3333333333333">Valores</th><th data-type="checkbox">Obrigatório</th></tr></thead><tbody><tr><td><strong>ZE_DELIVERY.CLIENTID</strong></td><td>Client ID fornecido pelo canal de vendas</td><td>true</td></tr><tr><td><strong>ZE_DELIVERY.CLIENTSECRET</strong></td><td>Client SECRET fornecido pelo canal de vendas</td><td>true</td></tr></tbody></table>

#### Exemplo de configuração

```json
[
    { "Key": "ZE_DELIVERY.CLIENTID", "Value": "468613b71029407fb160978ba71df2dd" },
    { "Key": "ZE_DELIVERY.CLIENTSECRET", "Value": "YjdiNDJlNmNhNTczNDBmZDkwMWQyNGQ1MjA0ZWIyZWY=" }
]
```

#### Source App ID

> b0b12afd34d142ddab2970d271ffbf27


# AiQFome

#### Configurações

<table><thead><tr><th width="391">Chave</th><th width="479.3333333333333">Valores</th><th data-type="checkbox">Obrigatório</th></tr></thead><tbody><tr><td><strong>AIQFOME.AUTHORIZATION</strong></td><td>Basic Y29tcGFueTo4Y2FmODgyYS04YmJjLTRhYWItYTJkNS05ZGEyNTFkNmQ2Njg=</td><td>true</td></tr><tr><td><strong>AIQFOME.USERNAME</strong></td><td>Username informado pelo canal de vendas</td><td>true</td></tr><tr><td><strong>AIQFOME.PASSWORD</strong></td><td>Password informado pelo canal de vendas</td><td>true</td></tr></tbody></table>

#### Exemplo de configuração

```json
[
    { "Key": "AIQFOME.AUTHORIZATION", "Value": "Basic Y29tcGFueTo4Y2FmODgyYS04YmJjLTRhYWItYTJkNS05ZGEyNTFkNmQ2Njg=" },
    { "Key": "AIQFOME.USERNAME", "Value": "Username informado pelo canal de vendas" },
    { "Key": "AIQFOME.PASSWORD", "Value": "Password informado pelo canal de vendas" }
]
```

#### Source App ID

> 732c8d442301451d92bcef899e6329a5


# Delivery Much

#### Configurações

<table><thead><tr><th width="391">Chave</th><th width="479.3333333333333">Valores</th><th data-type="checkbox">Obrigatório</th></tr></thead><tbody><tr><td><strong>DELIVERYMUCH.CLIENT_ID</strong></td><td>Client ID informado pelo canal de vendas</td><td>true</td></tr><tr><td><strong>DELIVERYMUCH.CLIENT_SECRET</strong></td><td>Client Secret informado pelo canal de vendas</td><td>true</td></tr><tr><td><strong>DELIVERYMUCH.USERNAME</strong></td><td>Username informado pelo canal de vendas</td><td>true</td></tr><tr><td><strong>DELIVERYMUCH.PASSWORD</strong></td><td>Password informado pelo canal de vendas</td><td>true</td></tr></tbody></table>

#### Exemplo de configuração

```json
[
    { "Key": "DELIVERYMUCH.CLIENT_ID", "Value": "Y29tcGFueTo4Y2FmODgyYS04YmJjLTRhYWItYTJkNS05ZGEyNTFkNmQ2Njg=" },
    { "Key": "DELIVERYMUCH.CLIENT_SECRET", "Value": "29tcGFueTo4Y2FmODgyYS04YmJjLTRhYWItYTJkNS05ZGEyNTFkNmQ2Njg=" },
    { "Key": "DELIVERYMUCH.USERNAME", "Value": "Username informado pelo canal de vendas" },
    { "Key": "DELIVERYMUCH.PASSWORD", "Value": "Password informado pelo canal de vendas" }
]
```

#### Source App ID

> 8544368549a947f4928a71fa54403d7b


# Accon

#### Configurações

<table><thead><tr><th width="324">Chave</th><th width="398.3333333333333">Valores</th><th data-type="checkbox">Obrigatório</th></tr></thead><tbody><tr><td><strong>OPENDELIVERY.CLIENTID</strong></td><td>Client ID fornecido pelo canal de vendas</td><td>true</td></tr><tr><td><strong>OPENDELIVERY.CLIENTSECRET</strong></td><td>Client SECRET fornecido pelo canal de vendas</td><td>true</td></tr><tr><td><strong>OPENDELIVERY.BASEADDRESS</strong></td><td><a href="https://opendelivery.accon.app">https://opendelivery.accon.app</a></td><td>true</td></tr><tr><td><strong>OPENDELIVERY.AUTHENTICATIONPATH</strong></td><td>v1/oauth/token</td><td>true</td></tr><tr><td><strong>OPENDELIVERY.ORDERSPATH</strong></td><td>v1/orders/</td><td>true</td></tr><tr><td><strong>OPENDELIVERY.EVENTSPATH</strong></td><td>v1</td><td>false</td></tr></tbody></table>

#### Exemplo de configuração

```json
[
    { "Key": "OPENDELIVERY.BASEADDRESS", "Value": "https://opendelivery.accon.app" },
    { "Key": "OPENDELIVERY.AUTHENTICATIONPATH", "Value": "v1/oauth/token" },
    { "Key": "OPENDELIVERY.ORDERSPATH", "Value": "v1/orders/" },
    { "Key": "OPENDELIVERY.EVENTSPATH", "Value": "v1" },
    { "Key": "OPENDELIVERY.CLIENTID", "Value": "468613b71029407fb160978ba71df2dd" },
    { "Key": "OPENDELIVERY.CLIENTSECRET", "Value": "YjdiNDJlNmNhNTczNDBmZDkwMWQyNGQ1MjA0ZWIyZWY=" }
]
```

#### Source App ID

> 75afb7a76ec0456db22d7e60f9733b56

Hooks (Order Events)

> https\://**{account}.**&#x6D;yhubdelivery.io/hooks/api/v1/opendelivery


# Jota Já

#### Configurações

<table><thead><tr><th width="324">Chave</th><th width="398.3333333333333">Valores</th><th data-type="checkbox">Obrigatório</th></tr></thead><tbody><tr><td><strong>OPENDELIVERY.CLIENTID</strong></td><td>Client ID fornecido pelo canal de vendas</td><td>true</td></tr><tr><td><strong>OPENDELIVERY.CLIENTSECRET</strong></td><td>Client SECRET fornecido pelo canal de vendas</td><td>true</td></tr><tr><td><strong>OPENDELIVERY.BASEADDRESS</strong></td><td><a href="https://api.jotaja.com/openDelivery">https://api.jotaja.com/openDelivery</a></td><td>true</td></tr><tr><td><strong>OPENDELIVERY.AUTHENTICATIONPATH</strong></td><td>oauth/token</td><td>true</td></tr><tr><td><strong>OPENDELIVERY.ORDERSPATH</strong></td><td>v1/orders</td><td>true</td></tr><tr><td><strong>OPENDELIVERY.EVENTSPATH</strong></td><td>v1</td><td>false</td></tr></tbody></table>

#### Exemplo de configuração

```json
[
    { "Key": "OPENDELIVERY.BASEADDRESS", "Value": "https://api.jotaja.com/openDelivery" },
    { "Key": "OPENDELIVERY.AUTHENTICATIONPATH", "Value": "oauth/token" },
    { "Key": "OPENDELIVERY.ORDERSPATH", "Value": "v1/orders" },
    { "Key": "OPENDELIVERY.EVENTSPATH", "Value": "v1" },
    { "Key": "OPENDELIVERY.CLIENTID", "Value": "468613b71029407fb160978ba71df2dd" },
    { "Key": "OPENDELIVERY.CLIENTSECRET", "Value": "YjdiNDJlNmNhNTczNDBmZDkwMWQyNGQ1MjA0ZWIyZWY=" }
]
```

#### Source App ID

> fe945d3c0ec64fd0bbd6b7aca3b012ec

Hooks (Order Events)

> https\://**{account}.**&#x6D;yhubdelivery.io/hooks/api/v1/opendelivery


# Alloy

#### Configurações

<table><thead><tr><th width="288.50867625185924">Chave</th><th width="329.3333333333333">Valores</th><th data-type="checkbox">Obrigatório</th></tr></thead><tbody><tr><td><strong>ALLOY.HOST</strong></td><td>https://api.alloy.al</td><td>true</td></tr><tr><td><strong>ALLOY.TOKEN</strong></td><td>Token de integração da plataforma</td><td>true</td></tr><tr><td><strong>ALLOY.INTEGRATION_TYPE</strong></td><td>ANY|DELIVERY|INDOOR</td><td>true</td></tr></tbody></table>

#### Exemplo de configuração

```json
[
    { "Key": "ALLOY.HOST", "Value": "https://api.alloy.al" },
    { "Key": "ALLOY.TOKEN", "Value": "seu token" },
    { "Key": "ALLOY.INTEGRATION_TYPE", "Value": "ANY|DELIVERY|INDOOR" }
]
```

#### Source App ID

> 84e2423b075f45c9a2018214f5d86fbb


# Goomer

#### Configurações

<table><thead><tr><th width="296.50867625185924">Chave</th><th width="272.3333333333333">Valores</th><th data-type="checkbox">Obrigatório</th></tr></thead><tbody><tr><td><strong>GOOMER.STORE_ID</strong></td><td>Código da loja (ex.: G-1234)<br>(disponível no painel do cliente)</td><td>true</td></tr><tr><td><strong>GOOMER.CLIENT_ID</strong></td><td>Id de integração (disponível no painel do cliente)</td><td>true</td></tr><tr><td><strong>GOOMER.CLIENT_SECRET</strong></td><td>Chave de integração (disponível no painel do cliente)</td><td>true</td></tr></tbody></table>

#### Exemplo de configuração

```json
[
    { "Key": "GOOMER.STORE_ID", "Value": "G-1234" },
    { "Key": "GOOMER.CLIENT_ID", "Value": "1234525de" },
    { "Key": "GOOMER.CLIENT_SECRET", "Value": "7858475" }
]
```

#### Source App ID

> ff9d133d2ec34f9b9417116cc3b1e08a


# Wabiz

#### Configurações

<table><thead><tr><th width="296.50867625185924">Chave</th><th width="272.3333333333333">Valores</th><th data-type="checkbox">Obrigatório</th></tr></thead><tbody><tr><td><strong>WABIZ.USERNAME</strong></td><td>Username fornecido pela Wabiz</td><td>true</td></tr><tr><td><strong>WABIZ.PASSWORD</strong></td><td>Senha fornecida pela Wabiz</td><td>true</td></tr></tbody></table>

#### Exemplo de configuração

```json
[
    { "Key": "WABIZ.USERNAME", "Value": "WAbiz1234" },
    { "Key": "WABIZ.PASSWORD", "Value": "1234525de" }
]
```

#### Source App ID

> 1ff376fdac1e480b82288fa1ff28b719


# Delivery Direto

#### Configurações

<table><thead><tr><th width="296.50867625185924">Chave</th><th width="272.3333333333333">Valores</th><th data-type="checkbox">Obrigatório</th></tr></thead><tbody><tr><td><strong>DELIVERYDIRETO.STORE_ID</strong></td><td>Código da loja, fornecida pelo canal de vendas.</td><td>true</td></tr><tr><td><strong>DELIVERYDIRETO.USERNAME</strong></td><td>Login fornecido pelo canal de vendas</td><td>true</td></tr><tr><td><strong>DELIVERYDIRETO.PASSWORD</strong></td><td>Senha fornecida pelo canal de vendas</td><td>true</td></tr><tr><td><strong>DELIVERYDIRETO.API_TOKEN</strong></td><td>Api Token fornecida pelo canal de vendas</td><td>true</td></tr></tbody></table>

#### Exemplo de configuração

```json
[
    { "Key": "DELIVERYDIRETO.STORE_ID", "Value": "WAbiz1234" },
    { "Key": "DELIVERYDIRETO.USERNAME", "Value": "1234525de" },
    { "Key": "DELIVERYDIRETO.PASSWORD", "Value": "1234525de" },
    { "Key": "DELIVERYDIRETO.API_TOKEN", "Value": "1234525de" }
]
```

#### Source App ID

> acf700f340594b13a7a778c59bd50260


# Super Menu

#### Configurações

<table><thead><tr><th width="296.50867625185924">Chave</th><th width="274.3333333333333">Valores</th><th data-type="checkbox">Obrigatório</th></tr></thead><tbody><tr><td><strong>SUPERMENU.API_KEY</strong></td><td>Chave de integração, fornecida pelo canal de vendas.</td><td>true</td></tr></tbody></table>

#### Exemplo de configuração

```json
[
    { "Key": "SUPERMENU.API_KEY", "Value": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9" }
]
```

#### Source App ID

> a3c94e9c429041ee9f3cc510cf339feb


# VTEX

#### Configurações

<table><thead><tr><th width="296.50867625185924">Chave</th><th width="274.3333333333333">Valores</th><th data-type="checkbox">Obrigatório</th></tr></thead><tbody><tr><td><strong>VTEX.BASE_ADDRESS</strong></td><td>Endereço da loja na VTEX</td><td>true</td></tr><tr><td><strong>VTEX.APP_KEY</strong></td><td>APP Key da loja VTEX</td><td>true</td></tr><tr><td><strong>VTEX.APP_TOKEN</strong></td><td>APP Token da loja VTEX</td><td>true</td></tr></tbody></table>

#### Exemplo de configuração

```json
[
    { "Key": "VTEX.BASE_ADDRESS", "Value": "https://sualoja.myvtex.com" },
    { "Key": "VTEX.APP_KEY", "Value": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9" },
    { "Key": "VTEX.APP_TOKEN", "Value": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9" }    
]
```

#### Source App ID

> 993cba937a9d47b68ed0d64835c69ef0


# Oi Menu

#### Configurações

<table><thead><tr><th width="296.50867625185924">Chave</th><th width="274.3333333333333">Valores</th><th data-type="checkbox">Obrigatório</th></tr></thead><tbody><tr><td><strong>OIMENU.API_TOKEN</strong></td><td>Api Token informada pela Oi Menu</td><td>true</td></tr></tbody></table>

#### Exemplo de configuração

```json
[
    { "Key": "OIMENU.API_TOKEN", "Value": "ZjQ2MTRiYjM3OWZkNGU3M2E0MmQxNTE4YjY4OTE1Yjg6MDU1YTgxNjhiNjk3NGQwNzg3NDAzNGE5YzM4M2EwZDI=" }
]
```

#### Source App ID

> ff7c13eb951e4cf7943fc654c025be6b


# TwData

#### Configurações

<table><thead><tr><th width="296.50867625185924">Chave</th><th width="274.3333333333333">Valores</th><th data-type="checkbox">Obrigatório</th></tr></thead><tbody><tr><td><strong>TWDATA.API_TOKEN</strong></td><td>Api Token informada pelo canal de vendas</td><td>true</td></tr></tbody></table>

#### Exemplo de configuração

```json
[
    { "Key": "TWDATA.API_TOKEN", "Value": "ZjQ2MTRiYjM3OWZkNGU3M2E0MmQxNTE4YjY4OTE1Yjg6MDU1YTgxNjhiNjk3NGQwNzg3NDAzNGE5YzM4M2EwZDI=" }
]
```

#### Source App ID

> 5b17ecb7403b4989bc44ab6ef4aff4dd


# Neemo

#### Configurações

<table><thead><tr><th width="296.50867625185924">Chave</th><th width="391.3333333333333">Valores</th><th data-type="checkbox">Obrigatório</th></tr></thead><tbody><tr><td><strong>NEEMO.TOKEN_ACCOUNT</strong></td><td>Token Account fornecido pelo canal de vendas.</td><td>true</td></tr></tbody></table>

#### Exemplo de configuração

```json
[
    { "Key": "NEEMO.TOKEN_ACCOUNT", "Value": "ZjQ2MTRiYjM3OWZkNGU3M2E0MmQxNTE4YjY4OTE1Yjg6MDU1YTgxNjhiNjk3NGQwNzg3NDAzNGE5YzM4M2EwZDI=" }
]
```

#### Source App ID

> 1971961e501f43ddb7dfcba0f251638e


# PedZap

#### Configurações

<table><thead><tr><th width="296.50867625185924">Chave</th><th width="391.3333333333333">Valores</th><th data-type="checkbox">Obrigatório</th></tr></thead><tbody><tr><td><strong>PEDZAP.API_TOKEN</strong></td><td>Api Token fornecido pelo canal de vendas.</td><td>true</td></tr></tbody></table>

#### Exemplo de configuração

```json
[
    { "Key": "PEDZAP.API_TOKEN", "Value": "ZjQ2MTRiYjM3OWZkNGU3M2E0MmQxNTE4YjY4OTE1Yjg6MDU1YTgxNjhiNjk3NGQwNzg3NDAzNGE5YzM4M2EwZDI=" }
]
```

#### Source App ID

> dce5ecd7b6f34b68a095b519966d5ce6


# Americanas Delivery

#### Configurações

<table><thead><tr><th width="391">Chave</th><th width="479.3333333333333">Valores</th><th data-type="checkbox">Obrigatório</th></tr></thead><tbody><tr><td><strong>OPENDELIVERY.CLIENTID</strong></td><td>Client ID fornecido pelo canal de vendas</td><td>true</td></tr><tr><td><strong>OPENDELIVERY.CLIENTSECRET</strong></td><td>Client SECRET fornecido pelo canal de vendas</td><td>true</td></tr><tr><td><strong>OPENDELIVERY.BASEADDRESS</strong></td><td><a href="https://merchant.guaxinim.packk.com.br/">https://merchant.guaxinim.packk.com.br/</a></td><td>true</td></tr><tr><td><strong>OPENDELIVERY.AUTHENTICATIONPATH</strong></td><td>oauth/token</td><td>true</td></tr><tr><td><strong>OPENDELIVERY.ORDERSPATH</strong></td><td>v1/orders/</td><td>true</td></tr><tr><td><strong>OPENDELIVERY.EVENTSPATH</strong></td><td>v1</td><td>true</td></tr></tbody></table>

#### Exemplo de configuração

```json
[
    { "Key": "OPENDELIVERY.BASEADDRESS", "Value": "https://merchant.guaxinim.packk.com.br/" },
    { "Key": "OPENDELIVERY.AUTHENTICATIONPATH", "Value": "oauth/token" },
    { "Key": "OPENDELIVERY.ORDERSPATH", "Value": "v1/orders/" },
    { "Key": "OPENDELIVERY.EVENTSPATH", "Value": "v1" },
    { "Key": "OPENDELIVERY.CLIENTID", "Value": "468613b71029407fb160978ba71df2dd" },
    { "Key": "OPENDELIVERY.CLIENTSECRET", "Value": "YjdiNDJlNmNhNTczNDBmZDkwMWQyNGQ1MjA0ZWIyZWY=" }
]
```

#### Source App ID

> 3aa154eac24c406681e930085a51ac3a


# On Pedidos

#### Configurações

<table><thead><tr><th width="207.50867625185924">Chave</th><th width="470.3333333333333">Valores</th><th data-type="checkbox">Obrigatório</th></tr></thead><tbody><tr><td><strong>ONPEDIDO.TOKEN</strong></td><td>Token de integração fornecido pelo canal de vendas.</td><td>true</td></tr></tbody></table>

#### Exemplo de configuração

```json
[
    { "Key": "ONPEDIDO.TOKEN", "Value": "ZjQ2MTRiYjM3OWZkNGU3M2E0MmQxNTE4YjY4OTE1Yjg6MDU1YTgxNjhiNjk3NGQwNzg3NDAzNGE5YzM4M2EwZDI=" }
]
```

#### Source App ID

> 3131aca0c4454841beb9e46a71a6428a


# Operadores logísticos

Conheça a lista de operadores logísticos e as possibilidades disponíveis dentro do nosso ecossistema.

<table><thead><tr><th>Operador logístico</th><th data-type="checkbox">Pedidos</th><th data-type="checkbox">Tracking</th><th data-type="checkbox">Availability</th></tr></thead><tbody><tr><td><a href="/pages/2Yf0IjtY4GydG0VK08QH">Loggi</a></td><td>true</td><td>true</td><td>false</td></tr><tr><td><a href="/pages/UjTeml29qh08dLfsFj7s">Foody Delivery</a></td><td>true</td><td>true</td><td>false</td></tr><tr><td><a href="/pages/hISm7HzocoAmBBzDLCGI">Bdoo</a></td><td>true</td><td>true</td><td>false</td></tr></tbody></table>


# Loggi

#### Configurações

<table><thead><tr><th>Chave</th><th>Valor</th><th data-type="checkbox">Obrigatório</th></tr></thead><tbody><tr><td>LOGGI.USERNAME</td><td>Informar o e-mail cadastrado</td><td>true</td></tr><tr><td>LOGGI.PASSWORD</td><td>Senha do e-mail informado</td><td>true</td></tr></tbody></table>

```json
[
    { "Key": "LOGGI.USERNAME", "Value": "email@email.com" },
    { "Key": "LOGGI.PASSWORD", "Value": "ZjQ2MTRiYjM3OWZkNGU3" }
]
```


# Foody Delivery

#### Configurações

<table><thead><tr><th width="305.3333333333333">Chave</th><th>Valor</th><th data-type="checkbox">Obrigatório</th></tr></thead><tbody><tr><td>FOODY_DELIVERY.TOKEN</td><td>Informar o token de integração do operador logístico.</td><td>true</td></tr></tbody></table>

```json
[
    { "Key": "FOODY_DELIVERY.TOKEN", "Value": "ZjQ2MTRiYjM3OWZkNGU3" }
]
```


# Bdoo

#### Configurações

<table><thead><tr><th width="312">Chave</th><th width="397.3333333333333">Valor</th><th data-type="checkbox">Obrigatório</th></tr></thead><tbody><tr><td>OPENDELIVERY.BASEADDRESS</td><td>https://api.bdoo.app</td><td>true</td></tr><tr><td>OPENDELIVERY.CLIENT_ID</td><td>Client ID fornecido pelo operador logístico</td><td>true</td></tr><tr><td>OPENDELIVERY.CLIENT_SECRET</td><td>Client SECRET fornecido pelo operador logístico</td><td>true</td></tr></tbody></table>

#### Exemplo de configuração

```json
[
    { "Key": "OPENDELIVERY.BASEADDRESS", "Value": "https://api.bdoo.app" },
    { "Key": "OPENDELIVERY.CLIENT_ID", "Value": "wNzg3NDAzNGE5YzM4M2EwZDI=" },
    { "Key": "OPENDELIVERY.CLIENT_SECRET", "Value": "ZjQ2MTRiYjM3OWZkNGU3M2E0MmQxNTE4YjY4OTE1Yjg6MDU1YTgxNjhiNjk3NGQ" }
]
```


# Programas de fidelidade

Conheça a lista de programas de fidelidade e as possibilidades disponíveis dentro do nosso ecossistema.

<table><thead><tr><th>Programa</th><th data-type="checkbox">Credito (Pontos)</th><th data-type="checkbox">Crédito (Valores)</th><th data-type="checkbox">Resgate</th><th data-type="checkbox">Saldo</th><th data-type="checkbox">Expiração</th></tr></thead><tbody><tr><td><a href="/pages/K40MCJ1ACoQtfBB8U0xB">Padrão</a></td><td>true</td><td>true</td><td>true</td><td>true</td><td>true</td></tr><tr><td><a href="/pages/HtoG8EbKx48t2JVZoDfg">Cliente Fiel</a></td><td>false</td><td>true</td><td>false</td><td>false</td><td>false</td></tr></tbody></table>


# Padrão

#### Configurações

O programa de fidelidade padrão não necessita de configurações.


# Cliente Fiel

#### Configurações

<table><thead><tr><th width="305.3333333333333">Chave</th><th>Valor</th><th data-type="checkbox">Obrigatório</th></tr></thead><tbody><tr><td>CLIENTE_FIEL.USERNAME</td><td>Informar o nome de usuário da plataforma.</td><td>true</td></tr><tr><td>CLIENTE_FIEL.PASSWORD</td><td>Informar a senha de usuário da plataforma.</td><td>true</td></tr><tr><td>CLIENTE_FIEL.ID_TYPE</td><td>Utilizar os valores PHONE ou EMAIL,conforme o tipo de chave utilizada no programa.</td><td>true</td></tr></tbody></table>

```json
[
    { "Key": "CLIENTE_FIEL.USERNAME", "Value": "username@clientefiel.app" },
    { "Key": "CLIENTE_FIEL.USERNAME", "Value": "pasword" },
    { "Key": "CLIENTE_FIEL.USERNAME", "Value": "PHONE|EMAIL" }
]
```


# Glossário

#### Acknowledgement <a href="#acknowledgement" id="acknowledgement"></a>

> Comando utilizado para confirmar que uma mensagem foi recebida pelo cliente e pode ser removida da fila no servidor. Utilizado no fluxo de polling de eventos de pedidos para confirmar que o evento já foi lido na requisição e não precisa mais ser passado no polling.

#### Merchant

> Merchant é o estabelecimento (loja) que oferece pratos/produtos na plataforma \
> Pode ser um restaurante, mercado, farmácia, petshop dentre outros tipos de estabelecimentos comerciais.

#### Polling

> Mecanismo utilizado pelo cliente para receber eventos do servidor. \
> A requisição de polling é um comando feito para obter eventos recentes relacionados aos pedidos realizados. \
> Este comando deve ser feito periodicamente para que novos eventos sejam identificados e recebidos. \
> Para confirmar o recebimento de um evento recebido no polling deve ser feito um acknowledgment.

#### Rate Limit

> Rate Limit é o número máximo de requisições que um único aplicativo pode fazer em um determinado período de tempo. Quando o aplicativo excede esse limite, a solicitação da API falhará e retornará um código de status HTTP 429.

#### Open Delivery

> O Open Delivery chegou para resolver o desafio de organizar e padronizar o fluxo de informações entre restaurantes, canais de venda - aplicativos e marketplaces - e sistemas de gestão. \
> Assim, as informações de cardápios e pedidos são uniformizadas e as solicitações de clientes recebidas em um único lugar de forma eficiente (pelo sistema de PDV, por exemplo), permitindo ao restaurante trabalhar com melhor gestão de pedidos e viabilizando trabalhar com mais parceiros.\
> \
> Mais informações em <https://www.opendelivery.org.br/sobre>

#### Portal do merchant

> Área destinada à utilização do merchant para configuração de canais de venda, operadores logísticos, profissionais e shopping.

#### Portal do cliente

Portal destinado aos clientes da Hub Delivery para acompanhamento de merchants, vendas, estatísticas de utilização, desempenho e faturas.


# Boas práticas

**Protocolo HTTPS**&#x20;

> Toda comunicação com as APIs da Hub Delivery requerem o uso de HTTPS, com TLS 1.2 ou superior. \
> Caso essas condições não sejam atendidas, as APIs **não funcionarão.**&#x20;
>
> Além disso, o envio de credenciais via HTTP é uma grave falha de segurança e é desencorajada sob quaisquer circunstâncias.

#### Rate Limits

> Rate Limit é o número máximo de requisições que um único aplicativo pode fazer em um determinado período de tempo. Quando o aplicativo excede esse limite, a solicitação da API falhará e retornará um código de status HTTP 429.\
> \
> **Em caso de erro 429 revise o comportamento do seu aplicativo** Em muitos casos, um aplicativo acaba sendo bloqueado quando entra em algum estado de looping por uma falha ou comportamento inesperado. Caso receba esse erro, verifique se o aplicativo realmente deveria estar fazendo tantas requisições nesse endpoint

#### Conheça os rate limits por módulo

| Módulo          | Requisições por minuto |
| --------------- | ---------------------- |
| License Manager | 20 req/min.            |
| Merchants       | 20 req/min.            |
| Orders          | 40 req/min.            |


# API Reference

Utilize nossas APIS para acompanhar nosso revolução no ecossistema de alimentação fora do lar.

{% content-ref url="/pages/MlI4VIvXtcs740pv1knA" %}
[Licenses](/orders/licenses)
{% endcontent-ref %}

{% content-ref url="/pages/UiA9xh0hL6a5kNHWDUOJ" %}
[Merchants](/orders/merchants)
{% endcontent-ref %}

{% content-ref url="/pages/uBBgcOIyLmlEOSQuinmf" %}
[Orders](/orders/orders)
{% endcontent-ref %}

{% hint style="info" %}
**Postman**
{% endhint %}

<https://postman.myhubdelivery.io>


# Licenses

{% content-ref url="/pages/kOupU6QdA1UB4Am4nstz" %}
[Authentication](/orders/licenses/authentication)
{% endcontent-ref %}

{% content-ref url="/pages/bGpeoAi5KrWMLE22q1Vw" %}
[Sign Up](/orders/licenses/sign-up)
{% endcontent-ref %}


# Authentication

## Realiza a criação de um token de acesso aos serviços

<mark style="color:green;">`POST`</mark> `https://{account}.myhubdelivery.io/license-manager/api/v1/oauth/token`

**Content-Type:** application/x-www-form-urlencoded

#### Request Body

| Name                                             | Type   | Description              |
| ------------------------------------------------ | ------ | ------------------------ |
| client\_id<mark style="color:red;">\*</mark>     | String | <\<AccountClientID>>     |
| client\_secret<mark style="color:red;">\*</mark> | String | <\<AccountClientSecret>> |
| grant\_type<mark style="color:red;">\*</mark>    | String | client\_credentials      |

{% tabs %}
{% tab title="200: OK " %}

```javascript
{
    "access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJBY2NvdW50SWQiOiIyYllsNndnTTlaIiwiQWNjb3VudFNsdWciOiJodWJkZWxpdmVyeSIsIk1lcmNoYW50cyI6IltdIiwicm9sZSI6IkFwaVB1YmxpYyIsIkFwaVB1YmxpYyI6InRydWUiLCJTY29wZXMiOiJpby5hbGwiLCJuYmYiOjE2NTI5ODQ4MDEsImV4cCI6MTY1MzA3MTIwMSwiaWF0IjoxNjUyOTg0ODAxfQ.V717416_87wxYHlpFx587l0dNEwTjdlEmNpPzOua2nbFlN6H2RQ",
    "token_type": "Bearer",
    "expires_in": 86400
}
```

{% endtab %}

{% tab title="401: Unauthorized " %}

```javascript
{
    "type": "https://tools.ietf.org/html/rfc7235#section-3.1",
    "title": "Unauthorized",
    "status": 401,
    "traceId": "00-cd0c0257a67e9a3fe57dc8c160e01607-b5994934dd13d84f-01"
}
```

{% endtab %}
{% endtabs %}

{% hint style="info" %}
**Exemplo da requisição em formato CURL**
{% endhint %}

```
curl --location --request POST 'https://{account}.myhubdelivery.io/license-manager/api/v1/oauth/token' \CU
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'client_id=AccountClientID>>' \
--data-urlencode 'client_secret=AccountClientSecret>>' \
--data-urlencode 'grant_type=client_credentials'
```


# Sign Up

Utilize o endpoint abaixo para o registro de um novo merchant no ecossistema da Hub Delivery.

## Registro de um novo merchant

<mark style="color:green;">`POST`</mark> `https://{account}.myhubdelivery.io/license-manager/api/v1/signup`

**Content-Type:** application/json

#### Headers

| Name          | Type   | Description                  |
| ------------- | ------ | ---------------------------- |
| Authorization | String | Bearer <\<OAuthBearerToken>> |

#### Request Body

| Name                                                | Type   | Description                                             |
| --------------------------------------------------- | ------ | ------------------------------------------------------- |
| document<mark style="color:red;">\*</mark>          | String | CNPJ do lojista                                         |
| email<mark style="color:red;">\*</mark>             | String | E-mail do lojista (Obrigatório para o Merchant Portal)  |
| name<mark style="color:red;">\*</mark>              | String | Nome fantasia do lojista                                |
| corporateName<mark style="color:red;">\*</mark>     | String | Razão Social do lojista                                 |
| phoneNumberMobile<mark style="color:red;">\*</mark> | String | Celular do lojista (Obrigatório para o Merchant Portal) |

{% tabs %}
{% tab title="200: OK " %}

```javascript
{
  "id": "1dbBjnBRmQ"
}
```

{% endtab %}

{% tab title="401: Unauthorized " %}

```javascript
{
    "type": "https://tools.ietf.org/html/rfc7235#section-3.1",
    "title": "Unauthorized",
    "status": 401,
    "traceId": "00-cd0c0257a67e9a3fe57dc8c160e01607-b5994934dd13d84f-01"
}
```

{% endtab %}

{% tab title="400: Bad Request " %}

```javascript
[
    { "code": 100, "message": "Document already exists" },
    { "code": 101, "message": "E-mails Empty" }
]
```

{% endtab %}
{% endtabs %}

{% hint style="success" %}
**Exemplo do conteúdo(body) da requisição**
{% endhint %}

```json
{
    "document": "17767999000100",
    "email": "signup@hubdelivery.com.br",
    "name": "Hub Delivery",
    "corporateName": "CBSD - COMPANHIA BRASILEIRA DE SOFTWARE PARA DELIVERY LTDA",
    "phoneNumberMobile": "11910588280",
    "type": "RESTAURANT|GROCERY"
}
```

{% hint style="info" %}
**Exemplo da requisição em formato CURL**
{% endhint %}

```
curl --location --request POST 'https://{account}.myhubdelivery.io/license-manager/api/v1/signup' \
--header 'Authorization: Bearer null' \
--header 'Content-Type: application/json' \
--data-raw '{
    "document": "17767999000100",
    "email": "signup@hubdelivery.com.br",
    "name": "Hub Delivery",
    "corporateName": "CBSD - COMPANHIA BRASILEIRA DE SOFTWARE PARA DELIVERY LTDA",
    "phoneNumberMobile": "11910588280",
    "type": "RESTAURANT|GROCERY"
}'
```

{% hint style="warning" %}
**Importante**
{% endhint %}

**Ao realizar o pré cadastro (SignUp) , é obrigatório a gravação do identificador gerado para as futuras iterações no ecossistema de apis e portal do merchant da Hub Delivery.**

**Após a realização do SignUp é recomendada uma nova autenticação para identificação dos merchants autorizados para a account.**


# Merchants

{% content-ref url="/pages/rtCefpAYxQk1kyPsmRLX" %}
[Sale Channels](/orders/merchants/sale-channels)
{% endcontent-ref %}

{% content-ref url="/pages/kgeiOFEL3k3C3R6zSjSD" %}
[Logistic Operators](/orders/merchants/logistic-operators)
{% endcontent-ref %}

#### Pesquisar merchants

## Pesquisa de merchants

<mark style="color:blue;">`GET`</mark> `https://{account}.myhubdelivery.io/merchants/api/v1/search`

#### Query Parameters

| Name      | Type    | Description            |
| --------- | ------- | ---------------------- |
| name      | String  |                        |
| status    | String  | AVAILABLE\|UNAVAILABLE |
| latitude  | double  |                        |
| longitude | double  |                        |
| offset    | integer | Min 0                  |
| limit     | integer | Min 1                  |

{% tabs %}
{% tab title="200: OK " %}

```javascript
{
    "total": 1,
    "merchants": [
        {
            "id": "Jj9gZoBbxY",
            "name": "Restaurant",
            "description": null,
            "imageUrl": "",
            "status": "AVAILABLE",
            "distance": 0
        }
    ]
}
```

{% endtab %}

{% tab title="401: Unauthorized " %}

```javascript
{
    // Response
}
```

{% endtab %}

{% tab title="400: Bad Request " %}

```javascript
{
    // Response
}
```

{% endtab %}
{% endtabs %}

#### Alterar aceite de pedidos

## Alterar o tipo de aceite de pedidos

<mark style="color:purple;">`PATCH`</mark> `https://{account}.myhubdelivery.io/merchants/api/v1/{merchantId}/orderAcceptType`

Os pedidos podem ser aceitos manualmente ou automáticamente pela Hub Delivery.\
Por padrão o aceite do merchant é o **MANUAL.**

#### Path Parameters

| Name                                         | Type   | Description               |
| -------------------------------------------- | ------ | ------------------------- |
| merchantId<mark style="color:red;">\*</mark> | String | Identificador do merchant |

#### Request Body

| Name                                              | Type   | Description       |
| ------------------------------------------------- | ------ | ----------------- |
| orderAcceptType<mark style="color:red;">\*</mark> | String | MANUAL\|AUTOMATIC |

{% tabs %}
{% tab title="204: No Content " %}

```javascript
{
    // Response
}
```

{% endtab %}

{% tab title="401: Unauthorized " %}

```javascript
{
    // Response
}
```

{% endtab %}

{% tab title="400: Bad Request " %}

```javascript
{
    // Response
}
```

{% endtab %}
{% endtabs %}

{% hint style="success" %}
**Exemplo da requisição (Body)**
{% endhint %}

```json
{
   "orderAcceptType": "MANUAL|AUTOMATIC"
}
```

{% hint style="info" %}
**CURL**
{% endhint %}

```
curl --location --request PATCH 'https://{account}.myhubdelivery.io/merchants/api/v1/{merchantId}/orderAcceptType' \
--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJBY2NvdW5...' \
--header 'Content-Type: application/json' \
--data-raw '{
    "orderAcceptType": "MANUAL|AUTOMATIC"
}'
```

#### Atualização de Merchant - Upload

## Atualizar o merchant via Upload

<mark style="color:green;">`POST`</mark> `https://{account}.myhubdelivery.io/merchants/api/v1/{merchantId}/merchantUpdate/upload`

{% tabs %}
{% tab title="204: No Content " %}

```javascript
{
    // Response
}
```

{% endtab %}

{% tab title="401: Unauthorized " %}

```javascript
{
    // Response
}
```

{% endtab %}

{% tab title="400: Bad Request " %}

```javascript
{
    // Response
}
```

{% endtab %}
{% endtabs %}

{% hint style="success" %}
**Exemplo do conteúdo da requisição**
{% endhint %}

```json
{
  "merchant": {
    "lastUpdate": "2022-05-25T14:32:41.869Z",
    "ttl": 0,
    "id": "string",
    "status": "string",
    "basicInfo": {
      "name": "string",
      "document": "string",
      "corporateName": "string",
      "description": "string",
      "averageTicket": 0,
      "averagePreparationTime": 0,
      "minOrderValue": {
        "value": 0,
        "currency": "string"
      },
      "merchantType": "string",
      "merchantCategories": [
        "string"
      ],
      "address": {
        "country": "string",
        "state": "string",
        "city": "string",
        "district": "string",
        "street": "string",
        "number": "string",
        "postalCode": "string",
        "complement": "string",
        "latitude": 0,
        "longitude": 0,
        "reference": "string"
      },
      "contactEmails": [
        "string"
      ],
      "contactPhones": {
        "commercialNumber": "string",
        "whatsappNumber": "string"
      },
      "logoImage": {
        "url": "string",
        "crC32": "string"
      },
      "bannerImage": {
        "url": "string",
        "crC32": "string"
      },
      "createdAt": "2022-05-25T14:32:41.869Z"
    },
    "services": [
      {
        "id": "string",
        "status": "string",
        "serviceType": "string",
        "menuId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
        "serviceArea": {
          "id": "string",
          "polygon": [
            {
              "geoCoordinates": [
                {
                  "latitude": 0,
                  "longitude": 0
                }
              ],
              "price": {
                "value": 0,
                "currency": "string"
              },
              "estimateDeliveryTime": 0
            }
          ],
          "geoRadius": {
            "geoMidpointLatitude": 0,
            "geoMidpointLongitude": 0,
            "radius": [
              {
                "size": 0,
                "price": {
                  "value": 0,
                  "currency": "string"
                },
                "estimateDeliveryTime": 0
              }
            ]
          }
        },
        "serviceHours": {
          "id": "string",
          "weekHours": [
            {
              "dayOfWeek": [
                "string"
              ],
              "timePeriods": {
                "startTime": "string",
                "endTime": "string"
              }
            }
          ],
          "holidayHours": [
            {
              "date": "string",
              "timePeriods": {
                "startTime": "string",
                "endTime": "string"
              }
            }
          ]
        }
      }
    ],
    "items": [
      {
        "id": "string",
        "name": "string",
        "description": "string",
        "externalCode": "string",
        "ean": "string",
        "image": {
          "url": "string",
          "crC32": "string"
        },
        "serving": 0,
        "unit": "string",
        "nutritionalInfo": {
          "description": "string",
          "calories": "string",
          "allergen": [
            "string"
          ],
          "suitableDiet": [
            "string"
          ],
          "additives": [
            "string"
          ],
          "isAlcoholic": true
        }
      }
    ],
    "menus": [
      {
        "id": "string",
        "name": "string",
        "description": "string",
        "externalCode": "string",
        "disclaimer": "string",
        "disclaimerURL": "string",
        "categoryId": [
          "string"
        ]
      }
    ],
    "categories": [
      {
        "id": "string",
        "index": 0,
        "name": "string",
        "description": "string",
        "image": {
          "url": "string",
          "crC32": "string"
        },
        "externalCode": "string",
        "status": "string",
        "availabilityId": [
          "string"
        ],
        "itemOfferId": [
          "string"
        ]
      }
    ],
    "itemOffers": [
      {
        "id": "string",
        "itemId": "string",
        "index": 0,
        "price": {
          "value": 0,
          "originalValue": 0,
          "currency": "string"
        },
        "availabilityId": [
          "string"
        ],
        "optionGroupsId": [
          "string"
        ]
      }
    ],
    "optionGroups": [
      {
        "id": "string",
        "index": 0,
        "name": "string",
        "description": "string",
        "externalCode": "string",
        "status": "string",
        "minPermitted": 0,
        "maxPermitted": 0,
        "options": [
          {
            "id": "string",
            "itemId": "string",
            "index": 0,
            "price": {
              "value": 0,
              "originalValue": 0,
              "currency": "string"
            },
            "maxPermitted": 0
          }
        ]
      }
    ],
    "availabilities": [
      {
        "id": "string",
        "startDate": "2022-05-25T14:32:41.869Z",
        "endDate": "2022-05-25T14:32:41.869Z",
        "hours": [
          {
            "dayOfWeek": [
              "string"
            ],
            "timePeriods": {
              "startTime": "string",
              "endTime": "string"
            }
          }
        ]
      }
    ]
  },
  "updates": {
    "merchantStatus": "string",
    "entityType": "string",
    "updatedObjects": [
      null
    ]
  }
}
```

## Atualização de Merchant

<mark style="color:green;">`POST`</mark>\
`https://{account}.myhubdelivery.io/merchants/api/v1/{merchantId}/merchantUpdate`

{% hint style="success" %}
**Exemplo do conteúdo da requisição**
{% endhint %}

```json
{
    "merchantStatus": "AVAILABLE|UNAVAILABLE",
    "entityType": "MENU",
    "updatedObjects": [     
    ]
J}
```

## Remove um Merchant

<mark style="color:red;">`DELETE`</mark> `https://{account}.myhubdelivery.io/merchants/api/v1/{merchantId}`

## Consulta do status de um Merchant

<mark style="color:blue;">`GET`</mark> `https://{account}.myhubdelivery.io/merchants/api/v1/{merchantId}/status`

{% tabs %}
{% tab title="200: OK " %}

```javascript
{
    "status": "AVAILABLE|UNAVAILABLE"
}
```

{% endtab %}
{% endtabs %}

## Atualiza o status de um Merchant

<mark style="color:purple;">`PATCH`</mark> `https://{account}.myhubdelivery.io/merchants/api/v1/{merchantId}/status`

Caso o valor enviado seja UNAVAILABLE, os pedidos serão cancelados automaticamente.

#### Request Body

| Name                                     | Type   | Description              |
| ---------------------------------------- | ------ | ------------------------ |
| status<mark style="color:red;">\*</mark> | String | AVAILABLE \| UNAVAILABLE |

{% hint style="success" %}
**Exemplo do conteúdo da requisição**
{% endhint %}

```json
{
    "status": "AVAILABLE|UNAVAILABLE"
}
```

## Lista de todas as categorias de merchant

<mark style="color:blue;">`GET`</mark> `https://{account}.myhubdelivery.io/merchants/api/v1/categories`

{% tabs %}
{% tab title="200: OK " %}

```javascript
[
  {
    "id": "Yj1343d9M8",
    "name": "BURGERS",
    "type": "RESTAURANT"
  }
]
```

{% endtab %}
{% endtabs %}


# Sale Channels

## Lista de todos os canais de venda

<mark style="color:blue;">`GET`</mark> `https://{account}.myhubdelivery.io/merchants/api/v1/{merchantId}/saleChannels`

#### Query Parameters

| Name                                          | Type   | Description               |
| --------------------------------------------- | ------ | ------------------------- |
| merchantId <mark style="color:red;">\*</mark> | String | Identificador do merchant |

#### Headers

| Name                                            | Type   | Description          |
| ----------------------------------------------- | ------ | -------------------- |
| Authorization<mark style="color:red;">\*</mark> | String | Bearer ZjQ2MTRiY.... |

{% tabs %}
{% tab title="200: OK " %}

```javascript
[
  {
    "id": "er125wded",
    "sourceAppId": "b9d3ae05b30e4235b6ac1992aef5970b",
    "name": "Ifood",
    "installed": true
  }
]
```

{% endtab %}
{% endtabs %}

## Habilita o canal de vendas no merchant

<mark style="color:green;">`POST`</mark> `https://{account}.myhubdelivery.io/merchants/api/v1/{merchantId}/saleChannels/{saleChannelId}`

{% hint style="success" %}
**Exemplo do conteúdo da requisição**
{% endhint %}

```json
{
  "tradePolicy": {
    "policy": "NONE|UP|DOWN",
    "value": 0
  },
  "configurations": [
    {
      "key": "",
      "value": ""
    }
  ]
}
```

## Atualiza o canal de vendas no merchant

<mark style="color:orange;">`PUT`</mark> `https://{account}.myhubdelivery.io/merchants/api/v1/{merchantId}/saleChannels/{saleChannelId}`

{% hint style="success" %}
**Exemplo do conteúdo da requisição**
{% endhint %}

```json
{
  "tradePolicy": {
    "policy": "NONE|UP|DOWN",
    "value": 0
  },
  "configurations": [
    {
      "key": "",
      "value": ""
    }
  ]
}
```

## Remove o canal de venda para o Merchant

<mark style="color:red;">`DELETE`</mark> `https://{account}.myhubdelivery.io/merchants/api/v1/{merchantId}/saleChannels/{saleChannelId}`

## Inicia a captação de vendas em todos os canais habilitados para o Merchant

<mark style="color:green;">`POST`</mark> `https://{account}.myhubdelivery.io/merchants/api/v1/{merchantId}/saleChannels/start`

## Pausa a captação de vendas em todos os canais habilitados para o Merchant

<mark style="color:green;">`POST`</mark> `https://{account}.myhubdelivery.io/merchants/api/v1/{merchantId}/saleChannels/stop`

## Inicia a captação de vendas no canal de venda para o Merchant

<mark style="color:green;">`POST`</mark> `https://{account}.myhubdelivery.io/merchants/api/v1/{merchantId}/saleChannels/{saleChannelId}/start`

{% tabs %}
{% tab title="200: OK " %}

```javascript
{
    // Response
}
```

{% endtab %}
{% endtabs %}

## Pausa a captação de vendas no canal de venda para o Merchant

<mark style="color:green;">`POST`</mark> `https://{account}.myhubdelivery.io/merchants/api/v1/{merchantId}/saleChannels/{saleChannelId}/stop`

{% tabs %}
{% tab title="200: OK " %}

```javascript
{
    // Response
}
```

{% endtab %}
{% endtabs %}

{% hint style="warning" %}
**Considerações importantes**
{% endhint %}

Por questão de segurança, no ambiente sandbox a comunicação com os canais de venda e operadores logísticos são restritos, para a criação de pedidos utilize a rota de pedidos [Fake](/orders/orders).


# Logistic Operators

## Lista de todos os operadores logísticos

<mark style="color:blue;">`GET`</mark> `https://{account}.myhubdelivery.io/merchants/api/v1/{merchantId}/logisticOperators`

{% tabs %}
{% tab title="200: OK " %}

```javascript
[
  {
    "id": "883i8thuT",
    "name": "Bdoo"
  }
]
```

{% endtab %}
{% endtabs %}

## Habilita o operador logístico no merchant

<mark style="color:green;">`POST`</mark> `https://{account}.myhubdelivery.io/merchants/api/v1/{merchantId}/logisticOperators/{logisticOperatorId}`

{% hint style="success" %}
**Exemplo do conteúdo da requisição**
{% endhint %}

```json
[
  { "key": "BDOO.CLIENT_ID", "value": "SEU CLIENT ID" },
  { "key": "BDOO.CLIENT_SECRET", "value": "SEU CLIENT SECRET" }
]
```

## Atualiza o operador logístico no merchant

<mark style="color:orange;">`PUT`</mark> `https://{account}.myhubdelivery.io/merchants/api/v1/{merchantId}/logisticOperators/{logisticOperatorId}`

{% hint style="success" %}
**Exemplo do conteúdo da requisição**
{% endhint %}

```json
[
  { "key": "BDOO.CLIENT_ID", "value": "SEU CLIENT ID" },
  { "key": "BDOO.CLIENT_SECRET", "value": "SEU CLIENT SECRET" }
]
```

## Remove o operador logístico do Merchant

<mark style="color:red;">`DELETE`</mark> `https://{account}.myhubdelivery.io/merchants/api/v1/{merchantId}/logisticOperators/{logisticOperatorId}`

## Consulta o operador logístico no Merchant

<mark style="color:blue;">`GET`</mark> `https://{account}.myhubdelivery.io/merchants/api/v1/{merchantId}/logisticOperators/{logisticOperatorId}`

{% tabs %}
{% tab title="200: OK " %}

```json
[
  { "key": "BDOO.CLIENT_ID", "value": "SEU CLIENT ID" },
  { "key": "BDOO.CLIENT_SECRET", "value": "SEU CLIENT SECRET" }
]
```

{% endtab %}
{% endtabs %}

## Associa um operador logístico ao canal de venda

<mark style="color:green;">`POST`</mark> `https://{account}.myhubdelivery.io/merchants/api/v1/{merchantId}/logisticOperators/{logisticOperatorId}/{saleChannelId}/associate`

{% tabs %}
{% tab title="200: OK " %}

```javascript
{
    // Response
}
```

{% endtab %}
{% endtabs %}

## Desassocia um operador logístico ao canal de venda

<mark style="color:red;">`DELETE`</mark> `https://{account}.myhubdelivery.io/merchants/api/v1/{merchantId}/logisticOperators/{logisticOperatorId}/{saleChannelId}/disassociate`

{% tabs %}
{% tab title="200: OK " %}

```javascript
{}
```

{% endtab %}
{% endtabs %}

{% hint style="warning" %}
**Considerações importantes**
{% endhint %}

Por questão de segurança, no ambiente sandbox a comunicação com os canais de venda e operadores logísticos são restritos, para a criação de pedidos utilize a rota de pedidos [Fake](/orders/orders).


# Orders

{% content-ref url="/pages/d3Z3UtzJcxU5itmdroAp" %}
[Events](/orders/orders/events)
{% endcontent-ref %}

{% content-ref url="/pages/yVVpmLFSwzTXXEkRdiUh" %}
[Order](/orders/orders/order)
{% endcontent-ref %}

{% content-ref url="/pages/ItUO9WYCj66cTpy2SUzK" %}
[Cancellations](/orders/orders/cancellations)
{% endcontent-ref %}


# Events

{% hint style="success" %}
Utilizamos a especificação Open Delivery para o tratamento de eventos.\
<https://abrasel-nacional.github.io/docs/#operation/pollingEvents>
{% endhint %}

#### Polling

<mark style="color:blue;">`GET`</mark> `https:/{{account}}.myhubdelivery.io/orders/api/v1/events:polling`

**Acknowledgment**

<mark style="color:green;">`POST`</mark> `https:/{{account}}.myhubdelivery.io/orders/api/v1/events/acknowledgment`


# Order

{% hint style="success" %}
Utilizamos a especificação Open Delivery para o tratamento de pedidos.\
<https://abrasel-nacional.github.io/docs/#tag/ordersOverview>\
<https://abrasel-nacional.github.io/docs/#tag/ordersStatus>
{% endhint %}

## Consulta um pedido pelo identificador

<mark style="color:blue;">`GET`</mark> `https://{account}.myhubdelivery.io/orders/api/v1/{orderId}`

## Confirma um pedido

<mark style="color:green;">`POST`</mark> `https://{account}.myhubdelivery.io/orders/api/v1/{orderId}/confirm`

{% hint style="success" %}
**Exemplo do conteúdo da requisição**
{% endhint %}

```json
{
  "reason": "string",
  "createdAt": "2022-05-25T16:44:15.179Z",
  "orderExternalCode": "string"
}
```

## Atualiza o pedido para disponível para coleta.

<mark style="color:green;">`POST`</mark> `https://{account}.myhubdelivery.io/orders/api/v1/{orderId}/readyForPickup`

## Atualiza o pedido para depachado.

<mark style="color:green;">`POST`</mark> `https://{account}.myhubdelivery.io/orders/api/v1/{orderId}/dispatch`

Está operação é automática caso o operador logístico informe a posição do pedido em tempo real.

## Atualiza o pedido para entregue

<mark style="color:green;">`POST`</mark> `https://{account}.myhubdelivery.io/orders/api/v1/{orderId}/delivered`

Está operação é automática caso o operador logístico informe a posição do pedido em tempo real.

## Gera um pedido fake para fluxo de pedidos.

<mark style="color:green;">`POST`</mark> `https://sandbox.myhubdelivery.io/orders/api/v1/{merchantId}/fake`

#### Headers

| Name                                            | Type   | Description                   |
| ----------------------------------------------- | ------ | ----------------------------- |
| Authorization<mark style="color:red;">\*</mark> | String | Bearer <\<AuthorizatioToken>> |

#### Request Body

| Name                                        | Type   | Description                      |
| ------------------------------------------- | ------ | -------------------------------- |
| <\<Body>><mark style="color:red;">\*</mark> | String | Todos os campos são obrigatórios |

{% hint style="warning" %}
Para pedidos agendados (**scheduled**), é obrigatória o preenchimento do parâmetro **scheduledDateTime** com data em **UTC**.
{% endhint %}

{% hint style="success" %}
**Exemplo do conteúdo da requisição**
{% endhint %}

```json
{
  "saleChannelId": "JjVg9oBbxK",
  "sourceAppId": "0babcbcf2d5c4c69a9d1b6677cb4f593",
  "type": "DELIVERY|TAKEOUT|INDOOR",
  "scheduled": false,
  "scheduledDateTime": null,
  "extraInfo": "Pedido Teste",
  "items": [
    {
      "name": "X-Burger",
      "externalCode": "0101",
      "quantity": 1,
      "unitPrice": 10,
      "specialInstructions": "Remover mostarda",
      "options": [
        {
          "name": "Coca-Cola",
          "externalCode": "COC",
          "quantity": 1,
          "unitPrice": 0,
          "specialInstructions": ""
        }
      ]
    }
  ]
}
```

## Gera um pedido fake para fluxo de pedidos. (Com todos os dados do pedido)

<mark style="color:green;">`POST`</mark> `https://sandbox.myhubdelivery.io/orders/api/v1/{merchantId}/fake/complete`

#### Headers

| Name                                                 | Type   | Description                      |
| ---------------------------------------------------- | ------ | -------------------------------- |
| <\<Authorization>><mark style="color:red;">\*</mark> | String | Bearer <\<AuthorizatioToken>>    |
| <\<Body>><mark style="color:red;">\*</mark>          | String | Todos os campos são obrigatórios |

{% hint style="warning" %}
Para pedidos agendados (**scheduled**), é obrigatória o preenchimento do parâmetro **scheduledDateTime** com data em **UTC**.
{% endhint %}

{% hint style="success" %}
**Exemplo do conteúdo da requisição**
{% endhint %}

```json
{
 "saleChannelId": "JjVg9oBbxK",
  "sourceAppId": "0babcbcf2d5c4c69a9d1b6677cb4f593",
  "order": {
    "uniqueId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "id": "string",
    "type": "string",
    "displayId": "string",
    "createdAt": "2023-04-24T16:58:31.249Z",
    "orderTiming": "string",
    "merchant": {
      "id": "string",
      "name": "string"
    },
    "items": [
      {
        "id": "string",
        "index": 0,
        "name": "string",
        "externalCode": "string",
        "unit": "string",
        "quantity": 0,
        "specialInstructions": "string",
        "unitPrice": {
          "value": 0,
          "currency": "string"
        },
        "optionsPrice": {
          "value": 0,
          "currency": "string"
        },
        "totalPrice": {
          "value": 0,
          "currency": "string"
        },
        "options": [
          {
            "id": "string",
            "name": "string",
            "externalCode": "string",
            "unit": "string",
            "quantity": 0,
            "unitPrice": {
              "value": 0,
              "currency": "string"
            },
            "totalPrice": {
              "value": 0,
              "currency": "string"
            },
            "specialInstructions": "string"
          }
        ]
      }
    ],
    "otherFees": [
      {
        "name": "string",
        "type": "string",
        "receivedBy": "string",
        "receiverDocument": "string",
        "price": {
          "value": 0,
          "currency": "string"
        },
        "observation": "string"
      }
    ],
    "discounts": [
      {
        "amount": {
          "currency": "string",
          "value": 0
        },
        "target": "string",
        "targetId": "string",
        "sponsorShipValues": [
          {
            "name": "string",
            "amount": {
              "currency": "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",
          "method": "string",
          "methodInfo": "string",
          "type": "string",
          "changeFor": 0
        }
      ]
    },
    "customer": {
      "id": "string",
      "phone": {
        "number": "string",
        "extension": "string"
      },
      "documentNumber": "string",
      "name": "string",
      "ordersCountOnMerchant": 0
    },
    "delivery": {
      "deliveredBy": "string",
      "deliveryAddress": {
        "country": "string",
        "street": "string",
        "formattedAddress": "string",
        "number": "string",
        "city": "string",
        "postalCode": "string",
        "coordinates": {
          "latitude": 0,
          "longitude": 0
        },
        "district": "string",
        "state": "string",
        "complement": "string",
        "deliveryDateTime": "2023-04-24T16:58:31.250Z"
      },
      "estimatedDeliveryDateTime": "2023-04-24T16:58:31.250Z"
    },
    "takeout": {
      "mode": "string",
      "takeoutDateTime": "2023-04-24T16:58:31.250Z"
    },
    "schedule": {
      "scheduleDateTime": "2023-04-24T16:58:31.250Z"
    },
    "indoor": {
      "mode": "string",
      "indoorDeliveryDateTime": "2023-04-24T16:58:31.250Z",
      "table": "string"
    },
    "extraInfo": "string"
  }
}
```


# Cancellations

{% hint style="success" %}
Utilizamos a especificação Open Delivery para o tratamento de pedidos.\
<https://abrasel-nacional.github.io/docs/#tag/ordersCancellation>
{% endhint %}

## Solicita o cancelamento de um pedido

<mark style="color:green;">`POST`</mark> `https://{account}.myhubdelivery.io/orders/api/v1/{orderId}/requestCancellation`

#### Path Parameters

| Name                                      | Type   | Description             |
| ----------------------------------------- | ------ | ----------------------- |
| orderId<mark style="color:red;">\*</mark> | String | Identificador do pedido |

#### Headers

| Name                                            | Type   | Description |
| ----------------------------------------------- | ------ | ----------- |
| Authorization<mark style="color:red;">\*</mark> | String | Bearer ...  |

#### Request Body

| Name                                     | Type           | Description                                                                                                                                                                                                                                                         |
| ---------------------------------------- | -------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| reason<mark style="color:red;">\*</mark> | String         | Razão do cancelamento                                                                                                                                                                                                                                               |
| code<mark style="color:red;">\*</mark>   | String         | "SYSTEMIC\_ISSUES" "DUPLICATE\_APPLICATION" "UNAVAILABLE\_ITEM" "RESTAURANT\_WITHOUT\_DELIVERY\_MAN" "OUTDATED\_MENU" "ORDER\_OUTSIDE\_THE\_DELIVERY\_AREA" "BLOCKED\_CUSTOMER" "OUTSIDE\_DELIVERY\_HOURS" "INTERNAL\_DIFFICULTIES\_OF THE RESTAURANT" "RISK\_AREA" |
| mode                                     | String         | "AUTO" "MANUAL"                                                                                                                                                                                                                                                     |
| outOfStockItems                          | Array\<String> |                                                                                                                                                                                                                                                                     |
| invalidItems                             | Array\<String> |                                                                                                                                                                                                                                                                     |

{% tabs %}
{% tab title="201: Created " %}

```javascript
{
    // Response
}
```

{% endtab %}

{% tab title="400: Bad Request " %}

```javascript
{
    // Response
}
```

{% endtab %}

{% tab title="401: Unauthorized " %}

```javascript
{
    // Response
}
```

{% endtab %}
{% endtabs %}

{% hint style="success" %}
**Exemplo do conteúdo da requisição**
{% endhint %}

```json
{
  "reason": "",
  "code": "",
  "mode": "AUTO|MANUAL",
  "outOfStockItems": [
    ""
  ],
  "invalidItems": [
    ""
  ]
}
```

## Aceita a solicitação de cancelamento enviada pelo canal de vendas

<mark style="color:green;">`POST`</mark> `https://{account}.myhubdelivery.io/orders/api/v1/{orderId}/acceptCancellation`

## Rejeita a solicitação de cancelamento enviada pelo canal de vendas

<mark style="color:green;">`POST`</mark> `https://{account}.myhubdelivery.io/orders/api/v1/{orderId}/denyCancellation`

{% hint style="success" %}
**Exemplo do conteúdo da requisição**
{% endhint %}

```json
{
  "reason": "",
  "code": ""
}
```

## Força o cancelamento do pedido pelo canal

<mark style="color:purple;">`PATCH`</mark> `https://{account}.myhubdelivery.io/orders/api/v1/{orderId}/cancellation/force`

Esta operação só é permitida em sandbox, não existindo em produção

#### Path Parameters

| Name                                      | Type | Description             |
| ----------------------------------------- | ---- | ----------------------- |
| orderId<mark style="color:red;">\*</mark> | UUID | Identificação do pedido |

{% tabs %}
{% tab title="200: OK " %}

{% endtab %}
{% endtabs %}


# Loyalty

{% content-ref url="/pages/2IXvXoSeQFD4q9ruEWKk" %}
[Programs](/orders/loyalty/programs)
{% endcontent-ref %}

{% content-ref url="/pages/r23UtL6hWrBz27qSrHHy" %}
[Affiliations](/orders/loyalty/affiliations)
{% endcontent-ref %}

{% content-ref url="/pages/5f1bdgsuMQgUelQJEc0w" %}
[Credits](/orders/loyalty/credits)
{% endcontent-ref %}

{% content-ref url="/pages/4AfRW0BAzWsPlaAOXLTH" %}
[Redeem](/orders/loyalty/redeem)
{% endcontent-ref %}

{% content-ref url="/pages/ObeTpANLre4rcrymliv0" %}
[Balance](/orders/loyalty/balance)
{% endcontent-ref %}

{% content-ref url="/pages/2eIzOO6JJH4pvlK3QxPk" %}
[Extract](/orders/loyalty/extract)
{% endcontent-ref %}


# Programs

Utilize o endpoints a seguir para a gestão dos programas de fidelidade disponíveis ao merchant.

## Lista de todos os programas de fidelidade disponíveis.

<mark style="color:blue;">`GET`</mark> `https://{account}.myhubdelivery.io/loyalty/api/v1/{merchantId}/programs`

#### Request Body

| Name                                         | Type   | Description |
| -------------------------------------------- | ------ | ----------- |
| merchantId<mark style="color:red;">\*</mark> | String |             |

{% tabs %}
{% tab title="200: OK " %}

```javascript
[
    {
        "id": "JWzgNngV9Z",
        "name": "Cliente Fiel",
        "affiliated": true
    },
    {
        "id": "2bYl6wgM9Z",
        "name": "Default",
        "affiliated": false
    }
]
```

{% endtab %}

{% tab title="401: Unauthorized " %}

```javascript
{
    "type": "https://tools.ietf.org/html/rfc7235#section-3.1",
    "title": "Unauthorized",
    "status": 401,
    "traceId": "00-cd0c0257a67e9a3fe57dc8c160e01607-b5994934dd13d84f-01"
}
```

{% endtab %}
{% endtabs %}


# Affiliations

Utilize os endpoints a seguir para a gestão das afiliações aos programas de fidelidade.

## Criação da afiliação do programa de fidelidade para o merchant

<mark style="color:green;">`POST`</mark> `https://{account}.myhubdelivery.io/loyalty/api/v1/{merchantId}/affiliations/{programId}`

#### Request Body

| Name | Type   | Description |
| ---- | ------ | ----------- |
|      | String |             |
|      | String |             |
|      | String |             |

{% hint style="success" %}
**Exemplo do conteúdo da requisição**
{% endhint %}

```json
[
  {
    "key": "string",
    "value": "string"
  }
]
```

## Edição da afiliação do programa de fidelidade para o merchant

<mark style="color:orange;">`PUT`</mark> `https://{account}.myhubdelivery.io/loyalty/api/v1/{merchantId}/affiliations/{programId}`

{% hint style="success" %}
**Exemplo do conteúdo da requisição**
{% endhint %}

```json
[
  {
    "key": "string",
    "value": "string"
  }
]
```

## Remove uma afiliação do programa de fidelidade para o merchant

<mark style="color:red;">`DELETE`</mark> `https://{account}.myhubdelivery.io/loyalty/api/v1/{merchantId}/affiliations/{programId}`

## Consulta uma afiliação do programa de fidelidade para o merchant

<mark style="color:blue;">`GET`</mark> `https://{account}.myhubdelivery.io/loyalty/api/v1/{merchantId}/affiliations/{programId}`

{% tabs %}
{% tab title="200: OK " %}

```javascript
[
  {
    "key": "string",
    "value": "string"
  }
]
```

{% endtab %}
{% endtabs %}


# Credits

Utilize o endpoint a seguir para o crédito de pontos e valores nos programas de fidelidade.

## Crédito de pontos para o participante

<mark style="color:green;">`POST`</mark> `https://{account}.myhubdelivery.io/loyalty/api/v1/{merchantId}/credit/{programId}/{participantId}/points`

{% hint style="success" %}
**Exemplo do conteúdo da requisição**
{% endhint %}

```json
{
    "externalCode": "Identificador externo do crédito",
    "description": "Descrição do crédito",
    "expireAt": "2022-07-05T00:00:00.000Z",
    "points": 0
}
```

## Crédito de valores para o participante

<mark style="color:green;">`POST`</mark> `https://{account}.myhubdelivery.io/loyalty/api/v1/{merchantId}/credit/{programId}/{participantId}/amount`

{% hint style="success" %}
**Exemplo do conteúdo da requisição**
{% endhint %}

```json
{
    "externalCode": "Identificador externo do crédito",
    "description": "Descrição do crédito",
    "expireAt": "2022-07-05T00:00:00.000Z",
    "amount": 1.99
}
```


# Redeem

Utilize o endpoint a seguir para o resgate de pontos e valores da conta corrente do participante nos programas de fidelidade.

## Resgate de pontos

<mark style="color:green;">`POST`</mark> `https://{account}.myhubdelivery.io/loyalty/api/v1/{merchantId}/redeem/{programId}/{participantId}/points`

{% hint style="success" %}
**Exemplo do conteúdo da requisição**
{% endhint %}

```json
{
    "externalCode": "6c79ef4b-40a9-4266-9ee0-07f85062aa82",
    "description": "Resgate Cashback - Compra 123",
    "points": 100
}
```

## Resgate de valor

<mark style="color:green;">`POST`</mark> `https://{account}.myhubdelivery.io/loyalty/api/v1/{merchantId}/redeem/{programId}/{participantId}/amount`

{% hint style="success" %}
**Exemplo do conteúdo da requisição**
{% endhint %}

```json
{
    "externalCode": "6c79ef4b-40a9-4266-9ee0-07f85062aa82",
    "description": "Resgate Cashback - Compra 123",
    "amount": 1.99
}
```


# Balance

Utilize os endpoints a seguir para a consulta de saldo da conta corrente dos participantes nos programas de fidelidade.

## Obtém o saldo atual de pontos e valores do participante.

<mark style="color:blue;">`GET`</mark> `https://{account}.myhubdelivery.io/loyalty/api/v1/balance/{programId}/{participantId}`

#### Headers

| Name                                              | Type   | Description                                                                                                         |
| ------------------------------------------------- | ------ | ------------------------------------------------------------------------------------------------------------------- |
| x-merchants-ids<mark style="color:red;">\*</mark> | String | <p>Lista de Merchant ids que compõem o extrato do participante.<br><strong>Ex.: 1dbBjnBRmQ, 3duAjnNRmU</strong></p> |

{% tabs %}
{% tab title="200: OK " %}

```javascript
{
  "points": 0,
  "amount": 99999.99
}
```

{% endtab %}
{% endtabs %}


# Extract

Utilize o endpoint a seguir para a consulta de extrato de créditos, resgates e expirações da conta corrente do participante nos programas de fidelidade.

## Obtém o extrato de crédito, expirações e resgates do participante.

<mark style="color:blue;">`GET`</mark> `https://{account}.myhubdelivery.io/loyalty/api/v1/extract/{programId}/{participantId}`

#### Query Parameters

| Name                                        | Type   | Description                     |
| ------------------------------------------- | ------ | ------------------------------- |
| startAt<mark style="color:red;">\*</mark>   | Date   | 2022-01-01T00:00:00.000Z        |
| endAt<mark style="color:red;">\*</mark>     | Date   | 2022-12-31T00:00:00.000Z        |
| orderBy<mark style="color:red;">\*</mark>   | String | ASC\|DESC                       |
| operation<mark style="color:red;">\*</mark> | String | ALL\|CREDIT\|REDEEM\|EXPIRATION |
| expiresAfter                                | Date   | 2022-01-01T00:00:00.000Z        |

#### Headers

| Name                                              | Type   | Description                                                                                                         |
| ------------------------------------------------- | ------ | ------------------------------------------------------------------------------------------------------------------- |
| x-merchants-ids<mark style="color:red;">\*</mark> | String | <p>Lista de Merchant ids que compõem o extrato do participante.<br><strong>Ex.: 1dbBjnBRmQ, 3duAjnNRmU</strong></p> |

{% tabs %}
{% tab title="200: OK " %}

```javascript
[
    {
        "merchantId": "1dbBjnBRmQ",
        "operation": "CREDIT|REDEEM|EXPIRATION",
        "externalCode": "Identificador da operação",
        "description": "Descrição da operação",
        "points": 0,
        "amount": 0,
        "expiresAt": "2022-07-05T19:43:43.272Z",
        "expiredAt": "2022-07-05T19:43:43.272Z",
        "createdAt": "2022-07-05T19:43:43.272Z"
    }
]
```

{% endtab %}
{% endtabs %}


# Catalog


# Catalogs

### Criação de catálogos


# Menus


# Categories


# Item Offers


# Items


# Option Groups


# Options


# Hooks

Para a configuração dos hooks de pedidos, solicitar a configuração através do e-mail integracao\@hubdelivery.com.br


# Changelogs

{% content-ref url="/pages/V6q3gKCxgJtXafa07KMv" %}
[07/2022](/changelogs/07-2022)
{% endcontent-ref %}

{% content-ref url="/pages/bqE3t1RCgdmkEAVFyDvR" %}
[06/2022](/changelogs/06-2022)
{% endcontent-ref %}

{% content-ref url="/pages/QZEbDRjv17VqsRN7ZaBW" %}
[05/2022](/changelogs/05-2022)
{% endcontent-ref %}


# 04/2023

<details>

<summary>24/04/2023</summary>

Inclusão da nova rota para criação de pedidos fake completos

</details>

<details>

<summary>11/04/2023</summary>

Inclusão do canal de vendas Americanas Delivery

</details>


# 11/2022

<details>

<summary>22/11/2022</summary>

Inclusão do parâmetro x-merchants-ids as rotas de balance e extract para composição de balance e extrato por múltiplos merchants.

</details>

<details>

<summary>17/11/2022</summary>

Hotfix: Correção no responde syntax das operações de orders

Novo canal de vendas ([Alloy](/master/master-1/alloy))

</details>

<details>

<summary>21/11/2022 a 28/11/2022</summary>

Plantão Black Friday 2022

</details>


# 10/2022

<details>

<summary>17/10/2022</summary>

Início das preparações de ambiente para o Black Friday 2022

Melhorias de performance Merchant Portal

Novo canal de venda (Inter)

</details>


# 09/2022

<details>

<summary>10/09/2022</summary>

Hotfix: Indexação de merchants nos canais de venda

Feature: Implementação do sleep time de polling personalizado, padrão 10 segundos

Melhorias de performance Merchant Portal

</details>

<details>

<summary>30/09/2022</summary>

Melhorias de performance nas apis de orders

</details>


# 08/2022

<details>

<summary>26/08/2022</summary>

Lançamento APIs de programas de fidelidade [(Loyalty)](/orders/loyalty)

</details>


# 07/2022

<details>

<summary>04/07/2022</summary>

Lançamento APIs para gestão de catálogo <mark style="color:blue;">(beta) -</mark> <mark style="color:blue;"></mark><mark style="color:blue;">**V1**</mark>

Lançamento APIS para gestão de merchant <mark style="color:blue;">(beta)</mark>

</details>

<details>

<summary>11/07/2022</summary>

Lançamento APIS de Loyalty

</details>

<details>

<summary>18/07/2022</summary>

Lançamento do portal do cliente

Lançamento do novo portal do parceiro **(beta)**

Lançamento APIs para gestão de catálogo <mark style="color:blue;">(beta) -</mark> <mark style="color:blue;"></mark><mark style="color:blue;">**V2**</mark>

</details>


# 06/2022

<details>

<summary>06/06/2022</summary>

Melhorias de performance SignUp

</details>

<details>

<summary>20/06/2022</summary>

Novo canal de vendas **PedeAi**.

Novo canal de vendas **Inter**

Lançamento da api para geração de [**pedidos fake**](/orders/orders/order) no ambiente de Sandbox

</details>


# 05/2022

<details>

<summary>23/05/2022</summary>

Novo canal de vendas **On Pedidos**

Melhorias de performance integração Ifood

Melhorias de performance integração Rappi

Melhorias de performance e integridade Goomer

Pausa na oferta de integração 99 Food.&#x20;

Remoção da integração Uber Eats para os clusters Brasil

Pausa na oferta de integração Cinndi Delivery.&#x20;

</details>


# Suporte

#### Canais de atendimento

E-mail: <integracao@hubdelivery.com.br>\
Telefone: [11 91058-8280](https://api.whatsapp.com/send/?phone=5511910588280\&text=Quero%20transformar%20meu%20delivery%20com%20a%20Hub%20Delivery\&app_absent=0)


