Oversikt
YOGY sender et HTTP POST-kall til det konfigurerte endepunktet når innmeldingen og medlemskontoen er lagret. Eventtypen er alltid signup.created.
Levering
POSTapplication/jsonsignup.created5 sekunderEndepunktet bør bruke HTTPS og svare med en 2xx-status raskt. Feil, tidsavbrudd og andre statuser logges hos YOGY, men innmeldingen påvirkes ikke og leveringen forsøkes ikke på nytt automatisk.
Headere
| Header | Verdi |
|---|---|
X-Yogy-Event | signup.created |
X-Yogy-Delivery | Unik UUID for denne leveringen |
X-Yogy-Signature | sha256=<hex> når hemmelighet er konfigurert |
Payload
Følgende JSON sendes i request body. Felter med null er ikke tilgjengelige for den aktuelle registreringen.
{
"event": "signup.created",
"occurredAt": "2026-08-20T10:00:00.000Z",
"data": {
"signup": {
"id": "signup-id", "name": "Ada Lovelace", "email": "ada@example.com",
"phone": "12345678", "message": "Jeg gleder meg", "status": "ACTIVATED",
"binding": false, "billingFrequency": "MONTHLY", "createdAt": "2026-08-20T10:00:00.000Z"
},
"member": {
"id": "member-id", "membershipActive": true, "memberStatus": "ACTIVE",
"membershipActivatedAt": "2026-08-20T10:00:00.000Z"
},
"membership": {
"binding": false, "billingFrequency": "MONTHLY", "billingFrequencyLabel": "Månedlig",
"pricing": {
"currency": "NOK", "monthlyAmount": 799, "billingPeriodMonths": 1,
"invoiceAmount": 799, "discountPercent": 0
}
},
"membershipPlan": {
"id": "plan-id", "slug": "yoga", "name": "Yoga",
"priceWithBinding": 699, "priceWithoutBinding": 799
}
}
}
Verifiser signaturen
Når SIGNUP_WEBHOOK_SECRET er satt, beregner YOGY HMAC SHA-256 av den rå JSON-bodyen. Sammenlign verdien med X-Yogy-Signature før du parser eller behandler payloaden.
const crypto = require('crypto');
function isValidSignature(rawBody, header, secret) {
const expected = 'sha256=' + crypto.createHmac('sha256', secret)
.update(rawBody).digest('hex');
if ((header || '').length !== expected.length) return false;
return crypto.timingSafeEqual(Buffer.from(header || ''), Buffer.from(expected));
}
Oppsett
Legg disse variablene i App Service eller i prosjektets .env-fil:
SIGNUP_WEBHOOK_URL=https://din-tjeneste.no/yogy/webhook
SIGNUP_WEBHOOK_SECRET=en-lang-tilfeldig-delt-hemmelighet
For produksjon settes begge verdiene direkte under Azure App Service > Environment variables. De trenger ikke være lagret i GitHub.