{"id":"number-to-words","title":"Number and cheque-amount words: English (US, UK, Indian lakh/crore)","description":"Spells out a number or a money amount in English words for a cheque, contract or invoice, for an agent that must write the amount in words next to the figures. Locales: en-US (\"one hundred twenty-three\"), en-GB (\"one hundred and twenty-three\"), en-IN (lakh and crore, \"one crore twenty lakh\"). With a currency it returns the integer words, the minor-unit fraction as digits over 10^exponent (\"56/100\", \"123/1000\" for KWD, none for JPY) and a cheque line using the ISO 4217 currency name; no minor-unit names are generated. Any other locale returns unsupported rather than words that may be wrong. Integer part up to 999,999,999,999,999. Amounts with more fraction digits than the currency allows fail. Does not verify that words and figures on a document agree.","roi":"Words-versus-figures mismatches void cheques and contracts; the words are generated deterministically per locale convention.","audience":"business","package":"money-math-kit","channels":["x402","mcp"],"endpoint":{"method":"POST","url":"https://agents.writerslogic.com/api/v1/number-to-words","path":"/api/v1/number-to-words","contentType":"application/json"},"price":{"amount":"0.005","currency":"USDC","network":"base","perCall":true,"failedCallsCharged":false},"inputSchema":{"type":"object","additionalProperties":false,"required":["items"],"properties":{"items":{"type":"array","minItems":1,"maxItems":100,"items":{"type":"object","required":["amount","locale"],"properties":{"amount":{"type":"string","pattern":"^-?\\d{1,15}(\\.\\d{1,12})?$","maxLength":30,"description":"Decimal string such as \"-12.50\" (up to 15 integer and 12 fraction digits). JSON numbers are not accepted: they are binary floats."},"locale":{"type":"string","pattern":"^[A-Za-z]{2,3}(-[A-Za-z0-9]{2,8}){0,3}$","maxLength":35,"description":"Supported: en-US, en-GB, en-IN."},"currency":{"type":"string","pattern":"^[A-Z]{3}$","description":"ISO 4217 alphabetic code, upper case."},"exponent":{"type":"integer","minimum":0,"maximum":8,"description":"Override the ISO 4217 exponent."}},"additionalProperties":false}}}},"resultSchema":{"type":"object","properties":{"status":{"type":"string","enum":["pass","fail","unknown","unsupported"],"description":"pass: every rule held. fail: a rule was violated (see witnesses). unknown: the input lacks the evidence to decide. unsupported: outside what this engine covers. Missing evidence is never a pass."},"items":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer"},"status":{"type":"string","enum":["pass","fail","unknown","unsupported"]},"words":{"type":"string","description":"Integer part in words, lower case; prefixed with minus when negative."},"fraction":{"type":"string","description":"Minor units over 10^exponent, e.g. 56/100; absent when the exponent is 0."},"cheque":{"type":"string","description":"Capitalised words, fraction and currency name, e.g. \"One thousand two hundred thirty-four and 56/100 US Dollar\"."},"decimalWords":{"type":"string","description":"Without a currency: the fractional digits read one by one, e.g. \"point four five\"."},"locale":{"type":"string"}}}},"witnesses":{"type":"array","items":{"type":"object","properties":{"ruleId":{"type":"string"},"detail":{"type":"string"},"path":{"type":"string","description":"JSON pointer or dotted path into the input."},"offset":{"type":"integer"},"index":{"type":"integer"},"expected":{"description":"What the rule required."},"actual":{"description":"What the input had."}}}},"versions":{"type":"object","description":"Every semantic dependency of this answer (engine, tables and their as-of dates, tokenizer, calendar, rounding profile)."},"limits":{"type":"array","items":{"type":"string"}},"deterministic":{"type":"boolean","description":"Always true: pure code, no model."}}},"outputSchema":{"type":"object","properties":{"data":{"type":"object","properties":{"status":{"type":"string","enum":["pass","fail","unknown","unsupported"],"description":"pass: every rule held. fail: a rule was violated (see witnesses). unknown: the input lacks the evidence to decide. unsupported: outside what this engine covers. Missing evidence is never a pass."},"items":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer"},"status":{"type":"string","enum":["pass","fail","unknown","unsupported"]},"words":{"type":"string","description":"Integer part in words, lower case; prefixed with minus when negative."},"fraction":{"type":"string","description":"Minor units over 10^exponent, e.g. 56/100; absent when the exponent is 0."},"cheque":{"type":"string","description":"Capitalised words, fraction and currency name, e.g. \"One thousand two hundred thirty-four and 56/100 US Dollar\"."},"decimalWords":{"type":"string","description":"Without a currency: the fractional digits read one by one, e.g. \"point four five\"."},"locale":{"type":"string"}}}},"witnesses":{"type":"array","items":{"type":"object","properties":{"ruleId":{"type":"string"},"detail":{"type":"string"},"path":{"type":"string","description":"JSON pointer or dotted path into the input."},"offset":{"type":"integer"},"index":{"type":"integer"},"expected":{"description":"What the rule required."},"actual":{"description":"What the input had."}}}},"versions":{"type":"object","description":"Every semantic dependency of this answer (engine, tables and their as-of dates, tokenizer, calendar, rounding profile)."},"limits":{"type":"array","items":{"type":"string"}},"deterministic":{"type":"boolean","description":"Always true: pure code, no model."}}},"_provenance":{"type":"object","description":"C2PA-aligned manifest and W3C VC 2.0 (eddsa-jcs-2022) issued by the hub DID; verify at POST /api/v1/verify-provenance"}},"required":["data","_provenance"]},"example":{"items":[{"amount":"1234.56","locale":"en-US","currency":"USD"}]},"openapiOperation":{"operationId":"number_to_words","summary":"Number and cheque-amount words: English (US, UK, Indian lakh/crore)","description":"Spells out a number or a money amount in English words for a cheque, contract or invoice, for an agent that must write the amount in words next to the figures. Locales: en-US (\"one hundred twenty-three\"), en-GB (\"one hundred and twenty-three\"), en-IN (lakh and crore, \"one crore twenty lakh\"). With a currency it returns the integer words, the minor-unit fraction as digits over 10^exponent (\"56/100\", \"123/1000\" for KWD, none for JPY) and a cheque line using the ISO 4217 currency name; no minor-unit names are generated. Any other locale returns unsupported rather than words that may be wrong. Integer part up to 999,999,999,999,999. Amounts with more fraction digits than the currency allows fail. Does not verify that words and figures on a document agree.\n\nPrice: 0.005 USDC on Base (x402).","x-x402-price-usdc":"0.005","x-x402-amount":"5000","x-payment-info":{"protocols":["x402"],"price":{"mode":"fixed","currency":"USD","amount":"0.005"}},"x-audience":"business","x-sample-url":"https://agents.writerslogic.com/api/v1/samples/number-to-words","security":[{"x402":[]},{"apiKey":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["items"],"properties":{"items":{"type":"array","minItems":1,"maxItems":100,"items":{"type":"object","required":["amount","locale"],"properties":{"amount":{"type":"string","pattern":"^-?\\d{1,15}(\\.\\d{1,12})?$","maxLength":30,"description":"Decimal string such as \"-12.50\" (up to 15 integer and 12 fraction digits). JSON numbers are not accepted: they are binary floats."},"locale":{"type":"string","pattern":"^[A-Za-z]{2,3}(-[A-Za-z0-9]{2,8}){0,3}$","maxLength":35,"description":"Supported: en-US, en-GB, en-IN."},"currency":{"type":"string","pattern":"^[A-Z]{3}$","description":"ISO 4217 alphabetic code, upper case."},"exponent":{"type":"integer","minimum":0,"maximum":8,"description":"Override the ISO 4217 exponent."}},"additionalProperties":false}}}},"example":{"items":[{"amount":"1234.56","locale":"en-US","currency":"USD"}]}}}},"responses":{"200":{"description":"Paid result with provenance","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"status":{"type":"string","enum":["pass","fail","unknown","unsupported"],"description":"pass: every rule held. fail: a rule was violated (see witnesses). unknown: the input lacks the evidence to decide. unsupported: outside what this engine covers. Missing evidence is never a pass."},"items":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer"},"status":{"type":"string","enum":["pass","fail","unknown","unsupported"]},"words":{"type":"string","description":"Integer part in words, lower case; prefixed with minus when negative."},"fraction":{"type":"string","description":"Minor units over 10^exponent, e.g. 56/100; absent when the exponent is 0."},"cheque":{"type":"string","description":"Capitalised words, fraction and currency name, e.g. \"One thousand two hundred thirty-four and 56/100 US Dollar\"."},"decimalWords":{"type":"string","description":"Without a currency: the fractional digits read one by one, e.g. \"point four five\"."},"locale":{"type":"string"}}}},"witnesses":{"type":"array","items":{"type":"object","properties":{"ruleId":{"type":"string"},"detail":{"type":"string"},"path":{"type":"string","description":"JSON pointer or dotted path into the input."},"offset":{"type":"integer"},"index":{"type":"integer"},"expected":{"description":"What the rule required."},"actual":{"description":"What the input had."}}}},"versions":{"type":"object","description":"Every semantic dependency of this answer (engine, tables and their as-of dates, tokenizer, calendar, rounding profile)."},"limits":{"type":"array","items":{"type":"string"}},"deterministic":{"type":"boolean","description":"Always true: pure code, no model."}}},"_provenance":{"type":"object","description":"C2PA-aligned manifest and W3C VC 2.0 (eddsa-jcs-2022) issued by the hub DID; verify at POST /api/v1/verify-provenance"}},"required":["data","_provenance"]}}}},"400":{"description":"Invalid request (no payment consumed)","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}}}}}},"401":{"description":"Invalid X-API-KEY","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}}}}}},"402":{"description":"Payment required or invalid","content":{"application/json":{"schema":{"type":"object","description":"x402 v2 PaymentRequired (also base64 in the PAYMENT-REQUIRED header)","properties":{"x402Version":{"type":"integer"},"error":{"type":"string"},"code":{"type":"string"},"resource":{"type":"object"},"accepts":{"type":"array","items":{"type":"object"}},"extensions":{"type":"object"}}}}}},"502":{"description":"Upstream failure; the payment is released or not settled","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}}}}}}}},"links":{"docs":"https://agents.writerslogic.com/docs/number-to-words/","docsJson":"https://agents.writerslogic.com/docs/number-to-words.json","sample":"https://agents.writerslogic.com/api/v1/samples/number-to-words","openapi":"https://agents.writerslogic.com/openapi.json","catalog":"https://agents.writerslogic.com/api/v1/catalog","verifyProvenance":"https://agents.writerslogic.com/api/v1/verify-provenance","index":"https://agents.writerslogic.com/docs/index.json"}}