Skip to content

Cheque / Check Amount in Words

Banks and legal documents require stable amount-in-words output. to-words gives you locale-aware currency wording today. If your bank specifically requires a literal 56/100 suffix, that last cheque-formatting step still belongs in your document layer.

The Problem

Cheque wording is not the same as spoken-number wording. Banks often expect positional fractional output, and many home-grown utilities fail on region-specific currency names or non-English scripts.

Usage

js
import { ToWords } from 'to-words';

const tw = new ToWords({ localeCode: 'en-US' });

tw.convert(1234.56, {
  currency: true,
});

Multi-Currency Example

js
import { toCurrency } from 'to-words';

toCurrency('1234.56', { localeCode: 'en-US' });
toCurrency('1234.56', { localeCode: 'en-GB' });
toCurrency('1234.56', { localeCode: 'en-IN' });
toCurrency('1.500', { localeCode: 'en-OM' });

Use string input when precision matters, especially for 3-decimal currencies such as OMR or IQD.

Indian cheque (Rupees)

js
const tw = new ToWords({ localeCode: 'en-IN' });

tw.convert('25000.75', { currency: true, doNotAddOnly: true });
// "Twenty Five Thousand Rupees And Seventy Five Paise"

If your bank requires 75/100, format that suffix in the document template. decimalStyle: 'fraction' changes plain decimal wording, not currency-mode minor-unit output.

Why to-words Fits Banking Flows

  • Locale currency config keeps Rupees/Paise, Dollars/Cents, and Rubles/Kopecks aligned
  • Locale currency config prevents mismatched major or minor unit names
  • South Asian, RTL, and European locales all use the same API surface

Released under the MIT License.