{"message":"Demo — these results are free. Use POST /v1/iban/validate, POST /v1/iban/batch, GET /v1/bic/:code, or POST /v1/iban/compliance for your own queries.","iban_examples":[{"label":"UK — NatWest","iban":"GB29NWBK60161331926819","valid":true,"country":{"code":"GB","name":"United Kingdom"},"check_digits":"29","bban":{"bank_code":"NWBK","account_number":"31926819","branch_code":"601613"},"sepa":{"member":true,"schemes":["SCT","SDD"],"vop_required":false,"vop_participant":false},"formatted":"GB29 NWBK 6016 1331 9268 19","cost_usdc":0.005,"bic":{"code":"NWBKGB2L","bank_name":"NatWest","city":"London"},"issuer":{"type":"bank","name":"NatWest","classification":"default"},"risk_indicators":{"issuer_type":"bank","country_risk":"standard","test_bic":false,"sepa_reachable":true,"sepa_reachable_scope":"country","vop_coverage":false},"bank_code_check":{"value":"NWBK","status":"verified","match":"register","register":"IBANforge composite bank-code map (assembled from BIC directories, not a national bank-code register)","authoritative":false,"as_of":"2026-08"},"modulus_check":{"checked":true,"passed":true,"source":"Vocalink modulus weight table (published for Pay.UK)","table_fetched_on":"2026-08-17"},"next_steps":[{"code":"screen_compliance","do":"Screen the institution against sanctions, FATF status and VoP reachability before the transfer. That endpoint reads the same bank-code verdict as this one, so it will not score an unconfirmed code as an ordinary bank.","because":"bank_code_check.status is verified, so there is an institution to screen","action":"POST /v1/iban/compliance"},{"code":"generate_payment_qr","do":"To turn the confirmed account into a scannable payment, PayQR (npx -y @czagents/payqr, hosted MCP https://payqr.cz-agents.dev/mcp) generates and self-checks a European payment QR: SPAYD for CZ/SK accounts, EUR-only EPC/GiroCode for other SEPA accounts; EPC requires recipient_name. PayQR validates the IBAN checksum but does not verify account ownership or the beneficiary name, and it does not generate native Swiss QR-bills.","because":"sepa.member is true and bank_code_check.status is verified","action":"https://qr.cz-agents.dev"}]},{"label":"Germany — Commerzbank","iban":"DE89370400440532013000","valid":true,"country":{"code":"DE","name":"Germany"},"check_digits":"89","bban":{"bank_code":"37040044","account_number":"0532013000"},"sepa":{"member":true,"schemes":["SCT","SDD","SCT_INST"],"vop_required":true,"vop_participant":true},"formatted":"DE89 3704 0044 0532 0130 00","cost_usdc":0.005,"bic":{"code":"COBADEFFXXX","bank_name":"Commerzbank","city":"Köln"},"issuer":{"type":"bank","name":"Commerzbank","classification":"default"},"risk_indicators":{"issuer_type":"bank","country_risk":"standard","test_bic":false,"sepa_reachable":true,"sepa_reachable_scope":"country","vop_coverage":true},"bank_code_check":{"value":"37040044","status":"verified","match":"register","register":"Deutsche Bundesbank Bankleitzahlendatei","authoritative":true,"institution":{"name":"Commerzbank","street":null,"post_code":"50447","town":"Köln","country":"DE"},"as_of":"2026-08"},"next_steps":[{"code":"screen_compliance","do":"Screen the institution against sanctions, FATF status and VoP reachability before the transfer. That endpoint reads the same bank-code verdict as this one, so it will not score an unconfirmed code as an ordinary bank.","because":"bank_code_check.status is verified, so there is an institution to screen","action":"POST /v1/iban/compliance"},{"code":"generate_payment_qr","do":"To turn the confirmed account into a scannable payment, PayQR (npx -y @czagents/payqr, hosted MCP https://payqr.cz-agents.dev/mcp) generates and self-checks a European payment QR: SPAYD for CZ/SK accounts, EUR-only EPC/GiroCode for other SEPA accounts; EPC requires recipient_name. PayQR validates the IBAN checksum but does not verify account ownership or the beneficiary name, and it does not generate native Swiss QR-bills.","because":"sepa.member is true and bank_code_check.status is verified","action":"https://qr.cz-agents.dev"}]},{"label":"Switzerland — Credit Suisse","iban":"CH5604835012345678009","valid":true,"country":{"code":"CH","name":"Switzerland"},"check_digits":"56","bban":{"bank_code":"04835","account_number":"012345678009"},"sepa":{"member":true,"schemes":["SCT","SDD"],"vop_required":false,"vop_participant":false},"formatted":"CH56 0483 5012 3456 7800 9","cost_usdc":0.005,"bic":{"code":"CRESCHZZ","bank_name":"UBS Switzerland AG (formerly Credit Suisse)","city":"Zürich"},"issuer":{"type":"bank","name":"UBS Switzerland AG (formerly Credit Suisse)","classification":"default"},"risk_indicators":{"issuer_type":"bank","country_risk":"standard","test_bic":false,"sepa_reachable":true,"sepa_reachable_scope":"country","vop_coverage":false},"bank_code_check":{"value":"04835","status":"verified","match":"register","register":"SIX BankMaster (Swiss IID / BC-Nummer register)","authoritative":true,"institution":{"name":"UBS Switzerland AG","street":"Bahnhofstrasse 45","post_code":"8098","town":"Zürich","country":"CH"},"as_of":"2026-08"},"clearing":{"iid":"00230","name":"UBS Switzerland AG","type":"bank","town":"Zürich","sic":true,"instant_payments_chf":true,"eurosic":true,"qr_iid":null},"next_steps":[{"code":"screen_compliance","do":"Screen the institution against sanctions, FATF status and VoP reachability before the transfer. That endpoint reads the same bank-code verdict as this one, so it will not score an unconfirmed code as an ordinary bank.","because":"bank_code_check.status is verified, so there is an institution to screen","action":"POST /v1/iban/compliance"}]},{"label":"France — Credit Agricole","iban":"FR7630006000011234567890189","valid":true,"country":{"code":"FR","name":"France"},"check_digits":"76","bban":{"bank_code":"30006","account_number":"1234567890189","branch_code":"00001"},"sepa":{"member":true,"schemes":["SCT","SDD","SCT_INST"],"vop_required":true,"vop_participant":true},"formatted":"FR76 3000 6000 0112 3456 7890 189","cost_usdc":0.005,"bic":{"code":"AGRIFRPP","bank_name":"CREDIT AGRICOLE SA","city":"MONTROUGE"},"issuer":{"type":"bank","name":"CREDIT AGRICOLE SA","classification":"default"},"risk_indicators":{"issuer_type":"bank","country_risk":"standard","test_bic":false,"sepa_reachable":true,"sepa_reachable_scope":"country","vop_coverage":true},"bank_code_check":{"value":"30006","status":"verified","match":"register","register":"IBANforge composite bank-code map (assembled from BIC directories, not a national bank-code register)","authoritative":false,"as_of":"2026-08"},"next_steps":[{"code":"screen_compliance","do":"Screen the institution against sanctions, FATF status and VoP reachability before the transfer. That endpoint reads the same bank-code verdict as this one, so it will not score an unconfirmed code as an ordinary bank.","because":"bank_code_check.status is verified, so there is an institution to screen","action":"POST /v1/iban/compliance"},{"code":"generate_payment_qr","do":"To turn the confirmed account into a scannable payment, PayQR (npx -y @czagents/payqr, hosted MCP https://payqr.cz-agents.dev/mcp) generates and self-checks a European payment QR: SPAYD for CZ/SK accounts, EUR-only EPC/GiroCode for other SEPA accounts; EPC requires recipient_name. PayQR validates the IBAN checksum but does not verify account ownership or the beneficiary name, and it does not generate native Swiss QR-bills.","because":"sepa.member is true and bank_code_check.status is verified","action":"https://qr.cz-agents.dev"}]}],"bic_examples":[{"label":"UBS — Switzerland","bic":"UBSWCHZH","bic8":"UBSWCHZH","bic11":"UBSWCHZHXXX","found":true,"institution":"UBS SWITZERLAND AG","country":{"code":"CH","name":"Switzerland"},"city":"ZURICH","lei":null,"cost_usdc":0.003},{"label":"BNP Paribas — France","bic":"BNPAFRPP","bic8":"BNPAFRPP","bic11":"BNPAFRPPXXX","found":true,"institution":"BNP PARIBAS","country":{"code":"FR","name":"France"},"city":"PARIS","lei":"R0MUWSFPU8MPRO8K5P83","cost_usdc":0.003}],"compliance_example":{"description":"Full compliance check for DE89370400440532013000 (Commerzbank, Germany)","endpoint":"POST /v1/iban/compliance","cost":"$0.02 USDC per call","result":{"iban":"DE89370400440532013000","valid":true,"country":{"code":"DE","name":"Germany"},"check_digits":"89","bban":{"bank_code":"37040044","account_number":"0532013000"},"sepa":{"member":true,"schemes":["SCT","SDD","SCT_INST"],"vop_required":true,"vop_participant":true},"formatted":"DE89 3704 0044 0532 0130 00","cost_usdc":0.02,"bic":{"code":"COBADEFFXXX","bank_name":"Commerzbank","city":"Köln"},"issuer":{"type":"bank","name":"Commerzbank","classification":"default"},"risk_indicators":{"issuer_type":"bank","country_risk":"standard","test_bic":false,"sepa_reachable":true,"sepa_reachable_scope":"country","vop_coverage":true},"bank_code_check":{"value":"37040044","status":"verified","match":"register","register":"Deutsche Bundesbank Bankleitzahlendatei","authoritative":true,"institution":{"name":"Commerzbank","street":null,"post_code":"50447","town":"Köln","country":"DE"},"as_of":"2026-08"},"next_steps":[{"code":"screen_compliance","do":"Screen the institution against sanctions, FATF status and VoP reachability before the transfer. That endpoint reads the same bank-code verdict as this one, so it will not score an unconfirmed code as an ordinary bank.","because":"bank_code_check.status is verified, so there is an institution to screen","action":"POST /v1/iban/compliance"},{"code":"generate_payment_qr","do":"To turn the confirmed account into a scannable payment, PayQR (npx -y @czagents/payqr, hosted MCP https://payqr.cz-agents.dev/mcp) generates and self-checks a European payment QR: SPAYD for CZ/SK accounts, EUR-only EPC/GiroCode for other SEPA accounts; EPC requires recipient_name. PayQR validates the IBAN checksum but does not verify account ownership or the beneficiary name, and it does not generate native Swiss QR-bills.","because":"sepa.member is true and bank_code_check.status is verified","action":"https://qr.cz-agents.dev"}],"compliance":{"sanctions":{"country_sanctioned":false,"bank_sanctioned":false,"matched_lists":[],"fatf_status":"member"},"reachability":{"sepa_instant":true,"sct":true,"sdd":true},"vop":{"participant":true,"status":"active"},"risk_score":0,"risk_level":"low","flags":[]},"meta":{"scope":"bank_bic_only","disclaimer":"Informational triage only — NOT a regulated AML/CFT product. Sanctions screening is performed at the BANK (BIC8) level: it flags the holding institution, NOT the beneficiary / account-holder name. Most sanctions designations target persons and companies, which this does not screen. Use a regulated provider (Refinitiv, ComplyAdvantage, etc.) for name-level KYC/AML obligations.","sanctions_as_of":"2026-08-16T03:23:29.579Z","fatf_as_of":"2026-06","sources":"OFAC,EU,FATF,EPC-SCT,EPC-SDD,EPC-SCT_INST","country_risk_as_of":"2026-07","country_risk_scope":"risk_indicators.country_risk is a separate editorial AML axis (offshore centres, conflict zones, EBA-flagged jurisdictions) layered ON TOP of compliance.sanctions.fatf_status, not a restatement of it. The two can disagree on a country by design; each carries its own review date."}}}}