Feature Slices
All feature slices live under src/app/core/pyb/features/ and are wired up by
FeaturesModule. Entity-backed collections are documented separately in
Entity Slices.
balance
Key |
|
Module |
|
Purpose |
The supplier’s currently available balance. |
Actions |
|
loadBalance() is dispatched from AuthEffects.loadUser$ at session start and
again after any operation that moves money — advance withdrawals, instant
transfers, card funding.
paymentMethods
Key |
|
Module |
|
Purpose |
Configured payout methods, including prepaid cards, plus the Seller Card request/activate lifecycle. |
Actions:
| Group | Actions |
|---|---|
Load |
|
Trial days |
|
Mutate |
|
UI |
|
Seller Card |
|
Key selectors: selectIsPaymentMethodsLoaded, selectPaymentsMethodLoading,
selectPcardsPaymentMethods — all three are read by SellerCardListGuard.
|
The Marqeta Seller Card lives in this slice because it is modelled as a payment
method. Airwallex cards are a separate slice ( |
personalInformation
Key |
|
Module |
|
Purpose |
Name, date of birth, phone, email, tax id, residential address. |
Actions |
|
businessInformation
Key |
|
Module |
|
Purpose |
Legal name, business type, incorporation state, owner SSN, EIN, established date, business address. |
Actions |
|
Both information slices feed the Seller Card US-residency check — see Permissions System.
plaid
Key |
|
Module |
|
Purpose |
Plaid Link session and token exchange. |
Actions |
|
savePlaidTokenRefresh handles the re-authentication path when an existing item
loses its connection. See Plaid.
2fa
Key |
|
Module |
|
Purpose |
Authy enrolment and SMS challenge state. |
Fully documented in Two-Factor Authentication.
advanceLine and advanceLineOffers
AdvanceLineFeatureModule registers two slices.
Key |
|
Purpose |
Advance Line summary — current amount, outstanding amount, expiration, status. |
Actions |
|
Key |
|
Purpose |
Available draw offers and their terms. |
Actions |
|
advanceLineWithdrawSuccess is dispatched by DocusignVerificationService after
a confirmed withdrawal, alongside loadBalance, loadSummary,
fetchSupplierMarketplaces and userStatusUpdateRequested. See
Advance Line.
instantAdvance
Key |
|
Module |
|
Purpose |
Instant Advance product data. |
Actions |
|
The slice implements a small cache: loadInstantAdvance decides between
loadCacheInstantAdvance (serve what is already in the store) and
loadHttpInstantAdvance (fetch). resetCacheInstantAdvance invalidates it after
a mutation.
instantAdvanceRepayment
Key |
|
Module |
|
Purpose |
Repayment schedule and history for the active Instant Advance. |
Actions |
|
fees
Key |
|
Module |
|
Purpose |
The fee schedule used by fee displays and the fee report. |
Actions |
|
fetchFees() is dispatched once from GlobalSubscriptionsService.init().
FeesScheduleHelperService derives display values from the slice.
dashboardNotifications
Key |
|
Module |
|
Purpose |
Server-driven notifications rendered as CTA cards or auto-opened modals. |
Actions:
| Group | Actions |
|---|---|
Load |
|
Visibility |
|
Decline |
|
Accept |
|
Other |
|
Accept and decline payloads accept a silent flag that suppresses the
success modal — used when several notifications are resolved by one dialog.
See Dashboard Notifications & CTAs.
blog
Key |
|
Module |
|
Purpose |
CMS blog posts for the Blog page. |
Actions |
|
trackBlogNavigate exists purely to emit
BlogEvents.CustomerBlogPostNavigate through EventLoggerService.
productSummary
Key |
|
Module |
|
Purpose |
The product offerings summary shown on the dashboard and the Product Offerings page. |
Actions |
|
Refetched by DocusignVerificationService.refreshData() after a contract is
signed in Dashboard mode.
airwallexCards
Key |
|
Module |
|
Purpose |
The supplier’s Airwallex-issued cards. |
Actions |
|
Selectors |
|
cardOrder
Key |
|
Module |
|
Purpose |
The card-ordering wizard behind |
Actions |
|
loadCardProviders resolves which issuer (CardProvider.Marqeta or
CardProvider.Airwallex) and which form factor (CardFormFactor.Physical or
Virtual) the supplier is eligible for.
page-load-time-tracker (no store slice)
PageLoadTimeTrackerModule.forRoot(['/dashboard']) registers services rather
than a reducer:
|
Measures navigation-to-render duration for allow-listed routes. |
|
Emits completed measurements. |
|
Bridges the notifier to |
See Observability. == State type index
Slices are registered by key but read through their exported state interface.
The two names rarely match, and only some slices export a distinctly named
interface — the rest export a bare State that callers alias on import
(import * as fromPlaid from './plaid.reducer' then fromPlaid.State).
Use this table when you have one name and need the other.
| Directory | Store key | Exported state type |
|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Entity collections (Entity Slices):
| Directory | Store key | Exported state type |
|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Three naming inconsistencies to be aware of:
New slices should export a named interface ( |