Skip to main content
In Argentine construction practice, a certificado (payment certificate) is the formal document that records what work has been measured, valued, and approved for payment in a given period. Sintesis stores certificates against each obra and tracks their full billing and payment lifecycle.

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 the public.certificates table, which inherits tenant scoping through the parent obra.

Core fields

ColumnTypeDescription
iduuidPrimary key, auto-generated.
obra_iduuidThe obra this certificate belongs to.
n_exptextExpediente (file/docket) number.
n_certificadointegerCertificate sequence number within the obra.
montonumericCertified amount (ARS).
mestextCertification period (month).
estadotextCertificate status. Default: CERTIFICADO.
created_attimestamptzRecord creation timestamp.
updated_attimestamptzLast update timestamp (auto-updated by trigger).

Billing and payment fields

These fields were added in migration 0017 to support the full invoicing lifecycle:
ColumnTypeDescription
facturadobooleanWhether the certificate has been invoiced. Default: false.
fecha_facturaciondateInvoice date.
nro_facturatextInvoice number.
conceptotextDescription / concept on the invoice.
cobradobooleanWhether payment has been received. Default: false.
vencimientodatePayment due date.
fecha_pagodateActual payment date.
observacionestextFree-text notes about the certificate.

Creating a certificate

1

Open the obra

Navigate to Panel de obras and click the obra you want to add a certificate to.
2

Go to the Certificados tab

In the obra detail view, click the Certificados tab. Existing certificates are shown in the table.
3

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 to CERTIFICADO
4

Save

Submit the form. The certificate is created immediately and added to the table.

Managing billing and payment

Once a certificate exists, you can update its billing and payment status inline:
  1. Click the certificate row to enter edit mode.
  2. Toggle Facturado to .
  3. Fill in Fecha de facturación, N° de factura, and Concepto.
  4. 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:
CREATE POLICY "Users can view certificates from their tenant's obras"
  ON public.certificates FOR SELECT
  USING (
    obra_id IN (
      SELECT id FROM public.obras
      WHERE tenant_id IN (
        SELECT tenant_id FROM public.memberships
        WHERE user_id = auth.uid()
      )
    )
  );

Performance indexes

The following indexes are maintained to keep certificate queries fast even with large datasets:
IndexColumn(s)Purpose
certificates_obra_id_idxobra_idFast lookup of certificates per obra
certificates_facturado_idxfacturadoFilter unbilled certificates
certificates_cobrado_idxcobradoFilter unpaid certificates
certificates_vencimiento_idxvencimientoFind overdue certificates by due date
The reporting engine uses vencimiento and cobrado to generate Unpaid Certificates findings. Make sure to set vencimiento when creating certificates so the rule can fire correctly.

Build docs developers (and LLMs) love