Transactions
Listar Transacciones
Obtener el listado paginado de transacciones del usuario autenticado.
GET /transaction
Retorna el listado de transacciones del usuario autenticado, con soporte para filtros, paginación y descarga en formato Excel.
Autenticación
Bearer Token (Authorization: Bearer <token> en headers).
Request
curl -X GET "https://api.qvapay.com/transaction?take=20&page=1&status=paid" \
-H "Authorization: Bearer <token>"Parámetros (query string)
| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
take | number | No | Cantidad de resultados por página (1-30, por defecto 20) |
page | number | No | Página a consultar (por defecto 1) |
status | string | No | Filtrar por estado: paid, pending, cancelled (por defecto paid) |
search | string | No | Búsqueda por descripción, UUID, remote_id o ID |
query | string | No | Alias de search |
uuid | string | No | Buscar por UUID exacto de la transacción |
user_uuid | string | No | Filtrar transacciones con un usuario específico |
order | string | No | Orden de resultados: asc o desc (por defecto desc) |
orderBy | string | No | Campo de ordenamiento (por defecto created_at) |
min_amount | number | No | Monto mínimo |
max_amount | number | No | Monto máximo |
date_from | string | No | Fecha de inicio (formato ISO 8601) |
date_to | string | No | Fecha de fin (formato ISO 8601) |
include_total | string | No | Si es true, incluye el total de transacciones para paginación |
download | string | No | Si es true, descarga las transacciones en formato Excel (.xlsx) |
Response
[
{
"uuid": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
"app_id": 1,
"paid_by_user_id": "12345",
"amount": 25.00,
"description": "Pago de servicio",
"remote_id": "order-12345",
"status": "paid",
"created_at": "2024-06-20T14:30:00.000Z",
"updated_at": "2024-06-20T14:30:00.000Z",
"App": {
"logo": "https://example.com/logo.png",
"url": "https://example.com",
"name": "Mi App"
},
"PaidBy": {
"uuid": "550e8400-e29b-41d4-a716-446655440000",
"username": "johndoe",
"name": "John",
"image": "https://example.com/avatar.png",
"kyc": true,
"vip": false,
"golden_check": false
},
"User": {
"uuid": "660e8400-e29b-41d4-a716-446655440001",
"username": "janedoe",
"name": "Jane",
"image": "https://example.com/avatar2.png",
"kyc": true,
"vip": false,
"golden_check": false
},
"Wallet": {
"id": 1,
"wallet_type": "crypto",
"Coin": {
"tick": "BTC",
"logo": "https://example.com/btc.png"
}
},
"P2P": {
"id": 1,
"uuid": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"amount": 50.00,
"coin": "USDT",
"receive": 45.00,
"status": "completed"
},
"Withdraw": {
"id": 1,
"payment_method": "paypal",
"amount": 25.00,
"receive": 23.50,
"status": "paid"
},
"BuyedService": {
"id": 1,
"service_id": 10,
"status": "completed"
}
}
]Cuando include_total es true, la respuesta tiene esta estructura:
{
"transactions": [ ... ],
"total": 150
}Cuando download es true, la respuesta es un archivo Excel (.xlsx) con las transacciones.
Campos de transacción
| Campo | Tipo | Descripción |
|---|---|---|
uuid | string | UUID de la transacción |
app_id | number | ID de la aplicación asociada |
paid_by_user_id | string | ID del usuario que pagó |
amount | number | Monto de la transacción |
description | string | Descripción de la transacción |
remote_id | string | Identificador externo |
status | string | Estado: pending, paid, cancelled |
created_at | string | Fecha de creación |
updated_at | string | Fecha de última actualización |
App | object | null | Información de la app asociada |
PaidBy | object | null | Usuario que realizó el pago |
User | object | null | Usuario que recibe el pago |
Wallet | object | null | Información de la wallet: id, wallet_type, Coin (tick, logo) |
P2P | object | null | Información del P2P: id, uuid, amount, coin, receive, status |
Withdraw | object | null | Información del retiro: id, payment_method, amount, receive, status |
BuyedService | object | null | Servicio comprado: id, service_id, status |
Errores
| Código | Descripción |
|---|---|
400 | El parámetro take debe ser entre 1 y 30 |
401 | Token de autenticación inválido o ausente |
429 | Demasiadas solicitudes (límite: 3 cada 5 segundos) |