Crear una sesión de Checkout
Tu clave API privada (comienza con pvk_)
In: header
Tu ID de organización
In: header
When false, the "Otros Bancos" manual payment option is hidden and blocked for this session.
Defaults to true. Existing sessions without this field behave as if it were true.
Determina si el descuento aplica también a items adicionales (opcional)
Quién decide cuándo se cobra la suscripción que nazca de esta sesión (opcional, predeterminado: engine).
engine: Venflow la cobra automáticamente en cada ciclo. external (Cobro por API): el checkout registra la domiciliación y Venflow nunca cobra solo; cada cobro lo pides tú con POST /v1/subscriptions/{id}/charges.
external debe estar habilitado para tu organización y requiere un plan recurrente y items que no sean por uso (metered). Con external, el trial y la fecha de inicio diferida del plan no aplican; enviar trial_days mayor que 0, scheduled_start_date o allow_manual_payments: true devuelve 400
"engine" | "external"ID de un cliente existente para prellenar el checkout (opcional)
uuidDatos del cliente que la organización aporta para que el checkout abra con el formulario lleno.
Son SUGERENCIAS editables, no datos verificados: quien abre el enlace puede cambiar cualquiera. No crean ni modifican un cliente — viven en la sesión y dejan de aplicar en cuanto la sesión queda ligada a un cliente real.
Se usa cuando la organización conoce a la persona pero esa persona todavía no es cliente en Venflow. Si ya lo es, usa customer con su identificador: ese camino manda sobre este.
ID of an existing discount to apply to this session
uuidHoras hasta que expire la sesión (1-24, predeterminado: 24)
1 <= value <= 24Solo con collection_mode: "external": si es true, el checkout también cobra el
primer pago; los siguientes los pides tú por API. Predeterminado: false. Enviarlo en true sin collection_mode: "external" devuelve 400
Line items to attach to the subscription invoice
Key-value pairs for storing your own information on this checkout session. Venflow does not interpret them: they are stored and returned to you unchanged. At most 50 keys; keys up to 40 characters, values up to 500, and 27000 characters across all keys and values. Do not store sensitive data here: it is not encrypted and is returned on reads.
Four key names are reserved by Venflow and rejected: checkoutMode, subscriptionId, obInvoiceId and billing_cycles; use a different name, such as externalId.
properties <= 50ID del plan para el checkout de suscripción (REQUERIDO)
uuid1 <= lengthURL para redirigir después de completar el checkout (opcional)
length <= 2048Delayed start date for the subscription (ISO 8601 date, e.g. "2025-08-01")
dateOverride trial days for this session (0–365)
0 <= value <= 365Response Body
application/json
application/json
application/json
application/json
application/json
application/json
curl -X POST "https://api.venflow.app/v1/checkout/sessions" \ -H "Content-Type: application/json" \ -d '{ "plan": "550e8400-e29b-41d4-a716-446655440000", "discount_id": "8f14e45f-ceea-467a-9c2b-3a1b2c3d4e5f", "expires_after_hours": 24, "redirect_url": "https://miapp.ejemplo.com/gracias" }'{
"amount_discount": 0.1,
"amount_subtotal": 0.1,
"amount_total": 0.1,
"collection_mode": "engine",
"customer": "string",
"discount": {
"amount_off": 0,
"duration": "once",
"duration_periods": 0,
"id": "string",
"name": "string",
"percent_off": 0
},
"expires_at": 0.1,
"external_initial_charge": true,
"id": "string",
"livemode": true,
"metadata": {
"property1": "string",
"property2": "string"
},
"object": "checkout.session",
"plan": {
"amount": 0.1,
"id": "string",
"name": "string"
},
"redirect_url": "string",
"scheduled_start_date": "string",
"status": "pending",
"trial_days": 0,
"url": "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"
}Cancelar un cobro DELETE
Cancela una solicitud de cobro que todavía no se ha ejecutado y devuelve la solicitud en estado `canceled`. Solo se puede cancelar mientras está `scheduled`: una vez que el motor la tomó (`processing`) el débito ya va camino al banco, y `completed`, `failed` o `canceled` son estados finales.
Obtener una sesión de Checkout GET
Obtiene un objeto de sesión de checkout.