curl --request POST \
--url https://{issuer}/monitoring-token/ \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{}'import requests
url = "https://{issuer}/monitoring-token/"
payload = {}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({})
};
fetch('https://{issuer}/monitoring-token/', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://{issuer}/monitoring-token/",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://{issuer}/monitoring-token/"
payload := strings.NewReader("{}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://{issuer}/monitoring-token/")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{}")
.asString();require 'uri'
require 'net/http'
url = URI("https://{issuer}/monitoring-token/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{}"
response = http.request(request)
puts response.read_body{
"monitoring_token": "mt_2f8c1d9e7b6a5f4e3d2c1b0a",
"expires_at": "2026-10-17T10:56:14Z",
"allowed_event_categories": [
"session",
"gameplay",
"bonus",
"affiliate",
"payment",
"dispute",
"responsible_gambling",
"custom"
],
"max_uses": 1000,
"bind_to_origin": "https://app.example.com",
"vendor_data": "user-42"
}Buat Token Pemantauan | Didit Authentication API
POST /monitoring-token/ menukar token akses dengan kredensial perangkat 15 menit yang terikat pada vendor_data dan origin browser pengguna di Didit.
curl --request POST \
--url https://{issuer}/monitoring-token/ \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{}'import requests
url = "https://{issuer}/monitoring-token/"
payload = {}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({})
};
fetch('https://{issuer}/monitoring-token/', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://{issuer}/monitoring-token/",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://{issuer}/monitoring-token/"
payload := strings.NewReader("{}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://{issuer}/monitoring-token/")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{}")
.asString();require 'uri'
require 'net/http'
url = URI("https://{issuer}/monitoring-token/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{}"
response = http.request(request)
puts response.read_body{
"monitoring_token": "mt_2f8c1d9e7b6a5f4e3d2c1b0a",
"expires_at": "2026-10-17T10:56:14Z",
"allowed_event_categories": [
"session",
"gameplay",
"bonus",
"affiliate",
"payment",
"dispute",
"responsible_gambling",
"custom"
],
"max_uses": 1000,
"bind_to_origin": "https://app.example.com",
"vendor_data": "user-42"
}503 monitoring_unavailable.vendor_data pengguna, apa pun yang diklaim perangkat tersebut.Otorisasi
Token akses orang tersebut dari POST /token/: JWT ES256 dengan header typ: at+jwt, berlaku paling lama 5 menit. Bukan kunci API Didit Anda.
Body
Kosong: token akses menyebutkan nama orang tersebut.
Respons
Kredensial perangkat untuk individu tersebut.
Kredensial perangkat berumur pendek untuk mengirim event aktivitas individu ke pemantauan transaksi dari perangkat mereka. Ini tidak terikat pada sesi: kredensial tetap dapat digunakan hingga expires_at, bahkan setelah keluar.
Kredensial perangkat. Perlakukan sebagai rahasia.
"mt_2f8c1d9e7b6a5f4e3d2c1b0a"
Paling lama 15 menit setelah diterbitkan.
"2026-10-17T10:56:14Z"
Kategori event yang dapat dikirimkannya. Event autentikasi dan keamanan selalu berasal dari Didit, tidak pernah dari perangkat.
[
"session",
"gameplay",
"bonus",
"affiliate",
"payment",
"dispute",
"responsible_gambling",
"custom"
]
1000
Asal browser tempat kredensial bekerja: Origin permintaan, atau null jika tidak ada.
"https://app.example.com"
Orang yang menjadi subjek pencatatan setiap event, apa pun yang dikirimkan perangkat.
"user-42"