# Integração iFood

A integração com o iFood permite despachar pedidos usando a logística do iFood diretamente pela Abbiamo. Toda a comunicação com o iFood é feita pela Abbiamo — você não precisa integrar diretamente com as APIs do iFood nem criar aplicações no Portal do Desenvolvedor.

## Pré-requisitos

Antes de solicitar a ativação, confirme que você possui:

1. **Cadastro ativo no iFood** — loja registrada no Portal do Parceiro (`portal.ifood.com.br`).
2. **Contrato de Shipping iFood vigente** — o módulo de logística precisa estar ativo no seu contrato com o iFood para o(s) estabelecimento(s) que será(ão) integrado(s).
3. **Endereço de coleta cadastrado no iFood** — CEP, coordenadas e horário de funcionamento. É a partir desse endereço que o iFood calcula cobertura e prazos.
4. **Conta Abbiamo com iFood habilitado** — entre em contato com o suporte Abbiamo para verificar se sua conta está habilitada para esta transportadora.
**Todos os pré-requisitos são obrigatórios:** Sem contrato ativo de Shipping no iFood e sem habilitação na Abbiamo, a integração não pode ser provisionada.

## O que você precisa fazer no iFood

A integração é centralizada na Abbiamo. Do lado do iFood, a única ação necessária é confirmar o **`merchant_id`** da loja.

### Identificando o `merchant_id`

O `merchant_id` é o identificador único da sua loja no iFood (formato UUID). Você pode obtê-lo:

- Pelo Portal do Parceiro iFood
- Pelo suporte do iFood
**Note:** Se você operar **múltiplas lojas**, cada loja tem seu próprio `merchant_id` e cada uma é cadastrada separadamente na Abbiamo.

Após obter o `merchant_id`, repasse-o para a equipe Abbiamo durante o processo de ativação.

### Habilitação do Shipping no iFood

Além de ter a loja cadastrada, o módulo de Shipping precisa estar contratado junto ao iFood para cada estabelecimento. Esse passo é feito diretamente entre você e o iFood — sem ele, cotações e pedidos não funcionam para aquele estabelecimento.
**Erro de autorização ao cotar:** Se ao tentar cotar frete o iFood retornar erro de autorização, o motivo mais comum é que o Shipping ainda não foi habilitado no contrato do iFood para aquele estabelecimento. Verifique com o suporte iFood.

## O que a Abbiamo configura

Toda a parte técnica da integração é responsabilidade da Abbiamo. Ao habilitar um novo estabelecimento, a equipe realiza:

- Cadastro da integração com o `merchant_id` informado.
- Configuração das credenciais e do recebimento de eventos iFood.
- Emissão do token de acesso necessário para os sistemas que enviam pedidos à Abbiamo.

Você não precisa criar aplicações no Portal do Desenvolvedor iFood nem configurar webhooks.

## Checklist de ativação

**Da sua parte:**

- [ ] Contrato com o iFood vigente, com Shipping habilitado para o(s) seu(s) estabelecimento(s).
- [ ] `merchant_id` da loja confirmado e enviado para a Abbiamo.
- [ ] Autorização concedida ao aplicativo Abbiamo no Portal do Parceiro da loja no iFood.
- [ ] Conta Abbiamo habilitada para a transportadora iFood (confirme com o suporte).

**Da parte da Abbiamo:**

- [ ] Integração cadastrada com o `merchant_id` correto.
- [ ] Solicitação de autorização do aplicativo Abbiamo no iFood à loja integradora. 
- [ ] Token de acesso emitido e distribuído.
- [ ] Teste ponta a ponta realizado antes da liberação para produção.

## Resumo de responsabilidades

| Item | Você | Abbiamo |
| ---- | :--: | :-----: |
| Contrato com o iFood (Shipping habilitado para o estabelecimento) | X | |
| Cadastro da loja no Portal do Parceiro iFood | X | |
| Repasse do `merchant_id` para a Abbiamo | X | |
| Configuração técnica da integração | | X |
| Gerenciamento de credenciais iFood | | X |
| Recebimento e processamento de eventos iFood | | X |
| Homologação ponta a ponta | X | X |

## Referências

- [Visão geral do Shipping iFood](https://developer.ifood.com.br/pt-BR/docs/guides/modules/shipping/outside?category=FOOD)
- [Portal do Parceiro iFood](https://portal.ifood.com.br)