Panduan
Error
Error berupa problem details RFC 9457 dengan kode stabil yang bisa dibaca mesin.
Format problem
Setiap response non-2xx memiliki content-type: application/problem+json. Bercabanglah berdasarkan code, bukan title atau detail, yang ditujukan untuk manusia dan bisa berubah.
typestringwajibformat: uri
titlestringwajibstatusintegerwajibdetailstringopsionalinstancestringopsionalcodestringwajibStable machine-readable error codes.
Salah satu dari:
VALIDATION_FAILEDUNAUTHENTICATEDTOKEN_EXPIREDTOKEN_INVALIDFORBIDDENNOT_FOUNDCONFLICTRATE_LIMITEDINTERNALFEATURE_NOT_IN_PLANPLAN_LIMIT_REACHEDSUBSCRIPTION_INACTIVEEMAIL_TAKENINVALID_CREDENTIALSREFRESH_TOKEN_INVALIDMEMBERSHIP_NOT_FOUNDMEMBER_EXISTSLAST_OWNERINVITATION_INVALIDINVITATION_EXPIREDWEAK_PASSWORDSTORE_NOT_FOUNDMARKETPLACE_NOT_CONFIGUREDSTORE_NOT_CONNECTEDSTORE_ALREADY_CONNECTEDCONNECTION_FAILEDWEBHOOK_SIGNATURE_INVALIDORDER_NOT_FOUNDHOST_NOT_FOUNDLIVE_SESSION_NOT_FOUNDLIVE_SESSION_OVERLAPLIVE_SESSION_INVALID_STATEATTENDANCE_ALREADY_OPENATTENDANCE_NOT_OPENRULE_NOT_FOUNDSUPPORT_REQUEST_NOT_FOUNDPAYOUT_NOT_FOUNDPAYOUT_INVALID_TRANSITIONHOST_NOT_LINKEDAUTH_TOKEN_INVALIDACTION_NOT_SUPPORTEDMARKETPLACE_ERRORAFTERSALE_NOT_FOUNDINVENTORY_ITEM_NOT_FOUNDINVENTORY_SKU_TAKENCONTACT_NOT_FOUNDAPI_KEY_INVALIDAPI_KEY_NOT_ALLOWEDAPI_SCOPE_MISSINGAPI_KEY_NOT_FOUNDWEBHOOK_NOT_FOUNDWEBHOOK_URL_INVALIDDELIVERY_NOT_FOUNDOAUTH_APP_NOT_FOUNDPLATFORM_ADMIN_REQUIREDDEVELOPER_ACCOUNT_RESTRICTEDDEVELOPER_ACCOUNT_REQUIREDINVALID_TRANSITIONOAUTH_INVALID_REQUESTOAUTH_APP_NOT_AVAILABLEINSTALLATION_NOT_FOUNDWEBHOOK_MANAGED_BY_APPASSIGNEE_NOT_MEMBERAI_QUOTA_EXCEEDEDAI_RATE_LIMITEDCREDIT_PACK_NOT_FOUNDVARIANT_MANAGEDNO_LABELSCHAT_NOT_CONNECTEDSHOP_MISMATCHCONVERSATION_NOT_FOUNDCHAT_CANNOT_SENDCHAT_AGENT_NOT_CONFIGUREDKNOWLEDGE_NOT_FOUNDQUICK_REPLY_NOT_FOUNDQUICK_REPLY_TAKENWAREHOUSE_NOT_FOUNDWAREHOUSE_ARCHIVEDWAREHOUSE_CODE_TAKENWAREHOUSE_IN_USEINSUFFICIENT_STOCKDUPLICATE_LINESSAME_WAREHOUSEINVENTORY_ITEM_IN_USESUPPLIER_NOT_FOUNDSUPPLIER_NAME_TAKENSUPPLIER_ARCHIVEDPURCHASE_ORDER_NOT_FOUNDPURCHASE_ORDER_STATERECEIVE_EXCEEDS_ORDEREDSTOCKTAKE_NOT_FOUNDSTOCKTAKE_STATESTOCKTAKE_IN_PROGRESSVARIANT_NOT_FOUNDVARIANT_ALREADY_LINKEDPLAN_NOT_FOUNDPLAN_UNCHANGEDINVOICE_NOT_FOUNDINVOICE_NOT_PAYABLEBILLING_NOT_CONFIGUREDPAYMENT_GATEWAY_ERRORSUBSCRIPTION_PAST_DUEdetailsobject (map)opsionalerrorsarray<object>opsionalField-level validation errors.
Tampilkan 2 atribut turunan
pathstringwajibmessagestringwajib
requestIdstringopsional
{
"type": "about:blank",
"title": "Validation failed",
"status": 400,
"code": "VALIDATION_FAILED",
"detail": "Request does not match the API contract",
"instance": "/v1/orders?limit=500",
"errors": [
{
"path": "/query/limit",
"message": "must be <= 200"
}
],
"requestId": "6f1c2d3e-4b5a-4c6d-8e7f-90a1b2c3d4e5"
}statusmengulang status HTTP.detailsmembawa konteks yang bisa dibaca mesin untuk sebagian kode (misalnyadetails.requiredpadaAPI_SCOPE_MISSING,details.retryAfterpadaRATE_LIMITED).errorsmencantumkan masalah per field untukVALIDATION_FAILED.- Sertakan
requestIdsaat menghubungi support. - Ulangi hanya 429 dan 5xx. Response 4xx lain akan gagal dengan cara yang sama sampai request atau datanya berubah.
Kode error
Kode dari enum ErrorCode di kontrak (102 total). Kolom status adalah yang umum; selalu baca status.
| Kode | Status | Arti |
|---|---|---|
VALIDATION_FAILED | 400 / 422 | Request tidak sesuai kontrak atau aturan bisnis; lihat errors dan detail. |
UNAUTHENTICATED | 401 | Tidak ada bearer token yang dikirim. |
TOKEN_EXPIRED | 401 | Access token sesi kedaluwarsa (khusus sesi konsol). |
TOKEN_INVALID | 401 | Access token sesi tidak valid (khusus sesi konsol). |
FORBIDDEN | 403 | Pemanggil tidak diizinkan melakukan aksi ini. |
NOT_FOUND | 404 | Route atau resource tidak ada. |
CONFLICT | 409 | Request bertentangan dengan state saat ini. |
RATE_LIMITED | 429 | Rate limit terlampaui; tunggu retry-after detik. |
INTERNAL | 500 | Error server yang tidak terduga. Ulangi dengan backoff dan sertakan requestId saat menghubungi support. |
FEATURE_NOT_IN_PLAN | 403 | Paket tenant tidak mencakup fitur ini (akses API butuh Pro). |
PLAN_LIMIT_REACHED | 403 | Kuota paket (toko, anggota, ...) sudah habis. |
SUBSCRIPTION_INACTIVE | 403 | Langganan tenant tidak aktif. |
STORE_NOT_FOUND | 404 | Tidak ada toko dengan id ini di tenant. |
MARKETPLACE_NOT_CONFIGURED | 409 | Integrasi marketplace belum dikonfigurasi di server. |
STORE_NOT_CONNECTED | 404 | Toko tidak memiliki koneksi marketplace. |
ORDER_NOT_FOUND | 404 | Tidak ada pesanan dengan id ini di tenant. |
ACTION_NOT_SUPPORTED | 409 | Marketplace atau status pesanan tidak mengizinkan aksi ini. |
MARKETPLACE_ERROR | 502 | Marketplace menolak atau gagal memproses panggilan; detail berisi pesannya. |
AFTERSALE_NOT_FOUND | 404 | Tidak ada permintaan after-sales tertunda dengan id ini. |
INVENTORY_ITEM_NOT_FOUND | 404 | Tidak ada item inventori dengan id ini. |
INVENTORY_SKU_TAKEN | 409 | SKU ini sudah dipakai item inventori lain. |
CONTACT_NOT_FOUND | 404 | Tidak ada kontak dengan id ini. |
API_KEY_INVALID | 401 | API key tidak dikenal, dicabut, kedaluwarsa, atau pembuatnya kehilangan akses owner/admin. |
API_KEY_NOT_ALLOWED | 403 | Operasi ini tidak terbuka untuk API key. |
API_SCOPE_MISSING | 403 | Key atau app token tidak memiliki satu pun scope yang dibutuhkan operasi. |
OAUTH_APP_NOT_FOUND | 404 | Tidak ada aplikasi OAuth dengan id ini milik tenant. |
DEVELOPER_ACCOUNT_RESTRICTED | 403 | Ruang kerja developer (sandbox) tidak bisa menghubungkan toko, mengganti paket, membayar tagihan, membeli kredit AI, atau membuat API key dan endpoint webhook manual; gunakan aplikasi OAuth. |
DEVELOPER_ACCOUNT_REQUIRED | 403 | Aplikasi pihak ketiga dibuat dan diajukan dari ruang kerja developer di Developer Console. |
OAUTH_INVALID_REQUEST | 400 | Authorization request tidak valid: client_id tidak dikenal, redirect_uri tidak terdaftar, atau scope melebihi milik aplikasi. |
OAUTH_APP_NOT_AVAILABLE | 403 | Aplikasi belum dipublikasikan (hanya tenant developernya yang bisa mengotorisasi) atau sedang ditangguhkan. |
INSTALLATION_NOT_FOUND | 404 | Tidak ada instalasi aplikasi aktif dengan id ini di tenant. |
WEBHOOK_MANAGED_BY_APP | 409 | Endpoint webhook milik aplikasi yang terpasang; copot aplikasinya untuk menghapusnya. |
VARIANT_MANAGED | 409 | Varian mengikuti item master; ubah stok atau harga di sana. |
CHAT_NOT_CONNECTED | 409 | Chat belum terhubung untuk toko ini. |
CONVERSATION_NOT_FOUND | 404 | Tidak ada percakapan dengan id ini. |
CHAT_CANNOT_SEND | 409 | Marketplace tidak mengizinkan balasan di percakapan ini saat ini. |
WAREHOUSE_NOT_FOUND | 404 | Tidak ada gudang dengan id ini. |
WAREHOUSE_ARCHIVED | 409 | Gudang sudah diarsipkan. |
INSUFFICIENT_STOCK | 409 | Stok di gudang tidak mencukupi. |
VARIANT_NOT_FOUND | 404 | Tidak ada varian marketplace dengan id ini. |
VARIANT_ALREADY_LINKED | 409 | Varian sudah tertaut ke item inventori. |
SUBSCRIPTION_PAST_DUE | 402 | Operasi tulis diblokir sampai tagihan yang tertunggak dibayar. |
Kode lain di enum dipakai oleh fitur khusus konsol atau spesifik untuk satu resource; namanya menjelaskan penyebabnya:
EMAIL_TAKENINVALID_CREDENTIALSREFRESH_TOKEN_INVALIDMEMBERSHIP_NOT_FOUNDMEMBER_EXISTSLAST_OWNERINVITATION_INVALIDINVITATION_EXPIREDWEAK_PASSWORDSTORE_ALREADY_CONNECTEDCONNECTION_FAILEDWEBHOOK_SIGNATURE_INVALIDHOST_NOT_FOUNDLIVE_SESSION_NOT_FOUNDLIVE_SESSION_OVERLAPLIVE_SESSION_INVALID_STATEATTENDANCE_ALREADY_OPENATTENDANCE_NOT_OPENRULE_NOT_FOUNDSUPPORT_REQUEST_NOT_FOUNDPAYOUT_NOT_FOUNDPAYOUT_INVALID_TRANSITIONHOST_NOT_LINKEDAUTH_TOKEN_INVALIDAPI_KEY_NOT_FOUNDWEBHOOK_NOT_FOUNDWEBHOOK_URL_INVALIDDELIVERY_NOT_FOUNDPLATFORM_ADMIN_REQUIREDINVALID_TRANSITIONASSIGNEE_NOT_MEMBERAI_QUOTA_EXCEEDEDAI_RATE_LIMITEDCREDIT_PACK_NOT_FOUNDNO_LABELSSHOP_MISMATCHCHAT_AGENT_NOT_CONFIGUREDKNOWLEDGE_NOT_FOUNDQUICK_REPLY_NOT_FOUNDQUICK_REPLY_TAKENWAREHOUSE_CODE_TAKENWAREHOUSE_IN_USEDUPLICATE_LINESSAME_WAREHOUSEINVENTORY_ITEM_IN_USESUPPLIER_NOT_FOUNDSUPPLIER_NAME_TAKENSUPPLIER_ARCHIVEDPURCHASE_ORDER_NOT_FOUNDPURCHASE_ORDER_STATERECEIVE_EXCEEDS_ORDEREDSTOCKTAKE_NOT_FOUNDSTOCKTAKE_STATESTOCKTAKE_IN_PROGRESSPLAN_NOT_FOUNDPLAN_UNCHANGEDINVOICE_NOT_FOUNDINVOICE_NOT_PAYABLEBILLING_NOT_CONFIGUREDPAYMENT_GATEWAY_ERRORError endpoint token OAuth
POST /v1/oauth/token dan POST /v1/oauth/revoke menjawab dalam format RFC 6749 { "error": "…", "error_description": "…" }, bukan problem details. Bercabanglah berdasarkan error.
| error | Status | Arti |
|---|---|---|
invalid_request | 400 | Parameter wajib tidak ada. |
invalid_client | 401 | Autentikasi client gagal; dikirim dengan www-authenticate: Basic. |
invalid_grant | 400 | Code atau refresh token tidak dikenal, kedaluwarsa, dipakai ulang, atau tidak berlaku lagi (aplikasi dicopot); redirect_uri atau code_verifier tidak cocok. |
unauthorized_client | 400 | Aplikasi sedang ditangguhkan. |
unsupported_grant_type | 400 | grant_type bukan authorization_code atau refresh_token. |
Lihat Membuat aplikasi (OAuth 2.0) untuk cara menanganinya.