api

Descripción general de la API y autenticación

QuantaPay ofrece una API sencilla de tipo REST para crear pagos, consultar transacciones y gestionar tu cuenta de forma programática.

Actualizado: 9/3/2026

QuantaPay proporciona una API sencilla de tipo REST para crear pagos, consultar transacciones y gestionar tu cuenta mediante programación.

Endpoint

Todas las solicitudes de la API se envían a un único endpoint:

POST https://cloud.quantapay.app/api.php

Tipo de contenido

Las solicitudes utilizanapplication/x-www-form-urlencoded(codificación de formulario HTML estándar).

curl -X POST https://cloud.quantapay.app/api.php \
  -d "function=get-balances" \
  -d "api-key=YOUR_API_KEY"

Autenticación

Cada solicitud de la API debe incluir tuClave APIcomo parámetro POST.

ParámetroTipoRequeridoDescripción
api-keystringTu clave API. Se encuentra en Ajustes → Cuenta.
functionstringEl nombre de la función de la API que se va a llamar.

Cómo obtener tu clave API

  1. Inicia sesión encloud.quantapay.app
  2. Ve aAjustes → Cuenta
  3. Copia tu clave API

Seguridad: Mantén tu clave API en secreto. No la expongas en el código del lado del cliente ni en repositorios públicos.

Firma HMAC (Opcional)

Paracreate-checkout-session, puedes añadir la verificación de la firma HMAC-SHA256 para evitar la manipulación de la solicitud.

Cómo funciona

  1. Construye la cadena de datos de firma:{price}|{currency}|{order_id}|{timestamp}
  2. Genera HMAC-SHA256 utilizando tuClave secreta de webhookcomo secreto
  3. Incluyefirmaymarca de tiempoen tu solicitud

Ejemplo (PHP)

$webhook_secret = 'your-webhook-secret-key';
$price = '49.99';
$currency = 'usd';
$order_id = 'ORD-12345';
$timestamp = time();

$sign_data = $price . '|' . $currency . '|' . $order_id . '|' . $timestamp;
$signature = hash_hmac('sha256', $sign_data, $webhook_secret);

// Include in your API request:
// signature={$signature}&timestamp={$timestamp}

Ejemplo (Node.js)

const crypto = require('crypto');

const webhookSecret = 'your-webhook-secret-key';
const price = '49.99';
const currency = 'usd';
const orderId = 'ORD-12345';
const timestamp = Math.floor(Date.now() / 1000);

const signData = `${price}|${currency}|${orderId}|${timestamp}`;
const signature = crypto.createHmac('sha256', webhookSecret).update(signData).digest('hex');

Nota: La marca de tiempo debe estar dentro de los 5 minutos de la hora del servidor; de lo contrario, la solicitud se rechazará con el error "Request expired".

Formato de respuesta

Éxito

{
  "success": true,
  "response": { ... }
}

Error

{
  "success": false,
  "error_code": "error-code-slug",
  "message": "Human-readable error description"
}

Códigos de error

Código de errorDescripción
missing-function-nameEl parámetrofunctionno se incluyó en la solicitud.
function-not-foundEl nombre de la función especificada no existe.
api-key-not-foundEl parámetroapi-keyno se incluyó el parámetro.
invalid-api-keyLa clave API proporcionada es incorrecta.
missing-argumentFalta un parámetro obligatorio para la función especificada.

Límites de frecuencia

No existen límites de frecuencia estrictos, pero las solicitudes excesivas pueden ser limitadas. Para un uso típico (menos de 100 solicitudes/minuto), no se producirá ninguna limitación.