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.comA 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 chave | Prefixo | Escopo | Direcionamento de Merchant |
|---|---|---|---|
| Segredo de Merchant | sk_live_mer_… | Um Merchant | O Merchant é inferido — não é necessário merchant_id |
| Segredo de Organization | sk_live_org_… | Todo Merchant na Organization | Identifique 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_idcomo parâmetro de query. - Em requisições de criação, passe
merchant_idno 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çalho | Valor |
|---|---|
Authorization | Bearer <secret_key> |
Content-Type | application/json (em requisições com corpo) |
Accept | application/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:
| Campo | Descrição |
|---|---|
success | Sempre true em uma resposta 2xx. |
data | O recurso (objeto único) ou a coleção (array, em endpoints de listagem). |
meta | Presente em respostas de listagem. Contém pagination. Omitido para respostas de recurso único. |
request_id | ID único da requisição. Cite-o em tickets de suporte e registre-o em log do seu lado. |
timestamp | Horá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:
| Status | type |
|---|---|
| 400 | validation_error |
| 401 | authentication_error |
| 403 | authorization_error |
| 404 | not_found_error |
| 409 | conflict_error |
| 422 | business_rule_error |
| 429 | rate_limit_error |
| 500 | internal_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.
| Prefixo | Recurso |
|---|---|
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.
| Valor | Moeda | amount |
|---|---|---|
| R$150.00 | BRL | 15000 |
| US$99.00 | USD | 9900 |
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
| Campo | Formato | Exemplo |
|---|---|---|
country | ISO 3166-1 alpha-2 | "BR" |
currency | ISO 4217 | "BRL" |
| Carimbos de data/hora | ISO 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âmetro | Tipo | Padrão | Descrição |
|---|---|---|---|
page | integer | 1 (mín 1) | Número de página indexado a partir de 1. |
limit | integer | 20 (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).
| Grupo | Prefixo | Descrição |
|---|---|---|
| Clientes | cust_ | Crie e gerencie pagadores, incluindo documentos e dados de contato. |
| Sessões de Checkout | cks_ | Fluxos de checkout hospedados/embutidos: itens de linha, identificação de cliente e eventos. |
| Transações | tx_ | Crie, recupere, capture e cancele pagamentos; inspecione tentativas e linha do tempo de roteamento. |
| Reembolsos | ref_ | Reembolsos totais ou parciais contra transações capturadas. |
| Pedidos | ord_ | Registros de pedido que agrupam transações entre fluxos de API, checkout e renovação. |
| Assinaturas | sub_ | Cobrança recorrente: ofertas, ciclo de vida, dunning, pausar/retomar e mudanças de oferta. |
| Instrumentos de Pagamento | pi_ | Métodos de pagamento salvos em arquivo para cobranças iniciadas pelo Merchant e recorrentes. |
| Merchants | mrc_ | Gerencie Merchants e os membros de suas equipes dentro da sua Organization. |
| Chaves de API | ak_ | 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 Tokens | tok_ | Endpoints de sessão e token no lado do servidor por trás do Bridge SDK. |
| Conectores | conn_ | 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álogo | Prefixo | Descrição |
|---|---|---|
| Famílias de Produtos | pfa_ | Agrupamento de nível superior para produtos relacionados. |
| Produtos | prd_ | Um item vendável — one_time ou recurring. |
| Ofertas | ofr_ | Uma configuração comprável de um produto, incluindo seu ciclo de cobrança. |
| Preços de Oferta | opr_ | Variantes precificadas de uma oferta (valor + moeda). |
| Transições de Oferta | oft_ | Regras para mover uma assinatura de uma oferta para outra. |
Próximos passos
- Autenticação — provisione chaves e entenda os escopos.
- Erros — o catálogo completo de erros e códigos.
- Idempotência e Limites de taxa — repetições seguras em escala.
- Webhooks — receba e verifique eventos assinados.