La facturación basada en asientos te permite cobrar a los clientes según la cantidad de usuarios, miembros del equipo o licencias que necesiten. Es el modelo de precios estándar para herramientas de colaboración en equipo, software empresarial y productos SaaS B2B.
Implementation Tutorial
Guía paso a paso con ejemplos de código.
Add-ons Documentation
Conoce el sistema de complementos que impulsa la facturación basada en asientos.
Subscription Management
Gestiona suscripciones basadas en asientos y cambios de plan.
Webhooks
Rastrea los cambios de asientos con webhooks de suscripción.
¿Qué es la Facturación por Asiento?
La facturación por asiento (también llamada precios por usuario o por asiento) cobra a los clientes en función del número de usuarios que acceden a tu producto. En lugar de una tarifa fija, el precio se ajusta según el tamaño del equipo.Casos de Uso Comunes
| Industria | Ejemplo | Modelo de Precios |
|---|---|---|
| Colaboración en Equipo | Slack, Notion, Asana | Por usuario activo/mes |
| Herramientas para Desarrolladores | GitHub, GitLab, Jira | Por asiento/mes |
| Software CRM | Salesforce, HubSpot | Por licencia de usuario |
| Herramientas de Diseño | Figma, Canva | Por asiento de editor |
| Software de Seguridad | 1Password, Okta | Por usuario/mes |
| Videoconferencias | Zoom, Teams | Por licencia de anfitrión |
Beneficios de la Facturación por Asiento
Para Tu Negocio:- Los ingresos escalan naturalmente a medida que los clientes crecen
- Precios predecibles que los clientes pueden presupuestar
- Ruta de actualización clara de individual a equipo a empresarial
- Mayor valor de vida útil a medida que los equipos se expanden
- Pagar solo por lo que utilizan
- Fácil de entender y prever costos
- Flexibilidad para agregar/quitar usuarios según sea necesario
- Precios justos que coinciden con el tamaño del equipo
Cómo Funciona la Facturación por Asiento en Dodo Payments
Dodo Payments implementa la facturación por asiento utilizando el sistema de Complementos. Así es como funciona:Resumen de Arquitectura
Una suscripción Team Pro cuesta 15/mes adicionales por cada asiento extra. Por ejemplo, si tu equipo necesita 15 asientos:- Plan base: $99/mes (incluye 5 asientos)
- Complementos: 10 asientos adicionales × 150/mes
- Costo mensual total: 150 = $249 por 15 asientos
Componentes Clave
| Componente | Propósito | Ejemplo |
|---|---|---|
| Producto Base | Suscripción principal con asientos incluidos | ”Plan de Equipo - $99/mes (5 asientos incluidos)“ |
| Complemento de Asiento | Cargo por asiento para usuarios adicionales | ”Asiento Extra - $15/mes cada uno” |
| Cantidad | Número de asientos adicionales comprados | 10 asientos extra |
Estrategias de Precios
Elige la estrategia de precios por asiento que se ajuste a tu negocio:Estrategia 1: Base + Complemento por Asiento
Incluye un número fijo de asientos en el plan base, cobra por asientos adicionales. Ejemplo:Estrategia 2: Precios Puro por Asiento
Cobra una tarifa fija por asiento sin tarifa base. Ejemplo:Estrategia 3: Precios por Asiento por Niveles
Diferentes planes base con diferentes tarifas por asiento. Ejemplo:Estrategia 4: Paquetes de Asientos
Vende asientos en paquetes en lugar de individualmente. Ejemplo:Configuración de la Facturación por Asiento
Paso 1: Planifica Tu Estructura de Precios
Antes de la implementación, define tu estructura de precios:Define Base Plan
Decide qué incluye la suscripción base:
- Precio base (puede ser $0 para un modelo puramente por asiento)
- Número de asientos incluidos
- Funcionalidades disponibles en este nivel
Set Seat Pricing
Determina el costo del complemento por asiento:
- Precio por cada asiento adicional
- Cualquier descuento por volumen (mediante múltiples complementos)
- Número máximo de asientos permitidos (si aplica)
Paso 2: Crea el Complemento por Asiento
En tu panel de Dodo Payments:- Navega a Productos → Complementos
- Haz clic en Crear Complemento
- Configura el complemento:
| Campo | Valor | Notas |
|---|---|---|
| Nombre | ”Asiento Adicional” o “Miembro del Equipo” | Nombre claro y fácil de entender |
| Descripción | ”Agrega otro miembro del equipo a tu espacio de trabajo” | Explica lo que obtienen los clientes |
| Precio | Tu precio por asiento | p. ej., $10.00 |
| Moneda | Coincide con tu producto base | Debe ser la misma moneda |
| Categoría de Impuestos | Igual que el producto base | Asegura un manejo de impuestos consistente |
Paso 3: Crea el Producto de Suscripción
Crea tu producto de suscripción:- Navega a Productos → Crear Producto
- Selecciona Suscripción
- Configura precios y detalles
- En la sección de Complementos, adjunta tu complemento por asiento
Paso 4: Adjunta el Complemento al Producto
Vincula el complemento por asiento a tu suscripción:- Edita tu producto de suscripción
- Desplázate a la sección de Complementos
- Haz clic en Agregar Complementos
- Selecciona tu complemento por asiento
- Guarda los cambios
Tu producto de suscripción ahora admite precios basados en asientos. Los clientes pueden adquirir cualquier cantidad de asientos adicionales durante el pago.
Gestión de Asientos
Agregando Asientos a Nuevas Suscripciones
Al crear una sesión de pago, especifica la cantidad de asientos:Cambiando la Cantidad de Asientos en Suscripciones Existentes
Utiliza la API de Cambio de Plan para ajustar los asientos:Eliminando Asientos
Para reducir la cantidad de asientos, especifica la cantidad menor:Eliminando Todos los Asientos Adicionales
Pasa un array de complementos vacío para eliminar todos los complementos:Prorrateo por Cambios de Asiento
Cuando los clientes agregan o eliminan asientos a mitad de ciclo, el prorrateo determina cómo se les factura.Modos de prorrateo
| Modo | Agregar asientos | Eliminar asientos |
|---|---|---|
prorated_immediately | Cobrar por los días restantes del ciclo | Acreditar los días no usados |
difference_immediately | Cobrar el precio completo del asiento | Crédito aplicado a renovaciones futuras |
full_immediately | Cobrar el precio completo del asiento y reiniciar el ciclo de facturación | Sin crédito |
Ejemplos de prorrateo
Escenario: quedan 15 días del ciclo de facturación, se agregan 5 asientos a $10/asiento- prorated_immediately
- difference_immediately
- full_immediately
Vista previa antes de cambiar
Siempre previsualiza el prorrateo antes de hacer cambios:Seguimiento de asientos con webhooks
Monitorea los cambios de asientos escuchando los webhooks de suscripción:Eventos relevantes
| Evento | Cuándo se activa | Caso de uso |
|---|---|---|
subscription.active | Nueva suscripción activada | Aprovisiona los asientos iniciales |
subscription.plan_changed | Asientos agregados/eliminados | Actualiza el conteo de asientos en tu app |
subscription.renewed | Suscripción renovada | Confirma que el conteo de asientos no cambió |
subscription.cancelled | Suscripción cancelada | Desaprovisiona todos los asientos |
Ejemplo de manejador de webhook
Haciendo cumplir los límites de asientos
Tu aplicación debe hacer cumplir los límites de asientos. Dodo Payments gestiona la facturación, pero tú controlas el acceso.Estrategias de cumplimiento
- Hard Limit
- Soft Limit with Warning
- Auto-Upgrade
Evita estrictamente agregar usuarios más allá del número de asientos.
Patrones avanzados
Diferentes tipos de asientos
Ofrece distintos tipos de asientos con precios diferentes:Descuentos por asientos anuales
Ofrece precios anuales con descuento por asiento:Requisitos mínimos de asientos
Requiere un número mínimo de asientos para ciertos planes:Mejores prácticas
Mejores prácticas de precios
- Comunicación clara: Muestra el precio por asiento de forma destacada en tu página de precios
- Asientos incluidos: Considera incluir algunos asientos en el precio base para reducir la fricción
- Descuentos por volumen: Ofrece tarifas por asiento más bajas para equipos grandes y ganar acuerdos empresariales
- Incentivos anuales: Descuenta los planes anuales para mejorar el flujo de caja y la retención
Mejores prácticas técnicas
- Almacena en caché los conteos de asientos: Guarda localmente los conteos de asientos de las suscripciones para evitar llamadas a la API en cada solicitud
- Sincroniza regularmente: Sincroniza periódicamente tu conteo local de asientos con Dodo Payments mediante la API
- Maneja los fallos: Si un cambio de asientos falla, muestra mensajes de error claros y opciones para reintentar
- Registro de auditoría: Registra todos los cambios de asientos para disputas de facturación y cumplimiento
Mejores prácticas de experiencia de usuario
- Retroalimentación en tiempo real: Muestra el impacto inmediato en el costo al ajustar asientos
- Pasos de confirmación: Requiere confirmación antes de los cambios de facturación
- Transparencia en el prorrateo: Explica claramente los cargos prorrateados antes de aplicarlos
- Reducciones sencillas: No dificultes reducir asientos (eso genera confianza)
Resolución de problemas
Seat count mismatch between app and billing
Seat count mismatch between app and billing
Síntoma: Tu app muestra un conteo de asientos diferente al de la suscripción.Causas:
- Webhook no recibido o procesado
- Condición de carrera durante el cambio de asientos
- Datos en caché no actualizados
- Implementa manejadores de webhook para
subscription.plan_changed - Agrega un botón “Sincronizar con facturación” que obtenga la suscripción actual
- Establece un TTL en la caché para garantizar actualizaciones regulares
Proration charges unexpected
Proration charges unexpected
Síntoma: El cliente está confundido por el monto cobrado a mitad de ciclo.Causas:
- El modo de prorrateo no se comunicó claramente
- El cliente no vio la vista previa antes de confirmar
- Siempre usa
previewChangePlanantes de hacer cambios - Muestra un desglose claro: “Agregar X asientos = $Y hoy (prorrateado por Z días)”
- Documenta tu política de prorrateo en el centro de ayuda
Add-on not appearing in checkout
Add-on not appearing in checkout
Síntoma: El complemento de asiento no está disponible durante el pago.Causas:
- Complemento no adjunto al producto
- Complemento archivado o eliminado
- Desajuste de moneda entre el producto y el complemento
- Verifica que el complemento esté adjunto en la configuración del producto
- Revisa el estado del complemento en el panel de complementos
- Asegura que las monedas coincidan exactamente
Cannot reduce seats below current usage
Cannot reduce seats below current usage
Síntoma: El cliente quiere reducir asientos pero tiene usuarios asignados.Soluciones:
- Muestra qué usuarios deben eliminarse antes de reducir asientos
- Implementa un flujo: eliminar usuarios → reducir asientos
- Considera un periodo de gracia antes de aplicar la reducción de asientos