1. Cartão de Crédito
SYNC-DOCUMENTATION
  • Introdução
  • Auth Token
    • Gera o token de utilização da aplicação
      POST
  • Saldo
    • Retorna o Saldo do Usuário
      GET
  • Transações
    • Consultar transação V1
      GET
    • Consultar transação V2
      GET
  • Utmify
    • Salvar Token
      POST
    • Desativa Token
      POST
  • Partner
    • Consulta dados do Parceiro
      GET
  • Cartão de Crédito
    • Tokenização pública de cartão
    • Selar um cartão
      POST
    • Cobrar no cartão
      POST
  • Pix - CashIn
    • Solicitação de depósito via Pix
      POST
  • Old API
    • CashIn
      POST
    • Consulta os dados do Parceiro
      GET
  • Assinaturas - Recorrência
    • Assinatura com Cartão de Crédito
    • Planos
      • Listar planos
      • Criar plano
      • Detalhe do plano
      • Editar plano
      • Arquivar plano
      • Assinantes do plano
    • Assinantes
      • Cadastrar assinante
      • Listar assinantes
      • Detalhe da assinatura
      • Cancelar assinatura
      • Pausar assinatura
      • Reativar assinatura
      • Reenviar cobrança
      • Trocar plano da assinatura
    • Notificações
      • Listar entregas de um webhook
    • Splits
      • Adicionar recebedor de split a um plano
      • Listar splits enviados (perspectiva do seller)
      • Listar convites recebidos (perspectiva do recebedor)
      • Aceitar convite de split
      • Rejeitar convite de split
      • Cancelar split (perspectiva do seller)
    • Produtos — Planos
      • Listar planos aninhados a um produto
      • Criar plano aninhado a um produto
      • Atualizar plano aninhado
      • Desativar plano aninhado
      • Marcar plano como padrão do produto
  • Reembolsos
    • Solicitar reembolso de uma venda
    • Consultar uma solicitação de reembolso
  • Webhooks
    • Cash-In
      • Cash-in criado (cobrança PIX gerada)
      • Cash-in atualizado (mudança de status)
      • Cash-in legado (notificação mínima)
    • Cash-Out
      • Cash-out criado (saque solicitado)
      • Cash-out atualizado (mudança de status do saque)
    • Cartão de Crédito
      • Cartão de crédito — cobrança criada
      • Cartão de crédito — mudança de status
    • Transações - Completo
      • Cobrança de transação criada
      • Transação teve mudança de status
    • Listar webhooks
    • Criar webhook
    • Atualizar webhook
    • Excluir webhook
    • Rotacionar o segredo de assinatura
  • Esquemas
    • Webhook
      • CashIn
        • onCreate
        • onUpdate
        • CashinCreated
        • CashinUpdated
        • CashinOld
      • CashOut
        • onCreate
        • onUpdate
      • Cash-In
        • CashinCreated
        • CashinUpdated
        • CashinOld
    • CreditCardCreatePayload
    • CashoutCreated
    • CreditCardCreated
    • WebhookInput
    • CashinCreated
    • CardTokenRequest
    • RefundReason
    • BillingMethod
    • Message
    • TransactionEvent
    • CardToken
    • RefundStatus
    • CashinUpdated
    • CreditCardUpdated
    • CreditCardStatusPayload
    • CashoutUpdated
    • TransactionV2
    • PlanStatus
    • Webhook
    • Customer
    • RefundRejectionCategory
    • Transaction
    • RefundWebhookPayload
    • CreditCardPaymentRequest
    • CreatedWebhook
    • CashinOld
    • SplitStatus
    • WebhookListItem
    • CreditCardPaymentAccepted
    • SubscriptionSplit
    • DebtorAccount
    • PaymentMethod
    • SimpleError
    • RefundRequest
    • WebhookDelivery
    • SplitRecipientPayload
    • Payment
    • RotatedWebhookSecret
    • RefundTransaction
    • SubscriptionSplitInvite
    • StoreProductPlanRequest
    • CodedError
    • RefundEvent
    • SubscriptionStatus
    • UpdateProductPlanRequest
    • Checkout
    • Card
    • RefusedError
    • PaymentLink
    • ChargeStatus
    • AntiFraudError
    • Tracking
    • Error
    • DeliveryAddress
    • ValidationError
    • PlanResource
    • PaginationMeta
    • ChargeResource
    • SubscriptionResource
    • EnrollPaymentQrCode
    • EnrollPaymentPixAutomatico
    • WebhookResource
    • NotFoundError
    • WebhookEnvelope
    • ChargeBlock
    • MandateBlock
    • WebhookDeliveryResource
  1. Cartão de Crédito

Tokenização pública de cartão

Tokenização de cartão direto do navegador#

Use este endpoint quando o formulário de cartão roda no site do parceiro e você quer trocar os dados do cartão por um token sem passar o cartão pelo seu servidor. A cobrança continua sendo feita pelo seu backend, com a sua API key, usando o token recebido.

Endpoint#

POST https://<host-da-api-syncpay>/api/public/v1/card-tokens
Não usa Authorization. A identificação do seu negócio vem só do header X-Public-Key.

Antes de usar#

1.
No painel da SyncPay, abra API → Chave pública.
2.
Copie a sua chave pública (começa com pk_live_). Ela pode ser exposta no front-end, mas só funciona nos domínios cadastrados. Se precisar trocar, use "Regenerar": a anterior deixa de valer na hora.
3.
Cadastre cada domínio do seu site em Domínios permitidos, no formato https://loja.com (esquema + host, porta opcional). Sem caminho, sem barra no final. Em desenvolvimento, http://localhost e http://127.0.0.1 são aceitos. Limite de 10 domínios por conta.
4.
A conta precisa estar apta a usar cartão pela API (mesmas exigências da rota POST /api/partner/v1/card-tokens).

Headers#

HeaderObrigatórioValor
X-Public-Keysimsua chave pública pk_live_...
Content-Typesimapplication/json
Originsimenviado pelo navegador; precisa ser um dos domínios cadastrados

Corpo#

Igual ao da rota partner POST /api/partner/v1/card-tokens:
{
  "card": {
    "number": "4111111111111111",
    "holder_name": "MARIA S SILVA",
    "expiry_month": "12",
    "expiry_year": "2030",
    "cvv": "123"
  }
}
number: 13 a 19 dígitos, válido no algoritmo de Luhn.
holder_name: até 255 caracteres.
expiry_month: 01 a 12. expiry_year: 4 dígitos (2 dígitos, como 30, são completados para 2030). Cartão vencido é recusado.
cvv: 3 ou 4 dígitos.

Resposta de sucesso (201)#

{
  "data": {
    "token": "card_token.<token-opaco>",
    "brand": "visa",
    "last4": "1111",
    "expires_at": "2026-10-15T18:30:00.000000Z"
  }
}
Use o data.token na criação da cobrança de cartão pelo seu backend, como já faz com os tokens da rota partner. O token expira em expires_at (data ISO 8601 em UTC).

Erros#

StatusQuandoCorpo
401X-Public-Key ausente ou desconhecida{"message": "Chave pública inválida."}
403Qualquer outra recusa: origem fora da lista, sem Origin, nenhum domínio cadastrado, conta sem permissão para cartão{"message": "Chave pública ou origem não autorizada."}
422Dados do cartão inválidos{"message": "...", "errors": {"card.number": ["O número do cartão é inválido."]}}
429Limite de requisições excedido{"message": "Muitas requisiçoes foram detectadas. Tente novamente em 10 minutos.", "error": "rate_limit_exceeded"}, com header Retry-After quando disponível
O 403 é propositalmente igual para todas as causas: ele não diz qual trava falhou.

Limites de uso#

20 requisições por minuto para a mesma chave a partir do mesmo IP.
60 requisições por minuto por IP, somando todas as chaves.
Ao receber 429, espere o tempo do header Retry-After antes de tentar de novo.

CORS#

O navegador faz uma requisição de pré-voo (OPTIONS) antes do POST; ela é respondida automaticamente com 204. A resposta do POST só pode ser lida pelo seu site se o Origin estiver na lista de domínios permitidos. Se o domínio não estiver cadastrado, o navegador bloqueia a leitura da resposta e o POST volta 403. Não há cookies nem credenciais nessa chamada: não use credentials: 'include'.

Exemplo mínimo (fetch)#

Modificado em 2026-10-16 02:18:33
Página anterior
Consulta dados do Parceiro
Próxima página
Selar um cartão
Built with