# Consent BFF APIs
# Consent To Accept
Method: GET /bifrost/api/consent/projects/{projId}/to-accept
Description: List all consents of the application which need acceptance from a data subject
Client Scope: consent.r
Authority: -
Request Header:
Param | Description | Required | Example |
---|---|---|---|
Authorization | The OAuth2 authentication with the O2O System | Y | Bearer {O2O Access Token} |
Content-Type | The MIME type of this content | Y | application/json |
Parameter:
Key | Description | Required | Example |
---|---|---|---|
app | The application which requires consent from a data subject | Y | app=TSM |
dataSubject | The identifier which represents user in the application | Y | dataSubject=a0000012345 |
Example Request:
curl -X GET \
'https://alpha-platform.weomni-test.com/bifrost/api/consent/projects/{projectId}/to-accept?app=TSM&dataSubject=a0000012345' \
-H 'Authorization: Bearer {O2O Access Token}' \
-H 'Content-Type: application/json' \
-H 'cache-control: no-cache'
Example Response:
HTTP/1.1 200 OK
Content-Type: application/json
[
{
"id": "5e953258e4a2810001048c67",
"descriptionEn": "test2",
"application": "TSM",
"purposes": [
"test",
"check"
],
"lifespan": 10,
"name": "consent002",
"privacyNoticeRef": "5e8ec58aaf57d400014da146",
"revision": 0,
"status": "PUBLISHED",
"ref1": "doc1",
"ref2": "doc2",
"ref3": "doc3"
}
]
# Get Privacy Notice Details
Method: GET /bifrost/api/consent/projects/{projId}/privacy-notice/{id} Description: get privacy notice details
Client Scope: consent.r Authority: -
Request Header:
Param | Description | Required | Example |
---|---|---|---|
Authorization | The OAuth2 authentication with the O2O System | Y | Bearer {O2O Access Token} |
Content-Type | The MIME type of this content | Y | application/json |
Parameter:
Key | Description | Required | Example |
---|---|---|---|
id | The id of privacy notice | Y | 5ea69d3b608e270001c1f778 |
Example Request:
curl -X GET \
https://platform.weomni-test.com/bifrost/api/consent/projects/{projectId}/privacy-notice/{id} \
-H 'Authorization: Bearer {O2O Access Token}' \
-H 'cache-control: no-cache'
Example Response:
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "5ea69d3b608e270001c1f778",
"name": "My Company",
"descriptionEn": "hello",
"descriptionTh": "สวัสดี",
"status": "PUBLISHED",
"revision": 1
}
# Accept Consent
Method: POST /bifrost/api/consent/projects/{projId}/consent-acceptance
Description: Accept the consent based on application and data subject
Client Scope: consent.w, consent.r
Authority: -
Request Header:
Param | Description | Required | Example |
---|---|---|---|
Authorization | The OAuth2 authentication with the O2O System | Y | Bearer {O2O Access Token} |
Content-Type | The MIME type of this content | Y | application/json |
Body:
Key | Description | Required | Example |
---|---|---|---|
app | The application which requires consent from a data subject | Y | TSM |
dataSubject | The identifier which represents user in the application | Y | a0000012345 |
consentId | Id of consent | Y | |
purposes | List of accepting purpose codes under the consent | N | ["SMS","EMAIL"] |
userAgent | The computer program representing a person | Y | Mozilla/5.0 |
country | Country | Y | Thailand |
localIp | Local IP | Y | |
osVersion | Version of device's operation system | Y | iOS 13.4.1 |
model | Model of device | Y | iPhone SE |
deviceFingerprintId | Fingerprint ID of device | Y | C7JS888PGFYR |
note | Additional information | N |
Example Request:
curl -X POST \
'https://alpha-platform.weomni-test.com/bifrost/api/consent/projects/{projectId}/consent-acceptance \
-H 'Authorization: Bearer {O2O Access Token}' \
-H 'Content-Type: application/json' \
-H 'cache-control: no-cache'
{
"app":"TSM",
"consentId":"5e991ad37f4e24000126ee49",
"dataSubject":"a0000012345",
"userAgent":"Mozilla/5.0",
"purposes":["sms"],
"country":"Thailand",
"localIp":"172.201.134.98",
"osVersion":"iOS 13.4.1",
"model":"iPhone SE",
"deviceFingerprintId":"jjjhaidhsiwjdi23d",
"note":"sms consent"
}
Example Response:
HTTP/1.1 201 CREATED
Content-Type: application/json
{
"id":"5e9e71681a26680001d906b9",
"consentApplication":"TSM",
"acceptanceDate": "2020-04-21T04:07:04.31Z",
"expiredDate": "2021-04-21T04:07:04.31Z",
"consentId":"5e991ad37f4e24000126ee49",
"dataSubject":"a0000012345",
"userAgent":"Mozilla/5.0",
"purposes":["sms"],
"country":"Thailand",
"localIp":"172.201.134.98",
"osVersion":"iOS 13.4.1",
"model":"iPhone SE",
"deviceFingerprintId":"jjjhaidhsiwjdi23d",
"note":"sms consent",
"status":"ACCEPTED"
}
# Purpose Options
Method: GET /bifrost/api/consent/projects/{projId}/purpose-options
Description: Look up purpose options for the application and be able to display on frontend
Client Scope: consent.r Authority: -
Request Header:
Param | Description | Required | Example |
---|---|---|---|
Authorization | The OAuth2 authentication with the O2O System | Y | Bearer {O2O Access Token} |
Content-Type | The MIME type of this content | Y | application/json |
Paremeter:
Key | Description | Required | Example |
---|---|---|---|
app | The application which requires consent from a data subject | Y | TSM |
dataSubject | The identifier which represents user in the application | Y | a0000012345 |
Example Request:
curl -X GET \
'https://platform.weomni-test.com/bifrost/api/consent/projects/{projectId}}/purpose-options?app=EBM&dataSubject=a0000012345' \
-H 'Authorization: Bearer {O2O Access Token}' \
-H 'Postman-Token: cb126505-2d0a-4329-bd63-3670e9c13831' \
-H 'cache-control: no-cache'
Example Response:
HTTP/1.1 200 OK
Content-Type: application/json
[
{
"code": "SMS",
"accepted": true,
"nameEn": "Send SMS Notification",
"nameTh": "SMS แจ้งเตือน",
"consentId": "5e9843487f4e24000126ee3e"
},
{
"code": "EMAIL",
"accepted": true,
"nameEn": "Send Email Notification",
"nameTh": "ส่งอีเมล",
"consentId": "5e9843487f4e24000126ee3e"
},
{
"code": "FACE_RECOG",
"accepted": true,
"nameEn": "",
"nameTh": "",
"consentId": "5e9843487f4e24000126ee3e"
}
]
# Accept Purpose
Method: POST /bifrost/api/consent/projects/{projId}/purpose-acceptance
Description: Accept the purpose based on application and data subject
Client Scope: consent.w, consent.r Authority: -
Request Header:
Param | Description | Required | Example |
---|---|---|---|
Authorization | The OAuth2 authentication with the O2O System | Y | Bearer {O2O Access Token} |
Content-Type | The MIME type of this content | Y | application/json |
Body:
Key | Description | Required | Example |
---|---|---|---|
app | The application which requires consent from a data subject | Y | TSM |
dataSubject | The identifier which represents user in the application | Y | a0000012345 |
purposeCode | The code of purpose to accept (be able to look up from get purpose option API) | Y | SMS |
Example Request:
curl -X POST \
https://platform.weomni-test.com/bifrost/api/consent/projects/{projectId}/purpose-acceptance \
-H 'Authorization: Bearer {O2O Access Token}'\
-H 'Content-Type: application/json' \
-H 'cache-control: no-cache' \
-d '{
"app": "EBM",
"dataSubject": "a0000012345",
"purposeCode": "FACE_RECOG"
}'
Example Response:
HTTP/1.1 201 CREATED
Content-Type: application/json
{
"id": "5e953258e4a2810001048c67",
"dataSubject": "a0000012345",
"consentApplication": "EBM",
"purposeCode": "FACE_RECOG",
"status": "ACCEPTED",
"expiredDate": "2020-11-03T06:08:08.585Z",
"acceptanceDate": "2020-04-17T06:08:08.585Z",
"withdrawalDate": null
}
# Withdraw Purpose
Method: POST /bifrost/api/consent/projects/{projId}/purpose-withdrawal
Description: Withdraw the purpose based on application and data subject
Client Scope: consent.w, consent.r Authority: -
Request Header:
Param | Description | Required | Example |
---|---|---|---|
Authorization | The OAuth2 authentication with the O2O System | Y | Bearer {O2O Access Token} |
Content-Type | The MIME type of this content | Y | application/json |
Body:
Key | Description | Required | Example |
---|---|---|---|
app | The application which requires consent from a data subject | Y | TSM |
dataSubject | The identifier which represents user in the application | Y | a0000012345 |
purposeCode | The code of purpose to accept (be able to look up from get purpose option API) | Y | SMS |
Example Request:
curl -X POST \
https://platform.weomni-test.com/bifrost/api/consent/projects/{projectId}/purpose-withdrawal \
-H 'Authorization: Bearer {O2O Access Token}' \
-H 'Content-Type: application/json' \
-H 'cache-control: no-cache' \
-d '{
"app": "EBM",
"dataSubject": "a0000012345",
"purposeCode": "FACE_RECOG"
}'
Example Response:
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "5e953258e4a2810001048c67",
"dataSubject": "a0000012345",
"consentApplication": "EBM",
"purposeCode": "FACE_RECOG",
"status": "WITHDRAWN",
"expiredDate": "2020-11-03T06:08:08.585Z",
"acceptanceDate": "2020-04-17T06:08:08.585Z",
"withdrawalDate": "2020-04-18T12:19:57.412Z"
}