Conceptos fundamentales

Un glosario y una referencia del modelo de objetos de Tokeflow — las entidades que orquestas (organizations, merchants, clientes, catálogo, checkout, transacciones, órdenes, suscripciones e instrumentos de pago) y cómo se relacionan.

Tokeflow es la infraestructura detrás de tu plataforma. Modelas tu negocio una sola vez — sus cuentas, catálogo, clientes y pagos — y Tokeflow estandariza esos objetos en todos los proveedores de pago conectados. Esta página es el glosario canónico y el modelo de objetos: cada entidad, qué representa, su prefijo de ID y cómo encajan las piezas.

Tokeflow orquesta pagos — enrutamiento, fallback, normalización y trazabilidad — pero no es un procesador de pagos y nunca mueve ni liquida fondos. La autorización, la captura y la liquidación ocurren en los proveedores de pago conectados. Los objetos a continuación son la vista normalizada de Tokeflow sobre tu operación.

El modelo de objetos de un vistazo

Todo en Tokeflow cuelga de un modelo de tenencia de dos niveles: una Organization (tu plataforma) que contiene uno o más Merchants (las marcas o unidades de negocio que realmente venden). Casi cualquier otro recurso está delimitado a un único merchant.

Una clave de API de Merchant está delimitada automáticamente a su merchant — nunca pasas merchant_id. Una clave de Organization abarca cada merchant de la org, por lo que las llamadas delimitadas por merchant deben identificar el merchant destino mediante el parámetro de consulta merchant_id (en list/get) o el campo del cuerpo (en create). Consulta Autenticación.

Tenencia

Organization

Tu plataforma — el tenant de nivel superior y el límite de facturación/gobernanza. Una organization posee uno o más merchants y lleva la identidad de cumplimiento de toda la org (razón social, registro, país). Las claves de API delimitadas a la organization (sk_live_org_… / pk_live_org_…) pueden actuar a través de cada merchant de la org.

Prefijo de ID: org_

Merchant

Una única marca o unidad de negocio que vende bajo tu plataforma. Un merchant es el ámbito para casi todos los recursos operativos — clientes, catálogo, checkout, transacciones, órdenes y suscripciones pertenecen todos a exactamente un merchant. Las claves delimitadas a merchant (sk_live_mer_… / pk_live_mer_…) infieren el merchant automáticamente.

Prefijo de ID: mrc_

Los merchants, las claves de API y los endpoints de webhook se aprovisionan en el Tokeflow Dashboard durante el onboarding — no vía la API. Una vez completado el onboarding, usas las claves emitidas para gestionar todo lo siguiente de forma programática.

Clientes y datos de pago

Customer

Un comprador bajo un merchant específico. Contiene identidad (nombre, correo electrónico, teléfono), un documento fiscal opcional y una dirección de facturación. Los clientes se deduplican por correo electrónico dentro de un merchant, y la misma persona puede existir de forma independiente bajo diferentes merchants.

Prefijo de ID: cust_

FieldTypeRequiredDescription
emailstringNoUsado para la deduplicación dentro del merchant.
namestringNoNombre para mostrar.
phonestringNoTeléfono de contacto.
document_typeenumNoUno de cpf, cnpj, passport, tax_id.
document_numberstringNoEl valor del documento para el tipo dado.

Payment Instrument

Un método de pago reutilizable y tokenizado propiedad de un cliente — típicamente una tarjeta almacenada para cobros futuros (checkout recurrente, suscripciones, un clic). Tokeflow almacena únicamente metadatos seguros como la marca, los últimos cuatro dígitos y la caducidad; los datos brutos de la tarjeta nunca se persisten en los sistemas de Tokeflow.

Prefijo de ID: pi_

FieldTypeDescription
idstringIdentificador del instrumento pi_….
customer_idstringCliente propietario (cust_…).
card_brandstringMarca de la red de la tarjeta.
last4stringÚltimos cuatro dígitos de la tarjeta.
exp_monthintegerMes de caducidad.
exp_yearintegerAño de caducidad.
is_defaultbooleanSi este es el instrumento predeterminado del cliente.
statusstringEstado del ciclo de vida del instrumento.

Los instrumentos de pago pueden mantenerse actualizados automáticamente: Tokeflow admite network tokens (un opt-in explícito por merchant, network_tokens_enabled en el merchant) y un account updater para que las tarjetas almacenadas sigan funcionando a través de reemisiones y caducidades — sin que tengas que volver a recopilar los datos de la tarjeta. Un instrumento guardado también puede volver a cobrarse con un clic; consulta Upsells y downsells en un clic.

Card Token

Una referencia efímera y de un solo uso a los datos de la tarjeta recopilados en el navegador por los secure fields de Tokeflow. Los secure fields se ejecutan dentro de iframes aislados y cross-origin; los datos de la tarjeta se cifran en el navegador y nunca tocan tus servidores. Tu cliente recibe un card token y lo entrega a tu backend, que lo intercambia (del lado del servidor, con una clave secreta) por un Payment Instrument duradero.

Prefijo de ID: tok_

Los card tokens son un concepto del SDK / lado del navegador y son efímeros por diseño. Trátalos como entregas de un solo uso: intercámbialos en el servidor con prontitud y luego referencia el instrumento pi_… resultante para cualquier cobro futuro. Consulta la documentación del SDK.

Tu catálogo vendible es una jerarquía de cuatro niveles: una Product Family agrupa Products relacionados; cada producto se vende como una o más Offers; cada oferta tiene precio mediante Offer Prices (uno por moneda). Las Offer Transitions definen cómo un suscriptor puede moverse entre ofertas (upgrade/downgrade) dentro de una familia.

Product Family

Una agrupación de productos relacionados entre los que un suscriptor puede moverse (por ejemplo, niveles de un plan). La familia define el comportamiento predeterminado — change_charge_behavior — para las transiciones entre sus ofertas. Un producto pertenece a una familia cuando participa en flujos de upgrade/downgrade.

Prefijo de ID: pfa_

Product

Algo que vendes. Un producto es one_time o recurring (type), y está active o archived (status). Cuando forma parte de una familia, lleva una posición de nivel para que los planes puedan ordenarse en la lógica de upgrade/downgrade.

Prefijo de ID: prd_

FieldTypeDescription
namestringNombre del producto.
typeenumone_time o recurring.
statusenumactive o archived.
product_family_idstringFamilia propietaria (pfa_…); se establece cuando el producto participa en upgrade/downgrade.

Offer

Una configuración comprable de un producto — lo que un cliente realmente compra. Una oferta fija el ciclo de facturación, el comportamiento de prueba y de configuración, y cuántos ciclos cobrar. Un producto puede exponer varias ofertas (por ejemplo, una oferta mensual y una anual).

Prefijo de ID: ofr_

FieldTypeDescription
namestringNombre de la oferta (p. ej. "Monthly", "Holiday Promo").
billing_cycleenumdaily, biweekly, monthly, quarterly, half_yearly, yearly, custom, o none (bajo demanda, sin programador).
cycle_limitintegerNúmero de cobros; null = cobrar hasta la cancelación.
statusenumactive o archived.
is_defaultbooleanOferta predeterminada para el producto.

billing_cycle: none significa una oferta bajo demanda sin programador de facturación automática. Úsala para ofertas que se cobran de forma ad hoc en lugar de en una cadencia fija.

Offer Price

El importe de una oferta en una única moneda. Una oferta tiene un precio por moneda, con uno marcado como predeterminado. Los importes son unidades menores enteras y siempre van emparejados con una moneda ISO 4217.

Prefijo de ID: opr_

FieldTypeDescription
currencystringMoneda ISO 4217 (p. ej. BRL, USD).
amountintegerPrecio en unidades menores (p. ej. 9900 = US$99.00).
is_defaultbooleanMoneda predeterminada para la oferta.

Offer Transition

Una regla direccional que conecta dos ofertas de la misma familia — el camino que toma un suscriptor al hacer upgrade o downgrade. Una transición puede anular el change_charge_behavior predeterminado de la familia (next_renew, prorated, o override) para ese par específico, y puede activarse o desactivarse.

Prefijo de ID: oft_

Checkout

Un flujo de compra alojado y con estado. Una Checkout Session rastrea a un comprador desde su llegada hasta la finalización, contiene las ofertas elegidas como Checkout Items, y registra una línea de tiempo de Checkout Events (incluyendo atribución UTM) para el análisis del embudo. Una sesión completada produce una Order.

Checkout Session

El contenedor para un intento de checkout. Rastrea la oferta principal, el cliente (eventualmente identificado), la moneda seleccionada, y un estado del ciclo de vida: initiated, customer_identified, payment_pending, completed, expired, abandoned.

Prefijo de ID: cks_

Checkout Item

Una línea dentro de una sesión: una oferta, su moneda e importe capturado como snapshot, cantidad, y cuotas seleccionadas. Los importes se capturan como snapshot del precio de la oferta en el momento de la sesión para que ediciones posteriores del catálogo no cambien un checkout en curso.

Prefijo de ID: cki_

Checkout Event

Un evento de solo anexado en la línea de tiempo de una sesión. Tipos de evento: initiated, customer_identified, currency_changed, payment_started, payment_failed, payment_succeeded, completed, expired, abandoned. Lleva atribución opcional (utm_source, utm_medium, utm_campaign) y contexto de la solicitud.

Prefijo de ID: cke_

Pagos

Transaction

Un único intento de pago contra un proveedor — el registro normalizado de una autorización/captura, independientemente de qué proveedor conectado la haya gestionado. Lleva el método de pago, los importes (autorizado y capturado, en unidades menores), la moneda, el país y un estado detallado. Las transacciones son idempotentes en la creación y pueden vincularse a una Order.

Prefijo de ID: tx_

FieldTypeDescription
payment_methodenumcredit_card, debit_card, pix, boleto, wallet.
charge_typeenumpayment o setup_verification.
amount_authorizedintegerImporte autorizado en unidades menores.
amount_capturedintegerImporte capturado en unidades menores.
currencystringMoneda ISO 4217.
countrystringPaís ISO 3166-1 alpha-2.
statusenumConsulta los estados de transacción a continuación.

status: pending, pre_authorized, authorized, failed, canceled, voided, charged_back, refund_pending, capture_pending, refunded, partially_refunded, expired.

Atención a la escritura de los estados de cancelación. Las transacciones y las órdenes usan canceled (una l); los reembolsos y las suscripciones usan cancelled (dos l). Compara siempre contra el valor exacto del recurso que estés leyendo — una comparación de cadenas escrita para uno nunca coincidirá con el otro.

Cuando creas una transacción, envía una cabecera Idempotency-Key (o idempotency_key en el cuerpo). Reproducir la misma clave devuelve el resultado original en lugar de cobrar dos veces. Consulta Idempotencia.

Order

El registro normalizado y orientado al merchant de una única venta. Una orden se vincula a como máximo una Transaction que la liquida, referencia al cliente, y puede estar ligada a una Subscription cuando se trata de una renovación o configuración de prueba. Usa la orden como tu referencia de negocio estable; la transacción es la mecánica de pago detrás de ella.

Prefijo de ID: ord_

FieldTypeDescription
customer_idstringComprador (cust_…).
order_typeenumapi, checkout, renewal, trial_setup, card_setup.
total_amountintegerTotal de la orden en unidades menores.
currencystringMoneda ISO 4217.
statusenumConsulta los estados de orden a continuación.
subscription_idstringSe establece para órdenes renewal / trial_setup; null para órdenes puntuales.
checkout_session_idstringSe establece cuando la orden se originó a partir de una sesión de checkout.

status: pending, pre_authorized, authorized, failed, canceled, refunded, partially_refunded, charged_back, refund_pending.

Refund

Una reversión total o parcial de una transacción capturada. Una transacción puede tener múltiples reembolsos (p. ej. reembolsos parciales sucesivos). Cada reembolso registra un importe en unidades menores, una moneda, un estado y un motivo.

Prefijo de ID: ref_

FieldTypeDescription
payment_transaction_idstringLa transacción que se está reembolsando (tx_…).
amountintegerImporte reembolsado en unidades menores.
currencystringMoneda ISO 4217.
statusenumpending, succeeded, failed, cancelled.
reasonenumduplicate, fraudulent, requested_by_customer.

Subscription

Un acuerdo de facturación recurrente: un cliente facturado en una Offer usando un Payment Instrument almacenado. Tokeflow rastrea la oferta y el importe actuales, el período de facturación, las ventanas de prueba, el estado de dunning para renovaciones fallidas, y un estado del ciclo de vida. Cada cobro de renovación produce una Order (y su transacción).

Prefijo de ID: sub_

FieldTypeDescription
customer_idstringSuscriptor (cust_…).
current_offer_idstringLa oferta facturada actualmente (ofr_…).
billing_cycleenumCopiado de la oferta en la creación.
current_amountintegerImporte recurrente actual en unidades menores.
currencystringMoneda ISO 4217.
payment_instrument_idstringInstrumento cobrado en la renovación (pi_…).
cancel_at_period_endbooleanSi es true, cancela al final del período en lugar de inmediatamente.
statusenumtrialing, active, dunning, paused, cancelled, expired.

Convenciones de dinero y formato

La consistencia entre proveedores y monedas se garantiza mediante unas pocas reglas. Aplícalas en todas partes.

ConceptConventionExample
ImportesUnidades menores enteras (centavos) — nunca decimales15000 = R$150.00; 9900 = US$99.00
MonedaISO 4217, siempre emparejada con un importeBRL, USD, EUR
PaísISO 3166-1 alpha-2BR, US
Marcas de tiempoISO 8601, UTC2026-01-15T12:30:00.000Z

Cada importe en Tokeflow es un entero en unidades menores. Enviar 150.00 donde se espera 15000 será rechazado o malinterpretado. Envía y almacena siempre los importes como centavos, e incluye siempre la currency.

Envoltorio de respuesta estándar

Cada respuesta de la API envuelve el recurso en un envoltorio consistente. Un único recurso omite meta; una lista incluye meta.pagination.

{
  "success": true,
  "data": {
    "id": "tx_8f3c2a1b",
    "status": "authorized",
    "payment_method": "credit_card",
    "amount_authorized": 15000,
    "amount_captured": 15000,
    "currency": "BRL",
    "country": "BR"
  },
  "request_id": "req_8f3c2a1b9d",
  "timestamp": "2026-01-15T12:30:00.000Z"
}

Una respuesta de lista establece data como un array e incluye paginación:

{
  "success": true,
  "data": [
    { "id": "ord_a1b2c3", "status": "authorized", "total_amount": 9900, "currency": "USD" }
  ],
  "meta": {
    "pagination": {
      "page": 1,
      "limit": 20,
      "total": 42,
      "total_pages": 3,
      "has_next": true,
      "has_prev": false
    }
  },
  "request_id": "req_8f3c2a1b9d",
  "timestamp": "2026-01-15T12:30:00.000Z"
}

Referencia de formato de ID

Cada objeto de Tokeflow lleva un identificador opaco con prefijo. Los prefijos son estables — haz coincidencias con ellos en lugar de analizar el sufijo aleatorio.

ObjectPrefixExample
Organizationorg_org_a1b2c3d4
Merchantmrc_mrc_a1b2c3d4
Customercust_cust_a1b2c3d4
Product Familypfa_pfa_a1b2c3d4
Productprd_prd_a1b2c3d4
Offerofr_ofr_a1b2c3d4
Offer Priceopr_opr_a1b2c3d4
Offer Transitionoft_oft_a1b2c3d4
Checkout Sessioncks_cks_a1b2c3d4
Checkout Itemcki_cki_a1b2c3d4
Checkout Eventcke_cke_a1b2c3d4
Transactiontx_tx_a1b2c3d4
Orderord_ord_a1b2c3d4
Refundref_ref_a1b2c3d4
Subscriptionsub_sub_a1b2c3d4
Payment Instrumentpi_pi_a1b2c3d4
Card Token (SDK)tok_tok_a1b2c3d4

Próximos pasos

  • Autenticación — tipos de clave, ámbitos y la regla de merchant_id para claves de org.
  • Idempotencia — reintentos seguros en llamadas de creación y de cobro.
  • SDK — recopila tarjetas con secure fields e intercambia card tokens por instrumentos de pago.
  • Webhooks — entrega normalizada de eventos y verificación de firmas.

En esta página