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

# Credenciais Fire API

> Dê ao fire-kds o host e a key da Fire de que precisa para imprimir o comprovante fiscal e cancelar pedidos, sem misturar vendors.

A impressão fiscal e o cancelamento falam com a Fire com um host e uma API key. Se a cozinha usa o padrão da conta numa loja de outro vendor, o ticket não imprime e o cancelamento não chega — e na tela o pedido continua “pronto”.

Esta página é para quem configura **KDS → Credenciais Fire**. O operador na TV da cozinha não vê este formulário.

<Note>
  **O mínimo que você precisa saber**

  * **Vendor ID** vazio = **Padrão da conta**. Uma linha com vendor ID substitui esse padrão só para esse vendor.
  * **Base URL** é só o host da Fire (`https://br.app.fire.rest`). Sem path, query ou hash: o fire-kds acrescenta sozinho as rotas de print e cancel.
  * A mesma key guardada serve para os dois trabalhos: fiscal print envia Bearer; cancel envia `x-api-key`.
</Note>

## O caminho simples

<Steps>
  <Step title="Abra Credenciais Fire">
    Vá em **KDS → Credenciais Fire** (`/kds/admin/fire-credentials`).
  </Step>

  <Step title="Adicione um padrão da conta">
    Clique em **Adicionar credencial**. Deixe **Vendor ID** vazio. Cole a **Base URL** (só host https) e a **API key**. Deixe **Ativa** ligada. Clique em **Criar**.
  </Step>

  <Step title="Adicione um override por vendor só se precisar">
    Se uma marca fala com outro host ou key da Fire, crie uma segunda linha e preencha **Vendor ID**. Essa linha vale para esse vendor; as demais lojas continuam no padrão da conta.
  </Step>
</Steps>

<Frame>
  <img src="https://mintcdn.com/firepos/3pCLDH_UKdnlMynk/images/manuals/kds/fire-credentials/01-list.png?fit=max&auto=format&n=3pCLDH_UKdnlMynk&q=85&s=0f75d2447d81f4b34d8b6477eba78807" alt="Lista de credenciais Fire API com padrão da conta e escopos por vendor" width="2940" height="1912" data-path="images/manuals/kds/fire-credentials/01-list.png" />
</Frame>

<Tip>
  Se todas as lojas da conta usam o mesmo ambiente Fire, o padrão da conta basta. Você pode parar aqui.
</Tip>

## Padrão da conta vs override por vendor

| Escopo                             | Quando o fire-kds usa                                     |
| ---------------------------------- | --------------------------------------------------------- |
| **Padrão da conta** (vendor vazio) | Não existe linha ativa de vendor para o vendor do pedido. |
| **Vendor**                         | Existe uma linha **Ativa** para esse vendor ID.           |

A resolução em runtime é sempre: **linha de vendor → padrão da conta → variáveis de ambiente** (`FISCAL_PRINT_*` para print; cancel pode cair em `FIRE_*`). Print nunca lê `FIRE_API_*`.

<Frame>
  <img src="https://mintcdn.com/firepos/3pCLDH_UKdnlMynk/images/manuals/kds/fire-credentials/02-form-account-default.png?fit=max&auto=format&n=3pCLDH_UKdnlMynk&q=85&s=243e7aa71ae029c003b8f6c03e9143bd" alt="Formulário de nova credencial Fire API com vendor vazio para o padrão da conta" width="2940" height="1912" data-path="images/manuals/kds/fire-credentials/02-form-account-default.png" />
</Frame>

<Frame>
  <img src="https://mintcdn.com/firepos/3pCLDH_UKdnlMynk/images/manuals/kds/fire-credentials/03-form-vendor-override.png?fit=max&auto=format&n=3pCLDH_UKdnlMynk&q=85&s=9cb13b2ac1f96a6352f29a08607c2fd2" alt="Formulário de credencial Fire API com um Vendor ID de override" width="2940" height="1912" data-path="images/manuals/kds/fire-credentials/03-form-vendor-override.png" />
</Frame>

## Campos

| Campo         | Para que serve                                                                                         |
| ------------- | ------------------------------------------------------------------------------------------------------ |
| **Vendor ID** | Vazio = padrão da conta. Preencha para limitar este host e key a um vendor.                            |
| **Base URL**  | Só o host da Fire. Exemplo: `https://br.app.fire.rest`. Sem barra no final.                            |
| **API key**   | Somente escrita. Na edição, deixe em branco para manter a atual. A lista mostra só uma dica mascarada. |
| **Ativa**     | Linhas inativas são ignoradas. O runtime passa ao próximo nível.                                       |

## Receitas

<AccordionGroup>
  <Accordion title="Um único ambiente Fire para toda a conta">
    1. Crie uma única linha com **Vendor ID** vazio.
    2. Use o host daquele país (por exemplo `https://br.app.fire.rest`).
    3. Deixe-a **Ativa**.
    4. Não crie linhas de vendor a menos que uma marca use outra key de verdade.
  </Accordion>

  <Accordion title="Uma franquia que não pode compartilhar a key da rede">
    1. Mantenha o padrão da conta para as demais lojas.
    2. **Adicionar credencial**, cole o **Vendor ID** dessa franquia e a key dela.
    3. Confirme que a lista mostra **Vendor** para esse id e **Padrão da conta** para o resto.
  </Accordion>

  <Accordion title="Rotacionar uma key sem parar o serviço">
    1. Abra **Editar** na linha.
    2. Cole a **API key** nova (a anterior nunca aparece).
    3. Salve. O próximo print ou cancel usa a key nova.
  </Accordion>

  <Accordion title="Retirar um override de vendor">
    1. **Desative** ou **Exclua** a linha de vendor.
    2. Excluir é permanente: o runtime cai no padrão da conta e depois no env.
    3. Confirme que uma impressão de teste ainda funciona numa loja desse vendor.
  </Accordion>
</AccordionGroup>

## Exemplo com números

| Situação       | Linha a criar                                   | O que a cozinha recebe                          |
| -------------- | ----------------------------------------------- | ----------------------------------------------- |
| Padrão da rede | Vendor vazio, `https://br.app.fire.rest`, key A | Toda loja sem override                          |
| Marca “Norte”  | Vendor `vnd_norte`, mesmo host, key B           | Só as lojas Norte imprimem/cancelam com a key B |

## Erros que saem caro

<Warning>
  **Um path na Base URL.** Valores como `https://br.app.fire.rest/v1/print` são recusados. O fire-kds monta `/fiscal-print` e cancel sozinho. Se você forçar um path, print e cancel erram o endpoint.
</Warning>

<Warning>
  **Padrão da conta no vendor errado.** Uma loja do vendor B que cai na key A recebe `401` / `403`. Os comprovantes ficam na fila e o cancelamento mostra **O Fire rejeitou o cancelamento**.
</Warning>

<Warning>
  **http\:// ou uma URL com query ou hash.** Só se aceita host `https://` (porta opcional). Userinfo (`user:pass@`) também é recusado.
</Warning>

## Glossário

| Termo                  | Significado                                                              |
| ---------------------- | ------------------------------------------------------------------------ |
| **Padrão da conta**    | Credencial com vendor vazio. Reserva para todo vendor sem linha própria. |
| **Override de vendor** | Credencial ligada a um vendor ID. Vale mais que o padrão da conta.       |
| **Base URL**           | Só a origem da Fire. Não é uma rota de impressão.                        |
| **Cascata**            | Linha de vendor → padrão da conta → variáveis de ambiente.               |

## Perguntas frequentes

<AccordionGroup>
  <Accordion title="Coloco a rota de print na Base URL?">
    Não. Só o host. Os paths não se editam nesta tela.
  </Accordion>

  <Accordion title="A key é diferente para print e para cancel?">
    Não. Uma key guardada. Print envia Bearer; cancel envia `x-api-key`.
  </Accordion>

  <Accordion title="E se eu apagar a única linha?">
    O runtime usa as variáveis de ambiente do servidor fire-kds, se existirem. Se não, print e cancel falham até você criar outra linha.
  </Accordion>

  <Accordion title="Duas linhas podem compartilhar o mesmo vendor?">
    Não. O backoffice responde conflito: já existe uma credencial para esse padrão da conta ou vendor.
  </Accordion>
</AccordionGroup>

## O que esta página não faz

* Não configura o Agente Fire (impressora local). Veja [Periféricos, impressão e validação](/pt/manuals/kds/peripherals-printing).
* Não escolhe Brasil v1 versus Equador v2 — o fire-kds escolhe a versão pelo país da loja.
* Não mostra um formulário ao operador da cozinha. Ele só vê o resultado de print/cancel.

Para a cascata e a chamada HTTP, veja [Credenciais Fire do KDS (técnico)](/pt/guides/kds-fire-credentials).
