Sin KYC — sin documento de identidad, selfie ni documentación
Idioma: Español
Elegir 1 GB

Referencia de la API

Recargas con criptomonedas

Recarga el saldo con criptomonedas: obtén la dirección de depósito y el importe exacto, envía exactamente ese importe, notifica el pago como enviado (el ID de la transacción es opcional) y sigue la recarga hasta que se abone el saldo. El saldo sirve para pagar cualquiera de nuestros planes.

Última actualización: · 7 min de lectura

Endpoints de esta página

  • GET /v1/catalog/coins: Criptomonedas y redes aceptadas (con su dirección fija de depósito)
  • POST /v1/topups: Iniciar una recarga del saldo con criptomonedas (dirección fija, importe exacto)
  • POST /v1/topups/{topUpId}/txid: Notificar el pago como enviado (TXID opcional)
  • GET /v1/topups/{topUpId}: Obtener una recarga (consultar su estado actual)
  • GET /v1/topups: Listar recargas con criptomonedas

URL base https://africaproxies.com/api/v1. Autenticación, errores y límites: consulta la descripción general de la API.

Criptomonedas y redes aceptadas (con su dirección fija de depósito)

GET/v1/catalog/coins

Público: no se necesita ninguna clave API.

Respuesta 200 OK

{
  "data": [
    {
      "code": "BTC",
      "name": "Bitcoin",
      "networks": [
        {
          "id": "bitcoin",
          "name": "Bitcoin",
          "confirmationsRequired": 2,
          "estimatedMinutes": null,
          "memoRequired": false,
          "address": "DEPOSIT_ADDRESS"
        }
      ]
    }
  ]
}

Ejemplos de código

curl
curl -s "https://africaproxies.com/api/v1/catalog/coins"
Python
import os
import requests

API = "https://africaproxies.com/api/v1"

r = requests.get(f"{API}/catalog/coins", timeout=30)
r.raise_for_status()
print(r.json())
Node.js
// Node.js 18+ (built-in fetch), ES module
const API = 'https://africaproxies.com/api/v1';

const res = await fetch(`${API}/catalog/coins`);
if (!res.ok) throw new Error((await res.json()).error?.message ?? `HTTP ${res.status}`);
console.log(await res.json());

Iniciar una recarga del saldo con criptomonedas (dirección fija, importe exacto)

POST/v1/topups

  • amountUsd ≥ 25.00 USD y ≤ el máximo (10,000.00 de forma predeterminada): de lo contrario, 422 en amountUsd.
  • coin + network deben figurar en GET /v1/catalog/coins (de lo contrario, 409 coin_unavailable).
  • Devuelve el address fijo de la red y el amountCrypto exacto = amountUsd / rate, redondeado hacia arriba a la precisión de la moneda (BTC/LTC/ETH/SOL con 8 decimales, USDT/USDC con 6), más un pequeño ajuste único en los últimos dígitos para que dos recargas abiertas de la misma red no pidan el mismo importe. rate queda fijada hasta expiresAt (30 minutos); txidDeadline = expiresAt + 72 h.
  • purchase opcional (el mismo cuerpo que POST /v1/orders): se valida y calcula su precio ahora (422 con nombres de campos prefijados por purchase., 409 plan_unavailable…). amountUsd debe cubrir el total de purchase − saldo actual (422 too_small en amountUsd). Al abonarse la recarga, se realiza el pedido con el saldo en la misma transacción; purchase.status pasa a completed (con orderId) o failed (failureReason; los fondos permanecen en el saldo).

Autenticación: clave API en el encabezado Authorization: Bearer API_KEY.

Parámetros

NombreEnTipoRequeridoDescripción
Idempotency-KeyheaderstringNoClave única (por ejemplo, un UUID) para reintentar un POST con seguridad. Se conserva durante 24 h. — máx. 128 caracteres

Cuerpo de la solicitud

CampoTipoRequeridoDescripción
amountUsdstring (USD, 2 decimals)SíUSD que añadir: ≥ 25.00, ≤ 10,000.00 de forma predeterminada.
coinstringSí—
networkstringSí—
purchaseobjectNoPlan que comprar con el saldo al abonarse la recarga (el mismo cuerpo que POST /v1/orders).
Ejemplo: Saldo
{
  "amountUsd": "50.00",
  "coin": "USDT",
  "network": "tron"
}
Ejemplo: Finalizar compra
{
  "amountUsd": "25.00",
  "coin": "BTC",
  "network": "bitcoin",
  "purchase": {
    "planId": "res-10",
    "quantity": 1
  }
}

Respuesta 201 Created

{
  "id": "top_7d2kq9x1",
  "status": "verifying",
  "final": false,
  "amountUsd": "25.00",
  "coin": "USDT",
  "network": "tron",
  "address": "DEPOSIT_ADDRESS",
  "amountCrypto": "25.000137",
  "rate": "1.00",
  "paymentUri": "PAYMENT_URI",
  "expiresAt": "2026-10-05T14:33:11Z",
  "txidDeadline": "2026-10-08T14:33:11Z",
  "confirmationsRequired": 20,
  "confirmations": 7,
  "txid": "9d2e5c0b1f7a4e3d8c6b2a1f0e9d8c7b6a5f4e3d2c1b0a9f8e7d6c5b4a3f41c7",
  "txidSubmittedAt": "2026-10-05T14:09:42Z",
  "amountReceivedCrypto": "25.000137",
  "explorerUrl": "https://tronscan.org/#/transaction/9d2e5c0b1f7a4e3d8c6b2a1f0e9d8c7b6a5f4e3d2c1b0a9f8e7d6c5b4a3f41c7",
  "creditedUsd": null,
  "creditedAt": null,
  "rejection": null,
  "purchase": {
    "planId": "res-10",
    "planName": "Team",
    "quantity": 1,
    "options": {},
    "promoCode": null,
    "total": "5.94",
    "status": "pending",
    "orderId": null,
    "failureReason": null
  },
  "createdAt": "2026-10-05T14:03:11Z"
}

Ejemplos de código

curl
curl -s -X POST "https://africaproxies.com/api/v1/topups" \
  -H "Authorization: Bearer $API_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"amountUsd":"50.00","coin":"USDT","network":"tron"}'
Python
import os, uuid
import requests

API = "https://africaproxies.com/api/v1"
HEADERS = {"Authorization": f"Bearer {os.environ['API_KEY']}", "Idempotency-Key": str(uuid.uuid4())}

r = requests.post(f"{API}/topups", headers=HEADERS, json={"amountUsd": "50.00", "coin": "USDT", "network": "tron"}, timeout=30)
r.raise_for_status()
print(r.json())
Node.js
// Node.js 18+ (built-in fetch), ES module
import { randomUUID } from 'node:crypto';

const API = 'https://africaproxies.com/api/v1';

const res = await fetch(`${API}/topups`, {
  method: 'POST',
  headers: { Authorization: `Bearer ${process.env.API_KEY}`, 'Idempotency-Key': randomUUID(), 'Content-Type': 'application/json' },
  body: JSON.stringify({ amountUsd: '50.00', coin: 'USDT', network: 'tron' }),
});
if (!res.ok) throw new Error((await res.json()).error?.message ?? `HTTP ${res.status}`);
console.log(await res.json());

Notificar el pago como enviado (TXID opcional)

POST/v1/topups/{topUpId}/txid

Notifica el pago como enviado una vez que haya salido de tu monedero o plataforma de intercambio: esta es la versión API del botón «He enviado el pago». El ID de la transacción (TXID) es opcional: envía un cuerpo vacío ({}) o añade txid si lo tienes. El pago se vincula a esta recarga por su importe exacto (amountCrypto), en la red y dirección de la recarga; envía exactamente ese importe.

Se acepta mientras la recarga esté awaiting_payment, expired o rejected y antes de txidDeadline (expiresAt + 72 h): una notificación tardía nunca provoca la pérdida de un pago. Si se facilita un txid, se comprueba el formato de la red (422 en txid) y no puede estar vinculado a otra recarga (409 txid_already_used). Una recarga cerrada devuelve 409 topup_closed. La recarga pasa entonces a verifying mientras se comprueba el pago en la blockchain y termina como credited cuando la red confirma la transacción, o rejected (con rejection).

Autenticación: clave API en el encabezado Authorization: Bearer API_KEY.

Parámetros

NombreEnTipoRequeridoDescripción
topUpIdpathstringSí—

Cuerpo de la solicitud

CampoTipoRequeridoDescripción
txidstringNoOpcional. Hash de la transacción: 64 caracteres hexadecimales (bitcoin, litecoin, tron), 0x + 64 caracteres hexadecimales (ethereum), firma base58 (solana). Vacío o ausente: el pago se vincula por su importe exacto. — máx. 128 caracteres
Ejemplo: Pago enviado
{}
Ejemplo: Con el TXID (opcional)
{
  "txid": "4a5e1e4baab89f3a32518a88c31bc87f618f76673e2cc77ab2127b7afdeda33b"
}

Respuesta 200 OK

{
  "id": "top_7d2kq9x1",
  "status": "verifying",
  "final": false,
  "amountUsd": "25.00",
  "coin": "USDT",
  "network": "tron",
  "address": "DEPOSIT_ADDRESS",
  "amountCrypto": "25.000137",
  "rate": "1.00",
  "paymentUri": "PAYMENT_URI",
  "expiresAt": "2026-10-05T14:33:11Z",
  "txidDeadline": "2026-10-08T14:33:11Z",
  "confirmationsRequired": 20,
  "confirmations": 7,
  "txid": "9d2e5c0b1f7a4e3d8c6b2a1f0e9d8c7b6a5f4e3d2c1b0a9f8e7d6c5b4a3f41c7",
  "txidSubmittedAt": "2026-10-05T14:09:42Z",
  "amountReceivedCrypto": "25.000137",
  "explorerUrl": "https://tronscan.org/#/transaction/9d2e5c0b1f7a4e3d8c6b2a1f0e9d8c7b6a5f4e3d2c1b0a9f8e7d6c5b4a3f41c7",
  "creditedUsd": null,
  "creditedAt": null,
  "rejection": null,
  "purchase": {
    "planId": "res-10",
    "planName": "Team",
    "quantity": 1,
    "options": {},
    "promoCode": null,
    "total": "5.94",
    "status": "pending",
    "orderId": null,
    "failureReason": null
  },
  "createdAt": "2026-10-05T14:03:11Z"
}

Ejemplos de código

curl
curl -s -X POST "https://africaproxies.com/api/v1/topups/top_7d2kq9x1/txid" \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{}'
Python
import os
import requests

API = "https://africaproxies.com/api/v1"
HEADERS = {"Authorization": f"Bearer {os.environ['API_KEY']}"}

r = requests.post(f"{API}/topups/top_7d2kq9x1/txid", headers=HEADERS, json={}, timeout=30)
r.raise_for_status()
print(r.json())
Node.js
// Node.js 18+ (built-in fetch), ES module
const API = 'https://africaproxies.com/api/v1';

const res = await fetch(`${API}/topups/top_7d2kq9x1/txid`, {
  method: 'POST',
  headers: { Authorization: `Bearer ${process.env.API_KEY}`, 'Content-Type': 'application/json' },
  body: JSON.stringify({}),
});
if (!res.ok) throw new Error((await res.json()).error?.message ?? `HTTP ${res.status}`);
console.log(await res.json());

Obtener una recarga (consultar su estado actual)

GET/v1/topups/{topUpId}

Consulta esta ruta para seguir una recarga: cada 10 s mientras status = verifying, cada 30 s mientras espera el pago, y detente cuando final = true. Una recarga pasa a expired si no se notifica el pago como enviado antes de expiresAt; aún puede notificarse hasta txidDeadline.

Autenticación: clave API en el encabezado Authorization: Bearer API_KEY.

Parámetros

NombreEnTipoRequeridoDescripción
topUpIdpathstringSí—

Respuesta 200 OK

{
  "id": "top_7d2kq9x1",
  "status": "verifying",
  "final": false,
  "amountUsd": "25.00",
  "coin": "USDT",
  "network": "tron",
  "address": "DEPOSIT_ADDRESS",
  "amountCrypto": "25.000137",
  "rate": "1.00",
  "paymentUri": "PAYMENT_URI",
  "expiresAt": "2026-10-05T14:33:11Z",
  "txidDeadline": "2026-10-08T14:33:11Z",
  "confirmationsRequired": 20,
  "confirmations": 7,
  "txid": "9d2e5c0b1f7a4e3d8c6b2a1f0e9d8c7b6a5f4e3d2c1b0a9f8e7d6c5b4a3f41c7",
  "txidSubmittedAt": "2026-10-05T14:09:42Z",
  "amountReceivedCrypto": "25.000137",
  "explorerUrl": "https://tronscan.org/#/transaction/9d2e5c0b1f7a4e3d8c6b2a1f0e9d8c7b6a5f4e3d2c1b0a9f8e7d6c5b4a3f41c7",
  "creditedUsd": null,
  "creditedAt": null,
  "rejection": null,
  "purchase": {
    "planId": "res-10",
    "planName": "Team",
    "quantity": 1,
    "options": {},
    "promoCode": null,
    "total": "5.94",
    "status": "pending",
    "orderId": null,
    "failureReason": null
  },
  "createdAt": "2026-10-05T14:03:11Z"
}

Ejemplos de código

curl
curl -s "https://africaproxies.com/api/v1/topups/top_7d2kq9x1" \
  -H "Authorization: Bearer $API_KEY"
Python
import os
import requests

API = "https://africaproxies.com/api/v1"
HEADERS = {"Authorization": f"Bearer {os.environ['API_KEY']}"}

r = requests.get(f"{API}/topups/top_7d2kq9x1", headers=HEADERS, timeout=30)
r.raise_for_status()
print(r.json())
Node.js
// Node.js 18+ (built-in fetch), ES module
const API = 'https://africaproxies.com/api/v1';

const res = await fetch(`${API}/topups/top_7d2kq9x1`, {
  headers: { Authorization: `Bearer ${process.env.API_KEY}` },
});
if (!res.ok) throw new Error((await res.json()).error?.message ?? `HTTP ${res.status}`);
console.log(await res.json());

Listar recargas con criptomonedas

GET/v1/topups

Autenticación: clave API en el encabezado Authorization: Bearer API_KEY.

Parámetros

NombreEnTipoRequeridoDescripción
pagequeryintegerNo≥ 1, valor predeterminado 1
perPagequeryintegerNo1–100, valor predeterminado 20
statusqueryawaiting_payment · verifying · credited · rejected · expiredNofinal = abonado, o caducado / rechazado después de txidDeadline.

Respuesta 200 OK

{
  "data": [
    {
      "id": "top_7d2kq9x1",
      "status": "verifying",
      "final": false,
      "amountUsd": "25.00",
      "coin": "USDT",
      "network": "tron",
      "address": "DEPOSIT_ADDRESS",
      "amountCrypto": "25.000137",
      "rate": "1.00",
      "paymentUri": "PAYMENT_URI",
      "expiresAt": "2026-10-05T14:33:11Z",
      "txidDeadline": "2026-10-08T14:33:11Z",
      "confirmationsRequired": 20,
      "confirmations": 7,
      "txid": "9d2e5c0b1f7a4e3d8c6b2a1f0e9d8c7b6a5f4e3d2c1b0a9f8e7d6c5b4a3f41c7",
      "txidSubmittedAt": "2026-10-05T14:09:42Z",
      "amountReceivedCrypto": "25.000137",
      "explorerUrl": "https://tronscan.org/#/transaction/9d2e5c0b1f7a4e3d8c6b2a1f0e9d8c7b6a5f4e3d2c1b0a9f8e7d6c5b4a3f41c7",
      "creditedUsd": null,
      "creditedAt": null,
      "rejection": null,
      "purchase": {
        "planId": "res-10",
        "planName": "Team",
        "quantity": 1,
        "options": {},
        "promoCode": null,
        "total": "5.94",
        "status": "pending",
        "orderId": null,
        "failureReason": null
      },
      "createdAt": "2026-10-05T14:03:11Z"
    }
  ],
  "pagination": {
    "page": 1,
    "perPage": 20,
    "total": 1,
    "totalPages": 1
  }
}

Ejemplos de código

curl
curl -s "https://africaproxies.com/api/v1/topups" \
  -H "Authorization: Bearer $API_KEY"
Python
import os
import requests

API = "https://africaproxies.com/api/v1"
HEADERS = {"Authorization": f"Bearer {os.environ['API_KEY']}"}

r = requests.get(f"{API}/topups", headers=HEADERS, timeout=30)
r.raise_for_status()
print(r.json())
Node.js
// Node.js 18+ (built-in fetch), ES module
const API = 'https://africaproxies.com/api/v1';

const res = await fetch(`${API}/topups`, {
  headers: { Authorization: `Bearer ${process.env.API_KEY}` },
});
if (!res.ok) throw new Error((await res.json()).error?.message ?? `HTTP ${res.status}`);
console.log(await res.json());

1 GB 1,23 US$ · Financiación de la cuenta desde 25 US$

Elegir 1 GB