← Ohjeet

12. Tositteen kirjaaminen

Katso myös pikaohje: Kirjaa myyntilasku

Kirjaaminen on kaksivaiheinen: Esikatsele → Kirjaa.

Tositelomake: esikatselun ja kirjauksen vastaukset näkyvissä
Kenttä Selitys
description selite — kirjoita laskun numero tähän
entry_date kirjauspäivä, muodossa VVVV-KK-PP
fiscal_year_id tilikauden tekninen tunnus (näkyy tilikausivalikossa)
idempotency_key tositteen oma avain, joka estää tuplakirjauksen
series tositesarja, esim. GL, MYYNTI, OSTO
lines rivit: tili, puoli, summa sentteinä

Kaksi kohtaa, joissa aloittelija kompastuu:

  • Summat annetaan sentteinä. 1 240,00 € = 124000. Näin pyöristysvirhe on rakenteellisesti mahdoton.
  • Pituusrajat lasketaan merkkeinä, eivät tavuina. Selite mahtuu 500 merkkiin ja tositeavain 128 merkkiin myös silloin kun tekstissä on ääkkösiä tai emojeja. (Aiemmin rajat laskettiin tavuina, jolloin suomenkielinen teksti loppui kesken puolessa välissä — korjattu.)
  • account_id ei ole tilinumero. Se on tilin tekninen tunnus; tilin 1910 tunnus voi olla esimerkiksi 878.

Esimerkki 1: myyntilasku (1 240,00 josta veroa 240,00)

{
    "description": "Myyntilasku 1005, Asiakas Oy",
    "entry_date": "2026-03-10",
    "fiscal_year_id": 408,
    "idempotency_key": "myyntilasku-1005",
    "series": "GL",
    "source_id": null,
    "source_type": "manual",
    "lines": [
        { "account_id": 878, "amount_cents": 124000, "side": "debit",
          "dimensions": null, "memo": "", "role": "manual",
          "vat_rate_snapshot": null },
        { "account_id": 879, "amount_cents": 100000, "side": "credit",
          "dimensions": null, "memo": "", "role": "manual",
          "vat_rate_snapshot": "demo-24" },
        { "account_id": 880, "amount_cents": 24000, "side": "credit",
          "dimensions": null, "memo": "", "role": "manual",
          "vat_rate_snapshot": "demo-24" }
    ]
}

Vaihe 1 — Esikatsele. Tarkastaa kaiken mutta ei kirjaa mitään:

{ "ok": true, "preview": { "balanced": true, "line_count": 3,
  "posted": false, "total_cents": 124000,
  "content_sha256": "sha256:882325125c5683fe7144322a80b640d5…" } }

Vaihe 2 — Kirjaa. Tosite saa aukottoman numeron:

{ "ok": true, "status": "posted", "journal_id": 2522, "journal_number": 12,
  "content_sha256": "sha256:882325125c5683fe7144322a80b640d5…" }

Tärkein yksityiskohta: content_sha256 on esikatselussa ja kirjauksessa sama. Se todistaa, että kirjattu tosite on täsmälleen se, jonka hyväksyit.

Esimerkki 2: ostolasku tai kulu

"lines": [
    { "account_id": 881, "amount_cents": 80000, "side": "debit",
      "dimensions": null, "memo": "Tarvikkeet", "role": "manual",
      "vat_rate_snapshot": null },
    { "account_id": 878, "amount_cents": 80000, "side": "credit",
      "dimensions": null, "memo": "", "role": "manual",
      "vat_rate_snapshot": null }
]

Esimerkki 3: sama nappi painettuna kahdesti

{ "ok": true, "status": "already_posted", "journal_id": 2522,
  "journal_number": 12, "content_sha256": "sha256:882325125c…" }

Sama tosite, sama numero, sama sinetti — tuplakirjaus on mahdoton.

Esimerkki 4: epätäsmäävä tosite

{ "ok": false, "error": "vat: entry debits do not equal credits" }

Kirjausta ei synny — ei edes osittaista.