/*
 * The version of the OpenAPI document: v2
 * Contact: developer-experience@adyen.com
 *
 * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 * https://openapi-generator.tech
 * Do not edit this class manually.
 */


export class BankAccountInfo {
    /**
    * The bank account number (without separators).   When this is provided, the `branchCode` is also required.
    */
    'accountNumber'?: string;
    /**
    * The type of bank account.
    */
    'accountType'?: string;
    /**
    * The bank\'s BIC or SWIFT code.
    */
    'bankBicSwift'?: string;
    /**
    * The city where the bank is located.
    */
    'bankCity'?: string;
    /**
    * The bank code of the banking institution with which the bank account is registered.
    */
    'bankCode'?: string;
    /**
    * The name of the banking institution where the bank account is held.
    */
    'bankName'?: string;
    /**
    * The branch code of the branch under which the bank account is registered.  Required when you provide an `accountNumber`.   In the following countries, this value corresponds to:   * United States: routing number * United Kingdom: sort code * Germany: Bankleitzahl
    */
    'branchCode'?: string;
    /**
    * The check code of the bank account.
    */
    'checkCode'?: string;
    /**
    * The two-character [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) country code where the bank account is registered. For example, **NL**.
    */
    'countryCode': string;
    /**
    * The account\'s three-character [ISO currency code](https://docs.adyen.com/development-resources/currency-codes). For example, **EUR**.
    */
    'currencyCode': string;
    /**
    * The international bank account number as defined in the [ISO-13616](https://www.iso.org/standard/81090.html) standard.
    */
    'iban'?: string;

    static discriminator: string | undefined = undefined;

    static attributeTypeMap: Array<{name: string, baseName: string, type: string}> = [
        {
            "name": "accountNumber",
            "baseName": "accountNumber",
            "type": "string"
        },
        {
            "name": "accountType",
            "baseName": "accountType",
            "type": "string"
        },
        {
            "name": "bankBicSwift",
            "baseName": "bankBicSwift",
            "type": "string"
        },
        {
            "name": "bankCity",
            "baseName": "bankCity",
            "type": "string"
        },
        {
            "name": "bankCode",
            "baseName": "bankCode",
            "type": "string"
        },
        {
            "name": "bankName",
            "baseName": "bankName",
            "type": "string"
        },
        {
            "name": "branchCode",
            "baseName": "branchCode",
            "type": "string"
        },
        {
            "name": "checkCode",
            "baseName": "checkCode",
            "type": "string"
        },
        {
            "name": "countryCode",
            "baseName": "countryCode",
            "type": "string"
        },
        {
            "name": "currencyCode",
            "baseName": "currencyCode",
            "type": "string"
        },
        {
            "name": "iban",
            "baseName": "iban",
            "type": "string"
        }    ];

    static getAttributeTypeMap() {
        return BankAccountInfo.attributeTypeMap;
    }
}

