Production

Authentication

M.I.A. gebruikt OAuth2 client credentials: een server-to-server flow zonder gebruiker en zonder refresh token.

1. Token opvragen

Stuur je credentials in de Authorization: Basic-header. Laat scope weg om alle scopes van je client te krijgen.

curl
curl -X POST "https://mia.e-mederi.be/oauth/token" \
  -u "YOUR_CLIENT_ID:YOUR_CLIENT_SECRET" \
  -H "Content-Type: application/x-www-form-urlencoded" \
  -d "grant_type=client_credentials" \
  -d "scope=practices:read vacancies:read"
Antwoord
{
  "access_token": "mia_…",
  "token_type": "Bearer",
  "expires_in": 3600,
  "scope": "practices:read vacancies:read"
}

2. Het token gebruiken

curl
curl "https://mia.e-mederi.be/v1/practices?page=1&per_page=25" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Accept: application/json"
PHP
<?php

$ch = curl_init("https://mia.e-mederi.be/v1/practices");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER     => ["Authorization: Bearer YOUR_ACCESS_TOKEN"],
]);

$response = json_decode((string) curl_exec($ch), true);
curl_close($ch);

foreach ($response["data"] as $practice) {
    echo $practice["practice_id"], " ", $practice["name"], PHP_EOL;
}
JavaScript (fetch)
const response = await fetch("https://mia.e-mederi.be/v1/practices", {
  headers: { Authorization: `Bearer ${YOUR_ACCESS_TOKEN}` }
});

const { data, meta } = await response.json();
console.log(meta.pagination.total, data.length);

Scopes

Je krijgt enkel de scopes die Mederi aan jouw client toekende. Vraag je een token aan zonder scope, dan krijg je ze allemaal. Het veld scope in het antwoord toont welke dat zijn. Onderstaande lijst is het volledige overzicht, niet wat jij mag.

ScopeGeeft toegang tot
practices:readPraktijken lezen
vacancies:readVacatures lezen
candidates:readCandidate-identiteiten lezen
applications:readSollicitaties lezen
applications:writeSollicitaties aanmaken en verzonden sollicitaties vastleggen
recruitment-cases:readRecruitment cases lezen
webhooks:readEigen webhook subscriptions lezen
webhooks:writeEigen webhook subscriptions beheren
salesforce-mirror:writeSalesforce-records naar de M.I.A.-mirror schrijven (alleen de Salesforce Mirror-client)

Foutcodes

StatusWanneer
400 invalid_requestgrant_type ontbreekt of het verzoek klopt niet.
400 invalid_scopeGevraagde scope bestaat niet of is niet aan jouw client toegekend.
400 unsupported_grant_typeAlleen client_credentials bestaat.
401 invalid_clientOnbekende client, verkeerd secret, ingetrokken of verlopen client. Bewust één melding voor alle vier.
401 UNAUTHENTICATEDOp /v1: geen, verlopen of ingetrokken token.
403 INSUFFICIENT_SCOPEGeldig token, maar je mist de vereiste scope. Een nieuw token helpt niet.
Bewaar je secret veilig. Het wordt één keer getoond bij aanmaak of rotatie. M.I.A. bewaart alleen een hash en kan het niet opnieuw tonen. Kwijt is roteren. Zet het nooit in een frontend, in versiebeheer of in een URL.