Memulai Cepat

Tiga langkah menuju integrasi yang berjalan: generate signature, buat session, lalu embed widget URL ke iframe.

1. Generate Signature HMAC-SHA256

Bangun canonical string dengan urutan persis seperti ini:

partnerId | user_id | email | name | company_id | candidate_ids_csv

Lalu hash dengan HMAC-SHA256 menggunakan secretKey Anda. Format output: hexadecimal lowercase.

  • Field dipisahkan dengan |
  • Field opsional yang tidak dikirim tetap berupa string kosong
  • candidate_ids_csv = nilai candidate_id dari user.candidates, digabung dengan , mengikuti urutan di payload
function generateSignature(
    string $partnerId,
    string $userId,
    string $userEmail,
    string $userName,
    string $companyId,
    string $candidateIdsCsv,
    string $secretKey
): string {
    $canonical = implode('|', [
        $partnerId,
        $userId,
        $userEmail,
        $userName,
        $companyId,
        $candidateIdsCsv,
    ]);
    return hash_hmac('sha256', $canonical, $secretKey);
}

Lihat halaman Autentikasi untuk aturan canonical string lengkap, field mapping, dan test vectors untuk verifikasi implementasi Anda.

2. Panggil Endpoint Create Session

curl -X POST "https://dev-app.psikologiehub.com/api/v2/partner/{partnerId}/sessions" \
  -H "Content-Type: application/json" \
  -d '{
    "user": {
      "user_id": "USR-001",
      "email": "[email protected]",
      "name": "John Doe",
      "company": { "company_id": "COMP-001" },
      "candidates": [
        { "candidate_id": "CND-001", "nama": "Jane", "email": "[email protected]" }
      ]
    },
    "signature": "GENERATED_HMAC_SIGNATURE"
  }'

Response sukses berisi:

{
  "success": true,
  "sessionToken": "eyJhbGciOiJIUzI1NiI...",
  "widgetUrl": "https://dev-app.psikologiehub.com/api/v2/partner/widget?token=eyJ...",
  "partnerId": "psikologihub",
  "expiresIn": 1778760077
}

Lihat halaman Referensi API untuk schema lengkap request/response dan contoh end-to-end multi-bahasa.

3. Embed Widget

<iframe
  src="WIDGET_URL"
  width="100%"
  height="700"
  frameborder="0"
  allowfullscreen
></iframe>

Widget menangani autentikasi, navigasi, dan pemanggilan API internal. Frontend Anda tidak perlu melakukan apa-apa lagi.

⚠️

Widget hanya bisa di-load dari domain yang sudah di-whitelist ke PsikologieHub untuk partnerId Anda. Koordinasikan ke PIC PsikologieHub untuk register domain tambahan sebelum testing di environment baru.