Spring til indhold
Forta Pay

Reference

Debitorer

Forta Pay API v1

15 operationer

Liste over debitorer (filtre: creditor_id, external_ref, email, updated_after)

GET /debtors

Parametre

cursor

query · string · valgfri

limit

query · integer · valgfri

creditor_id

query · string · valgfri

external_ref

query · string · valgfri

Kundens eget kundenummer (fx e-conomic customerNumber)

email

query · string · valgfri

updated_after

query · string (date-time) · valgfri

has_active_mandate

query · boolean · valgfri

TILFØJET (pay-crmparitet): true → kun debitorer med mindst ét active mandat (samme prædikat som active_mandates i svaret); false → de øvrige. Mandatets detaljer (maskeret reference, aftalenr., udløb) står på GET /mandates?status=active — ikke i debitorens resumé, som også rejser i debitorens hændelser

Svar

200

OK · Page

curl
curl -X GET https://api.fortapay.dk/v1/debtors \
  -H "Authorization: Bearer $FP_KEY"

Opret debitor

POST /debtors

K15: findes external_ref allerede hos kreditoren, svares 200 med den eksisterende debitor (idempotent import).

Parametre

Idempotency-Key

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

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

Krop · DebtorCreate

creditor_id

string · påkrævet

external_ref

string · valgfri

Kundens kundenummer (fx e-conomic customerNumber). Unik pr. kreditor

type

string · valgfri

person · business

name

string · påkrævet

cvr

string | null · valgfri

email

string | null (email) · valgfri

phone

string | null · valgfri

address

object · valgfri

language

string · valgfri

da · en · fo · kl

ean

string | null · valgfri

GLN/EAN til offentlig fakturering

eboks_id

string | null · valgfri

preferred_channels

liste af string · valgfri

metadata

object · valgfri

Svar

201

OK · Debtor

200

OK · Debtor

409

`dpa_required` — R-22: en live-kreditor uden accepteret databehandleraftale; Forta Pay behandler ingen debitoroplysninger før · Problem

422

Fejl (RFC 9457) · Problem

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

Hent debitor inkl. aktive mandater og åben saldo

GET /debtors/{debtorId}

Parametre

debtorId

path · string · påkrævet

Svar

200

OK · Debtor

curl
curl -X GET https://api.fortapay.dk/v1/debtors/{debtorId} \
  -H "Authorization: Bearer $FP_KEY"

Ret debitor

PATCH /debtors/{debtorId}

Parametre

debtorId

path · string · påkrævet

Idempotency-Key

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

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

Krop · DebtorUpdate

creditor_id

string · valgfri

external_ref

string · valgfri

type

string · valgfri

person · business

name

string · valgfri

cvr

string | null · valgfri

email

string | null (email) · valgfri

phone

string | null · valgfri

address

object · valgfri

language

string · valgfri

da · en · fo · kl

ean

string | null · valgfri

eboks_id

string | null · valgfri

preferred_channels

liste af string · valgfri

metadata

object · valgfri

Svar

200

OK · Debtor

curl
curl -X PATCH https://api.fortapay.dk/v1/debtors/{debtorId} \
  -H "Authorization: Bearer $FP_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d @- <<'JSON'
{}
JSON

GDPR-anonymisering — fase A (begrænsning) nu, fase B (sletning) når opbevaringspligten er udløbet

POST /debtors/{debtorId}/anonymise

Kræver scope write OG nøglens eksplicitte rettighed privacy:erase (gives aldrig automatisk, heller ikke til admin) — ellers 403 missing_capability. Har debitoren åbne forhold (faktura i draft/open/overdue/dunning/ready_for_collection/in_collection, mandat requested/pending_scheme/active/suspended, opkrævning scheduled/submitted/accepted, inkassosag der ikke er afsluttet, aktiv afdragsordning, uafstemt betaling, verserende tilbageførsel), behandles anmodningen DELVIST (R-24, scope = partial; GDPR art. 17, stk. 3, litra e): debitorens behandling begrænses nu, metadata og betalingsvinduer der ikke hører til en åben faktura fjernes, og hver åben faktura får et «forfølg trods begrænsning»-hold (LegalHold, origin erasure_request), så kravet behandles videre. Kontaktfelterne står, til kravene er afsluttet; så fjernes de af sig selv (partial_completed_at). answer er det begrundede svar: slettede og bevarede kategorier med grund og id'er — aldrig værdierne. Uden åbne forhold sker FASE A i samme transaktion: e-mail, telefon, e-Boks-id, EAN, kanaler og metadata tømmes, åbne betalingsvinduer lukkes, og hændelsen debtor.restricted sendes (uden previous). Derefter afviser alle skriveveje debitoren med 409 debtor_restricted. Navn, adresse, CVR og external_ref indgår i bilag og slettes først i fase B, når erase_after er nået. erase_after er null (og retention = unknown), når kreditorens regnskabsår ikke er kendt — så sker fase B ikke. Et gentaget kald giver den samme anonymisering (også efter fase B).

Parametre

debtorId

path · string · påkrævet

Idempotency-Key

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

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

Svar

202

Begrænset nu, sletning planlagt · Anonymisation

403

Fejl (RFC 9457) · Problem

404

Fejl (RFC 9457) · Problem

409

Fejl (RFC 9457) · Problem

curl
curl -X POST https://api.fortapay.dk/v1/debtors/{debtorId}/anonymise \
  -H "Authorization: Bearer $FP_KEY" \
  -H "Idempotency-Key: $(uuidgen)"

En anonymiserings tilstand (restricted → completed, eller cancelled)

GET /anonymisations/{anonymisationId}

Parametre

anonymisationId

path · string · påkrævet

Svar

200

OK · Anonymisation

404

Fejl (RFC 9457) · Problem

curl
curl -X GET https://api.fortapay.dk/v1/anonymisations/{anonymisationId} \
  -H "Authorization: Bearer $FP_KEY"

Fortryd en fejlagtig anmodning, så længe den kun er begrænset (scope admin, grund påkrævet)

POST /anonymisations/{anonymisationId}/cancel

Debitoren kan bruges igen, men de tømte felter kommer IKKE tilbage — kreditor skriver dem ind igen. R-26 (GDPR art. 18, stk. 3): at fortryde er at ophæve begrænsningen HELT. Debitor skal være underrettet først: debtor_notice = notified + debtor_notified_at, eller not_requested_by_debtor — ellers 422 debtor_notice_required. Skal kun ét krav forfølges, er vejen et LegalHold med pursue, ikke fortrydelsen. Efter fase B (completed) eller en tidligere fortrydelse → 409 anonymisation_not_cancellable.

Parametre

anonymisationId

path · string · påkrævet

Idempotency-Key

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

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

Krop · AnonymisationCancel

reason

string · påkrævet

debtor_notice

string | null · valgfri

GDPR art. 18, stk. 3 (R-26): PÅKRÆVET af servicen — uden → 422 debtor_notice_required. notified kræver debtor_notified_at

notified · not_requested_by_debtor · None

debtor_notified_at

string | null (date-time) · valgfri

Hvornår debitor blev underrettet (ikke i fremtiden)

Svar

200

OK · Anonymisation

404

Fejl (RFC 9457) · Problem

409

Fejl (RFC 9457) · Problem

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

Rykkerundtagelsen på debitoren — grund, hvem, hvornår og udløb

GET /debtors/{debtorId}/dunning-exclusion

Parametre

debtorId

path · string · påkrævet

Svar

200

OK · DunningExclusion

curl
curl -X GET https://api.fortapay.dk/v1/debtors/{debtorId}/dunning-exclusion \
  -H "Authorization: Bearer $FP_KEY"

Undtag debitoren fra rykkere — med grund og udløb

POST /debtors/{debtorId}/dunning-exclusion

Undtagelsen gælder hele debitoren, ikke kun én faktura.

🔴 Udløbet er tilføjelsen, og det er ikke pedanteri: en undtagelse uden en slutdato er en fordring der stille forældes. expires_on udeladt → 12 måneder. ⚠️ VALGT, IKKE MÅLT (design §12 nr. 5 skriver det selv). expires_on: null udtrykkeligt → uden udløb; tilladt, men svaret bærer en rule_notes-linje om at fordringen forælder efter 36 måneder uanset undtagelsen. Længere ude end forældelsesgrænsen (36 måneder) afvises med 422.

🔴 Håndhævelsen ligger i MOTOREN, ikke i API'et (dunning.plan_next): et planlagt trin aflyses straks, og dunning_next_at sættes til dagen efter udløbet, så planlæggeren selv genoptager forløbet. En undtagelse UDEN udløb rydder feltet — døren er da enkeltrettet og åbnes af /dunning-exclusion/remove.

Parametre

debtorId

path · string · påkrævet

Idempotency-Key

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

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

Krop · DunningExclusionSet

reason

string · påkrævet

PÅKRÆVET — og en CHECK i skemaet, så en undtagelse uden grund ikke kan eksistere som række

expires_on

string | null (date) · valgfri

Udeladt → 12 måneder (⚠️ VALGT, ikke målt). Udtrykkeligt null → uden udløb. Højst 36 måneder ude (forældelsesgrænsen)

by

string | null · valgfri

Svar

200

OK · DunningExclusion

422

Fejl (RFC 9457) · Problem

curl
curl -X POST https://api.fortapay.dk/v1/debtors/{debtorId}/dunning-exclusion \
  -H "Authorization: Bearer $FP_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d @- <<'JSON'
{
  "reason": "…"
}
JSON

Ophæv rykkerundtagelsen — debitorens fordringer planlægges forfra

POST /debtors/{debtorId}/dunning-exclusion/remove

Parametre

debtorId

path · string · påkrævet

Idempotency-Key

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

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

Krop · DunningExclusionRemove

reason

string | null · valgfri

Svar

200

OK · DunningExclusion

curl
curl -X POST https://api.fortapay.dk/v1/debtors/{debtorId}/dunning-exclusion/remove \
  -H "Authorization: Bearer $FP_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d @- <<'JSON'
{}
JSON

Aktive rykkerundtagelser — fanen og forsidens «1 rykkerundtagelse udløber om 7 dage»

GET /dunning-exclusions

Parametre

cursor

query · string · valgfri

limit

query · integer · valgfri

creditor_id

query · string · valgfri

expires_before

query · string (date) · valgfri

Svar

200

OK · Page

curl
curl -X GET https://api.fortapay.dk/v1/dunning-exclusions \
  -H "Authorization: Bearer $FP_KEY"