SAP tableObjectSKA1ModuleFI_FICO

SKA1 table — G/L Account Master Chart of Accounts Segment

SKA1 holds the chart-of-accounts level of a G/L account master record: one row per chart of accounts and account number, independent of company code. It carries control data like the balance-sheet/P&L classification and account group, but not the description (SKAT) or company-code-specific data such as currency and field status group (SKB1).

SKA1 is the chart-of-accounts segment of the G/L account master, sitting above SKB1 (company code segment) and next to SKAT (text). This page covers which fields actually live here versus in SKB1 or SKAT, the joins consultants write against it, and the recurring mistake of treating an SKA1 row as proof an account is postable anywhere.

Published 15 Sept 2026· 1,003 words

What it stores

One row in SKA1 represents a G/L account defined at chart of accounts level, identified by chart of accounts plus account number. This is the account's global shell: it exists here before it is extended to any company code. The row carries classification data that is meant to be identical everywhere the account is used, chiefly whether the account is a balance sheet account or a P&L account, and the account group that governs its number range and field status. It does not hold the account description, which lives in the language-dependent text table, and it does not hold anything company-code specific such as account currency, tax category, open item management, or the field status group used for postings, all of which live in the company code segment table. SKA1 without the company code segment is an account that has been created but not made usable for posting anywhere.

Key fields

  • MANDT - client
  • KTOPL - chart of accounts, part of the key together with SAKNR
  • SAKNR - G/L account number, the other half of the key
  • KTOKS - account group, determines number range and default field status
  • XBILK - indicator that the account is a balance sheet account; blank or unset means P&L account
  • GVTYP - P&L statement account type, used in retained earnings account determination
  • XSPERR - block indicator at chart of accounts level, blocks the account for posting everywhere it is used
  • XLOEV - deletion flag set at chart of accounts level
  • ERDAT - creation date
  • ERNAM - user who created the record

How it joins the data model

  • SKA1-KTOPL = SKA1-KTOPL and SKA1-SAKNR = SKB1-SAKNR joined on matching KTOPL, to get the company-code-specific segment for a given company code
  • SKA1-KTOPL = SKAT-KTOPL and SKA1-SAKNR = SKAT-SAKNR, filtered on SKAT-SPRAS, to get the description
  • SKA1-KTOPL = T004-KTOPL, to resolve the chart of accounts master record itself
  • T001-KTOPL = SKA1-KTOPL, to find which company codes even use this chart of accounts before checking SKB1
  • SKA1-SAKNR and posting line item tables such as BSEG-HKONT are matched only after resolving the correct chart of accounts for the company code in question

How to read it safely

SKA1 is client-dependent through MANDT but not company-code-dependent, so restricting on client alone still returns every account in every chart of accounts used by that client. Always restrict on KTOPL first; without it, an account number like 400000 can collide across two unrelated charts of accounts and produce a join that looks correct but pairs the wrong rows. The table is small relative to line item tables, so performance is rarely the issue; correctness of the KTOPL filter is. If working from a company code rather than a chart of accounts, resolve KTOPL from T001 first rather than guessing it.

How to prove it in the data

Symptom: a posting fails with an account blocked message and it is not obvious whether the block is company-code specific or global. Read SKA1 for the chart of accounts and account number and check XSPERR; if set, the account is blocked everywhere regardless of company code. If XSPERR is not set here, the block is coming from the company code segment in SKB1 for that specific company code, not from SKA1.

ECC vs S/4HANA

SKA1 continues to exist as a table in S/4HANA and the split between chart of accounts segment, company code segment, and text table is unchanged. G/L account master maintenance is typically done through a single transaction or Fiori app that writes to SKA1, SKB1, and SKAT together, but the underlying table structure and the fact that they are separate tables persists. No specific version detail beyond that general continuity is claimed here.

Common pitfalls

  • Treating the existence of a row in SKA1 as proof the account can be posted to in a given company code; without a matching row in SKB1 for that company code the account is not extended there and postings will fail
  • Dropping KTOPL from the join and matching on SAKNR alone; the same account number can exist under multiple charts of accounts with completely different meanings
  • Looking for the account description in SKA1; it is not there, it is in SKAT and requires a language filter
  • Reading XBILK as a financial value; it is a classification flag, not a balance, and tells nothing about the current account balance
  • Assuming XSPERR blocked here explains a posting failure that is actually a company-code-level block set in SKB1, or vice versa; the two blocking indicators are independent and both need checking
  • Assuming GVTYP points directly to a retained earnings account; it is a type code consumed by account determination configuration, not an account number itself
  • Changing KTOKS after account creation expecting field status or number range behaviour to retroactively apply; existing dependent configuration and postings do not reclassify automatically

Whose problem this is

Chart of accounts structure and the accounts defined in SKA1 are owned centrally by FI configuration, usually the team responsible for the corporate chart of accounts, not by local company code finance teams. Extending an existing account to a new company code is a company-code-level activity and often delegated locally, but creating or changing the account at chart of accounts level is a central decision.

Related SAP objects

Reviewed pages this object connects to in the ERPClimb knowledge graph.

Source: ERPClimb — https://erpclimb.com/sap-tables/ska1ERPClimb is an independent platform and is not affiliated with SAP SE. Reference pages are written and reviewed by SAP consultants for learning and troubleshooting.