Skip to content
IBANforge

IBANforge API

IBANforge checks IBAN structure and looks up available bank references: the bank, BIC and source of the information. Results distinguish a confirmed code, a code absent from a register that supports a conclusion, and insufficient or unavailable reference data. Coverage by source explains those differences.

Download the Postman getting-started collection

The service confirms neither account existence nor the account holder. Sanctions indicators concern the institution and country, not the named payee. A valid response is not payment authorisation.

Choose a path for your use case

Your needStart here
Add a check to accounting or ERP softwareFirst call and result interpretation
Prepare a supplier file for migrationFile review with separate proposals
Check an IBAN extracted by OCRUse cases, limits and review cases
Automate without building a complete clientPython, SDK, Sheets and n8n recipes
Give an agent access to toolsMCP and access by transport

The playground lets you inspect a response in your browser. For a complete file without an integration, the audit page provides a sample report and a free preview before any purchase.

First call without a key

curl --silent --show-error --include \
  --request POST https://api.ibanforge.com/v1/iban/validate \
  --header 'Content-Type: application/json' \
  --data '{"iban":"CH10 0023 0000 0000 1234 5"}'

This IBAN is a documentation example, not a payment instruction. The REST trial serves 25 validations per ISO UTC week per source address, on this route only. The trial response states the remaining allowance and reset time. On a shared network, that allowance may already be used; 402 trial_exhausted is not an IBAN finding.

See an example of the trial counters

Fictional, reproducible example: the first call from an address on 24 September 2026. The reset date below belongs to that historical example; for your call, read the values actually returned. This block describes the contract, not a real account balance.

{
"trial": {
  "calls_used_this_week": 1,
  "calls_left_this_week": 24,
  "weekly_limit": 25,
  "resets": "Monday 00:00 UTC",
  "resets_at": "2026-09-28T00:00:00Z",
  "free_key": "POST https://api.ibanforge.com/v1/keys/generate with {\"source\":\"api-trial\"} — no e-mail, no card, nothing to confirm: it returns an ifk_ key that works on every endpoint, good for 200 requests a month once claimed (POST /v1/keys/claim, key in the Authorization header, with a code mailed to an address you read). Unclaimed, the key starts at 25 requests a month",
  "docs": "https://ibanforge.com/docs/api-keys?src=api-trial"
}
}

The onboarding guide covers a reusable key, the first batch and errors. A free key claimed through a code sent by email provides 200 requests a month. Without an address, it normally starts with 25 monthly requests; always read monthly_limit and any notice.

Read the result at several levels

  • HTTP: was the request processed? A quota refusal is not an invalid IBAN.
  • valid and checks: format, checksum and checks actually performed. not_checked is not pass.
  • bank_code_check and bic: register finding, authority, source and date. Absence from a partial source does not prove that a code is unallocated.
  • Account limits: these bank references do not verify account existence, ownership or payee sanctions.

The validation reference explains the fields; the error reference explains refusals. Keep original bank details separate from proposals in your integration.

Main routes

HTTPS base: https://api.ibanforge.com. The complete contract is available in the OpenAPI reference and Postman collection.

The x402 prices below apply only when you choose payment per call. They are not charges added to the REST trial or calls covered by a key’s quota or prepaid credits. See x402 for payment and pricing for the current offers.

RoutePurposeAccessx402
POST /v1/iban/validateStructure and references for one IBANKeyless trial on this route, then a key or authorised paid access0.005 USDC
POST /v1/iban/batchUp to 100 IBANs, one result per inputOne quota unit per IBAN0.002 USDC / IBAN
GET /v1/bic/:codeBIC lookupKey or authorised paid access0.003 USDC
GET /v1/ch/clearing/:iidSwiss clearing referenceKey or authorised paid access0.003 USDC
POST /v1/iban/complianceInstitution and country indicatorsKey or authorised paid access; no payee screening0.02 USDC
GET or POST /v1/iban/formatStructure and checksum without bank lookupFree, no key0
GET or POST /v1/reference/validateChecksum of supported payment referencesFree, no key0
POST /v1/address/checkAddress format under the requested scheme and its sourced rulesFree, no key0
POST /v1/ch/qr-bill/checkSwiss QR-bill payload structureFree, no key0
POST /v1/audit/uploadCSV or Excel file reviewFree preview; full report at the displayed priceSeparate file price
GET /v1/demoPublic response examplesFree; does not test a key0
GET /healthPublic service statusFree0

Prepaid packs: 1,000 credits = $4; 5,000 = $20; 25,000 = $80. Credits do not expire; a validation or lookup uses one credit, and a batch uses one per IBAN. Card checkout and USDC options are described on pricing. The file audit has its own price based on file size, shown with the free preview; it is not included in these per-call prices.

Pricing and access limits describe the plans. A 402 response explains available options; it does not give an automation permission to buy credits or make a payment.