Indice
📜 Descripción
Este endpoint permite obtener una lista paginada de pagos registrados en el sistema. Se pueden aplicar filtros dinámicos y ordenamientos mediante parámetros de consulta (query params).
🔗 URL
GET /pagos
🛡️ Autenticación
Requiere autenticación mediante token JWT. El token debe enviarse en el encabezado:
Authorization: Bearer {token}
📊 Parámetros de consulta
Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
page | integer | No | Número de página. Comienza desde 1. Ejemplo: |
limit | integer | No | Cantidad máxima de elementos por página. Ejemplo: |
sorts | object | No | Permite ordenar por uno o más campos. Ejemplo: |
filters | object | Sí | Permite aplicar múltiples filtros utilizando índices. |
📊 Ejemplo de uso de filtros
filters[0][field]=status filters[0][operation]=EQUAL filters[0][value]=pending filters[1][field]=request_date filters[1][operation]=LESS_THAN filters[1][value]=20250101T030000000-0300
🔃 Ejemplo de uso de sorts
sorts[request_date]=ascending sorts[amount]=descending
🔎 Campos filtrables y operaciones válidas
| Campo | Operaciones válidas |
|---|---|
| id | EQUAL, IN |
| parent_payment_id | EXISTS, EQUAL |
| external_transaction_id | EQUAL, CONTAINS_IGNORE_CASE |
| type | EQUAL |
| collector_id | EQUAL, IN |
| currency_id | EQUAL |
| final_amount | LESS_THAN, LESS_THAN_OR_EQUAL_TO, EQUAL, GREATER_THAN_OR_EQUAL_TO, GREATER_THAN |
| status | EQUAL |
| validation | EQUAL |
| review | EQUAL |
| request_date | LESS_THAN, LESS_THAN_OR_EQUAL_TO, EQUAL, GREATER_THAN_OR_EQUAL_TO, GREATER_THAN |
| due_date | LESS_THAN, LESS_THAN_OR_EQUAL_TO, EQUAL, GREATER_THAN_OR_EQUAL_TO, GREATER_THAN |
| last_due_date | LESS_THAN, LESS_THAN_OR_EQUAL_TO, EQUAL, GREATER_THAN_OR_EQUAL_TO, GREATER_THAN |
| refunded_date | LESS_THAN, LESS_THAN_OR_EQUAL_TO, EQUAL, GREATER_THAN_OR_EQUAL_TO, GREATER_THAN |
| process_date | LESS_THAN, LESS_THAN_OR_EQUAL_TO, EQUAL, GREATER_THAN_OR_EQUAL_TO, GREATER_THAN |
| paid_date | LESS_THAN, LESS_THAN_OR_EQUAL_TO, EQUAL, GREATER_THAN_OR_EQUAL_TO, GREATER_THAN |
| rejected_date | LESS_THAN, LESS_THAN_OR_EQUAL_TO, EQUAL, GREATER_THAN_OR_EQUAL_TO, GREATER_THAN |
| cancel_date | LESS_THAN, LESS_THAN_OR_EQUAL_TO, EQUAL, GREATER_THAN_OR_EQUAL_TO, GREATER_THAN |
| objected_date | LESS_THAN, LESS_THAN_OR_EQUAL_TO, EQUAL, GREATER_THAN_OR_EQUAL_TO, GREATER_THAN |
| accreditation_date | LESS_THAN, LESS_THAN_OR_EQUAL_TO, EQUAL, GREATER_THAN_OR_EQUAL_TO, GREATER_THAN |
| review_validation_date | LESS_THAN, LESS_THAN_OR_EQUAL_TO, EQUAL, GREATER_THAN_OR_EQUAL_TO, GREATER_THAN |
| payer_validation_date | LESS_THAN, LESS_THAN_OR_EQUAL_TO, EQUAL, GREATER_THAN_OR_EQUAL_TO, GREATER_THAN |
| payer_deferred_date | LESS_THAN, LESS_THAN_OR_EQUAL_TO, EQUAL, GREATER_THAN_OR_EQUAL_TO, GREATER_THAN |
| batch_withdrawal | EQUAL |
📅 Uso de filtros de fecha
Para aplicar un filtro entre dos fechas no debe utilizarse la operación BETWEEN. En su lugar, se deben usar dos filtros separados, cada uno con su índice correspondiente, sobre el mismo campo.
✅ Ejemplo correcto (rango de fechas):
filters[0][field]=request_date filters[0][operation]=GREATER_THAN_OR_EQUAL_TO filters[0][value]=20250101T000000000-0300 filters[1][field]=request_date filters[1][operation]=LESS_THAN filters[1][value]=20250201T000000000-0300
Este ejemplo filtra todos los pagos cuya request_date esté entre el 1 de enero de 2025 a las 00:00 (GMT-3) y el 1 de febrero de 2025 a las 00:00 (GMT-3).
🕒 Formato de fechas
Las fechas deben enviarse en el siguiente formato:
yyyyMMdd'T'HHmmssSSSZ
- Ejemplo: 20250101T000000000-0300
- Representa: 1 de enero de 2025, 00:00:00.000 en hora UTC alineada a GMT-3
✅ Filtros mínimos requeridos
Debe incluirse al menos una de las siguientes combinaciones de filtros. Si no se cumple esta condición, el sistema responderá con un error.
Combinaciones válidas:
collector_idy request_datecollector_idypaid_datecollector_idyrejected_datecollector_idyaccreditation_datecollector_idyrefunded_datecollector_idypayment_id- owner.type y owner.id
payer.emaily request_datetypeypayment_methods.gateway.name
❌ Error en caso de no cumplir los filtros minimos:
{
"code": 400,
"message": "Query not have the minimum fields required for realm",
"extended_code": 4501
}
❌ Posibles errores
Código | Mensaje de error | Código extendido | Descripción |
|---|---|---|---|
| 400 | <field> can not be filter | 4601 | El campo enviado no puede ser utilizado como filtro. |
| 400 | Invalid field "<field>" | 4601 | El campo especificado no es válido o no existe. |
| 400 | No enum constant com.paypertic.filter.util.enums.Operation.<OPERATION> | 4601 | La operación de filtro especificada no es válida. Debe ser una de las operaciones definidas por el sistema. |
| 400 | <field> can not be filtered with <OPERATION> | 4601 | La operación indicada no es compatible con el tipo de dato del campo. |
| 400 | Query not have the minimum fields required for realm | 4501 | No se cumple con alguna combinación de filtros mínimos requeridos. |
| 401 | No autorizado | 4001 | No se proporcionó un token válido o expiró. |
| 500 | Error interno del servidor | 5000 | Se produjo un error inesperado en el servidor. |