Skip to content
Help center

e-conomic Invoices

Booked sales invoices with customer, amounts in invoice currency, open remainder and payment status.

What it answers

  • Which invoices are open or overdue?
  • How much was invoiced to a customer?

The view is named after the company, such as "Acme ApS Invoices", and reads the company's e-conomic data.

How to add it

Gatlas adds it for a company when the company connects e-conomic, and it fills in after the first sync. For a company that connected earlier, ask an AI assistant on a Read/write MCP connection:

Add the e-conomic Invoices view for Acme ApS.

The assistant creates it with the template id economic/invoices, after checking that the company's data has every column the template reads.

Columns

  • invoice_number: Booked invoice number.
  • date: Invoice date.
  • due_date: Due date.
  • customer_number: e-conomic customer number.
  • customer_name: Customer name from the customer master.
  • recipient_name: Name on the invoice.
  • recipient_country: Country on the invoice.
  • currency: Invoice currency.
  • net_amount: Net amount, invoice currency.
  • vat_amount: VAT, invoice currency.
  • gross_amount: Gross amount, invoice currency.
  • remainder: Open amount, invoice currency.
  • remainder_base: Open amount in base currency.
  • payment_status: paid, open or partial.
  • days_overdue: Days past due on an unpaid invoice; null otherwise.
  • connection_label: The e-conomic agreement the row comes from.
  • data_as_of: When this row was last synced.

What the AI assistant is told

The company's booked sales invoices from e-conomic, one row per invoice.

net_amount, vat_amount, gross_amount and remainder are in the invoice's own currency; remainder_base is the open amount in base currency, the one to sum for receivables across currencies.

payment_status is paid, open or partial from the remainder. days_overdue is set only on an unpaid invoice past its due date, as of the day the view was built.

Draft invoices are not here; the ledger postings of a booked invoice are in the Ledger view (entry_type customerInvoice).

The SQL

__SCHEMA__ stands for the company's schema. To adapt the view, copy the SQL, put the schema in its place and change what your company needs.

SELECT
  ib."bookedInvoiceNumber" AS invoice_number,
  ib."date"::date AS date,
  ib."dueDate"::date AS due_date,
  (NULLIF(ib."customer"::text, '')::jsonb ->> 'customerNumber')::bigint AS customer_number,
  c."name" AS customer_name,
  NULLIF(ib."recipient"::text, '')::jsonb ->> 'name' AS recipient_name,
  NULLIF(ib."recipient"::text, '')::jsonb ->> 'country' AS recipient_country,
  ib."currency" AS currency,
  ib."netAmount" AS net_amount,
  ib."vatAmount" AS vat_amount,
  ib."grossAmount" AS gross_amount,
  ib."remainder" AS remainder,
  ib."remainderInBaseCurrency" AS remainder_base,
  CASE
    WHEN ABS(COALESCE(ib."remainder", 0)) < 0.01 THEN 'paid'
    WHEN ABS(ib."remainder" - ib."grossAmount") < 0.01 THEN 'open'
    ELSE 'partial'
  END AS payment_status,
  CASE
    WHEN ABS(COALESCE(ib."remainder", 0)) < 0.01 OR ib."dueDate" IS NULL THEN NULL::int
    WHEN ib."dueDate"::date < CURRENT_DATE THEN (CURRENT_DATE - ib."dueDate"::date)::int
  END AS days_overdue,
  ib."_gatlas_connection_label" AS connection_label,
  ib."_gatlas_synced_at" AS data_as_of
FROM __SCHEMA__.economic_invoices_booked ib
LEFT JOIN __SCHEMA__.economic_customers c
  ON c."customerNumber" = (NULLIF(ib."customer"::text, '')::jsonb ->> 'customerNumber')::bigint
 AND COALESCE(c."_gatlas_connection_label", '') = COALESCE(ib."_gatlas_connection_label", '')
ORDER BY ib."date" DESC, ib."bookedInvoiceNumber" DESC