> ## Documentation Index
> Fetch the complete documentation index at: https://docs.bulkroute.com.br/llms.txt
> Use this file to discover all available pages before exploring further.

# Leilão de Frete (Bids)

> Quando nenhuma transportadora atende — ou quando você quer negociar — abra um bid e deixe os carriers competirem pelo seu frete.

O **Leilão de Frete** permite que transportadoras disputem um envio propondo preço e prazo. Você define o alvo, os carriers recebem um link público para dar lance, e você escolhe o vencedor.

<Note>
  Acesso: **Orquestra** > **Leilão de Frete** (`/admin/bids`).
</Note>

## Quando um bid é criado

| Origem         | Quando acontece                                                                             |
| :------------- | :------------------------------------------------------------------------------------------ |
| **Automático** | O orquestrador rejeitou todas as cotações de um envio e o tenant tem bid automático ativado |
| **Manual**     | Você clica em **Novo Bid** para negociar preço/prazo de um envio específico                 |

<Note>
  O bid automático é ativado pela equipe BulkRoute na configuração do tenant. Quando ativo, o preço alvo é calculado como a melhor cotação rejeitada **menos uma margem** (padrão: 5%) e a validade padrão é de 2 horas.
</Note>

## A tela

### KPIs no topo

| KPI                | Descrição                             |
| :----------------- | :------------------------------------ |
| **Abertos**        | Bids aguardando aceite de carrier     |
| **Taxa de Aceite** | % de bids que fecharam com um carrier |
| **Tempo Médio**    | Tempo médio até um bid ser aceito     |
| **Economia Total** | Soma economizada vs. preço alvo       |

### Kanban de status

Os bids aparecem em 4 colunas:

| Coluna         | Significado                                                     |
| :------------- | :-------------------------------------------------------------- |
| **Abertos**    | Aguardando proposta dos carriers (mostra countdown até expirar) |
| **Aceitos**    | Um carrier venceu — preço e prazo fechados                      |
| **Expirados**  | Passou da validade sem aceite                                   |
| **Cancelados** | Cancelados manualmente                                          |

Cada card mostra: tracking code, rota (CEP origem → destino), preço e prazo alvo, tempo restante e quantidade de carriers notificados/que aceitaram.

### Filtros

* Período (date range)
* Carrier
* Busca por tracking code

## Criando um bid manual

1. Clique em **Novo Bid**
2. Preencha:

| Campo           | Descrição                                                   |
| :-------------- | :---------------------------------------------------------- |
| **Envio**       | Shipment ao qual o bid se refere                            |
| **Preço alvo**  | O máximo que você quer pagar                                |
| **Prazo alvo**  | Dias de trânsito esperados                                  |
| **Validade**    | Horas até o bid expirar (padrão: 2h)                        |
| **Carriers**    | Quais transportadoras notificar (todas menos Frota Própria) |
| **Observações** | Contexto para os carriers (opcional)                        |

3. Clique em **Criar**

<Warning>
  Só pode existir **1 bid aberto por envio**. Se já houver um bid OPEN para o shipment, a criação é bloqueada.
</Warning>

## Como o carrier participa

O carrier não precisa de login. Ele recebe um **link público** (`/public/bids/:token`):

1. Abra o bid → clique em **Copiar Link Público** e envie ao carrier
2. O carrier vê na página: itens da carga, peso/volume, CEP de origem e destino, cidade/UF do destinatário, preço e prazo alvo, e o countdown
3. Ele informa **preço proposto**, **prazo proposto** e uma observação opcional
4. O aceite aparece na aba **Aceites** do bid em tempo real

## Decidindo o vencedor

1. Abra o bid (clique no card)
2. Vá na aba **Aceites** — cada proposta mostra carrier, preço, prazo e observação
3. Para cada proposta você pode:
   * **Aceitar** — vira o vencedor; o bid fecha com status `ACCEPTED` e o preço/prazo vencedor é registrado
   * **Rejeitar** — exige motivo obrigatório; a proposta fica como `rejected`

Você também pode **Cancelar o bid** (com motivo opcional) enquanto ele estiver aberto.

## Abas do detalhe do bid

| Aba                      | Conteúdo                                                            |
| :----------------------- | :------------------------------------------------------------------ |
| **Resumo**               | Dados do bid: alvo, validade, origem (auto/manual), vencedor        |
| **Carriers Notificados** | Quem recebeu o link, quem visualizou, quem respondeu                |
| **Aceites**              | Propostas recebidas com ações de aceitar/rejeitar                   |
| **Timeline**             | Histórico: criação, notificações, visualizações, aceites, expiração |

## Status possíveis

| Status      | Significado                    |
| :---------- | :----------------------------- |
| `OPEN`      | Aguardando propostas           |
| `ACCEPTED`  | Vencedor escolhido             |
| `EXPIRED`   | Validade esgotada sem vencedor |
| `CANCELLED` | Cancelado manualmente          |

## Eventos de webhook

Se você tem webhook configurado, recebe eventos de bid em tempo real:

* `bid.created` — bid criado (manual ou automático)
* `bid.acceptance_received` — carrier enviou proposta
* `bid.accepted` — vencedor escolhido

Veja [Webhooks & Eventos](/api-reference/webhooks) para os payloads completos.
