Crypto Payment Gateway API

Accept crypto payments
across all your projects

One API to handle crypto deposits for all your apps. Switch payment providers without touching your integration. Built with Django REST Framework.

API de Pagos Crypto

Acepta pagos crypto en todos
tus proyectos

Una sola API para gestionar depósitos crypto en todas tus apps. Cambia de proveedor sin tocar tu integración. Construida con Django REST Framework.

# Create a crypto deposit / Crear un depósito crypto
POST /api/v1/deposits/
Authorization: Api-Key cp_live_xxxxxxxxxxxx

{
  "external_user_id": "user_42",
  "network": "TRC20",
  "currency": "USDT"
}

# Response
{
  "id": "dep_a1b2c3...",
  "address": "TXyz...",
  "qr_code": "data:image/png;base64,...",
  "status": "pending",
  "expires_at": "2026-07-10T19:00:00Z"
}

Everything you need to accept crypto

From generating wallet addresses to notifying your app when a payment is confirmed.

Todo lo que necesitas para aceptar crypto

Desde generar direcciones de wallet hasta notificar tu app cuando se confirma un pago.

🔌

Provider-agnostic

OxaPay today, any provider tomorrow. Swap backends from the Admin panel — your API contract never changes.

Sin dependencia de proveedor

OxaPay hoy, cualquier proveedor mañana. Cambia el backend desde Admin — tu contrato de API nunca cambia.

🏪

Multi-store

Manage multiple projects from a single instance. Each store has its own API key, webhook and provider config.

Multi-tienda

Gestiona múltiples proyectos desde una sola instancia. Cada tienda tiene su propia API key, webhook y configuración de proveedor.

🔔

Reliable webhooks

Cryptopaid notifies your app when a deposit is confirmed with HMAC-signed payloads and automatic retries.

Webhooks confiables

Cryptopaid notifica a tu app cuando un depósito se confirma, con payloads firmados por HMAC y reintentos automáticos.

⚙️

Admin-configured

Auto-payout schedules, wallet revocation, expiration times — all managed from Django Admin with zero code changes.

Configurable desde Admin

Retiros automáticos, revocación de wallets, tiempos de expiración — todo desde el Admin de Django sin tocar código.

♻️

Smart address reuse

Reuses open deposit addresses for the same user and network, reducing API calls and avoiding wallet limits.

Reutilización inteligente

Reutiliza direcciones de depósito abiertas para el mismo usuario y red, reduciendo llamadas API y evitando límites de wallet.

🚀

Railway-ready

Ships with a Procfile for web + worker services, SQLite in dev and PostgreSQL in production via DATABASE_URL.

Listo para Railway

Incluye Procfile para servicios web + worker, SQLite en desarrollo y PostgreSQL en producción vía DATABASE_URL.

How it works

Cómo funciona

1

Register your store

Create a Store in Admin. An API key is generated once — copy it to your project's env vars.

Registra tu tienda

Crea una Store en Admin. Se genera una API key una sola vez — cópiala a las variables de entorno de tu proyecto.

2

Configure a provider

Create a Provider Account (OxaPay credentials) and link your Store. Deposit settings are on the Store itself.

Configura un proveedor

Crea una Provider Account (credenciales OxaPay) y vincula tu Store. Los settings de depósito están en la Store.

3

Create deposits

Call POST /api/v1/deposits/ with user ID and network. Receive a crypto address and QR code.

Crea depósitos

Llama a POST /api/v1/deposits/ con el ID de usuario y la red. Recibe una dirección crypto y código QR.

4

Receive confirmation

When the user pays, Cryptopaid fires a signed webhook to your webhook_url with the USD amount.

Recibe confirmación

Cuando el usuario paga, Cryptopaid envía un webhook firmado a tu webhook_url con el monto en USD.

Public endpoints

All endpoints require Authorization: Api-Key <your_key>

Endpoints públicos

Todos requieren Authorization: Api-Key <tu_clave>

MethodMétodo Path DescriptionDescripción
POST /api/v1/deposits/ Create a new deposit address Crear nueva dirección de depósito
GET /api/v1/deposits/ List deposits (filter by external_user_id) Listar depósitos (filtrar por external_user_id)
GET /api/v1/deposits/{id}/ Get deposit status Obtener estado del depósito
POST /api/v1/deposits/{id}/verify/ Poll payment status from provider Consultar estado del pago al proveedor
POST /api/v1/withdrawals/affiliate/ Pay affiliate withdrawal Pagar retiro de afiliado