Introdução
A API ApiCrypto permite que você aceite pagamentos em criptomoedas de forma simples e segura. Nossa API é pública e não requer autenticação, facilitando a integração.
https://api.apicrypto.me/v1/
Autenticação
A API ApiCrypto é pública e não requer autenticação. Você pode fazer requisições diretamente para nossos endpoints sem necessidade de API keys ou tokens.
Importante: Embora não seja necessária autenticação, todas as requisições são monitoradas e sujeitas a rate limiting por IP.
Endpoints Disponíveis
Método | Endpoint | Descrição |
---|---|---|
POST | /transaction/create |
Criar nova transação de pagamento |
GET | /transaction/status/{id} |
Verificar status de uma transação |
GET | /supported/currencies |
Listar moedas suportadas |
GET | /network/status |
Verificar status das redes |
Criar Transação
Cria uma nova transação de pagamento e retorna o endereço para onde o cliente deve enviar as criptomoedas.
/transaction/create
Parâmetros
Parâmetro | Tipo | Obrigatório | Descrição |
---|---|---|---|
wallet_address |
string | Sim | Endereço da carteira que receberá os fundos |
amount |
decimal | Sim | Valor a ser pago (em cripto ou fiat se convert=1) |
currency |
string | Sim | Moeda (ETH, BNB, MATIC, USDT, USDC) |
network |
string | Sim | Rede blockchain (ethereum, bsc, polygon) |
webhook_url |
string | Não | URL para receber notificações |
convert |
integer | Não | Habilitar conversão de fiat para cripto (1 para habilitar) |
fiat_currency |
string | Não | Moeda fiat para conversão (USD, BRL, EUR) |
Exemplo de Requisição
curl -X POST https://api.apicrypto.me/v1/transaction/create \
-H "Content-Type: application/json" \
-d '{
"wallet_address": "0x742d35Cc6634C0532925a3b844Bc9e7595f6E123",
"amount": 0.1,
"currency": "ETH",
"network": "ethereum",
"webhook_url": "https://meusite.com/webhook/payment"
}'
Resposta de Sucesso
{
"success": true,
"data": {
"transaction_id": "TRX1A2B3C4D5E6F7G8H",
"payment_address": "0x9876543210abcdef1234567890abcdef12345678",
"amount": 0.1,
"currency": "ETH",
"network": "ethereum",
"expires_at": "2024-01-20 15:30:00",
"status": "pending",
"qr_code": "data:image/png;base64,..."
}
}
Verificar Status
Verifica o status de uma transação específica.
/transaction/status/{id}
Parâmetros de Rota
Parâmetro | Tipo | Descrição |
---|---|---|
id |
string | ID da Transação |
Exemplo de Requisição
curl https://api.apicrypto.me/v1/transaction/status/TRX1A2B3C4D5E6F7G8H
Resposta de Sucesso
{
"success": true,
"data": {
"transaction_id": "TRX1A2B3C4D5E6F7G8H",
"status": "completed",
"confirmations": 12,
"tx_hash": "0x123abc...",
"created_at": "2024-01-20 15:00:00",
"completed_at": "2024-01-20 15:15:00"
}
}
Webhooks
Receba notificações em tempo real quando o status de uma transação mudar.
Eventos do Webhook
transaction.pending
- Transação criada e aguardando pagamentotransaction.confirmed
- Pagamento recebido e confirmadotransaction.completed
- Transação processada e fundos transferidostransaction.failed
- Transação falhou ou expirou
Exemplo de Payload
{
"event": "transaction.completed",
"data": {
"transaction_id": "TRX1A2B3C4D5E6F7G8H",
"status": "completed",
"amount": 0.1,
"currency": "ETH",
"network": "ethereum",
"tx_hash": "0x123abc...",
"confirmations": 12
},
"timestamp": "2024-01-20T15:15:00Z"
}
Erros
A API retorna erros padronizados em formato JSON.
Códigos de Erro
Código | Descrição |
---|---|
400 |
Bad Request - Parâmetros inválidos |
404 |
Not Found - Recurso não encontrado |
429 |
Too Many Requests - Limite de taxa excedido |
500 |
Internal Server Error - Erro do servidor |
Exemplo de Resposta de Erro
{
"success": false,
"error": {
"code": "INVALID_PARAMETERS",
"message": "O campo 'amount' deve ser maior que zero",
"field": "amount"
}
}
Exemplos de Integração
PHP
<?php
// Criar transação
$data = [
'wallet_address' => '0x742d35Cc6634C0532925a3b844Bc9e7595f6E123',
'amount' => 0.1,
'currency' => 'ETH',
'network' => 'ethereum',
'webhook_url' => 'https://meusite.com/webhook'
];
$ch = curl_init('https://api.apicrypto.me/v1/transaction/create');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application/json']);
$response = curl_exec($ch);
$result = json_decode($response, true);
if ($result['success']) {
echo "Enviar {$result['data']['amount']} {$result['data']['currency']} para:";
echo $result['data']['payment_address'];
}
Rate Limits
Para garantir a qualidade do serviço, aplicamos limites de taxa por IP:
60 requisições
Por minuto
50,000 requisições
Por dia
Se você exceder os limites, receberá um erro 429 Too Many Requests
. Aguarde antes de fazer novas requisições.
Precisa de Ajuda?
Se você tem dúvidas ou precisa de suporte: