Pagos para revisar
Pagos que entraron pero no correspondían: pagaron dos veces (QR y banca), pagaron un cobro anulado o fallido, una cuota ya pagada, o entró un monto distinto. El dinero está en tu saldo; decide si lo devuelves o lo aplicas.
GEThttps://api.kuti.pe/v1/payment-exceptions
Permiso payment_exceptions:read. Motivos: DUPLICATE, ON_CANCELLED, ON_FAILED, RECEIVABLE_ALREADY_PAID, AMOUNT_MISMATCH. Aviso por webhook: payment.exception_created.
Query
Campo
Descripción
statusstringopcional
OPEN | REFUNDED | APPLIED | DISMISSED.Ej:
OPENpayment_intent_idstringopcional
Solo los de ese cobro.
pageintegeropcional
per_pageintegeropcional
Language
Credentials
Header
Authorization
Secret key de developer · ejemplos con SDK oficial
API Request
$ npm install @kuti-pe/node
import { KutiClient } from "@kuti-pe/node";
const kuti = new KutiClient({ secretKey: process.env.KUTI_SECRET_KEY! });
const result = await kuti.paymentExceptions.list({ status: "OPEN" });
console.log(result.data);SDK oficial · guía en /sdks
Response
Elige un ejemplo de respuesta:
application/json
200OK
{
"success": true,
"data": [
{
"id": "pexc_01J8Z3K4M5N6P7Q8R9S0T1U2V3",
"merchant_id": "mer_01J8Z3K4M5N6P7Q8R9S0T1U2V3",
"livemode": false,
"payment_intent_id": "pi_01J8Z3K4M5N6P7Q8R9S0T1U2V3",
"payment_method_type": "BANK_TRANSFER",
"amount": {
"amount": "250.00",
"currency": "PEN"
},
"reason": "DUPLICATE",
"status": "OPEN",
"balance_transaction_id": "btxn_01J8Z3K4M5N6P7Q8R9S0T1U2V3",
"resolution_note": null,
"created_at": "2026-09-29T15:20:00Z",
"resolved_at": null
}
],
"pagination": {
"page": 1,
"per_page": 25,
"total": 1,
"total_pages": 1,
"has_more": false
}
}