BitelioBitelio

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.

POST
/v1/retention/push-subscriptions

Authorization

ApiKeyAuth

AuthorizationBearer <token>

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

contactId*string
Lengthlength <= 100
origin*string
Formaturi
Lengthlength <= 250
subscription*
consent*unknown
scope?string
Default"SURVEY"
Value in"SURVEY" | "RETENTION"
timeZone?string

Optional device-declared IANA time zone, captured only after explicit permission and tenant/customer verification.

Lengthlength <= 100
[key: string]?never

Response 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"
}
Empty
Empty
Empty
Empty
Empty