Dom Docs
Dom Pagamentos
Guias

Tokenizando Cartões

Salve cartões de forma segura usando o SDK Dom — sem trafegar dados sensíveis no seu servidor.

Atualizado em

Recente

A tokenização transforma os dados do cartão em um token seguro gerado diretamente no browser do cliente. Seu servidor nunca recebe o número do cartão — apenas o token, que pode ser reutilizado em cobranças futuras.

[!NOTE] A tokenização usa uma chave pública diferente da sua chave de API. Obtenha-a no painel em Segurança → Token para checkout.

Quando usar tokenização

  • Cobranças recorrentes (assinaturas)
  • Checkout com opção de "salvar cartão"
  • Reduzir escopo PCI — dados sensíveis nunca passam pelo seu servidor
1

Obtenha a chave pública

No painel Dom, acesse **Segurança → Token para checkout** e copie a chave pública do ambiente desejado (sandbox ou produção).

2

Importe o SDK Dom

Inclua o script no HTML do seu checkout. Use a URL de sandbox para testes.

3

Chame `getTokenCard()` com os dados do cartão

O SDK envia os dados diretamente para os servidores Dom e retorna um token seguro.

4

Envie o token para o seu servidor

Use o token no campo `card_token` ao criar uma transação — sem precisar enviar número, CVV ou data de expiração.

Opção 1 — Via JavaScript (getTokenCard)

<!-- No seu HTML -->
<!-- Sandbox -->
<script src="https://hml-static.dompagamentos.com.br/dom-checkout.js"></script>
<!-- Produção -->
<!-- <script src="https://static.dompagamentos.com.br/dom-checkout.js"></script> -->

<script>
  async function tokenizar() {
    const { token } = await DomCheckout.getTokenCard({
      publicKey: 'SUA_CHAVE_PUBLICA',
      number: '4111111111111111',
      holder_name: 'João Silva',
      exp_month: '12',
      exp_year: '2028',
      cvv: '123',
      document: '11144477735',
    });

    // Envie apenas o token para o seu servidor
    await salvarTokenNoServidor(token);
  }
</script>

Opção 2 — Via atributos data-dompag

Adicione atributos aos inputs do seu formulário. O SDK detecta automaticamente os campos e executa a tokenização ao chamar initTokenCard().

<form id="checkout-form">
  <input data-dompag="number"             placeholder="Número do cartão" />
  <input data-dompag="full_name"          placeholder="Nome no cartão" />
  <input data-dompag="expiration"         placeholder="MM/AA" />
  <input data-dompag="verification_value" placeholder="CVV" />
  <input data-dompag="document"           placeholder="CPF do titular" />

  <!-- Campos preenchidos pelo SDK após tokenização -->
  <input data-dompag="token-card"  type="hidden" />
  <input data-dompag="brand-card"  type="hidden" />
  <input data-dompag="bin-card"    type="hidden" />

  <button type="button" onclick="tokenizar()">Pagar</button>
</form>

<script>
  function tokenizar() {
    DomCheckout.initTokenCard({
      publicKey: 'SUA_CHAVE_PUBLICA',
      formId: 'checkout-form',
    });
  }
</script>

Atributos disponíveis

AtributoDescrição
data-dompag="number"Número do cartão
data-dompag="verification_value"CVV
data-dompag="full_name"Nome do titular
data-dompag="expiration"Data de expiração (MM/AA)
data-dompag="document"CPF do titular
data-dompag="birthdate"Data de nascimento
data-dompag="installments"Número de parcelas
data-dompag="customer_id"ID do cliente (para vincular à Carteira)
data-dompag="token-card"Token retornado pelo SDK (preenchido automaticamente)
data-dompag="brand-card"Bandeira detectada (preenchida automaticamente)
data-dompag="bin-card"BIN do cartão (preenchido automaticamente)

Usando o token em uma transação

Após tokenizar, envie o card_token no lugar dos dados do cartão:

curl --request POST \
  --url "{apiUrl}/transactions" \
  --header "Authorization: Bearer {token}" \
  --header "Content-Type: application/json" \
  --data '{
    "amount": 15000,
    "payment_method": "credit_card",
    "card_token": "TOKEN_RETORNADO_PELO_SDK",
    "installments": 1,
    "customer": {
      "name": "João Silva",
      "email": "joao@exemplo.com",
      "document": "11144477735"
    }
  }'

Próximos passos

Esta página foi útil?