1) Yleiskuvaus & autentikointi
- Palvelu: reports → Metodi: entries
- Autentikointi: Basic Authentication (käytä
Authorization: Basic <base64(user:pass)>) - Vaste: JSON
- Palauttaa palkkarivit annetuilla rajauksilla.
2) Päätepisteet (endpoints)
POST /entries— suodatusparametrit JSON-rungossaGET /entries?…— suodatusparametrit kyselynäGET /reports/entries?…— kokoelmahakuGET /reports/entries/{id}— yksittäinen rivi (path-parametrinaid)
3) Kyselyparametrit (suodatus & sivutus)
Alla olevat parametrit ovat valinnaisia, ellei toisin mainita. Ne voidaan antaa joko POST-rungossa (JSON) tai GET-kyselyn parametreina.
| Parametri | Tyyppi | Formaatti | Kuvaus |
|---|---|---|---|
personnumber | string | 0–20 merkkiä | Henkilönumero / tunniste |
period | string | 0–20 merkkiä | Periodin/palkkajakson tunniste |
costunit | string | 0–200 merkkiä | Kustannusyksikkö |
startdate | string | pvm-merkkijono | Alkupäivä suodatukseen |
enddate | string | pvm-merkkijono | Loppupäivä suodatukseen |
maxrecords | int | numero | Enimmäismäärä palautettavia rivejä |
skiprecords | int | numero | Kuinka monta riviä ohitetaan alusta (offset) |
4) Vastausrakenne
{
"entries_response": {
"entries": [ /* rivitaulukko, katso alla */ ],
"skippedrecords": <int>,
"resultcomplete": <int>
}
}
entries: taulukko rivikohteista (kentät alla).skippedrecords: palauttaa ohitettujen rivien määrän.resultcomplete: 1 = kaikki tulokset palautettu; 0 = hae lisää kasvattamallaskiprecords-arvoa.
5) Rivilistan kentät (entries[])
Nämä ovat palautusdatan kentät. Huom. merkintä “Not used when doing a GET” alkuperäisessä ohjeistuksessa tarkoittaa, ettei kenttää käytetä GET-kyselyn kyselyparametrina, mutta se voi esiintyä vastauksessa.
| Kenttä | Tyyppi | Kuvaus |
|---|---|---|
paymentid | string | Maksun tunniste |
id | string | Rivin yksilöivä tunniste (pakollinen /reports/entries/{id} -haussa) |
PAYDATE | string | Maksupäivä |
PERIODNUMBER | string | Periodin numero |
paytype | string | Palkkalaji |
rownumber | int | Rivin järjestysnumero |
dim1…dim5 | string | Dimensiot/kohdistukset |
amount | int | Määrä/kpl |
unitprice | int | Yksikköhinta |
locked | int | Lukitustila |
factor | int | Kerroin |
sum | int | Rivisumma |
hours | int | Tunnit |
account | string | Tilikoodi |
offsetaccount | string | Vasta/siirtotili |
accountlocked | int | Tili lukittu |
nonrecurring | int | Kertaluonteinen erä |
ok | int | Hyväksyntämerkintä |
auto | int | Automaattinen erä |
description | string | Kuvaus |
suppressprint | string | Tulostuksen esto |
ignore | int | Ohitetaanko laskennassa |
source | string | Lähdejärjestelmä |
approved | int | Hyväksytty |
importdate | string | Tuontipäivä |
calculationdetail | string | Laskentatiedot |
holidayyear | string | Lomavuosi |
paidinkind | int | Luontoisetu |
lumpsum | int | Kertapalkkio |
unjustbenefit | int | Perusteeton etu |
recovery | int | Takaisinperintä |
vatcode | string | ALV-koodi |
sapchannel | string | SAP-kanava |
parentid | string | Emorivin tunniste |
recurringid | string | Toistuvan erän tunniste |
originalpaymentdate | int | Alkuperäinen maksupäivä (epoch/int) |
recoverydate | int | Takaisinperinnän pvm (epoch/int) |
recoverystartdate | int | Perinnän alkupvm (epoch/int) |
recoveryenddate | int | Perinnän loppupvm (epoch/int) |
importid | int | Tuonnin juokseva tunniste |
startdateadditional | string | Lisäjakson alkupvm |
enddateadditional | string | Lisäjakson loppupvm |
nodatereporting | int | Raportointi ilman pvm:ää |
vatpercentage | int | ALV-% |
vatsum | int | ALV-summa |
recoveredamountwithholdingtax | int | Takaisinperitty määrä ennakonpidätyksellä |
toucheddate | string | Muokkauspäivä |
touchedtime | string | Muokkausaika |
startdate | string | Jakson alkupvm |
enddate | string | Jakson loppupvm |
incometype | int | Tulotyyppi |
text / TEKSTI | string | Vapaa teksti |
6) Sivutus & tuloksen täydellisyys
- Sisääntulo:
maxrecords(sivukoko) +skiprecords(offset). - Vaste:
skippedrecordskertoo ohitettujen määrän;resultcomplete= 1, kun kaikki rivit on palautettu.
7) Esimerkit
POST /entries
POST /entries
Authorization: Basic <base64(user:pass)>
Content-Type: application/json
Accept: application/json
{
"personnumber": "12345",
"period": "2025-08",
"startdate": "2025-08-01",
"enddate": "2025-08-31",
"maxrecords": 100,
"skiprecords": 0
}
GET /entries
GET /entries?personnumber=12345&period=2025-08&maxrecords=100&skiprecords=0 Authorization: Basic <base64(user:pass)> Accept: application/json
GET /reports/entries/{id}
GET /reports/entries/5 Authorization: Basic <base64(user:pass)> Accept: application/json
cURL
# POST
curl -u "user:pass" -H "Content-Type: application/json" -H "Accept: application/json" -d '{"personnumber":"12345","period":"2025-08","maxrecords":100,"skiprecords":0}' https://<host>/entries
# GET
curl -u "user:pass" -H "Accept: application/json" "https://<host>/entries?personnumber=12345&period=2025-08&maxrecords=100&skiprecords=0"
JavaScript (fetch)
const creds = btoa("user:pass");
const url = "/entries?personnumber=12345&period=2025-08&maxrecords=100&skiprecords=0";
fetch(url, {
method: "GET",
headers: {
"Authorization": "Basic " + creds,
"Accept": "application/json"
}
})
.then(r => r.json())
.then(data => console.log(data.entries_response));
8) Virhevastaus
Virheet palautuvat listassa ServiceErrors (kentät: ErrorNumber, ErrorPosition, ErrorRecordID, ErrorDescription, ErrorRecomendation).
9) Huomioita
- Yksittäisen rivin haku vaatii
id-arvon/reports/entries/{id}-polussa. - Esimerkeissä käytetty päivämääräformaatti on ohjeellinen; käytä ympäristösi vaatimusten mukaista formaattia.