Få besked med detsamma
Skapa, lista och ta bort prenumerationer på ändringar för en fastighet eller ett företag, levererat som signerade CloudEvents-webhooks till en URL som du själv anger.
Nøkkelen virker i dag på Leietaker-API og dagens Data API; Placepoint API godtar samme nøkkel når det lanseres.
Prøv med et ekte bygg: Oslo S, Jernbanetorget 1
- Provnyckel med GitHub på under en minut
- Signerade webhooks
- CloudEvents 1.0
- At-least-once-leverans
- Idempotent skapande
ℹ️ Slutpunkten svarar när Placepoint API är lanserat. Kontraktet nedan är slutgiltigt, Hyresgäst-API svarar redan.
Från ändring till avisering
Anropen svarar på hur ett system får besked när något faktiskt ändras, i stället för att polla ett objekt på nytt varje timme. Banker som följer upp pantsäkerhet behöver avisering när en ägare eller en inteckning ändras, förvaltare behöver avisering när en ny transaktion registreras på en fastighet i portföljen, och system som övervakar många företag samtidigt slipper hämta varje företag på nytt bara för att upptäcka att inget har hänt.
En prenumeration riktas mot antingen en fastighet eller ett företag och en lista med händelsetyper, till exempel OWNER_CHANGED eller TRANSACTION_REGISTERED. Varje händelse levereras som en signerad CloudEvents 1.0-webhook, och leveransen är at-least-once, så mottagaren måste hantera att samma id kan komma mer än en gång.
Idempotent skapande
createSubscriptionkräver enIdempotency-Key-header, så en retry av samma skapande ger samma svar i 24 timmar i stället för en dubblerad prenumeration.Signerat och verifierbart
Varje webhook bär headernPlacepoint-Signature, att verifiera med HMAC innan du litar på innehållet.At-least-once, hantera dubbletter
Ett misslyckat försök upprepas i upp till 24 timmar, så sammaidkan komma mer än en gång på mottagarsidan.
Fält som faktiskt säger något
Tre anrop täcker hela livscykeln för en prenumeration, alla med scopet subscriptions.write.
Skapa en prenumeration.
/subscriptionscurl -X POST "https://data.placepoint.no/subscriptions" \
-H "Authorization: Bearer $TOKEN" \
-H "Idempotency-Key: $(uuidgen)" \
-H "Content-Type: application/json" \
-d '{"target":{"kind":"PROPERTY","country":"NO","cadastreId":"0301-207-76-0-0"},"events":["OWNER_CHANGED","TRANSACTION_REGISTERED"],"webhookUrl":"https://example.com/webhooks/placepoint","secret":"whsec_REPLACE_WITH_32_RANDOM_CHARS"}'
svar · 201
{
"id": "sub_9f2c1a",
"target": {
"kind": "PROPERTY",
"country": "NO",
"cadastreId": "0301-207-76-0-0"
},
"events": [
"OWNER_CHANGED",
"TRANSACTION_REGISTERED"
],
"webhookUrl": "https://example.com/webhooks/placepoint",
"status": "ACTIVE",
"createdAt": "2026-09-07T10:15:00Z"
}
Lista egna prenumerationer
listSubscriptions visar egna aktiva och pausade prenumerationer.
/subscriptionscurl -X GET "https://data.placepoint.no/subscriptions" \
-H "Authorization: Bearer $TOKEN"
svar · 200
{
"items": [
{
"id": "sub_9f2c1a",
"target": {
"kind": "PROPERTY",
"country": "NO",
"cadastreId": "0301-207-76-0-0"
},
"events": [
"OWNER_CHANGED",
"TRANSACTION_REGISTERED"
],
"webhookUrl": "https://example.com/webhooks/placepoint",
"status": "ACTIVE",
"createdAt": "2026-09-07T10:15:00Z"
}
]
}
Ta bort en prenumeration
deleteSubscription stoppar leveransen omedelbart.
/subscriptions/{subscriptionId}curl -X DELETE "https://data.placepoint.no/subscriptions/sub_9f2c1a" \
-H "Authorization: Bearer $TOKEN"
En levererad händelse ser ut så här:
{
"specversion": "1.0",
"type": "no.placepoint.property.owner_changed",
"source": "https://data.placepoint.no/subscriptions/sub_9f2c1a",
"id": "evt_4b2a1c",
"time": "2026-09-07T10:15:00Z",
"datacontenttype": "application/json",
"data": {
"country": "NO",
"cadastreId": "0301-208-15-0-0",
"changedField": "owners"
}
}
Verifiera signaturen i headern Placepoint-Signature: t=<unix>,v1=<hex> innan du litar på innehållet:
const crypto = require("node:crypto");
function isValid(header, rawBody, secret) {
const [t, v1] = header.split(",").map((p) => p.split("=")[1]);
const expected = crypto
.createHmac("sha256", secret)
.update(`${t}.${rawBody}`)
.digest("hex");
return crypto.timingSafeEqual(Buffer.from(v1), Buffer.from(expected));
}
Tre steg till första svaret
Logga in med GitHub
Ett klick, under en minut, inget betalkort. Nyckeln kommer tillbaka till den här sidan.Anropa slutpunkten
Curl-anropet ovan fylls i med din nyckel när du är inloggad.createSubscriptionbehöver mål (fastighet eller företag), händelsetyper och enIdempotency-Key.Verkställ svaret
Verifiera signaturen iPlacepoint-Signaturemed din hemlighet innan du litar på innehållet, med funktionen i exemplet ovan.
Data och källor
Aviseringarna utlöses av samma ändringar som resten av API:et exponerar: ägarbyte, ny transaktion och motsvarande händelser på fastigheten eller företaget som prenumerationen gäller.
Se även
Frågor och svar
Vad händer om jag skickar samma skapande två gånger?
Idempotency-Key-headern gör en retry säker: samma nyckel inom 24 timmar ger samma svar tillbaka i stället för en ny prenumeration.Kan samma händelse komma flera gånger?
id kan komma mer än en gång.Hur verifierar jag att en webhook faktiskt kommer från Placepoint?
Placepoint-Signature: t=<unix>,v1=<hex> bär en HMAC-signatur över tidsstämpel och body. Räkna ut samma HMAC med din hemlighet och jämför, som i exemplet ovan.Vilka händelsetyper kan jag prenumerera på?
OWNER_CHANGED och TRANSACTION_REGISTERED är kärnan, med fler händelsetyper på fastighet och företag efter hand som API:et byggs ut.