GET https://api.fire.rest/api/v1/fire/external/stores?page=1&size=20
x-api-key: <tu_api_key>
{
"stores": [
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"storeNumber": 10,
"storeCode": "ST-10",
"accountId": "550e8400-e29b-41d4-a716-446655440000",
"vendorId": "100.1.10",
"name": "Main Store",
"externalId": "EXT-10",
"status": "PUBLISHED",
"active": "ACTIVE",
"timezone": "America/Guayaquil",
"location": {
"countryId": "1",
"countryCode": "EC",
"countryName": "Ecuador",
"cityId": "2",
"cityCode": "UIO",
"cityName": "Quito",
"address": "Av. Amazonas N32-14",
"latitude": -0.18,
"longitude": -78.47,
"timezone": "America/Guayaquil",
"currencyCode": "USD"
},
"services": [],
"channels": [
{ "code": "APP", "enabled": true, "fulfillmentTypes": ["DELIVERY", "PICKUP"] }
],
"publishedChannels": ["APP"],
"operationSchedule": [],
"salesSchedule": [],
"schedulesByChannel": [],
"taxesInfo": { "taxRate": 0, "vatRatePercentage": 12 },
"contactInfo": { "phone": "+593 2 000 0000" },
"deliveryInfo": null,
"salesGoals": null,
"fiscal": {
"enabled": true,
"company": {
"govIdType": "RUC",
"govIdNumber": "1790012345001",
"legalName": "Sandbox Ecuador Cia. Ltda.",
"tradeName": "Sandbox EC"
},
"govIdType": "RUC",
"govIdNumber": "1790012345001",
"secondaryGovIdType": null,
"secondaryGovIdNumber": null,
"metadata": null
},
"operational": {
"isBusinessDayOpen": true,
"businessDayDate": "2026-07-01",
"activeChannels": ["APP"]
},
"syncStatus": "SYNCED",
"lastSyncedAt": "2026-07-01T00:00:00Z",
"createdAt": "2026-06-01T00:00:00Z",
"updatedAt": "2026-06-02T00:00:00Z"
}
],
"total": 1,
"page": 1,
"size": 20,
"totalPages": 1
}
{
"success": false,
"error": "UNAUTHORIZED",
"message": "Invalid or missing API key"
}
{
"success": false,
"error": "FORBIDDEN",
"message": "API key is not authorized for the requested vendor"
}
API
Listar tiendas
Lista las tiendas del account y vendor asociados a tu API key, con paginación y filtros.
GET
/
api
/
v1
/
fire
/
external
/
stores
GET https://api.fire.rest/api/v1/fire/external/stores?page=1&size=20
x-api-key: <tu_api_key>
{
"stores": [
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"storeNumber": 10,
"storeCode": "ST-10",
"accountId": "550e8400-e29b-41d4-a716-446655440000",
"vendorId": "100.1.10",
"name": "Main Store",
"externalId": "EXT-10",
"status": "PUBLISHED",
"active": "ACTIVE",
"timezone": "America/Guayaquil",
"location": {
"countryId": "1",
"countryCode": "EC",
"countryName": "Ecuador",
"cityId": "2",
"cityCode": "UIO",
"cityName": "Quito",
"address": "Av. Amazonas N32-14",
"latitude": -0.18,
"longitude": -78.47,
"timezone": "America/Guayaquil",
"currencyCode": "USD"
},
"services": [],
"channels": [
{ "code": "APP", "enabled": true, "fulfillmentTypes": ["DELIVERY", "PICKUP"] }
],
"publishedChannels": ["APP"],
"operationSchedule": [],
"salesSchedule": [],
"schedulesByChannel": [],
"taxesInfo": { "taxRate": 0, "vatRatePercentage": 12 },
"contactInfo": { "phone": "+593 2 000 0000" },
"deliveryInfo": null,
"salesGoals": null,
"fiscal": {
"enabled": true,
"company": {
"govIdType": "RUC",
"govIdNumber": "1790012345001",
"legalName": "Sandbox Ecuador Cia. Ltda.",
"tradeName": "Sandbox EC"
},
"govIdType": "RUC",
"govIdNumber": "1790012345001",
"secondaryGovIdType": null,
"secondaryGovIdNumber": null,
"metadata": null
},
"operational": {
"isBusinessDayOpen": true,
"businessDayDate": "2026-07-01",
"activeChannels": ["APP"]
},
"syncStatus": "SYNCED",
"lastSyncedAt": "2026-07-01T00:00:00Z",
"createdAt": "2026-06-01T00:00:00Z",
"updatedAt": "2026-06-02T00:00:00Z"
}
],
"total": 1,
"page": 1,
"size": 20,
"totalPages": 1
}
{
"success": false,
"error": "UNAUTHORIZED",
"message": "Invalid or missing API key"
}
{
"success": false,
"error": "FORBIDDEN",
"message": "API key is not authorized for the requested vendor"
}
Devuelve las tiendas del account + vendor asociados a tu API key. Cada tienda viene con su
configuración completa — location, services, channels, schedules, información de impuestos y
contacto, configuración de delivery, sales goals, el bloque fiscal y estado operativo. Solo se
excluyen los campos internos de Fire (el
Cada rango de la DIAN trae
effectiveSettings derivado, drafts/overrides y columnas
de auditoría).
Usá el projection de campos (?fields=) para devolver solo los campos que necesitás.
Autenticación
string
requerido
Tu API key de Fire con scope
store:read. La key debe ser vendor-scoped (binding account +
vendor) — las keys sin vendorId se rechazan con 403.Query params
El account y el vendor se derivan de tu API key (vendor-scoped) — no se envían por query.
string
Lista de campos a devolver separados por coma (projection). Ver Projection de campos.
Omitir para devolver todos los campos. Un campo desconocido da
400.string
Filtra por estado de publicación:
DRAFT, PUBLISHED, PARTIALLY_PUBLISHED, ARCHIVED.string
Filtra por estado operativo:
ACTIVE, INACTIVE, SUSPENDED.string
Filtra por estado de sync:
SYNCED, PENDING, FAILED.string
Filtra por id de ciudad.
string
Filtra por un código de canal publicado (ej.
APP).string
Búsqueda de texto sobre nombre, store code y external id.
integer
predeterminado:"1"
Número de página (base 1).
integer
predeterminado:"20"
Tamaño de página (1–500).
Petición
GET https://api.fire.rest/api/v1/fire/external/stores?page=1&size=20
x-api-key: <tu_api_key>
Respuesta
object[]
Mostrar store
Mostrar store
string
UUID de la tienda.
integer
Número secuencial de tienda.
string | null
Código interno de la tienda.
string
UUID del account.
string
Identificador del vendor.
string
Nombre de la tienda.
string | null
Identificador externo controlado por Fire.
string
DRAFT | PUBLISHED | PARTIALLY_PUBLISHED | ARCHIVED.string
ACTIVE | INACTIVE | SUSPENDED.string | null
Timezone IANA (ej.
America/Guayaquil). Cae de vuelta a location.timezone.object | null
Mostrar location
Mostrar location
object[] | null
Configuración de servicios de la tienda (dine-in, takeout, delivery…). Passthrough desde los settings de la tienda.
object[] | null
Configuración por canal — cada entrada lleva
code, enabled, fulfillmentTypes y schedules.string[]
Códigos de canales publicados (ej.
["APP"]).object[] | null
Horarios de operación por día/intervalo.
object[] | null
Horarios de ventas por día/intervalo.
object[] | null
Schedules sobreescritos por canal.
object | null
Configuración de impuestos (ej.
taxRate, vatRatePercentage).object | null
Datos de contacto de la tienda (ej.
phone).object | null
Configuración de delivery.
object | null
Configuración de sales goals.
object | null
Configuración fiscal — mismo shape que
store.storeFiscalConfig en el evento order.completed
(ambos se proyectan con la misma función). null cuando la tienda no tiene setup fiscal. Ver
El bloque fiscal.Mostrar fiscal
Mostrar fiscal
boolean
Si la emisión fiscal está habilitada.
object
string
Tipo de identificación fiscal primaria (a nivel raíz, conveniencia legacy).
string
Número de identificación fiscal primaria.
string | null
Tipo de identificación fiscal secundaria (
INSCRICAO_ESTADUAL en Brasil). null cuando la tienda no la tiene.string | null
Número de identificación fiscal secundaria.
null cuando la tienda no la tiene.object | null
Lo que la tienda tiene configurado para emitir; el contenido depende del país.
null cuando no tiene. Ver El bloque fiscal.object | null
Estado de runtime — ej.
{ isBusinessDayOpen, businessDayDate, activeChannels }.string
SYNCED | PENDING | FAILED.string | null
Datetime ISO 8601.
string
Datetime ISO 8601.
string
Datetime ISO 8601.
integer
Total de tiendas que matchean el query.
integer
Página actual.
integer
Tamaño de página.
integer
Total de páginas.
{
"stores": [
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"storeNumber": 10,
"storeCode": "ST-10",
"accountId": "550e8400-e29b-41d4-a716-446655440000",
"vendorId": "100.1.10",
"name": "Main Store",
"externalId": "EXT-10",
"status": "PUBLISHED",
"active": "ACTIVE",
"timezone": "America/Guayaquil",
"location": {
"countryId": "1",
"countryCode": "EC",
"countryName": "Ecuador",
"cityId": "2",
"cityCode": "UIO",
"cityName": "Quito",
"address": "Av. Amazonas N32-14",
"latitude": -0.18,
"longitude": -78.47,
"timezone": "America/Guayaquil",
"currencyCode": "USD"
},
"services": [],
"channels": [
{ "code": "APP", "enabled": true, "fulfillmentTypes": ["DELIVERY", "PICKUP"] }
],
"publishedChannels": ["APP"],
"operationSchedule": [],
"salesSchedule": [],
"schedulesByChannel": [],
"taxesInfo": { "taxRate": 0, "vatRatePercentage": 12 },
"contactInfo": { "phone": "+593 2 000 0000" },
"deliveryInfo": null,
"salesGoals": null,
"fiscal": {
"enabled": true,
"company": {
"govIdType": "RUC",
"govIdNumber": "1790012345001",
"legalName": "Sandbox Ecuador Cia. Ltda.",
"tradeName": "Sandbox EC"
},
"govIdType": "RUC",
"govIdNumber": "1790012345001",
"secondaryGovIdType": null,
"secondaryGovIdNumber": null,
"metadata": null
},
"operational": {
"isBusinessDayOpen": true,
"businessDayDate": "2026-07-01",
"activeChannels": ["APP"]
},
"syncStatus": "SYNCED",
"lastSyncedAt": "2026-07-01T00:00:00Z",
"createdAt": "2026-06-01T00:00:00Z",
"updatedAt": "2026-06-02T00:00:00Z"
}
],
"total": 1,
"page": 1,
"size": 20,
"totalPages": 1
}
{
"success": false,
"error": "UNAUTHORIZED",
"message": "Invalid or missing API key"
}
{
"success": false,
"error": "FORBIDDEN",
"message": "API key is not authorized for the requested vendor"
}
El bloque fiscal
fiscal refleja store.storeFiscalConfig en el evento order.completed — ambos se proyectan con
la misma función, así que un integrador fiscal obtiene exactamente el mismo shape por cualquiera de
los dos caminos (incluyendo los fallbacks legacy a nivel raíz govIdType / govIdNumber). fiscal
es null para tiendas sin configuración fiscal.
El bloque fiscal tiene la misma forma para todos los países: secondaryGovIdType,
secondaryGovIdNumber y metadata vienen siempre, en null cuando la tienda no tiene el dato. Lo
que cambia por país es el contenido de metadata: lo que la tienda tiene configurado para
emitir. El país sale de location.countryCode.
| País | govIdType | secondaryGovIdType | metadata |
|---|---|---|---|
| BR | CNPJ | INSCRICAO_ESTADUAL | { storeCode3S, serialNumber, neverstop } |
| CO | NIT | null | { claveTecnica, rangoFacturacion, rangoNotaCredito } — rangos de la DIAN |
| EC | RUC | null | null |
| CL | RUT | null | null |
| AR | CUIT | null | null |
| VE | RIF | null | null |
prefijo, desde, hasta, resolucion, vigenteHasta, nombre,
identificacion y pin.
Projection de campos
Elegí qué campos devuelve cada tienda, similar al projection de MongoDB o al parámetro_source de
Elasticsearch. Aplica tanto al listado como a la tienda puntual.
- Sin
fields→ se devuelven todos los campos. fields=id,storeCode,name,fiscal→ solo esos.- Un campo fuera del catálogo →
400con la lista de campos permitidos.
id, storeNumber, storeCode, accountId, vendorId, name,
externalId, status, active, timezone, location, services, channels,
publishedChannels, operationSchedule, salesSchedule, schedulesByChannel, taxesInfo,
contactInfo, deliveryInfo, salesGoals, fiscal, operational, syncStatus, lastSyncedAt,
createdAt, updatedAt.
Relacionado
Obtener tienda
Lee una tienda puntual por id.
Listar órdenes de tienda
Lista las órdenes de una tienda específica.

