Tổng Kho eSIM
エラー・91件の公開コード

エラーコード

エラーは適切なHTTPステータスと{ ok: false, error: { code, message, field?, meta?, request_id } }を返します。200は使用せず、/v1と埋め込み用の一覧はバックエンドと同期します。

エラーの構造

http
HTTP/1.1 402 Payment Required
Content-Type: application/json
X-Request-Id: 018f2b00-0000-7000-8000-0000000000ff

{
  "ok": false,
  "error": {
    "code": "wallet.insufficient_balance",
    "message": "Số dư ví không đủ để thực hiện giao dịch.",
    "field": null,
    "meta": null,
    "request_id": "018f2b00-0000-7000-8000-0000000000ff"
  }
}
0000ではなくdomain.reasonを使う理由

HTTP標準: プロキシ、監視、RESTクライアントが標準HTTPステータスを扱えます。

意味が明確: wallet.insufficient_balanceは表を引かず理解でき、新しいコードの追加も既存処理を壊しません。

旧システムが数値を必要とする場合も、不変のコードを翻訳キーとして使えます。

エラー処理の4つの指針

HTTPステータスを先に判定
ステータスで再試行・警告・遮断を判断し、error.codeで利用者向けメッセージを決めます。ステータスはより安定しています。
未知のコードでも処理を止めない
未知のコードはHTTPステータスに基づいて処理し、コードとrequest_idを記録して代替メッセージを表示します。未処理例外を発生させないでください。
request_idを必ず記録
すべてのレスポンスとエラーにX-Request-Idがあります。問い合わせ時の調査に必要です。
429と503のRetry-Afterを尊重
待機時間を固定せずRetry-Afterを参照します。429にはX-RateLimit-Limit / Remaining / Resetもあります。

コードとHTTPの対応表

ドメイン別の一覧です。各エンドポイントのエラーはAPIリファレンスも参照してください。

91件中91件を表示

認証・キー・制限 partner.*

codeHTTP意味再試行可能?
partner.invalid_key401APIキーが無効です。いいえ:同じ内容では再度失敗
partner.invalid_signature401リクエスト署名が無効です。いいえ:同じ内容では再度失敗
partner.timestamp_expired401リクエストの時刻がサーバー時刻から大きくずれています。いいえ:同じ内容では再度失敗
partner.nonce_reused401このnonceは使用済みです。いいえ:同じ内容では再度失敗
partner.ip_not_allowed403このIPアドレスは許可リストにありません。いいえ:同じ内容では再度失敗
partner.scope_denied403このAPIキーにはこのエンドポイントを呼び出す権限がありません。いいえ:同じ内容では再度失敗
partner.key_suspended403このAPIキーは一時停止中です。いいえ:同じ内容では再度失敗
partner.key_revoked403このAPIキーは失効しています。いいえ:同じ内容では再度失敗
partner.endpoint_disabled503このエンドポイントグループは一時的に停止中です。はい:同じ内容で再試行
partner.rate_limited429リクエスト上限を超えました。しばらくしてから再試行してください。はい:同じ内容で再試行
partner.package_not_visible404このキーではこのプランを購入できません。いいえ:同じ内容では再度失敗
partner.daily_quota_exceeded4291日のリクエスト上限を超えました。明日再試行してください。はい:同じ内容で再試行
partner.wrong_host403このキーは呼び出し先ホストで使用できません。`tke_test_`は`https://api-testing.tongkhoesim.com`、`tke_live_`は`https://api.tongkhoesim.com`を使用してください。いいえ:同じ内容では再度失敗

API共通エラー internal.*

codeHTTP意味再試行可能?
internal.validation_failed400送信されたデータが無効です。いいえ:同じ内容では再度失敗
internal.invalid_filter400絞り込み条件が無効です。いいえ:同じ内容では再度失敗
internal.invalid_sort_field400並べ替え項目が無効です。いいえ:同じ内容では再度失敗
internal.unauthenticated401ログインしていないか、セッションが期限切れです。いいえ:同じ内容では再度失敗
internal.forbidden403この操作を行う権限がありません。いいえ:同じ内容では再度失敗
internal.not_found404要求されたリソースが見つかりません。いいえ:同じ内容では再度失敗
internal.route_not_found404このパスは存在しません。資料でメソッドとパスを確認してください。いいえ:同じ内容では再度失敗
internal.method_not_allowed405このHTTPメソッドはサポートされていません。いいえ:同じ内容では再度失敗
internal.conflict409状態の競合により操作を完了できません。いいえ:同じ内容では再度失敗
internal.unsupported_media_type415このコンテンツ形式はサポートされていません。いいえ:同じ内容では再度失敗
internal.rate_limited429リクエストが多すぎます。しばらくしてから再試行してください。はい:同じ内容で再試行
internal.server_error500システムエラーが発生しました。しばらくしてから再試行してください。はい:同じ内容で再試行
internal.service_unavailable503サービスを一時的に利用できません。しばらくしてから再試行してください。はい:同じ内容で再試行
internal.limit_exceeded422上限に達しました。一部の項目を削除してから再試行してください。いいえ:同じ内容では再度失敗
internal.money_frozen503台帳の確認のため金融取引を一時停止しています。しばらくしてから再試行してください。はい:同じ内容で再試行

プラン一覧 catalog.*

codeHTTP意味再試行可能?
catalog.cursor_mismatch400このカーソルは現在の絞り込み条件と一致しません。cursorパラメーターを外し、最初のページから取得してください。いいえ:同じ内容では再度失敗

見積もり・注文 order.*

codeHTTP意味再試行可能?
order.quote_not_found404見積もりが見つかりません。いいえ:同じ内容では再度失敗
order.quote_expired409この見積もりは期限切れです。新しく作成してください。いいえ:同じ内容では再度失敗
order.quote_already_committed409この見積もりはすでに注文として確定しています。いいえ:同じ内容では再度失敗
order.package_not_allowed400このプランは存在しないか、購入できません。いいえ:同じ内容では再度失敗
order.not_deliverable409この注文は未完了のため、この操作は利用できません。いいえ:同じ内容では再度失敗
order.quantity_limit_exceeded400eSIMの数が注文ごとの上限を超えています。いいえ:同じ内容では再度失敗
order.fulfillment_config_changed409プランの提供設定が変更されました。新しい見積もりを作成してください。いいえ:同じ内容では再度失敗
order.refund_suggestion_pending409この注文には承認待ちの返金提案があります。先に対応してください。いいえ:同じ内容では再度失敗

eSIM esim.*

codeHTTP意味再試行可能?
esim.out_of_stock409このプランの在庫が不足しています。いいえ:同じ内容では再度失敗
esim.not_cancellable409このeSIMは取り消せる状態ではありません。いいえ:同じ内容では再度失敗
esim.lpa_not_available409このeSIMにはまだLPAコードがありません(未開通または未登録)。いいえ:同じ内容では再度失敗
esim.not_eligible409このeSIMは追加チャージの対象外です。いいえ:同じ内容では再度失敗
esim.not_activated409このeSIMは未インストールです。インストールして有効にしてから追加チャージしてください。いいえ:同じ内容では再度失敗
esim.topup_not_supported409このプランは追加チャージに対応していません。いいえ:同じ内容では再度失敗
esim.topup_provider_mismatch409追加チャージのプランは別の供給元のものです。このeSIM用に提示されたプランを選択してください。いいえ:同じ内容では再度失敗
esim.refund_not_eligible409このeSIMは返金申請の対象外です。いいえ:同じ内容では再度失敗
esim.refund_request_pending409このeSIMには保留中の返金申請があります。いいえ:同じ内容では再度失敗
esim.suspended409このeSIMは一時停止中です。再開してから操作してください。いいえ:同じ内容では再度失敗

ウォレット wallet.*

codeHTTP意味再試行可能?
wallet.frozen409このウォレットは凍結されており、支払いできません。いいえ:同じ内容では再度失敗
wallet.velocity_hold409このウォレットは確認のため保留中です。サポートにお問い合わせください。いいえ:同じ内容では再度失敗
wallet.insufficient_balance402この取引を完了するにはウォレット残高が不足しています。いいえ:同じ内容では再度失敗
wallet.deleted409送金先ウォレットは削除されているため無効です。いいえ:同じ内容では再度失敗
wallet.velocity_exceeded429短時間の取引が上限を超えたため、ウォレットを確認のため保留しました。いいえ:同じ内容では再度失敗

返金申請 refund.*

codeHTTP意味再試行可能?
refund.note_required400返金を却下する理由を入力してください。いいえ:同じ内容では再度失敗

販売価格 pricing.*

codeHTTP意味再試行可能?
pricing.no_price_for_buyer409このプランの販売価格がまだ設定されていません。いいえ:同じ内容では再度失敗

eSIM供給元 provider.*

codeHTTP意味再試行可能?
provider.disabled409このプランの供給元が無効のため、販売できません。いいえ:同じ内容では再度失敗
provider.api_group_disabled409この供給元のサービスグループは無効です。いいえ:同じ内容では再度失敗
provider.not_registered500この供給元の接続設定がありません。はい:同じ内容で再試行
provider.unsupported400この供給元はこの操作に対応していません。いいえ:同じ内容では再度失敗
provider.timeout504供給元の応答がタイムアウトしました。しばらくしてから再試行してください。はい:同じ内容で再試行
provider.auth_failed502供給元での認証に失敗しました。はい:同じ内容で再試行
provider.rate_limited429供給元がリクエストを制限しています。しばらくしてから再試行してください。はい:同じ内容で再試行
provider.malformed_response502供給元から無効なデータが返されました。はい:同じ内容で再試行
provider.call_failed502供給元への呼び出しに失敗しました。はい:同じ内容で再試行
provider.out_of_stock409このプランは供給元で在庫切れです。いいえ:同じ内容では再度失敗
provider.msisdn_taken409このMSISDNは供給元ですでに別の契約者に割り当てられています。いいえ:同じ内容では再度失敗
provider.msisdn_exhausted409供給元に利用可能なMSISDNがありません。いいえ:同じ内容では再度失敗

Idempotency idempotency.*

codeHTTP意味再試行可能?
idempotency.conflict409このIdempotency-Keyは異なる内容ですでに使用されています。いいえ:同じ内容では再度失敗

供給元の機能 capability.*

codeHTTP意味再試行可能?
capability.not_supported422このプランは要求された機能に対応していません。いいえ:同じ内容では再度失敗

テスト・シミュレーション testmode.*

codeHTTP意味再試行可能?
testmode.live_key_forbidden403このエンドポイントはapi-testing上でテストキー(`tke_test_`)を使用する場合のみ利用できます。同じ組織のテストキーに切り替えてください。いいえ:同じ内容では再度失敗
testmode.not_test_item422このeSIMは本番データです。テストモードでは操作できません。実際の注文を取り消すには返金審査を申請してください。いいえ:同じ内容では再度失敗
testmode.invalid_scenario422無効なシナリオです。`data_used_mb`、`status`、`expire_now`、`throttled`のいずれかを指定してください。`status`はreleased|installed|enabled|disabledのみ有効です。いいえ:同じ内容では再度失敗
testmode.no_sellable_package422サンプルデータを作成するには、価格が設定された販売可能プランが最低1つ必要です。いいえ:同じ内容では再度失敗

Webhook webhook.*

codeHTTP意味再試行可能?
webhook.health_check_failed422ヘルスチェックでWebhook URLから有効な応答がありませんでした。いいえ:同じ内容では再度失敗
webhook.url_not_allowed422このWebhook URLは使用できません。公開されたhttps URLが必要です。いいえ:同じ内容では再度失敗
webhook.not_configured404このAPIキーにはWebhookが設定されていません。いいえ:同じ内容では再度失敗
webhook.delivery_not_found404Webhook配信が見つかりません。いいえ:同じ内容では再度失敗
webhook.already_configured409このAPIキーにはWebhookがすでにあります(キーごとに1件)。`PUT /v1/webhooks/{id}`で更新するか、`DELETE /v1/webhooks/{id}`で削除してから作成してください。いいえ:同じ内容では再度失敗
webhook.not_found404呼び出し元APIキーにこのWebhookエンドポイントはありません。いいえ:同じ内容では再度失敗

組織の状態 org.*

codeHTTP意味再試行可能?
org.invoice_profile_incomplete422組織の請求情報が不足しています(法人名、税番号、住所)。いいえ:同じ内容では再度失敗
org.suspended403この組織は現在利用停止中です。いいえ:同じ内容では再度失敗
org.closed403この組織は閉鎖されています。いいえ:同じ内容では再度失敗

公開埋め込み embed.*

codeHTTP意味再試行可能?
embed.invalid_token401埋め込みトークンが無効です。いいえ:同じ内容では再度失敗
embed.token_revoked410この埋め込みチャネルは無効になっています。いいえ:同じ内容では再度失敗
embed.rate_limited429埋め込みチャネルの呼び出しが速すぎます。しばらくしてから再試行してください。はい:同じ内容で再試行
embed.package_not_visible404プランが見つかりません。いいえ:同じ内容では再度失敗

VAT請求書 invoice.*

codeHTTP意味再試行可能?
invoice.order_not_settled409返金処理中のため注文の精算が完了していません。数分後に請求書の発行を再試行してください。はい:同じ内容で再試行
invoice.profile_incomplete422組織の請求情報が不足しています。請求書を発行する前に必要事項を入力してください。いいえ:同じ内容では再度失敗
invoice.already_requested409この注文にはすでに請求書があります。いいえ:同じ内容では再度失敗
invoice.nothing_to_invoice409返金額を差し引くと請求できる金額はありません。いいえ:同じ内容では再度失敗
invoice.amount_changed409新しい返金により注文金額が変わりました。金額を確認してから請求書を再発行してください。はい:同じ内容で再試行
invoice.buyer_invalid422請求先企業の情報が不足しているか、税番号の形式が無効です。いいえ:同じ内容では再度失敗