El historial completo de todos los eventos de pago asociados a una factura. Rastrear las cantidades de pago y los plazos de pago con un nivel de detalle granular
Características clave:
Todos los pagos registrados
Información de la moneda
Referencia detallada de columnas
Identificadores principales
Column | Type | Description | Examples | Business Logic |
provet_id | STRING | Tu identificador único de la consulta | "pcus_1" | Clave de aislamiento del inquilino: filtra siempre por esto para mejorar el rendimiento |
payment_id | BIGINT | Identificador único de la transacción de pago | 78901, 234567 | Generado por el sistema e inmutable una vez creado. Clave primaria con provet_id |
invoice_id | BIGINT | Identificador de la factura relacionada | 12345, 67890 | Enlaces a la factura que se paga. Varios pagos pueden referenciar la misma factura |
invoice_number | STRING | Número de factura del negocio | "1001-2024-00123", "DEPT2-240915-456" | Referencia de factura legible por humanos para la conciliación |
Información financiera
Column | Type | Description | Examples | Business Logic |
paid_amount | DECIMAL | Cantidad del pago recibido | 125.50, -45.00, 25.00 | Positiva para pagos, negativa para reembolsos. Puede ser un pago parcial |
currency_code | STRING | Código de moneda ISO 4217 | "EUR", "USD", "GBP", "CAD" | Hereda de la ubicación del departamento de la factura |
currency_name | STRING | Nombre completo de la moneda | "Euro", "US Dollar", "British Pound Sterling" | Descripción legible de la moneda |
payment_info | STRING | Notas/referencia del pago | "Check #1234", "Card ending 5678", "Insurance claim ABC123" | Campo de texto libre para detalles, referencias o notas del pago |
Lógica de cancelación de pagos
Column | Type | Description | Examples | Business Logic |
cancels_payment_id | BIGINT | ID del pago cancelado (si es una anulación) | 78900, NULL | Lógica: Cuando un pago se anula, se crea un nuevo registro de pago con una cantidad negativa y este campo apunta al payment_id original. NULL para pagos normales |
Detalles del método de pago
Column | Type | Description | Examples | Business Logic |
payment_method_type | STRING | Categoría de pago estandarizada | "Card", "Cash or Check", "Digital Wallet", "Financing" | Lógica de categorización automática: igual que la tabla de facturas: bandera → "Card", palabras clave → categories |
payment_method_name | STRING | Nombre del método de pago original | "Visa Credit Card", "Cash", "CareCredit" | Nombre sin tratar del sistema de gestión de consultas |
payment_method_name_standardized | STRING | Nombre del método de pago estandarizado | "Visa", "Cash", "CareCredit" | Lógica de estandarización: coincidencia de patrones (p. ej., '%visa%' → 'Visa', '%mastercard%' → 'Mastercard') |
Seguimiento y instantáneas
Column | Type | Description | Examples | Business Logic |
snapshot_date | DATE | Fecha de la instantánea de datos | 2024-09-15, 2024-08-22 | Muestra cuándo se capturaron los datos del pago |
Marcas de tiempo UTC (horas del sistema)
Column | Type | Description | Examples | Business Logic |
created_ts_utc | TIMESTAMP | Marca de tiempo de entrada del sistema (UTC) | 2024-09-18 09:15:30.456 | Cuándo se introdujo el pago en el sistema; p. ej., el lunes cuando el personal procesa el pago del viernes |
date_added_ts_utc | TIMESTAMP | Fecha de la transacción (UTC) | 2024-09-15 16:30:00.000 | Cuándo ocurrió realmente el pago; p. ej., el viernes cuando el cliente pagó |
Marcas de tiempo locales (zona horaria del departamento)
Column | Type | Description | Examples | Business Logic |
created_ts_local | TIMESTAMP | Marca de tiempo de entrada del sistema (local) | 2024-09-18 05:15:30.456 | |
date_added_ts_local | TIMESTAMP | Marca de tiempo de la transacción (local) | 2024-09-15 12:30:00.000 |
Patrones comunes de consulta
Análisis de la recaudación de pagos
-- Recaudación diaria de pagos con seguimiento de cancelacionesSELECT snapshot_date, COUNT(DISTINCT payment_id) as total_payments, COUNT(DISTINCT CASE WHEN cancels_payment_id IS NOT NULL THEN payment_id END) as cancellations, SUM(CASE WHEN cancels_payment_id IS NULL THEN paid_amount ELSE 0 END) as net_collections, currency_codeFROM production.invoices_payments WHERE provet_id = 'your_practice_id' AND snapshot_date >= DATE_SUB(CURRENT_DATE(), 30)GROUP BY 1, 5ORDER BY 1 DESC;
Rendimiento de métodos de pago
-- Análisis del método de pago con tasas de anulaciónSELECT payment_method_type, payment_method_name_standardized, COUNT(DISTINCT payment_id) as total_transactions, SUM(paid_amount) as gross_amount, SUM(CASE WHEN cancels_payment_id IS NULL THEN paid_amount ELSE 0 END) as net_amount, COUNT(DISTINCT CASE WHEN cancels_payment_id IS NOT NULL THEN payment_id END) as reversals, ROUND(COUNT(DISTINCT CASE WHEN cancels_payment_id IS NOT NULL THEN payment_id END) * 100.0 / COUNT(DISTINCT payment_id), 2) as reversal_rate_pctFROM production.invoices_paymentsWHERE provet_id = 'your_practice_id' AND snapshot_date >= DATE_SUB(CURRENT_DATE(), 90)GROUP BY 1, 2ORDER BY net_amount DESC;
