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
| Campo | Tipo | Descripción |
|---|---|---|
id | string | ID de la compra (buyedService_id). Úsalo para consultar el detalle |
service_name | string | Nombre del producto comprado (marca real, p.ej. "Amazon $25") |
service_logo | string | null | Logo del producto/marca |
status | string | Estado: pending, processing, paid, cancelled |
created_at | string | Fecha de creación |
updated_at | string | Fecha de actualización |
Errores
| Código | Descripción |
|---|---|
401 | Token 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ámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
id | number | Sí | ID 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
| Campo | Tipo | Descripción |
|---|---|---|
id | string | ID de la compra (buyedService_id) |
status | string | Estado: pending, processing, paid, cancelled |
amount | number | Monto de la compra (USD) |
notes | string | null | Notas de estado |
created_at | string | Fecha de creación |
updated_at | string | Fecha de actualización |
service | object | null | Producto: name (marca real), logo |
transaction | object | null | Transacción asociada: uuid (para correlacionar con GET /transaction/:uuid) |
service_data | object | Datos 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.
| Campo | Tipo | Descripción |
|---|---|---|
voucherId | string | Código del voucher / número de tarjeta |
voucher | string | Alias del código del voucher (compatibilidad) |
confirmationNumber | string | Número de confirmación de la entrega |
redemptionUrl | string | URL de canje (cuando aplica) |
epin | string | PIN 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ódigo | Descripción |
|---|---|
400 | id ausente o inválido |
401 | Token de autenticación inválido o ausente |
404 | Compra no encontrada o no pertenece al usuario |