Langsung ke konten
↑↓ navigasi↵ bukaEsc tutup

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.

  • typestringwajib

    format: uri

  • titlestringwajib
  • statusintegerwajib
  • detailstringopsional
  • instancestringopsional
  • codestringwajib

    Stable 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_DUE

  • detailsobject (map)opsional
  • errorsarray<object>opsional

    Field-level validation errors.

    Tampilkan 2 atribut turunan
    • pathstringwajib
    • messagestringwajib
  • requestIdstringopsional
400 application/problem+json
{
  "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"
}
  • status mengulang status HTTP. details membawa konteks yang bisa dibaca mesin untuk sebagian kode (misalnya details.required pada API_SCOPE_MISSING, details.retryAfter pada RATE_LIMITED).
  • errors mencantumkan masalah per field untuk VALIDATION_FAILED.
  • Sertakan requestId saat 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.

KodeStatusArti
VALIDATION_FAILED400 / 422Request tidak sesuai kontrak atau aturan bisnis; lihat errors dan detail.
UNAUTHENTICATED401Tidak ada bearer token yang dikirim.
TOKEN_EXPIRED401Access token sesi kedaluwarsa (khusus sesi konsol).
TOKEN_INVALID401Access token sesi tidak valid (khusus sesi konsol).
FORBIDDEN403Pemanggil tidak diizinkan melakukan aksi ini.
NOT_FOUND404Route atau resource tidak ada.
CONFLICT409Request bertentangan dengan state saat ini.
RATE_LIMITED429Rate limit terlampaui; tunggu retry-after detik.
INTERNAL500Error server yang tidak terduga. Ulangi dengan backoff dan sertakan requestId saat menghubungi support.
FEATURE_NOT_IN_PLAN403Paket tenant tidak mencakup fitur ini (akses API butuh Pro).
PLAN_LIMIT_REACHED403Kuota paket (toko, anggota, ...) sudah habis.
SUBSCRIPTION_INACTIVE403Langganan tenant tidak aktif.
STORE_NOT_FOUND404Tidak ada toko dengan id ini di tenant.
MARKETPLACE_NOT_CONFIGURED409Integrasi marketplace belum dikonfigurasi di server.
STORE_NOT_CONNECTED404Toko tidak memiliki koneksi marketplace.
ORDER_NOT_FOUND404Tidak ada pesanan dengan id ini di tenant.
ACTION_NOT_SUPPORTED409Marketplace atau status pesanan tidak mengizinkan aksi ini.
MARKETPLACE_ERROR502Marketplace menolak atau gagal memproses panggilan; detail berisi pesannya.
AFTERSALE_NOT_FOUND404Tidak ada permintaan after-sales tertunda dengan id ini.
INVENTORY_ITEM_NOT_FOUND404Tidak ada item inventori dengan id ini.
INVENTORY_SKU_TAKEN409SKU ini sudah dipakai item inventori lain.
CONTACT_NOT_FOUND404Tidak ada kontak dengan id ini.
API_KEY_INVALID401API key tidak dikenal, dicabut, kedaluwarsa, atau pembuatnya kehilangan akses owner/admin.
API_KEY_NOT_ALLOWED403Operasi ini tidak terbuka untuk API key.
API_SCOPE_MISSING403Key atau app token tidak memiliki satu pun scope yang dibutuhkan operasi.
OAUTH_APP_NOT_FOUND404Tidak ada aplikasi OAuth dengan id ini milik tenant.
DEVELOPER_ACCOUNT_RESTRICTED403Ruang 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_REQUIRED403Aplikasi pihak ketiga dibuat dan diajukan dari ruang kerja developer di Developer Console.
OAUTH_INVALID_REQUEST400Authorization request tidak valid: client_id tidak dikenal, redirect_uri tidak terdaftar, atau scope melebihi milik aplikasi.
OAUTH_APP_NOT_AVAILABLE403Aplikasi belum dipublikasikan (hanya tenant developernya yang bisa mengotorisasi) atau sedang ditangguhkan.
INSTALLATION_NOT_FOUND404Tidak ada instalasi aplikasi aktif dengan id ini di tenant.
WEBHOOK_MANAGED_BY_APP409Endpoint webhook milik aplikasi yang terpasang; copot aplikasinya untuk menghapusnya.
VARIANT_MANAGED409Varian mengikuti item master; ubah stok atau harga di sana.
CHAT_NOT_CONNECTED409Chat belum terhubung untuk toko ini.
CONVERSATION_NOT_FOUND404Tidak ada percakapan dengan id ini.
CHAT_CANNOT_SEND409Marketplace tidak mengizinkan balasan di percakapan ini saat ini.
WAREHOUSE_NOT_FOUND404Tidak ada gudang dengan id ini.
WAREHOUSE_ARCHIVED409Gudang sudah diarsipkan.
INSUFFICIENT_STOCK409Stok di gudang tidak mencukupi.
VARIANT_NOT_FOUND404Tidak ada varian marketplace dengan id ini.
VARIANT_ALREADY_LINKED409Varian sudah tertaut ke item inventori.
SUBSCRIPTION_PAST_DUE402Operasi 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_ERROR

Error 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.

errorStatusArti
invalid_request400Parameter wajib tidak ada.
invalid_client401Autentikasi client gagal; dikirim dengan www-authenticate: Basic.
invalid_grant400Code atau refresh token tidak dikenal, kedaluwarsa, dipakai ulang, atau tidak berlaku lagi (aplikasi dicopot); redirect_uri atau code_verifier tidak cocok.
unauthorized_client400Aplikasi sedang ditangguhkan.
unsupported_grant_type400grant_type bukan authorization_code atau refresh_token.

Lihat Membuat aplikasi (OAuth 2.0) untuk cara menanganinya.