OTP Consent Requests

For a full version, please see the board here.
Consent Requests with OTP
Start the Consent Process
The process for obtaining ETK and/or KVKK begins by using the consent method. A consent request is sent to the recipient, which includes:
"Aydınlatma Metni" and "Onay Metni"
One-time password (OTP) for verification.
A
requestId
, which serves as a reference ID for the operation.
ETK Consent Parameters
consentTypes
Array of Objects
Includes the consent type details.
Yes
title
String
Type of consent (e.g., ETK
).
Yes
types
Array of Strings
Specifies the communication channel(s) through which the approval is requested.["ARAMA"]
for phone calls
["MESAJ"]
for messages
["ARAMA", "MESAJ"]
for both
["EPOSTA"]
for email
Yes
recipientType
String
Type of recipient (BIREYSEL
or TACIR
).
Yes
formId
String
ID of the form sent to the recipient.
Yes
recipient
String
Recipient's phone number or email address.
Yes
verificationType
String
Specifies the approval method (SMS or email OTP). For SMS, it is SMS_OTP
, and for email, it is EPOSTA_OTP
.
Yes
referenceID
String
This identifier is used to create or update user records in the Netmera system.
Yes
Sample ETK Requests
ETK Request SMS OTP
curl --location 'https://restapi.netmera.com/via/consent' \
--header 'X-netmera-api-key: your_rest_api_key' \
--header 'Content-Type: application/json' \
--data '{
"consentTypes": [
{
"title": "ETK",
"types": [
"MESAJ",
"ARAMA"
],
"recipientType": "BIREYSEL"
}
],
"formId": "your_formid",
"recipient": "+90536.......",
"verificationType": "SMS_OTP",
"referenceId": "user1234"
}'
Successful Response (HTTP 200)
{
"requestId": "requestid"
}
ETK Request Email OTP
curl --location 'https://restapi.netmera.com/via/consent' \
--header 'X-netmera-api-key: your_rest_api_key' \
--header 'Content-Type: application/json' \
--data '{
"consentTypes": [
{
"title": "ETK",
"types": [
"EMAIL"
],
"recipientType": "BIREYSEL"
}
],
"formId": "your_formid",
"recipient": "[email protected]",
"verificationType": "EPOSTA_OTP",
"referenceId": "user1234"
}'
Successful Response (HTTP 200)
{
"requestId": "requestid"
}
Invalid ETK Requests
In case of a failed request, the response will include the following fields:
message
(String): The error message that describes the issue with the request.code
(String): The error code from the IYS system indicating the specific issue.value
(String) (This field may return the invalid value depending on the type of error, or it may be omitted): The invalid value that caused the error.
Invalid ETK SMS OTP Request
Case: formId
does not match the expected type for the given verificationType
.
curl --location 'https://restapi.netmera.com/via/consent' \
--header 'X-netmera-api-key: your_rest_api_key' \
--header 'Content-Type: application/json' \
--data '{
"consentTypes": [
{
"title": "ETK",
"types": [
"MESAJ"
],
"recipientType": "BIREYSEL"
}
],
"formId": "your_formid",
"recipient": "+90536...",
"verificationType": "SMS_OTP",
"referenceId": "user1234"
}'
Error Response (HTTP 400)
{
"message": "The provided verification type (verificationType) does not match the form type. Form type: SHORTURL",
"code": "H1065"
}
Invalid ETK Email OTP Request
Case: recipientType
is missing in the request body.
curl --location 'https://restapi.netmera.com/via/consent' \
--header 'X-netmera-api-key: your_rest_api_key' \
--header 'Content-Type: application/json' \
--data '{
"consentTypes": [
{
"title": "ETK",
"types": [
"EPOSTA"
]
}
],
"formId": "your_formid",
"recipient": "[email protected]",
"verificationType": "EPOSTA_OTP",
"referenceId": "user1234"
}'
Error Response (HTTP 400)
{
"message": "JSON verisinde eksik alanlar: recipientType",
"code": "H1090"
}
KVK Parameters
consentTypes
Array of Objects
Yes
Contains details about the type of consent requested.
title
String
Yes
Type of form sent to the recipient. For KVK consent, this field must be set as "KVK"
.
types
Array of Strings
Yes
Consent types for KVK. Possible values: "AYDINLATMA_METNI"
, "ACIK_RIZA_METNI"
, "YURTDISI_AKTARIM"
.
formId
String
Yes
ID of the form sent to the recipient. The corresponding consent form will be sent to the recipient based on this ID. Obtainable via the İYS Web.
verificationType
String
Yes
The method for obtaining consent. "SMS_OTP"
for SMS and "EPOSTA_OTP"
for email OTP.
recipient
String
Yes
Contact information of the recipient. Either a phone number or email address where the consent request will be sent.
personData
Object
Required for KVK
Contains recipient details if KVK consent requires personal information.
name
String
Required for KVK
Recipient's full name.
recipientIdNumber
String
Required for KVK
Recipient's Turkish ID number.
address
String
Required for KVK
Recipient's address information.
Sample KVK Requests
KVK Request SMS OTP
curl --location 'https://restapi.netmera.com/via/consent' \
--header 'X-netmera-api-key: your_rest_api_key' \
--header 'Content-Type: application/json' \
--data '{
"consentTypes": [
{
"title": "KVK",
"types": [
"ACIK_RIZA_METNI",
"YURTDISI_AKTARIM"
],
"personData": {
"name": "name",
"recipientIdNumber": "134........",
"address": "address"
}
}
],
"formId": "your_formid",
"recipient": "+90536.......",
"verificationType": "SMS_OTP",
"referenceId": "user1234"
}'
Successful Response (HTTP 200)
{
"requestId": "requestid"
}
KVK Request Email OTP
curl --location 'https://restapi.netmera.com/via/consent' \
--header 'X-netmera-api-key: your_rest_api_key' \
--header 'Content-Type: application/json' \
--data '{
"consentTypes": [
{
"title": "KVK",
"types": [
"ACIK_RIZA_METNI",
"YURTDISI_AKTARIM"
],
"personData": {
"name": "name",
"recipientIdNumber": "134........",
"address": "address"
}
}
],
"formId": "your_formid",
"recipient": "[email protected]",
"verificationType": "EPOSTA_OTP",
"referenceId": "user1234"
}'
Successful Response (HTTP 200):
{
"requestId": "requestid"
}
Invalid KVK Requests
In case of a failed request, the response will include the following fields:
message
(String): The error message that describes the issue with the request.code
(String): The error code from the IYS system indicating the specific issue.value
(String) (This field may return the invalid value depending on the type of error, or it may be omitted): The invalid value that caused the error.
Invalid KVK SMS OTP
Case: The recipientIdNumber
field contains an improperly formatted ID number.
curl --location 'https://restapi.netmera.com/via/consent' \
--header 'X-netmera-api-key: your_rest_api_key' \
--header 'Content-Type: application/json' \
--data '{
"consentTypes": [
{
"title": "KVK",
"types": [
"ACIK_RIZA_METNI",
"YURTDISI_AKTARIM"
],
"personData": {
"name": "name",
"recipientIdNumber": "134........",
"address": "address"
}
}
],
"formId": "cab8467e-6e58-43d0-abec-2aafc047255d",
"recipient": "+90536.......",
"verificationType": "SMS_OTP",
"referenceId": "user1234"
}'
Error Response (HTTP 400)
{
"message": "Girdiğiniz TC kimlik numarası: '134........' formata uygun değildir.",
"code": "H1096"
}
Invalid KVK Email OTP Request
Case: The title
field contains an unexpected value.
curl --location 'https://restapi.netmera.com/via/consent' \
--header 'X-netmera-api-key: your_rest_api_key' \
--header 'Content-Type: application/json' \
--data '{
"consentTypes": [
{
"title": "X",
"types": [
"ACIK_RIZA_METNI",
"YURTDISI_AKTARIM"
],
"personData": {
"name": "name",
"recipientIdNumber": "134........",
"address": "address"
}
}
],
"formId": "your_formid",
"recipient": "[email protected]",
"verificationType": "EPOSTA_OTP",
"referenceId": "user1234"
}'
Error Response (HTTP 400)
{
"message": "title alanı için gereken değerler: [ETK, KVK, ISG, FATURA, SADAKAT, DIJITAL_FATURA] olmalıdır.",
"code": "H1013",
"value": "[X]"
}
ETK & KVK Requests
For ETK approval: The request must include the following fields:
Verification Method (
verificationType
)Recipient's Communication Address (
recipient
)Communication Channel (
types
)Recipient Type (
recipientType
)Approval Type (
title
)Form ID (
formId
) (The ID of the approval form to be sent to the recipient)
For KVK approval: The request must include the following fields:
Verification Method (
verificationType
)Recipient's Communication Address (
recipient
)Recipient's Full Name (
name
)Recipient's National ID Number (
recipientIdNumber
)Recipient's Address Information (
address
)Approval Type (
title
)Form ID (
formId
) (The ID of the approval form to be sent to the recipient)
ETK & KVK SMS OTP Request
curl --location 'https://restapi.netmera.com/via/consent' \
--header 'X-netmera-api-key: your_rest_api_key' \
--header 'Content-Type: application/json' \
--data '{
"consentTypes": [
{
"title": "ETK",
"types": [
"MESAJ",
"ARAMA"
],
"recipientType": "BIREYSEL"
},
{
"title": "KVK",
"types": [
"ACIK_RIZA_METNI",
"YURTDISI_AKTARIM"
],
"personData": {
"name": "name",
"recipientIdNumber": "134........",
"address": "address"
}
}
],
"formId": "your_formid",
"recipient": "+90536.......",
"verificationType": "SMS_OTP",
"referenceId": "user1234"
}'
Successful Response (HTTP 200)
{
"requestId": "requestid"
}
ETK & KVK Email OTP Request
curl --location 'https://restapi.netmera.com/via/consent' \
--header 'X-netmera-api-key: your_rest_api_key' \
--header 'Content-Type: application/json' \
--data '{
"consentTypes": [
{
"title": "ETK",
"types": [
"EMAIL"
],
"recipientType": "BIREYSEL"
},
{
"title": "KVK",
"types": [
"ACIK_RIZA_METNI",
"YURTDISI_AKTARIM"
],
"personData": {
"name": "name",
"recipientIdNumber": "134........",
"address": "address"
}
}
],
"formId": "your_formid",
"recipient": "[email protected]",
"verificationType": "EPOSTA_OTP",
"referenceId": "user1234"
}'
Successful Response (HTTP Code: 200)
{
"requestId": "requestid"
}
Invalid ETK & KVK Requests
In case of a failed request, the response will include the following fields:
message
(String): The error message that describes the issue with the request.code
(String): The error code from the IYS system indicating the specific issue.value
(String) (This field may return the invalid value depending on the type of error, or it may be omitted): The invalid value that caused the error.
Invalid ETK & KVK SMS OTP Request
Case: personData
field is missing.
curl --location 'https://restapi.netmera.com/via/consent' \
--header 'X-netmera-api-key: your_rest_api_key' \
--header 'Content-Type: application/json' \
--data '{
"consentTypes": [
{
"title": "ETK",
"types": [
"MESAJ",
"ARAMA"
],
"recipientType": "BIREYSEL"
},
{
"title": "KVK",
"types": [
"ACIK_RIZA_METNI",
"YURTDISI_AKTARIM"
]
}
],
"formId": "your_formid",
"recipient": "+90536.......",
"verificationType": "SMS_OTP",
"referenceId": "user1234"
}'
Error Response (HTTP 400)
{
"message": "JSON verisinde eksik alanlar: personData",
"code": "H1090"
}
Invalid ETK & KVK Email OTP Request
Case: types
field is missing.
curl --location 'https://restapi.netmera.com/via/consent' \
--header 'X-netmera-api-key: your_rest_api_key' \
--header 'Content-Type: application/json' \
--data '{
"consentTypes": [
{
"title": "ETK",
"types": [
"EMAIL"
],
"recipientType": "BIREYSEL"
},
{
"title": "KVK",
"personData": {
"name": "name",
"recipientIdNumber": "134........",
"address": "address"
}
}
],
"formId": "your_formid",
"recipient": "[email protected]",
"verificationType": "EPOSTA_OTP",
"referenceId": "user1234"
}'
Error Response (HTTP 400):
{
"message": "types alanı boş veya null olmamalıdır.",
"code": "H1057"
}
Last updated
Was this helpful?