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: page=1

limit

integer

No

Cantidad máxima de elementos por página. Ejemplo: limit=10

sorts

object

No

Permite ordenar por uno o más campos. Ejemplo: sorts[request_date]=ascending

filters

object

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

CampoOperaciones válidas
idEQUAL, IN
parent_payment_idEXISTS, EQUAL
external_transaction_idEQUAL, CONTAINS_IGNORE_CASE
typeEQUAL
collector_idEQUAL, IN
currency_idEQUAL
final_amountLESS_THAN, LESS_THAN_OR_EQUAL_TO, EQUAL, GREATER_THAN_OR_EQUAL_TO, GREATER_THAN
statusEQUAL
validationEQUAL
reviewEQUAL
request_dateLESS_THAN, LESS_THAN_OR_EQUAL_TO, EQUAL, GREATER_THAN_OR_EQUAL_TO, GREATER_THAN
due_dateLESS_THAN, LESS_THAN_OR_EQUAL_TO, EQUAL, GREATER_THAN_OR_EQUAL_TO, GREATER_THAN
last_due_dateLESS_THAN, LESS_THAN_OR_EQUAL_TO, EQUAL, GREATER_THAN_OR_EQUAL_TO, GREATER_THAN
refunded_dateLESS_THAN, LESS_THAN_OR_EQUAL_TO, EQUAL, GREATER_THAN_OR_EQUAL_TO, GREATER_THAN
process_dateLESS_THAN, LESS_THAN_OR_EQUAL_TO, EQUAL, GREATER_THAN_OR_EQUAL_TO, GREATER_THAN
paid_dateLESS_THAN, LESS_THAN_OR_EQUAL_TO, EQUAL, GREATER_THAN_OR_EQUAL_TO, GREATER_THAN
rejected_dateLESS_THAN, LESS_THAN_OR_EQUAL_TO, EQUAL, GREATER_THAN_OR_EQUAL_TO, GREATER_THAN
cancel_dateLESS_THAN, LESS_THAN_OR_EQUAL_TO, EQUAL, GREATER_THAN_OR_EQUAL_TO, GREATER_THAN
objected_dateLESS_THAN, LESS_THAN_OR_EQUAL_TO, EQUAL, GREATER_THAN_OR_EQUAL_TO, GREATER_THAN
accreditation_dateLESS_THAN, LESS_THAN_OR_EQUAL_TO, EQUAL, GREATER_THAN_OR_EQUAL_TO, GREATER_THAN
review_validation_dateLESS_THAN, LESS_THAN_OR_EQUAL_TO, EQUAL, GREATER_THAN_OR_EQUAL_TO, GREATER_THAN
payer_validation_dateLESS_THAN, LESS_THAN_OR_EQUAL_TO, EQUAL, GREATER_THAN_OR_EQUAL_TO, GREATER_THAN
payer_deferred_dateLESS_THAN, LESS_THAN_OR_EQUAL_TO, EQUAL, GREATER_THAN_OR_EQUAL_TO, GREATER_THAN
batch_withdrawalEQUAL


📅 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:

    1. collector_id y request_date
    2. collector_id y paid_date
    3. collector_id y rejected_date
    4. collector_id y accreditation_date
    5. collector_id y refunded_date
    6. collector_id y payment_id
    7. owner.type y owner.id
    8. payer.email y request_date
    9. type y payment_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 filter4601El campo enviado no puede ser utilizado como filtro.
400Invalid field "<field>"4601El campo especificado no es válido o no existe.
400No enum constant com.paypertic.filter.util.enums.Operation.<OPERATION>4601La 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>4601La operación indicada no es compatible con el tipo de dato del campo.
400Query not have the minimum fields required for realm4501No se cumple con alguna combinación de filtros mínimos requeridos.
401No autorizado4001No se proporcionó un token válido o expiró.
500Error interno del servidor5000Se produjo un error inesperado en el servidor.