Billing tools
Amount in words converter for Indian rupees
Type a rupee amount and get it written out the Indian way, with lakh, crore and paise, in English or Hindi. The words are built in your browser from the figures you type, so nothing is uploaded.
Check that the words match the figures before you use them on a cheque.
For example 1,25,050.50 or ₹4,999/-. Paise go after a dot.
Type an amount to see it in words.
Try an example
Words are available in English and Hindi.
How it works
- Type the amount. Enter it in rupees. Commas, spaces, a leading ₹ or Rs. and a trailing /- are fine, and paise go after a dot.
- Choose the words. Pick English or Hindi. For English, choose cheque style (Rupees … Only) or plain style (… Rupees Only), in Title Case or UPPER CASE.
- Check and copy. Compare the figures shown above the words with your amount, then copy the words into your invoice or spreadsheet, or write them on the cheque.
What this does and does not do
It does
- Turns a typed rupee amount into English or Hindi words, with lakh, crore and paise.
- Runs in your browser: the amount is not sent anywhere or stored.
- Prints the same English words in cheque style as our invoice generator.
It does not
- Check your figures, or promise that a bank will accept a cheque.
- Write the words in Tamil, Telugu or Marathi. Those pages translate the screen only.
- Give legal, tax or banking advice.
Indian numbering: thousand, lakh, crore
Indian numbering groups the last three digits and then pairs of digits, so one lakh is written 1,00,000 and one crore 1,00,00,000. A lakh is a hundred thousand and a crore is a hundred lakh, which is ten million. The table lists the names above a thousand.
| Name | In figures | Means |
|---|---|---|
| Thousand | 1,000 | ten hundred |
| Lakh | 1,00,000 | 100 thousand |
| Crore | 1,00,00,000 | 100 lakh, or ten million |
| Arab | 1,00,00,00,000 | 100 crore, or one billion |
| Kharab | 1,00,00,00,00,000 | 100 arab, or 100 billion |
From 100 crore up, this converter reads the crore count in full: One Hundred Crore, One Thousand Crore, One Lakh Crore. It does not use arab or kharab, because a kharab (10,000 crore) is easy to mistake for a trillion, which is ten times larger. Hindi output follows the same rule.
Worked examples
Each row below is produced by the same code as the converter, so it matches what you get above.
| Amount | Cheque style | Plain style | Hindi |
|---|---|---|---|
| ₹0.50 | Rupees Zero and Fifty Paise Only | Fifty Paise Only | पचास पैसे मात्र |
| ₹1.00 | Rupees One Only | One Rupee Only | एक रुपया मात्र |
| ₹1,234.50 | Rupees One Thousand Two Hundred Thirty Four and Fifty Paise Only | One Thousand Two Hundred Thirty Four Rupees and Fifty Paise Only | एक हज़ार दो सौ चौंतीस रुपये और पचास पैसे मात्र |
| ₹17,700.00 | Rupees Seventeen Thousand Seven Hundred Only | Seventeen Thousand Seven Hundred Rupees Only | सत्रह हज़ार सात सौ रुपये मात्र |
| ₹1,00,000.00 | Rupees One Lakh Only | One Lakh Rupees Only | एक लाख रुपये मात्र |
| ₹1,25,050.50 | Rupees One Lakh Twenty Five Thousand Fifty and Fifty Paise Only | One Lakh Twenty Five Thousand Fifty Rupees and Fifty Paise Only | एक लाख पच्चीस हज़ार पचास रुपये और पचास पैसे मात्र |
| ₹12,34,56,789.50 | Rupees Twelve Crore Thirty Four Lakh Fifty Six Thousand Seven Hundred Eighty Nine and Fifty Paise Only | Twelve Crore Thirty Four Lakh Fifty Six Thousand Seven Hundred Eighty Nine Rupees and Fifty Paise Only | बारह करोड़ चौंतीस लाख छप्पन हज़ार सात सौ नवासी रुपये और पचास पैसे मात्र |
| ₹1,00,00,00,000.00 | Rupees One Hundred Crore Only | One Hundred Crore Rupees Only | एक सौ करोड़ रुपये मात्र |
Writing the amount in words on a cheque
The words carry the legal weight on a cheque. Under section 18 of the Negotiable Instruments Act, 1881, if an amount is stated differently in figures and in words, the amount stated in words is the amount undertaken or ordered to be paid.
Bank guides add a few habits that stop a cheque from being altered:
- Start the words at the far left of the line and end with Only, so nothing can follow them (IndusInd Bank, Bank of Baroda).
- Draw a line through any space left on the line, which both banks recommend.
- Make the words match the figures exactly. Bank of Baroda's guide tells customers to check that the two agree.
- Keep the words clear and complete. In a 2020 case reported by SCC Online, a Delhi sessions court held that no section 138 offence was made out because the amount in words was not a certain sum.
For invoices, rule 46 of the CGST Rules lists what a tax invoice must carry. An amount in words is not among the particulars it lists (CBIC text as amended to 1 June 2021), so the rule does not itself require it. Many invoices print it anyway.
This is general information from an independent tool, not legal advice and not a bank or tax service. See the disclaimer.
Use it in Google Sheets
Google Sheets can call a short Apps Script function from any cell. It returns the same cheque-style English words as the converter, and it stops with an error message instead of guessing when an amount has more than two decimals or cannot be read. If a formula leaves extra decimals, wrap it first, for example ROUND(A2, 2).
- In Google Sheets choose Extensions, then Apps Script.
- Delete the code that is there, paste the function below and click Save.
- In a cell type
=AMOUNT_IN_WORDS(A2)and press Enter. Steps as in Google's guide to custom functions.
/**
* Amount in words for Indian rupees, cheque style.
* Use it as =AMOUNT_IN_WORDS(A2). Check the words against the figures before you use them.
* @param {number|string} amount The amount in rupees, with at most 2 decimals.
* @return {string} For example: Rupees One Lakh Twenty Five Thousand Fifty and Fifty Paise Only
* @customfunction
*/
function AMOUNT_IN_WORDS(amount) {
var ONES = ["", "One", "Two", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nine", "Ten", "Eleven", "Twelve", "Thirteen", "Fourteen", "Fifteen", "Sixteen", "Seventeen", "Eighteen", "Nineteen"];
var TENS = ["", "", "Twenty", "Thirty", "Forty", "Fifty", "Sixty", "Seventy", "Eighty", "Ninety"];
function below100(n) {
return n < 20 ? ONES[n] : TENS[Math.floor(n / 10)] + (n % 10 ? " " + ONES[n % 10] : "");
}
function below1000(n) {
var hundreds = Math.floor(n / 100);
var rest = n % 100;
return (hundreds ? ONES[hundreds] + " Hundred" : "") + (hundreds && rest ? " " : "") + (rest ? below100(rest) : "");
}
// Whole rupees: crore, lakh, thousand. The crore count is read in words too (One Hundred Crore).
function indian(n) {
if (n === 0) return "Zero";
var crore = (n - (n % 10000000)) / 10000000;
var rest = n % 10000000;
var lakh = Math.floor(rest / 100000);
var thousand = Math.floor((rest % 100000) / 1000);
var units = rest % 1000;
var parts = [];
if (crore) parts.push(indian(crore) + " Crore");
if (lakh) parts.push(below100(lakh) + " Lakh");
if (thousand) parts.push(below100(thousand) + " Thousand");
if (units) parts.push(below1000(units));
return parts.join(" ");
}
if (Object.prototype.toString.call(amount) === "[object Array]") throw new Error("Pass one cell, not a range.");
var text;
if (typeof amount === "number") {
if (!isFinite(amount) || amount < 0) throw new Error("Enter an amount of zero or more.");
if (amount >= 10000000000000) throw new Error("That is too large: up to 13 digits before the decimal point.");
text = amount.toFixed(2);
if (Math.abs(Number(text) - amount) > 0.000001) throw new Error("Use at most 2 decimals, for example ROUND(A2, 2).");
} else {
text = String(amount).replace(/\s/g, "").replace(/^(\u20B9|rs\.?|inr)/i, "").replace(/\/-$/, "");
}
var match = /^([\d,]*)(?:\.(\d*))?$/.exec(text);
if (!match || !/\d/.test(text)) throw new Error("Enter an amount in rupees, for example 125050.50.");
var whole = match[1];
var fraction = match[2] || "";
if (whole.indexOf(",") >= 0 && !/^\d{1,2}(,\d{2})*,\d{3}$/.test(whole) && !/^\d{1,3}(,\d{3})+$/.test(whole)) {
throw new Error("Check the commas: group digits like 1,23,456 or 1,234,567.");
}
if (/[1-9]/.test(fraction.slice(2))) throw new Error("Use at most 2 decimals, for example ROUND(A2, 2).");
whole = whole.replace(/,/g, "").replace(/^0+(?=\d)/, "");
if (whole.length > 13) throw new Error("That is too large: up to 13 digits before the decimal point.");
var paise = Number((fraction + "00").slice(0, 2));
return "Rupees " + indian(Number(whole || "0")) + (paise ? " and " + below100(paise) + " Paise" : "") + " Only";
}
We do not provide an Excel macro. Convert the figure above and paste the words into the cell.
Sources and method
The figures you type are read as text and turned into whole paise, so no floating-point rounding is involved. The English words are the ones our invoice generator prints. Hindi number names come from the Unicode CLDR rules for Hindi: a table for 0 to 99, then सौ, हज़ार, लाख and करोड़. The wording around them, रुपये, पैसे and मात्र (only), is our own and is not part of CLDR, so compare it with the form you are filling. From 100 crore up, the crore count is read in full (एक सौ करोड़) where CLDR would say अरब or खरब.
- Negotiable Instruments Act, 1881, section 18 (text as published by KnowYourGST)
- CGST Rules, 2017, rule 46 on tax invoices (CBIC consolidated text as amended to 1 June 2021)
- Unicode CLDR, Hindi number-name rules (common/rbnf/hi.xml)
- Indian numbering system, Wikipedia
- How to fill out a cheque, Bank of Baroda (10 March 2025)
- How to fill a cheque correctly, IndusInd Bank (updated 22 August 2025)
- Delhi sessions court order on an uncertain amount in words, reported by SCC Online (2020)
- Custom functions in Google Sheets, Google Apps Script guide
Last reviewed 31 October 2026 by Kunal Siyag. How we check facts and log changes: accuracy policy.
FAQ
Amount in words questions
How do I write rupees in words in the Indian system?
Say the crore, lakh and thousand groups in turn, then the hundreds and tens, and finish with Only. ₹1,25,050.50 reads Rupees One Lakh Twenty Five Thousand Fifty and Fifty Paise Only. The converter above does this for any amount up to ₹99,99,99,99,99,999.99.
Can it work as a number to words converter for plain numbers?
It is built for rupee amounts, so the words always say Rupees and, when there are any, Paise. For a plain number in the Indian system, type it as an amount and choose plain style, which puts the number first: 1,25,050 reads "One Lakh Twenty Five Thousand Fifty Rupees Only", so leave off the last two words. Digits after a dot are read as paise, not as a decimal fraction.
How do I write paise in words?
Write the rupees, then "and", then the paise in words, then "Paise Only". For ₹1,234.50 that is "Rupees One Thousand Two Hundred Thirty Four and Fifty Paise Only". Below ₹1 there are no rupees to write: for 50 paise, cheque style reads "Rupees Zero and Fifty Paise Only", while plain style starts with the paise and reads "Fifty Paise Only".
Why do cheques say Only after the amount?
It closes the line so nothing can be added after the words. Bank guides give the same advice: start the words at the far left, end with Only, and draw a line through any blank space left on the line (Bank of Baroda and IndusInd Bank, linked under Sources).
What if the words and the figures on a cheque differ?
Section 18 of the Negotiable Instruments Act, 1881 says the amount stated in words is the one that counts. Banks still tell customers to make the two match, so do not rely on the rule to cover a mistake.
What is the difference between a lakh and a million?
A lakh is 1,00,000 (a hundred thousand), so a million is 10 lakh. A crore is 1,00,00,000, which is ten million. The Indian system groups the last three digits and then pairs of digits, which is why 12,34,56,789 reads Twelve Crore Thirty Four Lakh Fifty Six Thousand Seven Hundred Eighty Nine.
How do I write 1,00,000 in words?
One Lakh. On a cheque in cheque style: Rupees One Lakh Only. In Hindi:
एक लाख रुपये मात्र
How do I write 1 crore in words?
One Crore, written 1,00,00,000 (ten million). In cheque style: Rupees One Crore Only. In Hindi:
एक करोड़ रुपये मात्र
Can I get the amount in words in Hindi?
Yes. Choose हिन्दी in the converter and ₹1,25,050.50 becomes the line below. The number names follow Unicode CLDR's Hindi rules, while रुपये, पैसे and मात्र (only) are our own wording. A few numbers have more than one accepted spelling, so compare the words with the form you are filling.
एक लाख पच्चीस हज़ार पचास रुपये और पचास पैसे मात्र
How do I get the amount in words in Google Sheets or Excel?
For Google Sheets, paste the function from the section above into Apps Script and type =AMOUNT_IN_WORDS(A2) in a cell. We do not provide an Excel macro: convert the figure here and paste the words into the cell.
Does GST law require the amount in words on an invoice?
Rule 46 of the CGST Rules lists what a tax invoice must carry, and an amount in words is not on that list in the text we checked (CBIC's consolidated rules as amended to 1 June 2021). Many invoices print it anyway. The rule has been amended since, so check the current text on the CBIC site.
How large an amount can the converter write out?
Up to 13 digits before the decimal point, which is ₹99,99,99,99,99,999.99, with at most two decimals. From 100 crore up the crore count is read in full, for example Rupees One Hundred Crore Only.
Is the amount I type sent anywhere?
No. The words are built in your browser from what you type, and the amount is not stored. If you press Copy, a count of that click for this tool is recorded, without the amount or the words.
Related
More billing tools
- Invoice generatorMake a GST, VAT or export invoice with a UPI QR.
- Payment receipt generatorIssue a receipt once the money has reached your account.
- Rent receipt generatorMonthly rent receipts that carry the amount in words.
- Salary slip generatorPayslips that carry net pay in words.
- Cash memo generatorSimple retail bills for the counter.
- GST calculatorWork out the tax and the total before you write it out.
- GSTIN validator and decoderCheck how a GSTIN is written before it goes on an invoice.
- Invoices, receipts and documentsEvery billing document in one place.