{"uid":"cap_nMexTYc_1FCw13BFgNMJW","slug":"iranian-bank-card-pan-luhn-validator-686fc81f","name":"Iranian Bank Card (PAN) Luhn Validator","description":"Persian (Farsi) and Iranian utility API for AI agents. Text normalization, transliteration, Jalali (Solar Hijri) calendar conversion, Persian digits and number-to-words, Iranian national ID / Sheba (IBAN) / mobile / landline / postal code / bank card (Luhn PAN) / company ID / economic code validators, Iranian provinces and cities, official Jalali holidays, Rial-Toman conversion. Also a FIXED-PRICE deliverable SKU: Persian/Arabic data cleanup at $0.90, $9 or $25 flat per file (not per call) - upload a CSV, TSV or text file and get it back normalized, with an optional Latin transliteration column. Pay per request in USDC on Base via x402 - no signup, no API key, no KYC.","url":"https://farsi-tools.johnaio281.workers.dev/api/fa/validate-bank-card?utm_source=zero.xyz","method":"GET","headers":{},"bodySchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["input"],"properties":{"input":{"type":"object","required":["type","method"],"properties":{"type":{"type":"string","const":"http"},"method":{"enum":["GET"],"type":"string"},"queryParams":{"type":"object","required":["value"],"properties":{"value":{"type":"string","description":"16-digit Iranian bank card number"}}}},"additionalProperties":false},"output":{"type":"object","required":["type"],"properties":{"type":{"type":"string"},"example":{"type":"object"}}}}},"responseSchema":{"type":"json","example":{"valid":true,"issuer":"بانک ملی"}},"example":null,"exampleRequest":null,"tags":["x402"],"displayCostAmount":"0.005","displayCostAsset":"USDC","priceDynamic":false,"priceHint":null,"priceStatus":"priced","priceSource":"probe","requiresHandshake":false,"reviewCount":0,"rating":{"score":"0.00","successRate":"0.00","reviews":0,"stars":null,"state":"unrated"},"availabilityStatus":"unknown","priceObserved":null,"sessionDeposit":null,"pricing":{"kind":"static","summary":"$0.005/call","primary":{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.005","per":"call","confidence":"exact"},"accepted":[{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.005","per":"call","confidence":"exact"}]},"paymentMethods":[{"uid":"pm_nKs7Qt1ojJYBanTkkPdcA","protocol":"x402","methodType":"crypto","chain":"base","mode":"charge","costAmount":"0.005","costPer":"request","priority":0,"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","unit":"request","depositMicros":null,"planRef":null}],"brandName":null,"brandSlug":null,"brandBaseUrl":null,"brandDocsUrl":null,"whatItDoes":"Validates a 16-digit Iranian bank card number using Luhn algorithm and returns whether it is valid along with the issuing bank name in Persian","exampleAgentPrompt":"Can you check if the Iranian bank card number 6037991234567890 is valid and tell me which bank issued it?","exampleUseCases":[{"title":"Payment form card validation","prompt":"Before we process this payment, can you verify that the Iranian bank card number 6219861234567891 is valid and tell me which bank it belongs to?"},{"title":"Fraud screening for fintech app","prompt":"We received a card number 6104337654321098 from a user — can you validate it and identify the issuing Iranian bank so we can flag suspicious entries?"},{"title":"User onboarding bank card check","prompt":"A new user entered their Iranian bank card as 5859831122334455 — please check if the number is valid and what bank issued it before we save it to their profile."}],"resultDescription":"A JSON object with a 'valid' boolean indicating whether the card passes the Luhn check, and an 'issuer' string with the name of the issuing Iranian bank in Persian (e.g. بانک ملی). Returns valid:false with no issuer if the card number is invalid.","failureModes":["Missing or empty 'value' query parameter returns a 400-level error","Non-16-digit input may return valid:false or an error","Unrecognized BIN prefix returns valid:true but issuer may be null or unknown","Network timeout on the Cloudflare worker returns 5xx","Payment not included or insufficient USDC causes x402 payment-required response"],"whenToPreferThis":"Use this endpoint when you need to validate Iranian bank card (PAN) numbers specifically — it applies Luhn algorithm validation and maps Iranian BIN prefixes to issuer bank names in Persian, which generic international card validators do not support. Prefer it over a generic Luhn checker when you also need to identify the Iranian bank behind the card number.","instructions":null,"reviewSummary":null,"reviewSummaryHighlights":null,"reviewSummaryConcerns":null,"reviewSummaryGeneratedAt":null,"activationCount":0,"lastUsedAt":null,"lastSuccessfullyRanAt":null,"lastHealthCheckAt":"2026-10-31T18:39:35.590Z","isFirstParty":false,"canonicalSlug":"iranian-bank-card-pan-luhn-validator-686fc81f"}