Domain Model

Almost every conditional in the application reads from one object: the User, and specifically User.status. This page is the field reference for that object.

User

src/app/core/auth/_models/user.model.ts

Field Type Meaning

id

string

The supplier key. Passed to every supplier-scoped API call.

schema

OnboardingSchemaEnum

The onboarding path. Gates early product access.

email

string

Contact email.

dateOfBirth

string

Contact date of birth.

accessToken / refreshToken

string

Session token (both set to the same value).

roles

number[]

Legacy; always empty.

permissions

PermissionsEnum[]

Calculated permission set.

pcardAvailable

boolean

Seller Card explicitly enabled by Payability.

ppmAvailable

boolean

Instant Transfer (push-to-card) available.

achAvailable / wirAvailable / efsAvailable

boolean

Payout rails available to the supplier.

plaidAccountMask

string

Masked account number of the linked bank account.

_personalInformation

PersonalInformation

Name, DOB, phone, email, tax id, residential address.

_businessInformation

BusinessInformation

Legal name, business type, incorporation state, EIN, business address.

status

Status

The supplier state object — see below.

dashboardStatus

SupplierDashboardStatus

{ status, enableRejectedNotification }.

cancelationStatus

CancelationStatus

canceled | pending | null.

onboardingTemplateCode

string | OnboardingTemplateCode

Selects the onboarding template, e.g. free_access_3.0.

amazonApiSwitching

boolean

The supplier is mid-migration between Amazon API connection methods.

canRequestInstantTransfer

boolean

Server-side gate on requesting an instant transfer, independent of the permission.

Deprecated flat fields

firstName, lastName, fullname, occupation, companyName, phone and address are marked @Deprecated on the model. They duplicate values now owned by _personalInformation and _businessInformation. Read the nested objects.

Status

src/app/core/auth/_models/status.model.ts, built by Status.fromDto(SupplierStatusDto).

Lifecycle

Field Type Meaning

supplierStatus

SupplierStatusType

Active | Pending | PendingActivation | Suspended.

enrollmentStart

string

When enrolment began.

suspensionReason

SuspensionReason

Why the account is suspended.

writeoff

boolean

The account has been written off.

Completeness flags

legalSigned

boolean

The supplier agreement is signed. Drives the re-sign flow.

generalInfoUpdated

boolean

General information supplied.

buisnessDataCompleted

boolean

Business data complete. (Spelling is as in the API.)

sellerDataCompleted

boolean

Seller data complete.

hasMarketplaces

boolean

At least one marketplace is connected.

addendumSigned / achSigned / instantAdvanceSigned

boolean

Individual contract signatures.

Payments

pmtCfgProvided

boolean

Payment configuration submitted. Grants TRANSFER_INFORMATION while pending.

pmtCfgStatus

string

Payment configuration status.

autodebitPmtCfg

AutodebitPaymentConfigInterface

Autodebit configuration used by advance repayment.

hasPaymentHistory

boolean

At least one payment processed. Gates REPORTS, DAILY_SUMMARY and SELLER_CARD.

nextPayment

string

Next scheduled payment date.

hasAutoTransferEnabled

boolean

Automatic transfers are on.

autoTransferMinimumBalanceToStay

number

Floor retained when auto-transferring.

hasForwardPaymentEnabled

boolean

Vendor Pay enabled. Grants VENDOR_PAY.

freeFundsTransferOnly

boolean

Restricted to fee-free transfers.

instantAccess / instantAccessActivated

boolean

Instant Access product state.

Advance products

advanceLine

AdvanceLineStatusDto

Status, UW status, currentAmount, outstandingAmount, expirationDate, type.

activeInstantAdvance

InstantAdvanceReport

The active Instant Advance, or null.

hasInstantAdvHistory

boolean

Ever had an Instant Advance. Grants the advance reports.

hasReceivablePurchase

boolean

Receivable purchase activity.

supAdvStatus / supAdvLiability

string

Supplier advance status and liability.

fundPartStatus

string

Funding participation status.

signAPRAdvanceContract

SignAdvanceContractEnum

Whether an APR contract must be signed. Backs UserService.isAprUserContract().

isProRataMVP

boolean

Pro-rata MVP cohort.

hasFlexEnabled

boolean

Flex product enabled.

Long Term Contract

hasLTCHistory

boolean

Ever signed an LTC. Grants LCT_HISTORY.

hasActiveLTC

boolean

An LTC is currently active.

renewLTCSigned

boolean

A renewal has been signed.

LTCGenericContract

LongTermContractGenericContractInterface

The generic contract descriptor.

Other

isFreeAccess

boolean

Free-access cohort (free_access_3.0 template).

efsAccount

boolean

EFS account exists.

ascApiStatus

string

Amazon Seller Central API connection status.

calendly

string

Scheduling link for a sales or support call.

showReturnLink

boolean

Show the return-to-partner link.

Status enums

// @payability/pyb-ng2-api
enum SupplierStatusType { Active, Pending, PendingActivation, Suspended }

// core/auth/_models/status.model.ts
export enum SupplierDashboardStatusType {
    Onboarding        = 'onboarding',
    Welcome           = 'welcome',
    InactiveDashboard = 'inactive_dashboard',
    Active            = 'active',
}

export enum CancelationStatus {
    Canceled = 'canceled',
    Pending  = 'pending',
}

There are two dashboard-status types. The local SupplierDashboardStatusType above drives permission calculation via isUserDuringOnboarding(). The API also returns SupplierDashboardStatusTypeV2 (Active, Suspended, …), stored as dashboardStatusV2 on the auth slice and read by GlobalSubscriptionsService.

Product matrix

Product Availability signal Documented in

Advance Line

status.advanceLine with type !== Legacy

Advance Line

Instant Advance

status.activeInstantAdvance / hasInstantAdvHistory

Instant Advance

Long Term Contract

hasActiveLTC / hasLTCHistory

Long Term Contract

Instant Transfer

user.ppmAvailable + canRequestInstantTransfer

Instant Transfer

Seller Card

pcardAvailable or US addresses, plus payment history

Seller Card

Vendor Pay

hasForwardPaymentEnabled

Vendor Pay

Marketplace entities

MarketplaceModel

A marketplace, keyed by marketplaceKey. Used for both the global catalog and the supplier’s own connections.

SupplierMarketplaceModel

A supplier’s connection to a marketplace, including connection health.

PayabilityComplianceModel

One onboarding/compliance requirement, keyed by complianceKey.

CountryModel

Country reference data, keyed by countryCode.

Reading the model safely

Status fields are optional and frequently null before the status call resolves. Production code uses optional chaining throughout:

const hasValidActiveAdvance =
    status.activeInstantAdvance &&
    (!status.advanceLine || status.advanceLine?.type === AdvanceLineModeEnum.Legacy);

statusLoading on the auth slice indicates a status refresh is in flight; guards and widgets that must not render against stale data wait for it to settle.