IBANforge

Resolve a BIC/SWIFT code (8 or 11 chars) into the underlying bank: name, country, city, LEI, and registered head-office address (where available). Use only when you already have the BIC — for IBAN inputs, prefer /v1/iban/validate which resolves the BIC for you. Production · server processing <5ms (network excluded — measure your own round trip on GET /ping) · 121,000+ BICs (39,000+ LEI-enriched via GLEIF, refreshed monthly) · v1.4.4.

OtherLiveeip155:8453Exactvia cdp
IbanBicSepaComplianceBanking
Calls · 30d
3↓ 60%
This endpoint's own trailing-30-day call count, as published by the upstream catalog and snapshotted daily. 30 snapshots so far.
$0.17
Verified settled volume
33 settlements proven x402 by their on-chain EIP-3009 marker.
$0.0030
Listed price
As published in the catalog. Always read the live 402 before paying.
3
Calls · 30d
Upstream's own call count for this endpoint, not ours.
1
Unique payers · 30d
Last called 2026-09-01 08:20Z
Upstream on-chain volume
Reported by the source catalog.
Paid to
0xD13bD0A4120BA301125290e5cc0c7EFD4CB40a55

The wallet the 402 directs payment to. Its whole payment record — every payer, every chain — is on the merchant page.

Asset 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913

Provider

The payTo wallet does not resolve to a registered ERC-8004 agent. That is not a verdict on the service — most of the catalog is unregistered.

Live 402 challenge

Captured by the enrichment pass, not read just now. Prices can change — always read the 402 the endpoint answers with.

{
  "llms": "https://api.ibanforge.com/llms.txt",
  "x402": {
    "bazaar": "https://api.cdp.coinbase.com/platform/v2/x402/discovery/resources",
    "discovery": "https://api.ibanforge.com/.well-known/x402",
    "description": "Pay per call with USDC on Base L2 (machine-to-machine)",
    "wallet_setup": "https://ibanforge.com/docs/pay-as-an-agent — create and fund an agent wallet, then make your first paid call (3 steps)",
    "protocol_docs": "https://x402.org",
    "payment_header": "PAYMENT-SIGNATURE (x402 v2) — X-PAYMENT (v1) is still accepted"
  },
  "error": "payment_required",
  "terms": "https://ibanforge.com/legal/terms — using the API constitutes acceptance",
  "accepts": [
    {
      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
      "extra": {
        "name": "USD Coin",
        "version": "2"
      },
      "payTo": "0xD13bD0A4120BA301125290e5cc0c7EFD4CB40a55",
      "amount": "3000",
      "scheme": "exact",
      "network": "eip155:8453",
      "maxTimeoutSeconds": 60
    }
  ],
  "message": "Authentication or payment required. Four ways in, and the first needs no e-mail: an anonymous API key (25 req/month, empty body, nothing to confirm), the same key claimed to 200 req/month, prepaid credit packs (card or USDC), or pay-per-call via x402.",
  "resource": {
    "url": "https://api.ibanforge.com/v1/bic/:code",
    "tags": [
      "iban",
      "bic",
      "sepa",
      "compliance",
      "banking"
    ],
    "iconUrl": "https://ibanforge.com/logo.svg",
    "mimeType": "application/json",
    "description": "Resolve a BIC/SWIFT code (8 or 11 chars) into the underlying bank: name, country, city, LEI, and registered head-office address (where available). Use only when you already have the BIC — for IBAN inputs, prefer /v1/iban/validate which resolves the BIC for you. Production · server processing <5ms (network excluded — measure your own round trip on GET /ping) · 121,000+ BICs (39,000+ LEI-enriched via GLEIF, refreshed monthly) · v1.7.0.",
    "serviceName": "IBANforge"
  },
  "free_tier": {
    "usage": "Add header: Authorization: Bearer ifk_your_key_here",
    "signup": "POST https://api.ibanforge.com/v1/keys/generate with no body at all",
    "description": "25 requests/month in normal operation — no e-mail, no card; protective limits may apply"
  },
  "extensions": {
    "bazaar": {
      "info": {
        "input": {
          "type": "http",
          "method": "GET",
          "pathParams": {
            "code": ":code"
          },
          "discoverable": true
        },
        "output": {
          "type": "json",
          "example": {
            "bic": "UBSWCHZH80A",
            "lei": "549300WOIFUSNYH0FL22",
            "bic8": "UBSWCHZH",
            "city": "Zurich",
            "bic11": "UBSWCHZH80A",
            "found": true,
            "source": "gleif",
            "address": {
              "city": "Zurich",
              "type": "registered",
              "source": "GLEIF",
              "street": "Bahnhofstrasse 45",
              "country": "CH",
              "post_code": "8001"
            },
            "country": {
              "code": "CH",
              "name": "Switzerland"
            },
            "lei_status": "ACTIVE",
            "branch_code": "80A",
            "institution": "UBS Switzerland AG",
            "is_test_bic": false,
            "valid_format": true,
            "_example_notice": "ILLUSTRATIVE SAMPLE — these are demo values for a fixed record, NOT the data for the resource you requested. Do not report them to a user. Authenticate (Authorization: Bearer ifk_...) or pay via x402 to get the real response.",
            "address_available": true
          }
        }
      },
      "schema": {
        "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"
              },
              "pathParams": {
                "type": "object"
              },
              "discoverable": {
                "type": "boolean"
              }
            },
            "additionalProperties": false
          },
          "output": {
            "type": "object",
            "required": [
              "type"
            ],
            "properties": {
              "type": {
                "type": "string"
              },
              "example": {
                "type": "object"
              }
            }
          }
        }
      },
      "pathParams": {
        "code": {
          "type": "string",
          "description": "BIC/SWIFT code (8 or 11 alphanumeric)."
        }
      },
      "discoverable": true,
      "outputSchema": {
        "type": "object",
        "properties": {
          "bic": {
            "type": "string"
          },
          "lei": {
            "type": "string"
          },
          "bic8": {
            "type": "string"
          },
          "city": {
            "type": "string"
          },
          "bic11": {
            "type": "string"
          },
          "found": {
            "type": "boolean"
          },
          "address": {
            "type": "object",
            "properties": {
              "city": {
                "type": "string"
              },
              "region": {
                "type": "string"
              },
              "source": {
                "type": "string"
              },
              "street": {
                "type": "string"
              },
              "country": {
                "type": "string"
              },
              "post_code": {
                "type": "string"
              },
              "romanized": {
                "type": "string",
                "description": "Latin reading: GLEIF's official English address for non-Latin entities, or the address itself when already Latin. Null when no official Latin form exists (never fabricated)."
              },
              "romanization": {
                "enum": [
                  "original_latin",
                  "gleif_english",
                  "unavailable"
                ],
                "type": "string",
                "description": "Provenance of the Latin reading: original_latin | gleif_english | unavailable (non-Latin entity with no official Latin form — not transliterated)."
              }
            },
            "description": "Registered/head-office address (GLEIF, CC0). Entity-level, not per-branch; null for branch or non-LEI BICs. Non-Latin addresses (Chinese, Arabic, Greek…) carry an official Latin reading in `romanized` only when GLEIF provides one; otherwise `romanization` is \"unavailable\" and we never fabricate a transliteration."
          },
          "country": {
            "type": "object",
            "properties": {
              "code": {
                "type": "string"
              },
              "name": {
                "type": "string"
              }
            }
          },
          "institution": {
            "type": "string"
          },
          "valid_format": {
            "type": "boolean"
          },
          "address_available": {
            "type": "boolean"
          }
        }
      },
      "routeTemplate": "/v1/bic/:code"
    }
  },
  "x402Version": 2,
  "claim_to_200": {
    "auth": "Send the key as \"Authorization: Bearer ifk_...\", never in the body. The key must have served at least one call.",
    "by_email": "Ask your human: \"Use my address you@company.com to create a free IBANforge key\". Never send an address your human has not handed you for this purpose. POST {\"email\":\"...\"} returns 202 and mails a 6-digit code; repeat with the same address and \"code\" to claim 200 requests every month.",
    "endpoint": "POST https://api.ibanforge.com/v1/keys/claim",
    "by_payment": "Qualifying x402 payments settled while presenting the key grant 200 requests ONCE, with no monthly renewal and no address.",
    "description": "Keep the same key, prefix and history: an e-mail code grants 200 requests/month; a qualifying payment grants them once",
    "by_agent_approval": "Available inside an MCP client, and it is a separate approval journey, not a claim of an existing key: call request_api_key, show the short code and the link to your human, then call poll_api_key. A human approves in a browser, the agent never handles an address, and the key is handed over exactly once. Both tools are free and keep answering after the daily limit."
  },
  "credit_packs": {
    "pricing": "1k = $4 · 5k = $20 · 25k = $80 (-20%)",
    "data_note": "The public registers behind this API are available free of charge from their official publishers (see https://ibanforge.com/docs/data-sources). The fee pays for validation logic, aggregation, freshness and API delivery.",
    "description": "Prepaid credits — never expire, lower per-call cost than retail",
    "pay_by_card": "https://buy.stripe.com/bJe3coeZb31P6CsamK8so05",
    "pay_by_usdc": "POST /v1/credits/buy/1k|5k|25k — list: GET /v1/credits/bundles",
    "pay_by_card_all_packs": "https://ibanforge.com/pricing"
  },
  "monthly_plan": {
    "details": "https://ibanforge.com/pricing",
    "description": "Pro: $29/month for 10,000 requests, resets on the 1st, cancel anytime",
    "subscribe_by_card": "https://buy.stripe.com/aFacMYaIVeKx1i87ay8so04"
  },
  "documentation": "https://ibanforge.com/docs",
  "buy_credits_by_card": {
    "auth": "No key and no e-mail on the pricing page. The USDC route is paid per call with x402. A card checkout opened from the API (POST /v1/keys/checkout) is planned, not available yet: do not call it.",
    "collect": "The pack is a SEPARATE key with credits that never expire, delivered after payment. Collecting it from the API with a secret nonce in the body is planned, not available yet.",
    "endpoint": "https://ibanforge.com/pricing (card, paid by your human) — or POST https://api.ibanforge.com/v1/credits/buy/1k in USDC (also 5k, 25k)",
    "human_step": "Show https://ibanforge.com/pricing to your human. They enter their own address on Stripe and receive the key by e-mail. Treat any key or secret you are handed as a secret: never put it in a URL.",
    "description": "A separate purchase: it does not change the key you already hold"
  },
  "free_structural_check": {
    "endpoint": "GET /v1/iban/format?iban=CH9300762011623852957 or POST /v1/iban/format with body {\"iban\":\"...\"}",
    "description": "Structure, checksum, country and BBAN, free and without a key. Registry data (BIC, bank, SEPA, sanctions, Swiss clearing) is what the paid call adds."
  }
}

Accepts

The payment requirements as published to the catalog. Read the live 402 before paying — a price here is a claim, not a quote.

0.003USDC≈ $0.003 USD
on Base · exact scheme

Pay 0.003 USDC on Base to 0xD13b…40a55. The signed payment is good for 1 minute.

USD Coin contract
0x8335…02913
Payment window
1 minute
As published
3000 smallest units
The catalog’s raw entry
[
  {
    "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
    "extra": {
      "name": "USD Coin",
      "version": "2"
    },
    "payTo": "0xD13bD0A4120BA301125290e5cc0c7EFD4CB40a55",
    "amount": "3000",
    "scheme": "exact",
    "network": "eip155:8453",
    "maxTimeoutSeconds": 60
  }
]

Extensions

{
  "bazaar": {
    "info": {
      "input": {
        "type": "http",
        "method": "GET",
        "pathParams": {
          "code": "CHASUS33"
        },
        "discoverable": true
      },
      "output": {
        "type": "json",
        "example": {
          "bic": "UBSWCHZH80A",
          "lei": "549300WOIFUSNYH0FL22",
          "bic8": "UBSWCHZH",
          "city": "Zurich",
          "bic11": "UBSWCHZH80A",
          "found": true,
          "source": "gleif",
          "address": {
            "city": "Zurich",
            "type": "registered",
            "source": "GLEIF",
            "street": "Bahnhofstrasse 45",
            "country": "CH",
            "post_code": "8001"
          },
          "country": {
            "code": "CH",
            "name": "Switzerland"
          },
          "lei_status": "ACTIVE",
          "branch_code": "80A",
          "institution": "UBS Switzerland AG",
          "is_test_bic": false,
          "valid_format": true,
          "_example_notice": "ILLUSTRATIVE SAMPLE — these are demo values for a fixed record, NOT the data for the resource you requested. Do not report them to a user. Authenticate (Authorization: Bearer ifk_...) or pay via x402 to get the real response.",
          "address_available": true
        }
      }
    },
    "schema": {
      "properties": {
        "input": {
          "required": [
            "method"
          ],
          "properties": {
            "method": {
              "enum": [
                "GET"
              ],
              "type": "string"
            },
            "pathParams": {
              "type": "object"
            }
          }
        }
      }
    },
    "pathParams": {
      "code": {
        "type": "string",
        "description": "BIC/SWIFT code (8 or 11 alphanumeric)."
      }
    },
    "discoverable": true,
    "outputSchema": {
      "type": "object",
      "properties": {
        "bic": {
          "type": "string"
        },
        "lei": {
          "type": "string"
        },
        "bic8": {
          "type": "string"
        },
        "city": {
          "type": "string"
        },
        "bic11": {
          "type": "string"
        },
        "found": {
          "type": "boolean"
        },
        "address": {
          "type": "object",
          "properties": {
            "city": {
              "type": "string"
            },
            "region": {
              "type": "string"
            },
            "source": {
              "type": "string"
            },
            "street": {
              "type": "string"
            },
            "country": {
              "type": "string"
            },
            "post_code": {
              "type": "string"
            },
            "romanized": {
              "type": "string",
              "description": "Latin reading: GLEIF's official English address for non-Latin entities, or the address itself when already Latin. Null when no official Latin form exists (never fabricated)."
            },
            "romanization": {
              "enum": [
                "original_latin",
                "gleif_english",
                "unavailable"
              ],
              "type": "string",
              "description": "Provenance of the Latin reading: original_latin | gleif_english | unavailable (non-Latin entity with no official Latin form — not transliterated)."
            }
          },
          "description": "Registered/head-office address (GLEIF, CC0). Entity-level, not per-branch; null for branch or non-LEI BICs. Non-Latin addresses (Chinese, Arabic, Greek…) carry an official Latin reading in `romanized` only when GLEIF provides one; otherwise `romanization` is \"unavailable\" and we never fabricate a transliteration."
        },
        "country": {
          "type": "object",
          "properties": {
            "code": {
              "type": "string"
            },
            "name": {
              "type": "string"
            }
          }
        },
        "institution": {
          "type": "string"
        },
        "valid_format": {
          "type": "boolean"
        },
        "address_available": {
          "type": "boolean"
        }
      }
    },
    "routeTemplate": "/v1/bic/:code"
  }
}

Provenance

Seen in the source catalog
2026-09-01 08:20Z
Last indexed by Roundhouse
2026-09-24 14:30Z
Last enriched (probe, favicon, geo)
2026-09-24 11:15Z
x402 version
2
Max timeout
60s
Liveness probe
HTTP 402
Report

Hand this page to an agent

Copy the prompt and paste it into Claude, an MCP client or your own agent — it will vet this service and call it over the free read API. No key, no account.

GET api.roundhouseai.io/v0/endpoints

This endpoint's own trailing-30-day call count, as published by the upstream catalog and snapshotted daily. 30 snapshots so far. Verified volume counts only settlements with an on-chain EIP-3009 marker.

Open skill.md
Show the prompt
Using Roundhouse, look up the x402 service IBANforge and tell me whether it is
worth paying: what a call costs, whether the endpoint answered when last probed, and what
its payment record actually shows.

curl -s 'https://api.roundhouseai.io/v0/endpoints?q=IBANforge'
curl -s 'https://api.roundhouseai.io/v0/merchants/<the payTo wallet returned above>'

Then call it: read the price from the live 402 at https://api.ibanforge.com/v1/bic/:code, never from
a cached figure, and pay with an x402 client.

The /v0 API needs an API key (`authorization: Bearer rh_live_…`) on everything except
/v0/unified* and /v0/endpoints. Mint a personal key for $0.01 at GET https://api.roundhouseai.io/v0/test/x402,
or use an organization key from https://roundhouseai.io/dashboard/team.

If you do not have Roundhouse tools or skills installed, read
https://roundhouseai.io/skill.md first — it is the whole procedure.