Pagamentos e clientes
Tokenização
Tokenize cartões com segurança direto do seu frontend usando recaudo.js v2. A biblioteca carrega automaticamente o SDK do processador de pagamentos (Conekta, Stripe) configurado na sua conta e tokeniza o cartão de forma transparente.
Checkout com sua marca: Isso permite criar sua própria página de checkout sem redirecionar para páginas externas. Os dados do cartão nunca passam pelo seu servidor.
Integração em 4 passos
1
Incluir a biblioteca JavaScript
HTML
<script src="https://recaudo.app/js/recaudo.min.js"></script>
2
Inicializar a biblioteca
Inicialize o recaudo.js com sua Publishable Key. O método init() carrega o SDK do processador configurado.
JavaScript
// Crear instancia con tu Publishable Key
const recaudo = new Recaudo('pk_live_tu_publishable_key');
// Inicializar (carga el SDK del procesador automáticamente)
await recaudo.init();
// Verificar que está listo
console.log('Gateway:', recaudo.getGateway()); // 'conekta' o 'stripe'
3
Tokenizar o cartão
Os dados do cartão são tokenizados diretamente com o processador de pagamentos. Nunca passam pelo seu servidor.
JavaScript
async function handlePayment() {
try {
const token = await recaudo.createToken({
number: '4242424242424242',
exp_month: 12,
exp_year: 2027,
cvv: '123',
name: 'Juan Pérez',
email: 'juan@example.com',
// Campos opcionales (requeridos para AMEX)
address: 'Av. Reforma 123',
city: 'CDMX',
state: 'CDMX',
postal_code: '06600',
country: 'MX'
});
// token contiene:
// - id: Token del procesador (tok_xxx para Conekta, pm_xxx para Stripe)
// - gateway: 'conekta' o 'stripe'
// - card: { brand, last4, exp_month, exp_year }
// Enviar al backend para procesar
await fetch('/tu-backend/procesar-pago', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
token: token.id,
card: token.card, // Incluir info de tarjeta para mejor tracking
amount: 100.00
})
});
} catch (error) {
// error.type: 'validation_error', 'gateway_error', 'sdk_error'
console.error('Error:', error.message);
}
}
4
Processar a cobrança no seu backend
Use o token para criar uma cobrança ou uma assinatura. Inclua o objeto card para melhor rastreamento.
cURL - Cobrança direta
curl -X POST https://recaudo.app/api/v1/charges \
-H "Authorization: Bearer sk_live_tu_secret_key" \
-H "Content-Type: application/json" \
-d '{
"amount": 100.00,
"currency": "MXN",
"token": "tok_abc123...",
"card": {
"brand": "visa",
"last4": "4242",
"exp_month": 12,
"exp_year": 2027
},
"description": "Compra en tienda",
"receipt_email": "cliente@example.com"
}'
cURL - Criar assinatura
curl -X POST https://recaudo.app/api/v1/subscriptions \
-H "Authorization: Bearer sk_live_tu_secret_key" \
-H "Content-Type: application/json" \
-d '{
"plan": "5f1c7b3e-2a94-4d18-b6c0-9e3f8a1d7c25",
"customer": "8e250c25-9d84-4892-98ec-d71fc1fcd3c7",
"token": "tok_abc123...",
"card": {
"brand": "visa",
"last4": "4242",
"exp_month": 12,
"exp_year": 2027
}
}'
Objeto Token (resposta do createToken)
Resposta do createToken()
{
"id": "tok_2sR5Vx1J5K...", // Token del procesador (tok_xxx Conekta, pm_xxx Stripe)
"gateway": "conekta", // Procesador utilizado
"card": {
"brand": "visa",
"last4": "4242",
"exp_month": 12,
"exp_year": 2027
},
"created_at": "2024-01-15T10:30:00.000Z"
}
Endpoints da API
| Método | Endpoint | Descrição |
|---|---|---|
| GET | /v1/tokens/config |
Obter a configuração do processador (usado pelo recaudo.js para carregar o SDK correto) |
| GET | /v1/tokens/public-key |
Obter chave pública para criptografia (legado v1) |
| POST | /v1/tokens |
Criar token a partir de dados criptografados (legado v1) |
| GET | /v1/tokens/:token |
Obter informações de um token |
| DELETE | /v1/tokens/:token |
Excluir um token |
Métodos do recaudo.js
| Método | Descrição |
|---|---|
new Recaudo(publishableKey) |
Construtor. Cria uma instância com sua Publishable Key. |
init() |
Carrega o SDK do processador configurado. Deve ser chamado antes de createToken(). |
createToken(cardData) |
Tokeniza os dados do cartão com o processador. |
getGateway() |
Retorna o nome do processador ('conekta', 'stripe'). |
isInitialized() |
Retorna true se init() já foi chamado. |
detectCardBrand(number) |
Detecta a bandeira do cartão (visa, mastercard, amex etc.). |
Segurança: Os tokens são gerados diretamente pelo processador de pagamentos (Conekta/Stripe). Os dados do cartão nunca passam pelos servidores do Recaudo nem pelo seu, facilitando a conformidade com o PCI DSS.
Tratamento de erros
Os erros do recaudo.js incluem um tipo para facilitar o tratamento:
Exemplo de tratamento de erros
try {
await recaudo.init();
const token = await recaudo.createToken(cardData);
} catch (error) {
switch (error.type) {
case 'validation_error':
// Datos de tarjeta inválidos
showError(error.message);
break;
case 'gateway_error':
// Error del procesador (tarjeta rechazada, etc)
showError(error.message);
break;
case 'sdk_error':
// Error cargando el SDK del procesador
showError('Error de conexión. Intenta de nuevo.');
break;
case 'configuration_error':
// Procesador no configurado
showError('Error de configuración.');
break;
default:
showError('Error inesperado.');
}
}
Esta página ajudou?
Obrigado por avisar.