Dokumentasi API

API JSON Sederhana

API /v1/integrations dengan kunci Bearer dan JSON biasa.

Halaman Dokumentasi

API ini memakai kunci Bearer dan JSON biasa, tanpa tanda tangan. Aturan persetujuannya sama dengan Auth API.

Dasar

HalAturan
Alamathttps://auth.wiracode.com/v1/integrations
AutentikasiAuthorization: Bearer wpk_<prefix>_<secret>
BadanJSON (Content-Type: application/json), paling besar 128 KiB.
Kesalahan{"error": "NOT_ENROLLED", "message": "…"}. error adalah kode mesin; data tambahan seperti until dan retryAfterSec ada di tingkat atas.

API ini dan Auth API memakai permintaan persetujuan yang sama. Nilai txid dari Auth API bisa dibaca dengan GET /v1/integrations/requests milik integrasi yang sama, dan sebaliknya.

Endpoint

Bisakah Pengguna Ini Diminta Persetujuan?

POST/v1/integrations/check

Header Authorization: Bearer wpk_….

Nilai ready benar bila ada HP penyetuju aktif yang sedang masuk ke WiraPass. Email yang tidak dikenal menjawab semua nol.

ParameterDiWajibKeterangan
emailJSONYaEmail WiraPass pengguna.

Jawaban 200. Kesiapan pengguna.

200 application/json
{
  "ready": true,
  "devices": 2,
  "signedInDevices": 1,
  "backupCode": true
}

Kesalahan: UNAUTHORIZED, INVALID_EMAIL, RATE_LIMITED (artinya).

Kirim Permintaan Persetujuan

POST/v1/integrations/requests

Header Authorization: Bearer wpk_….

Membuat permintaan dan mengirim push ke HP pengguna yang sedang masuk ke WiraPass.

ParameterDiWajibKeterangan
emailJSONYaEmail WiraPass pengguna.
titleJSONTidakJudul di HP. Bawaan: "Masuk ke <nama integrasi>".
contextJSONTidakHanya app, account, ip, location, device; masing-masing paling banyak 120 karakter.
ttlSecondsJSONTidakUmur permintaan, 30 sampai 300 detik, bawaan 60.

Jawaban 201. Permintaan dibuat. delivered = push yang diterima FCM (0 mungkin terjadi).

201 application/json
{
  "id": "3f2b8c1e-5d4a-4e6f-9a7b-1c2d3e4f5a6b",
  "expiresAt": "2026-09-27T08:17:00.000Z",
  "delivered": 1
}

Kesalahan: UNAUTHORIZED, INVALID_EMAIL, RATE_LIMITED, NOT_ENROLLED, NO_SIGNED_IN_DEVICE, FROZEN, TOO_MANY_PENDING (artinya).

Status Permintaan

GET/v1/integrations/requests

Header Authorization: Bearer wpk_….

Hanya approved yang berarti ya. reported berarti pengguna menekan "Bukan saya".

ParameterDiWajibKeterangan
idqueryYaID permintaan.
waitqueryTidakLong-poll 0 sampai 25 detik.

Jawaban 200. Status saat ini.

200 application/json
{
  "id": "3f2b8c1e-5d4a-4e6f-9a7b-1c2d3e4f5a6b",
  "status": "approved",
  "expiresAt": "2026-09-27T08:17:00.000Z",
  "answeredAt": "2026-09-27T08:16:21.412Z",
  "reason": null
}

Kesalahan: UNAUTHORIZED, NOT_FOUND, RATE_LIMITED (artinya).

Batalkan Permintaan

POST/v1/integrations/cancel

Header Authorization: Bearer wpk_….

Membatalkan permintaan yang masih menunggu, misalnya bila pengguna memilih kode cadangan.

ParameterDiWajibKeterangan
idJSONYaID permintaan.

Jawaban 200. Status setelah dibatalkan.

200 application/json
{
  "id": "3f2b8c1e-5d4a-4e6f-9a7b-1c2d3e4f5a6b",
  "status": "cancelled",
  "expiresAt": "2026-09-27T08:17:00.000Z",
  "answeredAt": "2026-09-27T08:16:05.000Z",
  "reason": "integration"
}

Kesalahan: UNAUTHORIZED, NOT_FOUND, RATE_LIMITED (artinya).

Periksa Kode Cadangan

POST/v1/integrations/backup-code

Header Authorization: Bearer wpk_….

Untuk HP tanpa internet. Kode salah, sudah dipakai, atau email tidak dikenal mendapat jawaban yang sama.

ParameterDiWajibKeterangan
emailJSONYaEmail WiraPass pengguna.
codeJSONYaKode cadangan 6 digit.

Jawaban 200. Kode benar.

200 application/json
{
  "ok": true
}

Kesalahan: UNAUTHORIZED, WRONG_CODE, CODE_LOCKED, RATE_LIMITED (artinya).

Duo adalah merek dagang Cisco. WiraPass tidak berafiliasi dengan Duo maupun Cisco dan hanya menawarkan kompatibilitas API.