ERPClimb logoERPClimb
SAP function moduleObjectSPELL_AMOUNTModuleABAP

SPELL_AMOUNT — Convert Numeric Amount to Spelled-Out Text

SPELL_AMOUNT is a released, customer-usable function module that converts a numeric amount into its written-out text form (for example 'one thousand two hundred') in a given language and currency, based on customizing table entries. It is used mainly in check printing and legal payment documents where the amount must appear in words alongside the figures.

SPELL_AMOUNT turns a numeric amount into a spelled-out text string for check printing and formal financial documents. This page covers its parameters, the two exceptions it raises and what an unhandled failure looks like on a printed check, and the customizing dependency that causes most production incidents.

Reviewed by an ERPClimb SAP consultant on 16 Sept 2026· 1,000 words

What it does

SPELL_AMOUNT takes a numeric amount together with a currency and a language and returns the amount spelled out as text, split into the whole-number portion and the decimal/currency portion. It relies on a customizing table that maps language and currency combinations to spelling rules (thousands, hundreds, decimal unit names, and so on). It is a classic, released function module, still shipped and callable in current releases, and remains the standard building block for check printing programs, promissory note text, and any legal document where regulations require the amount to be shown in words as well as figures. It performs no posting, no database update, and no locking; it is a pure text-generation utility that depends entirely on the spelling customizing being maintained for the language/currency pair being requested.

Parameters

Only the parameters confirmed by the module's long-standing interface are listed below. Everything else in a calling program is local handling.

  • AMOUNT (import) - the numeric value to be spelled out, typically a packed decimal amount field such as a document currency amount
  • CURRENCY (import, optional) - the currency key that determines both the decimal precision applied and the currency name spelled out in the result
  • LANGUAGE (import, optional, defaults to logon language) - controls which language's spelling rules and vocabulary are used
  • FILLER (import, optional) - a fill character used to pad the spelled text to a fixed length, common in check printing to prevent characters being added after the amount
  • IN_WORDS (export) - a structure holding the spelled-out result, broken into the whole-number text and the decimal/currency text portions

Exceptions

There are two exceptions and both must be treated as hard failures, not cosmetic ones.

  • NOT_FOUND - no spelling customizing entry exists for the requested language/currency combination. This is the exception hit most often in real systems, typically for a currency or language pair nobody remembered to maintain when a new country went live. If swallowed, IN_WORDS comes back empty and the calling program has no spelled amount to place on the document, but nothing stops execution
  • TOO_LARGE - the amount exceeds the maximum value the spelling logic can render. This happens on large wire payments or bulk settlement runs where the figure amount is technically valid but too big to spell. If swallowed, the same empty-result problem occurs
  • In both cases an unhandled exception does not raise a runtime error by itself if caught generically; the real damage is a check or legal document printed with a blank or truncated 'amount in words' line, which in many jurisdictions makes the document legally invalid or, worse, leaves it open to fraudulent alteration

How to call it safely

Call the module with the exact document currency, not a hardcoded default, and pass the language actually required by the document's legal jurisdiction rather than assuming the logon language is correct. Both NOT_FOUND and TOO_LARGE must be caught explicitly and checked via sy-subrc; a generic OTHERS catch that logs and continues is not acceptable for anything that ends up printed as a legal amount. After the call, inspect IN_WORDS directly rather than trusting sy-subrc alone, because some malformed customizing entries can return a technically successful call with an incomplete or garbled text. If IN_WORDS is empty or partially empty, the calling program should stop document generation for that item and route it to manual handling instead of printing it.

ECC vs S/4HANA

SPELL_AMOUNT is unchanged in S/4HANA and continues to function exactly as it did in ECC; there has been no released successor or Fiori-based replacement for this specific text-spelling logic. It is not part of any clean-core released API list, so it should not be called directly from side-by-side extensions; existing on-stack check printing and payment media programs continue to use it as before. New clean-core developments needing spelled amounts typically have to reimplement the logic or wrap the call inside a released local interface, since there is no equivalent RAP-based or API-exposed service for this function today.

Common pitfalls

The failures below are the ones that actually reach production, usually surfacing only when a new country, currency, or high-value payment appears.

  • Exotic or newly onboarded currencies with no spelling customizing entry maintained, producing blank amounts-in-words on otherwise correct checks
  • Treating TOO_LARGE as unreachable and not handling it, then hitting it the first time a large wire transfer or bulk settlement amount is processed
  • Passing a currency different from the one actually printed on the document, causing the spelled decimal portion to disagree with the printed decimal places
  • Assuming FILLER behaves the same across all check layouts; some layouts require no filler at all and get corrupted spacing when a default fill character is applied
  • Multi-country rollouts where the language passed does not match the legally required language for that jurisdiction's payment documents, producing text that is technically generated but not compliant

Whose problem this is

Ownership sits with whoever maintains check printing programs, payment media formats, or legal document text generation, usually FI or Treasury-aligned ABAP development. Functional consultants configuring payment forms depend on developers to confirm that the spelling customizing table has entries for every language/currency pair the company actually uses; Basis has no role here.

Related SAP objects

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

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