public static function update(
        string $firstName = null,
        string $middleName = null,
        string $lastName = null,
        string $publicNickName = null,
        Address $addressMain = null,
        Address $addressPostal = null,
        string $avatarUuid = null,
        array $taxResident = null,
        string $documentType = null,
        string $documentNumber = null,
        string $documentCountryOfIssuance = null,
        int $documentFrontAttachmentId = null,
        int $documentBackAttachmentId = null,
        string $dateOfBirth = null,
        string $placeOfBirth = null,
        string $countryOfBirth = null,
        string $nationality = null,
        string $language = null,
        string $region = null,
        string $gender = null,
        string $status = null,
        string $subStatus = null,
        Pointer $legalGuardianAlias = null,
        int $sessionTimeout = null,
        array $cardIds = null,
        array $cardLimits = null,
        Amount $dailyLimitWithoutConfirmationLogin = null,
        array $notificationFilters = null,
        string $displayName = null,
        array $customHeaders = []
    ): BunqResponseInt {
        $apiClient = new ApiClient(static::getApiContext());
        $responseRaw = $apiClient->put(
            vsprintf(
                self::ENDPOINT_URL_UPDATE,
                [static::determineUserId()]
            ),
            [
                self::FIELD_FIRST_NAME => $firstName,
                self::FIELD_MIDDLE_NAME => $middleName,
                self::FIELD_LAST_NAME => $lastName,
                self::FIELD_PUBLIC_NICK_NAME => $publicNickName,
                self::FIELD_ADDRESS_MAIN => $addressMain,
                self::FIELD_ADDRESS_POSTAL => $addressPostal,
                self::FIELD_AVATAR_UUID => $avatarUuid,
                self::FIELD_TAX_RESIDENT => $taxResident,
                self::FIELD_DOCUMENT_TYPE => $documentType,
                self::FIELD_DOCUMENT_NUMBER => $documentNumber,
                self::FIELD_DOCUMENT_COUNTRY_OF_ISSUANCE => $documentCountryOfIssuance,
                self::FIELD_DOCUMENT_FRONT_ATTACHMENT_ID => $documentFrontAttachmentId,
                self::FIELD_DOCUMENT_BACK_ATTACHMENT_ID => $documentBackAttachmentId,
                self::FIELD_DATE_OF_BIRTH => $dateOfBirth,
                self::FIELD_PLACE_OF_BIRTH => $placeOfBirth,
                self::FIELD_COUNTRY_OF_BIRTH => $countryOfBirth,
                self::FIELD_NATIONALITY => $nationality,
                self::FIELD_LANGUAGE => $language,
                self::FIELD_REGION => $region,
                self::FIELD_GENDER => $gender,
                self::FIELD_STATUS => $status,
                self::FIELD_SUB_STATUS => $subStatus,
                self::FIELD_LEGAL_GUARDIAN_ALIAS => $legalGuardianAlias,
                self::FIELD_SESSION_TIMEOUT => $sessionTimeout,
                self::FIELD_CARD_IDS => $cardIds,
                self::FIELD_CARD_LIMITS => $cardLimits,
                self::FIELD_DAILY_LIMIT_WITHOUT_CONFIRMATION_LOGIN => $dailyLimitWithoutConfirmationLogin,
                self::FIELD_NOTIFICATION_FILTERS => $notificationFilters,
                self::FIELD_DISPLAY_NAME => $displayName,
            ],
            $customHeaders
        );

        return BunqResponseInt::castFromBunqResponse(
            static::processForId($responseRaw)
        );
    }
public static function update(
        string $firstName = null,
        string $middleName = null,
        string $lastName = null,
        string $publicNickName = null,
        Address $addressMain = null,
        Address $addressPostal = null,
        string $avatarUuid = null,
        array $taxResident = null,
        string $documentType = null,
        string $documentNumber = null,
        string $documentCountryOfIssuance = null,
        int $documentFrontAttachmentId = null,
        int $documentBackAttachmentId = null,
        string $dateOfBirth = null,
        string $placeOfBirth = null,
        string $countryOfBirth = null,
        string $nationality = null,
        string $language = null,
        string $region = null,
        string $gender = null,
        string $status = null,
        string $subStatus = null,
        Pointer $legalGuardianAlias = null,
        int $sessionTimeout = null,
        array $cardIds = null,
        array $cardLimits = null,
        Amount $dailyLimitWithoutConfirmationLogin = null,
        array $notificationFilters = null,
        string $displayName = null,
        array $customHeaders = []
    ): BunqResponseInt {
        $apiClient = new ApiClient(static::getApiContext());
        $responseRaw = $apiClient->put(
            vsprintf(
                self::ENDPOINT_URL_UPDATE,
                [static::determineUserId()]
            ),
            [
                self::FIELD_FIRST_NAME => $firstName,
                self::FIELD_MIDDLE_NAME => $middleName,
                self::FIELD_LAST_NAME => $lastName,
                self::FIELD_PUBLIC_NICK_NAME => $publicNickName,
                self::FIELD_ADDRESS_MAIN => $addressMain,
                self::FIELD_ADDRESS_POSTAL => $addressPostal,
                self::FIELD_AVATAR_UUID => $avatarUuid,
                self::FIELD_TAX_RESIDENT => $taxResident,
                self::FIELD_DOCUMENT_TYPE => $documentType,
                self::FIELD_DOCUMENT_NUMBER => $documentNumber,
                self::FIELD_DOCUMENT_COUNTRY_OF_ISSUANCE => $documentCountryOfIssuance,
                self::FIELD_DOCUMENT_FRONT_ATTACHMENT_ID => $documentFrontAttachmentId,
                self::FIELD_DOCUMENT_BACK_ATTACHMENT_ID => $documentBackAttachmentId,
                self::FIELD_DATE_OF_BIRTH => $dateOfBirth,
                self::FIELD_PLACE_OF_BIRTH => $placeOfBirth,
                self::FIELD_COUNTRY_OF_BIRTH => $countryOfBirth,
                self::FIELD_NATIONALITY => $nationality,
                self::FIELD_LANGUAGE => $language,
                self::FIELD_REGION => $region,
                self::FIELD_GENDER => $gender,
                self::FIELD_STATUS => $status,
                self::FIELD_SUB_STATUS => $subStatus,
                self::FIELD_LEGAL_GUARDIAN_ALIAS => $legalGuardianAlias,
                self::FIELD_SESSION_TIMEOUT => $sessionTimeout,
                self::FIELD_CARD_IDS => $cardIds,
                self::FIELD_CARD_LIMITS => $cardLimits,
                self::FIELD_DAILY_LIMIT_WITHOUT_CONFIRMATION_LOGIN => $dailyLimitWithoutConfirmationLogin,
                self::FIELD_NOTIFICATION_FILTERS => $notificationFilters,
                self::FIELD_DISPLAY_NAME => $displayName,
            ],
            $customHeaders
        );

        return BunqResponseInt::castFromBunqResponse(
            static::processForId($responseRaw)
        );
    }
public static function update ( string $ firstName = null , string $ middleName = null , string $ lastName = null , string $ publicNickName = null , Address $ addressMain = null , Address $ addressPostal = null , string $ avatarUuid = null , array $ taxResident = null , string $ documentType = null , string $ documentNumber = null , string $ documentCountryOfIssuance = null , int $ documentFrontAttachmentId = null , int $ documentBackAttachmentId = null , string $ dateOfBirth = null , string $ placeOfBirth = null , string $ countryOfBirth = null , string $ nationality = null , string $ language = null , string $ region = null , string $ gender = null , string $ status = null , string $ subStatus = null , Pointer $ legalGuardianAlias = null , int $ sessionTimeout = null , array $ cardIds = null , array $ cardLimits = null , Amount $ dailyLimitWithoutConfirmationLogin = null , array $ notificationFilters = null , string $ displayName = null , array $ customHeaders = [ ] ) : BunqResponseInt { $ apiClient = new ApiClient ( static :: getApiContext ( ) ) ; $ responseRaw = $ apiClient -> put ( vsprintf ( self :: ENDPOINT_URL_UPDATE , [ static :: determineUserId ( ) ] ) , [ self :: FIELD_FIRST_NAME => $ firstName , self :: FIELD_MIDDLE_NAME => $ middleName , self :: FIELD_LAST_NAME => $ lastName , self :: FIELD_PUBLIC_NICK_NAME => $ publicNickName , self :: FIELD_ADDRESS_MAIN => $ addressMain , self :: FIELD_ADDRESS_POSTAL => $ addressPostal , self :: FIELD_AVATAR_UUID => $ avatarUuid , self :: FIELD_TAX_RESIDENT => $ taxResident , self :: FIELD_DOCUMENT_TYPE => $ documentType , self :: FIELD_DOCUMENT_NUMBER => $ documentNumber , self :: FIELD_DOCUMENT_COUNTRY_OF_ISSUANCE => $ documentCountryOfIssuance , self :: FIELD_DOCUMENT_FRONT_ATTACHMENT_ID => $ documentFrontAttachmentId , self :: FIELD_DOCUMENT_BACK_ATTACHMENT_ID => $ documentBackAttachmentId , self :: FIELD_DATE_OF_BIRTH => $ dateOfBirth , self :: FIELD_PLACE_OF_BIRTH => $ placeOfBirth , self :: FIELD_COUNTRY_OF_BIRTH => $ countryOfBirth , self :: FIELD_NATIONALITY => $ nationality , self :: FIELD_LANGUAGE => $ language , self :: FIELD_REGION => $ region , self :: FIELD_GENDER => $ gender , self :: FIELD_STATUS => $ status , self :: FIELD_SUB_STATUS => $ subStatus , self :: FIELD_LEGAL_GUARDIAN_ALIAS => $ legalGuardianAlias , self :: FIELD_SESSION_TIMEOUT => $ sessionTimeout , self :: FIELD_CARD_IDS => $ cardIds , self :: FIELD_CARD_LIMITS => $ cardLimits , self :: FIELD_DAILY_LIMIT_WITHOUT_CONFIRMATION_LOGIN => $ dailyLimitWithoutConfirmationLogin , self :: FIELD_NOTIFICATION_FILTERS => $ notificationFilters , self :: FIELD_DISPLAY_NAME => $ displayName , ] , $ customHeaders ) ; return BunqResponseInt :: castFromBunqResponse ( static :: processForId ( $ responseRaw ) ) ; }
Modify a specific person object's data.

@param int $userPersonId
@param string|null $firstName                          The person's first name.
@param string|null $middleName                         The person's middle name.
@param string|null $lastName                           The person's last name.
@param string|null $publicNickName                     The person's public nick name.
@param Address|null $addressMain                       The user's main address.
@param Address|null $addressPostal                     The person's postal address.
@param string|null $avatarUuid                         The public UUID of the user's avatar.
@param TaxResident[]|null $taxResident                 The user's tax residence numbers
for different countries.
@param string|null $documentType                       The type of identification document the
person registered with.
@param string|null $documentNumber                     The identification document number the
person registered with.
@param string|null $documentCountryOfIssuance          The country which issued
the identification document the person registered with.
@param int|null $documentFrontAttachmentId             The reference to the uploaded
picture/scan of the front side of the identification
document.
@param int|null $documentBackAttachmentId              The reference to the uploaded
picture/scan of the back side of the identification
document.
@param string|null $dateOfBirth                        The person's date of birth. Accepts
ISO8601 date formats.
@param string|null $placeOfBirth                       The person's place of birth.
@param string|null $countryOfBirth                     The person's country of birth.
Formatted as a SO 3166-1 alpha-2 country code.
@param string|null $nationality                        The person's nationality. Formatted as a
SO 3166-1 alpha-2 country code.
@param string|null $language                           The person's preferred language. Formatted
as a ISO 639-1 language code plus a ISO 3166-1 alpha-2
country code, seperated by an underscore.
@param string|null $region                             The person's preferred region. Formatted as a
ISO 639-1 language code plus a ISO 3166-1 alpha-2 country
code, seperated by an underscore.
@param string|null $gender                             The person's gender. Can be: MALE, FEMALE and
UNKNOWN.
@param string|null $status                             The user status. You are not allowed to update
the status via PUT.
@param string|null $subStatus                          The user sub-status. Can be updated to
SUBMIT if status is RECOVERY.
@param Pointer|null $legalGuardianAlias                The legal guardian of the user.
Required for minors.
@param int|null $sessionTimeout                        The setting for the session timeout of
the user in seconds.
@param BunqId[]|null $cardIds                          Card ids used for centralized card limits.
@param CardLimit[]|null $cardLimits                    The centralized limits for user's
cards.
@param Amount|null $dailyLimitWithoutConfirmationLogin The amount the
user can pay in the session without asking for
credentials.
@param NotificationFilter[]|null $notificationFilters  The types of
notifications that will result in a push notification or
URL callback for this UserPerson.
@param string|null $displayName                        The person's legal name. Available legal
names can be listed via the 'user/{user_id}/legal-name'
endpoint.
@param string[] $customHeaders

@return BunqResponseInt
Modify a specific person object s data .