content: /*
   * Fund API
   * This API is used for the classic integration. If you are just starting your implementation, refer to our [new integration guide](https://docs.adyen.com/marketplaces-and-platforms) instead.  The Fund API provides endpoints for managing the funds in the accounts on your platform. These management operations include, for example, the transfer of funds from one account to another, the payout of funds to an account holder, and the retrieval of balances in an account.  For more information, refer to our [documentation](https://docs.adyen.com/marketplaces-and-platforms/classic/). ## Authentication Your Adyen contact will provide your API credential and an API key. To connect to the API, add an `X-API-Key` header with the API key as the value, for example:   ``` curl -H \"Content-Type: application/json\" \\ -H \"X-API-Key: YOUR_API_KEY\" \\ ... ```  Alternatively, you can use the username and password to connect to the API using basic authentication. For example:  ``` curl -U \"ws@MarketPlace.YOUR_PLATFORM_ACCOUNT\":\"YOUR_WS_PASSWORD\" \\ -H \"Content-Type: application/json\" \\ ... ``` When going live, you need to generate new web service user credentials to access the [live endpoints](https://docs.adyen.com/development-resources/live-endpoints).  ## Versioning The Fund API supports [versioning](https://docs.adyen.com/development-resources/versioning) using a version suffix in the endpoint URL. This suffix has the following format: \"vXX\", where XX is the version number.  For example: ``` https://cal-test.adyen.com/cal/services/Fund/v6/accountHolderBalance ```
   *
   * The version of the OpenAPI document: 6
   *
   *
   * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
   * https://openapi-generator.tech
   * Do not edit the class manually.
   */
  
  package com.adyen.model.marketpayfund;
  
  import com.fasterxml.jackson.annotation.JsonInclude;
  import com.fasterxml.jackson.annotation.JsonProperty;
  import com.fasterxml.jackson.annotation.JsonPropertyOrder;
  import com.fasterxml.jackson.core.JsonProcessingException;
  import io.swagger.annotations.ApiModelProperty;
  import java.util.Objects;
  
  /** BankAccountDetail */
  @JsonPropertyOrder({
    BankAccountDetail.JSON_PROPERTY_ACCOUNT_NUMBER,
    BankAccountDetail.JSON_PROPERTY_ACCOUNT_TYPE,
    BankAccountDetail.JSON_PROPERTY_BANK_ACCOUNT_NAME,
    BankAccountDetail.JSON_PROPERTY_BANK_ACCOUNT_REFERENCE,
    BankAccountDetail.JSON_PROPERTY_BANK_ACCOUNT_U_U_I_D,
    BankAccountDetail.JSON_PROPERTY_BANK_BIC_SWIFT,
    BankAccountDetail.JSON_PROPERTY_BANK_CITY,
    BankAccountDetail.JSON_PROPERTY_BANK_CODE,
    BankAccountDetail.JSON_PROPERTY_BANK_NAME,
    BankAccountDetail.JSON_PROPERTY_BRANCH_CODE,
    BankAccountDetail.JSON_PROPERTY_CHECK_CODE,
    BankAccountDetail.JSON_PROPERTY_COUNTRY_CODE,
    BankAccountDetail.JSON_PROPERTY_CURRENCY_CODE,
    BankAccountDetail.JSON_PROPERTY_IBAN,
    BankAccountDetail.JSON_PROPERTY_OWNER_CITY,
    BankAccountDetail.JSON_PROPERTY_OWNER_COUNTRY_CODE,
    BankAccountDetail.JSON_PROPERTY_OWNER_DATE_OF_BIRTH,
    BankAccountDetail.JSON_PROPERTY_OWNER_HOUSE_NUMBER_OR_NAME,
    BankAccountDetail.JSON_PROPERTY_OWNER_NAME,
    BankAccountDetail.JSON_PROPERTY_OWNER_NATIONALITY,
    BankAccountDetail.JSON_PROPERTY_OWNER_POSTAL_CODE,
    BankAccountDetail.JSON_PROPERTY_OWNER_STATE,
    BankAccountDetail.JSON_PROPERTY_OWNER_STREET,
    BankAccountDetail.JSON_PROPERTY_PRIMARY_ACCOUNT,
    BankAccountDetail.JSON_PROPERTY_TAX_ID,
    BankAccountDetail.JSON_PROPERTY_URL_FOR_VERIFICATION
  })
  public class BankAccountDetail {
    public static final String JSON_PROPERTY_ACCOUNT_NUMBER = "accountNumber";
    private String accountNumber;
  
    public static final String JSON_PROPERTY_ACCOUNT_TYPE = "accountType";
    private String accountType;
  
    public static final String JSON_PROPERTY_BANK_ACCOUNT_NAME = "bankAccountName";
    private String bankAccountName;
  
    public static final String JSON_PROPERTY_BANK_ACCOUNT_REFERENCE = "bankAccountReference";
    private String bankAccountReference;
  
    public static final String JSON_PROPERTY_BANK_ACCOUNT_U_U_I_D = "bankAccountUUID";
    private String bankAccountUUID;
  
    public static final String JSON_PROPERTY_BANK_BIC_SWIFT = "bankBicSwift";
    private String bankBicSwift;
  
    public static final String JSON_PROPERTY_BANK_CITY = "bankCity";
    private String bankCity;
  
    public static final String JSON_PROPERTY_BANK_CODE = "bankCode";
    private String bankCode;
  
    public static final String JSON_PROPERTY_BANK_NAME = "bankName";
    private String bankName;
  
    public static final String JSON_PROPERTY_BRANCH_CODE = "branchCode";
    private String branchCode;
  
    public static final String JSON_PROPERTY_CHECK_CODE = "checkCode";
    private String checkCode;
  
    public static final String JSON_PROPERTY_COUNTRY_CODE = "countryCode";
    private String countryCode;
  
    public static final String JSON_PROPERTY_CURRENCY_CODE = "currencyCode";
    private String currencyCode;
  
    public static final String JSON_PROPERTY_IBAN = "iban";
    private String iban;
  
    public static final String JSON_PROPERTY_OWNER_CITY = "ownerCity";
    private String ownerCity;
  
    public static final String JSON_PROPERTY_OWNER_COUNTRY_CODE = "ownerCountryCode";
    private String ownerCountryCode;
  
    public static final String JSON_PROPERTY_OWNER_DATE_OF_BIRTH = "ownerDateOfBirth";
    private String ownerDateOfBirth;
  
    public static final String JSON_PROPERTY_OWNER_HOUSE_NUMBER_OR_NAME = "ownerHouseNumberOrName";
    private String ownerHouseNumberOrName;
  
    public static final String JSON_PROPERTY_OWNER_NAME = "ownerName";
    private String ownerName;
  
    public static final String JSON_PROPERTY_OWNER_NATIONALITY = "ownerNationality";
    private String ownerNationality;
  
    public static final String JSON_PROPERTY_OWNER_POSTAL_CODE = "ownerPostalCode";
    private String ownerPostalCode;
  
    public static final String JSON_PROPERTY_OWNER_STATE = "ownerState";
    private String ownerState;
  
    public static final String JSON_PROPERTY_OWNER_STREET = "ownerStreet";
    private String ownerStreet;
  
    public static final String JSON_PROPERTY_PRIMARY_ACCOUNT = "primaryAccount";
    private Boolean primaryAccount;
  
    public static final String JSON_PROPERTY_TAX_ID = "taxId";
    private String taxId;
  
    public static final String JSON_PROPERTY_URL_FOR_VERIFICATION = "urlForVerification";
    private String urlForVerification;
  
    public BankAccountDetail() {}
  
    public BankAccountDetail accountNumber(String accountNumber) {
      this.accountNumber = accountNumber;
      return this;
    }
  
    /**
     * The bank account number (without separators). &gt;Refer to [Required
     * information](https://docs.adyen.com/marketplaces-and-platforms/classic/verification-process/required-information)
     * for details on field requirements.
     *
     * @return accountNumber
     */
    @ApiModelProperty(
        value =
            "The bank account number (without separators). >Refer to [Required information](https://docs.adyen.com/marketplaces-and-platforms/classic/verification-process/required-information) for details on field requirements.")
    @JsonProperty(JSON_PROPERTY_ACCOUNT_NUMBER)
    @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
    public String getAccountNumber() {
      return accountNumber;
    }
  
    @JsonProperty(JSON_PROPERTY_ACCOUNT_NUMBER)
    @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
    public void setAccountNumber(String accountNumber) {
      this.accountNumber = accountNumber;
    }
  
    public BankAccountDetail accountType(String accountType) {
      this.accountType = accountType;
      return this;
    }
  
    /**
     * The type of bank account. Only applicable to bank accounts held in the USA. The permitted
     * values are: &#x60;checking&#x60;, &#x60;savings&#x60;. &gt;Refer to [Required
     * information](https://docs.adyen.com/marketplaces-and-platforms/classic/verification-process/required-information)
     * for details on field requirements.
     *
     * @return accountType
     */
    @ApiModelProperty(
        value =
            "The type of bank account. Only applicable to bank accounts held in the USA. The permitted values are: `checking`, `savings`.  >Refer to [Required information](https://docs.adyen.com/marketplaces-and-platforms/classic/verification-process/required-information) for details on field requirements.")
    @JsonProperty(JSON_PROPERTY_ACCOUNT_TYPE)
    @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
    public String getAccountType() {
      return accountType;
    }
  
    @JsonProperty(JSON_PROPERTY_ACCOUNT_TYPE)
    @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
    public void setAccountType(String accountType) {
      this.accountType = accountType;
    }
  
    public BankAccountDetail bankAccountName(String bankAccountName) {
      this.bankAccountName = bankAccountName;
      return this;
    }
  
    /**
     * The name of the bank account.
     *
     * @return bankAccountName
     */
    @ApiModelProperty(value = "The name of the bank account.")
    @JsonProperty(JSON_PROPERTY_BANK_ACCOUNT_NAME)
    @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
    public String getBankAccountName() {
      return bankAccountName;
    }
  
    @JsonProperty(JSON_PROPERTY_BANK_ACCOUNT_NAME)
    @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
    public void setBankAccountName(String bankAccountName) {
      this.bankAccountName = bankAccountName;
    }
  
    public BankAccountDetail bankAccountReference(String bankAccountReference) {
      this.bankAccountReference = bankAccountReference;
      return this;
    }
  
    /**
     * Merchant reference to the bank account.
     *
     * @return bankAccountReference
     */
    @ApiModelProperty(value = "Merchant reference to the bank account.")
    @JsonProperty(JSON_PROPERTY_BANK_ACCOUNT_REFERENCE)
    @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
    public String getBankAccountReference() {
      return bankAccountReference;
    }
  
    @JsonProperty(JSON_PROPERTY_BANK_ACCOUNT_REFERENCE)
    @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
    public void setBankAccountReference(String bankAccountReference) {
      this.bankAccountReference = bankAccountReference;
    }
  
    public BankAccountDetail bankAccountUUID(String bankAccountUUID) {
      this.bankAccountUUID = bankAccountUUID;
      return this;
    }
  
    /**
     * The unique identifier (UUID) of the Bank Account. &gt;If, during an account holder create or
     * update request, this field is left blank (but other fields provided), a new Bank Account will
     * be created with a procedurally-generated UUID. &gt;If, during an account holder create request,
     * a UUID is provided, the creation of the Bank Account will fail while the creation of the
     * account holder will continue. &gt;If, during an account holder update request, a UUID that is
     * not correlated with an existing Bank Account is provided, the update of the account holder will
     * fail. &gt;If, during an account holder update request, a UUID that is correlated with an
     * existing Bank Account is provided, the existing Bank Account will be updated.
     *
     * @return bankAccountUUID
     */
    @ApiModelProperty(
        value =
            "The unique identifier (UUID) of the Bank Account. >If, during an account holder create or update request, this field is left blank (but other fields provided), a new Bank Account will be created with a procedurally-generated UUID.  >If, during an account holder create request, a UUID is provided, the creation of the Bank Account will fail while the creation of the account holder will continue.  >If, during an account holder update request, a UUID that is not correlated with an existing Bank Account is provided, the update of the account holder will fail.  >If, during an account holder update request, a UUID that is correlated with an existing Bank Account is provided, the existing Bank Account will be updated. ")
    @JsonProperty(JSON_PROPERTY_BANK_ACCOUNT_U_U_I_D)
    @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
    public String getBankAccountUUID() {
      return bankAccountUUID;
    }
  
    @JsonProperty(JSON_PROPERTY_BANK_ACCOUNT_U_U_I_D)
    @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
    public void setBankAccountUUID(String bankAccountUUID) {
      this.bankAccountUUID = bankAccountUUID;
    }
  
    public BankAccountDetail bankBicSwift(String bankBicSwift) {
      this.bankBicSwift = bankBicSwift;
      return this;
    }
  
    /**
     * The bank identifier code. &gt;Refer to [Required
     * information](https://docs.adyen.com/marketplaces-and-platforms/classic/verification-process/required-information)
     * for details on field requirements.
     *
     * @return bankBicSwift
     */
    @ApiModelProperty(
        value =
            "The bank identifier code. >Refer to [Required information](https://docs.adyen.com/marketplaces-and-platforms/classic/verification-process/required-information) for details on field requirements.")
    @JsonProperty(JSON_PROPERTY_BANK_BIC_SWIFT)
    @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
    public String getBankBicSwift() {
      return bankBicSwift;
    }
  
    @JsonProperty(JSON_PROPERTY_BANK_BIC_SWIFT)
    @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
    public void setBankBicSwift(String bankBicSwift) {
      this.bankBicSwift = bankBicSwift;
    }
  
    public BankAccountDetail bankCity(String bankCity) {
      this.bankCity = bankCity;
      return this;
    }
  
    /**
     * The city in which the bank branch is located. &gt;Refer to [Required
     * information](https://docs.adyen.com/marketplaces-and-platforms/classic/verification-process/required-information)
     * for details on field requirements.
     *
     * @return bankCity
     */
    @ApiModelProperty(
        value =
            "The city in which the bank branch is located.  >Refer to [Required information](https://docs.adyen.com/marketplaces-and-platforms/classic/verification-process/required-information) for details on field requirements.")
    @JsonProperty(JSON_PROPERTY_BANK_CITY)
    @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
    public String getBankCity() {
      return bankCity;
    }
  
    @JsonProperty(JSON_PROPERTY_BANK_CITY)
    @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
    public void setBankCity(String bankCity) {
      this.bankCity = bankCity;
    }
  
    public BankAccountDetail bankCode(String bankCode) {
      this.bankCode = bankCode;
      return this;
    }
  
    /**
     * The bank code of the banking institution with which the bank account is registered. &gt;Refer
     * to [Required
     * information](https://docs.adyen.com/marketplaces-and-platforms/classic/verification-process/required-information)
     * for details on field requirements.
     *
     * @return bankCode
     */
    @ApiModelProperty(
        value =
            "The bank code of the banking institution with which the bank account is registered.  >Refer to [Required information](https://docs.adyen.com/marketplaces-and-platforms/classic/verification-process/required-information) for details on field requirements.")
    @JsonProperty(JSON_PROPERTY_BANK_CODE)
    @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
    public String getBankCode() {
      return bankCode;
    }
  
    @JsonProperty(JSON_PROPERTY_BANK_CODE)
    @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
    public void setBankCode(String bankCode) {
      this.bankCode = bankCode;
    }
  
    public BankAccountDetail bankName(String bankName) {
      this.bankName = bankName;
      return this;
    }
  
    /**
     * The name of the banking institution with which the bank account is held. &gt;Refer to [Required
     * information](https://docs.adyen.com/marketplaces-and-platforms/classic/verification-process/required-information)
     * for details on field requirements.
     *
     * @return bankName
     */
    @ApiModelProperty(
        value =
            "The name of the banking institution with which the bank account is held.  >Refer to [Required information](https://docs.adyen.com/marketplaces-and-platforms/classic/verification-process/required-information) for details on field requirements.")
    @JsonProperty(JSON_PROPERTY_BANK_NAME)
    @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
    public String getBankName() {
      return bankName;
    }
  
    @JsonProperty(JSON_PROPERTY_BANK_NAME)
    @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
    public void setBankName(String bankName) {
      this.bankName = bankName;
    }
  
    public BankAccountDetail branchCode(String branchCode) {
      this.branchCode = branchCode;
      return this;
    }
  
    /**
     * The branch code of the branch under which the bank account is registered. The value to be
     * specified in this parameter depends on the country of the bank account: * United States -
     * Routing number * United Kingdom - Sort code * Germany - Bankleitzahl &gt;Refer to [Required
     * information](https://docs.adyen.com/marketplaces-and-platforms/classic/verification-process/required-information)
     * for details on field requirements.
     *
     * @return branchCode
     */
    @ApiModelProperty(
        value =
            "The branch code of the branch under which the bank account is registered. The value to be specified in this parameter depends on the country of the bank account: * United States - Routing number * United Kingdom - Sort code * Germany - Bankleitzahl >Refer to [Required information](https://docs.adyen.com/marketplaces-and-platforms/classic/verification-process/required-information) for details on field requirements.")
    @JsonProperty(JSON_PROPERTY_BRANCH_CODE)
    @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
    public String getBranchCode() {
      return branchCode;
    }
  
    @JsonProperty(JSON_PROPERTY_BRANCH_CODE)
    @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
    public void setBranchCode(String branchCode) {
      this.branchCode = branchCode;
    }
  
    public BankAccountDetail checkCode(String checkCode) {
      this.checkCode = checkCode;
      return this;
    }
  
    /**
     * The check code of the bank account. &gt;Refer to [Required
     * information](https://docs.adyen.com/marketplaces-and-platforms/classic/verification-process/required-information)
     * for details on field requirements.
     *
     * @return checkCode
     */
    @ApiModelProperty(
        value =
            "The check code of the bank account.  >Refer to [Required information](https://docs.adyen.com/marketplaces-and-platforms/classic/verification-process/required-information) for details on field requirements.")
    @JsonProperty(JSON_PROPERTY_CHECK_CODE)
    @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
    public String getCheckCode() {
      return checkCode;
    }
  
    @JsonProperty(JSON_PROPERTY_CHECK_CODE)
    @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
    public void setCheckCode(String checkCode) {
      this.checkCode = checkCode;
    }
  
    public BankAccountDetail countryCode(String countryCode) {
      this.countryCode = countryCode;
      return this;
    }
  
    /**
     * The two-letter country code in which the bank account is registered. &gt;The permitted country
     * codes are defined in ISO-3166-1 alpha-2 (e.g. &#39;NL&#39;). &gt;Refer to [Required
     * information](https://docs.adyen.com/marketplaces-and-platforms/classic/verification-process/required-information)
     * for details on field requirements.
     *
     * @return countryCode
     */
    @ApiModelProperty(
        value =
            "The two-letter country code in which the bank account is registered. >The permitted country codes are defined in ISO-3166-1 alpha-2 (e.g. 'NL').  >Refer to [Required information](https://docs.adyen.com/marketplaces-and-platforms/classic/verification-process/required-information) for details on field requirements.")
    @JsonProperty(JSON_PROPERTY_COUNTRY_CODE)
    @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
    public String getCountryCode() {
      return countryCode;
    }
  
    @JsonProperty(JSON_PROPERTY_COUNTRY_CODE)
    @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
    public void setCountryCode(String countryCode) {
      this.countryCode = countryCode;
    }
  
    public BankAccountDetail currencyCode(String currencyCode) {
      this.currencyCode = currencyCode;
      return this;
    }
  
    /**
     * The currency in which the bank account deals. &gt;The permitted currency codes are defined in
     * ISO-4217 (e.g. &#39;EUR&#39;).
     *
     * @return currencyCode
     */
    @ApiModelProperty(
        value =
            "The currency in which the bank account deals. >The permitted currency codes are defined in ISO-4217 (e.g. 'EUR'). ")
    @JsonProperty(JSON_PROPERTY_CURRENCY_CODE)
    @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
    public String getCurrencyCode() {
      return currencyCode;
    }
  
    @JsonProperty(JSON_PROPERTY_CURRENCY_CODE)
    @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
    public void setCurrencyCode(String currencyCode) {
      this.currencyCode = currencyCode;
    }
  
    public BankAccountDetail iban(String iban) {
      this.iban = iban;
      return this;
    }
  
    /**
     * The international bank account number. &gt;The IBAN standard is defined in ISO-13616. &gt;Refer
     * to [Required
     * information](https://docs.adyen.com/marketplaces-and-platforms/classic/verification-process/required-information)
     * for details on field requirements.
     *
     * @return iban
     */
    @ApiModelProperty(
        value =
            "The international bank account number. >The IBAN standard is defined in ISO-13616.  >Refer to [Required information](https://docs.adyen.com/marketplaces-and-platforms/classic/verification-process/required-information) for details on field requirements.")
    @JsonProperty(JSON_PROPERTY_IBAN)
    @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
    public String getIban() {
      return iban;
    }
  
    @JsonProperty(JSON_PROPERTY_IBAN)
    @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
    public void setIban(String iban) {
      this.iban = iban;
    }
  
    public BankAccountDetail ownerCity(String ownerCity) {
      this.ownerCity = ownerCity;
      return this;
    }
  
    /**
     * The city of residence of the bank account owner. &gt;Refer to [Required
     * information](https://docs.adyen.com/marketplaces-and-platforms/classic/verification-process/required-information)
     * for details on field requirements.
     *
     * @return ownerCity
     */
    @ApiModelProperty(
        value =
            "The city of residence of the bank account owner. >Refer to [Required information](https://docs.adyen.com/marketplaces-and-platforms/classic/verification-process/required-information) for details on field requirements.")
    @JsonProperty(JSON_PROPERTY_OWNER_CITY)
    @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
    public String getOwnerCity() {
      return ownerCity;
    }
  
    @JsonProperty(JSON_PROPERTY_OWNER_CITY)
    @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
    public void setOwnerCity(String ownerCity) {
      this.ownerCity = ownerCity;
    }
  
    public BankAccountDetail ownerCountryCode(String ownerCountryCode) {
      this.ownerCountryCode = ownerCountryCode;
      return this;
    }
  
    /**
     * The country code of the country of residence of the bank account owner. &gt;The permitted
     * country codes are defined in ISO-3166-1 alpha-2 (e.g. &#39;NL&#39;). &gt;Refer to [Required
     * information](https://docs.adyen.com/marketplaces-and-platforms/classic/verification-process/required-information)
     * for details on field requirements.
     *
     * @return ownerCountryCode
     */
    @ApiModelProperty(
        value =
            "The country code of the country of residence of the bank account owner. >The permitted country codes are defined in ISO-3166-1 alpha-2 (e.g. 'NL').  >Refer to [Required information](https://docs.adyen.com/marketplaces-and-platforms/classic/verification-process/required-information) for details on field requirements.")
    @JsonProperty(JSON_PROPERTY_OWNER_COUNTRY_CODE)
    @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
    public String getOwnerCountryCode() {
      return ownerCountryCode;
    }
  
    @JsonProperty(JSON_PROPERTY_OWNER_COUNTRY_CODE)
    @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
    public void setOwnerCountryCode(String ownerCountryCode) {
      this.ownerCountryCode = ownerCountryCode;
    }
  
    public BankAccountDetail ownerDateOfBirth(String ownerDateOfBirth) {
      this.ownerDateOfBirth = ownerDateOfBirth;
      return this;
    }
  
    /**
     * The date of birth of the bank account owner. The date should be in ISO-8601 format yyyy-mm-dd
     * (e.g. 2000-01-31).
     *
     * @return ownerDateOfBirth
     * @deprecated
     */
    @Deprecated
    @ApiModelProperty(
        value =
            "The date of birth of the bank account owner. The date should be in ISO-8601 format yyyy-mm-dd (e.g. 2000-01-31).")
    @JsonProperty(JSON_PROPERTY_OWNER_DATE_OF_BIRTH)
    @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
    public String getOwnerDateOfBirth() {
      return ownerDateOfBirth;
    }
  
    @Deprecated
    @JsonProperty(JSON_PROPERTY_OWNER_DATE_OF_BIRTH)
    @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
    public void setOwnerDateOfBirth(String ownerDateOfBirth) {
      this.ownerDateOfBirth = ownerDateOfBirth;
    }
  
    public BankAccountDetail ownerHouseNumberOrName(String ownerHouseNumberOrName) {
      this.ownerHouseNumberOrName = ownerHouseNumberOrName;
      return this;
    }
  
    /**
     * The house name or number of the residence of the bank account owner. &gt;Refer to [Required
     * information](https://docs.adyen.com/marketplaces-and-platforms/classic/verification-process/required-information)
     * for details on field requirements.
     *
     * @return ownerHouseNumberOrName
     */
    @ApiModelProperty(
        value =
            "The house name or number of the residence of the bank account owner. >Refer to [Required information](https://docs.adyen.com/marketplaces-and-platforms/classic/verification-process/required-information) for details on field requirements.")
    @JsonProperty(JSON_PROPERTY_OWNER_HOUSE_NUMBER_OR_NAME)
    @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
    public String getOwnerHouseNumberOrName() {
      return ownerHouseNumberOrName;
    }
  
    @JsonProperty(JSON_PROPERTY_OWNER_HOUSE_NUMBER_OR_NAME)
    @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
    public void setOwnerHouseNumberOrName(String ownerHouseNumberOrName) {
      this.ownerHouseNumberOrName = ownerHouseNumberOrName;
    }
  
    public BankAccountDetail ownerName(String ownerName) {
      this.ownerName = ownerName;
      return this;
    }
  
    /**
     * The name of the bank account owner. &gt;Refer to [Required
     * information](https://docs.adyen.com/marketplaces-and-platforms/classic/verification-process/required-information)
     * for details on field requirements.
     *
     * @return ownerName
     */
    @ApiModelProperty(
        value =
            "The name of the bank account owner. >Refer to [Required information](https://docs.adyen.com/marketplaces-and-platforms/classic/verification-process/required-information) for details on field requirements.")
    @JsonProperty(JSON_PROPERTY_OWNER_NAME)
    @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
    public String getOwnerName() {
      return ownerName;
    }
  
    @JsonProperty(JSON_PROPERTY_OWNER_NAME)
    @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
    public void setOwnerName(String ownerName) {
      this.ownerName = ownerName;
    }
  
    public BankAccountDetail ownerNationality(String ownerNationality) {
      this.ownerNationality = ownerNationality;
      return this;
    }
  
    /**
     * The country code of the country of nationality of the bank account owner. &gt;The permitted
     * country codes are defined in ISO-3166-1 alpha-2 (e.g. &#39;NL&#39;). &gt;Refer to [Required
     * information](https://docs.adyen.com/marketplaces-and-platforms/classic/verification-process/required-information)
     * for details on field requirements.
     *
     * @return ownerNationality
     */
    @ApiModelProperty(
        value =
            "The country code of the country of nationality of the bank account owner. >The permitted country codes are defined in ISO-3166-1 alpha-2 (e.g. 'NL').  >Refer to [Required information](https://docs.adyen.com/marketplaces-and-platforms/classic/verification-process/required-information) for details on field requirements.")
    @JsonProperty(JSON_PROPERTY_OWNER_NATIONALITY)
    @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
    public String getOwnerNationality() {
      return ownerNationality;
    }
  
    @JsonProperty(JSON_PROPERTY_OWNER_NATIONALITY)
    @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
    public void setOwnerNationality(String ownerNationality) {
      this.ownerNationality = ownerNationality;
    }
  
    public BankAccountDetail ownerPostalCode(String ownerPostalCode) {
      this.ownerPostalCode = ownerPostalCode;
      return this;
    }
  
    /**
     * The postal code of the residence of the bank account owner. &gt;Refer to [Required
     * information](https://docs.adyen.com/marketplaces-and-platforms/classic/verification-process/required-information)
     * for details on field requirements.
     *
     * @return ownerPostalCode
     */
    @ApiModelProperty(
        value =
            "The postal code of the residence of the bank account owner. >Refer to [Required information](https://docs.adyen.com/marketplaces-and-platforms/classic/verification-process/required-information) for details on field requirements.")
    @JsonProperty(JSON_PROPERTY_OWNER_POSTAL_CODE)
    @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
    public String getOwnerPostalCode() {
      return ownerPostalCode;
    }
  
    @JsonProperty(JSON_PROPERTY_OWNER_POSTAL_CODE)
    @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
    public void setOwnerPostalCode(String ownerPostalCode) {
      this.ownerPostalCode = ownerPostalCode;
    }
  
    public BankAccountDetail ownerState(String ownerState) {
      this.ownerState = ownerState;
      return this;
    }
  
    /**
     * The state of residence of the bank account owner. &gt;Refer to [Required
     * information](https://docs.adyen.com/marketplaces-and-platforms/classic/verification-process/required-information)
     * for details on field requirements.
     *
     * @return ownerState
     */
    @ApiModelProperty(
        value =
            "The state of residence of the bank account owner. >Refer to [Required information](https://docs.adyen.com/marketplaces-and-platforms/classic/verification-process/required-information) for details on field requirements.")
    @JsonProperty(JSON_PROPERTY_OWNER_STATE)
    @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
    public String getOwnerState() {
      return ownerState;
    }
  
    @JsonProperty(JSON_PROPERTY_OWNER_STATE)
    @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
    public void setOwnerState(String ownerState) {
      this.ownerState = ownerState;
    }
  
    public BankAccountDetail ownerStreet(String ownerStreet) {
      this.ownerStreet = ownerStreet;
      return this;
    }
  
    /**
     * The street name of the residence of the bank account owner. &gt;Refer to [Required
     * information](https://docs.adyen.com/marketplaces-and-platforms/classic/verification-process/required-information)
     * for details on field requirements.
     *
     * @return ownerStreet
     */
    @ApiModelProperty(
        value =
            "The street name of the residence of the bank account owner. >Refer to [Required information](https://docs.adyen.com/marketplaces-and-platforms/classic/verification-process/required-information) for details on field requirements.")
    @JsonProperty(JSON_PROPERTY_OWNER_STREET)
    @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
    public String getOwnerStreet() {
      return ownerStreet;
    }
  
    @JsonProperty(JSON_PROPERTY_OWNER_STREET)
    @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
    public void setOwnerStreet(String ownerStreet) {
      this.ownerStreet = ownerStreet;
    }
  
    public BankAccountDetail primaryAccount(Boolean primaryAccount) {
      this.primaryAccount = primaryAccount;
      return this;
    }
  
    /**
     * If set to true, the bank account is a primary account.
     *
     * @return primaryAccount
     */
    @ApiModelProperty(value = "If set to true, the bank account is a primary account.")
    @JsonProperty(JSON_PROPERTY_PRIMARY_ACCOUNT)
    @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
    public Boolean getPrimaryAccount() {
      return primaryAccount;
    }
  
    @JsonProperty(JSON_PROPERTY_PRIMARY_ACCOUNT)
    @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
    public void setPrimaryAccount(Boolean primaryAccount) {
      this.primaryAccount = primaryAccount;
    }
  
    public BankAccountDetail taxId(String taxId) {
      this.taxId = taxId;
      return this;
    }
  
    /**
     * The tax ID number. &gt;Refer to [Required
     * information](https://docs.adyen.com/marketplaces-and-platforms/classic/verification-process/required-information)
     * for details on field requirements.
     *
     * @return taxId
     */
    @ApiModelProperty(
        value =
            "The tax ID number.  >Refer to [Required information](https://docs.adyen.com/marketplaces-and-platforms/classic/verification-process/required-information) for details on field requirements.")
    @JsonProperty(JSON_PROPERTY_TAX_ID)
    @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
    public String getTaxId() {
      return taxId;
    }
  
    @JsonProperty(JSON_PROPERTY_TAX_ID)
    @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
    public void setTaxId(String taxId) {
      this.taxId = taxId;
    }
  
    public BankAccountDetail urlForVerification(String urlForVerification) {
      this.urlForVerification = urlForVerification;
      return this;
    }
  
    /**
     * The URL to be used for bank account verification. This may be generated on bank account
     * creation. &gt;Refer to [Required
     * information](https://docs.adyen.com/marketplaces-and-platforms/classic/verification-process/required-information)
     * for details on field requirements.
     *
     * @return urlForVerification
     */
    @ApiModelProperty(
        value =
            "The URL to be used for bank account verification. This may be generated on bank account creation.  >Refer to [Required information](https://docs.adyen.com/marketplaces-and-platforms/classic/verification-process/required-information) for details on field requirements.")
    @JsonProperty(JSON_PROPERTY_URL_FOR_VERIFICATION)
    @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
    public String getUrlForVerification() {
      return urlForVerification;
    }
  
    @JsonProperty(JSON_PROPERTY_URL_FOR_VERIFICATION)
    @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
    public void setUrlForVerification(String urlForVerification) {
      this.urlForVerification = urlForVerification;
    }
  
    /** Return true if this BankAccountDetail object is equal to o. */
    @Override
    public boolean equals(Object o) {
      if (this == o) {
        return true;
      }
      if (o == null || getClass() != o.getClass()) {
        return false;
      }
      BankAccountDetail bankAccountDetail = (BankAccountDetail) o;
      return Objects.equals(this.accountNumber, bankAccountDetail.accountNumber)
          && Objects.equals(this.accountType, bankAccountDetail.accountType)
          && Objects.equals(this.bankAccountName, bankAccountDetail.bankAccountName)
          && Objects.equals(this.bankAccountReference, bankAccountDetail.bankAccountReference)
          && Objects.equals(this.bankAccountUUID, bankAccountDetail.bankAccountUUID)
          && Objects.equals(this.bankBicSwift, bankAccountDetail.bankBicSwift)
          && Objects.equals(this.bankCity, bankAccountDetail.bankCity)
          && Objects.equals(this.bankCode, bankAccountDetail.bankCode)
          && Objects.equals(this.bankName, bankAccountDetail.bankName)
          && Objects.equals(this.branchCode, bankAccountDetail.branchCode)
          && Objects.equals(this.checkCode, bankAccountDetail.checkCode)
          && Objects.equals(this.countryCode, bankAccountDetail.countryCode)
          && Objects.equals(this.currencyCode, bankAccountDetail.currencyCode)
          && Objects.equals(this.iban, bankAccountDetail.iban)
          && Objects.equals(this.ownerCity, bankAccountDetail.ownerCity)
          && Objects.equals(this.ownerCountryCode, bankAccountDetail.ownerCountryCode)
          && Objects.equals(this.ownerDateOfBirth, bankAccountDetail.ownerDateOfBirth)
          && Objects.equals(this.ownerHouseNumberOrName, bankAccountDetail.ownerHouseNumberOrName)
          && Objects.equals(this.ownerName, bankAccountDetail.ownerName)
          && Objects.equals(this.ownerNationality, bankAccountDetail.ownerNationality)
          && Objects.equals(this.ownerPostalCode, bankAccountDetail.ownerPostalCode)
          && Objects.equals(this.ownerState, bankAccountDetail.ownerState)
          && Objects.equals(this.ownerStreet, bankAccountDetail.ownerStreet)
          && Objects.equals(this.primaryAccount, bankAccountDetail.primaryAccount)
          && Objects.equals(this.taxId, bankAccountDetail.taxId)
          && Objects.equals(this.urlForVerification, bankAccountDetail.urlForVerification);
    }
  
    @Override
    public int hashCode() {
      return Objects.hash(
          accountNumber,
          accountType,
          bankAccountName,
          bankAccountReference,
          bankAccountUUID,
          bankBicSwift,
          bankCity,
          bankCode,
          bankName,
          branchCode,
          checkCode,
          countryCode,
          currencyCode,
          iban,
          ownerCity,
          ownerCountryCode,
          ownerDateOfBirth,
          ownerHouseNumberOrName,
          ownerName,
          ownerNationality,
          ownerPostalCode,
          ownerState,
          ownerStreet,
          primaryAccount,
          taxId,
          urlForVerification);
    }
  
    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder();
      sb.append("class BankAccountDetail {\n");
      sb.append("    accountNumber: ").append(toIndentedString(accountNumber)).append("\n");
      sb.append("    accountType: ").append(toIndentedString(accountType)).append("\n");
      sb.append("    bankAccountName: ").append(toIndentedString(bankAccountName)).append("\n");
      sb.append("    bankAccountReference: ")
          .append(toIndentedString(bankAccountReference))
          .append("\n");
      sb.append("    bankAccountUUID: ").append(toIndentedString(bankAccountUUID)).append("\n");
      sb.append("    bankBicSwift: ").append(toIndentedString(bankBicSwift)).append("\n");
      sb.append("    bankCity: ").append(toIndentedString(bankCity)).append("\n");
      sb.append("    bankCode: ").append(toIndentedString(bankCode)).append("\n");
      sb.append("    bankName: ").append(toIndentedString(bankName)).append("\n");
      sb.append("    branchCode: ").append(toIndentedString(branchCode)).append("\n");
      sb.append("    checkCode: ").append(toIndentedString(checkCode)).append("\n");
      sb.append("    countryCode: ").append(toIndentedString(countryCode)).append("\n");
      sb.append("    currencyCode: ").append(toIndentedString(currencyCode)).append("\n");
      sb.append("    iban: ").append(toIndentedString(iban)).append("\n");
      sb.append("    ownerCity: ").append(toIndentedString(ownerCity)).append("\n");
      sb.append("    ownerCountryCode: ").append(toIndentedString(ownerCountryCode)).append("\n");
      sb.append("    ownerDateOfBirth: ").append(toIndentedString(ownerDateOfBirth)).append("\n");
      sb.append("    ownerHouseNumberOrName: ")
          .append(toIndentedString(ownerHouseNumberOrName))
          .append("\n");
      sb.append("    ownerName: ").append(toIndentedString(ownerName)).append("\n");
      sb.append("    ownerNationality: ").append(toIndentedString(ownerNationality)).append("\n");
      sb.append("    ownerPostalCode: ").append(toIndentedString(ownerPostalCode)).append("\n");
      sb.append("    ownerState: ").append(toIndentedString(ownerState)).append("\n");
      sb.append("    ownerStreet: ").append(toIndentedString(ownerStreet)).append("\n");
      sb.append("    primaryAccount: ").append(toIndentedString(primaryAccount)).append("\n");
      sb.append("    taxId: ").append(toIndentedString(taxId)).append("\n");
      sb.append("    urlForVerification: ").append(toIndentedString(urlForVerification)).append("\n");
      sb.append("}");
      return sb.toString();
    }
  
    /**
     * Convert the given object to string with each line indented by 4 spaces (except the first line).
     */
    private String toIndentedString(Object o) {
      if (o == null) {
        return "null";
      }
      return o.toString().replace("\n", "\n    ");
    }
  
    /**
     * Create an instance of BankAccountDetail given an JSON string
     *
     * @param jsonString JSON string
     * @return An instance of BankAccountDetail
     * @throws JsonProcessingException if the JSON string is invalid with respect to BankAccountDetail
     */
    public static BankAccountDetail fromJson(String jsonString) throws JsonProcessingException {
      return JSON.getMapper().readValue(jsonString, BankAccountDetail.class);
    }
  
    /**
     * Convert an instance of BankAccountDetail to an JSON string
     *
     * @return JSON string
     */
    public String toJson() throws JsonProcessingException {
      return JSON.getMapper().writeValueAsString(this);
    }
  }
  