ROKIConnect

Consultar un pago y su ciclo de vida

GET /api/connect/v1/payments/{id}

Devuelve el mismo objeto que la creación, con el estado actual. Usa la llave del entorno en el que se creó el pago.

9.1 Estados

Estado Significado
pending Creado, todavía sin pagar.
paid Cobrado con éxito. Aparecen transaction_id y paid_at.
partially_refunded Reembolsado parcialmente.
refunded Reembolsado por completo.
voided Anulado antes de la liquidación; los fondos quedan liberados.
expired El enlace venció sin pagarse.
disabled Deshabilitado.

Los pagos con historial de reembolsos también traen refunded_amount y refund_status (none / partial / full).

9.2 Listar pagos

GET /payments devuelve los pagos del comercio, del más nuevo al más viejo, paginados y acotados al comercio y al entorno de la llave - una llave de sandbox nunca ve pagos de producción.

curl "https://aura.roki.systems/api/connect/v1/payments?status=paid&per_page=50" \
  -H "Authorization: Bearer sk_test_..." -H "Accept: application/json"
{
  "data": [ { "id": 938, "status": "pending", "...": "the full payment object" } ],
  "meta": { "current_page": 1, "per_page": 20, "total": 47, "last_page": 3 }
}
Parámetro Efecto
per_page Tamaño de página, 20 por defecto. limit se ignora - solo funciona per_page.
page Empieza en 1. Deja de paginar cuando llegues a meta.last_page.
status Filtra por estado. Un valor desconocido devuelve 422; no se ignora.
external_reference Filtra por tu id de orden. Puede coincidir con varios, porque no es único.
from / to Rango de fecha de creación, YYYY-MM-DD, hora de Honduras.

meta.total cuenta todo lo que coincide con los filtros, no la página - contra eso paginas.

Aun así, guarda el id del pago al crearlo. El listado hace posible la conciliación, pero recorrer páginas para encontrar un pago no sustituye tener su id.

9.3 Qué confirma un pago y qué no

Confirma: el webhook payment.approved, y un GET /payments/{id} que devuelva status: "paid".

No confirma: que el cliente caiga en success_url. Ese redireccionamiento lo controla el navegador del cliente y cualquiera puede entrar a la URL sin pagar. Trátalo como una señal de UX, nunca como prueba de un cobro.