Register explicit storefront notification permission
Merchant backend only, retention:view and retention:edit. Authenticate your customer and derive contactId on the server; never trust a browser-supplied contactId. Requires explicit permission, an allowed exact HTTPS origin, and a browser subscription to a supported push service. The endpoint and keys are encrypted. Maximum10 active subscriptions/contact. Existing endpoints cannot be transferred between customers. Limit120 requests/minute shared perproject. Scope defaults to SURVEY. Only an explicit new customer opt-in may pass RETENTION, permitting help and offers in addition to surveys. Existing subscriptions retain SURVEY scope until a new consent is registered. Optional timeZone is the IANA zone reported by the authenticated customer device, for example America/New_York; never infer it from IP or country. It adjusts configured contact hours for 90 days, then falls back to the store zone. It does not expand consent or create a schedule.
Authorization
ApiKeyAuth Autenticación mediante clave de API. Las claves secretas (sk_*) son obligatorias en todos los endpoints excepto /v1/track. Las claves públicas (pk_*) solo funcionan con el endpoint /v1/track para el seguimiento de eventos desde el cliente. El proyecto se deriva automáticamente de la clave.
In: header
Request Body
application/json
length <= 100urilength <= 250"SURVEY""SURVEY" | "RETENTION"Optional device-declared IANA time zone, captured only after explicit permission and tenant/customer verification.
length <= 100Response Body
application/json
curl -X POST "https://bitelio-api.heltia.com/v1/retention/push-subscriptions" \ -H "Content-Type: application/json" \ -d '{ "contactId": "string", "origin": "http://example.com", "subscription": { "endpoint": "http://example.com", "keys": { "p256dh": "string", "auth": "string" } }, "consent": true }'{
"id": "string",
"status": "string"
}