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 Key Detail Parameter
X-CHANNEL-ID required
Identifier kanal distribusi atau instansi mitra Portal One.
X-CLIENT-ID required
ID Client aplikasi pengeksekusi request.
X-REQUEST-ID required
String UUID unik untuk keperluan pelacakan log (Traceability).
Body Parameters (JSON)
Field Tipe & Status
username string required
Username akun administrator/user portal.
password string required
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)
Field Tipe & Status
refreshToken string required
Refresh token valid yang didapatkan dari response login sebelumnya.
uuid string required
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
Parameter Tipe & Deskripsi
credentialType string
Memfilter jenis tipe key, misalnya: SIGNATURE.
search string
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)
Field Tipe & Status
keyName string required
Nama penanda alias untuk signature key.
alg string required
Algoritma kriptografi yang digunakan. Contoh: RS384.
publicKey string required
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
Parameter Tipe & Deskripsi
fileType string required
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 Key Detail Deskripsi
X-API-KEY required
Token autentikasi verifikasi integritas pengiriman data webhook webhook.
Code Example Playground
cURL Request
Response JSON
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"
}