API · /checkdigit-api

Check Digit API

healthy 3,905 Subscribers

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.

api.oanor.com/checkdigit-api
Get an API key Try in playground → Contact provider

Machine-readable spec so AI agents can integrate this API.

/api/checkdigit-api/openapi.json
/api/checkdigit-api/llms.txt

Discovery: GET /api/index.json lists every API.

API health

healthy
Uptime
100.00%
Server probes · 24h
Avg latency
83 ms
Server probes · 24h
Subscribers
3,905
active
Total calls
52
last 7 days
status Full status page → · 20 probes/24h

Pricing

Pick a tier — billed monthly, cancel anytime.

Free

Free

  • 995 calls / month
  • 2 requests / second
  • Hard cap (429 above quota, no overage)
  • 995 calls/month
  • 2 req/sec
  • Generate + validate
  • No credit card
Sign in to subscribe

Starter

€0.35 /month

  • 8,350 calls / month
  • 8 requests / second
  • Hard cap (429 above quota, no overage)
  • 8.35k calls/month
  • 8 req/sec
  • Luhn + Verhoeff + Damm + mod97
  • Email support
Sign in to subscribe

Pro

€20.25 /month

  • 134,500 calls / month
  • 20 requests / second
  • Hard cap (429 above quota, no overage)
  • 134.5k calls/month
  • 20 req/sec
  • ID / reference-number pipelines
  • Priority support
Sign in to subscribe

Mega

€58.25 /month

  • 710,000 calls / month
  • 50 requests / second
  • Hard cap (429 above quota, no overage)
  • 710k calls/month
  • 50 req/sec
  • Platform scale
  • Dedicated SLA
Sign in to subscribe

Built by

Related APIs

Other APIs with overlapping tags.

Barcode & Standard-Code Validator API

Validate and work with product and publication codes. Check the check digit of any EAN-8, UPC-A, EAN-13, GTIN-14, ISBN-10, ISBN-13 or ISSN code — the type is detected automatically and you get back whether it is valid plus the expected check digit. Compute the missing check digit for a partial code, and validate or convert ISBNs between the 10- and 13-digit forms. Hyphens and spaces are ignored, so you can paste codes straight from a label or catalogue. Pure local computation — no key, no third-party service, instant. Live. 4 endpoints. Built for retail and inventory systems, e-commerce catalogues, publishing, library tooling and data validation. Distinct from barcode image generation, payment-card (Luhn) and IBAN checks.

api.oanor.com/barcodecheck-api

Credit Card API

A fast, fully-local payment-card toolkit: validate card numbers with the Luhn (mod-10) checksum, detect the brand by IIN/prefix (Visa, Mastercard including the 2-series, American Express, Discover, Diners, JCB, UnionPay, Maestro), format and mask numbers with brand-correct grouping, list supported brands with their valid lengths and CVV length, and generate synthetic Luhn-valid TEST card numbers for QA. Pure server-side compute, no third-party upstream, and inputs are never logged. It is algorithmic only (no real issuer/bank BIN-database lookup). Ideal for checkout forms, payment flows, fraud pre-checks and test fixtures.

api.oanor.com/creditcard-api

EU VAT ID Validator API

EU VAT identification number format validation as an API, computed locally and deterministically. The validate endpoint takes a VAT number, strips spaces, dots and hyphens, reads the two-letter country prefix and checks the remaining body against that member state’s official structure — Germany’s nine digits, Austria’s U-plus-eight, the Netherlands’ nine-digits-B-two, France’s two-character prefix plus nine digits, Italy’s eleven digits, and so on for all 27 EU countries plus Northern Ireland (XI), correctly using EL for Greece rather than GR. It returns whether the format is valid, the country, and the expected pattern, so DE123456789 and ATU12345678 pass while a German number with only eight digits or a US prefix is rejected. The format endpoint looks up the expected VAT pattern for any country code, or lists all supported ones. This is an offline structure check — a valid format does not prove the number is registered, for which a live VIES lookup is needed. Everything is computed locally and deterministically, so it is instant and private. Ideal for e-commerce, invoicing, accounting, B2B-checkout and tax-compliance app developers, VAT-field validation and onboarding tools, and finance software. Pure local computation — no key, no third-party service, instant. Live, nothing stored. 2 endpoints. This validates VAT-number format; for VAT tax rates use a VAT/tax API.

api.oanor.com/vatid-api

SWIFT/BIC Validator API

SWIFT/BIC business-identifier-code validation and parsing as an API, computed locally and deterministically. The validate endpoint checks that a code follows the ISO 9362 BIC structure — four letters for the institution, a two-letter ISO country code, a two-character location code and an optional three-character branch code, eight or eleven characters in total — ignoring spaces and upper-casing the input, and confirms the country code is a recognised one; DEUTDEFF (Deutsche Bank, Frankfurt) is a valid eight-character head-office BIC and DEUTDEFF500 a valid eleven-character branch BIC. The parse endpoint breaks a BIC into its institution, country, location and branch components, reports whether it is a head office or a branch (branch XXX or none means the head office), and reads the status from the location code’s second character — 0 for a test/non-SWIFT code, 1 for a passive participant and 2 for reverse billing. A BIC carries no checksum, so this is structural validation. Everything is computed locally and deterministically, so it is instant and private. Ideal for fintech, banking, payment, KYC, treasury and accounting app developers, SWIFT-code and bank-identifier tools, and onboarding flows. Pure local computation — no key, no third-party service, instant. Live, nothing stored. 2 endpoints. This validates and parses a BIC; for IBAN account-number validation use an IBAN API.

api.oanor.com/bic-api

Frequently asked questions

Quick answers about pricing, quotas, and integration.

How do I get an API key for Check Digit API?
Sign up for free at oanor.com, generate an API key from the developer dashboard, and call Check Digit API with the x-oanor-key header. No credit card needed for the free tier.
What's the rate limit for Check Digit API?
Free tier allows 1 request per second. Paid plans scale up to 50 requests per second on the Mega tier. Hard limits return HTTP 429 above the quota — no surprise overage charges.
How much does Check Digit API cost?
Check Digit API has a free tier with 100 calls / month. Paid plans start at €0.35 / month with higher quotas and faster rate limits.
Can I cancel my subscription anytime?
Yes. Plans are billed monthly and you can cancel anytime from your billing dashboard. No long-term contracts and no cancellation fee.
Is Check Digit API GDPR-compliant?
All requests to Check Digit API go through our EU-based gateway. Your upstream API key never leaves our server and no personal data is shared with the upstream provider beyond the request you send.

Pick an endpoint from the list on the left to see its details and try it.

Code snippets

Sign up to get an API key, then call any path under your slug.

curl https://api.oanor.com/checkdigit-api/SOME_PATH \
  -H "x-oanor-key: oanor_test_..."
const res = await fetch("https://api.oanor.com/checkdigit-api/SOME_PATH", {
  headers: { "x-oanor-key": "oanor_test_..." }
});
const data = await res.json();
$ch = curl_init("https://api.oanor.com/checkdigit-api/SOME_PATH");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, ["x-oanor-key: oanor_test_..."]);
$response = curl_exec($ch);
import requests
r = requests.get(
    "https://api.oanor.com/checkdigit-api/SOME_PATH",
    headers={"x-oanor-key": "oanor_test_..."},
)
print(r.json())

Ratings

Sign in to rate.

No reviews yet.

Discussion

Ask questions, share usage tips, get answers from the provider and other developers. Public — anyone can read.

Sign in to start a thread or reply.

Sign in

New thread

/ 4000

📌 Pinned 🔒 Locked

·

· ·

/ 4000

🔒 This thread is locked — no new replies.

  • No threads yet — start the discussion.

Support

Private 1:1 support with the provider — billing questions, integration issues, account problems. Only you and the provider team can see these threads.

Sign in to open a support ticket.

Sign in

Open new ticket

Describe what you need help with. The provider team gets an email and replies on the ticket page.

  • No tickets yet for this API.

Subscription active — calls can start immediately.

Send your first request —

Subscription active — copy a snippet and fire off your first call.