wozapidocs

OAuth-koppeling voor softwareleveranciers

Naast de API-key ondersteunt de WOZ API OAuth 2.0 (authorization code met PKCE). Daarmee bouw je WOZ-waarden in je eigen software in, terwijl elke klant een eigen WozApi-account en eigen credits gebruikt. Voor jou als leverancier is de koppeling gratis. Het productverhaal en de aanvraag van client-credentials staan op woz-api.nl/woz-api-koppeling; deze pagina is de technische referentie.

Endpoints

EndpointDoel
GET /connect/authorizeAutorisatie: hier stuur je de browser van je klant heen
POST /connect/tokenCode inwisselen voor tokens, en refresh tokens vernieuwen
POST /connect/revokeEen token intrekken (bijvoorbeeld bij offboarding in jouw software)
GET /.well-known/openid-configurationDiscovery-document voor autoconfiguratie van OAuth-libraries

Basis-URL: https://woz-api.nl. Alleen de authorization code flow met PKCE (S256) is toegestaan, met refresh tokens via de scope offline_access. Redirect-URI's matchen exact; https is verplicht, behalve op localhost voor ontwikkelwerk.

Scopes

ScopeGeeft recht op
woz.lookupWOZ-, BAG- en perceelgegevens opvragen op de credits van de gekoppelde klant (1 credit per uniek adres; herhalen binnen 7 dagen is gratis)
account.saldoHet creditsaldo van de gekoppelde klant lezen via GET /Api/Credits
offline_accessEen refresh token, zodat de koppeling blijft werken zonder de klant opnieuw te vragen

Het access token bevat geen accountgegevens van de klant: geen e-mailadres, geen naam. Jouw software kent zijn eigen gebruiker al; van ons krijgt hij alleen data en saldo.

De flow, stap voor stap

# 1. Stuur de browser van je klant naar het authorize-endpoint
https://woz-api.nl/connect/authorize?client_id=JOUW_CLIENT_ID
  &response_type=code
  &redirect_uri=https://jouwsoftware.nl/wozapi/callback
  &scope=woz.lookup%20account.saldo%20offline_access
  &state=RANDOM_STATE
  &code_challenge=S256_CHALLENGE
  &code_challenge_method=S256
  &login_hint=klant@voorbeeld.nl
  &objecten=600

# 2. Na inloggen of registreren en toestemming komt de browser terug:
https://jouwsoftware.nl/wozapi/callback?code=DE_CODE&state=RANDOM_STATE

# 3. Wissel de code server-side in voor tokens
curl -X POST https://woz-api.nl/connect/token \
  -d grant_type=authorization_code \
  -d code=DE_CODE \
  -d redirect_uri=https://jouwsoftware.nl/wozapi/callback \
  -d client_id=JOUW_CLIENT_ID \
  -d client_secret=JOUW_CLIENT_SECRET \
  -d code_verifier=DE_PKCE_VERIFIER

# Antwoord:
# { "access_token": "...", "token_type": "Bearer", "expires_in": 3600,
#   "refresh_token": "...", "scope": "woz.lookup account.saldo offline_access" }

# 4. Vraag per object de WOZ-waarde op, op de credits van je klant
curl "https://woz-api.nl/Api/Adres?adres=Spuistraat%2036C,%201012TT%20Amsterdam" \
  -H "Authorization: Bearer ACCESS_TOKEN"

# 5. Ververs het access token wanneer het verlopen is (rotatie: je krijgt
#    ook een NIEUW refresh token terug; bewaar altijd het laatste)
curl -X POST https://woz-api.nl/connect/token \
  -d grant_type=refresh_token \
  -d refresh_token=REFRESH_TOKEN \
  -d client_id=JOUW_CLIENT_ID \
  -d client_secret=JOUW_CLIENT_SECRET

Onboarding-hints

Twee optionele parameters op de authorize-URL maken de onboarding voor je klant vrijwel frictieloos:

ParameterEffect
login_hintHet e-mailadres van je klant staat voor-ingevuld bij inloggen of registreren
objectenAantal objecten of verhuurbare eenheden. De onboarding toont dan een creditadvies ("jouw software gaf 600 objecten door; we raden 600 credits aan") met de prijs erbij. Je klant kan het advies volgen, aanpassen of overslaan.

Registreren in de flow is passwordless: e-mailadres plus een code van 6 cijfers uit de mail, geen wachtwoord. Een nieuw account krijgt 10 gratis credits, dus de koppeling werkt direct, ook voordat er betaald is.

Tokens en levensduren

TokenLevensduurBijzonderheden
Authorization codeenkele minutenEenmalig bruikbaar, PKCE verplicht
Access token60 minutenMeesturen als Authorization: Bearer
Refresh token90 dagen, glijdendRoteert bij elk gebruik; bewaar altijd het laatst ontvangen exemplaar

Saldo en foutafhandeling

Zelf de kosten dragen?

Dat kan zonder OAuth: neem een gewoon WozApi-account met API-key en doe de calls server-side op eigen saldo. De OAuth-koppeling is bedoeld voor het model waarin jouw klanten zelf afrekenen bij WozApi.

Client-credentials aanvragen

Vraag je client_id en client_secret aan via woz-api.nl/woz-api-koppeling. Daar staat ook een demo waarin je de hele flow doorloopt zoals jouw klant hem ervaart, inclusief redirect-URI's voor localhost tijdens het bouwen.