Vår färdiga vy där personalen rapporterar arbetad tid, körsträcka och utlägg med kvittofoto. Ni bäddar in den i ert eget gränssnitt — ert utseende runtomkring, vår logik för validering, attest och lönekörning.
Kräver att Tid och lön ingår i abonnemanget, annars svarar vi
402 feature_unavailable.
Så hänger det ihop
- Er server skapar en personlig kod åt den inloggade anställde.
- Koden följer med i widgetens adress.
- Widgeten pratar direkt med oss. Er API-nyckel lämnar aldrig er server.
Steg 1 (er server): skapa personlig kod
POST /staff-sessions med Authorization: Bearer ds_live_…
{
"external_ref": "ANST-42",
"full_name": "Anna Andersson",
"employee_number": "1042",
"email": "anna@exempel.se",
"tenant_ref": "nordbutik-linkoping",
"ttl_minutes": 720
}
Svar 201:
{ "data": { "token": "dwt_ab12cd34_…", "expires_at": "…",
"staff_member_id": "…",
"widget_url": "https://<er-instans>/widget/tid?token=dwt_…" } }
external_refelleremployee_numberkrävs. Samma referens ger alltid samma anställd — aldrig en dubblett.full_namebehövs bara första gången personen förekommer.ttl_minutes5–43200 (standard 720 = 12 timmar). Skapa en ny kod vid varje inloggning i stället för att återanvända en gammal.
Steg 2: bädda in
<iframe src="<widget_url>" style="width:100%;height:760px;border:0"
allow="camera"></iframe>
allow="camera" behövs för kvittofoto i mobilen.
Er domän måste ligga i organisationens lista över godkända värdsidor, annars avvisas anropen från er sida. Säg till vilken domän ni kör på.
Vad personalen kan göra
- Tid — datum, start och slut eller antal timmar, rast, frånvarokod, notering. Har ni skickat in schema visas dagens pass förifyllt och personen bekräftar eller anger avvikelse.
- Resa — körsträcka, fordon, ändamål.
- Utlägg — belopp, moms, ändamål, kvittofoto som knäpps direkt i mobilen.
- Status per post — inskickad, attesterad eller avvisad med orsak.
Chefens attest
GET /entries?from=…&to=… listar poster, valfria filter status och
staff_member_id.
POST /entries avgör dem:
{ "decisions": [
{ "entry_id": "…", "entry_kind": "time", "decision": "approve" },
{ "entry_id": "…", "entry_kind": "expense", "decision": "reject",
"reason": "Kvitto saknas" }
] }
Attest kan också göras i vårt eget gränssnitt om ni hellre vill det.
Regler som sitter i databasen, inte i koden
- Låst löneperiod stoppar både inrapportering och ändringar
(
409 period_locked). - Avslutad person får alla sina koder spärrade omedelbart.
- Endast poster med status
submittedkan attesteras eller avvisas — en exporterad post kan aldrig ändras i efterhand.
Checklista
- Säg till oss vilken domän widgeten ska bo på.
- Skapa en kod per anställd vid inloggning.
- Bädda in
widget_urli en iframe medallow="camera". - Prenumerera på personal-händelserna i er webhook.
- Attestera via
POST /entrieseller i vår vy.