Conectores

Registre, liste, atualize e exclua conectores de provedores de pagamento — os conjuntos de credenciais que ligam cada merchant aos seus PSPs e alimentam o roteamento da Tokeflow.

Um conector é um conjunto de credenciais configurado para um provedor de serviços de pagamento (PSP). Conectar o mesmo provedor duas vezes — digamos, um conjunto de credenciais em modo de teste e outro em modo produção, ou uma conta por país — produz dois conectores independentes. Tudo o que vem depois da configuração fala em termos de conectores, não de provedores: os perfis de roteamento referenciam conectores, e cada tentativa na linha do tempo de uma transação registra o connector_id por onde ela passou.

A Tokeflow orquestra as cobranças entre os seus conectores; ela não processa nem liquida fundos. O conector é onde você entrega à Tokeflow as credenciais do provedor que ela precisa para enviar cobranças em seu nome — e onde você configura os webhooks do provedor para que eventos assíncronos (confirmações de PIX, chargebacks, atualizações de estorno) voltem a chegar.

As credenciais são somente para escrita. Elas são validadas, criptografadas e armazenadas na criação, e nunca aparecem em nenhuma resposta da API. O objeto conector expõe has_webhook_secret — um booleano — em vez do próprio segredo. Para rotacionar as credenciais, faça um PATCH no conector com um novo objeto credentials.

Como um conector é criado

Use GET /payment-providers para descobrir quais provedores estão disponíveis para conexão e quais métodos de autenticação cada um suporta, crie o conector e depois aponte seu roteamento para ele.

O objeto conector

CampoTipoDescrição
idstringID do conector, prefixado com conn_.
merchant_idstringMerchant proprietário, prefixado com mrc_.
provider_slugstringSlug do provedor de pagamento (ex.: provider_a, provider_b, provider_c, provider_d, provider_e). Veja Provedores suportados.
payment_provider_idstringID do provedor de pagamento por trás deste conector. Use-o com GET /payment-providers/:provider_id para ler os detalhes do provedor, mesmo depois que ele deixar de ser listado como ativo.
namestringSeu rótulo para este conjunto de credenciais (ex.: "Provider A BRL").
country_codestring | nullCódigo de país ISO 3166-1 alpha-2. Nulo para provedores não específicos de país.
auth_methodstringMétodo de autenticação (api_key na V1).
is_test_modebooleanSe este é um conector em modo de teste.
is_activebooleanSe o conector está ativo. Veja Conectores ativos e inativos.
created_atstringTimestamp de criação (ISO 8601 UTC).
webhook_urlstring | nullA URL a configurar no dashboard do seu PSP para que os eventos do provedor cheguem à Tokeflow. Trate-a como uma credencial — ela carrega um token por conector na query string. Veja Trate webhook_url como um segredo.
has_webhook_secretbooleanSe os webhooks recebidos do provedor podem ser verificados — ou um webhook_secret está armazenado, ou o provedor assina com uma chave que já está em credentials (alguns provedores assinam com a chave secreta da conta, então seus conectores reportam true sem um webhook_secret).
configobject | nullConfiguração opcional e não sensível por conector. Nulo quando não há substituições definidas. Veja Configuração do conector.

Configuração do conector

config guarda substituições não sensíveis por conector:

CampoTipoDescrição
card_brandsarrayRestringe as bandeiras de cartão exibidas ao Bridge SDK para este conector. Deve ser um subconjunto do default_supported_card_brands do provedor. Quando config é nulo (sem substituições), o SDK recorre ao padrão do provedor.
installments_enabledboolean | nullA escolha de parcelamento do merchant para este conector, dentro do installment_config do provedor. Não definido (ou null para limpar): cobranças via API que pedem parcelas são aceitas, mas o checkout não as oferece. true: as parcelas também são oferecidas no checkout. false: cobranças parceladas são recusadas neste conector. Um provedor cujo installment_config não tem entrada para o método de pagamento nunca aceita parcelas, independentemente desta flag.

Na atualização, cada chave é mesclada de forma independente: envie um array vazio ou omita card_brands para limpar a substituição de bandeiras, e envie installments_enabled: null para voltar ao estado não definido.

Conectores ativos e inativos

Um conector inativo (is_active: false) é ignorado pela avaliação de roteamento e é rejeitado como conector padrão de um perfil de roteamento por PATCH /routing/profiles/:id/default-connector. Desativar é a forma segura de tirar um conjunto de credenciais de rotação sem excluí-lo.

Quando a Tokeflow tira um provedor de pagamento de operação, os conectores dele ainda podem ser renomeados, ter as credenciais rotacionadas e ser desativados — mas um conector desativado não pode ser reativado (400) enquanto o provedor estiver inativo.

Credenciais recusadas

Se um provedor começa a recusar as credenciais de API de um conector — uma chave revogada, rotacionada ou restringida do lado do provedor —, a Tokeflow confirma a recusa junto ao provedor antes de agir. Uma vez confirmada, as renovações de assinatura roteadas para esse conector são colocadas em uma retenção de cobrança (billing hold) em vez de serem recusadas e irem para dunning. Salve novas credenciais com PATCH e a retenção é liberada; alterar apenas o webhook_secret não a libera.

Criar ou atualizar um perfil de roteamento atualmente não valida is_active — um perfil pode acabar com um conector padrão inativo. As cobranças roteadas para esse perfil então falham no momento da resolução. Ao desativar um conector, reaponte qualquer perfil que o use como padrão.


Endpoints

Todos os endpoints de conector são delimitados sob o caminho do merchant. Com uma chave de Organization, merchant_id seleciona o merchant de destino; com uma chave de Merchant, ele deve ser o próprio merchant da chave.

POST/api/v1/merchants/:merchant_id/connectors

OrgMerchant

Auth: Chave de Organization ou chave de Merchant (correspondente ao merchant_id no caminho). Escopo: connectors:write.

Registra um conjunto de credenciais de PSP para o merchant. As credenciais são validadas junto ao provedor e armazenadas de forma criptografada. Use GET /payment-providers para listar os provedores disponíveis para conexão e os métodos de autenticação que cada um suporta.

Campos da requisição

CampoTipoObrigatórioDescrição
provider_slugstringSimUm de provider_a, provider_b, provider_c, provider_d, provider_e.
namestringSimNome do conector, máx. 100 caracteres.
is_test_modebooleanSimSe este conector está em modo de teste.
credentialsobjectSimCredenciais específicas do provedor. Veja O objeto credentials.
auth_methodstringSimUm de api_key, oauth2. Consulte GET /payment-providers para os métodos que cada provedor suporta.
country_codestringNãoCódigo de país ISO 3166-1 alpha-2. Omita para provedores não específicos de país.
is_activebooleanNãoSe o conector está ativo na criação. Padrão true.
webhook_secretstringNãoSegredo de assinatura de webhook do PSP para verificar webhooks recebidos. O formato depende do provedor — Provider A usa whsec_…; Provider B espera um objeto JSON serializado como string {"username":"…","password":"…"} usado para verificação de HTTP Basic Auth; alguns provedores esperam o token de acesso que você define no webhook no painel deles, e outros não precisam de nenhum — veja Credenciais por provedor.
configobjectNãoConfiguração opcional e não sensível por conector. Veja Configuração do conector.

O objeto credentials

O formato de credentials depende do provedor conectado. Alguns provedores exigem uma única chave de API; outros exigem um token de acesso mais um país, ou um par OAuth client_id/client_secret. Envie exatamente os campos que o seu provedor exige — chaves desconhecidas são recusadas, e a Tokeflow criptografa os valores em repouso e nunca os retorna por completo. O ambiente da chave precisa corresponder a is_test_mode: uma chave de produção em um conector de teste (ou o inverso) é rejeitada antes de qualquer coisa ser armazenada. Os slugs de provedor e seus requisitos exatos de credenciais estão listados para os seus provedores habilitados no Dashboard da Tokeflow.

Credenciais por provedor

Os campos exatos de credentials, o formato do webhook_secret e qualquer dado extra do pagador que um provedor exija são exibidos para os seus provedores habilitados no Dashboard da Tokeflow, e a equipe da Tokeflow pode confirmá-los para um provedor que você está prestes a habilitar. Três padrões cobrem o catálogo:

Padrãocredentialswebhook_secret
Chave de API única{ "api_key": "…" } — uma chave de teste em um conector de teste, uma chave de produção caso contrário.O segredo de assinatura ou o token de acesso que você configura no webhook do provedor; a Tokeflow verifica cada entrega contra ele.
Chave secreta que também assina os webhooks{ "secret_key": "…", "public_key": "…" } — public_key opcional.Não usado. A Tokeflow verifica as entregas com credentials.secret_key, has_webhook_secret reporta true e rotacionar a chave rotaciona a verificação de assinatura junto.
Token de acesso, ou par OAuth, mais país{ "access_token": "…", "country": "…" } ou { "client_id": "…", "client_secret": "…", "country": "…" }.Específico do provedor; veja o Dashboard.

Seja qual for o padrão, cadastre o webhook_url do conector no painel do próprio provedor e envie payer_ip e um cliente completo nas cobranças com cartão dos provedores que os exigem — veja Provedores suportados.

Exemplo de requisição

curl -X POST https://api.tokeflow.com/api/v1/merchants/mrc_123/connectors \
  -H "Authorization: Bearer sk_live_org_…" \
  -H "Content-Type: application/json" \
  -d '{
    "provider_slug": "provider_a",
    "name": "Provider A BRL",
    "country_code": "BR",
    "is_test_mode": false,
    "auth_method": "api_key",
    "credentials": { "api_key": "sk_live_provider_key" },
    "webhook_secret": "whsec_9c41f2ab…",
    "config": { "card_brands": ["visa", "mastercard"] }
  }'

Exemplo de resposta — 201 Created

{
  "id": "conn_9f2b71",
  "merchant_id": "mrc_123",
  "provider_slug": "provider_a",
  "payment_provider_id": "pp_1a2b3c",
  "name": "Provider A BRL",
  "country_code": "BR",
  "auth_method": "api_key",
  "is_test_mode": false,
  "is_active": true,
  "created_at": "2026-01-15T12:30:00Z",
  "webhook_url": "https://api.tokeflow.com/webhooks/connectors/conn_9f2b71?token=whsec_…",
  "has_webhook_secret": true,
  "config": { "card_brands": ["visa", "mastercard"] }
}

Termine o trabalho no dashboard do provedor. Copie o webhook_url retornado nas configurações de webhook do seu PSP, e defina aqui o webhook_secret como o segredo de assinatura que o provedor fornece — é assim que a Tokeflow verifica que os eventos recebidos do provedor são genuínos.

Trate webhook_url como um segredo

O webhook_url retornado autentica as chamadas do provedor por meio de um token embutido na query string. Qualquer pessoa com essa URL pode enviar eventos ao seu conector, então dê a ela o mesmo tratamento de uma API key:

  • Cole-a apenas na configuração de webhooks do próprio provedor, sobre HTTPS.
  • Nunca a coloque em um ticket, uma mensagem de chat, uma captura de tela, uma linha de log ou um bundle do lado do cliente.
  • Se ela vazar, rotacione-a registrando o conector novamente e depois atualize a URL no dashboard do provedor.

GET/api/v1/merchants/:merchant_id/connectors

OrgMerchant

Auth: Chave de Organization ou chave de Merchant (correspondente ao merchant_id no caminho). Escopo: connectors:read.

Retorna uma lista paginada dos conectores de provedores de pagamento do merchant.

Parâmetros de consulta

CampoTipoObrigatórioDescrição
pagenumberNãoNúmero da página, indexado a partir de 1 (padrão 1, mín. 1).
limitnumberNãoItens por página (padrão 20, mín. 1, máx. 100).

Exemplo de requisição

curl -G https://api.tokeflow.com/api/v1/merchants/mrc_123/connectors \
  -H "Authorization: Bearer sk_live_org_…" \
  --data-urlencode "page=1" \
  --data-urlencode "limit=20"

Exemplo de resposta — 200 OK

{
  "data": [
    {
      "id": "conn_9f2b71",
      "merchant_id": "mrc_123",
      "provider_slug": "provider_a",
      "payment_provider_id": "pp_1a2b3c",
      "name": "Provider A BRL",
      "country_code": "BR",
      "auth_method": "api_key",
      "is_test_mode": false,
      "is_active": true,
      "created_at": "2026-01-15T12:30:00Z",
      "webhook_url": "https://api.tokeflow.com/webhooks/connectors/conn_9f2b71?token=whsec_…",
      "has_webhook_secret": true,
      "config": { "card_brands": ["visa", "mastercard"] }
    },
    {
      "id": "conn_4d8ea0",
      "merchant_id": "mrc_123",
      "provider_slug": "provider_b",
      "name": "Provider B sandbox",
      "country_code": "BR",
      "auth_method": "api_key",
      "is_test_mode": true,
      "is_active": true,
      "created_at": "2026-01-10T09:15:00Z",
      "webhook_url": "https://api.tokeflow.com/webhooks/connectors/conn_4d8ea0?token=whsec_…",
      "has_webhook_secret": true,
      "config": null
    }
  ],
  "meta": {
    "page": 1,
    "limit": 20,
    "total": 2,
    "total_pages": 1,
    "has_next": false,
    "has_prev": false
  }
}

GET/api/v1/merchants/:merchant_id/connectors/:connector_id

OrgMerchant

Auth: Chave de Organization ou chave de Merchant (correspondente ao merchant_id no caminho). Escopo: connectors:read.

Recupera um único conector. Retorna o objeto conector.

Exemplo de requisição

curl https://api.tokeflow.com/api/v1/merchants/mrc_123/connectors/conn_9f2b71 \
  -H "Authorization: Bearer sk_live_org_…"

Exemplo de resposta — 200 OK

{
  "id": "conn_9f2b71",
  "merchant_id": "mrc_123",
  "provider_slug": "provider_a",
  "payment_provider_id": "pp_1a2b3c",
  "name": "Provider A BRL",
  "country_code": "BR",
  "auth_method": "api_key",
  "is_test_mode": false,
  "is_active": true,
  "created_at": "2026-01-15T12:30:00Z",
  "webhook_url": "https://api.tokeflow.com/webhooks/connectors/conn_9f2b71?token=whsec_…",
  "has_webhook_secret": true,
  "config": { "card_brands": ["visa", "mastercard"] }
}

Um 404 (not_found_error) é retornado se o conector não existir ou não pertencer ao merchant.


PATCH/api/v1/merchants/:merchant_id/connectors/:connector_id

OrgMerchant

Auth: Chave de Organization ou chave de Merchant (correspondente ao merchant_id no caminho). Escopo: connectors:write.

Atualiza parcialmente um conector — credenciais, rótulo ou estado de habilitação. Somente os campos abaixo podem ser alterados; todos são opcionais.

Campos da requisição

CampoTipoObrigatórioDescrição
namestringNãoNome do conector, máx. 100 caracteres.
is_activebooleanNãoSe o conector está ativo. Veja Conectores ativos e inativos antes de desativar. A reativação é recusada com 400 enquanto o provedor de pagamento do conector estiver inativo.
credentialsobjectNãoCredenciais atualizadas do provedor — validadas e recriptografadas. Mesmas regras de formato da criação. Novas credenciais também liberam qualquer retenção de cobrança aplicada porque o provedor recusou as anteriores.
webhook_secretstringNãoSegredo de assinatura de webhook do PSP. Mesmo formato específico do provedor usado na criação.
configobjectNãoConfiguração por conector, mesclada chave a chave. Envie um array card_brands vazio, ou omita card_brands, para limpar a substituição de bandeiras; envie installments_enabled: null para voltar o parcelamento ao estado não definido. Veja Configuração do conector.

Exemplo de requisição — rotacionar credenciais e renomear

curl -X PATCH https://api.tokeflow.com/api/v1/merchants/mrc_123/connectors/conn_9f2b71 \
  -H "Authorization: Bearer sk_live_org_…" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Provider A BRL prod",
    "credentials": { "api_key": "sk_live_provider_key_rotated" }
  }'

Exemplo de resposta — 200 OK

{
  "id": "conn_9f2b71",
  "merchant_id": "mrc_123",
  "provider_slug": "provider_a",
  "payment_provider_id": "pp_1a2b3c",
  "name": "Provider A BRL prod",
  "country_code": "BR",
  "auth_method": "api_key",
  "is_test_mode": false,
  "is_active": true,
  "created_at": "2026-01-15T12:30:00Z",
  "webhook_url": "https://api.tokeflow.com/webhooks/connectors/conn_9f2b71?token=whsec_…",
  "has_webhook_secret": true,
  "config": { "card_brands": ["visa", "mastercard"] }
}

Um 404 (not_found_error) é retornado se o conector não existir ou não pertencer ao merchant.


DELETE/api/v1/merchants/:merchant_id/connectors/:connector_id

OrgMerchant

Auth: Chave de Organization ou chave de Merchant (correspondente ao merchant_id no caminho). Escopo: connectors:write.

Remove o conector. Ele não pode estar referenciado por nenhum nó de roteamento nem ser o conector padrão de um perfil de roteamento — reaponte esses primeiro.

Exemplo de requisição

curl -X DELETE https://api.tokeflow.com/api/v1/merchants/mrc_123/connectors/conn_4d8ea0 \
  -H "Authorization: Bearer sk_live_org_…"

Códigos de resposta

CódigoQuando
204 No ContentO conector foi excluído. Sem corpo na resposta.
400 Bad RequestO conector ainda está referenciado por um nó de roteamento ou é o conector padrão de um perfil.
404 Not FoundConector não encontrado.

Se você só quer parar de rotear cobranças por um conjunto de credenciais, desative-o com PATCH (is_active: false) em vez de excluí-lo — o conector e seu histórico permanecem intactos, e você pode reativá-lo depois.


Erros

Todo erro usa o envelope padrão. Os casos mais comuns para este recurso:

HTTPtypeCausa típica
400validation_errorCredenciais inválidas ou incompletas para o provedor, ou uma exclusão bloqueada porque o conector ainda está referenciado pelo roteamento.
401authentication_errorChave de API ausente ou inválida.
403authorization_errorA chave não possui o escopo necessário, ou uma chave de Merchant tentando acessar o caminho de outro merchant.
404not_found_errorConector (ou merchant) não encontrado ou não pertencente ao solicitante.
429rate_limit_errorLimite de taxa excedido — recue exponencialmente.

Consulte Erros para o envelope completo e o catálogo de tipos.

Relacionados

Nesta página