{
"event": {
"id": "3f1c9a52-7b4e-4d21-9c6a-0e5d8b2f4a17",
"type": "price-terms-acceptance-required",
"timestamp": 1793610900
},
"payload": {
"resource": "price-change",
"id": 7301,
"startsAt": "2026-11-30T23:00:00Z",
"voucherSetIds": [
2030
]
}
}Price terms
price-terms-acceptance-required
Price acceptance is required
WEBHOOK
price-terms-acceptance-required
{
"event": {
"id": "3f1c9a52-7b4e-4d21-9c6a-0e5d8b2f4a17",
"type": "price-terms-acceptance-required",
"timestamp": 1793610900
},
"payload": {
"resource": "price-change",
"id": 7301,
"startsAt": "2026-11-30T23:00:00Z",
"voucherSetIds": [
2030
]
}
}Audience: consumer · Trigger: a price change started with sets you have not accepted · Payload:
Verify the
{resource, id, startsAt, voucherSetIds} · Permission: subscribing needs view-consumer-pricing
Pricing event. Subscribing requires
view-consumer-pricing. See Pricing webhooks.x-signing-signature header before you trust the body (Verifying signatures). Deliveries are at least once and unordered; deduplicate on event.id.Authorizations
Your API key in Authorization: Bearer <key>. Use vk_test_… keys against the sandbox and vk_live_… keys against production.
Headers
t=<unix seconds>,s1=<hex HMAC-SHA256 of "<raw body>.<t>" with your first secret>,s2=<the same with your second secret>. Accept the delivery when either signature matches. See Verifying signatures.
Body
application/json
Response
Acknowledge receipt within 15 seconds.