12. Tositteen kirjaaminen
Katso myös pikaohje: Kirjaa myyntilasku
Kirjaaminen on kaksivaiheinen: Esikatsele → Kirjaa.

| 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_idei 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.