Conceitos fundamentais

Um glossário e referência do modelo de objetos do Tokeflow — as entidades que você orquestra (organizations, merchants, clientes, catálogo, checkout, transações, pedidos, assinaturas e instrumentos de pagamento) e como elas se relacionam.

O Tokeflow é a infraestrutura por trás da sua plataforma. Você modela seu negócio uma única vez — suas contas, catálogo, clientes e pagamentos — e o Tokeflow padroniza esses objetos em cada provedor de pagamento conectado. Esta página é o glossário canônico e o modelo de objetos: cada entidade, o que ela representa, seu prefixo de ID e como as peças se encaixam.

O Tokeflow orquestra pagamentos — roteamento, fallback, normalização e rastreabilidade —, mas não é um processador de pagamentos e nunca movimenta ou liquida fundos. Autorização, captura e liquidação acontecem nos provedores de pagamento conectados. Os objetos abaixo são a visão normalizada do Tokeflow sobre a sua operação.

O modelo de objetos em resumo

Tudo no Tokeflow se apoia em um modelo de tenancy de dois níveis: uma Organization (sua plataforma) que contém um ou mais Merchants (as marcas ou unidades de negócio que efetivamente vendem). Quase todos os demais recursos têm escopo de um único merchant.

Uma chave de API de Merchant tem escopo automático para o seu merchant — você nunca passa merchant_id. Uma chave de Organization abrange todos os merchants da org, portanto chamadas com escopo de merchant precisam identificar o merchant de destino via parâmetro de query merchant_id (em list/get) ou campo do body (em create). Veja Autenticação.

Tenancy

Organization

Sua plataforma — o tenant de nível mais alto e a fronteira de faturamento/governança. Uma organization é dona de um ou mais merchants e carrega a identidade de compliance de toda a org (razão social, registro, país). Chaves de API com escopo de organization (sk_live_org_… / pk_live_org_…) podem atuar em todos os merchants da org.

Prefixo de ID: org_

Merchant

Uma única marca ou unidade de negócio que vende sob a sua plataforma. Um merchant é o escopo de quase todos os recursos operacionais — clientes, catálogo, checkout, transações, pedidos e assinaturas pertencem todos a exatamente um merchant. Chaves com escopo de merchant (sk_live_mer_… / pk_live_mer_…) inferem o merchant automaticamente.

Prefixo de ID: mrc_

Merchants, chaves de API e endpoints de webhook são provisionados no Tokeflow Dashboard durante o onboarding — não via API. Depois do onboarding, você usa as chaves emitidas para conduzir tudo o que está abaixo de forma programática.

Clientes e dados de pagamento

Customer

Um comprador sob um merchant específico. Guarda identidade (nome, e-mail, telefone), um documento fiscal opcional e um endereço de cobrança. Os clientes são deduplicados por e-mail dentro de um merchant, e a mesma pessoa pode existir de forma independente sob diferentes merchants.

Prefixo de ID: cust_

FieldTypeRequiredDescrição
emailstringNãoUsado para deduplicação dentro do merchant.
namestringNãoNome de exibição.
phonestringNãoTelefone de contato.
document_typeenumNãoUm de cpf, cnpj, passport, tax_id.
document_numberstringNãoO valor do documento para o tipo informado.

Payment Instrument

Um método de pagamento reutilizável e tokenizado, de propriedade de um cliente — normalmente um cartão armazenado para cobranças futuras (checkout de retorno, assinaturas, one-click). O Tokeflow armazena apenas metadados seguros, como bandeira, últimos quatro dígitos e validade; dados brutos de cartão nunca são persistidos nos sistemas do Tokeflow.

Prefixo de ID: pi_

FieldTypeDescrição
idstringIdentificador do instrumento pi_….
customer_idstringCliente proprietário (cust_…).
card_brandstringBandeira da rede do cartão.
last4stringÚltimos quatro dígitos do cartão.
exp_monthintegerMês de validade.
exp_yearintegerAno de validade.
is_defaultbooleanSe este é o instrumento padrão do cliente.
statusstringStatus de ciclo de vida do instrumento.

Os instrumentos de pagamento podem se manter atualizados automaticamente: o Tokeflow oferece suporte a network tokens (um opt-in explícito por merchant, network_tokens_enabled no merchant) e a um account updater para que cartões armazenados continuem funcionando após reemissões e vencimentos — sem que você precise recoletar os dados do cartão. Um instrumento salvo também pode ser cobrado de novo com um clique; veja Upsells e downsells em um clique.

Card Token

Uma referência de uso único e curta duração para dados de cartão coletados no navegador pelos secure fields do Tokeflow. Os secure fields são executados dentro de iframes isolados e cross-origin; os dados do cartão são criptografados no navegador e nunca tocam seus servidores. Seu cliente recebe um card token e o entrega ao seu backend, que o troca (server-side, com uma chave secreta) por um Payment Instrument durável.

Prefixo de ID: tok_

Os card tokens são um conceito de SDK / lado do navegador e têm curta duração por design. Trate-os como entregas únicas: troque-os server-side prontamente e, em seguida, referencie o instrumento pi_… resultante para qualquer cobrança futura. Veja a documentação do SDK.

Seu catálogo vendável é uma hierarquia de quatro níveis: uma Product Family agrupa Products relacionados; cada produto é vendido como um ou mais Offers; cada offer é precificada via Offer Prices (uma por moeda). As Offer Transitions definem como um assinante pode se mover entre offers (upgrade/downgrade) dentro de uma família.

Product Family

Um agrupamento de produtos relacionados entre os quais um assinante pode se mover (por exemplo, os níveis de um plano). A família define o comportamento padrão — change_charge_behavior — para transições entre seus offers. Um produto pertence a uma família quando participa de fluxos de upgrade/downgrade.

Prefixo de ID: pfa_

Product

Algo que você vende. Um produto é one_time ou recurring (type), e é active ou archived (status). Quando faz parte de uma família, ele carrega uma posição de tier para que os planos possam ser ordenados na lógica de upgrade/downgrade.

Prefixo de ID: prd_

FieldTypeDescrição
namestringNome do produto.
typeenumone_time ou recurring.
statusenumactive ou archived.
product_family_idstringFamília proprietária (pfa_…); definido quando o produto participa de upgrade/downgrade.

Offer

Uma configuração comprável de um produto — a coisa que o cliente efetivamente compra. Um offer fixa o ciclo de cobrança, o comportamento de trial e de setup, e quantos ciclos cobrar. Um produto pode expor vários offers (por exemplo, um offer mensal e um anual).

Prefixo de ID: ofr_

FieldTypeDescrição
namestringNome do offer (ex.: "Monthly", "Holiday Promo").
billing_cycleenumdaily, biweekly, monthly, quarterly, half_yearly, yearly, custom ou none (sob demanda, sem scheduler).
cycle_limitintegerNúmero de cobranças; null = cobra até ser cancelado.
statusenumactive ou archived.
is_defaultbooleanOffer padrão do produto.

billing_cycle: none significa um offer sob demanda sem scheduler de cobrança automático. Use-o para offers que são cobrados de forma pontual, e não em uma cadência fixa.

Offer Price

O valor de um offer em uma única moeda. Um offer tem um preço por moeda, com um marcado como padrão. Os valores são unidades menores inteiras e sempre acompanhados de uma moeda ISO 4217.

Prefixo de ID: opr_

FieldTypeDescrição
currencystringMoeda ISO 4217 (ex.: BRL, USD).
amountintegerPreço em unidades menores (ex.: 9900 = US$99.00).
is_defaultbooleanMoeda padrão do offer.

Offer Transition

Uma regra direcional que conecta dois offers na mesma família — o caminho que um assinante percorre ao fazer upgrade ou downgrade. Uma transição pode sobrescrever o change_charge_behavior padrão da família (next_renew, prorated ou override) para aquele par específico, e pode ser ativada ou desativada.

Prefixo de ID: oft_

Checkout

Um fluxo de compra hospedado e com estado. Uma Checkout Session acompanha um comprador desde a chegada até a conclusão, mantém os offers escolhidos como Checkout Items e registra uma linha do tempo de Checkout Events (incluindo atribuição UTM) para análise de funil. Uma sessão concluída produz um Order.

Checkout Session

O contêiner de uma tentativa de checkout. Acompanha o offer principal, o cliente (eventualmente identificado), a moeda selecionada e um status de ciclo de vida: initiated, customer_identified, payment_pending, completed, expired, abandoned.

Prefixo de ID: cks_

Checkout Item

Uma linha dentro de uma sessão: um offer, sua moeda e valor congelado (snapshot), quantidade e parcelas selecionadas. Os valores são congelados a partir do offer price no momento da sessão, para que edições posteriores no catálogo não alterem um checkout em andamento.

Prefixo de ID: cki_

Checkout Event

Um evento append-only na linha do tempo de uma sessão. Tipos de evento: initiated, customer_identified, currency_changed, payment_started, payment_failed, payment_succeeded, completed, expired, abandoned. Carrega atribuição opcional (utm_source, utm_medium, utm_campaign) e contexto da requisição.

Prefixo de ID: cke_

Pagamentos

Transaction

Uma única tentativa de pagamento contra um provedor — o registro normalizado de uma autorização/captura, independentemente de qual provedor conectado a processou. Carrega o método de pagamento, os valores (autorizado e capturado, em unidades menores), a moeda, o país e um status detalhado. As transações são idempotentes na criação e podem estar vinculadas a um Order.

Prefixo de ID: tx_

FieldTypeDescrição
payment_methodenumcredit_card, debit_card, pix, boleto, wallet.
charge_typeenumpayment ou setup_verification.
amount_authorizedintegerValor autorizado em unidades menores.
amount_capturedintegerValor capturado em unidades menores.
currencystringMoeda ISO 4217.
countrystringPaís ISO 3166-1 alpha-2.
statusenumVeja os status de transação abaixo.

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

Atenção à grafia dos estados de cancelamento. Transações e pedidos usam canceled (um l); reembolsos e assinaturas usam cancelled (dois l). Compare sempre com o valor exato do recurso que você está lendo — uma comparação de string escrita para um nunca vai casar com o outro.

Ao criar uma transação, envie um header Idempotency-Key (ou idempotency_key no body). Repetir a mesma chave retorna o resultado original em vez de cobrar duas vezes. Veja Idempotência.

Order

O registro normalizado e voltado ao merchant de uma única venda. Um pedido vincula-se a no máximo uma Transaction que o liquida, referencia o cliente e pode estar atrelado a uma Subscription quando é uma renovação ou configuração de trial. Use o pedido como sua referência de negócio estável; a transação é a mecânica de pagamento por trás dele.

Prefixo de ID: ord_

FieldTypeDescrição
customer_idstringComprador (cust_…).
order_typeenumapi, checkout, renewal, trial_setup, card_setup.
total_amountintegerTotal do pedido em unidades menores.
currencystringMoeda ISO 4217.
statusenumVeja os status de pedido abaixo.
subscription_idstringDefinido para pedidos renewal / trial_setup; null para pedidos avulsos.
checkout_session_idstringDefinido quando o pedido se originou de uma checkout session.

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

Refund

Um estorno total ou parcial de uma transação capturada. Uma transação pode ter múltiplos refunds (ex.: reembolsos parciais sucessivos). Cada refund registra um valor em unidades menores, uma moeda, um status e um motivo.

Prefixo de ID: ref_

FieldTypeDescrição
payment_transaction_idstringA transação sendo reembolsada (tx_…).
amountintegerValor reembolsado em unidades menores.
currencystringMoeda ISO 4217.
statusenumpending, succeeded, failed, cancelled.
reasonenumduplicate, fraudulent, requested_by_customer.

Subscription

Um acordo de cobrança recorrente: um cliente cobrado sobre um Offer usando um Payment Instrument armazenado. O Tokeflow acompanha o offer e o valor atuais, o período de cobrança, as janelas de trial, o estado de dunning para renovações falhas e um status de ciclo de vida. Cada cobrança de renovação produz um Order (e sua transação).

Prefixo de ID: sub_

FieldTypeDescrição
customer_idstringAssinante (cust_…).
current_offer_idstringO offer atualmente cobrado (ofr_…).
billing_cycleenumCopiado do offer na criação.
current_amountintegerValor recorrente atual em unidades menores.
currencystringMoeda ISO 4217.
payment_instrument_idstringInstrumento cobrado na renovação (pi_…).
cancel_at_period_endbooleanSe true, cancela ao fim do período em vez de imediatamente.
statusenumtrialing, active, dunning, paused, cancelled, expired.

Convenções de valores e formatação

A consistência entre provedores e moedas é garantida por algumas regras. Aplique-as em todos os lugares.

ConceitoConvençãoExemplo
ValoresUnidades menores inteiras (centavos) — nunca decimais15000 = R$150.00; 9900 = US$99.00
MoedaISO 4217, sempre acompanhada de um valorBRL, USD, EUR
PaísISO 3166-1 alpha-2BR, US
TimestampsISO 8601, UTC2026-01-15T12:30:00.000Z

Todo valor no Tokeflow é um inteiro em unidades menores. Enviar 150.00 onde se espera 15000 será rejeitado ou mal interpretado. Sempre envie e armazene os valores como centavos, e sempre inclua a currency.

Envelope de resposta padrão

Toda resposta da API encapsula o recurso em um envelope consistente. Um recurso único omite meta; uma lista inclui 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"
}

Uma resposta de lista define data como um array e inclui paginação:

{
  "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"
}

Referência de formato de ID

Todo objeto do Tokeflow carrega um identificador opaco e prefixado. Os prefixos são estáveis — faça a correspondência por eles em vez de analisar o sufixo aleatório.

ObjetoPrefixoExemplo
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 passos

  • Autenticação — tipos de chave, escopos e a regra do merchant_id para chaves de org.
  • Idempotência — retentativas seguras em chamadas de create e de cobrança.
  • SDK — colete cartões com secure fields e troque card tokens por payment instruments.
  • Webhooks — entrega normalizada de eventos e verificação de assinatura.

Nesta página