Tokenizando Cartões
Salve cartões de forma segura usando o SDK Dom — sem trafegar dados sensíveis no seu servidor.
Atualizado em
RecenteA 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
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).
Importe o SDK Dom
Inclua o script no HTML do seu checkout. Use a URL de sandbox para testes.
Chame `getTokenCard()` com os dados do cartão
O SDK envia os dados diretamente para os servidores Dom e retorna um token seguro.
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
| Atributo | Descriçã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
- Gerenciando Clientes — vincule tokens à Carteira de Clientes para reutilização
- Autenticação 3DS — adicione 3DS ao fluxo de tokenização
- Tokenização — referência completa do SDK