Rishah Log ind

API til jeres eget system

Med API'et kan jeres regnskabs- eller ERP-system sende e-fakturaer gennem Rishah og hente status, PDF og betalingsoplysninger. API'et følger med pakkerne 20, 100 og 250 og med Enterprise. Hver sendt faktura tæller som en almindelig faktura i pakken.

Sådan kommer I i gang

  1. Lav en API-nøgle under Indstillinger → API til jeres eget system. Den vises kun én gang.
  2. Læg nøglen i jeres system. Hvert kald sendes som POST til adressen herunder med nøglen i headeren og JSON i indholdet.
  3. Prøv først med "handling":"test".
POST https://rishah.dk/platform/api/v1.php
Authorization: Bearer rsh_xxxxxxxxxxxx_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Content-Type: application/json

{"handling":"test"}

Svaret har altid ok. Går noget galt, står der en fast kode i fejl, som jeres program kan læse, og en forklaring på dansk i besked.

Send en faktura eller kreditnota

Filen skal være en e-faktura i formatet Peppol BIS 3 (faktura eller kreditnota) med jeres virksomhed som afsender. Samme nummer kan kun sendes én gang – faktura og kreditnota har hver deres nummerrække.

{"handling":"send","xml":"<?xml version=\"1.0\" encoding=\"UTF-8\"?><Invoice …>…</Invoice>"}

→ 201 {"ok":true,"id":"5f2c…","type":"faktura","nummer":"1043","status":"leveret"}

I stedet for xml kan filen sendes base64-kodet i xml_base64.

Bilag, fx fakturaen som PDF, kan sendes med i bilag. De lægges ind i e-fakturaen, før den sendes. Peppol tillader PDF, PNG, JPG, CSV og regneark (.xlsx og .ods), højst 5 MB pr. fil og 10 MB i alt.

{"handling":"send","xml":"…","bilag":[{"filnavn":"faktura-1043.pdf","fil_base64":"JVBERi0…"}]}

status er leveret, når modtageren har fået fakturaen, eller afsendt, når netværket har sat den i kø. Bliver den senere afvist, skifter status til afvist eller ugyldig med en forklaring i besked. En faktura, netværket ikke tager imod, tæller ikke i pakken.

Status og liste

{"handling":"status","id":"5f2c…"}
→ {"ok":true,"id":"5f2c…","type":"faktura","nummer":"1043","modtager":{…},"beloeb":2813.13,"valuta":"DKK","status":"leveret","sendt":"2026-11-08T18:20:00+01:00","gensendt":[]}

{"handling":"sendte","max":50,"siden":"2026-11-01T00:00:00+01:00"}
→ {"ok":true,"antal":12,"sendte":[…]}

Hent en faktura med PDF og betalingsoplysninger

{"handling":"hent","id":"5f2c…"}
→ {"ok":true, …, "xml":"…", "pdf_base64":"JVBERi0…",
   "betaling":{"kode":"58","konto":"DK5000400440116243","ref":"1043","belob":2813.13,"valuta":"EUR","forfald":"2026-11-16", …},
   "betalingskode":{"art":"epc","qr":"BCD\n002\n…","kodelinje":null}}

betaling er oplysningerne, jeres system kan lægge direkte ind som betaling. betalingskode er indholdet af QR-koden eller kodelinjen til bankappen – epc (euro), se (svensk bankgiro/plusgiro), fik (dansk indbetalingskort) eller no (norsk konto og KID).

Modtagne fakturaer

{"handling":"modtagne","max":50,"siden":"2026-11-01T00:00:00+01:00"}
→ {"ok":true,"antal":3,"modtagne":[{"id":"a36c…","type":"faktura","nummer":"461455","afsender":{"navn":"…","land":"DK","nummer":"DK11945317"},"dato":"2026-10-15","beloeb":2632.5,"valuta":"DKK","modtaget":"2026-11-10T20:32:15+01:00","kilde":"netvaerk"}]}

{"handling":"modtaget","id":"a36c…"}
→ {"ok":true, …, "xml":"…", "pdf_base64":"JVBERi0…", "betaling":{…}}

Alle fakturaer, jeres leverandører sender til jer over NemHandel og Peppol, kommer her – og også dem, I selv har lagt ind fra en PDF ("kilde":"pdf").

Svar leverandøren

{"handling":"svar","id":"a36c…","kode":"RE","grund":"PRI","tekst":"Prisen på linje 2 passer ikke med aftalen"}
→ {"ok":true,"status":"leveret"}

Svaret går tilbage til leverandøren i samme format, som fakturaen kom: et Peppol-fakturasvar eller et OIOUBL-applikationssvar i NemHandel (her kan man kun svare AP eller RE, og ved RE skal tekst udfyldes). kode: AB modtaget, IP under behandling, UQ spørgsmål, CA godkendt med forbehold, RE afvist, AP godkendt, PD betalt. Ved UQ, CA og RE skal der være en grund: REF reference, LEG firmaoplysninger, REC ikke til os, QUA kvalitet, DEL levering, PRI priser, QTY antal, ITM varer, PAY betalingsbetingelser, UNR kender den ikke, FIN finansielle betingelser, OTH andet (så skal tekst udfyldes). Kan leverandøren ikke modtage svar elektronisk, siger svaret det.

Svarer jeres kunder på jeres egne fakturaer, står det i svar på status og sendte, og jeres webhook får hændelsen svar.

Ordrer, kontoudtog og andre handelsdokumenter

{"handling":"modtag_ordrer","til":true}
→ {"ok":true,"modtag_ordrer":true}

{"handling":"ordrer","siden":"2026-11-01T00:00:00+01:00"}
→ {"ok":true,"antal":1,"ordrer":[{"id":"7c1e…","type":"Order","retning":"modtaget","nummer":"PO-1043","koeber":"…","saelger":"…","beloeb":12500,"valuta":"DKK"}]}

{"handling":"ordre","id":"7c1e…"}
→ {"ok":true, …, "xml":"…"}

{"handling":"send_dokument","xml":"<Order …"}
→ 201 {"ok":true,"id":"…","type":"Order","nummer":"PO-1043","status":"leveret"}

Slår I modtagelse af ordrer til, bliver jeres numre tilmeldt til også at modtage ordrer i NemHandel og Peppol. Med send_dokument sender jeres system ordrer, ordrebekræftelser, følgesedler, kontoudtog og andre handelsdokumenter i Peppol BIS eller OIOUBL – fakturaer og kreditnotaer sendes med send. Hvert dokument tæller som én faktura i pakken. Jeres webhook får hændelsen ordre, når der kommer en ny.

Læs en PDF, Word- eller Excel-faktura

{"handling":"laes","filnavn":"faktura.pdf","fil_base64":"JVBERi0…"}
→ {"ok":true,"filtype":"pdf","faktura":{…fakturaens oplysninger…},"advarsler":[…]}

Filen læses om til fakturaoplysninger, som jeres system kan vise til kontrol. Intet sendes. Med "rolle":"modtager" læses en faktura, I har fået fra en leverandør.

Besked med det samme (webhook)

{"handling":"webhook","url":"https://jeres-system.dk/rishah"}
→ {"ok":true,"webhook":"https://jeres-system.dk/rishah","hemmelighed":"…"}

Så sender vi en POST med JSON {"haendelse":…,"data":…,"tid":…}, når en faktura er modtaget (modtaget), og når der er nyt om en sendt faktura (levering), og når jeres kunde svarer på en faktura (svar). Tjek headeren X-Rishah-Signatur: sha256=…: HMAC-SHA256 af hele indholdet med hemmeligheden. Send "url":"" for at slå det fra. Listerne ovenfor er altid det sikre sted at hente fra.

Fejlkoder

fejlHTTPBetyder
mangler_noegle401Der er ingen API-nøgle i headeren.
ugyldig_noegle401Nøglen findes ikke.
tilbagekaldt401Nøglen er tilbagekaldt under Indstillinger.
pause429For mange forkerte forsøg – «sekunder» siger, hvor længe der er pause.
konto_laast403Kontoen er låst.
ingen_api_adgang403Kontoen har ikke en pakke med API (20, 100, 250 eller Enterprise).
kun_post405Kun POST er tilladt.
ugyldig_json400Forespørgslen er ikke JSON.
ukendt_handling400Handlingen findes ikke.
mangler_fil400Der er ingen fil i «xml» eller «xml_base64».
ugyldig_fil422Filen er ikke en gyldig e-faktura (Peppol BIS 3).
forkert_afsender403Filen har en anden afsender end jeres virksomhed.
dublet409Nummeret er sendt før – «id» er den tidligere.
kan_ikke_sende402Pakken eller saldoen er brugt, eller der er lukket for afsendelse.
ikke_fundet404Der er ingen faktura med det id.
kan_ikke_levere422Netværket tog ikke imod fakturaen (fx ugyldig fil) – «besked» siger hvorfor. Den tæller ikke i pakken.
udloebet410Fakturaen er ældre end jeres pakkes opbevaring.
kan_ikke_laese422Filen kunne ikke læses som en faktura.
kan_ikke_svare422Svaret kunne ikke sendes – «besked» siger hvorfor (fx kan leverandøren ikke modtage svar).
ugyldig_url400Webhook-adressen skal starte med https:// og kunne nås fra internettet.
for_stor413Forespørgslen er over 20 MB.
intern_fejl500Fejl hos os – prøv igen om lidt.

Sikkerhed og grænser