> ## 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.

# Credenciales Fire API

> Dale a fire-kds el host y la key de Fire que necesita para imprimir el comprobante fiscal y cancelar pedidos, sin mezclar vendors.

La impresión fiscal y la cancelación hablan con Fire con un host y una API key. Si la cocina usa el default de la cuenta en un local de otro vendor, el ticket no imprime y la cancelación no llega — y en pantalla el pedido sigue viéndose “listo”.

Esta página es para quien configura **KDS → Credenciales Fire**. El operador en la TV de cocina no ve este formulario.

<Note>
  **Lo mínimo que hay que saber**

  * **Vendor ID** vacío = **Default de cuenta**. Una fila con vendor ID reemplaza ese default solo para ese vendor.
  * **Base URL** es solo el host de Fire (`https://br.app.fire.rest`). Sin path, query ni hash: fire-kds agrega solo las rutas de print y cancel.
  * La misma key guardada sirve para ambos trabajos: fiscal print la envía como Bearer; cancel la envía como `x-api-key`.
</Note>

## El camino simple

<Steps>
  <Step title="Abre Credenciales Fire">
    Ve a **KDS → Credenciales Fire** (`/kds/admin/fire-credentials`).
  </Step>

  <Step title="Agrega un default de cuenta">
    Pulsa **Agregar credencial**. Deja **Vendor ID** vacío. Pega la **Base URL** (solo host https) y la **API key**. Deja **Activa** encendido. Pulsa **Crear**.
  </Step>

  <Step title="Agrega un override por vendor solo si lo necesitas">
    Si una marca habla con otro host o key de Fire, crea una segunda fila y completa **Vendor ID**. Esa fila gana para ese vendor; el resto de locales sigue usando el default de cuenta.
  </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="Listado de credenciales Fire API con default de cuenta y alcances por vendor" width="2940" height="1912" data-path="images/manuals/kds/fire-credentials/01-list.png" />
</Frame>

<Tip>
  Si todos los locales de la cuenta usan el mismo entorno Fire, el default de cuenta alcanza. Puedes parar aquí.
</Tip>

## Default de cuenta vs override por vendor

| Alcance                              | Cuándo lo usa fire-kds                                       |
| ------------------------------------ | ------------------------------------------------------------ |
| **Default de cuenta** (vendor vacío) | No hay una fila activa de vendor para el vendor de la orden. |
| **Vendor**                           | Hay una fila **Activa** para ese vendor ID.                  |

La resolución en runtime siempre es: **fila de vendor → default de cuenta → variables de entorno** (`FISCAL_PRINT_*` para print; cancel puede caer a `FIRE_*`). Print nunca lee `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="Formulario de nueva credencial Fire API con vendor vacío para el default de cuenta" 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="Formulario de credencial Fire API con un Vendor ID de override" width="2940" height="1912" data-path="images/manuals/kds/fire-credentials/03-form-vendor-override.png" />
</Frame>

## Campos

| Campo         | Para qué sirve                                                                                                       |
| ------------- | -------------------------------------------------------------------------------------------------------------------- |
| **Vendor ID** | Vacío = default de cuenta. Completar para limitar este host y key a un vendor.                                       |
| **Base URL**  | Solo el host de Fire. Ejemplo: `https://br.app.fire.rest`. Sin barra final.                                          |
| **API key**   | Solo escritura. Al editar, déjala en blanco para conservar la actual. El listado muestra solo una pista enmascarada. |
| **Activa**    | Las filas inactivas se ignoran. Runtime pasa al siguiente nivel.                                                     |

## Recetas

<AccordionGroup>
  <Accordion title="Un solo entorno Fire para toda la cuenta">
    1. Crea una sola fila con **Vendor ID** vacío.
    2. Usa el host de ese país (por ejemplo `https://br.app.fire.rest`).
    3. Déjala **Activa**.
    4. No crees filas de vendor salvo que una marca use otra key de verdad.
  </Accordion>

  <Accordion title="Una franquicia que no puede compartir la key de la cadena">
    1. Mantén el default de cuenta para el resto de locales.
    2. **Agregar credencial**, pega el **Vendor ID** de esa franquicia y su propia key.
    3. Confirma que el listado muestra **Vendor** para ese id y **Default de cuenta** para el resto.
  </Accordion>

  <Accordion title="Rotar una key sin cortar el servicio">
    1. Abre **Editar** en la fila.
    2. Pega la **API key** nueva (la anterior nunca se muestra).
    3. Guarda. El siguiente print o cancel usa la key nueva.
  </Accordion>

  <Accordion title="Retirar un override de vendor">
    1. **Desactiva** o **Elimina** la fila de vendor.
    2. Eliminar es permanente: runtime cae al default de cuenta y luego al env.
    3. Confirma que una impresión de prueba sigue funcionando en un local de ese vendor.
  </Accordion>
</AccordionGroup>

## Ejemplo con números

| Situación            | Fila a crear                                    | Qué recibe la cocina                                  |
| -------------------- | ----------------------------------------------- | ----------------------------------------------------- |
| Default de la cadena | Vendor vacío, `https://br.app.fire.rest`, key A | Todo local sin override                               |
| Marca “Norte”        | Vendor `vnd_norte`, mismo host, key B           | Solo los locales Norte imprimen/cancelan con la key B |

## Errores que salen caros

<Warning>
  **Un path en la Base URL.** Valores como `https://br.app.fire.rest/v1/print` se rechazan. fire-kds arma `/fiscal-print` y cancel solo. Si fuerzas un path, print y cancel fallan el endpoint.
</Warning>

<Warning>
  **Default de cuenta en el vendor equivocado.** Un local del vendor B que cae a la key A recibe `401` / `403`. Los comprobantes quedan en cola y la cancelación muestra **Fire rechazó la cancelación**.
</Warning>

<Warning>
  **http\:// o una URL con query o hash.** Solo se acepta host `https://` (puerto opcional). Tampoco se acepta userinfo (`user:pass@`).
</Warning>

## Glosario

| Término                | Significado                                                             |
| ---------------------- | ----------------------------------------------------------------------- |
| **Default de cuenta**  | Credencial con vendor vacío. Respaldo para todo vendor sin fila propia. |
| **Override de vendor** | Credencial atada a un vendor ID. Gana sobre el default de cuenta.       |
| **Base URL**           | Solo el origen de Fire. No es una ruta de impresión.                    |
| **Cascada**            | Fila de vendor → default de cuenta → variables de entorno.              |

## Preguntas frecuentes

<AccordionGroup>
  <Accordion title="¿Pongo la ruta de print en la Base URL?">
    No. Solo el host. Los paths no se editan en esta pantalla.
  </Accordion>

  <Accordion title="¿La key es distinta para print y para cancel?">
    No. Una sola key guardada. Print envía Bearer; cancel envía `x-api-key`.
  </Accordion>

  <Accordion title="¿Qué pasa si borro la única fila?">
    Runtime usa las variables de entorno del servidor fire-kds, si están definidas. Si no, print y cancel fallan hasta que agregues otra fila.
  </Accordion>

  <Accordion title="¿Pueden dos filas compartir el mismo vendor?">
    No. El backoffice responde conflicto: ya existe una credencial para ese default de cuenta o vendor.
  </Accordion>
</AccordionGroup>

## Lo que esta página no hace

* No configura el Agente Fire (impresora local). Ver [Periféricos, impresión y validación](/es/manuals/kds/peripherals-printing).
* No elige Brasil v1 frente a Ecuador v2: fire-kds toma la versión según el país de la tienda.
* No muestra un formulario al operador de cocina. Solo ve el resultado de print/cancel.

Para la cascada y la llamada HTTP, ver [Credenciales Fire del KDS (técnico)](/es/guides/kds-fire-credentials).
