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.
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ámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
api-key | string | Sí | Tu clave API. Se encuentra en Ajustes → Cuenta. |
function | string | Sí | El nombre de la función de la API que se va a llamar. |
Cómo obtener tu clave API
- Inicia sesión encloud.quantapay.app
- Ve aAjustes → Cuenta
- 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
- Construye la cadena de datos de firma:
{price}|{currency}|{order_id}|{timestamp} - Genera HMAC-SHA256 utilizando tuClave secreta de webhookcomo secreto
- Incluye
firmaymarca 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}×tamp={$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 error | Descripción |
|---|---|
missing-function-name | El parámetrofunctionno se incluyó en la solicitud. |
function-not-found | El nombre de la función especificada no existe. |
api-key-not-found | El parámetroapi-keyno se incluyó el parámetro. |
invalid-api-key | La clave API proporcionada es incorrecta. |
missing-argument | Falta 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.