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 |
|---|---|---|
|
|
The supplier key. Passed to every supplier-scoped API call. |
|
|
The onboarding path. Gates early product access. |
|
|
Contact email. |
|
|
Contact date of birth. |
|
|
Session token (both set to the same value). |
|
|
Legacy; always empty. |
|
|
Calculated permission set. |
|
|
Seller Card explicitly enabled by Payability. |
|
|
Instant Transfer (push-to-card) available. |
|
|
Payout rails available to the supplier. |
|
|
Masked account number of the linked bank account. |
|
|
Name, DOB, phone, email, tax id, residential address. |
|
|
Legal name, business type, incorporation state, EIN, business address. |
|
|
The supplier state object — see below. |
|
|
|
|
|
|
|
|
Selects the onboarding template, e.g. |
|
|
The supplier is mid-migration between Amazon API connection methods. |
|
|
Server-side gate on requesting an instant transfer, independent of the permission. |
|
Deprecated flat fields
|
Status
src/app/core/auth/_models/status.model.ts, built by Status.fromDto(SupplierStatusDto).
Lifecycle
| Field | Type | Meaning |
|---|---|---|
|
|
|
|
|
When enrolment began. |
|
|
Why the account is suspended. |
|
|
The account has been written off. |
Completeness flags
|
|
The supplier agreement is signed. Drives the re-sign flow. |
|
|
General information supplied. |
|
|
Business data complete. (Spelling is as in the API.) |
|
|
Seller data complete. |
|
|
At least one marketplace is connected. |
|
|
Individual contract signatures. |
Payments
|
|
Payment configuration submitted. Grants |
|
|
Payment configuration status. |
|
|
Autodebit configuration used by advance repayment. |
|
|
At least one payment processed. Gates |
|
|
Next scheduled payment date. |
|
|
Automatic transfers are on. |
|
|
Floor retained when auto-transferring. |
|
|
Vendor Pay enabled. Grants |
|
|
Restricted to fee-free transfers. |
|
|
Instant Access product state. |
Advance products
|
|
Status, UW status, |
|
|
The active Instant Advance, or |
|
|
Ever had an Instant Advance. Grants the advance reports. |
|
|
Receivable purchase activity. |
|
|
Supplier advance status and liability. |
|
|
Funding participation status. |
|
|
Whether an APR contract must be signed. Backs |
|
|
Pro-rata MVP cohort. |
|
|
Flex product enabled. |
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 |
Product matrix
| Product | Availability signal | Documented in |
|---|---|---|
Advance Line |
|
|
Instant Advance |
|
|
Long Term Contract |
|
|
Instant Transfer |
|
|
Seller Card |
|
|
Vendor Pay |
|
Marketplace entities
|
A marketplace, keyed by |
|
A supplier’s connection to a marketplace, including connection health. |
|
One onboarding/compliance requirement, keyed by |
|
Country reference data, keyed by |
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.