Kommandoradsgränssnittet

Bokfris CLI gör det möjligt att läsa, rapportera och skapa bokföringsdata utan att öppna det grafiska gränssnittet. Det är avsett för reproducerbara arbetsflöden, skript och integrationer.

CLI och GUI använder samma data och samma sparade val. Företag och bokföringsår som väljs i det ena gränssnittet används nästa gång det andra startas eller körs. Ta en säkerhetskopia före riskfyllda ändringar och använd förhandsgranskning där den finns.

Översikt

Textutdata för listor och rapporter visas i innehållsanpassade, justerade kolumner. Använd --format json för stabil maskinläsbar utdata.

CLI:t kan bland annat:

  • välja företag och bokföringsår gemensamt med det grafiska gränssnittet,
  • lista konton, verifikationer, kunder, produkter, leverantörer och fakturor,
  • skapa kunder, produkter, fakturor, betalningar och manuella verifikationer från JSON,
  • förhandsgranska och bokföra journaler, kreditfakturor och momsavräkning,
  • skapa finansiella rapporter i text eller JSON,
  • skapa, verifiera och återställa fullständiga säkerhetskopior,
  • importera och exportera SIE-filer.

Den exakta syntaxen för den installerade versionen visas alltid med:

bokfri --help
bokfri invoice --help
bokfri invoice create --help

Starta CLI:t

Windows

MSI-installationen lägger kommandot bokfri i systemets PATH. Öppna ett nytt PowerShell- eller kommandotolksfönster efter installationen:

bokfri version
bokfri status

Utvecklingspaketet använder bokfri-dev, så release- och utvecklingsversionen kan finnas samtidigt.

macOS

CLI-launchern finns i app-paketet men installeras inte globalt av DMG-paketet:

/Applications/Bokfri.app/Contents/MacOS/Bokfri-cli version

För utvecklingspaketet ligger den normalt under /Applications/Bokfri Dev.app/Contents/MacOS/Bokfri-cli-dev.

Linux

AppImage-filen tar emot CLI-argument direkt. Gör filen körbar och använd dess sökväg:

chmod +x Bokfri-x86_64.AppImage
./Bokfri-x86_64.AppImage version

Från byggd JAR

Utvecklare kan använda allt-i-ett-JAR-filen. Filnamnet följer projektversionen:

java -jar target/bokfri-VERSION-jar-with-dependencies.jar version

I resten av guiden används bokfri som kortnamn för den startmetod som gäller på din plattform.

Välj datakatalog, företag och bokföringsår

De flesta kommandon behöver ett företag och ett bokföringsår. Börja med att visa Bokfris aktuella status och tillgängliga ID:n:

bokfri status
bokfri company list
bokfri --company-id 37 year list

CLI:t använder normalt samma sparade val som det grafiska gränssnittet. Ändra dem med:

bokfri company use 37
bokfri year list
bokfri year use 12
bokfri status

När ett företag väljs återställs det senast använda bokföringsåret för just det företaget, om ett sådant finns. Ett redan öppet grafiskt gränssnitt byter inte direkt; det läser det nya valet vid nästa start.

I skript kan valen anges tillfälligt för en enda körning. De sparade GUI/CLI-valen ändras då inte:

bokfri --company-id 37 --year-id 12 trial-balance
bokfri --data-dir "/sökväg/till/testdata" --company-id 37 --year-id 12 voucher list

Kontrollera och migrera databasformat

Databasmigrering är en separat administrationsåtgärd, inte ett val på vanliga kommandon:

bokfri database status
bokfri database migrate

database status visar upptäckt och stött dataformat. database migrate skapar och verifierar först en fullständig backup, migrerar därefter databasen och skriver ut backupens sökväg. Om databasen redan har aktuellt format görs ingen ändring. Använd --data-dir för att kontrollera eller migrera en alternativ datakatalog.

Skapa ett nytt företag och år

Ett tomt dataområde kan byggas upp från JSON:

bokfri account-plan list
bokfri company create --file company.json
bokfri --company-id 37 year create --file year.json
{
  "name": "Exempel AB"
}
{
  "from": "2026-01-01",
  "to": "2026-12-31",
  "accountPlanId": 7
}

Använd sedan company use och year use med de ID:n som kommandona returnerar.

Globala val

ValBetydelse
--data-dir KATALOGAnvänd en annan Bokfri-datakatalog för denna körning.
--company-id IDÅsidosätt sparat företag för denna körning.
--year-id IDÅsidosätt sparat bokföringsår för denna körning.
--format text|jsonVälj läsbar text eller maskinläsbar JSON.

Globala val fungerar både före och efter underkommandot:

bokfri --format json company list
bokfri company list --format=json
bokfri vat report --company-id=37 --year-id=12

Säkra förhandsgranskningar

Bokfri använder tre återkommande mönster för att minska risken för oavsiktliga ändringar:

MönsterSkriver data?Användning
validate --file …NejValiderar JSON och referenser.
create --dry-run --file …NejVisar objektet och konteringen som skulle skapas.
create --file …JaSkapar objektet efter samma validering.
Journal utan --commitNejVisar planerad verifikation.
Journal med --commitJaSparar verifikationen och uppdaterar berörda objekt.
bokfri voucher validate --file voucher.json
bokfri voucher create --dry-run --file voucher.json
bokfri voucher create --file voucher.json

bokfri invoice journal --from 2026-08-01 --to 2026-08-31
bokfri invoice journal --from 2026-08-01 --to 2026-08-31 --commit
Undantag: company use och year use ändrar det sparade valet direkt. Kontrollera alltid kommandots --help.

Konton

Lista alla konton i valt bokföringsår eller filtrera listan skiftlägesokänsligt på kontonummer eller beskrivning:

bokfri account list
bokfri account list --filter 193
bokfri account list --filter bank

Rapporter

Rapporter använder det valda bokföringsåret som säker standardperiod:

KommandoStandard utan datum
trial-balanceHela bokföringsåret
income-statementHela bokföringsåret
general-ledgerHela bokföringsåret
balance-sheetBokföringsårets sista dag
account balanceBokföringsårets sista dag
vat reportHela bokföringsåret
bokfri trial-balance
bokfri income-statement --format json
bokfri balance-sheet
bokfri general-ledger --account 1930
bokfri account balance 1930

Rapporter som också finns som utskrifter i det grafiska gränssnittet kan skrivas till samma Jasper-baserade PDF:

bokfri income-statement --output resultatrapport.pdf
bokfri balance-sheet --output balansrapport.pdf
bokfri general-ledger --account 1930 --output huvudbok-1930.pdf

--format text|json styr fortfarande svaret på standardutmatningen. --output skapar PDF-filen och --overwrite krävs för att ersätta en befintlig fil.

För en delperiod måste både --from och --to anges. Punktdatum anges med --date. Datum måste ligga inom valt bokföringsår.

bokfri income-statement --from 2026-01-01 --to 2026-03-31
bokfri balance-sheet --date 2026-03-31

Försäljning

Kunder och produkter

bokfri customer list
bokfri customer show 1001
bokfri customer validate --file customer.json
bokfri customer create --dry-run --file customer.json
bokfri customer create --file customer.json

bokfri product list
bokfri product show CONSULTING
bokfri product validate --file product.json
bokfri product create --dry-run --file product.json
bokfri product create --file product.json

Kundfakturor

bokfri invoice validate --file invoice.json
bokfri invoice create --dry-run --file invoice.json
bokfri invoice create --file invoice.json
bokfri invoice list
bokfri invoice show 42
bokfri invoice pdf 42 --output faktura-42.pdf
bokfri invoice journal --from 2026-08-01 --to 2026-08-31
bokfri invoice journal --from 2026-08-01 --to 2026-08-31 --commit

PDF-kommandot ändrar inte fakturans status. En befintlig fil skrivs bara över med --overwrite. Standardspråket är sv-SE. Kreditfakturor exporteras på samma sätt med bokfri credit-invoice pdf 7 --output kreditfaktura-7.pdf.

Kreditfakturor och inbetalningar

bokfri credit-invoice validate --file credit-invoice.json
bokfri credit-invoice create --dry-run --file credit-invoice.json
bokfri credit-invoice create --file credit-invoice.json
bokfri credit-invoice journal --from 2026-08-01 --to 2026-08-31 --commit

bokfri inpayment validate --file inpayment.json
bokfri inpayment create --dry-run --file inpayment.json
bokfri inpayment create --file inpayment.json
bokfri inpayment journal --from 2026-08-01 --to 2026-08-31 --commit

Kreditfakturan refererar till en bokförd kundfaktura. En inbetalning refererar till en bokförd faktura och får inte överstiga dess återstående saldo.

Inköp

Leverantörer och leverantörsfakturor

bokfri supplier validate --file supplier.json
bokfri supplier create --dry-run --file supplier.json
bokfri supplier create --file supplier.json

bokfri supplier-invoice validate --file supplier-invoice.json
bokfri supplier-invoice create --dry-run --file supplier-invoice.json
bokfri supplier-invoice create --file supplier-invoice.json
bokfri supplier-invoice journal --from 2026-08-01 --to 2026-08-31 --commit

Leverantörskrediter och utbetalningar

bokfri supplier-credit-invoice validate --file supplier-credit.json
bokfri supplier-credit-invoice create --dry-run --file supplier-credit.json
bokfri supplier-credit-invoice create --file supplier-credit.json
bokfri supplier-credit-invoice journal --from 2026-08-01 --to 2026-08-31 --commit

bokfri outpayment validate --file outpayment.json
bokfri outpayment create --dry-run --file outpayment.json
bokfri outpayment create --file outpayment.json
bokfri outpayment journal --from 2026-08-01 --to 2026-08-31 --commit

Verifikationer och ingående balans

Manuell verifikation

{
  "schemaVersion": 1,
  "date": "2026-08-02",
  "description": "Webbhotell",
  "rows": [
    {"account": 6540, "debit": "199.20"},
    {"account": 2641, "debit": "49.80"},
    {"account": 1930, "credit": "249.00"}
  ]
}
bokfri voucher validate --file voucher.json
bokfri voucher create --dry-run --file voucher.json
bokfri voucher create --file voucher.json
bokfri voucher list --from 2026-08-01 --to 2026-08-31
bokfri voucher show 42

Debet och kredit måste balansera. Belopp bör anges som decimalsträngar för exakt precision.

Ingående balans och nytt år

I ingående balans är positiva belopp debet och negativa belopp kredit:

{
  "balances": [
    {"account": 1930, "amount": "100000.00"},
    {"account": 2081, "amount": "-100000.00"}
  ]
}
bokfri opening-balance validate --file opening-balance.json
bokfri opening-balance set --dry-run --file opening-balance.json
bokfri opening-balance set --file opening-balance.json
bokfri opening-balance show
bokfri opening-balance carry-forward --from-year-id 12
bokfri opening-balance carry-forward --from-year-id 12 --commit

carry-forward överför bara balanskonton från källåret till det valda året.

Verifikationsutskrifter

bokfri voucher list --output verifikationer.pdf
bokfri voucher list --from 2026-07-01 --to 2026-07-31 --output juli.pdf
bokfri voucher show 12 --output verifikation-12.pdf

Filtrering med --from, --to och --limit gäller både listresultatet och PDF-filen.

Momsrapport och momsavräkning

Rapporten är alltid läsande. Utan datum omfattar den hela valt bokföringsår:

bokfri vat report
bokfri vat report --from 2026-07-01 --to 2026-09-30

Momsavräkningen kräver en uttrycklig period. Utan --commit visas bara den planerade verifikationen:

bokfri vat settle --from 2026-07-01 --to 2026-09-30
bokfri vat settle --from 2026-07-01 --to 2026-09-30 --commit

Bokfri skickar inte momsdeklarationen till Skatteverket. Kontrollera rapporten och bokföringen innan avräkningen sparas.

Backup och SIE

Fullständig säkerhetskopia

bokfri backup create --output bokfri-backup.zip
bokfri backup list
bokfri backup verify --file bokfri-backup.zip

Återställning kräver en målkatalog och är en förhandsgranskning tills --commit anges:

bokfri backup restore --file bokfri-backup.zip \
  --target-data-dir "/ny/bokfri-data"
bokfri backup restore --file bokfri-backup.zip \
  --target-data-dir "/ny/bokfri-data" --commit

Använd --overwrite endast när en befintlig databas i målkatalogen avsiktligt ska ersättas.

SIE-export

bokfri sie export --output foretag.se
bokfri sie export --type 1 --output arssaldon.se

Standardtypen är 4E. Typerna 1, 2, 3 och 4E stöds. Befintliga filer kräver --overwrite.

SIE-import

bokfri sie import --file foretag.se
bokfri sie import --file foretag.se --commit
bokfri sie import --file verifikationer.se --vouchers-only --commit

Importen är en förhandsgranskning som standard. Bokfri ändrar inte källfilen och registrerar innehållets SHA-256 för att motverka dubbelimport. --allow-already-imported ska bara användas efter kontroll.

JSON-filer

Datum skrivs som ÅÅÅÅ-MM-DD. Pengar bör skrivas som strängar, exempelvis "1250.00". Okända fält avvisas så att stavfel inte ignoreras tyst. Många kommandon accepterar --file - för JSON från standard input.

Genererade JSON Schemas

Alla Bokfri-kommandon som tar JSON-indata kan skriva ett JSON Schema Draft 2020-12 direkt till standard output:

bokfri voucher schema > voucher.schema.json
bokfri invoice schema > invoice.schema.json
bokfri customer schema > customer.schema.json

Schemat genereras vid körning från samma Java-indataklass och strukturella valideringsannoteringar som kommandot använder. Det kräver ingen databas och kan användas av editorer, integrationer och kodgeneratorer. Schemat kontrollerar JSON-strukturen; validate kontrollerar dessutom databasberoende regler som konton, bokföringsår och balansering.

Kund

{
  "number": "1001",
  "name": "Exempel AB",
  "email": "faktura@exempel.se"
}

Produkt

{
  "number": "CONSULTING",
  "description": "Konsultarbete",
  "sellingPrice": "1200.00",
  "vatRate": "25",
  "salesAccount": 3001
}

Kundfaktura

{
  "customerNumber": "1001",
  "date": "2026-08-05",
  "rows": [
    {"productNumber": "CONSULTING", "quantity": 10}
  ]
}

Inbetalning

{
  "date": "2026-08-20",
  "text": "Bankinbetalningar 2026-08-20",
  "rows": [
    {"invoiceNumber": 42, "amount": "15000.00"}
  ]
}

Objekttyperna har fler frivilliga fält än exemplen visar. Kör motsvarande validate och create --dry-run innan data sparas.

Kommandoöversikt

OmrådeKommandon
Systemversion, status, database
Urvalcompany, account-plan, year, account
Rapportertrial-balance, balance-sheet, income-statement, general-ledger, vat report
Bokföringvoucher, opening-balance, vat settle
Försäljningcustomer, product, invoice, credit-invoice, inpayment
Inköpsupplier, supplier-invoice, supplier-credit-invoice, outpayment
Datautbytebackup, sie

De flesta objektsamlingar har list och show. Skrivande JSON-flöden har normalt schema, validate och create. Se alltid den installerade versionens --help för alla parametrar.

JSON-utdata och automatisering

--format json skriver ett JSON-dokument till standard output. Vid fel returneras en icke-noll exitkod och ett stabilt felobjekt till standard error när JSON-format är valt.

bokfri company list --format json
bokfri trial-balance --format json > trial-balance.json

Använd explicita --data-dir, --company-id och --year-id för isolerade tester och automatiska skript. Låt inte automatiska skript lägga till --commit förrän förhandsgranskningen har kontrollerats.

Felsökning

bokfri hittas inte på Windows
Öppna ett nytt terminalfönster efter MSI-installationen. Kontrollera med Get-Command bokfri. Utvecklingspaketet heter bokfri-dev.
COMPANY_REQUIRED eller YEAR_REQUIRED
Kör bokfri company use ID och bokfri year use ID, eller ange --company-id och --year-id för den aktuella körningen.
DATABASE_MIGRATION_REQUIRED
Kontrollera formatet med bokfri database status och kör sedan bokfri database migrate. En verifierad backup skapas före migreringen.
Rapportperioden avvisas
Datum måste ligga inom valt bokföringsår. Periodrapporter kräver både --from och --to om ett av dem anges.
En fil finns redan
Bokfri skriver normalt inte över filer. Kontrollera filen och använd --overwrite endast när ersättning är avsiktlig.
Databasen används av GUI:t
Avsluta Bokfris GUI innan ett skrivande CLI-kommando eller en återställning körs mot samma datakatalog.

Kontrollera miljön med:

bokfri version
bokfri status
bokfri database status