Oversight of manual/online payments awaiting review: list the pending queue and
approve or reject each one. Paths are relative to the /api/v1 prefix; these are
back-office endpoints requiring an admin token.
Requires an admin bearer token (see Admin auth). Admin only.
See Common errors.
| Method | URI | Access | Description |
|---|---|---|---|
GET |
/admin/payments/pending |
Admin | Payments queue (pending / processing / failed) |
POST |
/admin/payments/{paymentId}/approve |
Admin | Approve a payment |
POST |
/admin/payments/{paymentId}/reject |
Admin | Reject a payment |
Page-paginated review queue (oldest first). Includes PENDING, PROCESSING, and
FAILED payments for CASH_USD, BINANCE_PAY, SYPAGO_DI, and PAYMENT_FORM so the
admin can confirm or reject them. See
Pagination → page-based.
Query
| Field | Type | Required | Rules |
|---|---|---|---|
method |
string | no | CASH_USD, BINANCE_PAY, SYPAGO_DI, or PAYMENT_FORM |
limit |
integer | no | 1–100, default 25 |
page |
integer | no | ≥ 1, default 1 |
Response 200
{
"items": [
{
"id": 9,
"method": "PAYMENT_FORM",
"internal_type": "pago_movil",
"status": "PENDING",
"amount_usd": 20.2,
"amount_bs": 740.5,
"reference": "0102-12345",
"receipt_url": "https://…",
"notes": null,
"reported": { "phone": "+584241000001", "bank": "0102" },
"created_at": "2026-06-29T12:00:00+00:00",
"actionable": true,
"order": {
"id": 42,
"address": "Av. Principal, Las Mercedes",
"liters_requested": 5000,
"status": "WAITING_FOR_PAYMENT"
},
"client": { "id": 1, "name": "Ana MartĂnez", "phone": "+584241000001" }
}
],
"meta": { "total": 12, "per_page": 25, "current_page": 1, "last_page": 1 }
}
amount_bs is null when there is no bolĂvar amount. actionable is false for cash
payments. reported is the submitted payment-form snapshot (only for PAYMENT_FORM).
Approves a manual payment.
Request body
| Field | Type | Required | Rules |
|---|---|---|---|
reason |
string | yes | 10–500 chars |
Response 200
{
"payment": {
"id": 9,
"method": "PAYMENT_FORM",
"status": "CONFIRMED",
"confirmed_at": "2026-06-29T12:05:00+00:00",
"amount_usd": 20.2
},
"order": { "id": 42, "status": "CONFIRMED" }
}
Errors
| Status | Body | When |
|---|---|---|
422 |
{ "error": "PaymentApprovalFailed", "message": "…" } |
The payment can't be approved (wrong state, etc.) |
Rejects a manual payment.
Request body
| Field | Type | Required | Rules |
|---|---|---|---|
reason |
string | yes | 10–500 chars |
Response 200
{
"payment": {
"id": 9,
"method": "PAYMENT_FORM",
"status": "FAILED",
"failure_reason": "Comprobante ilegible"
}
}
Errors
| Status | Body | When |
|---|---|---|
422 |
{ "error": "PaymentRejectionFailed", "message": "…" } |
The payment can't be rejected (wrong state, etc.) |