Spring til indhold
Forta Pay

Reference

Forta-bog-kilde

Forta Pay API v1

3 operationer

Forta-bogen skubber én hændelse med hulfri seq (faktura, kreditnota, betaling eller rest)

PUT /source/fortabog/events/{seq}

🔴 Ikke slået til: ruten svarer 404. Kræver en nøgle med scope source (gives kun alene og kun til én kreditor); kreditoren er nøglens, aldrig stiens eller kroppens. seq er hulfri pr. kreditor og tildeles i kildens outbox i samme transaktion som udstedelsen, kreditnotaen, betalingen eller restændringen. 201 ny hændelse (markøren flyttet i samme transaktion) · 200 samme seq og samme krop: det gemte svar igen, uden sideeffekt. En ugyldig hændelse gemmes ikke og flytter ikke markøren — ret den og send samme seq. En gyldig hændelse om noget Forta Pay ikke kender (kreditnota før faktura, rest eller betaling på et ukendt nummer) modtages som quarantined: den er set, men rød. number er det trykte nummer uden præfiks; det bliver fakturaens external_ref. En negativ balance er et tilgodehavende og modtages, og resten må stige. En betaling eller restændring med origin: pay stammer fra Forta Pays egne bilag, bogført hos kilden, og modtages som echo: den bliver aldrig til en ny betaling. Intet oprettes som faktura, debitor eller betaling ved modtagelsen.

Parametre

seq

path · integer · påkrævet

Idempotency-Key

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

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

Krop · SourceEventPut

event_id

string · påkrævet

Hændelsens stabile id i kildens outbox

type

string · påkrævet

invoice · credit_note · payment · balance

document

SourceDocument · valgfri

payment

SourcePayment · valgfri

balance

SourceBalance · valgfri

Svar

200

Allerede modtaget med samme krop · SourceEventReceipt

201

Modtaget · SourceEventReceipt

403

`insufficient_scope` · `fortabog_key_not_bound` · Problem

404

Fejl (RFC 9457) · Problem

409

`fortabog_seq_gap` (med `expected_seq`) · `fortabog_seq_conflict` · `fortabog_event_id_reused` · `fortabog_document_changed` · Problem

422

`validation_failed` · `fortabog_number_below_first` · `fortabog_number_taken` · `fortabog_pdf_invalid` · `fortabog_pdf_mismatch` · Problem

curl
curl -X PUT https://api.fortapay.dk/v1/source/fortabog/events/{seq} \
  -H "Authorization: Bearer $FP_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d @- <<'JSON'
{
  "event_id": "…",
  "type": "invoice"
}
JSON

Det gemte svar på en hændelse (til et tabt svar)

GET /source/fortabog/receipts/{seq}

🔴 Ikke slået til: ruten svarer 404. Ingen sideeffekt. 404 not_found med expected_seq, hvis seq ikke er modtaget. Sammenlign body_sha256 med det svar du fik, før du sender igen.

Parametre

seq

path · integer · påkrævet

Svar

200

OK · SourceEventReceipt

403

`insufficient_scope` · `fortabog_key_not_bound` · Problem

404

Fejl (RFC 9457) · Problem

curl
curl -X GET https://api.fortapay.dk/v1/source/fortabog/receipts/{seq} \
  -H "Authorization: Bearer $FP_KEY"

Kildens markør, nummerrækkerne med huller og forbindelsens tilstand

GET /source/fortabog/status

🔴 Ikke slået til: ruten svarer 404. committed_through_seq er den højeste seq hvor alle 1..N er modtaget; næste forventede er expected_seq. Nummerrækkerne er en anden kontrol ved siden af seq: contiguous_through er det højeste nummer hvor alle numre fra first_number er set, og missing er de første huller (højst 50).

Svar

200

OK · SourceStatus

403

`insufficient_scope` · `fortabog_key_not_bound` · Problem

404

Fejl (RFC 9457) · Problem

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