POST
{{LOCAL_HOST}}/{{VERSION}}/auth/

Login

Melakukan autentikasi ke sistem Portal One menggunakan username dan password untuk mendapatkan Access Token, Refresh Token, dan informasi hak akses user role.

Mandatory Header Parameters

Header KeyDetail Parameter
X-CHANNEL-IDrequired
Identifier kanal distribusi atau instansi mitra Portal One.
X-CLIENT-IDrequired
ID Client aplikasi pengeksekusi request.
X-REQUEST-IDrequired
String UUID unik untuk keperluan pelacakan log (Traceability).

Body Parameters (JSON)

FieldTipe & Status
usernamestringrequired
Username akun administrator/user portal.
passwordstringrequired
Kata sandi akun pengguna rahasia.
POST
{{LOCAL_HOST}}/{{VERSION}}/auth/token/refresh

Refresh Token

Memperbarui masa aktif Access Token yang telah kedaluwarsa dengan mengirimkan payload Refresh Token yang valid tanpa harus meminta user melakukan login ulang.

Body Parameters (JSON)

FieldTipe & Status
refreshTokenstringrequired
Refresh token valid yang didapatkan dari response login sebelumnya.
uuidstringrequired
Unique identifier ID user pemilik token.
GET
{{PUBLIC_HOST}}/{{VERSION}}/channel-management/credentials/

List Credentials & Signature

Mengambil daftar credentials, sertifikat, atau kunci enkripsi B2B Signature yang terikat pada channel merchant atau instansi mitra.

Optional Query Parameters

ParameterTipe & Deskripsi
credentialTypestring
Memfilter jenis tipe key, misalnya: SIGNATURE.
searchstring
Melakukan pencarian nama key secara spesifik.
POST
{{PUBLIC_HOST}}/{{VERSION}}/channel-management/credentials/

Add Signature Key

Mendaftarkan Public Key asymmetric cryptographic baru (misal RS384/RS256) untuk kebutuhan validasi Asymmetric Signature pada pertukaran data aman antar ekosistem B2B.

Body Parameters (JSON)

FieldTipe & Status
keyNamestringrequired
Nama penanda alias untuk signature key.
algstringrequired
Algoritma kriptografi yang digunakan. Contoh: RS384.
publicKeystringrequired
Isi raw text dari Public Key certificate berformat base64 string.
GET
{{LOCAL_HOST}}/{{VERSION}}/master/indonesia-region/provinces/pull-data

Province Summary

Mengunduh atau menarik ringkasan data master wilayah administratif provinsi di Indonesia berdasarkan jenis ekstensi file yang diinginkan.

Query Parameters

ParameterTipe & Deskripsi
fileTypestringrequired
Format output file data wilayah. Nilai contoh: pdf, xlsx.
POST
{{LOCAL_HOST}}/v1/webhook/dispatch/user

Webhook Dispatch: User Create

Event webhook otomatis yang dikirimkan oleh sistem agregator ketika terdapat pengguna baru baru saja terdaftar (USER_CREATED).

Security Security Headers

Header KeyDetail Deskripsi
X-API-KEYrequired
Token autentikasi verifikasi integritas pengiriman data webhook webhook.
Code Example Playground
curl -X POST {{LOCAL_HOST}}/{{VERSION}}/auth/ \ -H "X-CHANNEL-ID: portal-one" \ -H "X-CLIENT-ID: portal" \ -H "X-REQUEST-ID: portal-8b4cda50-6027-46ba-a672-a16f5dcdd36b" \ -H "Content-Type: application/json" \ -d '{ "username": "superportal", "password": "superportal" }'
{ "responseCode": "200003000", "message": "Success", "data": { "uuid": "1ff4e241-87c7-48f0-aaa3-a76752f5ebda", "accessToken": "eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUI...", "refreshToken": "eyJhbGciOiJIUzUxMiIsInR5cCIgOiAiSld...", "sessionState": "9dae60f4-f479-414a-99de-395f5195cd6b", "userGrant": { "roleName": "SUPERADMIN", "typeName": "SUPER_ADMIN_PORTAL", "isVerified": true }, "username": "superportal", "email": "superportal@yopmail.com" }, "meta": { "traceId": "portal-8b4cda50-6027-46ba-a672-a16f5dcdd36b" } }
curl -X POST {{LOCAL_HOST}}/{{VERSION}}/auth/token/refresh \ -H "X-CHANNEL-ID: portal-one" \ -H "X-CLIENT-ID: portal" \ -H "Content-Type: application/json" \ -d '{ "refreshToken": "eyJhbGciOiJIUzUxMiIsInR5cCI6Ik...", "uuid": "1ff4e241-87c7-48f0-aaa3-a76752f5ebda" }'
{ "responseCode": "200003000", "message": "Success", "data": { "accessToken": "eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSld...", "refreshToken": "eyJhbGciOiJIUzUxMiIsInR5cCIgOiAiS...", "sessionState": "9dae60f4-f479-414a-99de-395f5195cd6b" }, "meta": { "traceId": "6181bc8c-60a5-4b5d-8578-1f49645216a4" } }
curl -X GET "{{PUBLIC_HOST}}/{{VERSION}}/channel-management/credentials/?credentialType=SIGNATURE" \ -H "Authorization: Bearer {{ACCESS_TOKEN}}" \ -H "X-CHANNEL-ID: portal-one" \ -H "X-CLIENT-ID: portal" \ -H "X-REQUEST-ID: portal-7b960a50-6027"
{ "responseCode": "200003000", "message": "Success", "data": [ { "id": 102, "keyName": "b2b_signature_prod", "version": "1.0.0", "alg": "RS384", "credentialType": "SIGNATURE", "expiredAt": "2027-12-31T23:59:59Z" } ] }
curl -X POST {{PUBLIC_HOST}}/{{VERSION}}/channel-management/credentials/ \ -H "Authorization: Bearer {{ACCESS_TOKEN}}" \ -H "Content-Type: application/json" \ -d '{ "keyName": "signature_b2b_partner", "version": "1.2.1", "keyId": "sq4k87qus2", "alg": "RS384", "publicKey": "LS0tLS1CRUdJTiBQVUJMSUMgS0VZLS0tLS..." }'
{ "responseCode": "200003000", "message": "Signature Key Added Successfully", "meta": { "traceId": "91a2bc8c-60a5-4b5d-8578" } }
curl -X GET "{{LOCAL_HOST}}/{{VERSION}}/master/indonesia-region/provinces/pull-data?fileType=pdf" \ -H "X-CHANNEL-ID: portal-one" \ -H "X-CLIENT-ID: portal" \ -H "Authorization: Bearer {{ACCESS_TOKEN}}"
{ "responseCode": "200003000", "message": "Success", "data": { "fileUrl": "https://storage.portal-one.com/provinces/summary_20260202.pdf" } }
curl -X POST {{LOCAL_HOST}}/v1/webhook/dispatch/user \ -H "X-CHANNEL-ID: portal-one" \ -H "X-CLIENT-ID: portal" \ -H "X-API-KEY: jsjsj" \ -H "Content-Type: application/json" \ -d '{ "eventType": "USER_CREATED", "eventId": "a1b2c3d4-e5f6-7a8b-9c0d-1e2f3a4b5c6d", "data": { "uuid": "string", "email": "string", "username": "string", "personalInfo": { "phoneNumber": "string", "dob": "string", "fullName": "string" } } }'
{ "status": "acknowledged", "message": "Webhook processed successfully" }