Kode Error & Penanganan

Memahami dan menangani error API

Format Respons Error

Semua respons error menggunakan format standar:

{
  "error": {
    "code": "ERROR_CODE",
    "message": "Pesan error yang mudah dibaca",
    "details": "Konteks tambahan (opsional)"
  }
}

💡 Gunakan error.code sebagai kondisi percabangan yang stabil (message dapat berubah)

Kode Status HTTP

200 OK

Permintaan berhasil

200

201 Created

Pembuatan resource berhasil

201

400 Bad Request

Parameter permintaan tidak valid

400
{
  "code": "INVALID_REQUEST",
  "message": "Format permintaan tidak valid"
}

401 Unauthorized

Belum terautentikasi atau API Key tidak valid

401
{
  "code": "UNAUTHORIZED",
  "message": "API key tidak valid atau telah kedaluwarsa"
}

403 Forbidden

Saldo akun tidak mencukupi atau tidak memiliki izin

403
{
  "code": "INSUFFICIENT_BALANCE",
  "message": "Saldo akun tidak mencukupi"
}

404 Not Found

Resource tidak ditemukan

404
{
  "code": "ORDER_NOT_FOUND",
  "message": "Pesanan tidak ditemukan"
}

409 Conflict

Konflik resource

409
{
  "code": "ADDRESS_EXISTS",
  "message": "Alamat sudah ada"
}

429 Too Many Requests

Melebihi batas rate limit API Key

429
{
  "code": "RATE_LIMITED",
  "message": "Telah melebihi batas rate limit"
}

500 Internal Server Error

Error server internal

500
{
  "code": "INTERNAL_ERROR",
  "message": "Terjadi error yang tidak terduga"
}

503 Service Unavailable

Layanan sementara tidak tersedia (sedang maintenance)

503
{
  "code": "SERVICE_UNAVAILABLE",
  "message": "Layanan sementara tidak tersedia"
}

Kode Error Umum

Error Code Status Description Solution
UNAUTHORIZED 401 API Key tidak valid, kedaluwarsa, atau telah dicabut Periksa apakah API Key benar, buat baru jika diperlukan
INSUFFICIENT_BALANCE 403 Saldo akun tidak mencukupi Isi ulang akun
INVALID_ADDRESS 400 Format alamat TRON tidak valid Periksa apakah alamat adalah alamat TRON yang valid (dimulai dengan T)
INVALID_ENERGY_AMOUNT 400 Jumlah energi tidak valid Jumlah energi harus berupa bilangan bulat positif, disarankan 65000 untuk transfer USDT
INVALID_DURATION 400 Durasi sewa tidak valid Gunakan durasi yang valid: 1H, 1D, 3D, 7D, 14D, 30D
ORDER_NOT_FOUND 404 Pesanan tidak ada Periksa apakah ID pesanan benar
ADDRESS_EXISTS 409 Alamat sudah ada Periksa apakah alamat sudah ditambahkan, atau gunakan alamat yang sudah ada
RATE_LIMITED 429 Melebihi batas rate limit API Key (saat ini hanya berlaku untuk POST /v1/wallet/recharges) Implementasikan retry dengan exponential backoff, atau kurangi frekuensi panggilan

Cara Penanganan

Error Handling
401 UNAUTHORIZED Periksa/rotasi API Key
403 INSUFFICIENT_BALANCE Isi ulang atau kurangi jumlah permintaan
409 ADDRESS_EXISTS Beralih ke query/penanganan idempoten
429 RATE_LIMITED Retry dengan backoff (ikuti Retry-After jika ada, jika tidak gunakan exponential backoff)
5xx Retry + log konteks permintaan

Panduan Retry

  • • maksimum retry: 3 kali
  • • backoff: eksponensial (1s, 2s, 4s...)
  • • hanya retry 429/5xx
  • • jangan retry 4xx (error sisi client)