Simular pago
Solo modo prueba. Hace que un cobro termine como pagado o como rechazado, sin que nadie pague de verdad.
POSThttps://api.kuti.pe/v1/payment-intents/{id}/simulate
Solo acepta claves de prueba (kuti_test_…) con el permiso payment_intents:write. Con una clave de producción responde 403 TEST_MODE_REQUIRED. Se disparan los mismos eventos y webhooks que con un pago real.
Path y body
Campo
Descripción
idstringrequerido
Id del cobro en el path (pi_…). Tiene que ser un cobro de prueba de tu negocio.Ej:
pi_01J8Z3K4M5N6P7Q8R9S0T1U2V3outcomestringrequerido
SUCCEEDED = el cliente pagó. FAILED = el pago fue rechazado.Ej:
SUCCEEDEDpayment_method_typestringopcional
Con qué método pagó el cliente: uno de los que ofrece el cobro (su payment_method_types), INTEROPERABLE_QR o BANK_TRANSFER. Opcional si el cobro ofrece uno solo; obligatorio si ofrece varios. Yape afiliado se simula en /payment-intents/{id}/simulate/yape.Ej:
INTEROPERABLE_QRLanguage
Credentials
Header
Authorization
Secret key de developer · HTTP directo; SDK oficial → /sdks
Fetch Request
$ # Node 18+ fetch · SDK oficial: npm i @kuti-pe/node
const response = await fetch("https://api.kuti.pe/v1/payment-intents/pi_01J8Z3K4M5N6P7Q8R9S0T1U2V3/simulate", {
method: "POST",
headers: {
"Authorization": "Bearer kuti_live_…",
"Content-Type": "application/json"
},
body: JSON.stringify({
"outcome": "SUCCEEDED",
"payment_method_type": "INTEROPERABLE_QR"
})
});
const data = await response.json();
console.log(data);HTTP directo · este endpoint aún no está en el SDK v1 → /sdks
Response
Elige un ejemplo de respuesta:
application/json
200OK
{
"success": true,
"message": "Payment intent simulated",
"data": {
"id": "pi_01J8Z3K4M5N6P7Q8R9S0T1U2V3",
"merchant_id": "mer_01J8Z3K4M5N6P7Q8R9S0T1U2V3",
"livemode": false,
"amount": {
"amount": "50.00",
"currency": "PEN"
},
"status": "SUCCEEDED",
"payment_method_types": [
"INTEROPERABLE_QR",
"BANK_TRANSFER"
],
"description": "Pedido #1042",
"created_at": "2026-09-04T10:48:59.556906Z",
"paid_with": {
"method_type": "INTEROPERABLE_QR",
"paid_at": "2026-09-04T10:55:12.000Z"
}
}
}