# Eventos de RecuRent

### Endpoint= https://webhooks.api.induxsoft.net/rentas/

> **Cómo se entregan los eventos (revisado contra el código el 2026-10-19).** La dirección anterior es solo un receptor de ejemplo. RecuRent envía cada evento con `POST` y `Content-Type: application/json` a la URL guardada en el campo `webhook` del **tipo de plan** (ver *Crear tipo de plan* en [Web services](servicios.md)); si el campo está vacío, no se envía nada. El envío es síncrono: si el receptor responde un JSON con `success` falso, la operación en RecuRent falla con el `message` del receptor. Una respuesta vacía se acepta.

## Creación de plan
```
POST ->Webhook
{
	"evento":"nuevo_plan",
	"usuario":"Nombre descriptivo del usuario",
	"idusuario":"Id del usuario",
	"plan": { 	...información del plan... }
}
```

## Activación de plan

```
POST ->Webhook
{
	"evento":"activacion",
	"usuario":"Nombre descriptivo del usuario",
	"idusuario":"Id del usuario",
	"plan": { 	...información del plan... }
}
```

## Cancelación de plan

```
POST ->Webhook
{
	"evento":"cancelacion",
	"usuario":"Nombre descriptivo del usuario",
	"idusuario":"Id del usuario",
	"plan": { 	...información del plan... }
}
```

## Renovación de plan

> **Diferencia con la implementación (2026-10-19):** RecuRent no emite actualmente este evento. Al renovar un plan se envía el evento `activacion`.

```
POST ->Webhook
{
	"evento":"renovacion",
	"usuario":"Nombre descriptivo del usuario",
	"idusuario":"Id del usuario",
	"plan": { 	...información del plan... }
}
```

## Recepción de pago

> **Diferencia con la implementación (2026-10-19):** este evento no se envía actualmente a la URL `webhook` del tipo de plan. Al cobrar un plan (`PATCH {endpoint}/planes/{id_plan}/cobrar/`), el aviso del pago va a un servicio interno de Induxsoft, sin los campos `evento`, `usuario` ni `idusuario`, y con `id_contrato` adicional.

```
POST ->Webhook
{
	"evento":"pago",
	"usuario":"Nombre descriptivo del usuario",
	"idusuario":"Id del usuario",
	"id_plan":"Id del plan",
	"pago":{
		"fecha":"fecha del pago",
		"forma_pago":"Efectivo,...",
		"importe":Importe del pago,
		"referencia":"Referencia del pago",
		"divisa":"MXN",
		"notas":"Notas asociadas al pago",
	}
	"saldo_vencido":Saldo vencido después del pago (si lo hubiese),
	"saldo":saldo después del pago (si lo hubiese)
}
```

## Quita

> **Diferencia con la implementación (2026-10-19):** este evento no se envía actualmente a la URL `webhook` del tipo de plan. Al cobrar un plan (`PATCH {endpoint}/planes/{id_plan}/cobrar/`), el aviso del pago va a un servicio interno de Induxsoft, sin los campos `evento`, `usuario` ni `idusuario`, y con `id_contrato` adicional.

```
POST ->Webhook
{
	"evento":"quita",
	"id_plan":"Id del plan",
	"usuario":"Nombre descriptivo del usuario",
	"idusuario":"Id del usuario",
	"pago":{
		"fecha":"fecha de la quita",
		"importe":Importe de la quita,
		"divisa":"MXN",
		"notas":"Notas asociadas al pago"
	}
	"saldo_vencido":Saldo vencido después del pago (si lo hubiese),
	"saldo":saldo después del pago (si lo hubiese)
}
```

## Cargo

> **Diferencia con la implementación (2026-10-19):** RecuRent no emite actualmente este evento.

```
POST ->Webhook
{
	"evento":"cargo",
	"id_plan":"Id del plan",
	"usuario":"Nombre descriptivo del usuario",
	"idusuario":"Id del usuario",
	"pago":{
		"fecha":"fecha de la quita",
		"idmovimiento":"Id del tipo de movimiento",
		"movimiento":"Descripción del movimiento",
		"importe":Importe de la quita,
		"divisa":"MXN",
		"concepto":"Concepto del cargo"
	}
	"saldo_vencido":Saldo vencido después del pago (si lo hubiese),
	"saldo":saldo después del pago (si lo hubiese)
}
```

## Cambio de cliente

```
POST ->Webhook
{
	"evento":"cambio_cliente",
	"usuario":"Nombre descriptivo del usuario",
	"idusuario":"Id del usuario",
	"id_plan": "",
	"anterior":{"codigo":"codigo","nombre:",""}
	"nuevo":{"codigo":"codigo","nombre:",""}
}
```

## Cambio de importe de mensualidad

```
POST ->Webhook
{
	"evento":"cambio_mensualidad",
	"usuario":"Nombre descriptivo del usuario",
	"idusuario":"Id del usuario",
	"id_plan": "",
	"anterior":0,
	"nuevo":1
}
```