Introducción
La API ApiCrypto te permite aceptar pagos en criptomonedas de forma simple y segura. Nuestra API es pública y no requiere autenticación, facilitando la integración.
https://api.apicrypto.me/v1/
Autenticación
La API ApiCrypto es pública y no requiere autenticación. Puedes hacer solicitudes directamente a nuestros endpoints sin necesidad de claves API o tokens.
Importante: Aunque no se requiere autenticación, todas las solicitudes son monitoreadas y sujetas a límites de tasa por IP.
Endpoints Disponibles
Método | Endpoint | Descripción |
---|---|---|
POST | /transaction/create |
Crear nueva transacción de pago |
GET | /transaction/status/{id} |
Verificar estado de una transacción |
GET | /supported/currencies |
Listar monedas soportadas |
GET | /network/status |
Verificar estado de las redes |
Crear Transacción
Crea una nueva transacción de pago y devuelve la dirección donde el cliente debe enviar las criptomonedas.
/transaction/create
Parámetros
Parámetro | Tipo | Obligatorio | Descripción |
---|---|---|---|
wallet_address |
string | Sí | Dirección de la cartera que recibirá los fondos |
amount |
decimal | Sí | Cantidad a pagar (en cripto o fiat si convert=1) |
currency |
string | Sí | Moneda (ETH, BNB, MATIC, USDT, USDC) |
network |
string | Sí | Red blockchain (ethereum, bsc, polygon) |
webhook_url |
string | No | URL para recibir notificaciones |
convert |
integer | No | Habilitar conversión de fiat a cripto (1 para habilitar) |
fiat_currency |
string | No | Moneda fiat para conversión (USD, BRL, EUR) |
Ejemplo de Solicitud
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://misitio.com/webhook/payment"
}'
Respuesta de Éxito
{
"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 Estado
Verifica el estado de una transacción específica.
/transaction/status/{id}
Parámetros de Ruta
Parámetro | Tipo | Descripción |
---|---|---|
id |
string | ID de Transacción |
Ejemplo de Solicitud
curl https://api.apicrypto.me/v1/transaction/status/TRX1A2B3C4D5E6F7G8H
Respuesta de Éxito
{
"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
Recibe notificaciones en tiempo real cuando cambia el estado de una transacción.
Eventos del Webhook
transaction.pending
- Transacción creada y esperando pagotransaction.confirmed
- Pago recibido y confirmadotransaction.completed
- Transacción procesada y fondos transferidostransaction.failed
- Transacción falló o expiró
Ejemplo 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"
}
Errores
La API devuelve errores estandarizados en formato JSON.
Códigos de Error
Código | Descripción |
---|---|
400 |
Bad Request - Parámetros inválidos |
404 |
Not Found - Recurso no encontrado |
429 |
Too Many Requests - Límite de tasa excedido |
500 |
Internal Server Error - Error del servidor |
Ejemplo de Respuesta de Error
{
"success": false,
"error": {
"code": "INVALID_PARAMETERS",
"message": "El campo 'amount' debe ser mayor que cero",
"field": "amount"
}
}
Ejemplos de Integración
PHP
<?php
// Crear transacción
$data = [
'wallet_address' => '0x742d35Cc6634C0532925a3b844Bc9e7595f6E123',
'amount' => 0.1,
'currency' => 'ETH',
'network' => 'ethereum',
'webhook_url' => 'https://misitio.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']} a:";
echo $result['data']['payment_address'];
}
Límites de Tasa
Para garantizar la calidad del servicio, aplicamos límites de tasa por IP:
60 solicitudes
Por minuto
50,000 solicitudes
Por día
Si excedes los límites, recibirás un error 429 Too Many Requests
. Espera antes de hacer nuevas solicitudes.
¿Necesitas Ayuda?
Si tienes preguntas o necesitas soporte: