api.hero.badge

api.hero.title_part1
api.hero.title_part2

api.hero.subtitle

api.quickstart.title

01

api.quickstart.step1_title

api.quickstart.step1_desc

02

api.quickstart.step2_title

api.quickstart.step2_desc

03

api.quickstart.step3_title

api.quickstart.step3_desc

api.auth_example.label
# api.auth_example.login_comment
curl -X POST https://live.veribenim.com/api/auth/console \
  -H "Content-Type: application/json" \
  -d '{"email":"siz@domain.com","password":"****"}'

# api.auth_example.response
{
  "token": "1|abc123...",
  "user": { "id": 1, "name": "Ad Soyad" }
}

# api.auth_example.next_requests
curl https://live.veribenim.com/api/environments \
  -H "Authorization: Bearer 1|abc123..."

api.endpoints_ref.title

api.endpoints_ref.base_url_note https://live.veribenim.com

POST/api/impressions/{token} api.endpoints_ref.public
POST/api/consents/{token}/log api.endpoints_ref.public
GET/api/preferences/{token} api.endpoints_ref.public
POST/api/preferences/{token} api.endpoints_ref.public
POST/api/dsar/{token} api.endpoints_ref.public
GET/api/environments api.endpoints_ref.auth
GET/api/cookies/{token}/analytics api.endpoints_ref.auth
GET/api/cookies/{token}/compliance-score api.endpoints_ref.auth
GET/api/cookies/{token}/ropa-export api.endpoints_ref.auth
POST/api/cookies/{token}/generate-bundle api.endpoints_ref.auth
GET/api/cookies/{token}/dsar api.endpoints_ref.auth
GET/api/cookies/{token}/breaches api.endpoints_ref.auth
GET/POST/api/cookies/{token}/webhooks api.endpoints_ref.auth

api.webhook.title

api.webhook.signature_note X-Veribenim-Signature

api.webhook.supported_events

consent.accept_all

api.webhook.event_accept_all

consent.reject_all

api.webhook.event_reject_all

consent.save_preferences

api.webhook.event_save_pref

dsar.created

api.webhook.event_dsar_created

dsar.resolved

api.webhook.event_dsar_resolved

breach.created

api.webhook.event_breach_created

breach.reported

api.webhook.event_breach_reported

api.webhook.payload_example
{
  "event": "consent.accept_all",
  "environment": "abc123...",
  "timestamp": "2026-03-28T10:00:00Z",
  "data": {
    "session_id": "uuid-here",
    "ip_masked": "192.168.***.*",
    "categories": {
      "analytics": true,
      "marketing": true,
      "functional": true
    }
  }
}
api.webhook.signature_verification
const crypto = require('crypto');

function verifySignature(rawBody, secret, signature) {
  const expected = 'sha256=' +
    crypto.createHmac('sha256', secret)
          .update(rawBody)
          .digest('hex');
  return crypto.timingSafeEqual(
    Buffer.from(expected),
    Buffer.from(signature)
  );
}

app.post('/webhook', express.raw({type: 'application/json'}), (req, res) => {
  const sig = req.headers['x-veribenim-signature'];
  if (!verifySignature(req.body, process.env.VBN_SECRET, sig)) {
    return res.status(401).send('Unauthorized');
  }
  const { event, data } = JSON.parse(req.body);
  // İşle
  res.sendStatus(200);
});

api.features.stateless_auth_title

api.features.stateless_auth_desc

api.features.json_response_title

api.features.json_response_desc

api.features.cors_title

api.features.cors_desc