Documéntalo
Planifícalo

Pagos a Proveedores

Liquidación y pagos a proveedores en Coordinalo

Pagos a Proveedores

Coordinalo gestiona la liquidación de pagos a proveedores (profesionales) basándose en las sesiones completadas y el modelo de revenue share configurado.

Modelo de datos

interface Pago {
  id: string;
  providerId: string;
  amount: number;
  sessionIds: string[];
  paymentMethod: 'transferencia' | 'efectivo';
  reference: string;
  status: 'pending' | 'paid';
  paidAt?: string;
  createdAt: string;
}

interface Settlement {
  providerId: string;
  pendingAmount: number;
  sessionsCount: number;
  oldestSession: string;
  sessions: SettlementSession[];
}

interface SettlementSession {
  id: string;
  date: string;
  clientName: string;
  serviceName: string;
  servicePrice: number;
  providerAmount: number;
}

Obtener liquidación pendiente

Consulta el monto pendiente de pago para un proveedor.

GET /api/v1/providers/:providerId/settlement

Parámetros de query

ParámetroTipoDescripción
fromstringFecha inicio (ISO 8601)
tostringFecha fin (ISO 8601)

Ejemplo de respuesta

{
  "providerId": "prov_456def",
  "provider": {
    "id": "prov_456def",
    "name": "María González",
    "email": "[email protected]",
    "bankInfo": {
      "bank": "Banco Estado",
      "accountType": "Cuenta Vista",
      "accountNumber": "****5678",
      "rut": "12.345.678-9"
    }
  },
  "pendingAmount": 350000,
  "sessionsCount": 10,
  "oldestSession": "2026-01-10",
  "commissionRate": {
    "type": "percentage",
    "value": 70
  },
  "sessions": [
    {
      "id": "sess_001",
      "date": "2026-01-10T10:00:00Z",
      "clientName": "Juan Pérez",
      "serviceName": "Sesión de kinesiología",
      "servicePrice": 50000,
      "providerAmount": 35000
    },
    {
      "id": "sess_002",
      "date": "2026-01-11T15:00:00Z",
      "clientName": "Ana López",
      "serviceName": "Sesión de kinesiología",
      "servicePrice": 50000,
      "providerAmount": 35000
    }
  ]
}

Marcar como pagado

Registra el pago de la liquidación a un proveedor.

POST /api/v1/providers/:providerId/settlement/mark-paid

Body

{
  "sessionIds": ["sess_001", "sess_002", "sess_003"],
  "paymentMethod": "transferencia",
  "reference": "TEF #12345 - 20/01/2026",
  "paidAt": "2026-01-20T10:00:00Z"
}

Respuesta exitosa (201)

{
  "id": "pay_abc123",
  "providerId": "prov_456def",
  "amount": 105000,
  "sessionsCount": 3,
  "paymentMethod": "transferencia",
  "reference": "TEF #12345 - 20/01/2026",
  "status": "paid",
  "paidAt": "2026-01-20T10:00:00Z",
  "createdAt": "2026-01-20T10:05:00Z"
}

Al marcar sesiones como pagadas, estas ya no aparecerán en futuras consultas de liquidación pendiente.

Listar pagos realizados

GET /api/v1/payments

Parámetros de query

ParámetroTipoDescripción
fromstringFecha inicio (ISO 8601)
tostringFecha fin (ISO 8601)
providerIdstringFiltrar por proveedor
paymentMethodstringMétodo: transferencia, efectivo
pagenumberPágina (default: 1)
limitnumberResultados por página (default: 20)

Ejemplo de respuesta

{
  "data": [
    {
      "id": "pay_abc123",
      "providerId": "prov_456def",
      "provider": {
        "id": "prov_456def",
        "name": "María González"
      },
      "amount": 350000,
      "sessionsCount": 10,
      "paymentMethod": "transferencia",
      "reference": "TEF #12345 - 20/01/2026",
      "status": "paid",
      "paidAt": "2026-01-20T10:00:00Z"
    },
    {
      "id": "pay_def456",
      "providerId": "prov_789abc",
      "provider": {
        "id": "prov_789abc",
        "name": "Carlos Ruiz"
      },
      "amount": 280000,
      "sessionsCount": 8,
      "paymentMethod": "efectivo",
      "reference": "Pago en oficina",
      "status": "paid",
      "paidAt": "2026-01-19T16:00:00Z"
    }
  ],
  "pagination": {
    "total": 45,
    "page": 1,
    "limit": 20,
    "totalPages": 3
  },
  "summary": {
    "totalPaid": 2500000,
    "paymentsCount": 45
  }
}

Obtener detalle de pago

GET /api/v1/payments/:id

Respuesta

{
  "id": "pay_abc123",
  "providerId": "prov_456def",
  "provider": {
    "id": "prov_456def",
    "name": "María González",
    "email": "[email protected]"
  },
  "amount": 350000,
  "paymentMethod": "transferencia",
  "reference": "TEF #12345 - 20/01/2026",
  "status": "paid",
  "paidAt": "2026-01-20T10:00:00Z",
  "createdAt": "2026-01-20T10:05:00Z",
  "sessions": [
    {
      "id": "sess_001",
      "date": "2026-01-10T10:00:00Z",
      "clientName": "Juan Pérez",
      "serviceName": "Sesión de kinesiología",
      "servicePrice": 50000,
      "providerAmount": 35000
    },
    {
      "id": "sess_002",
      "date": "2026-01-11T15:00:00Z",
      "clientName": "Ana López",
      "serviceName": "Sesión de kinesiología",
      "servicePrice": 50000,
      "providerAmount": 35000
    }
  ]
}

Resumen de pagos por proveedor

GET /api/v1/providers/:providerId/payments/summary

Parámetros de query

ParámetroTipoDescripción
fromstringFecha inicio (ISO 8601)
tostringFecha fin (ISO 8601)

Respuesta

{
  "providerId": "prov_456def",
  "providerName": "María González",
  "period": {
    "from": "2026-01-01",
    "to": "2026-01-31"
  },
  "summary": {
    "totalEarnings": 1470000,
    "totalPaid": 1120000,
    "pendingAmount": 350000,
    "sessionsCompleted": 42,
    "sessionsPaid": 32,
    "sessionsPending": 10
  },
  "payments": [
    {
      "id": "pay_001",
      "amount": 560000,
      "paidAt": "2026-01-15T10:00:00Z"
    },
    {
      "id": "pay_002",
      "amount": 560000,
      "paidAt": "2026-01-08T10:00:00Z"
    }
  ]
}

Exportar liquidación

Genera un documento de liquidación para el proveedor.

POST /api/v1/providers/:providerId/settlement/export

Body

{
  "format": "pdf",
  "from": "2026-01-01",
  "to": "2026-01-31",
  "includeDetails": true
}

Respuesta

{
  "downloadUrl": "https://exports.coordinalo.com/settlements/prov_456def_202601.pdf",
  "expiresAt": "2026-01-21T10:00:00Z"
}

Formatos disponibles

FormatoDescripción
pdfDocumento PDF con detalle de sesiones
excelPlanilla Excel para contabilidad
csvArchivo CSV para importar a otros sistemas

Configuración de datos bancarios

Actualizar información bancaria del proveedor

PUT /api/v1/providers/:providerId/bank-info

Body

{
  "bank": "Banco Estado",
  "accountType": "Cuenta Vista",
  "accountNumber": "12345678",
  "rut": "12.345.678-9",
  "holderName": "María González"
}

Los datos bancarios son sensibles. Solo administradores pueden ver y modificar esta información.

Webhooks

EventoDescripción
payment.createdNuevo pago registrado
payment.completedPago marcado como realizado
settlement.thresholdLiquidación pendiente supera umbral configurado

Ejemplo de webhook

{
  "event": "payment.completed",
  "data": {
    "paymentId": "pay_abc123",
    "providerId": "prov_456def",
    "providerName": "María González",
    "amount": 350000,
    "sessionsCount": 10,
    "paidAt": "2026-01-20T10:00:00Z"
  },
  "timestamp": "2026-01-20T10:05:01Z"
}

Alerta de liquidación pendiente

Configura alertas cuando la liquidación pendiente supera un umbral.

PUT /api/v1/organization/settings/settlement-alerts
{
  "enabled": true,
  "thresholdAmount": 500000,
  "notifyEmails": ["[email protected]", "[email protected]"]
}

On this page