MerchantIdError adalah base error publik untuk seluruh kegagalan bertipe yang disurface-kan library. Setiap error publik adalah turunannya, sehingga penanganan error tetap terprediksi.
Menangkap error
MerchantIdError membawa code (bertipe MerchantIdErrorCode), message, cause opsional, dan details opsional.
Kode error
Hierarki subclass
HttpError dan kebocoran
HttpError menyimpan body respons untuk inspeksi, tetapi non-enumerable secara sengaja. util.inspect - yang dipakai console.error(err) - hanya mencetak properti enumerable, jadi body enumerable akan menuang seluruh respons provider (termasuk kredensial) ke log begitu ada yang mencatat error. Membaca error.body tetap berfungsi seperti biasa.
Perbedaan AUTH_REQUIRED vs AUTH_FAILED
AUTH_REQUIRED: operasi butuh sesi yang belum ada, atau sesi akun sudah mati sehingga hanya login OTP baru yang memulihkan (Shopee).AUTH_FAILED: OTP ditolak, refresh token kedaluwarsa/invalid, atau sesi dicabut. Untuk GoPay, surface ini sebagai kebutuhan login ulang, bukan sebagai status belum dibayar. Lihat Sesi Shopee dan Login GoPay.