Ir al contenido

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
id
stringrequerido
Id del cobro en el path (pi_…). Tiene que ser un cobro de prueba de tu negocio.Ej: pi_01J8Z3K4M5N6P7Q8R9S0T1U2V3
outcome
stringrequerido
SUCCEEDED = el cliente pagó. FAILED = el pago fue rechazado.Ej: SUCCEEDED
payment_method_type
stringopcional
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_QR

Language

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"
    }
  }
}