Integre a conversão de PIX em USDT diretamente na sua plataforma. Gere cobranças PIX, receba notificações automáticas via webhook quando o USDT for enviado e consulte o status de qualquer pagamento em tempo real.
Todas as requisições autenticadas devem incluir o cabeçalho
Authorization
com o esquema Bearer.
Authorization: Bearer SEU_TOKEN_AQUI
https://api.pixcrypto.online/api/payments
Cria uma cobrança PIX e retorna o código para o pagador. Após a confirmação do pagamento e envio do USDT, seu webhook será notificado.
USDT_BEP20 (BNB Chain · $0,20), USDT_POLYGON ($0,15), USDT_OPTIMISM ($0,50), USDT_ARBITRUM ($0,50), USDT_BASE ($0,30). Se omitido, padrão é USDT_BEP20.
| Campo | Tipo | Obrigat. | Descrição |
|---|---|---|---|
| string | Sim | E-mail do pagador | |
| cpf_pagador | string | Sim | CPF (11 dígitos) ou CNPJ (14 dígitos), com ou sem máscara |
| nome | string | Sim | Primeiro nome do pagador |
| sobrenome | string | Sim | Sobrenome do pagador |
| string | Sim | Telefone do pagador (somente dígitos ou com máscara) | |
| address | string | Sim | Endereço EVM da carteira (0x...) compatível com a rede escolhida |
| amountBRL | number | Sim | Valor em reais. Mínimo: R$ 1,00 · Máximo: R$ 500,00 |
| typeCrypto | string | Não | Rede de recebimento. Valores: USDT_BEP20 | USDT_POLYGON | USDT_OPTIMISM | USDT_ARBITRUM | USDT_BASE. Padrão: USDT_BEP20 |
| webhook | string (URL) | Não | URL do seu servidor que receberá o callback quando o USDT for enviado |
| splitAddress | string | Não | Endereço de uma segunda carteira que recebe parte do valor em cripto (split). Deve ser enviado junto com splitPercent |
| splitPercent | number | Não | Percentual do valor em cripto enviado para splitAddress. De 1 a 99. O restante vai para address |
splitAddress e splitPercent, o valor em USDT será dividido entre duas carteiras: splitPercent% para splitAddress e o restante para address. Ambos os campos devem ser enviados juntos, e splitPercent deve estar entre 1 e 99.
curl -X POST https://api.pixcrypto.online/api/payments/generate \ -H "Authorization: Bearer SEU_TOKEN_AQUI" \ -H "Content-Type: application/json" \ -d '{ "email": "cliente@email.com", "cpf_pagador": "12345678901", "nome": "João", "sobrenome": "Silva", "whatsapp": "51999999999", "address": "0xABCDEF1234567890ABCDEF1234567890ABCDEF12", "typeCrypto": "USDT_POLYGON", "amountBRL": 100, "webhook": "https://meusite.com/webhook/crypto", "splitAddress":"0x789012345678901234567890123456789ABCDE", "splitPercent":20 }'
const response = await fetch('https://api.pixcrypto.online/api/payments/generate', { method: 'POST', headers: { 'Authorization': 'Bearer SEU_TOKEN_AQUI', 'Content-Type': 'application/json', }, body: JSON.stringify({ email: 'cliente@email.com', cpf_pagador: '12345678901', nome: 'João', sobrenome: 'Silva', whatsapp: '51999999999', address: '0xABCDEF1234567890ABCDEF1234567890ABCDEF12', typeCrypto: 'USDT_POLYGON', amountBRL: 100, webhook: 'https://meusite.com/webhook/crypto', splitAddress:'0x789012345678901234567890123456789ABCDE', // opcional splitPercent:20, // opcional, 1-99 }), }); const data = await response.json(); // data.payment.pixCode → código PIX copia-e-cola // data.payment.id → ID para consultar status
{
"success": true,
"payment": {
"id": 42,
"pixCode": "00020126...",
"amountBRL": 100,
"feeAmount": 8.99,
"netAmountBRL": 91.01,
"amountUSDT": 16.234500,
"usdtRate": 5.61,
"networkFeeUSD": 0.15,
"network": "Polygon",
"expiresAt": "2026-06-03T14:30:00.000Z",
"splitAddress": null,
"splitPercent": null
}
}
Retorna o status e os detalhes de um pagamento pelo ID retornado em /generate.
| Parâmetro | Tipo | Descrição |
|---|---|---|
| :id | number (URL) | ID do pagamento retornado em /generate |
{
"success": true,
"payment": {
"id": 42,
"status": "paid", // pending | confirmed | paid
"typeCrypto": "USDT_BEP20",
"amountBRL": 100,
"feeAmount": 8.99,
"netAmountBRL": 91.01,
"amountUSDT": 16.234500,
"usdtRate": 5.61,
"txHash": "0xabc123...", // null se não pago ainda
"splitAddress": "0x789...", // null se não usou split
"splitPercent": 20,
"splitTxHash": "0xdef456...", // null se não pago ainda ou sem split
"createdAt": "2026-06-03T14:00:00.000Z",
"expiresAt": "2026-06-03T15:00:00.000Z",
"confirmedAt": "2026-06-03T14:01:15.000Z"
}
}
Quando o campo webhook é informado ao gerar o pagamento,
nossa API enviará um POST para a URL especificada assim que o USDT for enviado para a carteira.
paid), não apenas na confirmação do PIX. Timeout: 10 segundos. Falhas são registradas no log mas não bloqueiam o fluxo.
{
"event": "payment.paid",
"id": 42,
"status": "paid",
"amountBRL": 100,
"amountUSDT": 16.234500,
"address": "0xABCDEF...",
"txHash": "0xabc123def456...",
"splitAddress": "0x789...", // null se não usou split
"splitPercent": 20,
"splitTxHash": "0xdef456...", // null se não usou split
"confirmedAt": "2026-06-03T14:01:15.000Z",
"paidAt": "2026-06-03T14:01:45.000Z"
}
// Sua rota de webhook app.post('/webhook/crypto', (req, res) => { const { event, id, status, amountUSDT, txHash } = req.body; if (event === 'payment.paid') { // Libere o pedido, credite a conta, etc. console.log(`Pagamento #${id} concluído: ${amountUSDT} USDT | tx: ${txHash}`); } res.status(200).json({ ok: true }); // Sempre responda 200 });
Teste a geração de pagamento diretamente nesta página.