Visão geral da referência da API

Convenções da API REST da Tokeflow — URL base e versionamento, autenticação, envelopes de requisição e resposta, IDs de recursos, valores monetários, paginação, idempotência e limites de taxa.

A API da Tokeflow é uma interface JSON-sobre-HTTPS para orquestração de pagamentos. Use-a para gerenciar clientes, executar sessões de checkout, criar e capturar transações, emitir reembolsos, modelar seu catálogo e conduzir assinaturas — tudo padronizado sob sua própria marca, em todos os provedores de pagamento que você conectar.

A Tokeflow orquestra pagamentos; ela não processa nem liquida fundos. Autorização, captura e liquidação são realizadas pelos provedores de pagamento conectados. A Tokeflow normaliza o comportamento deles atrás de uma única API consistente, para que sua integração permaneça a mesma independentemente de quem esteja por trás.

Esta página é o hub de convenções. Leia-a uma vez, e todas as páginas de endpoint desta referência se comportarão da maneira que você espera.

Novo na Tokeflow? Comece com o guia de Autenticação para provisionar chaves e depois volte aqui para o formato do protocolo.

URL base e versionamento

Todas as requisições vão para uma única URL base:

https://api.tokeflow.com

A API usa versionamento por URI. Todo endpoint fica sob um prefixo de versão, e a versão atual é v1:

https://api.tokeflow.com/api/v1/{resource}

Mudanças incompatíveis são lançadas sob um novo prefixo de versão (por exemplo /api/v2). Mudanças aditivas e retrocompatíveis — novos campos, novos valores de enum, novos endpoints — podem aparecer dentro da v1, então construa clientes que ignorem campos desconhecidos.

A Tokeflow é white-label por design. Se uma requisição é distribuída para um provedor ou encadeada em cascata por vários é governado pela sua configuração de roteamento, não pela superfície da API. Os formatos de requisição e resposta documentados aqui são estáveis independentemente de qual provedor acaba processando o pagamento.

Autenticação

Autentique requisições servidor-para-servidor com uma chave de API secreta no cabeçalho Authorization usando o esquema Bearer:

Authorization: Bearer sk_live_mer_…

As chaves têm escopo para exatamente uma entidade:

Tipo de chavePrefixoEscopoDirecionamento de Merchant
Segredo de Merchantsk_live_mer_…Um MerchantO Merchant é inferido — não é necessário merchant_id
Segredo de Organizationsk_live_org_…Todo Merchant na OrganizationIdentifique o Merchant alvo com merchant_id

Chaves públicas (pk_live_org_… / pk_live_mer_…) são restritas a escopos seguros para o cliente e são seguras para embutir em código de navegador. Chaves secretas (sk_*) nunca devem ser expostas no lado do cliente.

As permissões seguem um modelo resource:action (por exemplo transactions:read, products:write). Uma requisição que autentica mas não possui o escopo necessário retorna 403 (authorization_error).

Trate chaves secretas como senhas. Nunca envie uma chave sk_* para um navegador, aplicativo móvel ou qualquer cliente que você não controle. Para coleta de cartão no lado do cliente, use uma chave pública com o Bridge SDK em vez disso.

Consulte Autenticação para detalhes sobre anatomia de chaves, rotação e escopos.

Chaves de Organization e merchant_id

Quando você usa uma chave de Organization em um recurso com escopo de Merchant, você deve informar à Tokeflow a qual Merchant você se refere:

  • Em requisições de listagem e obtenção, passe merchant_id como parâmetro de query.
  • Em requisições de criação, passe merchant_id no corpo da requisição.

Chaves de Merchant nunca precisam disso — o Merchant é derivado da chave.

# Organization key: merchant_id is required
curl https://api.tokeflow.com/api/v1/customers?merchant_id=mrc_a1b2c3 \
  -H "Authorization: Bearer sk_live_org_…"

# Merchant key: merchant is inferred
curl https://api.tokeflow.com/api/v1/customers \
  -H "Authorization: Bearer sk_live_mer_…"

Formato da requisição

Envie e aceite JSON.

CabeçalhoValor
AuthorizationBearer <secret_key>
Content-Typeapplication/json (em requisições com corpo)
Acceptapplication/json

Uma requisição típica:

curl -X POST https://api.tokeflow.com/api/v1/customers \
  -H "Authorization: Bearer sk_live_mer_…" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json" \
  -d '{
    "name": "Joao da Silva",
    "email": "joao@example.com"
  }'

Envelope de resposta

Toda resposta é envolvida em um envelope consistente. Seu código lê success para ramificar, depois data para o payload — nunca o objeto de nível superior diretamente.

Envelope de sucesso

Uma resposta bem-sucedida define success: true e carrega o recurso (ou array de recursos) em data:

{
  "success": true,
  "data": {
    "id": "cust_9a8b7c",
    "name": "Joao da Silva",
    "email": "joao@example.com",
    "created_at": "2026-01-15T12:30:00.000Z"
  },
  "request_id": "req_8f3c…",
  "timestamp": "2026-01-15T12:30:00.000Z"
}

Onde as coisas ficam:

CampoDescrição
successSempre true em uma resposta 2xx.
dataO recurso (objeto único) ou a coleção (array, em endpoints de listagem).
metaPresente em respostas de listagem. Contém pagination. Omitido para respostas de recurso único.
request_idID único da requisição. Cite-o em tickets de suporte e registre-o em log do seu lado.
timestampHorário ISO 8601 UTC em que a resposta foi gerada.

Para um endpoint de listagem, data é o array e meta.pagination descreve a página:

{
  "success": true,
  "data": [
    { "id": "cust_9a8b7c", "name": "Joao da Silva" },
    { "id": "cust_4d5e6f", "name": "Maria Souza" }
  ],
  "meta": {
    "pagination": {
      "page": 1,
      "limit": 20,
      "total": 42,
      "total_pages": 3,
      "has_next": true,
      "has_prev": false
    }
  },
  "request_id": "req_8f3c…",
  "timestamp": "2026-01-15T12:30:00.000Z"
}

Envelope de erro

Erros nunca são envolvidos em data. Eles usam um formato dedicado com um code estável e legível por máquina:

{
  "error": {
    "type": "validation_error",
    "code": "INVALID_FIELD",
    "message": "The 'currency' field must be a valid ISO 4217 code.",
    "details": {
      "field": "currency"
    },
    "request_id": "req_8f3c…",
    "timestamp": "2026-01-15T12:30:00.000Z"
  }
}

O status HTTP mapeia diretamente para o type do erro:

Statustype
400validation_error
401authentication_error
403authorization_error
404not_found_error
409conflict_error
422business_rule_error
429rate_limit_error
500internal_server_error

Ramifique em error.code (uma string estável), não em error.message (legível por humanos e sujeita a mudanças). Consulte Erros para o catálogo completo.

const body = await res.json();

if (!res.ok) {
  // body.error.type, body.error.code, body.error.message
  throw new Error(`[${body.error.code}] ${body.error.message}`);
}

return body.data;

IDs de recursos

Todo recurso da Tokeflow possui um ID estável e opaco com um prefixo de tipo. O prefixo informa o tipo do recurso num relance — trate o restante como uma string opaca e nunca o interprete.

PrefixoRecurso
org_Organization
mrc_Merchant
cust_Cliente
pfa_Família de produtos
prd_Produto
ofr_Oferta
opr_Preço de oferta
oft_Transição de oferta
cks_Sessão de checkout
cki_Item de checkout
cke_Evento de checkout
tx_Transação
ref_Reembolso
ord_Pedido
sub_Assinatura
pi_Instrumento de pagamento
tok_Token de cartão (SDK)

Os IDs são opacos. Não infira significado de seu conteúdo, não assuma um comprimento fixo nem os gere você mesmo — sempre use o valor que a Tokeflow retorna.

Formatos de dados

A Tokeflow padroniza formatos para que seus dados sejam inequívocos entre provedores e regiões.

Valores monetários

Os valores são inteiros nas unidades menores da moeda (por exemplo, centavos). Nunca envie um decimal.

ValorMoedaamount
R$150.00BRL15000
US$99.00USD9900

Sempre pareie um valor com seu código currency ISO 4217 (por exemplo "BRL", "USD"). Um valor sem uma moeda é ambíguo e é rejeitado.

País, moeda e datas

CampoFormatoExemplo
countryISO 3166-1 alpha-2"BR"
currencyISO 4217"BRL"
Carimbos de data/horaISO 8601, UTC"2026-01-15T12:30:00.000Z"

Idempotência

Mutações de criação e cobrança são idempotentes. Envie um cabeçalho Idempotency-Key único (ou um campo idempotency_key no corpo) e a Tokeflow garante que a operação seja executada no máximo uma vez.

curl -X POST https://api.tokeflow.com/api/v1/transactions \
  -H "Authorization: Bearer sk_live_mer_…" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: 4f1c2a9e-7b3d-4d2a-9f10-2e5a8c1b6d44" \
  -d '{ "amount": 15000, "currency": "BRL", "payment_method": "pix" }'

Repetir a mesma chave retorna o resultado original — HTTP 200 em uma repetição versus HTTP 201 na primeira criação — em vez de criar uma duplicata. Gere uma nova chave (como um UUID) por operação lógica e reutilize-a ao tentar novamente após uma falha de rede.

Sempre defina uma chave de idempotência em POST /transactions. Ela é sua rede de segurança contra cobranças duplicadas quando uma requisição atinge o tempo limite e você tenta novamente.

Consulte Idempotência para a semântica completa.

Limites de taxa

As requisições são limitadas por taxa por chave de API e por endpoint, em janelas de 60 segundos. Rotas de pagamento e de leitura permitem 600 requisições por minuto por padrão; rotas sem classe permitem 100. Exceder um limite retorna HTTP 429 com um rate_limit_error e um cabeçalho Retry-After.

Trate 429 com backoff exponencial e jitter, e distribua operações em massa ao longo do tempo em vez de dispará-las em rajada. Consulte Limites de taxa para detalhes.

Paginação e filtragem

Os endpoints de listagem são paginados com dois parâmetros de query:

ParâmetroTipoPadrãoDescrição
pageinteger1 (mín 1)Número de página indexado a partir de 1.
limitinteger20 (máx 100)Itens por página.

A resposta carrega o estado da página em meta.pagination:

curl "https://api.tokeflow.com/api/v1/customers?page=2&limit=50" \
  -H "Authorization: Bearer sk_live_mer_…"

A maioria dos endpoints de listagem também aceita filtros específicos do recurso (por exemplo status, intervalo de datas, moeda). Cada página de endpoint documenta seus próprios filtros. Consulte Paginação e filtragem para as convenções compartilhadas.

Como uma requisição flui

A Tokeflow autentica a chave, aplica suas regras de roteamento (incluindo resiliência e fallback), encaminha para o provedor selecionado e normaliza a resposta do provedor no envelope padrão. Seu cliente sempre vê o mesmo formato.

Grupos de recursos

Todo endpoint abaixo aceita uma chave de Organization ou de Merchant. Com uma chave de Organization, adicione merchant_id onde o endpoint tem escopo de Merchant (conforme observado em cada página).

GrupoPrefixoDescrição
Clientescust_Crie e gerencie pagadores, incluindo documentos e dados de contato.
Sessões de Checkoutcks_Fluxos de checkout hospedados/embutidos: itens de linha, identificação de cliente e eventos.
Transaçõestx_Crie, recupere, capture e cancele pagamentos; inspecione tentativas e linha do tempo de roteamento.
Reembolsosref_Reembolsos totais ou parciais contra transações capturadas.
Pedidosord_Registros de pedido que agrupam transações entre fluxos de API, checkout e renovação.
Assinaturassub_Cobrança recorrente: ofertas, ciclo de vida, dunning, pausar/retomar e mudanças de oferta.
Instrumentos de Pagamentopi_Métodos de pagamento salvos em arquivo para cobranças iniciadas pelo Merchant e recorrentes.
Merchantsmrc_Gerencie Merchants e os membros de suas equipes dentro da sua Organization.
Chaves de APIak_Crie, liste e revogue as chaves de API que autenticam sua integração.
Endpoints de Webhook—Registre endpoints de webhook, inspecione entregas e rotacione segredos de assinatura.
Sessões e Tokenstok_Endpoints de sessão e token no lado do servidor por trás do Bridge SDK.
Conectoresconn_As conexões com provedores de pagamento disponíveis para um Merchant.
Perfis de Roteamento—Regras de roteamento inteligente: perfis, nós de regra e ordem de fallback.
Provedores de Pagamento—O catálogo de provedores de pagamento que a Tokeflow pode orquestrar.
Logs de Auditoria—Registro somente de inclusão da atividade da conta para rastreabilidade.
Catálogo—Famílias de produtos, produtos, ofertas, preços de oferta e transições de oferta.
Webhooks—Notificações de eventos normalizadas e assinadas para mudanças de pagamento e ciclo de vida.

Catálogo num relance

O catálogo modela o que você vende e como é precificado.

Recurso de catálogoPrefixoDescrição
Famílias de Produtospfa_Agrupamento de nível superior para produtos relacionados.
Produtosprd_Um item vendável — one_time ou recurring.
Ofertasofr_Uma configuração comprável de um produto, incluindo seu ciclo de cobrança.
Preços de Ofertaopr_Variantes precificadas de uma oferta (valor + moeda).
Transições de Ofertaoft_Regras para mover uma assinatura de uma oferta para outra.

Próximos passos

Nesta página