DokumentAdress
← Alla guider

Bädda in personal-widgeten

Färdig vy för tid, resor och utlägg med kvittofoto. Personlig kod per anställd, inbäddning och chefens attest.

Utvecklare och driftansvarig · cirka 6 minuters läsning

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

  1. Er server skapar en personlig kod åt den inloggade anställde.
  2. Koden följer med i widgetens adress.
  3. 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_ref eller employee_number krävs. Samma referens ger alltid samma anställd — aldrig en dubblett.
  • full_name behövs bara första gången personen förekommer.
  • ttl_minutes 5–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 submitted kan attesteras eller avvisas — en exporterad post kan aldrig ändras i efterhand.

Checklista

  1. Säg till oss vilken domän widgeten ska bo på.
  2. Skapa en kod per anställd vid inloggning.
  3. Bädda in widget_url i en iframe med allow="camera".
  4. Prenumerera på personal-händelserna i er webhook.
  5. Attestera via POST /entries eller i vår vy.

Fortsätt läsa