DUFATTUR
Connect your Supabase project to get started.

Setup — 3 steps

1
Create a free project
supabase.com →
2
Copy your Project URL & anon key
Settings → API → Project URL and anon public key
3
Run this SQL in the SQL Editor
create table if not exists public.invoices (
  id               text          primary key,
  public_token     uuid          not null default gen_random_uuid(),
  user_id          uuid          not null references auth.users(id) on delete cascade,
  client           text          not null,
  client_email     text,
  issue_date       date,
  due_date         date,
  notes            text,
  items            jsonb         not null default '[]',
  total            numeric(12,2) not null default 0,
  subtotal         numeric(12,2) default 0,
  vat_amount       numeric(12,2) default 0,
  vat_rate         numeric(5,2)  default 0,
  ritenuta_amount  numeric(12,2) default 0,
  tax_name         text,
  status           text          not null default 'pending' check (status in ('pending','approved','paid')),
  created_at       timestamptz   not null default now()
);

create table if not exists public.settings (
  user_id          uuid          primary key references auth.users(id) on delete cascade,
  name             text,
  email            text,
  vat              text,
  vat2             text,
  address          text,
  iban             text,
  country          text          default 'IT',
  default_rate     numeric(10,2) default 50,
  tax_rate         numeric(5,2)  default 15,
  vat_on_invoice   numeric(5,2)  default 22,
  vat_enabled      boolean       default true,
  ritenuta         boolean       default false,
  kleinunternehmer boolean       default false,
  autoentrepreneur boolean       default false,
  currency         text          default 'EUR',
  terms            text,
  due_days         integer       default 30,
  lang             text          default 'it',
  updated_at       timestamptz   default now()
);

alter table public.invoices enable row level security;
alter table public.settings  enable row level security;

create policy "owner_invoices" on public.invoices for all to authenticated
  using (auth.uid() = user_id) with check (auth.uid() = user_id);

create policy "anon_read" on public.invoices for select to anon using (true);

create policy "anon_approve" on public.invoices for update to anon
  using (status = 'pending') with check (status = 'approved');

create policy "owner_settings" on public.settings for all to authenticated
  using (auth.uid() = user_id) with check (auth.uid() = user_id);
DUFATTUR
Sign in with your email — no password needed.
Loading...

Dashboard Operativa

Monitora ore, incassi e stato dei proforma.

Totale Proforma
0
In Attesa
0
Da Incassare
€ 0
Fondo Tasse
€ 0
Sessione di Lavoro
00:00:00
€ 0.00
@ €50/h
Tariffa (€/h)
Incassato (Pagato)
€ 0.00
Anno corrente
Scaduti
0
proforma in ritardo

Storico Proforma

Nuovo Proforma

Compila i dettagli e invia al cliente.

Informazioni Cliente

Voci di Lavoro

Descrizione Ore €/h
Subtotale € 0.00
IVA 22% € 0.00
Totale € 0.00
Proforma
INV-2024-001
Da
Freelancer
A
Client
Totale da Saldare € 0.00

Analisi Finanziaria

Panoramica entrate e andamento mensile.

Totale Incassato
€ 0
Da Incassare
€ 0
Fattura Media
€ 0

Entrate Mensili (ultimi 12 mesi)

Top Clienti

Impostazioni

Profilo freelance e preferenze dell'app.

Profilo Freelance

Preferenze Finanziarie

Applica IVA in fattura
IVA 22%

Termini di Pagamento Default

Lingua / Language

Zona Pericolosa

Elimina tutti i proforma dal database. Azione irreversibile.