# API · Editar plan recurrente

> Edición de un plan recurrente y de su estado.

- kind: api-operation
- status: stable
- api_version: v1
- last_verified: 2026-08-29
- url: https://www.tilopay.com/developers/api/recurrentes/planes/edit-plan

```http
POST /api/v1/editPlanRepeat
```

## Qué hace [#que-hace]

Edita un plan existente, incluido su estado.

## Autenticación [#autenticacion]

Requiere el token bearer del API en el header `Authorization` — ver [autenticación](/developers/api/autenticacion).

## Parámetros [#parametros]

<Param id="edit-plan-parametro-key" name="key" type="string" required>
Key de la integración Tilopay.
</Param>

<Param id="edit-plan-parametro-id" name="id" type="integer" required>
Id del plan recurrente.
</Param>

<Param id="edit-plan-parametro-title" name="title" type="string" required>
Título del plan recurrente.
</Param>

<Param id="edit-plan-parametro-description" name="description" type="string">
Descripción del plan.
</Param>

<Param id="edit-plan-parametro-frecuency" name="frecuency" type="integer">
Frecuencia de cobro.

| Código | Valor |
| --- | --- |
| 1 | Diario |
| 2 | Semanal |
| 3 | Mensual |
| 4 | Anual |
| 5 | Quincenal |
| 6 | Bimestral |
| 7 | Trimestral |
| 8 | Cuatrimestral |
| 9 | Semestral |
</Param>

<Param id="edit-plan-parametro-currency" name="currency" type="string" required>
Código de moneda en formato ISO 4217.
</Param>

<Param id="edit-plan-parametro-first-amount" name="first_amount" type="integer" required>
Monto por pago inicial.
</Param>

<Param id="edit-plan-parametro-trial" name="trial" type="integer" required>
Activa el periodo de prueba gratis: 0 no, 1 sí.
</Param>

<Param id="edit-plan-parametro-trial-days" name="trial_days" type="integer" required>
Días del periodo de prueba gratis.
</Param>

<Param id="edit-plan-parametro-attempts" name="attempts" type="integer" required>
Cantidad de reintentos para cobros fallidos.
</Param>

<Param id="edit-plan-parametro-status" name="status" type="integer" required>
Estado del plan recurrente.

| Código | Valor |
| --- | --- |
| 0 | Inactivo |
| 1 | Activo |
| 2 | Activo pero sin registros nuevos |
</Param>

<Param id="edit-plan-parametro-thanks-url" name="thanks_url" type="string">
Campo opcional. URL de agradecimiento propia del comercio; debe soportar el método **GET**.
</Param>

<Param id="edit-plan-parametro-webhook-subscribe" name="webhook_subscribe" type="string">
Campo opcional. URL del webhook, por método **POST**, que recibe el callback en el cuerpo de la solicitud cuando un cliente adquiere una suscripción de forma exitosa. Ejemplo de los datos enviados: `{'id_plan' : 1, 'email' : 'email@email.com', 'modality' : 'ModalityName', 'amount' : 25, 'frequency' : '', 'coupon' : '5HT5W8YT', 'free_trial' : 1, 'next_payment_date' : '2023-02-25'}`
</Param>

<Param id="edit-plan-parametro-webhook-payment" name="webhook_payment" type="string">
Campo opcional. URL del webhook, por método **POST**, que recibe el callback en el cuerpo de la solicitud cuando el cargo al cliente se realiza con éxito. Ejemplo de los datos enviados: `{'id_plan' : 1, 'email' : 'email@email.com', 'amount' : 25, 'auth' : '123456', 'orderNumber' : 'PRE123456'}`
</Param>

<Param id="edit-plan-parametro-webhook-rejected" name="webhook_rejected" type="string">
Campo opcional. URL del webhook, por método **POST**, que recibe el callback en el cuerpo de la solicitud cuando un pago falla. Ejemplo de los datos enviados: `{'id_plan' : 1, 'email' : 'email@email.com', 'amount' : 25}`
</Param>

<Param id="edit-plan-parametro-webhook-unsubscribe" name="webhook_unsubscribe" type="string">
Campo opcional. URL del webhook, por método **POST**, que recibe el callback en el cuerpo de la solicitud cuando un cliente cancela la suscripción a uno de sus planes. Ejemplo de los datos enviados: `{'id_plan' : 1, 'email' : 'email@email.com', 'expire' : '2023-02-25'}`
</Param>

<Param id="edit-plan-parametro-webhook-reactive" name="webhook_reactive" type="string">
Campo opcional. URL del webhook, por método **POST**, que recibe el callback en el cuerpo de la solicitud cuando un cliente reactiva la suscripción a uno de sus planes. Ejemplo de los datos enviados: `{'id_plan' : 1, 'email' : 'email@email.com', 'next_payment_date' : '2023-02-25'}`
</Param>

<Param id="edit-plan-parametro-end-at" name="end_at" type="string">
Fecha de finalización del plan recurrente, formato `d-m-Y` (por ejemplo 25-09-2022). Si el plan no tiene fecha de fin, se envía vacío.
</Param>

## Ejemplo de request [#request]

Los valores `<...>` son marcadores: reemplazalos por tus credenciales y datos.

```json
{
  "key": "<api_key>",
  "id": 3,
  "title": "Plan title",
  "description": "Plan description",
  "frecuency": 2,
  "currency": "USD",
  "first_amount": 0,
  "trial": 0,
  "trial_days": 0,
  "attempts": 5,
  "status": 1,
  "thanks_url": "",
  "webhook_subscribe": "",
  "webhook_payment": "",
  "webhook_rejected": "",
  "webhook_unsubscribe": "",
  "webhook_reactive": "",
  "end_at": "25-10-2023"
}
```

Para interpretar una respuesta que no es de éxito, ver [cómo leer una respuesta de error](/developers/api/procesos-operativos/errors).
