api

API de transacciones

La API de Transacciones cubre el ciclo de vida completo del pago: creación de sesiones de pago, consulta del estado de las transacciones y verificación de las confirmaciones en la blockchain.

Actualizado: 9/3/2026

La API de transacciones cubre el ciclo de vida completo del pago: creación de sesiones de pago, consulta del estado de las transacciones y verificación de las confirmaciones de la blockchain.

Resumen del flujo de pago

┌─────────────┐    ┌──────────────┐    ┌──────────────┐    ┌───────────────┐
│ Your Server │───>│ Create       │───>│ Customer     │───>│ Blockchain    │
│             │    │ Checkout     │    │ Pays on      │    │ Confirms      │
│ POST api.php│    │ Session      │    │ Payment Page │    │ Transaction   │
└─────────────┘    └──────────────┘    └──────────────┘    └───────────────┘
                         │                                        │
                         │ payment_url                             │
                         ▼                                        ▼
                   ┌──────────────┐                         ┌───────────────┐
                   │ Redirect     │                         │ Webhook POST  │
                   │ Customer     │                         │ to Your Server│
                   │ to pay.php   │                         │               │
                   └──────────────┘                         └───────────────┘
  1. Tu servidorllama acreate-checkout-sessioncon el importe y la divisa del pago.
  2. Recibes unapayment_urly rediriges al cliente a ella.
  3. El cliente selecciona una criptomoneda, escanea el código QR y envía el pago.
  4. QuantaPay monitoriza la blockchain y espera las confirmaciones.
  5. Una vez confirmado, QuantaPay envía unwebhooka tu servidor y/o redirige al cliente.

create-checkout-session

Crea una nueva sesión de pago. Devuelve una URL de pago a la que redirigir a tu cliente.

Solicitud

curl -X POST https://cloud.quantapay.app/api.php \
  -d "function=create-checkout-session" \
  -d "api-key=YOUR_API_KEY" \
  -d "price=49.99" \
  -d "currency=USD"

Parámetros

ParámetroTipoObligatorioDescripción
pricenumberImporte del pago en la divisa especificada.
currencystringCódigo de divisa ISO 4217 (p. ej.,USD, EUR, GBP).
order_idstringNoTu ID de pedido interno como referencia.
redirectstringNoURL a la que redirigir al cliente tras el pago correcto.
cancel_urlstringNoURL a la que redirigir al cliente si cancela.
notestringNoNota interna adjunta a la transacción.
itemsCadena JSONNoArray de partidas (ver más abajo).
customerCadena JSONNoObjeto de información del cliente.
signaturestringNoFirma HMAC-SHA256 para protección contra manipulaciones.
timestampintegerNoTimestamp de Unix (obligatorio si se proporciona la firma).
external_referencestringNoReferencia cifrada del plugin de WordPress.
pluginstringNoIdentificador del plugin de origen (p. ej.,woo, edd).

Formato de los Items

[
  {
    "name": "Product Name",
    "qty": 2,
    "price": 24.99,
    "image": "https://example.com/product.jpg"
  }
]
  • Máximo 50 items por sesión.
  • name: Máximo 200 caracteres.
  • image: Debe ser una URL HTTP o HTTPS, máximo 500 caracteres.

Respuesta

{
  "success": true,
  "response": {
    "session_id": "cs_a1b2c3d4e5f6a1b2c3d4",
    "payment_url": "https://cloud.quantapay.app/pay.php?session=cs_a1b2c3d4e5f6a1b2c3d4",
    "expires_at": "2026-03-08T11:00:00+00:00"
  }
}
  • session_id: Identificador de sesión único (formato:cs_+ 24 caracteres hexadecimales).
  • payment_url: URL para redirigir al cliente para completar el pago.
  • expires_at: Timestamp ISO 8601. Las sesiones expiran después de60 minutos.

Respuestas de Error

MessageCause
Faltan campos obligatorios: price, currencypricees 0/falta ocurrencyestá vacío.
Firma no válidaFalló la verificación de la firma HMAC.
Solicitud caducadaLa marca de tiempo excede en más de 5 minutos la hora del servidor.
No se pudo crear la sesión de pagoError de la base de datos.

get-checkout-session

Consulta el estado actual de una sesión de pago.

Solicitud

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

Parámetros

ParámetroTipoObligatorioDescripción
session_idstringEl ID de la sesión de pago (comienza concs_).

Respuesta

{
  "success": true,
  "response": {
    "session_id": "cs_a1b2c3d4e5f6a1b2c3d4",
    "status": "paid",
    "price": 49.99,
    "currency": "usd",
    "order_id": "ORD-12345",
    "created_at": "2026-03-08T10:00:00+00:00",
    "expires_at": "2026-03-08T11:00:00+00:00",
    "paid_at": "2026-03-08T10:15:23+00:00"
  }
}

Estados de la sesión

EstadoDescripción
activeLa sesión está abierta y esperando el pago.
paidEl pago se ha recibido y confirmado en la blockchain.
expiredLa sesión caducó sin recibir el pago (después de 60 minutos).
cancelledLa sesión se canceló antes de recibir el pago.

get-transactions

Consulta una lista paginada de transacciones. Útil para la conciliación y la generación de informes.

Solicitud

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

Parámetros

Todos los parámetros son opcionales:

ParámetroTipoDescripción
paginationintegerNúmero de página (indexado desde 0). Cada página devuelve hasta 100 transacciones.
searchstringBúsqueda por ID de transacción, hash, importe o descripción.
statusstringFiltrar por estado:C(completada),P(pendiente),X(pago insuficiente),E(caducada).
cryptocurrencystringFiltrar por código de criptomoneda (p. ej.,btc, eth).
date_rangearrayFiltro de rango de fechas como un array de dos elementos:date_range[0]=2026-01-01&date_range[1]=2026-03-01.
checkout_idstringFiltrar por ID de botón de pago/checkout.

Respuesta

Devuelve un array de objetos de transacción:

{
  "success": true,
  "response": [
    {
      "id": "123",
      "title": "Payment #ORD-12345",
      "description": "",
      "from": "0xCustomerAddress...",
      "to": "0xYourAddress...",
      "hash": "0xTransactionHash...",
      "amount": "0.025",
      "amount_fiat": "49.99",
      "cryptocurrency": "eth",
      "currency": "usd",
      "external_reference": "",
      "creation_time": "2026-03-08 10:00:00",
      "status": "C",
      "webhook": "1",
      "vat": ""
    }
  ]
}

Estados de la transacción

CódigoEstadoDescripción
CCompletadaPago confirmado en la blockchain.
PPendienteEsperando el pago o la confirmación en la blockchain.
XPago insuficientePago recibido, pero el importe fue inferior al requerido.
EExpiradaEl plazo de pago expiró sin que se realizara un pago suficiente.
RReembolsadaEl pago ha sido reembolsado.

get-transaction

Obtener detalles de una sola transacción por ID.

Solicitud

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

Parámetros

ParámetroTipoObligatorioDescripción
transaction_idintegerEl ID de la transacción.

Respuesta

Devuelve un único objeto de transacción (con el mismo formato queget-transactions).


check-transaction

Activar manualmente una comprobación de confirmación de blockchain para una transacción específica.

Solicitud

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

Parámetros

ParámetroTipoObligatorioDescripción
transactionCadena JSONEl objeto de transacción que se va a comprobar (tal como lo devuelveget-transaction).

Respuesta

Devuelve el objeto de transacción actualizado con el estado de confirmación actual. Si se alcanza el número requerido de confirmaciones, el estado de la transacción cambia aC(completada).

Nota: Esta función no suele ser necesaria en el funcionamiento normal. QuantaPay comprueba automáticamente las confirmaciones a través de su sistema cron. Utilícela solo si necesita forzar una comprobación inmediata.