{"id":"checkdigit-compute","version":"1.0.0","description":"Compute the check digit(s) for a payload under a named algorithm (Luhn, Verhoeff, Damm, ISO 7064, GS1, mod 10).","supported_operations":["compute a luhn check digit","calculate iso 7064 check digits","verhoeff check digit calculator","gs1 check digit for a barcode payload","damm algorithm check digit","mod 97 check digits for an identifier payload","swiss mod 10 recursive check digit","חישוב ספרת ביקורת"],"unsupported_operations":["validating a full value that already has a check digit attached (use checkdigit-validate)","identifier-specific structure such as IBAN country rules, ISIN prefixes, or GS1 key lengths","lowercase payload letters or separators such as spaces or hyphens"],"semantics":["payload must match ^[0-9A-Z]+$ (uppercase ASCII digits and letters only, 1-64 characters); lowercase letters, separators, or any other character throw invalid_input before any algorithm-specific check runs.","Per-algorithm payload alphabet: luhn, verhoeff, damm, gs1-mod10, mod10-recursive, iso7064-mod11-2 and iso7064-mod11-10 accept decimal digits 0-9 only. iso7064-mod661-26 accepts letters A-Z only. iso7064-mod37-2, iso7064-mod37-36, iso7064-mod97-10 and iso7064-mod1271-36 accept digits 0-9 and letters A-Z. A payload character outside the named algorithm's alphabet throws invalid_input.","full = payload concatenated with check_digits, in that order; no separators and no rearrangement.","Pure arithmetic on the payload string; no locale, clock, or randomness; identical output across runs for the same input."],"limits":{"max_payload_bytes":64},"pricing":{"status":"unpriced","charge_usd":null},"input_schema":{"type":"object","additionalProperties":false,"required":["payload","algorithm"],"properties":{"payload":{"type":"string","minLength":1,"maxLength":64,"pattern":"^[0-9A-Z]+$"},"algorithm":{"type":"string","enum":["luhn","verhoeff","damm","iso7064-mod11-2","iso7064-mod11-10","iso7064-mod37-2","iso7064-mod37-36","iso7064-mod97-10","iso7064-mod661-26","iso7064-mod1271-36","gs1-mod10","mod10-recursive"]}}},"output_schema":{"type":"object","additionalProperties":false,"required":["check_digits","full","algorithm"],"properties":{"check_digits":{"type":"string","minLength":1,"maxLength":2,"pattern":"^[0-9A-Z*]{1,2}$"},"full":{"type":"string","minLength":2,"maxLength":66,"pattern":"^[0-9A-Z*]+$"},"algorithm":{"type":"string","enum":["luhn","verhoeff","damm","iso7064-mod11-2","iso7064-mod11-10","iso7064-mod37-2","iso7064-mod37-36","iso7064-mod97-10","iso7064-mod661-26","iso7064-mod1271-36","gs1-mod10","mod10-recursive"]}}},"examples":[{"input":{"payload":"411111111111111","algorithm":"luhn"},"output":{"check_digits":"1","full":"4111111111111111","algorithm":"luhn"}},{"input":{"payload":"529900T8BM49AURSDO","algorithm":"iso7064-mod97-10"},"output":{"check_digits":"55","full":"529900T8BM49AURSDO55","algorithm":"iso7064-mod97-10"}},{"input":{"payload":"236","algorithm":"verhoeff"},"output":{"check_digits":"3","full":"2363","algorithm":"verhoeff"}}],"execute_url":"/v1/tools/checkdigit-compute/versions/1.0.0/execute"}