{"openapi":"3.1.0","info":{"title":"Check Digit API","version":"1.0.0","description":"Add and verify check digits with the standard algorithms — Luhn (mod 10), Verhoeff, Damm and ISO 7064 mod 97-10 — on any number. The generate endpoint returns the check digit(s) and the complete number; the validate endpoint tells you whether a number's check digit is correct. Luhn is the familiar mod-10 scheme behind credit cards, IMEI and many ID numbers; Verhoeff and Damm are single-digit schemes that also catch all adjacent-transposition errors; mod 97-10 produces two check digits and is the scheme used by IBAN. Perfect for generating and validating reference, account, membership and order numbers, and for data-entry integrity. Pure local computation — no key, no third-party service, instant. Live, nothing stored. 4 endpoints. Distinct from credit-card and barcode validators, which apply a fixed algorithm to one specific number format.","contact":{"name":"PremiumApi","url":"https://www.oanor.com/by/premiumapi"}},"servers":[{"url":"https://api.oanor.com/checkdigit-api","description":"oanor gateway"}],"tags":[{"name":"Check Digit"},{"name":"Reference"},{"name":"Meta"}],"components":{"securitySchemes":{"oanorKey":{"type":"apiKey","in":"header","name":"x-oanor-key","description":"Get your key at https://www.oanor.com/developer/keys"}}},"security":[{"oanorKey":[]}],"paths":{"/v1/generate":{"get":{"operationId":"get_v1_generate","tags":["Check Digit"],"summary":"Generate a check digit","description":"","parameters":[{"name":"number","in":"query","required":true,"description":"Base number (no check digit)","schema":{"type":"string"},"example":"7992739871"},{"name":"algorithm","in":"query","required":false,"description":"luhn|verhoeff|damm|mod97 (default luhn)","schema":{"type":"string"},"example":"luhn"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"number":"7992739871","algorithm":"luhn","check_digit":"3","full_number":"79927398713"},"meta":{"timestamp":"2026-06-03T01:09:43.096Z","request_id":"3725976f-8725-493f-97d0-5d71a385516e"},"status":"ok","message":"Generate a check digit","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/validate":{"get":{"operationId":"get_v1_validate","tags":["Check Digit"],"summary":"Validate a check digit","description":"","parameters":[{"name":"number","in":"query","required":true,"description":"Number including its check digit","schema":{"type":"string"},"example":"79927398713"},{"name":"algorithm","in":"query","required":false,"description":"luhn|verhoeff|damm|mod97 (default luhn)","schema":{"type":"string"},"example":"luhn"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"valid":true,"number":"79927398713","algorithm":"luhn"},"meta":{"timestamp":"2026-06-03T01:09:43.204Z","request_id":"daf4c7ef-e71b-45d3-bc8e-c4f74b84f64d"},"status":"ok","message":"Validate a check digit","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/algorithms":{"get":{"operationId":"get_v1_algorithms","tags":["Reference"],"summary":"Supported algorithms","description":"","parameters":[],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"algorithms":[{"name":"luhn","description":"Mod 10 — credit cards, IMEI, many ID numbers.","check_length":1},{"name":"verhoeff","description":"Catches all single-digit and most transposition errors.","check_length":1},{"name":"damm","description":"Single-digit, detects all single and adjacent transposition errors.","check_length":1},{"name":"mod97","description":"ISO 7064 mod 97-10 — two check digits, as used by IBAN.","check_length":2}]},"meta":{"timestamp":"2026-06-03T01:09:43.298Z","request_id":"fae0e1cf-e045-451c-bc4d-0f3bcbf98b6f"},"status":"ok","message":"Supported algorithms","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/meta":{"get":{"operationId":"get_v1_meta","tags":["Meta"],"summary":"Spec","description":"","parameters":[],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"name":"Check Digit API","notes":"Luhn, Verhoeff and Damm produce one check digit; mod 97-10 produces two. Spaces and hyphens in the input are ignored. Nothing is stored.","version":"v1","endpoints":[{"path":"/v1/generate","params":{"number":"the base number (required)","algorithm":"luhn|verhoeff|damm|mod97 (default luhn)"},"returns":"the check digit(s) and the full number"},{"path":"/v1/validate","params":{"number":"the number including its check digit (required)","algorithm":"default luhn"},"returns":"whether the check digit is correct"},{"path":"/v1/algorithms","params":[],"returns":"the supported algorithms"},{"path":"/v1/meta","params":[],"returns":"this document"}],"description":"Generate and validate check digits with the standard algorithms — Luhn (mod 10), Verhoeff, Damm and ISO 7064 mod 97-10 — on any number. Use it to add or verify a check digit on IDs, references, account and membership numbers. Pure local, no key."},"meta":{"timestamp":"2026-06-03T01:09:43.390Z","request_id":"8822d220-dfba-4814-b544-432cfefabfbb"},"status":"ok","message":"Meta","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}}},"x-oanor-pricing":[{"slug":"free","name":"Free","price_cents_month":0,"monthly_call_quota":995,"rps_limit":2,"hard_limit":true},{"slug":"starter","name":"Starter","price_cents_month":35,"monthly_call_quota":8350,"rps_limit":8,"hard_limit":true},{"slug":"pro","name":"Pro","price_cents_month":2025,"monthly_call_quota":134500,"rps_limit":20,"hard_limit":true},{"slug":"mega","name":"Mega","price_cents_month":5825,"monthly_call_quota":710000,"rps_limit":50,"hard_limit":true}],"x-oanor-marketplace-url":"https://www.oanor.com/api/checkdigit-api"}