Publish the consent banner
Sends the whole banner. Any change to the wording, categories, links or privacy notice version
publishes a new, immutable version (201); an identical banner publishes nothing (200, the
current version). Shoppers are asked again only when the banner offers a new category or the
new privacy notice version is marked notice_purpose_change.
tenantKeybearerAuthX-Tenant-Key<token>The public store key (pk_live_…). Required on every call.
AuthorizationBearer <token>A customer token from POST /v1/auth/login, or a merchant API key, on routes that need one.
X-Client-IP?stringOptional. IP address of the shopper (one IPv4/IPv6, no port, no list). Honoured only together with a valid X-Tenant-Secret; ignored otherwise. Used for rate limits and recorded with form submissions.
X-Tenant-Secret?stringOptional here. Server secret of the store: server-to-server only, never from a browser. Enables X-Client-IP.
application/json- body
PUT /api/v1/merchant/consent/banner. The whole banner, every time (a publish, not a patch).
Reject parity is enforced here, on top of the content shape having no way to express a breach:
labels.reject_allis required, likelabels.accept_all;reject_all/show_reject_allmay only be sent as true ("Reject all" cannot be hidden or switched off);- no category may be pre-ticked (
preselected,default,checked,enabledmay only be sent as false); - strictly necessary is explained (
strictly_necessary), never offered as a choice; - at least one category is offered, each once.
privacy_notice_version*string^[A-Za-z0-9][A-Za-z0-9._\-]{0,31}$length <= 32notice_purpose_change?booleantitle*stringlength <= 120body*stringlength <= 2000labels*links*strictly_necessary*categories*array<>1 <= items <= 3reject_all?unknown"yes""on""1"1"true"trueshow_reject_all?unknown"yes""on""1"1"true"truereject_all_enabled?unknown"yes""on""1"1"true"trueresponse?stringapplication/jsoncurl -X PUT 'https://api.elaraone.app/api/v1/merchant/consent/banner' \ -H 'X-Tenant-Key: pk_live_…' \ -H 'X-Tenant-Secret: your-server-secret' \ -H 'Content-Type: application/json' \ -d '{ "privacy_notice_version": "string", "title": "string", "body": "string", "labels": { "accept_all": "string", "reject_all": "string", "manage": "string", "save": "string", "settings_link": "string" }, "links": { "privacy_notice": "string" }, "strictly_necessary": { "label": "string", "description": "string" }, "categories": [ { "key": "analytics", "label": "string", "description": "string" } ]}'"string"Get the consent banner GET
Previous Page
Get a consent record GET
One consent record: the choice, where and when it was made, the banner, privacy notice and storage register versions in force, whether it was replaced, and the banner version exactly as the shopper saw it. `404 NOT_FOUND` for an unknown id or a record removed by retention.