Hoppa till huvudinnehåll

Webhooks till affärssystem: registreringsnummer och eCoC-status

Få registreringsnummer och eCoC-status direkt i ert affärssystem, till exempel Fortnox eller Monitor.

Skrivet av Anton Hjalmarsson

Översikt

CertiDrive skickar ett signerat besked när ett fordon registreras, när en registrering kräver åtgärd och när RDW accepterar eller avvisar ett eCoC. Det gäller alla fordon i arbetsytan i produktion, oavsett om de skapats i CertiDrive, via ERP-flödet eller via filregistrering.

Händelser

  • vehicle.registered – fordonet har fått registreringsnummer (eReKo eller filregistrering).

  • registration.action_required – Transportstyrelsen har avvisat ansökan, begärt komplettering eller ansökan fick fel.

  • ecoc.accepted – RDW har accepterat eCoC:t i Production.

  • ecoc.rejected – RDW har avvisat eCoC:t i Production, med RDW:s felmeddelanden.

Händelser från testmiljön (Acceptance och eReKo-test) skickas aldrig.

Lägg till en adress

  1. Öppna Företag → Integrationer → Webhooks till affärssystem. Bara ägare och administratörer ser kortet.

  2. Välj Lägg till adress.

  3. Ange en publik HTTPS-adress och en beskrivning, till exempel "Monitor produktion".

  4. Välj vilka händelser adressen ska få och välj Spara.

  5. Visa eller kopiera Hemlighet för signatur och lägg in den i mottagarens hemlighetshantering.

  6. Välj Skicka test. Mottagaren får händelsen webhook.test, och du ser direkt om den kom fram.

Du kan ha flera adresser, till exempel en för affärssystemet och en för ett lagersystem. Under Senaste besked ser du de 20 senaste beskeden med status och antal försök.

Så ser ett besked ut

{
  "id": "75df1723-cb10-4f41-bd59-e7c4fcfb4927",
  "type": "vehicle.registered",
  "created_at": "2026-10-29T22:19:00Z",
  "environment": "production",
  "data": {
    "vin": "YSSA075N0TBK00089",
    "reg_number": "ABC123",
    "registration_id": 1106,
    "source": "ereko",
    "status": "Godkänd",
    "ts_application_status": "approved",
    "ts_case_reference_id": "…",
    "dealer_id": "",
    "stock_id": "",
    "order_number": "",
    "registered_at": "2026-10-29T22:19:00Z"
  }
}
  • ecoc.accepted innehåller vin, ivi_message_id, title, version, reference och accepted_at.

  • ecoc.rejected innehåller vin, ivi_message_id, title, rejected_at och messages (RDW:s kod, fält och text).

  • registration.action_required innehåller vin, registration_id, status, ts_application_status och status_message.

  • Saknade uppgifter skickas som tom text, aldrig som null.

Verifiera signaturen

Varje besked har headrarna x-certidrive-event, x-certidrive-delivery, x-certidrive-timestamp och x-certidrive-signature.

  1. Läs rå request body utan att serialisera om den.

  2. Bygg strängen <x-certidrive-timestamp>.<rå body>.

  3. Beräkna HMAC-SHA256 med hemligheten och jämför i konstant tid med hexvärdet efter sha256= i x-certidrive-signature.

  4. Avvisa timestamps som är äldre än några minuter.

  5. Spara beskedet med id som idempotensnyckel och svara sedan med HTTP 2xx.

Exempel i Node.js:

const crypto = require("crypto");
function isValid(rawBody, headers, secret) {
  const timestamp = headers["x-certidrive-timestamp"];
  const expected = crypto.createHmac("sha256", secret).update(`${timestamp}.${rawBody}`).digest("hex");
  const given = String(headers["x-certidrive-signature"] || "").replace(/^sha256=/, "");
  return given.length === expected.length && crypto.timingSafeEqual(Buffer.from(given), Buffer.from(expected));
}

Leverans och återförsök

  • Besked från Skapa eCoC och National Access Point skickas direkt när RDW har svarat.

  • Registreringsnummer från eReKo hämtas från Transportstyrelsen var 5:e minut och skickas så fort de hämtats. Övriga besked skickas inom cirka 5 minuter.

  • Svarar mottagaren inte med 2xx görs nya försök med ökande väntetid (1, 2, 4 … upp till 6 timmar), högst tio försök. Besked som inte levererats inom 72 timmar ges upp.

  • Samma händelse kan i undantagsfall komma två gånger. Använd id för att känna igen dubbletter.

  • En avstängd adress behåller sina besked i 72 timmar och får dem när den slås på igen.

Viktigt att veta

  • Adressen måste vara en publik https://-adress. Interna adresser och IP-adresser i privata nät godtas inte.

  • Väljer du Ny hemlighet måste mottagaren uppdateras direkt, annars godkänns inte signaturen.

  • Personnummer och ägaruppgifter skickas inte. Hämta dem vid behov med registration_id via API:t.

Vanliga problem

Testet misslyckas med HTTP 401 eller 403
Mottagaren avvisar anropet. Kontrollera att den inte kräver inloggning och att den verifierar signaturen med rätt hemlighet.

Inget besked kommer för ett registrerat fordon
Kontrollera att adressen är aktiv, att händelsen är vald och att registreringen gjordes i produktion.

Fick du svar på din fråga?