Certificates overview
Each obra can have multiple certificates. Certificates are managed from the obra detail view and also via the dedicated Certificados global view that aggregates certificates across all obras for your tenant.Per-obra certificates
View and manage certificates for a single obra from the Certificados tab at
/excel/[obraId]?tab=certificates.Global certificates view
See all certificates across every obra from the Gestión de certificados screen at
/certificados, with tabs, search, and pagination.Billing tracking
Record invoice number, invoice date, and concept for each certificate once it has been billed (
facturado).Payment tracking
Mark certificates as collected (
cobrado), record the payment date, and add observations. Track due dates and alert on overdue payments.Certificate schema
Certificates are stored in thepublic.certificates table, which inherits tenant scoping through the parent obra.
Core fields
| Column | Type | Description |
|---|---|---|
id | uuid | Primary key, auto-generated. |
obra_id | uuid | The obra this certificate belongs to. |
n_exp | text | Expediente (file/docket) number. |
n_certificado | integer | Certificate sequence number within the obra. |
monto | numeric | Certified amount (ARS). |
mes | text | Certification period (month). |
estado | text | Certificate status. Default: CERTIFICADO. |
created_at | timestamptz | Record creation timestamp. |
updated_at | timestamptz | Last update timestamp (auto-updated by trigger). |
Billing and payment fields
These fields were added in migration0017 to support the full invoicing lifecycle:
| Column | Type | Description |
|---|---|---|
facturado | boolean | Whether the certificate has been invoiced. Default: false. |
fecha_facturacion | date | Invoice date. |
nro_factura | text | Invoice number. |
concepto | text | Description / concept on the invoice. |
cobrado | boolean | Whether payment has been received. Default: false. |
vencimiento | date | Payment due date. |
fecha_pago | date | Actual payment date. |
observaciones | text | Free-text notes about the certificate. |
Creating a certificate
Go to the Certificados tab
In the obra detail view, click the Certificados tab. Existing certificates are shown in the table.
Add a new certificate
Click the + Agregar certificado button. A form appears with the following required fields:
- N° de expediente (
n_exp) - N° de certificado (
n_certificado) - Monto (
monto) - Mes (
mes) - Estado (
estado) — defaults toCERTIFICADO
Managing billing and payment
Once a certificate exists, you can update its billing and payment status inline:- Mark as billed
- Mark as paid
- Set due date
- Click the certificate row to enter edit mode.
- Toggle Facturado to
Sí. - Fill in Fecha de facturación, N° de factura, and Concepto.
- Save the row.
Global certificates view
The Gestión de certificados page (/certificados) shows all certificates across your tenant’s obras in a single paginated table powered by FormTable. Features include:
- Tab filters to segment by status (e.g., pending billing, unpaid, overdue)
- Toolbar with search and column controls
- Pagination for large datasets
Row-level security
Certificates inherit access control from their parent obra. A user can only read or write certificates for obras in their tenant:Performance indexes
The following indexes are maintained to keep certificate queries fast even with large datasets:| Index | Column(s) | Purpose |
|---|---|---|
certificates_obra_id_idx | obra_id | Fast lookup of certificates per obra |
certificates_facturado_idx | facturado | Filter unbilled certificates |
certificates_cobrado_idx | cobrado | Filter unpaid certificates |
certificates_vencimiento_idx | vencimiento | Find overdue certificates by due date |
