Skip to navigation

Authentication

Autentikasi untuk API Service

Autentikasi diperlukan di semua Endpoint saat berinteraksi melalui koneksi API.

Authorization

Setiap request ke Service API wajib menyertakan client_id, x-username, x-timestamp dan x-signature di header request. Berikut adalah detail Autentikasi Header yang diperlukan:

KeyValueRequiredDeskripsi
client_id{{client_id}}✅Client ID Merchant
x-username{{api_username}}✅Username H2H
x-timestampauto-generated✅Waktu request, format ISO 8601 (new Date().toISOString())
x-signatureauto-generated✅Lihat rumus & contoh untuk Generate Signature

💡NOTE: Lakukan semua permintaan API melalui HTTPS. Permintaan API tanpa otentikasi akan gagal.

Example Header
curl -X POST 'https://sandbox.yukbayarin.asia/v1/transaction/transfer-inquiry' \
-H 'client_id: {{client_id}}' \
-H 'x-username: {{api_username}}' \
-H 'x-timestamp: {{x-timestamp}}' \
-H 'x-signature: {{x-signature}}'

Signature

Rumus Signature key = SHA1(API\_key + api\_username) signature = HMAC\_SHA256(api\_password + path + x-timestamp, key)

💡NOTE: path adalah path url tanpa query string, example: v1/transaction/transfer-inquiry

Example to generate Signature
const api_key = pm.variables.get('API_key');
const pass_h2h = pm.variables.get('api_password');
const username = pm.request.headers.get('x-username');
const datetime = pm.request.headers.get('x-timestamp');
const path = '/' + pm.request.url.getPath({ unresolved: false }).replace(/^\/+/, '');
const key = CryptoJS.SHA1(api_key + username).toString(CryptoJS.enc.Hex);
const data = pass_h2h + path + datetime;
const signature = CryptoJS.HmacSHA256(data, key).toString(CryptoJS.enc.Hex);
pm.request.headers.upsert({ key: 'x-signature', value: signature });
Untuk mendapatkan data API Key, Username & Password lihat di Credential API