{
  "info": {
    "name": "KUTI API",
    "description": "API de pagos en Perú: QR interoperable (Yape/Plin), pago de servicios (institución KUTI), checkout, saldo, liquidaciones, webhooks, SDKs (Node/PHP/Python) y plugin WooCommerce 1.0.0. Base URL https://api.kuti.pe/v1.\n\nGenerada desde https://docs.kuti.pe. Compatible con Postman, Insomnia, Bruno y otros clientes HTTP.\n\n1. En Variables, reemplaza `bearerToken` por tu secret key real.\n2. Ejemplo de placeholder: `kuti_live_…` (live) o `kuti_test_…` (prueba).",
    "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json",
    "_postman_id": "kuti-docs-collection"
  },
  "auth": {
    "type": "bearer",
    "bearer": [
      {
        "key": "token",
        "value": "{{bearerToken}}",
        "type": "string"
      }
    ]
  },
  "variable": [
    {
      "key": "baseUrl",
      "value": "https://api.kuti.pe/v1",
      "type": "string"
    },
    {
      "key": "bearerToken",
      "value": "kuti_live_…",
      "type": "string"
    }
  ],
  "item": [
    {
      "name": "balance",
      "item": [
        {
          "name": "GET Consultar saldo",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/balance",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "balance"
              ]
            },
            "description": "Saldo actual del negocio: lo pendiente de depositar y lo ya depositado en tu cuenta bancaria.\n\npending_deposit = cobrado que aún no llegó a tu banco. deposited = histórico de lo ya depositado. El modo (test/live) lo define tu API key.",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        }
      ]
    },
    {
      "name": "balance-transactions",
      "item": [
        {
          "name": "GET Movimientos del saldo",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/balance-transactions",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "balance-transactions"
              ]
            },
            "description": "Ledger del negocio: cada cobro, reembolso, payout o contracargo que afecta el saldo, con desglose de comisión.\n\ntype: PAYMENT, REFUND, PAYOUT, ADJUSTMENT, CHARGEBACK. status: PENDING, AVAILABLE, IN_PAYOUT, PAID. Filtra por payout_id para ver lo incluido en un depósito.",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        }
      ]
    },
    {
      "name": "checkout-sessions",
      "item": [
        {
          "name": "POST Crear sesión de checkout",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/checkout-sessions",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "checkout-sessions"
              ]
            },
            "description": "Crea una sesión de checkout (cargo único) y el payment intent asociado. Devuelve checkout_url para Checkout.js o pay.kuti.pe.\n\nAutoriza con secret o publishable key. amount.currency: solo PEN por ahora. Idempotency-Key recomendada. El checkout_url ya incluye el client_secret para abrir el modal/embed.",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}",
                  "type": "string"
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"amount\": {\n    \"amount\": \"249.90\",\n    \"currency\": \"PEN\"\n  },\n  \"payment_method_types\": [\n    \"INTEROPERABLE_QR\",\n    \"BANK_TRANSFER\"\n  ],\n  \"customer\": {\n    \"name\": \"María López\",\n    \"email\": \"maria@example.com\",\n    \"phone\": \"+51987654321\"\n  },\n  \"description\": \"Pedido #1042\",\n  \"external_reference\": \"order-1042\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "GET Detalle de sesión de checkout",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/checkout-sessions/{id}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "checkout-sessions",
                ":id"
              ]
            },
            "description": "Consulta el estado de una sesión. Público: autentica con client_secret (query o X-Kuti-Token).\n\nPúblico: no uses Authorization Bearer. Autoriza con el client_secret de la sesión — query ?client_secret=… o header X-Kuti-Token (mismo valor; el header tiene prioridad).",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        }
      ]
    },
    {
      "name": "customers",
      "item": [
        {
          "name": "GET Listar clientes",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/customers",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "customers"
              ]
            },
            "description": "Lista customers del merchant autenticado, con búsqueda y paginación.\n\nper_page acepta un entero 1–100 o el literal all. q busca en nombre, razón social, correo, documento o external_id.",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "POST Crear cliente",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/customers",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "customers"
              ]
            },
            "description": "Crea un customer (pagador) para el merchant autenticado por tu API key.\n\ntype es obligatorio: INDIVIDUAL (persona) o COMPANY (empresa). Persona usa first_name/last_name; empresa usa company_name. Puedes enviar Idempotency-Key (UUID v4).",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}",
                  "type": "string"
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"type\": \"INDIVIDUAL\",\n  \"external_id\": \"cust_erp_4821\",\n  \"first_name\": \"María\",\n  \"last_name\": \"López\",\n  \"document\": {\n    \"country\": \"PE\",\n    \"type\": \"DNI\",\n    \"value\": \"45678912\"\n  },\n  \"email\": \"maria@example.com\",\n  \"phone\": \"+51987654321\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "DELETE Borrar cliente",
          "request": {
            "method": "DELETE",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/customers/{id}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "customers",
                ":id"
              ]
            },
            "description": "Borra o archiva un customer. Si no tiene cobros se elimina; si tiene, se archiva y desaparece de listados.\n\nSi no tiene cobros: deleted=true, archived=false. Si tiene cobros: deleted=false, archived=true y payment_intents_count > 0 (desaparece de listados; los cobros siguen resolviendo al cliente).",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "GET Detalle de cliente",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/customers/{id}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "customers",
                ":id"
              ]
            },
            "description": "Obtiene un customer por id (cus_…). Incluye payment_intents_count.\n\nSolo puedes leer clientes de tu merchant (el de la API key).",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "PATCH Editar cliente",
          "request": {
            "method": "PATCH",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/customers/{id}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "customers",
                ":id"
              ]
            },
            "description": "Edita nombre, razón social, correo o teléfono. Solo los campos enviados se modifican.\n\nEl tipo (INDIVIDUAL/COMPANY) y el documento no se pueden cambiar. Enviar \"\" borra el valor.",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}",
                  "type": "string"
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"last_name\": \"López Torres\",\n  \"email\": \"maria.lopez@example.com\",\n  \"phone\": \"+51987654321\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        }
      ]
    },
    {
      "name": "events",
      "item": [
        {
          "name": "GET Listar eventos",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/events",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "events"
              ]
            },
            "description": "Lista los eventos de tu negocio. Del más reciente al más antiguo. Mismo modo (test/live) que tu API key.\n\nFiltra por type (p. ej. payment.succeeded). Útil para reconciliar o depurar entregas.",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "GET Detalle del evento",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/events/{id}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "events",
                ":id"
              ]
            },
            "description": "Obtiene un evento por id (evt_…). Misma forma que el body del webhook. Payloads de cada tipo: guía Webhooks → Cómo funcionan.",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "GET Entregas de un evento",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/events/{id}/deliveries",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "events",
                ":id",
                "deliveries"
              ]
            },
            "description": "Lista los intentos de entrega de un evento a tus webhooks (éxito, fallo, reintentos).\n\nstatus de entrega: PENDING, SUCCEEDED, FAILED, DEAD. attempt_history va del más reciente al más antiguo.",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        }
      ]
    },
    {
      "name": "fee-preview",
      "item": [
        {
          "name": "GET Cotizar comisión",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/fee-preview",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "fee-preview"
              ]
            },
            "description": "Estima la comisión de un cobro sin crearlo: tu cliente paga X, tú recibes Y.\n\nNo persiste nada. Usa el plan de comisiones vigente del negocio. fee es negativa (IGV incluido).",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        }
      ]
    },
    {
      "name": "merchants",
      "item": [
        {
          "name": "GET Listar negocios",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/merchants",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "merchants"
              ]
            },
            "description": "Lista merchants con paginación por offset. Del más reciente al más antiguo según el orden del servidor.\n\nper_page acepta un entero 1–100 o el literal all para traer todos en una sola página (total_pages = 1).",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "POST Crear negocio",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/merchants",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "merchants"
              ]
            },
            "description": "Crea un merchant a partir de un RUC. La razón social, el país (PE), la moneda (PEN) y la dirección fiscal se consultan en SUNAT y no se envían en el body.\n\nSolo tax_id.value es obligatorio. No envíes legal_name, country, address ni default_currency: salen de SUNAT. Si el RUC no existe, responde 422. Puedes enviar Idempotency-Key (UUID v4) para reintentos seguros.",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}",
                  "type": "string"
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"tax_id\": {\n    \"value\": \"20123456789\"\n  },\n  \"trade_name\": \"Café Andina\",\n  \"email\": \"pagos@cafeandina.pe\",\n  \"phone\": \"+51999999999\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "GET Detalle de negocio",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/merchants/{id}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "merchants",
                ":id"
              ]
            },
            "description": "Obtiene un merchant por id. Solo puedes leer el negocio asociado a tu API key.\n\nEl id tiene el formato mer_… (p. ej. mer_01J8Z3K4M5N6P7Q8R9S0T1U2V3).",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "PATCH Editar negocio",
          "request": {
            "method": "PATCH",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/merchants/{id}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "merchants",
                ":id"
              ]
            },
            "description": "Edita datos del negocio: razón social, nombre comercial, contacto y dirección. Solo los campos enviados se modifican.\n\nEl RUC, el país y la moneda no se pueden cambiar. Enviar \"\" borra el valor (excepto legal_name).",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}",
                  "type": "string"
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"trade_name\": \"Café Andina Miraflores\",\n  \"phone\": \"+51987654321\",\n  \"email\": \"hola@cafeandina.pe\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        }
      ]
    },
    {
      "name": "payment-intents",
      "item": [
        {
          "name": "GET Listar cobros",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/payment-intents",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "payment-intents"
              ]
            },
            "description": "Lista los payment intents (cobros) del merchant autenticado. Del más reciente al más antiguo.\n\nstatus: REQUIRES_PAYMENT_METHOD, PENDING, PROCESSING, SUCCEEDED, FAILED, CANCELLED, EXPIRED. El modo (test/live) lo define tu API key.",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "POST Crear cobro",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/payment-intents",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "payment-intents"
              ]
            },
            "description": "Crea un Payment Intent que representa un cobro único por un monto determinado. Puedes indicar qué métodos de pago estarán disponibles para el pagador. KUTI devuelve los datos necesarios para cada método habilitado y un único checkout_url.\n\nSolo PEN · amount como string · en banca: institución KUTI. Preferí customer.id; si no, type + datos. Idempotency-Key recomendada.",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}",
                  "type": "string"
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"amount\": {\n    \"amount\": \"50.00\",\n    \"currency\": \"PEN\"\n  },\n  \"payment_method_types\": [\n    \"INTEROPERABLE_QR\",\n    \"BANK_TRANSFER\"\n  ],\n  \"customer\": {\n    \"type\": \"INDIVIDUAL\",\n    \"given_name\": \"María\",\n    \"family_name\": \"López\",\n    \"email\": \"maria@example.com\",\n    \"phone\": \"+51987654321\",\n    \"document\": {\n      \"type\": \"DNI\",\n      \"number\": \"45678912\"\n    }\n  },\n  \"description\": \"Pedido #1042\",\n  \"external_reference\": \"order-1042\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "GET Detalle del cobro",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/payment-intents/{id}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "payment-intents",
                ":id"
              ]
            },
            "description": "Obtiene un payment intent por id. Incluye datos para pagar, fee_preview y, si ya fue pagado, paid_with + settlement.\n\nclient_secret permite operar el cobro desde el frontend (Checkout.js) sin exponer tu secret key. Si status=SUCCEEDED, usa paid_with (no payment_method) para mostrar cómo se pagó.",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "POST Anular cobro",
          "request": {
            "method": "POST",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/payment-intents/{id}/cancel",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "payment-intents",
                ":id",
                "cancel"
              ]
            },
            "description": "Cancela un payment intent. Pasa a status CANCELLED.\n\nSi el cobro ya está pagado, procesando o en un estado que no admite anulación, responde 409.",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "POST Enviar link por WhatsApp",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/payment-intents/{id}/send-whatsapp",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "payment-intents",
                ":id",
                "send-whatsapp"
              ]
            },
            "description": "Envía el link de pago del cobro por WhatsApp (plantilla fija). Responde 204 si se envió.\n\nEste envío consume 1 moneda de tu saldo WhatsApp. Si el cobro no tiene cliente con teléfono, phone es obligatorio. customer_name personaliza el mensaje.",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}",
                  "type": "string"
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"phone\": \"+51987654321\",\n  \"customer_name\": \"Ana Torres\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        }
      ]
    },
    {
      "name": "payout-accounts",
      "item": [
        {
          "name": "GET Listar cuentas bancarias",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/payout-accounts",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "payout-accounts"
              ]
            },
            "description": "Lista las cuentas de liquidación (destino de los pagos a tu cuenta) del modo actual.",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "POST Registrar cuenta bancaria",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/payout-accounts",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "payout-accounts"
              ]
            },
            "description": "Registra una cuenta bancaria de liquidación. El titular lo toma KUTI del negocio (razón social + RUC).\n\ncci debe ser 20 dígitos. account_type: CHECKING o SAVINGS.",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}",
                  "type": "string"
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"bank_code\": \"BCP\",\n  \"account_type\": \"CHECKING\",\n  \"cci\": \"00212345678901234567\",\n  \"make_default\": true\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        }
      ]
    },
    {
      "name": "payout-settings",
      "item": [
        {
          "name": "GET Preferencias de liquidación",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/payout-settings",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "payout-settings"
              ]
            },
            "description": "Consulta el calendario y umbrales de los pagos a tu cuenta.\n\nschedule: PROVIDER (calendario del proveedor), DAILY, WEEKLY o MANUAL.",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "PUT Actualizar preferencias",
          "request": {
            "method": "PUT",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/payout-settings",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "payout-settings"
              ]
            },
            "description": "Actualiza el calendario y umbrales de liquidación hacia tu cuenta bancaria.",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}",
                  "type": "string"
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"schedule\": \"DAILY\",\n  \"delay_days\": 2,\n  \"min_amount\": \"50.00\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        }
      ]
    },
    {
      "name": "payouts",
      "item": [
        {
          "name": "GET Listar pagos a tu cuenta",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/payouts",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "payouts"
              ]
            },
            "description": "Lista las transferencias del saldo de KUTI hacia tu cuenta bancaria (payouts).\n\nstatus: PENDING, IN_TRANSIT, PAID, FAILED, CANCELED. Del más reciente al más antiguo.",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "GET Detalle del pago a tu cuenta",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/payouts/{id}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "payouts",
                ":id"
              ]
            },
            "description": "Obtiene un payout por id (pyt_…): monto, estado y cuenta destino.",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "GET Movimientos de un payout",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/payouts/{id}/transactions",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "payouts",
                ":id",
                "transactions"
              ]
            },
            "description": "Lista los movimientos del ledger incluidos en un pago a tu cuenta.",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        }
      ]
    },
    {
      "name": "webhook-deliveries",
      "item": [
        {
          "name": "POST Reintentar entrega",
          "request": {
            "method": "POST",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/webhook-deliveries/{id}/retry",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "webhook-deliveries",
                ":id",
                "retry"
              ]
            },
            "description": "Reencola una entrega de webhook para envío inmediato.\n\nÚtil si tu endpoint falló y ya lo corregiste. El id es whd_… (no el evt_…).",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        }
      ]
    },
    {
      "name": "webhook-endpoints",
      "item": [
        {
          "name": "GET Listar endpoints",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/webhook-endpoints",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "webhook-endpoints"
              ]
            },
            "description": "Lista los webhook endpoints del merchant en el modo de tu API key (test o live).\n\nNo incluye signing_secret (solo se muestra al crear). No mezcla endpoints de test y live.",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "POST Crear endpoint",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/webhook-endpoints",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "webhook-endpoints"
              ]
            },
            "description": "Registra una URL HTTPS para recibir eventos firmados de KUTI.\n\nsigning_secret se devuelve SOLO en esta respuesta. El endpoint queda ligado al modo de tu API key (test o live). events: lista de tipos o [\"*\"] para todos.",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}",
                  "type": "string"
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"url\": \"https://merchant.example.com/webhooks/kuti\",\n  \"description\": \"Producción\",\n  \"events\": [\n    \"payment.succeeded\",\n    \"payment.failed\"\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "DELETE Eliminar endpoint",
          "request": {
            "method": "DELETE",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/webhook-endpoints/{id}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "webhook-endpoints",
                ":id"
              ]
            },
            "description": "Elimina un webhook endpoint. Deja de recibir entregas.\n\nResponde 204 sin body si se eliminó.",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{bearerToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        }
      ]
    }
  ]
}