This class is an Internationnal Bank Account Number, according to the European standard: IBAN Format: <http://www.ecbs.org/iban/iban.htm> To create find the IBAN given an account number with a country-code: (make-instance 'iban :basic-form (remove #\space (format nil "~2A00~A" country-code account))) this will compute the IBAN key, and print the IBAN instance. To get the IBAN as a string with groups separated by spaces: (com.informatimago.common-lisp.bank.iban:get-iban iban :with-spaces t) License: AGPL3 Copyright Pascal J. Bourguignon 1994 - 2012 This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. You should have received a copy of the GNU Affero General Public License along with this program. If not, see <http://www.gnu.org/licenses/>
(basic-form iban) |
generic-function |
RETURN: The basic form of the IBAN.
(check-country self) |
generic-function |
DO: Checks the country code in the basic-form, and raises an error if not valid. RAISE: IBAN-ERROR RETURN: SELF
(check-iban-key iban) |
function |
DO: Check the IBAN KEY The IBAN string must be in basic format, all non alphanumeric characters removed. 0- move the first four characters of the IBAN to the end. 1- convert the letters into numerics. 2- apply MOD 97-10 (ISO 7064) : remainder of n by 97 must be 1 3- return T when the IBAN key checks. RETURN: Whether the IBAN key checks.
(compute-iban-key country account) |
function |
DO: Compute the IBAN key for the given ACCOUNT. ACCOUNT must be in basic format, all non alphanumeric characters removed. 0- create artificial IBAN with 00 check sum. 1- move the first four characters of the IBAN to the end. 2- convert the letters into numerics. 3- apply MOD 97-10 (ISO 7064): check sum is 98 - n mod 97. 4- return the complete IBAN. RETURN: The new complete IBANA.
(get-and-check-alphanum self string &optional length) |
generic-function |
Check that STRING contains only alphanumeric character valid in an IBAN.
(get-country-code self) |
generic-function |
RETURN: The country code in the IBAN.
(get-iban self &key with-spaces) |
generic-function |
RETURN: The IBAN as a string, with spaces inserted when WITH-SPACES is true, else in basic form.
(get-key self) |
generic-function |
RETURN: The computed key of the IBAN.
iban |
class |
The Internationnal Bank Account Number class.
Class precedence list: IBAN STANDARD-OBJECT T
Class init args: BASIC-FORM
iban-error |
condition |
An IBAN error.
Class precedence list: IBAN-ERROR SIMPLE-ERROR SIMPLE-CONDITION ERROR SERIOUS-CONDITION CONDITION STANDARD-OBJECT T
Class init args: FORMAT-CONTROL FORMAT-ARGUMENTS
(set-iban self iban &key with-key) |
generic-function |
DO: Change the IBAN. If WITH-KEY is true then the IBAN key is checked and an error raised if it is not valid, else the IBAN key is computed and substituted. RETURN: SELF SIGNAL: An IBAN-ERROR when with-key and the key in the IBAN is incorrect.