Commissions
| Campo | Valor |
|---|---|
| Handler | admin/handlers/commissions.go |
| Ruta base | /admin/commissions |
| Modelo | commissions, payouts |
| Estado | Implementado |
Descripción
El módulo de comisiones gestiona el cálculo, registro y pago de comisiones sobre transacciones. Soporta múltiples planes de comisión, cálculo automático por porcentaje, y gestión de payouts a vendedores/marketplace partners.
Endpoints
Comisiones
| Método | Ruta | Acción |
|---|---|---|
| GET | /admin/commissions | Listar comisiones cobradas |
| GET | /admin/commissions?tab=payouts | Listar payouts |
| GET | /admin/commissions/summary | Resumen total |
| GET | /admin/commissions/export | Exportar CSV |
Payouts
| Método | Ruta | Acción |
|---|---|---|
| POST | /admin/commissions/payouts | Crear payout |
| GET | /admin/commissions/payouts/:id | Detalle de payout |
| POST | /admin/commissions/payouts/:id/approve | Aprobar payout |
| POST | /admin/commissions/payouts/:id/reject | Rechazar payout |
Campos
Commission
| Campo | Tipo | Descripción |
|---|---|---|
id | UUID | Identificador único |
tenant_id | UUID | Tenant propietario |
payment_id | UUID | Pago asociado |
plan | string | Plan de comisión |
amount | int64 | Monto de la venta (céntimos) |
commission_amount | int64 | Monto de comisión (céntimos) |
commission_pct | float64 | Porcentaje aplicado |
created_at | timestamp | Fecha de cálculo |
Payout
| Campo | Tipo | Descripción |
|---|---|---|
id | UUID | Identificador único |
tenant_id | UUID | Tenant propietario |
recipient_id | UUID | Destinatario |
amount | int64 | Monto total (céntimos) |
status | enum | pending, approved, rejected, paid |
period_start | date | Inicio del período |
period_end | date | Fin del período |
approved_at | timestamp | Fecha de aprobación |
paid_at | timestamp | Fecha de pago |
Cálculo de Comisiones
commission_amount = (payment_amount * commission_pct) / 100
- El porcentaje se almacena como decimal (ej: 0.05 = 5%)
- Los montos se muestran formateados:
$125.00(dividido por 100) - El resumen total usa
SumByTenant()para el acumulado
Notas
- Las comisiones se calculan automáticamente al procesar un pago
- El export CSV incluye todas las comisiones del tenant
- Los payouts requieren aprobación manual antes del pago
- El tab
payoutsmuestra el historial de pagos realizados