QvaPay API
Coins

Listar Coins

Obtener todas las categorías de monedas con sus coins asociados, incluyendo comisiones, límites y datos de retiro.

GET /coins

Retorna todas las categorías de monedas (Criptomonedas, Bank, Cash, E-Wallet, Gift Card, Móvil) junto con los coins que pertenecen a cada una. Cada coin incluye su configuración completa: comisiones de entrada y salida, límites, campos requeridos para retiros y estado de disponibilidad.

Autenticación

No requiere autenticación (endpoint público).

Request

curl -X GET https://api.qvapay.com/coins

Response

[
  {
    "id": 1,
    "name": "Criptomonedas",
    "logo": "crypto",
    "Coins": [
      {
        "id": "6",
        "coins_categories_id": 1,
        "network": "TRON",
        "name": "USDT (TRC20)",
        "logo": "usdt",
        "tick": "USDT",
        "fee_in": "0.2",
        "fee_in_gold": "0",
        "fee_out": "1",
        "fee_out_gold": "0.8",
        "fee_out_fixed": [100, 1],
        "min_in": "1",
        "min_out": "2",
        "max_in": 1000000,
        "max_out": 5000,
        "working_data": [
          {
            "name": "Wallet",
            "type": "text"
          }
        ],
        "enabled_in": true,
        "enabled_out": true,
        "enabled_p2p": true,
        "auto_withdraw": true,
        "p2p_rate_discount": "0",
        "trade": false,
        "price": "1",
        "decimals": 2,
        "stable": true,
        "created_at": null,
        "updated_at": "2025-06-12T03:40:01.000Z",
        "description": "### ¿Qué es USDT (TRC20)? ...",
        "seo_title": "USDT TRC20 ✓ Compra y envía en QvaPay",
        "seo_description": "USDT TRC20 en QvaPay: stablecoin rápido y seguro..."
      }
    ]
  }
]

Campos de la categoría

CampoTipoDescripción
idnumberID de la categoría
namestringNombre de la categoría (Criptomonedas, Bank, Cash, E-Wallet, Gift Card, Móvil)
logostringIdentificador del logo de la categoría
CoinsarrayCoins pertenecientes a la categoría

Campos del coin

CampoTipoDescripción
idstringID del coin (BigInt serializado como string)
coins_categories_idnumberID de la categoría a la que pertenece
networkstring | nullRed blockchain del activo (BTC, TRON, BSC, SOL, TON, etc.). null para métodos sin red o red implícita
namestringNombre para mostrar (ej: USDT (TRC20))
logostringIdentificador del logo
tickstringTicker único del coin (ej: USDT, BTCLN, BANK_EUR)
fee_instringComisión de depósito en porcentaje (%)
fee_in_goldstringComisión de depósito (%) para usuarios GOLD
fee_outstringComisión de retiro en porcentaje (%)
fee_out_goldstringComisión de retiro (%) para usuarios GOLD
fee_out_fixedarray | nullFee fijo de retiro para montos pequeños: [umbral, fee_fijo]. Ver Cómo funciona fee_out_fixed
min_instringMonto mínimo de depósito en USD
min_outstringMonto mínimo de retiro en USD
max_innumberMonto máximo de depósito en USD
max_outnumberMonto máximo de retiro en USD
working_dataarrayCampos que el usuario debe completar al solicitar un retiro. Ver Campos de working_data
enabled_inbooleanDepósitos habilitados
enabled_outbooleanRetiros habilitados
enabled_p2pbooleanDisponible en el mercado P2P
auto_withdrawbooleanLos retiros se procesan automáticamente (sin revisión manual)
p2p_rate_discountstringAjuste de tasa aplicado en el mercado P2P
tradebooleanDisponible en el módulo de trading
pricestringPrecio actual del activo en USD
decimalsnumberDecimales usados para representar montos del activo
stablebooleantrue si es una stablecoin o método con paridad 1:1 con USD
created_atstring | nullFecha de creación
updated_atstring | nullÚltima actualización (los precios se refrescan periódicamente)
descriptionstringDescripción del activo en formato Markdown
seo_titlestringTítulo SEO de la página pública del coin
seo_descriptionstringDescripción SEO de la página pública del coin

Cómo funciona fee_out_fixed

fee_out_fixed define un fee fijo para retiros de montos pequeños, en lugar del porcentaje fee_out. Es un arreglo de dos valores:

fee_out_fixed: [umbral, fee_fijo]
  • umbral (primer valor): límite en USD que separa los dos modos de comisión.
  • fee_fijo (segundo valor): comisión fija en USD que se cobra cuando el monto del retiro es menor o igual al umbral.

La regla de cálculo es:

Monto del retiroComisión aplicada
monto <= umbralFee fijo: fee_fijo USD (no se aplica porcentaje)
monto > umbralPorcentaje: monto × fee_out / 100 (o fee_out_gold para usuarios GOLD)

Cuando fee_out_fixed es null, siempre se aplica el porcentaje fee_out sin importar el monto.

Ejemplo

USDT (TRC20) tiene fee_out: "1" y fee_out_fixed: [100, 1]:

  • Retiro de $50 → como 50 <= 100, se cobra el fee fijo de $1. El usuario recibe $49.
  • Retiro de $100 → como 100 <= 100, se cobra el fee fijo de $1. El usuario recibe $99.
  • Retiro de $500 → como 500 > 100, se cobra el 1%: $5. El usuario recibe $495.

Este esquema evita que los retiros pequeños paguen comisiones porcentuales insignificantes que no cubren el costo de red, garantizando un fee mínimo rentable, mientras que los retiros grandes pagan el porcentaje normal.

Nota: para usuarios GOLD el porcentaje usado por encima del umbral es fee_out_gold, pero el fee fijo por debajo del umbral es el mismo para todos los usuarios.

Campos de working_data

working_data describe el formulario que el usuario debe completar al retirar en ese coin (ej: dirección de wallet, datos bancarios, número de celular). Cada elemento tiene:

CampoTipoDescripción
namestringNombre del campo (ej: Wallet, Nro de cuenta o tarjeta)
typestringTipo de campo: text o select
labelstring(Opcional) Etiqueta para mostrar en el formulario
placeholderstring(Opcional) Texto de ayuda del campo
requiredboolean(Opcional) Si el campo es obligatorio
optionsarray(Solo type: select) Opciones disponibles

Las opciones de un campo select pueden incluir metadatos adicionales:

CampoTipoDescripción
valuestringValor de la opción (ej: La Habana)
eta_hoursstringTiempo estimado de entrega en horas (ej: 1-72)
fee_pctnumberRecargo porcentual extra sobre el monto del retiro al elegir esta opción

Notas

  • La respuesta es un array JSON de categorías, cada una con sus coins en la propiedad Coins.
  • Los IDs de tipo BigInt se serializan como strings en la respuesta.
  • Los precios (price) de activos no estables se actualizan periódicamente mediante un cron; el campo updated_at refleja la última actualización.
  • Las comisiones fee_in, fee_in_gold, fee_out y fee_out_gold son siempre porcentajes, no montos fijos.