Login

Valimed · ENKK-alapú ellenőrzés

Egészségügyi szakemberek jogosultság-ellenőrzése pecsétszám alapján

Másodpercek alatt kiderül, kié egy pecsétszám, és milyen szakterületen van érvényes működési nyilvántartása. Regisztrációnál pedig azt is ellenőrizzük, hogy a név, a pecsétszám és a szakterület összetartozik-e.

Regisztráció nélkül, azonnal kipróbálható.

Mit tud a Valimed?

🗂️

Valimed

Használja kényelmesen folyamatosan bővülő, több mint 120 000 egészségügyi szakembert tartalmazó adatbázisunkat – működési jogosultságokkal és szakvizsgákkal.

⚡

Azonnali keresés

Pecsétszám alapján azonnal megmutatja a nevet és az érvényes szakterületeket, lejárati dátummal.

✅

Regisztrációs ellenőrzés

Név, pecsétszám és szakterület mezőnkénti ellenőrzése – ideális szakmai regisztrációs folyamatokhoz.

🔎

Automatikus ENKK-lekérdezés

Ha egy pecsétszám még nincs az adatbázisban, a rendszer a pecsétszám és a név alapján automatikusan lekérdezi az ENKK-tól.

🔌

REST API tokenekkel

Egyedi és tömeges ellenőrzés API-n keresztül, Bearer tokenes hozzáféréssel és kvótákkal, saját rendszerbe integrálva.

📄

Tömeges ellenőrzés és webhookok

Listák ellenőrzése CSV, XLS vagy XLSX fájlból, eredmény-exporttal; az aszinkron eredményekről aláírt webhook értesít.

Nézd meg működés közben

Próbáld ki a keresést és a regisztrációs ellenőrzést valós adatokon.

API token: a hozzáférési tokent az előfizetők kapják meg. A token kizárólag a saját szerveroldali kódodban használható – soha ne kerüljön böngészőben futó JavaScriptbe, mobilappba vagy nyilvános repóba. Az alábbi példákban YOUR_API_TOKEN helyőrző szerepel.

1. A folyamat

  1. A felhasználó elküldi a regisztrációs űrlapot (név, pecsétszám, szakterület).
  2. A saját backended meghívja: POST https://valimed.evh.hu/api/v1/validations – type: "registry" (pecsétszám), value: a pecsétszám, name: a megadott név (ez kell, ha a rendszernek az ENKK-ból kell lekérdeznie), jurisdiction: "HU".
  3. 201 válasz: kész eredmény a result mezőben. 202 válasz: status: "pending" – a pecsétszám nincs még az adatbázisban, ENKK-lekérdezés indult.
  4. Függő kérésnél kérdezd le később: GET /api/v1/validations/{id}, vagy állíts be webhookot a validation.completed eseményre.
  5. Döntés a result.outcome alapján, a név egyezését pedig a result.evidence.canonical_name mezővel vesd össze.

Ismételt beküldésnél küldj Idempotency-Key fejlécet (pl. a regisztráció azonosítóját): ugyanarra a kulcsra a rendszer a korábbi kérést adja vissza, nem indít újat.

2. Kérés

POST /api/v1/validations
Authorization: Bearer YOUR_API_TOKEN
Content-Type: application/json
Idempotency-Key: reg-2026-000123

{
  "type": "registry",
  "value": "71486",
  "jurisdiction": "HU",
  "name": "Dr. Minta Anna"
}

3. Válasz

Kész eredmény (HTTP 201):

{
  "id": "01a1a566-75a5-7034-a948-7bb7367f3bb7",
  "query_type": "registry",
  "query_value": "71486",
  "status": "valid",
  "professional_id": 37,
  "completed_at": "2026-11-04T08:20:17.000000Z",
  "result": {
    "outcome": "valid",
    "reason_code": "current_credential",
    "summary": "At least one current credential is active.",
    "evidence": { "canonical_name": "DR. MINTA ANNA" },
    "valid_as_of": "2026-11-04T08:20:17.000000Z",
    "stale_after": "2026-12-04T08:20:17.000000Z"
  }
}

Függő kérés (HTTP 202): {"id": "…", "status": "pending", …} – ilyenkor még nincs result.

outcomeJelentés
validVan érvényes működési jogosultsága.
staleÉrvényes volt, de az adat 30 napnál régebbi.
invalidNincs érvényes jogosultság, vagy kedvezőtlen státusz (pl. felfüggesztés).
pendingENKK-lekérdezés folyamatban.
not_foundAz ENKK-ban sincs ilyen pecsétszám.
ambiguous / errorNem egyértelmű, vagy hiba – kézi ellenőrzés javasolt.

Hibakódok: 401 hiányzó/érvénytelen token, 422 hibás mezők, 429 kvóta túllépve.

4. Backend példa – PHP

<?php
$token = getenv('VALIMED_API_TOKEN'); // csak a szerveren!
$ch = curl_init('https://valimed.evh.hu/api/v1/validations');
curl_setopt_array($ch, [
    CURLOPT_POST => true,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER => [
        'Authorization: Bearer ' . $token,
        'Content-Type: application/json',
        'Accept: application/json',
        'Idempotency-Key: reg-' . $registrationId,
    ],
    CURLOPT_POSTFIELDS => json_encode([
        'type' => 'registry',
        'value' => $_POST['pecsetszam'],
        'jurisdiction' => 'HU',
        'name' => $_POST['nev'],
    ]),
]);
$data = json_decode(curl_exec($ch), true);
$code = curl_getinfo($ch, CURLINFO_HTTP_CODE);

if ($code === 202) {
    // pending: mentsd el $data['id']-t, és később GET /api/v1/validations/{id}
} elseif (in_array($data['result']['outcome'] ?? '', ['valid', 'stale'], true)) {
    $nameOk = normalize($data['result']['evidence']['canonical_name']) === normalize($_POST['nev']);
}

5. Backend példa – Node.js

const res = await fetch('https://valimed.evh.hu/api/v1/validations', {
  method: 'POST',
  headers: {
    Authorization: `Bearer ${process.env.VALIMED_API_TOKEN}`, // csak szerveren
    'Content-Type': 'application/json',
    Accept: 'application/json',
    'Idempotency-Key': `reg-${registrationId}`,
  },
  body: JSON.stringify({ type: 'registry', value: stamp, jurisdiction: 'HU', name }),
});
const data = await res.json();
if (res.status === 202) {
  // pending -> GET /api/v1/validations/${data.id} pár másodpercenként, vagy webhook
} else {
  const ok = ['valid', 'stale'].includes(data.result?.outcome);
}

6. Webhook (ajánlott a függő kérésekhez)

A webhook-végpontot és az aláíró titkot az előfizetői felületen lehet létrehozni. Lezáráskor a rendszer validation.completed eseményt küld, fejlécek: X-Webhook-Id, X-Webhook-Event, X-Webhook-Signature: sha256=… (a nyers törzs HMAC-SHA256 aláírása). Sikertelen kézbesítést a rendszer újrapróbálja, ezért az X-Webhook-Id alapján szűrd a duplikátumokat.

<?php
$secret = getenv('VALIMED_WEBHOOK_SECRET');
$body = file_get_contents('php://input');
$expected = 'sha256=' . hash_hmac('sha256', $body, $secret);
if (! hash_equals($expected, $_SERVER['HTTP_X_WEBHOOK_SIGNATURE'] ?? '')) {
    http_response_code(401); exit;
}
$event = json_decode($body, true); // ugyanaz a szerkezet, mint a GET válasz
http_response_code(200);

Szakterület: az API válasza jelenleg az érvényességi döntést és a nevet adja vissza; a szakterületenkénti egyeztetés (ahogy a demóban látható) egyelőre a demó felületen érhető el – igény esetén az API-ba is bekerülhet.

Felkeltette az érdeklődését?

Vegye fel velünk a kapcsolatot!