DANA Auth API

Autentikasi akun DANA menggunakan alur OTP dua langkah.

Halaman ini menjelaskan alur OTP khusus untuk DANA. Gunakan alur ini saat membuat akun DANA baru atau saat akun perlu relogin (biasanya karena sesi expired).

Autentikasi DANA membutuhkan dua langkah: kirim OTP ke nomor HP terdaftar, lalu verifikasi kode yang diterima. Simpan sessionId dari Step 1 karena dibutuhkan di Step 2.


Step 1 — Kirim OTP

POST /api/v1/accounts

Kirim OTP ke nomor HP yang terdaftar di DANA. Sistem akan mengirim kode verifikasi via WhatsApp atau SMS.

Request Body

FieldTypeRequiredKeterangan
actionstringYaHarus dana-send-otp
phoneNumberstringYaNomor HP terdaftar di DANA
pinstringYaPIN DANA (6 digit)
providerCodestringKondisionalDANA — wajib untuk akun baru
accountNamestringKondisionalLabel akun — wajib untuk akun baru
intervalMinutesnumberKondisionalInterval sync (menit) — wajib untuk akun baru
accountIdstringKondisionalUUID akun — wajib untuk relogin/update
verificationMethodstringNoWhatsApp (default) atau SMS

Akun baru:

{
  "action": "dana-send-otp",
  "phoneNumber": "081234567890",
  "pin": "123456",
  "providerCode": "DANA",
  "accountName": "DANA Bisnis",
  "intervalMinutes": 5,
  "verificationMethod": "WhatsApp"
}

Relogin / update:

{
  "action": "dana-send-otp",
  "phoneNumber": "081234567890",
  "pin": "123456",
  "accountId": "123e4567-e89b-12d3-a456-426614174000",
  "verificationMethod": "WhatsApp"
}

Response 200

{
  "success": true,
  "sessionId": "123e4567-e89b-12d3-a456-426614174000",
  "message": "OTP has been sent to your phone"
}

Simpan sessionId — nilai ini diperlukan di Step 2.

Errors

StatusKeterangan
400Field wajib tidak lengkap
400Provider tidak ditemukan atau tidak tersedia
401API key tidak valid atau tidak ada
500Internal server error

Contoh

# Akun baru
curl -X POST 'https://mutasiku.co.id/api/v1/accounts' \
  -H 'x-api-key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{
    "action": "dana-send-otp",
    "phoneNumber": "081234567890",
    "pin": "123456",
    "providerCode": "DANA",
    "accountName": "DANA Bisnis",
    "intervalMinutes": 5,
    "verificationMethod": "WhatsApp"
  }'

# Relogin / update
curl -X POST 'https://mutasiku.co.id/api/v1/accounts' \
  -H 'x-api-key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{
    "action": "dana-send-otp",
    "phoneNumber": "081234567890",
    "pin": "123456",
    "accountId": "123e4567-e89b-12d3-a456-426614174000",
    "verificationMethod": "WhatsApp"
  }'

Step 2 — Verifikasi OTP

POST /api/v1/accounts

Kirim kode OTP yang diterima bersama sessionId dari Step 1 untuk menyelesaikan autentikasi.

Request Body

FieldTypeRequiredKeterangan
actionstringYaHarus dana-verify-otp
sessionIdstringYaSession ID dari Step 1
otpstringYaKode OTP yang diterima (4 digit)
accountIdstringKondisionalUUID akun — wajib untuk relogin/update

Akun baru:

{
  "action": "dana-verify-otp",
  "sessionId": "123e4567-e89b-12d3-a456-426614174000",
  "otp": "1234"
}

Relogin / update:

{
  "action": "dana-verify-otp",
  "sessionId": "123e4567-e89b-12d3-a456-426614174000",
  "accountId": "123e4567-e89b-12d3-a456-426614174001",
  "otp": "1234"
}

Response 200

{
  "success": true,
  "accountId": "123e4567-e89b-12d3-a456-426614174000"
}

accountId adalah UUID akun yang sudah terhubung. Simpan nilai ini untuk digunakan di endpoint lain seperti Mutations dan DANA Operations.

Errors

StatusKeterangan
400Data verifikasi tidak lengkap
400Session expired atau tidak ditemukan — ulangi dari Step 1
400OTP salah / verifikasi gagal
401API key tidak valid atau tidak ada
500Internal server error

Contoh

# Akun baru
curl -X POST 'https://mutasiku.co.id/api/v1/accounts' \
  -H 'x-api-key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{
    "action": "dana-verify-otp",
    "sessionId": "123e4567-e89b-12d3-a456-426614174000",
    "otp": "1234"
  }'

# Relogin / update
curl -X POST 'https://mutasiku.co.id/api/v1/accounts' \
  -H 'x-api-key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{
    "action": "dana-verify-otp",
    "sessionId": "123e4567-e89b-12d3-a456-426614174000",
    "accountId": "123e4567-e89b-12d3-a456-426614174001",
    "otp": "1234"
  }'

© 2026 PT. Cobra Code Indonesia. All rights reserved.

Last updated: 4/11/2026