Entornos y claves de API

Aprende cómo Tokeflow codifica los entornos y el alcance en tus claves de API, y cómo crearlas, rotarlas y almacenarlas de forma segura.

Cada solicitud a Tokeflow se autentica con una clave de API, y cada clave lleva su propio contexto: a qué entorno apunta, si es seguro exponerla en un navegador y en nombre de qué entidad actúa. Comprender cómo se codifica ese contexto te permite conectar tus integraciones correctamente desde la primera vez.

Esta página cubre la URL base y el versionado, cómo se representan los entornos, las cuatro formas de clave y el ciclo de vida de las claves (crear, rotar, revocar) que administras en el Dashboard de Tokeflow.

¿Es tu primera vez autenticando solicitudes? Empieza por Autenticación para conocer los formatos de encabezado y ejemplos resueltos, y luego vuelve aquí para los detalles de entorno y ciclo de vida.

URL base y versionado

Todo el tráfico de la API se dirige a un único host, y cada endpoint reside bajo un prefijo de versión.

https://api.tokeflow.com/api/v1

Tokeflow usa versionado por URI. La versión actual es v1, y aparece en la ruta de cada endpoint:

curl https://api.tokeflow.com/api/v1/transactions \
  -H "Authorization: Bearer sk_live_mer_xxxxxxxx"

No hay un nombre de host separado para pruebas. El entorno en el que operas es una propiedad de la clave que envías, no de la URL. La misma URL base sirve para todos los entornos: Tokeflow resuelve el entorno a partir de la clave en cada solicitud.

Fija tu integración a v1 de forma explícita. Cuando se publique una futura versión mayor, se servirá bajo un nuevo prefijo de ruta para que tus llamadas existentes sigan funcionando sin cambios.

Cómo se codifican los entornos

Las claves de Tokeflow son autodescriptivas. Cada clave sigue una anatomía fija, y uno de sus segmentos nombra el entorno al que está vinculada la clave:

{sk|pk}_{environment}_{org|mer}_{random}
   │          │            │         │
   │          │            │         └─ random, high-entropy secret
   │          │            └─ scope: organization (org) or merchant (mer)
   │          └─ environment the key is bound to
   └─ key type: sk = secret (server-side), pk = public (client-safe)

Una clave secreta de Merchant en vivo, por ejemplo, luce así:

sk_live_mer_9f2c4a7b1e8d3c5a6b0f2e1d4c7a9b3e

Leyendo de izquierda a derecha:

SegmentoEjemploSignificado
Tipo de clavesksk = secreta (solo del lado del servidor); pk = pública (segura para el cliente)
EntornoliveEl entorno al que apunta esta clave
Alcancemerorg = a nivel de Organization; mer = un único Merchant
Aleatorio9f2c…La porción secreta de alta entropía

Puedes identificar cualquier clave de un vistazo sin llamar a la API. Si un valor empieza con sk_, es secreto y debe permanecer del lado del servidor. Si el segmento de entorno no coincide con el entorno que pretendías llamar, estás usando la clave equivocada.

Debido a que el entorno está incorporado en la clave:

  • Las claves no son portables entre entornos. Una clave emitida para un entorno no se autenticará contra otro.
  • Nunca cambias de host ni de versión para cambiar de entorno: cambias de clave.
  • Cada entorno mantiene su propio conjunto aislado de claves, datos y configuración. La actividad realizada con la clave de un entorno nunca afecta a la de otro.

Claves secretas frente a públicas

El primer segmento, sk o pk, es lo más importante que debes acertar.

  • Las claves secretas (sk_…) autentican llamadas de servidor a servidor. Pueden realizar acciones privilegiadas y nunca deben aparecer en código de navegador, aplicaciones móviles, repositorios públicos, registros ni en ningún lugar donde un tercero pudiera leerlas.
  • Las claves públicas (pk_…) están restringidas a un pequeño conjunto de alcances seguros para el cliente y están diseñadas para incrustarse en código de navegador o de cliente. No pueden realizar acciones privilegiadas del servidor.

Trata una clave secreta como una contraseña. Si una clave secreta llega a confirmarse en el control de versiones, se pega en un ticket o se envía a un cliente, considérala comprometida y rótala de inmediato (consulta Rotar ante exposición).

Las solicitudes del lado del servidor se autentican con el encabezado estándar:

Authorization: Bearer sk_live_mer_xxxxxxxx

Las claves públicas las usa el SDK de cliente de Tokeflow en lugar de pasarse directamente en el encabezado Authorization. Consulta la descripción general del SDK para saber cómo se presentan las claves pk_… en contextos de navegador.

Alcance de Organization frente a Merchant

El tercer segmento, org o mer, determina en nombre de qué entidad actúa la clave. Tokeflow es multiinquilino: una Organization puede contener muchos Merchants.

  • Una clave de Merchant se limita automáticamente a su merchant. El merchant se infiere a partir de la clave, por lo que nunca pasas un merchant_id.
  • Una clave de Organization abarca todos los merchants de la org. Para los recursos con alcance de merchant, debe identificar explícitamente al merchant destino: mediante el parámetro de consulta merchant_id en solicitudes de listado/obtención, o el campo del cuerpo merchant_id en solicitudes de creación.
# Organization key: target a specific merchant with merchant_id
curl "https://api.tokeflow.com/api/v1/transactions?merchant_id=mrc_a1b2c3" \
  -H "Authorization: Bearer sk_live_org_xxxxxxxx"
# Merchant key: merchant is inferred, no merchant_id needed
curl "https://api.tokeflow.com/api/v1/transactions" \
  -H "Authorization: Bearer sk_live_mer_xxxxxxxx"

Más allá del alcance de entidad, cada clave también lleva alcances de permiso en forma resource:action (por ejemplo transactions:read, products:write). Una clave solo puede realizar las acciones que sus alcances permiten. Consulta Autenticación para conocer el modelo de alcances completo.

Las cuatro formas de clave

Combinar el tipo de clave (sk/pk) con el alcance de entidad (org/mer) da cuatro formas de clave distintas. Elige la más restringida que aún cumpla su función.

Forma de clavePrefijoDónde se ejecutaUso típico
Secreta · Organizationsk_live_org_…Solo del lado del servidorAutomatización a nivel de org a través de muchos merchants; pasa merchant_id para recursos con alcance de merchant
Secreta · Merchantsk_live_mer_…Solo del lado del servidorEl backend de un único merchant; el merchant se infiere, sin merchant_id
Pública · Organizationpk_live_org_…Segura para el cliente (navegador)Flujos del lado del cliente a nivel de org en alcances seguros para el cliente
Pública · Merchantpk_live_mer_…Segura para el cliente (navegador)Flujos del lado del cliente de un único merchant (p. ej. checkout) en alcances seguros para el cliente

Prefiere las claves de Merchant para integraciones por merchant y reserva las claves de Organization para automatización genuinamente entre merchants. Una clave de merchant no puede alcanzar los datos de otro merchant, lo que mantiene reducido el radio de impacto si se filtra.

Ciclo de vida de las claves

Creas, rotas y revocas claves en el Dashboard de Tokeflow durante la incorporación y a lo largo de la vida de tu integración. Las claves se emiten por entorno y por entidad.

Crear una clave

En el Dashboard, crea una clave asignándole:

  • Un nombre legible para humanos que identifique la integración (por ejemplo, Prod - Main Backend).
  • Un tipo (secreta o pública) y un alcance de entidad (organization o merchant).
  • Los alcances de permiso que necesita, en forma resource:action. Concede solo lo que la integración requiera.

Cuando se crea la clave, Tokeflow muestra el valor secreto completo exactamente una vez. Cópialo de inmediato en tu almacén de secretos: no se puede recuperar después. A partir de ese momento, en el Dashboard solo se muestra un prefijo corto y no sensible, para que puedas reconocer la clave sin exponerla.

El valor completo de la clave se muestra únicamente en el momento de la creación. Si lo pierdes, no puedes recuperarlo: debes rotar a una nueva clave.

Usa claves separadas por integración

Emite una clave distinta para cada servicio, entorno e integración. No compartas una misma clave entre varios sistemas.

Una clave por servicio. Las claves separadas significan que puedes rotar o revocar una sola integración sin tumbar las demás, y la actividad por clave del Dashboard (como las marcas de tiempo de último uso) te dice exactamente qué sistema hizo qué. Una clave compartida convierte cada rotación en una interrupción coordinada.

Almacena los secretos de forma segura

Las claves secretas pertenecen a un gestor de secretos o se inyectan como variables de entorno en el momento del despliegue, nunca codificadas de forma fija en el código fuente, confirmadas en el control de versiones ni incrustadas en paquetes del lado del cliente.

// Read the key from the environment, never inline it
const apiKey = process.env.TOKEFLOW_SECRET_KEY;

const res = await fetch("https://api.tokeflow.com/api/v1/transactions", {
  headers: {
    Authorization: `Bearer ${apiKey}`,
    "Content-Type": "application/json",
  },
});

Prácticas recomendadas:

  • Mantén los secretos en un gestor de secretos dedicado e inyéctalos en tiempo de ejecución.
  • Añade los archivos de clave y los archivos .env a .gitignore; escanea los commits en busca de filtraciones accidentales.
  • Restringe quién puede leer los secretos de producción.
  • Nunca registres los valores completos de las claves. Registra como mucho el prefijo no sensible.

Rota las claves

Rota las claves de forma periódica y siempre que se marchen miembros del equipo con acceso. Tokeflow admite rotación con solapamiento para que puedas renovar claves sin tiempo de inactividad:

  1. Crea una nueva clave con el mismo alcance y permisos en el Dashboard.
  2. Despliega la nueva clave en tu servicio (mediante tu gestor de secretos).
  3. Verifica que la nueva clave está sirviendo tráfico en vivo.
  4. Revoca la clave antigua una vez que ya no esté en uso.

Debido a que las claves antigua y nueva son válidas simultáneamente durante el solapamiento, no hay ninguna ventana en la que las solicitudes fallen.

Rotar ante exposición

Si una clave secreta llega a exponerse —confirmada en un repo, filtrada en registros, compartida fuera de tu equipo o enviada a un cliente—, trátala como comprometida:

  1. Crea una clave de reemplazo de inmediato.
  2. Despliega el reemplazo.
  3. Revoca la clave expuesta de inmediato.

Revocar una clave surte efecto de inmediato y es irreversible. Cualquier servicio que todavía use una clave revocada recibirá 401 Unauthorized (authentication_error). Confirma que el reemplazo está en vivo antes de revocar.

Errores que podrías ver

Los problemas de autenticación y autorización devuelven el sobre de error estándar:

{
  "error": {
    "type": "authentication_error",
    "code": "INVALID_API_KEY",
    "message": "The provided API key is invalid, revoked, or for a different environment.",
    "details": {},
    "request_id": "req_8f3c2a1b9d7e",
    "timestamp": "2026-01-15T12:30:00.000Z"
  }
}
HTTPTipo de errorCausa común
401authentication_errorClave ausente, malformada, revocada o de entorno equivocado
403authorization_errorClave válida, pero sin el alcance o el acceso de entidad requerido

Si ves un 401 en una clave que crees válida, comprueba que el segmento de entorno de la clave coincida con el entorno que pretendes llamar.

Próximos pasos

En esta página