Request pertama via curl
Dapatkan token
Endpoint token menerima form-encoded, bukan JSON, sesuai RFC 6749. Untuk client confidential, tambahkan client_secret atau pakai HTTP Basic.
curl -X POST https://api-sandbox.tracive.id/v1/oauth/token \
-H 'Content-Type: application/x-www-form-urlencoded' \
-d grant_type=authorization_code \
-d code=<code dari consent> \
-d redirect_uri=<redirect URI terdaftar> \
-d client_id=trcvc_… \
-d code_verifier=<verifier milik Anda>Belum punya code? Pakai consent simulator di portal. Ia menerbitkan code untuk test user sandbox Anda, dan penukarannya tetap lewat endpoint di atas dengan pemeriksaan PKCE yang sama.
Panggil scammer-checks
curl -X POST https://api-sandbox.tracive.id/v1/scammer-checks \
-H 'Authorization: Bearer <access_token>' \
-H 'Content-Type: application/json' \
-H 'Idempotency-Key: 9f1c…' \
-d '{"input":{"type":"EMAIL","value":"penipu@example.com"}}'Idempotency-Key
Sertakan selalu. Ia melindungi satu permintaan dari tertagih dua kali ketika jaringan Anda mengulangnya.
Ia bukan dedup dua pengecekan sungguhan. Mengecek nomor yang sama dua kali adalah dua jawaban berbayar, dan kunci yang diturunkan dari isi query justru akan salah menggabungkan keduanya. Pakai nilai acak per panggilan, bukan hash identifiernya.
Membaca responsnya
{
"checkId": "chk_efb119301a434940b0861696",
"found": false,
"riskTier": "NONE",
"reportTotal": 0,
"credibleReports": 0,
"billing": { "creditSource": "USER", "unitsCharged": 1 },
"cacheTtlSeconds": 3600,
"disclaimer": "…"
}billing.unitsCharged tetap 1 meski found bernilai false. Itu charge-on-miss, dan disengaja: pencarian tetap dilakukan.
cacheTtlSeconds memberi tahu berapa lama jawaban ini boleh disimpan. Miss berumur pendek karena bisa basi begitu ada laporan baru; temuan berumur panjang karena verdict cenderung stabil.