{"id":43767382,"url":"https://github.com/jschaedl/iban-validation","last_synced_at":"2026-02-05T16:05:56.066Z","repository":{"id":32884562,"uuid":"145147552","full_name":"jschaedl/iban-validation","owner":"jschaedl","description":":bank: A small library for validating International Bank Account Numbers (IBANs)","archived":false,"fork":false,"pushed_at":"2025-12-02T19:45:38.000Z","size":286,"stargazers_count":98,"open_issues_count":2,"forks_count":22,"subscribers_count":8,"default_branch":"3.x","last_synced_at":"2025-12-05T19:43:49.483Z","etag":null,"topics":["hacktoberfest","hacktoberfest2023","iban","iso","iso13616","php","validation"],"latest_commit_sha":null,"homepage":"","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jschaedl.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2018-08-17T17:16:25.000Z","updated_at":"2025-12-02T19:45:42.000Z","dependencies_parsed_at":"2023-01-14T22:32:33.351Z","dependency_job_id":"a755ebf1-18f3-4f2a-b59c-001d3de8de52","html_url":"https://github.com/jschaedl/iban-validation","commit_stats":{"total_commits":131,"total_committers":8,"mean_commits":16.375,"dds":"0.29007633587786263","last_synced_commit":"07d1105b3ca4a01cb2c0b6f4c299b5b83d76a5d6"},"previous_names":[],"tags_count":25,"template":false,"template_full_name":null,"purl":"pkg:github/jschaedl/iban-validation","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jschaedl%2Fiban-validation","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jschaedl%2Fiban-validation/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jschaedl%2Fiban-validation/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jschaedl%2Fiban-validation/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jschaedl","download_url":"https://codeload.github.com/jschaedl/iban-validation/tar.gz/refs/heads/3.x","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jschaedl%2Fiban-validation/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29125114,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-05T14:05:12.718Z","status":"ssl_error","status_checked_at":"2026-02-05T14:03:53.078Z","response_time":65,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["hacktoberfest","hacktoberfest2023","iban","iso","iso13616","php","validation"],"created_at":"2026-02-05T16:05:56.009Z","updated_at":"2026-02-05T16:05:56.058Z","avatar_url":"https://github.com/jschaedl.png","language":"PHP","readme":"# iban-validation\n\n[![StandWithUkraine](https://raw.githubusercontent.com/vshymanskyy/StandWithUkraine/main/badges/StandWithUkraine.svg)](https://github.com/vshymanskyy/StandWithUkraine/blob/main/docs/README.md)\n\n[![SWUbanner](https://raw.githubusercontent.com/vshymanskyy/StandWithUkraine/main/banner2-direct.svg)](https://github.com/vshymanskyy/StandWithUkraine/blob/main/docs/README.md)\n\n## A message to Russian 🇷🇺 people\n\nIf you currently live in Russia, please read [this message](./ToRussianPeople.md).\n\n## Purpose\n\nA small library for validating International Bankaccount Numbers (IBANs) based on the IBAN Registry provided by SWIFT.\nSee https://www.swift.com/standards/data-standards/iban for more information.\n\n[![.github/workflows/ci.yaml](https://github.com/jschaedl/iban-validation/actions/workflows/ci.yaml/badge.svg?branch=master)](https://github.com/jschaedl/iban-validation/actions/workflows/ci.yaml)\n[![PHP Version](https://img.shields.io/badge/version-PHP%208.1%2B-lightblue.svg)](https://img.shields.io/badge/version-PHP%208.1%2B-lightblue.svg)\n[![Latest Stable Version](https://poser.pugx.org/jschaedl/iban-validation/v/stable)](https://packagist.org/packages/jschaedl/iban-validation) \n[![Latest Unstable Version](https://poser.pugx.org/jschaedl/iban-validation/v/unstable)](https://packagist.org/packages/jschaedl/iban-validation) \n[![Total Downloads](https://poser.pugx.org/jschaedl/iban-validation/downloads)](https://packagist.org/packages/jschaedl/iban-validation) \n[![License](https://poser.pugx.org/jschaedl/iban-validation/license)](https://packagist.org/packages/jschaedl/iban-validation) \n\n\n## Development status\n\nThis library is ready to use. The Iban validation should be fine, but there is no warranty. **Please use it at your own risk.**\n\n---\n\n## Features\n\n* full country support of IBAN validation based on SWIFT Registry\n* customizable violation messages\n* simple to use object-oriented api\n* high test coverage\n* DIC friendly\n\n---\n\n## Installation\n\nTo install `jschaedl/iban-validation` via [composer](https://getcomposer.org/) use\n\n```sh\n$ composer require jschaedl/iban-validation\n```\n\nYou can see this library on [Packagist](https://packagist.org/packages/jschaedl/iban-validation).\n\n---\n\n## Iban Validation\n\n```php\n\u003c?php\n\nuse Iban\\Validation\\Validator;\nuse Iban\\Validation\\Iban;\n\n$iban = new Iban('DE89 3704 0044 0532 0130 00');\n$validator = new Validator();\n\nif (!$validator-\u003evalidate($iban)) {\n    foreach ($validator-\u003egetViolations() as $violation) {\n        echo $violation;\n    }\n}\n```\n\nYou can also customize the violation messages by providing them via configuration. Just create a `Validator` passing a config array as constructor argument.\n\n```php\n\u003c?php\n\nuse Iban\\Validation\\Validator;\n\n$validator = new Validator([\n    'violation.unsupported_country' =\u003e 'The requested country is not supported!',\n    'violation.invalid_length' =\u003e 'The length of the given Iban is not valid!',\n    'violation.invalid_format' =\u003e 'The format of the given Iban is not valid!',\n    'violation.invalid_checksum' =\u003e 'The checksum of the given Iban is not valid!',\n]);\n```\n\nYou can pass `true` to the second argument of the `Validator::validate(string|Iban $iban, bool $throw = false)` in order\nto retrieve exceptions thrown on validation errors.\n\n```php\n$validator = new Validator();\n\ntry {\n    $validator-\u003evalidate(new Iban('DE89 3704 0044 0532 0130 00'), throw: true);\n} catch (Exception $exception) {\n    // ...\n}\n```\n\n## Iban Information\n\n```php\n\u003c?php\n\nuse Iban\\Validation\\Iban;\nuse Iban\\Validation\\CountryInfo;\n\n$iban = new Iban('IBAN DE89 3704 0044 0532 0130 00');\n$iban-\u003ecountryCode(); // 'DE'\n$iban-\u003echecksum(); // '89'\n$iban-\u003ebban(); // '370400440532013000'\n$iban-\u003ebbanBankIdentifier(); // '37040044'\n$iban-\u003eformat(Iban::FORMAT_PRINT); // 'DE89 3704 0044 0532 0130 00'\n$iban-\u003eformat(Iban::FORMAT_ELECTRONIC); // 'DE89370400440532013000'\n$iban-\u003eformat(Iban::FORMAT_ANONYMIZED); // 'XXXXXXXXXXXXXXXXXX3000'\n\n$countryInfo = new CountryInfo('DE');\n$countryInfo-\u003egetCountryName(); // 'Germany'\n$countryInfo-\u003egetIbanStructureSwift(); // 'DE2!n8!n10!n'\n$countryInfo-\u003egetBbanStructureSwift(); // '8!n10!n'\n$countryInfo-\u003egetIbanRegex(); // '/^DE\\d{2}\\d{8}\\d{10}$/'\n$countryInfo-\u003egetBbanRegex(); // '/^\\d{8}\\d{10}$/'\n$countryInfo-\u003egetIbanLength(); // 22\n$countryInfo-\u003egetBbanLength(); // 18\n$countryInfo-\u003egetIbanPrintExample(); // 'DE89 3704 0044 0532 0130 00'\n$countryInfo-\u003egetIbanElectronicExample(); // 'DE89370400440532013000'\n\n```\n\n---\n \n## How to contribute\n\nIf you want to fix some bugs or want to enhance some functionality, please fork one of the release branches and create your own development branch.\nThen fix the bug you found or add your enhancements and make a pull request. Please commit your changes in tiny steps and add a detailed description on every commit.\n\nAll pull requests must be accompanied by following coding style and static code analysis rules and passing unit tests.\nYou can run all checks and tests by executing:\n\n```sh\n$ make it\n```\n\n---\n   \n## Author\n\n[Jan Schädlich](https://www.linkedin.com/in/janschaedlich)\n\n[Contributors](https://github.com/jschaedl/iban-validation/graphs/contributors)\n\n## License\n\nMIT License\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjschaedl%2Fiban-validation","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjschaedl%2Fiban-validation","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjschaedl%2Fiban-validation/lists"}