/**
 *                       ######
 *                       ######
 * ############    ####( ######  #####. ######  ############   ############
 * #############  #####( ######  #####. ######  #############  #############
 *        ######  #####( ######  #####. ######  #####  ######  #####  ######
 * ###### ######  #####( ######  #####. ######  #####  #####   #####  ######
 * ###### ######  #####( ######  #####. ######  #####          #####  ######
 * #############  #############  #############  #############  #####  ######
 *  ############   ############  #############   ############  #####  ######
 *                                      ######
 *                               #############
 *                               ############
 * Adyen NodeJS API Library
 * Copyright (c) 2021 Adyen B.V.
 * This file is open source and available under the MIT license.
 * See the LICENSE file for more info.
 *
 * Adyen for Platforms: Notifications
 * The Notification API sends notifications to the endpoints specified in a given subscription. Subscriptions are managed through the Notification Configuration API. The API specifications listed here detail the format of each notification.  For more information, refer to our [documentation](https://docs.adyen.com/platforms/notifications).
 *
 * The version of the OpenAPI document: 6
 * 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 the class manually.
 */

import { BankAccountDetail } from './bankAccountDetail';
import { BusinessDetails } from './businessDetails';
import { IndividualDetails } from './individualDetails';
import { LegalArrangementDetail } from './legalArrangementDetail';
import { PayoutMethod } from './payoutMethod';
import { StoreDetail } from './storeDetail';
import { ViasAddress } from './viasAddress';

export class AccountHolderDetails {
    'address'?: ViasAddress;
    /**
    * Array of bank accounts associated with the account holder. For details about the required `BankAccountDetail` fields, refer to [Bank account check](https://docs.adyen.com/platforms/verification-checks/bank-account-check).
    */
    'bankAccountDetails'?: Array<BankAccountDetail>;
    /**
    * The opaque reference value returned by the Adyen API during bank account login.
    */
    'bankAggregatorDataReference'?: string;
    'businessDetails'?: BusinessDetails;
    /**
    * The email address of the account holder.
    */
    'email': string;
    /**
    * The phone number of the account holder provided as a single string. It will be handled as a landline phone. **Examples:** \"0031 6 11 22 33 44\", \"+316/1122-3344\", \"(0031) 611223344\"
    */
    'fullPhoneNumber': string;
    'individualDetails'?: IndividualDetails;
    /**
    * Date of the last review date, in ISO-8601 YYYY-MM-DD format. For example, **2000-01-31**.
    */
    'lastReviewDate'?: string;
    /**
    * An array containing information about the account holder\'s [legal arrangements](https://docs.adyen.com/platforms/verification-checks/legal-arrangements).
    */
    'legalArrangements'?: Array<LegalArrangementDetail>;
    /**
    * The Merchant Category Code of the account holder. > If not specified in the request, this will be derived from the platform account (which is configured by Adyen).
    */
    'merchantCategoryCode'?: string;
    /**
    * A set of key and value pairs for general use by the account holder or merchant. The keys do not have specific names and may be used for storing miscellaneous data as desired. > The values being stored have a maximum length of eighty (80) characters and will be truncated if necessary. > Note that during an update of metadata, the omission of existing key-value pairs will result in the deletion of those key-value pairs.
    */
    'metadata'?: { [key: string]: string; };
    /**
    * Array of tokenized card details associated with the account holder. For details about how you can use the tokens to pay out, refer to [Pay out to cards](https://docs.adyen.com/platforms/payout-to-cards).
    */
    'payoutMethods'?: Array<PayoutMethod>;
    'principalBusinessAddress'?: ViasAddress;
    /**
    * Array of stores associated with the account holder. Required when onboarding account holders that have an Adyen [point of sale](https://docs.adyen.com/platforms/platforms-for-pos).
    */
    'storeDetails'?: Array<StoreDetail>;
    /**
    * The URL of the website of the account holder.
    */
    'webAddress': string;
}

