Spring til indhold
Forta Pay

Reference

Portal

Forta Pay API v1

1 operationer

Kortlivet SSO-URL til Forta Pays portal for en kreditorbruger (udstedes af server, udløber efter 5 min, engangs)

POST /portal-sessions

Udsteder en engangs-URL til en DELEGERET portal-session. Der oprettes ingen portalbruger: tillidsankeret er API-nøglen, og sessionen kan aldrig mere end nøglen der udstedte den — read → viewer, write → operator, admin (uskopet nøgle) → admin. Loftet prøves igen ved HVERT klik i portalen: tilbagekaldes nøglen, sænkes dens scope eller fjernes kreditoren fra dens skop, er sessionen død ved næste klik. user_email er kun til visning og revisionsspor.

Koden står i URL'ens fragment (#c=…) og sendes derfor aldrig til en server eller i en Referer. Åbn URL'en i en NY FANE (top-level) — portalen kan ikke vises i en iframe (frame-ancestors 'none'). Sessionen lever 60 min uden aktivitet, højst 8 timer.

Samme Idempotency-Key + samme krop giver samme 201 med SAMME kode: er den brugt eller udløbet, er URL'en død. Bed om en ny med en ny nøgle.

Parametre

Idempotency-Key

header · string (uuid) · påkrævet

Obligatorisk på alle POST/PATCH/DELETE. Lever 24 timer.

Krop · PortalSessionCreate

creditor_id

string · påkrævet

user_email

string (email) · påkrævet

Hvem i jeres system der åbner portalen. Vises i portalens hoved og står i revisionssporet; giver ingen rettigheder

role

string · valgfri

Udeladt = viewer (mindst mulig rolle), ikke nøglens loft. Over loftet → 403

viewer · operator · admin

landing

string · valgfri

Hvor portalen åbner. Udeladt = forsiden. Tilladt: /, /invoices, /invoices/{inv_…} (fakturaen skal tilhøre creditor_id), /reminders/upcoming. Alt andet → 422 invalid_landing — fx /debtors/…, som portalen endnu ikke har en side for.

Svar

201

OK · PortalSession

403

`insufficient_scope` — `role` er over nøglens loft (`required_scope` i svaret). Rollen sænkes aldrig i stilhed · Problem

404

Kreditoren findes ikke eller er uden for nøglens skop (samme svar) · Problem

422

`invalid_landing` — `landing` står ikke i tabellen (ingen åben omdirigering) — eller `validation_failed` · Problem

503

`portal_unavailable` — portalens værtsnavn er ikke konfigureret på serveren; intet er udstedt · Problem

curl
curl -X POST https://api.fortapay.dk/v1/portal-sessions \
  -H "Authorization: Bearer $FP_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d @- <<'JSON'
{
  "creditor_id": "…",
  "user_email": "…"
}
JSON