Manage Account

/manage-account — ManageAccountModule, rendered inside ManageAccountComponent with a tab bar.

2FA enforcement

The parent route applies:

const force2FAConfirmationGuard = {
    canActivate: [TwoFactorAuthenticationGuard],
    data: { force2FAConfirmation: true },
};

force2FAConfirmation: true means the supplier is re-challenged every time they enter account settings, even if they already passed a challenge earlier in the session. Passing ?skipTwoFactorCheck=… bypasses it — that escape hatch exists for internal flows and is worth knowing when a bug report says "it did not ask me for a code".

Tabs

Route strings and labels come from manage-account.config.ts:

export const manageAccountRoutes: RoutesConfig = {
    yourInformation: {
        route: 'your-information',
        label: 'SETTINGS.MANAGE_ACCOUNT.YOUR_INFORMATION.TAB_NAME',
        children: {
            uploadId: { route: 'upload-id', label: 'SETTINGS.MANAGE_ACCOUNT.YOUR_INFORMATION.UPLOAD_ID_WIDGET.NAME' },
        },
    },
    businessInformation: { route: 'business-information', label: 'SETTINGS.MANAGE_ACCOUNT.BUSINESS_INFORMATION.TAB_NAME' },
    transferInformation: { route: 'transfer-information', label: 'SETTINGS.MANAGE_ACCOUNT.TRANSFER_INFORMATION.TAB_NAME' },
    security: {
        route: 'security',
        label: 'SETTINGS.MANAGE_ACCOUNT.SECURITY.TAB_NAME',
        children: {
            changePassword: { route: 'change-password', label: 'SETTINGS.MANAGE_ACCOUNT.SECURITY.CHANGE_PASSWORD.NAME' },
            twoFactor:      { route: 'two-factor',      label: 'SETTINGS.MANAGE_ACCOUNT.SECURITY.TWO_FACTOR' },
        },
    },
} as const;
Path Module Contents

` (empty) → `your-information

YourInformationModule

Default tab.

your-information

YourInformationModule

your-personal-information-widget, your-address-widget.

your-information/upload-id

UploadIdModule

Government ID upload for KYC.

business-information

BusinessInformationModule

Legal entity details.

transfer-information

TransferInformationModule (reused from pages/settings/)

Payout configuration.

security

SecurityModule

Password and 2FA hub.

security/change-password

ChangePasswordModule

Password change.

security/two-factor

TwoFactorModule

2FA enrolment.

two-factor/confirm/:emailcode

ManageAccountComponent (sibling route)

Email confirmation landing.

TransferInformationModule is shared with the pages/settings/ tree, which is why it is imported from outside the manage-account folder.

Your Information

Backed by the personalInformation slice (updatePersonalInformation → updatedPersonalInformation).

your-personal-information-widget

Name, date of birth, phone, email, tax id.

your-address-widget

Residential address, built on the shared simple-address-form template.

The residential address is one half of the Seller Card US-residency test — see Seller Card.

Upload ID

UploadIdModule with its own UploadIdService. Uses components/image-upload/ and components/image-preview/, with FileHelperService handling base64 conversion and type/size validation.

Identity re-verification (as opposed to first-time upload) goes through Entrust — see Entrust Identity.

Business Information

Backed by the businessInformation slice. Collects legal name, business type code, incorporation state, incorporatedInTheUS, owner SSN, EIN (taxId), established date and the business address.

The business address is the other half of the Seller Card US-residency test, and the address shown in Instant Transfer AVS failure dialogs.

Transfer Information

Payout configuration, backed by the paymentMethods slice. Covers bank accounts (via Plaid), wire details and the Instant Transfer card. Requires the TRANSFER_INFORMATION permission, which pending suppliers only receive once pmtCfgProvided is set.

Related modals: modals/transfer-information/, modals/switch-cd-dialog/, modals/bank-verification-info-modal/, modals/lost-bank-connection-modal/.

Security

security/

Hub page listing password-widget and two-factor-widget.

change-password/

Password change form.

two-factor/

2FA enrolment via two-factor-setup-widget.

Password rules are enforced with validators from core/pyb/validators/. A 400 from /execute_password_change shows the server’s message rather than the generic error toast — see HTTP Interceptors.

Cancellation workflow

manage-account/cancellation-workflow/ renders the deactivate or reactivate action, driven by CancellationWorkflowService and CancellationWorkflowOptionAvailableEnum. Full detail: Cancellation & Reactivation.

Documentation

manage-account/documentation/ lists documents Payability holds and any outstanding requirements, backed by DoctypeComplianceEnum.Documentation and the additional-documents-widget.

Services

ManageAccountService

Feature-scoped, provided by ManageAccountModule. Tab state and shared page behaviour.

UploadIdService

ID upload.

CancellationWorkflowService

Root-provided; deactivation and reactivation.

FormHelpersService

Shared reactive-form helpers.

FileHelperService

File reading and validation.