# Consent Submission Request

The **Consent Submission Interface** allows you to transmit user consent decisions to JENTIS when consent is collected outside of the JENTIS Base Code.

This interface is required if you operate a custom Consent Management Platform (CMP), a native mobile application, or a fully custom frontend where JENTIS does not directly manage consent collection.

By submitting consent decisions to JENTIS, you ensure:

* Legal documentation of user consent
* Storage of consent status per user
* Proper compliance handling within JENTIS
* Correct connector behavior based on active consent

In short:

* Use this interface to send **consent decisions**
* Ensures legal and compliance documentation
* Does not trigger tracking events
* Required when consent is managed externally

To use the JENTIS HTTP API, you must obtain a dedicated **API Key**.

> ⚠️ Important\
> You must create a **Helpdesk ticket in JENTIS** to request access and receive your API key for this endpoint.

Without a valid API key, requests will be rejected.

### API - Definition

## POST /

> Submit data

```json
{"openapi":"3.0.1","info":{"title":"JENTIS Custom API","version":"1.0.0"},"servers":[{"url":"https://hash.customer.com"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT"}},"schemas":{"ConsentSubmission":{"type":"object","required":["version"],"properties":{"version":{"type":"string","description":"The version of the current API definition."},"system":{"type":"object","description":"The property \"system\" includes information provided by the device or platform that sends data to JENTIS.","required":["type","timestamp","navigator-userAgent","initiator"],"properties":{"type":{"type":"string","description":"The type should be a keyword referencing the device platform, such as web, app, smart TV, etc."},"timestamp":{"type":"integer","description":"The number of milliseconds since midnight January 1, 1970 00:00:00 UTC."},"navigator-userAgent":{"type":"string","description":"The Navigator UserAgent is a string identifying the browser and operating system to the web server, enabling detection of the client's environment for optimization or compatibility purposes."},"initiator":{"type":"string","description":"The \"initiator\" property is the ID of the JENTIS state that was executed by calling this API request."},"href":{"type":"string","description":"The value of the href property is passed to the HTTP header field \"Referer\" on outgoing JENTIS requests. For proper tracking, set a value."},"requestType":{"type":"string","description":"When using the type \"web\", it is possible to send data via the browser's Beacon API (Navigator.sendBeacon) to the API endpoint. When this is done, you must add the requestType \"sendBeacon\" here."},"domain":{"type":"string","description":"When using the type \"web,\" this is a required field for setting the server-side first-party cookie domain for storing the JENTIS user ID."}}},"configuration":{"type":"object","required":["container","environment"],"properties":{"container":{"description":"The container short name is provided by the JENTIS DCP and can be found in the container settings.","type":"string"},"environment":{"description":"The environment for each container can be distinguished between live and stage, allowing for separate configurations and testing scenarios.","type":"string"},"version":{"description":"The property \"version\" is required when debugging. Enter the specific container version you want to test in this field.","type":"string"},"debugcode":{"description":"The property \"debugcode\" is required for debugging a version. Enter the debug code provided by the JENTIS Preview/Debug Monitor in this field.","type":"string"}}},"data":{"type":"object","required":["identifier","consent"],"properties":{"identifier":{"type":"object","required":["user","consent"],"properties":{"user":{"type":"object","description":"The property \"user\" stores the identifier and indicates whether the user is new or existing.","properties":{"id":{"type":"string","description":"The property \"id\" is a unique identifier for the user. This value should be stored and maintained for as long as possible on the corresponding platform."},"action":{"type":"string","enum":["new","update"],"description":"The property \"action\" indicates whether it is the user's first request or if the user is already existing. If it is the first request, the value should be \"new\" Otherwise, it should be \"update\"."}}},"consent":{"type":"object","description":"The property \"consent\" stores the identifier and indicates whether the consent is new or existing.","properties":{"id":{"type":"string","description":"The property \"id\" is a unique identifier for the consent. This value should be stored and maintained for as long as possible on the corresponding platform. The ID must be in the UUIDv4 format."},"action":{"type":"string","enum":["new","update"],"description":"The property \"action\" indicates whether it is the user's first consent request or if the user already has an existing consent. If it is the first request, the value should be \"new\" Otherwise, it should be \"update\"."}}}}},"consent":{"type":"object","required":["lastupdate","data","send","userconsent","vendors","vendorsChanged"],"properties":{"lastupdate":{"type":"integer","description":"The number of milliseconds since midnight January 1, 1970 00:00:00 UTC."},"data":{"type":"object","description":"The property \"data\" can collect key-value pairs that are additionally stored with the consent information in the JENTIS consent database."},"vendors":{"type":"object","description":"The property \"vendors\" describes the consent status of the specified JENTIS Vendor-ID. It can be true, false, or \"ncm\" (Essential Mode).","additionalProperties":{"oneOf":[{"type":"string","enum":["ncm"]},{"type":"boolean"}]}},"vendorsChanged":{"type":"object","description":"The \"vendorsChanged\" property describes the consent status of the specified JENTIS Vendor-ID(s) as Keys that have changed. It should only include JENTIS Vendor-IDs where the consent status has altered from the last known consent status.","additionalProperties":{"oneOf":[{"type":"string","enum":["ncm"]},{"type":"boolean"}]}}}}}}}}}},"paths":{"/":{"post":{"summary":"Submit data","requestBody":{"required":true,"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/ConsentSubmission"}]}}}},"responses":{"200":{"description":"Data submitted successfully"}}}}}}
```

## The ConsentSubmission object

```json
{"openapi":"3.0.1","info":{"title":"JENTIS Custom API","version":"1.0.0"},"components":{"schemas":{"ConsentSubmission":{"type":"object","required":["version"],"properties":{"version":{"type":"string","description":"The version of the current API definition."},"system":{"type":"object","description":"The property \"system\" includes information provided by the device or platform that sends data to JENTIS.","required":["type","timestamp","navigator-userAgent","initiator"],"properties":{"type":{"type":"string","description":"The type should be a keyword referencing the device platform, such as web, app, smart TV, etc."},"timestamp":{"type":"integer","description":"The number of milliseconds since midnight January 1, 1970 00:00:00 UTC."},"navigator-userAgent":{"type":"string","description":"The Navigator UserAgent is a string identifying the browser and operating system to the web server, enabling detection of the client's environment for optimization or compatibility purposes."},"initiator":{"type":"string","description":"The \"initiator\" property is the ID of the JENTIS state that was executed by calling this API request."},"href":{"type":"string","description":"The value of the href property is passed to the HTTP header field \"Referer\" on outgoing JENTIS requests. For proper tracking, set a value."},"requestType":{"type":"string","description":"When using the type \"web\", it is possible to send data via the browser's Beacon API (Navigator.sendBeacon) to the API endpoint. When this is done, you must add the requestType \"sendBeacon\" here."},"domain":{"type":"string","description":"When using the type \"web,\" this is a required field for setting the server-side first-party cookie domain for storing the JENTIS user ID."}}},"configuration":{"type":"object","required":["container","environment"],"properties":{"container":{"description":"The container short name is provided by the JENTIS DCP and can be found in the container settings.","type":"string"},"environment":{"description":"The environment for each container can be distinguished between live and stage, allowing for separate configurations and testing scenarios.","type":"string"},"version":{"description":"The property \"version\" is required when debugging. Enter the specific container version you want to test in this field.","type":"string"},"debugcode":{"description":"The property \"debugcode\" is required for debugging a version. Enter the debug code provided by the JENTIS Preview/Debug Monitor in this field.","type":"string"}}},"data":{"type":"object","required":["identifier","consent"],"properties":{"identifier":{"type":"object","required":["user","consent"],"properties":{"user":{"type":"object","description":"The property \"user\" stores the identifier and indicates whether the user is new or existing.","properties":{"id":{"type":"string","description":"The property \"id\" is a unique identifier for the user. This value should be stored and maintained for as long as possible on the corresponding platform."},"action":{"type":"string","enum":["new","update"],"description":"The property \"action\" indicates whether it is the user's first request or if the user is already existing. If it is the first request, the value should be \"new\" Otherwise, it should be \"update\"."}}},"consent":{"type":"object","description":"The property \"consent\" stores the identifier and indicates whether the consent is new or existing.","properties":{"id":{"type":"string","description":"The property \"id\" is a unique identifier for the consent. This value should be stored and maintained for as long as possible on the corresponding platform. The ID must be in the UUIDv4 format."},"action":{"type":"string","enum":["new","update"],"description":"The property \"action\" indicates whether it is the user's first consent request or if the user already has an existing consent. If it is the first request, the value should be \"new\" Otherwise, it should be \"update\"."}}}}},"consent":{"type":"object","required":["lastupdate","data","send","userconsent","vendors","vendorsChanged"],"properties":{"lastupdate":{"type":"integer","description":"The number of milliseconds since midnight January 1, 1970 00:00:00 UTC."},"data":{"type":"object","description":"The property \"data\" can collect key-value pairs that are additionally stored with the consent information in the JENTIS consent database."},"vendors":{"type":"object","description":"The property \"vendors\" describes the consent status of the specified JENTIS Vendor-ID. It can be true, false, or \"ncm\" (Essential Mode).","additionalProperties":{"oneOf":[{"type":"string","enum":["ncm"]},{"type":"boolean"}]}},"vendorsChanged":{"type":"object","description":"The \"vendorsChanged\" property describes the consent status of the specified JENTIS Vendor-ID(s) as Keys that have changed. It should only include JENTIS Vendor-IDs where the consent status has altered from the last known consent status.","additionalProperties":{"oneOf":[{"type":"string","enum":["ncm"]},{"type":"boolean"}]}}}}}}}}}}}
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.jentis.com/http-api-tracking/submission-interfaces/consent-submission-request.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
