# Retrieve account (/ar/api-reference/account/getAccount)

Returns the account for the authenticated key: merchant id, display profile, chargeable currencies grouped by payment method type, live activation status, and the key's own type, mode, and permissions. Works with any secret or restricted key, and requires no specific permission. Publishable keys are refused.

## GET /account

### Responses

#### 200

Content type: `application/json`

- `id` (string, required) — Merchant account id.
- `displayName` (string) — Merchant display name. Absent when the merchant has not completed onboarding.
- `country` (string) — Merchant country. Absent when not provided during onboarding.
- `defaultCurrency` (enum("EGP" | "USD" | "EUR" | "GBP" | "SAR" | "AED" | "QAR" | "KWD" | "JOD" | "OMR" | "BHD" | "LYD" | "AUD" | "CAD" | "CNY"), required) — Merchant's default pricing currency.
- `defaultLocale` (enum("en" | "ar"), required) — Merchant's default checkout locale.
- `supportedCurrencies` (Array<AccountSupportedCurrency>, required) — Currencies this account can actually charge in, per the key's mode: the union of currencies enabled on the merchant's active payment processors, intersected with platform-enabled currencies that settle to EGP (EGP itself, plus currencies with an active exchange rate). Whether a checkout/session currency is accepted is gated by the flat union of `code` values here; the `paymentMethodTypes` grouping additionally tells which methods survive for that currency.
  - `code` (enum("EGP" | "USD" | "EUR" | "GBP" | "SAR" | "AED" | "QAR" | "KWD" | "JOD" | "OMR" | "BHD" | "LYD" | "AUD" | "CAD" | "CNY"), required) — ISO 4217 currency code.
  - `decimals` (number, required) — Number of decimal places for the currency's smallest unit.
  - `paymentMethodTypes` (Array<enum("card" | "fawry" | "aman" | "valu" | "sympl" | "tabby" | "tamara" | "vodafone_cash" | "etisalat_cash" | "orange_cash" | "we_pay" | "apple_pay" | "google_pay" | "samsung_pay" | "instapay" | "bank_transfer" | "cash_on_delivery")>, required) — Payment method types that can process this currency, in the merchant's processor priority order. A currency listed here may still be unavailable on a specific method, so check this list rather than the currency code alone when pre-validating a charge for a given method.
- `livemode` (boolean, required) — Whether the authenticated key is a live-mode key.
- `livePaymentsEnabled` (boolean, required) — Whether the account is approved for live payments. While this is false, live-mode keys can call this endpoint but receive a merchant_not_activated error on all other endpoints.
- `apiKey` (AccountApiKey, required) — The authenticated API key, describing itself.
  - `type` (enum("SECRET" | "RESTRICTED"), required) — Type of the authenticated key. Publishable keys cannot call this endpoint.
  - `mode` (enum("live" | "test"), required) — Mode of the authenticated key.
  - `permissions` (Array<enum("BALANCE_READ" | "BALANCE_WRITE" | "CHARGES_READ" | "CHARGES_WRITE" | "CHECKOUT_SESSIONS_READ" | "CHECKOUT_SESSIONS_WRITE" | "COUPONS_READ" | "COUPONS_WRITE" | "CUSTOMERS_READ" | "CUSTOMERS_WRITE" | "DISPUTES_READ" | "DISPUTES_WRITE" | "EVENTS_READ" | "EVENTS_WRITE" | "MANDATES_READ" | "MANDATES_WRITE" | "PAYMENT_INTENTS_READ" | "PAYMENT_INTENTS_WRITE" | "PAYMENT_LINKS_READ" | "PAYMENT_LINKS_WRITE" | "PAYMENT_METHODS_READ" | "PAYMENT_METHODS_WRITE" | "PAYOUTS_READ" | "PAYOUTS_WRITE" | "PRODUCTS_READ" | "PRODUCTS_WRITE" | "REFUNDS_READ" | "REFUNDS_WRITE" | "REPORTING_READ" | "REPORTING_WRITE" | "SUBSCRIPTIONS_READ" | "SUBSCRIPTIONS_WRITE" | "TAX_CALCULATIONS_READ" | "TAX_CALCULATIONS_WRITE" | "TAX_RATES_READ" | "TAX_RATES_WRITE" | "TERMINAL_READ" | "TERMINAL_WRITE" | "TOKENS_READ" | "TOKENS_WRITE" | "TOPUPS_READ" | "TOPUPS_WRITE" | "TRANSFERS_READ" | "TRANSFERS_WRITE" | "WEBHOOK_ENDPOINTS_READ" | "WEBHOOK_ENDPOINTS_WRITE" | "TEAM_READ" | "TEAM_WRITE" | "MERCHANT_SETTINGS_READ" | "MERCHANT_SETTINGS_WRITE" | "ONBOARDING_READ" | "ONBOARDING_WRITE" | "API_KEYS_READ" | "API_KEYS_WRITE")>, required) — The key's effective permission set. Secret keys carry every permission; restricted keys carry exactly the set bound at creation, expanded so each WRITE permission implies its READ counterpart.

#### 401 — Authentication is required and the request did not present a valid API key.

Content type: `application/json`

- `error` (ApiErrorBody, required) — The structured error body. See `ApiErrorBody` for field semantics.
  - `type` (enum("invalid_request_error" | "authentication_error" | "rate_limit_error" | "api_error" | "card_error" | "idempotency_error"), required) — High-level error category. Use this for branching at the top level of your error handler (e.g. retry on `api_error`, surface a card decline on `card_error`).
  - `code` (enum("invalid_request" | "parameter_out_of_range" | "parameter_invalid" | "parameter_missing" | "parameter_unknown" | "parameters_exclusive" | "parameter_requires_another" | "validation_error" | "resource_missing" | "resource_invalid_state" | "resource_already_exists" | "resource_in_use" | "authentication_required" | "invalid_api_key" | "api_key_inactive" | "invalid_signature" | "merchant_not_activated" | "permission_denied" | "two_factor_required" | "checkout_session_expired" | "invalid_client_secret" | "amount_reconfirmation_required" | "creation_failed" | "payment_still_confirming" | "payment_already_completed" | "payment_link_inactive" | "payment_link_expired" | "amount_invalid" | "currency_invalid" | "product_archived" | "price_inactive" | "price_not_yet_active" | "price_expired" | "price_sold_out" | "price_date_range_invalid" | "price_stock_invalid" | "price_recurring_not_supported" | "price_immutable_while_used" | "line_item_missing_price" | "line_item_quantity_not_adjustable" | "line_item_quantity_out_of_bounds" | "line_item_quantity_not_supported_for_custom" | "checkout_empty_cart" | "promotion_codes_not_allowed" | "promotion_code_not_found" | "promotion_code_inactive" | "promotion_code_expired" | "promotion_code_max_redemptions" | "promotion_code_customer_mismatch" | "promotion_code_minimum_amount" | "promotion_code_first_time_only" | "coupon_invalid" | "coupon_currency_mismatch" | "coupon_minimum_amount" | "coupon_customer_max_redemptions" | "too_many_discounts" | "payment_method_corrupted" | "payment_method_customer_mismatch" | "payment_intent_customer_mismatch" | "payment_method_mismatch" | "charge_not_captured" | "merchant_no_balance" | "insufficient_balance" | "charge_missing_balance_transaction" | "charge_missing_fee_data" | "charge_incomplete_fee_data" | "cannot_rename_default" | "must_have_enabled_method" | "cannot_delete_default" | "configuration_in_use" | "unsupported_currency" | "exchange_rate_not_found" | "coupon_in_use" | "promotion_code_exists" | "rate_limit" | "idempotency_key_in_use" | "internal_error" | "request_timeout")) — Stable, machine-readable code identifying the specific failure (e.g. `resource_missing`, `parameter_invalid`, `authentication_required`). Always present on documented errors. See the API Error Codes reference for the full list.
  - `message` (string, required) — Human-readable description of what went wrong. Safe to log or display, but not stable — use `code` for programmatic branching.
  - `param` (string) — Name of the request parameter that caused the error, when applicable (e.g. `amount`, `currency`).
  - `doc_url` (string) — URL to the documentation page for this specific error code. Deep-linked into the API Error Codes reference.
- `request_id` (string) — Unique identifier for this request, propagated to logs and traces. Include it when contacting support.

#### 403 — The credential is valid but lacks the permission this endpoint requires. Check the API key's allowed permissions in the dashboard.

Content type: `application/json`

- `error` (ApiErrorBody, required) — The structured error body. See `ApiErrorBody` for field semantics.
  - `type` (enum("invalid_request_error" | "authentication_error" | "rate_limit_error" | "api_error" | "card_error" | "idempotency_error"), required) — High-level error category. Use this for branching at the top level of your error handler (e.g. retry on `api_error`, surface a card decline on `card_error`).
  - `code` (enum("invalid_request" | "parameter_out_of_range" | "parameter_invalid" | "parameter_missing" | "parameter_unknown" | "parameters_exclusive" | "parameter_requires_another" | "validation_error" | "resource_missing" | "resource_invalid_state" | "resource_already_exists" | "resource_in_use" | "authentication_required" | "invalid_api_key" | "api_key_inactive" | "invalid_signature" | "merchant_not_activated" | "permission_denied" | "two_factor_required" | "checkout_session_expired" | "invalid_client_secret" | "amount_reconfirmation_required" | "creation_failed" | "payment_still_confirming" | "payment_already_completed" | "payment_link_inactive" | "payment_link_expired" | "amount_invalid" | "currency_invalid" | "product_archived" | "price_inactive" | "price_not_yet_active" | "price_expired" | "price_sold_out" | "price_date_range_invalid" | "price_stock_invalid" | "price_recurring_not_supported" | "price_immutable_while_used" | "line_item_missing_price" | "line_item_quantity_not_adjustable" | "line_item_quantity_out_of_bounds" | "line_item_quantity_not_supported_for_custom" | "checkout_empty_cart" | "promotion_codes_not_allowed" | "promotion_code_not_found" | "promotion_code_inactive" | "promotion_code_expired" | "promotion_code_max_redemptions" | "promotion_code_customer_mismatch" | "promotion_code_minimum_amount" | "promotion_code_first_time_only" | "coupon_invalid" | "coupon_currency_mismatch" | "coupon_minimum_amount" | "coupon_customer_max_redemptions" | "too_many_discounts" | "payment_method_corrupted" | "payment_method_customer_mismatch" | "payment_intent_customer_mismatch" | "payment_method_mismatch" | "charge_not_captured" | "merchant_no_balance" | "insufficient_balance" | "charge_missing_balance_transaction" | "charge_missing_fee_data" | "charge_incomplete_fee_data" | "cannot_rename_default" | "must_have_enabled_method" | "cannot_delete_default" | "configuration_in_use" | "unsupported_currency" | "exchange_rate_not_found" | "coupon_in_use" | "promotion_code_exists" | "rate_limit" | "idempotency_key_in_use" | "internal_error" | "request_timeout")) — Stable, machine-readable code identifying the specific failure (e.g. `resource_missing`, `parameter_invalid`, `authentication_required`). Always present on documented errors. See the API Error Codes reference for the full list.
  - `message` (string, required) — Human-readable description of what went wrong. Safe to log or display, but not stable — use `code` for programmatic branching.
  - `param` (string) — Name of the request parameter that caused the error, when applicable (e.g. `amount`, `currency`).
  - `doc_url` (string) — URL to the documentation page for this specific error code. Deep-linked into the API Error Codes reference.
- `request_id` (string) — Unique identifier for this request, propagated to logs and traces. Include it when contacting support.

#### 500 — Something went wrong on our end. Safe to retry idempotent requests; for non-idempotent calls, consult the `request_id` before resubmitting.

Content type: `application/json`

- `error` (ApiErrorBody, required) — The structured error body. See `ApiErrorBody` for field semantics.
  - `type` (enum("invalid_request_error" | "authentication_error" | "rate_limit_error" | "api_error" | "card_error" | "idempotency_error"), required) — High-level error category. Use this for branching at the top level of your error handler (e.g. retry on `api_error`, surface a card decline on `card_error`).
  - `code` (enum("invalid_request" | "parameter_out_of_range" | "parameter_invalid" | "parameter_missing" | "parameter_unknown" | "parameters_exclusive" | "parameter_requires_another" | "validation_error" | "resource_missing" | "resource_invalid_state" | "resource_already_exists" | "resource_in_use" | "authentication_required" | "invalid_api_key" | "api_key_inactive" | "invalid_signature" | "merchant_not_activated" | "permission_denied" | "two_factor_required" | "checkout_session_expired" | "invalid_client_secret" | "amount_reconfirmation_required" | "creation_failed" | "payment_still_confirming" | "payment_already_completed" | "payment_link_inactive" | "payment_link_expired" | "amount_invalid" | "currency_invalid" | "product_archived" | "price_inactive" | "price_not_yet_active" | "price_expired" | "price_sold_out" | "price_date_range_invalid" | "price_stock_invalid" | "price_recurring_not_supported" | "price_immutable_while_used" | "line_item_missing_price" | "line_item_quantity_not_adjustable" | "line_item_quantity_out_of_bounds" | "line_item_quantity_not_supported_for_custom" | "checkout_empty_cart" | "promotion_codes_not_allowed" | "promotion_code_not_found" | "promotion_code_inactive" | "promotion_code_expired" | "promotion_code_max_redemptions" | "promotion_code_customer_mismatch" | "promotion_code_minimum_amount" | "promotion_code_first_time_only" | "coupon_invalid" | "coupon_currency_mismatch" | "coupon_minimum_amount" | "coupon_customer_max_redemptions" | "too_many_discounts" | "payment_method_corrupted" | "payment_method_customer_mismatch" | "payment_intent_customer_mismatch" | "payment_method_mismatch" | "charge_not_captured" | "merchant_no_balance" | "insufficient_balance" | "charge_missing_balance_transaction" | "charge_missing_fee_data" | "charge_incomplete_fee_data" | "cannot_rename_default" | "must_have_enabled_method" | "cannot_delete_default" | "configuration_in_use" | "unsupported_currency" | "exchange_rate_not_found" | "coupon_in_use" | "promotion_code_exists" | "rate_limit" | "idempotency_key_in_use" | "internal_error" | "request_timeout")) — Stable, machine-readable code identifying the specific failure (e.g. `resource_missing`, `parameter_invalid`, `authentication_required`). Always present on documented errors. See the API Error Codes reference for the full list.
  - `message` (string, required) — Human-readable description of what went wrong. Safe to log or display, but not stable — use `code` for programmatic branching.
  - `param` (string) — Name of the request parameter that caused the error, when applicable (e.g. `amount`, `currency`).
  - `doc_url` (string) — URL to the documentation page for this specific error code. Deep-linked into the API Error Codes reference.
- `request_id` (string) — Unique identifier for this request, propagated to logs and traces. Include it when contacting support.