Cuentas Conectadas
Si estás construyendo una plataforma o un marketplace, y quieres:
- Cobrar en nombre de alguien más, o
- Compartir los ingresos de las ventas con otras cuentas
La funcionalidad de Cuentas Conectadas es para ti.
Con Cuentas Conectadas puedes realizar cobros en nombre de otras cuentas utilizando tus propias Llaves API, sin necesidad de acceder ni utilizar las llaves API de esas cuentas.
Dos formas de conectar cuentas
Puedes trabajar con Cuentas Conectadas de dos formas:
- Crear y administrar una cuenta conectada nueva desde tu plataforma. Este es el flujo recomendado cuando tu plataforma hace el onboarding del comercio, administra sus datos y configura su cuenta bancaria.
- Conectar una cuenta de Recurrente existente. Este flujo sirve cuando el comercio ya usa Recurrente y solo quiere autorizar a tu plataforma para cobrar en su nombre.
Ambos caminos terminan con una cuenta hija conectada a tu cuenta. En los dos casos, usarás el ID de esa cuenta hija en account_id cuando crees checkouts.
Crear y conectar una cuenta por API
Puedes crear una cuenta conectada administrada por tu plataforma con POST /api/connected_accounts. Recurrente crea la cuenta hija, la conecta a tu cuenta, valida los documentos requeridos y marca el onboarding como completado.
Si ya existe una cuenta conectada para el mismo email, Recurrente reutiliza esa cuenta y actualiza los datos enviados. El tax_id y tax_name se extraen automáticamente del RTU enviado en verification[tax_registration_document]; no necesitas enviarlos en el request.
Documentos requeridos
Cada tipo de cuenta requiere distintos archivos en verification:
Ejemplo: cuenta individual
Ejemplo: cuenta de empresa
Puedes enviar bank_account en el mismo request para configurar la cuenta bancaria externa que recibirá retiros. Usa GET /api/banks para ver los valores válidos de bank_name.
Ejemplo: organización sin fines de lucro
Actualizar una cuenta conectada
Puedes actualizar el nombre público y la frecuencia de retiros de una cuenta conectada:
Administrar cuentas bancarias
Para agregar otra cuenta bancaria externa a una cuenta conectada:
Para cambiar la cuenta bancaria predeterminada, actualiza la cuenta bancaria deseada con is_preferred: true:
Para remover una cuenta bancaria, usa DELETE. Recurrente la archiva y deja de mostrarla en la API.
Conectar una cuenta existente
Si el comercio ya tiene una cuenta de Recurrente, no necesitas crear otra cuenta por API. Conecta las dos cuentas desde el UI de Recurrente siguiendo las instrucciones aquí.
Crear un checkout para una cuenta conectada
Una vez conectadas las cuentas, crea checkouts en nombre de la cuenta hija usando el parámetro account_id:
Distribución de fondos
Puedes distribuir los fondos entre cuentas usando transfer_setups. Cada elemento define una transferencia que Recurrente ejecuta automáticamente cuando el cobro se completa exitosamente:
recipient_ides el ID de la cuenta de Recurrente que recibe los fondos (ej.ac_789012) — no es una cuenta bancaria. Los fondos se acreditan al balance de Recurrente de esa cuenta, y de ahí siguen su flujo normal de retiros.- Si omites
recipient_id, los fondos se transfieren a tu propia cuenta — útil para quedarte con una comisión cuando el checkout se crea a nombre de una cuenta conectada. - Usa
purpose: "platform_commission"cuando esa transferencia sea una comisión que la cuenta hija paga a tu plataforma. Si omitespurpose, Recurrente usafund_splity no la incluye en facturación de comisiones. - En pagos únicos envía
amount_in_cents: un monto fijo que se transfiere una sola vez. Puede llegar hasta el monto neto disponible después de fees, FEL e IVA. - En suscripciones envía
amount_percent: un porcentaje del total de cada factura (0–100, hasta 2 decimales), que se transfiere en cada cobro exitoso mientras la suscripción esté activa. Al crear el checkout validamos que el porcentaje quepa en el monto neto después de fees, FEL e IVA. Si la suscripción se cancela, las transferencias recurrentes se cancelan con ella.
Facturación diaria de comisiones
Puedes pedir que Recurrente emita un DTE diario por moneda para las transferencias marcadas como platform_commission que cada cuenta conectada paga a tu plataforma. Tu plataforma tiene una configuración general (daily o none) y cada conexión puede reemplazarla. Solo cubre transferencias live completadas después de enabled_at; no clasifica ni factura transferencias históricas.
Para habilitarla, usa una API key live. Tu plataforma debe tener INFILE/FEL listo y la cuenta conectada debe tener NIT y nombre fiscal verificados:
Recurrente procesa días cerrados en America/Guatemala de forma asíncrona. Cada documento suma exactamente las comisiones completadas de un día y moneda; no vuelve a mover el principal. Puedes consultar los documentos y reconciliar cada línea con su transferencia:
El detalle expone transfer_setup_id, transfer_id, source_id, source_type y completed_at. Los webhooks partner_commission_invoice.issued y partner_commission_invoice.failed indican el resultado; failed solo se envía cuando ya no corresponde otro reintento automático.
Enviar { "mode": "none" } define un override que cierra el intervalo. Enviar { "mode": "default" } elimina el override y vuelve a heredar la configuración general. Recurrente todavía drena las comisiones completadas antes de disabled_at, y conserva todos los documentos y líneas existentes. La plataforma emisora puede seguir consultando ese historial aun después de desconectar la cuenta; la configuración sí requiere una conexión activa.
Webhooks
Cuando una cuenta hija se conecta a tu cuenta, Recurrente envía un webhook account_connection.create a tu cuenta. El payload incluye la conexión y las dos cuentas:
Cuando ocurren eventos en una cuenta hija, recibirás webhooks con los parámetros adicionales:
connected: trueindica que el evento fue generado por una cuenta conectadaaccount_id: "ac_123456"es el ID de la cuenta que generó el evento
Con estos campos puedes identificar y procesar eventos de cuentas conectadas por separado.

