Other Pages
The smaller feature pages, each a lazy-loaded module.
Partners — /partners
PartnersModule. A directory of Payability’s partner integrations.
|
Page shell with category filtering. |
|
The filtered list. |
|
One partner card. |
|
Loading skeleton. |
|
The partner catalog. |
|
Data access and filtering. |
export enum PartnerTypeEnum {
All = 0,
Marketplaces = 1,
EcommerceTools = 2,
Shipping = 3,
SolutionProviders = 4,
}
No permission gate.
Referral — /referral
MoreFromPayabilityModule, containing the referral/ sub-module. Requires the
REFERRAL permission, which is denied while the supplier is onboarding.
ReferralService builds a personalised referral link:
getReferralLink(): string {
const referralUrl = this.environmentService.referralUrl;
const user = this.userService.getCurrentUser();
const referralKey = this.createReferralLinkKey(user);
return `${referralUrl}${referralKey}`;
}
private createReferralLinkKey(user: User): string {
return `${this.createLegalNamePart(user)}${this.createSupplierKeyPart(user)}`;
}
private createLegalNamePart(user: User): string {
return this.slugify(user.companyName).substring(0, 10); (1)
}
| 1 | The key is a slugified, 10-character company-name prefix followed by a supplier-key segment — human-recognisable but still unique. |
The base URL comes from environment.referralUrl. referral-banner promotes the
programme from the dashboard, gated on the same permission.
PayShield Subscription — /payshield-subscription
PayshieldSubscriptionModule. A PayPal-hosted subscription checkout for the
PayShield product.
const PAYPAL_SDK_URL = 'https://www.paypal.com/sdk/js?client-id=…&vault=true&intent=subscription';
const BUTTON_CONTAINER_ID = '#paypal-button-container';
export const PAYSHIELD_PLANS: PayshieldPlan[] = [
{ id: 'P-1D465283B52778401NIP6C3I', nameKey: 'PAYSHIELD_SUBSCRIPTION.PLAN_STARTER_NAME', descriptionKey: '…PLAN_STARTER_DESC' },
{ id: 'P-4LB22406VJ150201WNIMJE5A', nameKey: 'PAYSHIELD_SUBSCRIPTION.PLAN_GROWTH_NAME', descriptionKey: '…PLAN_GROWTH_DESC' },
{ id: 'P-30A88013RL5816821NIMIGRY', nameKey: 'PAYSHIELD_SUBSCRIPTION.PLAN_PROFESSIONAL_NAME', descriptionKey: '…PLAN_PROFESSIONAL_DESC' },
{ id: 'P-1B7255942M655732SNIMIG4Q', nameKey: 'PAYSHIELD_SUBSCRIPTION.PLAN_SCALE_NAME', descriptionKey: '…PLAN_SCALE_DESC' },
{ id: 'P-2VW63152FE618402ENIMIHHQ', nameKey: 'PAYSHIELD_SUBSCRIPTION.PLAN_ENTERPRISE_NAME', descriptionKey: '…PLAN_ENTERPRISE_DESC' },
];
|
The PayPal client id and the five plan ids are hardcoded in the component, not
read from |
The component loads the PayPal SDK dynamically and renders the subscription
button into #paypal-button-container. It implements OnDestroy to tear the SDK
down on navigation.
No permission gate.
Blog — /blog
BlogPageModule, backed by the blog slice.
|
Load CMS posts. |
|
Open a post. |
|
Emits |
Post bodies are rendered with the html-render component, which sanitizes CMS
HTML before insertion.
Sales Call Summary — /sales-call-summary
SalesCallSummaryModule. Displays the outcome of a supplier’s sales call.
It is also an onboarding step: TopBarService registers a client-side
salesCallSummary step (ExtendedPreActivationStatusStepsKeys) linking here, and
PayabilityComplianceEnum.SalesCallSummary is the matching compliance record. See
Onboarding.
Send Money — /send-money
SendMoneyModule. Covered in Vendor Pay.
Help Center — /help-center
No module. HelpCenterRedirectGuard tracks
RouterNavigationEvents.HelpCenterLinkClicked with the current user id, opens
https://help.payability.com/hc/en-us in a new tab, and returns false.
A Zendesk widget is also configured through environment.zendeskWidgetUrl and
environment.zendeskWidgetKey.
constants/help-articles.const.ts maps in-app contexts to specific help articles,
used by SupportHelperService and the hint-popover component.