Venflow API
V1SuscripcionesPor IDReactivate

Reactivar una suscripción cancelada

POST
/v1/subscriptions/{id}/reactivate
Api-Key<token>

Tu clave API privada (comienza con pvk_)

In: header

Organization<token>

Tu ID de organización

In: header

Path Parameters

idstring
Formatuuid
reset_billing_cycles?boolean

Restart the billing-cycle counter at zero. Defaults to false, which keeps the cycles already billed — relevant only on plans with a cycle limit.

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

application/json

curl -X POST "https://api.venflow.app/v1/subscriptions/497f6eca-6276-4993-bfeb-53cbbbba6f08/reactivate" \  -H "Content-Type: application/json" \  -d '{    "reset_billing_cycles": false  }'
{
  "billing_cycles": 0,
  "billing_cycles_completed": 0.1,
  "cancel_at_period_end": true,
  "collection_mode": "engine",
  "created": 0.1,
  "current_period_end": 0.1,
  "current_period_start": 0.1,
  "customer": "string",
  "discount": {
    "amount_off": 0,
    "duration": "once",
    "duration_periods": 0,
    "id": "string",
    "name": "string",
    "percent_off": 0,
    "remaining_periods": 0
  },
  "id": "string",
  "livemode": true,
  "metadata": {
    "property1": "string",
    "property2": "string"
  },
  "object": "subscription",
  "plan": "string",
  "scheduled_start_date": "string",
  "status": "string",
  "trial_end": 0,
  "trial_start": 0
}
{
  "code": "not_found",
  "details": {},
  "message": "string"
}
{
  "code": "not_found",
  "details": {},
  "message": "string"
}
{
  "code": "not_found",
  "details": {},
  "message": "string"
}
{
  "code": "not_found",
  "details": {},
  "message": "string"
}
{
  "code": "not_found",
  "details": {},
  "message": "string"
}
{
  "code": "not_found",
  "details": {},
  "message": "string"
}

Crear un cobro POST

Crea una solicitud de cobro sobre una suscripción de cobro por API (`collection_mode` externo): tú decides cuándo y cuánto se cobra, y Venflow ejecuta el débito contra la domiciliación que el cliente ya autorizó. Requiere el header `Idempotency-Key`. Repetir la llamada con la misma clave devuelve la solicitud original, sin generar un segundo débito. Sin `amount` se cobra el precio actual del plan; sin `charge_date` el cobro se ejecuta en la próxima corrida del motor (hoy). La respuesta confirma únicamente que la solicitud quedó creada o programada: los bancos son asíncronos, así que el resultado (pagado o rechazado) llega después por webhook. `currency` define en qué moneda va `amount`. Con `USD` (predeterminado) es un monto neto en dólares, igual que el precio del plan: el IVA se calcula encima y los bolívares se obtienen a la tasa BCV del día del cobro. Con `VES` es el débito exacto en bolívares de ese día, con el equivalente en dólares de la factura derivado a esa misma tasa; en ese caso `amount` es obligatorio, porque el plan no tiene precio en bolívares. `retry_policy` define qué pasa si el banco rechaza el débito. Con `none` (predeterminado) es un solo intento: la solicitud queda `failed` y reintentar es tu decisión (una solicitud nueva). Con `automatic` la factura entra a la cola de reintentos de Venflow con los reintentos y los días que tu organización tiene configurados, y la solicitud se resuelve una sola vez al final.

Deshacer una cancelación programada POST

Revierte una cancelación programada con `POST /v1/subscriptions/{id}/cancel`. - La suscripción vuelve a `active` y `cancel_at_period_end` queda en `false`, así que el próximo ciclo se cobra con normalidad. - Responde 400 si la suscripción no tiene una cancelación programada. Una suscripción **ya cancelada** no se deshace por aquí: se revive con `POST /v1/subscriptions/{id}/reactivate`. Revierte una cancelación agendada al final del período: la suscripción vuelve a estar activa y el próximo ciclo se cobra con normalidad. Una suscripción ya cancelada no se deshace por aquí, se revive con el endpoint de reactivación.