OVO Auth API

Autentikasi akun OVO menggunakan alur OTP dua langkah.

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

Autentikasi OVO membutuhkan dua langkah: kirim OTP ke nomor HP terdaftar, lalu verifikasi kode beserta PIN OVO. 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 OVO.

Request Body

FieldTypeRequiredKeterangan
actionstringYaHarus ovo-send-otp
phoneNumberstringYaNomor HP terdaftar di OVO
providerCodestringKondisionalOVO — 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": "ovo-send-otp",
  "phoneNumber": "081234567890",
  "providerCode": "OVO",
  "accountName": "OVO Utama",
  "intervalMinutes": 5,
  "verificationMethod": "WhatsApp"
}

Relogin / update:

{
  "action": "ovo-send-otp",
  "phoneNumber": "081234567890",
  "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": "ovo-send-otp",
    "phoneNumber": "081234567890",
    "providerCode": "OVO",
    "accountName": "OVO Utama",
    "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": "ovo-send-otp",
    "phoneNumber": "081234567890",
    "accountId": "123e4567-e89b-12d3-a456-426614174000",
    "verificationMethod": "WhatsApp"
  }'

Step 2 — Verifikasi OTP

POST /api/v1/accounts

Kirim kode OTP yang diterima bersama PIN OVO untuk menyelesaikan autentikasi.

OVO membutuhkan PIN di step verifikasi, berbeda dengan DANA yang meminta PIN di Step 1.

Request Body

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

Akun baru:

{
  "action": "ovo-verify-otp",
  "sessionId": "123e4567-e89b-12d3-a456-426614174000",
  "otp": "123456",
  "pin": "123456"
}

Relogin / update:

{
  "action": "ovo-verify-otp",
  "sessionId": "123e4567-e89b-12d3-a456-426614174000",
  "accountId": "123e4567-e89b-12d3-a456-426614174001",
  "otp": "123456",
  "pin": "123456"
}

Response 200

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

accountId adalah UUID akun yang sudah terhubung. Simpan nilai ini untuk digunakan di endpoint Mutations dan lainnya.

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": "ovo-verify-otp",
    "sessionId": "123e4567-e89b-12d3-a456-426614174000",
    "otp": "123456",
    "pin": "123456"
  }'

# 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": "ovo-verify-otp",
    "sessionId": "123e4567-e89b-12d3-a456-426614174000",
    "accountId": "123e4567-e89b-12d3-a456-426614174001",
    "otp": "123456",
    "pin": "123456"
  }'

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

Last updated: 4/11/2026