QvaPay API
Store

Mis Compras

Listar las compras del usuario y recuperar el código/PIN/URL del voucher o recarga una vez procesada la entrega.

Toda compra de la tienda (voucher/gift card, recarga de saldo, paquete de teléfono o eSIM) genera un registro de compra (buyedService) asociado a una transacción. Estos endpoints permiten listar las compras del usuario autenticado y recuperar los datos de entrega (código del voucher, PIN, URL de canje, número de confirmación — o el QR/código de activación en el caso de las eSIM) una vez que la entrega ha sido procesada.

Los datos del voucher no se exponen en los endpoints de transacción (GET /transaction/:uuid, GET /v2/transactions/*), que solo devuelven metadata genérica del servicio (status, service, amount). El receipt con el código real solo está disponible aquí, y siempre acotado al usuario dueño de la compra.


GET /store/my

Lista todas las compras del usuario autenticado. Útil para descubrir el id de una compra. No incluye el código del voucher.

Autenticación

Bearer Token (header Authorization: Bearer <token>) o credenciales de app (headers app-id y app-secret). Devuelve únicamente las compras del usuario autenticado (con app auth, las de la cuenta dueña de la app).

Request

curl -X GET "https://api.qvapay.com/store/my" \
  -H "Authorization: Bearer <token>"

Response

{
  "message": "My Purchased Products list",
  "data": [
    {
      "id": "123",
      "service_name": "Amazon $25",
      "service_logo": "https://example.com/brands/amazon.png",
      "status": "paid",
      "created_at": "2026-06-20T14:30:00.000Z",
      "updated_at": "2026-06-20T14:31:05.000Z"
    }
  ]
}

Campos de respuesta

CampoTipoDescripción
idstringID de la compra (buyedService_id). Úsalo para consultar el detalle
service_namestringNombre del producto comprado (marca real, p.ej. "Amazon $25")
service_logostring | nullLogo del producto/marca
statusstringEstado: pending, processing, paid, cancelled
created_atstringFecha de creación
updated_atstringFecha de actualización

Errores

CódigoDescripción
401Token de autenticación inválido o ausente

GET /store/my/:id

Retorna el detalle completo de una compra, incluyendo el objeto service_data.receipt con los datos de entrega (código del voucher, PIN, URL de canje, número de confirmación).

Autenticación

Bearer Token (header Authorization: Bearer <token>) o credenciales de app (headers app-id y app-secret). Solo retorna compras que pertenecen al usuario autenticado (con app auth, a la cuenta dueña de la app).

Request

curl -X GET "https://api.qvapay.com/store/my/123" \
  -H "Authorization: Bearer <token>"

Parámetros

ParámetroTipoRequeridoDescripción
idnumberID de la compra (buyedService_id) en la URL. Es el mismo valor que devuelve POST /store/voucher/purchase (y los demás endpoints de compra), no el UUID de la transacción

Response

{
  "message": "Purchase details",
  "data": {
    "id": "123",
    "status": "paid",
    "amount": 25,
    "notes": null,
    "created_at": "2026-06-20T14:30:00.000Z",
    "updated_at": "2026-06-20T14:31:05.000Z",
    "service": {
      "name": "Amazon $25",
      "logo": "https://example.com/brands/amazon.png"
    },
    "transaction": {
      "uuid": "7c9e6679-7425-40de-944b-e07fc1f90ae7"
    },
    "service_data": {
      "brand": "Amazon",
      "country": "US",
      "receipt": {
        "voucherId": "E3NB-H8UMDG-RBA9",
        "voucher": "E3NB-H8UMDG-RBA9",
        "confirmationNumber": "2543164768734144",
        "redemptionUrl": "",
        "epin": ""
      }
    }
  }
}

Campos de respuesta

CampoTipoDescripción
idstringID de la compra (buyedService_id)
statusstringEstado: pending, processing, paid, cancelled
amountnumberMonto de la compra (USD)
notesstring | nullNotas de estado
created_atstringFecha de creación
updated_atstringFecha de actualización
serviceobject | nullProducto: name (marca real), logo
transactionobject | nullTransacción asociada: uuid (para correlacionar con GET /transaction/:uuid)
service_dataobjectDatos de la compra: brand, country, receipt. En compras de eSIM incluye además plan y el objeto esim (y brand viene vacío)

Objeto receipt

Contiene los datos de activación que el cliente necesita. Los campos no aplicables al producto vienen como string vacío.

CampoTipoDescripción
voucherIdstringCódigo del voucher / número de tarjeta
voucherstringAlias del código del voucher (compatibilidad)
confirmationNumberstringNúmero de confirmación de la entrega
redemptionUrlstringURL de canje (cuando aplica)
epinstringPIN de activación (cuando aplica)

El receipt se llena cuando la entrega se procesa y la compra pasa de pending a processing/paid. Mientras status sea pending, los campos de entrega (voucherId, epin, redemptionUrl, confirmationNumber) vienen vacíos. Haz polling de este endpoint hasta que status sea paid.

Objeto esim (solo compras de eSIM)

Para compras de eSIM, service_data.esim trae los datos de activación: lpa (contenido del QR de instalación), smdpAddress, activationCode (matching ID, el mismo valor dentro del lpa), confirmationCode (solo si el teléfono lo pide), iccid e instructions. Ver el detalle completo del flujo en eSIM de viaje.

La respuesta está saneada: solo incluye los datos que el cliente necesita. No se exponen identificadores ni metadatos del proveedor (IDs de transacción externa, estado del proveedor, datos de cuenta, etc.).

Errores

CódigoDescripción
400id ausente o inválido
401Token de autenticación inválido o ausente
404Compra no encontrada o no pertenece al usuario