Comisiones
alloop calcula lo que debes a cada colaborador por cada venta, lleva su cuenta con reembolsos incluidos y te prepara el lote de pago. El pago lo ordenas tú.
Cuando marcas los enlaces de tus colaboradores, alloop sabe quién trae cada venta. A partir de ahí puede calcular la comisión, llevar la cuenta de lo que le debes a cada uno y prepararte el lote de pago.
Dónde está el límite, dicho antes de que preguntes
alloop calcula y lleva la cuenta. El pago lo ordenas tú desde tu banco, Wise o PayPal con el lote que te preparamos, y nos dices que está hecho para que la contabilidad quede cerrada. Mover dinero de tu cuenta a la de un tercero tiene implicaciones legales y fiscales que se resuelven con un contrato, no con un botón.
Configurar a cada colaborador
En su ficha se define qué cobra. Cada uno puede tener lo suyo:
| Campo | Qué hace |
|---|---|
comision | Porcentaje sobre la venta (por ejemplo, 20) |
comision_fija | Importe fijo por venta, en la divisa del cobro |
recurrente | Si también cobra por las renovaciones. Por defecto, no |
cupones | Sus códigos de descuento, para atribuirle también quien no usa el enlace |
email | El suyo. Se usa para impedir que se compre a sí mismo |
{
"affiliates": [
{ "slug": "marta", "tipo": "influencer", "nombre": "Marta R.", "comision": 20,
"cupones": ["MARTA20"], "email": "marta@ejemplo.com" },
{ "slug": "escuela-x", "tipo": "partner", "comision": 15, "recurrente": true },
{ "slug": "carlos", "tipo": "afiliado", "comision_fija": 25 }
],
"affiliate_hold_days": 30
}Sin tarifa NO se inventa un importe
Si llega una venta de un colaborador que no tiene comisión configurada, alloop registra la venta —para que no se pierda— pero con comisión cero, y te avisa en el panel. Nunca aplica un porcentaje "razonable" por su cuenta: eso generaría una deuda real con una persona a partir de una suposición.
Dos protecciones que actúan solas:
- Una comisión fija nunca supera la venta. Si la tarifa son 25 € y alguien compra algo de 15 €, se pagan 15 €. Sin ese tope, cada venta pequeña de ese colaborador daría pérdida.
- Un porcentaje mayor que 100 se ignora. Teclear
2000en vez de20pasa, y aplicarlo pagaría veinte veces el importe de la venta.
Cupones: la venta que el enlace no ve
Mucha gente ve el código de descuento en un vídeo y lo teclea directamente en el checkout, sin pasar por el enlace del creador. Con solo el enlace, esa venta se registra como "directo" y quien la trajo no cobra por ella. Es el agujero más caro de un programa de afiliados.
La solución es mapear el cupón a su creador:
{
"slug": "marta",
"comision": 20,
"cupones": ["MARTA20"]
}El descuento vive en tu Stripe, aquí solo vive de quién es
Fíjate en que no se pone en ningún sitio cuánto descuenta MARTA20: eso es un cupón de tu
Stripe, con su propio porcentaje, y ahí se queda. Si el importe estuviera también aquí, tendrías
dos sitios donde cambiarlo y el día que edites uno solo, empezarían a discrepar.
Se reconoce el código lo escriba como lo escriba (MARTA20, marta20) y venga por donde venga:
tanto si lo teclea en el pago como si tú se lo aplicas desde Stripe.
Cuando el enlace dice una cosa y el cupón otra
Pasa: alguien entra por el enlace de Carlos y luego teclea el código de Marta. Gana el cupón, porque teclear un código es un acto deliberado, mientras que un enlace puede haberse reenviado por un grupo semanas antes.
Se puede invertir si prefieres que mande el enlace. Lo importante es decidirlo ahora, no cuando dos colaboradores estén discutiendo por la misma venta.
Un colaborador no puede comprarse a sí mismo
Si el email del comprador es el mismo que el del colaborador, la comisión no se genera. La venta sí queda registrada —el dinero es tuyo y es real—; lo que se bloquea es cobrarse una comisión por comprarse a uno mismo.
Funciona también con los alias de correo: marta+loquesea@gmail.com es el mismo buzón que
marta@gmail.com y se detecta igual.
Un enlace con un nombre inventado no paga a nadie
Cualquiera puede escribir ?via=loquesea en una URL. Solo se atribuyen ventas a colaboradores
registrados: un slug que no está en tu lista no genera comisión, aunque aparezca en el enlace.
El recorrido de una comisión
VENTA con ?via=marta
↓ se calcula y se registra
pendiente ← espera por si hay devolución (30 días por defecto)
↓
por pagar ← ya se puede liquidar
↓ ordenas el pago y lo confirmas
pagadaLa espera la fijas tú con affiliate_hold_days y debe cubrir tu ventana de devolución: pagar antes
de que expire significa pagar comisiones de ventas que todavía pueden reembolsarse, y reclamar ese
dinero a un colaborador es una conversación que nadie quiere tener.
Qué pasa con los reembolsos
La comisión original nunca se borra ni se edita. Cuando una venta se devuelve, se escribe un apunte negativo que la compensa:
venta marta +29,00 € pagada
refund marta −29,00 € revertida ← apunte NUEVO
────────
saldo: 0,00 €Así el saldo de cada colaborador es siempre la suma de sus apuntes, y una venta reembolsada sigue siendo distinguible de una venta que nunca ocurrió — que es exactamente lo que necesitas poder demostrar si alguien discute una liquidación.
Si el reembolso es parcial, se revierte solo la parte proporcional: devolver la comisión entera por un reembolso del 30 % castigaría al colaborador por algo que no hizo.
Si el reembolso llega después de haberle pagado, su saldo queda en negativo y se descuenta de su siguiente liquidación. El panel te avisa de quién está en esa situación.
Liquidar
Pide el lote cuando quieras pagar:
curl -u "$ALLOOP_USER:$ALLOOP_PASSWORD" \
"https://track.alloop.ch/api/v1/clients/tu-academia/affiliates/batch"{
"ok": true,
"lineas": [
{ "affiliate": "marta", "currency": "EUR", "importe": 340.00, "entry_ids": ["commission:ch_1", "commission:ch_2"] },
{ "affiliate": "escuela-x", "currency": "CHF", "importe": 85.50, "entry_ids": ["commission:ch_9"] }
],
"totales_por_divisa": { "EUR": 340.00, "CHF": 85.50 }
}Dos cosas que ya vienen resueltas: el saldo negativo está descontado (a quien deba dinero no se le propone un pago de más) y las divisas van separadas — nunca se suman euros con francos para dar un total cómodo pero falso.
Cuando hayas pagado, ciérralo:
curl -u "$ALLOOP_USER:$ALLOOP_PASSWORD" -X POST \
-H 'Content-Type: application/json' \
-d '{"batch_id":"agosto-2026","lineas":[…]}' \
"https://track.alloop.ch/api/v1/clients/tu-academia/affiliates/batch/paid"Lo confirmas tú, no el sistema: alloop no puede saber si tu transferencia salió de verdad, y dar por pagado algo que no lo está es peor que no registrarlo. Repetir la llamada no marca nada dos veces.
El portal de tu colaborador
Puedes darle a cada uno un enlace privado donde ve lo suyo: su tarifa, sus ventas, y cuánto tiene pendiente, por cobrar y ya cobrado.
curl -u "$ALLOOP_USER:$ALLOOP_PASSWORD" -X POST \
"https://track.alloop.ch/api/v1/clients/tu-academia/affiliates/marta/link"Devuelve un enlace que dura 180 días y que puedes mandarle por donde quieras. No necesita cuenta ni contraseña, y no da acceso a tu panel.
Tu colaborador nunca ve a tus alumnos
El portal muestra importes, fechas y estados. Nunca quién compró: ni nombres, ni correos, ni el identificador de la transacción. Un programa de afiliados con acceso a tu base de clientes sería una fuga de datos disfrazada de funcionalidad.
Auditar
Todos los apuntes, para cuadrar contra Stripe:
curl -u "$ALLOOP_USER:$ALLOOP_PASSWORD" \
"https://track.alloop.ch/api/v1/clients/tu-academia/affiliates/ledger?affiliate=marta"Cada apunte guarda la tarifa que se aplicó en ese momento, así que subirle la comisión a alguien no recalcula lo que ya se registró.
Errores comunes
| Síntoma | Causa probable | Arreglo |
|---|---|---|
| "Sin tarifa configurada" en el panel | Ese colaborador no tiene comisión puesta | Añádele comision o comision_fija |
| Una venta suya no generó comisión | Llegó sin ?via=, o el slug no está registrado | Marcar enlaces |
| Las renovaciones no le cuentan | recurrente no está activado | Es opt-in a propósito: actívalo en su ficha |
| Su saldo está en negativo | Hubo un reembolso después de pagarle | Se descuenta de su próxima liquidación |
| El lote sale vacío | Las comisiones siguen en espera | Aún no ha pasado affiliate_hold_days |
| Vendió con su código y no cobró | El cupón no está mapeado a su ficha | Añádele el código en cupones |
| Una compra suya no generó comisión | Compró con su propio email | Es a propósito: no puede autopagarse |
| Dos colaboradores reclaman la misma venta | Vino por el enlace de uno y el cupón de otro | Manda el cupón; dinos si lo prefieres al revés |
Siguiente paso
Si aún no repartes enlaces marcados, empieza por Afiliados e influencers — sin eso no hay nada que calcular.
¿Te atascas? Pregúntale a tu IA
Pregúntale a tu IA
Esta documentación está pensada para leerse con una IA al lado. Abre tu asistente con el contexto de alloop ya cargado y pregúntale lo que necesites, en tu idioma.
Para qué NO sirve: una IA no ve tu panel, tus pagos ni tus datos, y puede equivocarse. Si un ingreso no aparece, algo toca tu producción o necesitas una respuesta oficial, escríbenos: esto no sustituye al soporte.
Afiliados e influencers
Da a cada colaborador un enlace con ?via= y alloop recuerda quién trajo a esa persona, aunque compre semanas después y desde otro dispositivo.
Tu panel
Tu panel reúne en un sitio de dónde viene cada venta, cuánto entra de verdad y qué esconde un total mal leído. Aquí aprendes a leerlo sin ser técnico y a no engañarte con un número que suena bien.