Linked account declaration
This UI component is scheduled for deprecation and will be removed from the UI Library on 04 March 2025
Overview
To add a Linked AccountLinked Account An entity in the Weavr system that represents an external bank account or payment service provider (PSP) account which an Identity has verified they own and control. This feature enables users to perform transactions, such as outgoing and incoming wire transfers, between their Linked Accounts and their Managed Accounts as 'self-to-self' transfers. via the Account Information Service (AIS) UI Component a user with a Controller role of the Identity must complete a Strong Customer Authentication (SCASCA Strong Customer Authentication - a two-factor authentication solution required by PSD2 regulations for when end-users are accessing their payment account sensitive information or initiating transactions. SCA requires at least two of the following: something you know (password), something you have (device), or something you are (biometrics).) challenge to confirm ownership of the Linked AccountLinked Account An entity in the Weavr system that represents an external bank account or payment service provider (PSP) account which an Identity has verified they own and control. This feature enables users to perform transactions, such as outgoing and incoming wire transfers, between their Linked Accounts and their Managed Accounts as 'self-to-self' transfers..
If the SCASCA Strong Customer Authentication - a two-factor authentication solution required by PSD2 regulations for when end-users are accessing their payment account sensitive information or initiating transactions. SCA requires at least two of the following: something you know (password), something you have (device), or something you are (biometrics). challenge fails, the Linked AccountLinked Account An entity in the Weavr system that represents an external bank account or payment service provider (PSP) account which an Identity has verified they own and control. This feature enables users to perform transactions, such as outgoing and incoming wire transfers, between their Linked Accounts and their Managed Accounts as 'self-to-self' transfers. remains in the PENDING_CHALLENGE state until a successful SCASCA Strong Customer Authentication - a two-factor authentication solution required by PSD2 regulations for when end-users are accessing their payment account sensitive information or initiating transactions. SCA requires at least two of the following: something you know (password), something you have (device), or something you are (biometrics). challenge is completed.
Embed the Linked Account Declaration UI Component
The Linked AccountLinked Account An entity in the Weavr system that represents an external bank account or payment service provider (PSP) account which an Identity has verified they own and control. This feature enables users to perform transactions, such as outgoing and incoming wire transfers, between their Linked Accounts and their Managed Accounts as 'self-to-self' transfers. Declaration Component requires the below parameters in order to be initialized successfully.
To use Weavr UI components, you must first set up our UI library in your application and ensure that you have an authentication token set as per instruction.
linkedAccountDeclaration(linkedAccountId, options);
| Parameter | Type | Required? | Description |
|---|---|---|---|
linkedAccountId | string | Required | This property should be used to verify the Linked AccountLinked Account An entity in the Weavr system that represents an external bank account or payment service provider (PSP) account which an Identity has verified they own and control. This feature enables users to perform transactions, such as outgoing and incoming wire transfers, between their Linked Accounts and their Managed Accounts as 'self-to-self' transfers. with the status PENDING_CHALLENGE. |
options | object | Optional | Add styling to the component. |
const linkedAccountDeclaration =
weavrComponents.prompt.linkedAccountDeclaration(linkedAccountId, options);
Mounting
To display the component on the screen, it's necessary to mount it to the DOM. This involves creating a wrapping element that will serve as the container for injecting the secure frame. Be sure to assign an id to the HTML element.
Upon mounting to the element target the component immediately calls the necessary APIs to populate the necessary data on screen.
<!--linked-account-declaration.html-->
<div id="linked-account-declaration-example"></div>
// secure-linked-account-declaration.js
const linkedAccountDeclaration =
weavrComponents.prompt.linkedAccountDeclaration(linkedAccountId, options);
linkedAccountDeclaration.mount("#linked-account-declaration-example");
Look and feel
The options parameter manages the overall appearance of the component. The below defines the options object:
| Property | Type | Required? | Description |
|---|---|---|---|
classNames | object | Optional | Defines which classes are to be appended to the wrapping element. |
style | object | Optional | Defines the look and feel of the components elements. |
const linkedAccountDeclaration =
weavrComponents.prompt.linkedAccountDeclaration(linkedAccountId, {
classNames: "linked-account-declaration-class",
style: {
// Definition found below
},
});
Property Definitions
style
The specified styles are implemented on the component when it is mounted. While all key-value pairs are optional, each has a default value assigned. You can customize the default values by passing the desired values accordingly
| Property | Type | Required? | Description |
|---|---|---|---|
container | object | Optional | Styles the wrapping element of the component that within the secure frame |
lineColor | string | Optional | Line color. |
buttons | object | Optional | Defines the look and feel of the button elements. |
consentFont | object | Optional | Defines the look and feel of the font used in the consent. |
smallTextColor | string | Optional | Defines the look and feel of the font used in the consent. |
const linkedAccountDeclaration = weavrComponents.prompt.linkedAccountDeclaration(linkedAccountId, {
classNames: "linked-account-declaration-class",
style: {
container: {
height: '900px',
fontSize: '1rem',
fontFamily: 'Inter',
backgroundColor: '#fff',
padding: '3rem',
borderRadius: '1rem',
...
},
lineColor: '#E0E0E0',
buttons: {
buttonRadius: '1rem',
buttonBackgroundColor: '#F4F4F4',
buttonTextColor: '#0F0B3E'
},
consentFont: {
headingIconColor: '#0F0B3E',
bodyTextColor: '#595959 ',
},
smallTextColor: '#0F0B3E'
}
})
container
Each property follows the object format outlined below. This object features the following parameters, with each one accepting inputs based on the provided link.
The Pseudo-Class Object is a recursive structure composed of the same properties listed below. During recursion, the properties specific to the Pseudo-Class are omitted.
| Parameter | Type | Required | Description |
|---|---|---|---|
backgroundColor | string | Optional | Background color |
border | string | Optional | Border width, style, and color |
borderRadius | string | Optional | Border rounded corners |
classesNames | string | Optional | Custom styling, or referencing in your stylesheet |
color | string | Optional | Text color |
fontFamily | string | Optional | Text font |
fontSize | string | Optional | Font size |
fontSmoothing | string | Optional | Font smoothing (anti-aliasing) |
fontStyle | string | Optional | Text Style (italic or normal) |
fontVariant | string | Optional | Text with small caps (or other font variants) |
fontWeight | string | Optional | Text weight (thickness or boldness) |
height | string | Optional | Component height |
letterSpacing | string | Optional | Space between characters in the text |
lineHeight | string | Optional | Height of text |
margin | string | Optional | Spacing within component |
padding | string | Optional | Spacing inside Component (between content & border) |
textAlign | string | Optional | Horizontal text alignment |
textDecoration | string | Optional | Text underline or overline |
textIndent | string | Optional | First line text indentation |
textShadow | string | Optional | Text shadow effect |
textTransform | string | Optional | Text capitalization |
:hover | object* | Optional | Pseudo-Class Triggered when a user interacts with an element using a pointed device e.g. cursor |
buttons
Describes the look and feel of the buttons found in the Payment RunPayment Run A list of payments created by Buyers to settle their outstanding financial obligations with their suppliers. Payment runs are typically managed by the accounts payable function within a business on a periodic basis and go through stages of creation, authorisation, funding, and execution. Authorization component.
| Property | Type | Required? | Description |
|---|---|---|---|
buttonRadius | string | Optional | The radius of the buttons. |
buttonBackgroundColor | string | Optional | The background color of the buttons. |
buttonTextColor | string | Optional | The buttons text color. |
consentFont
The Payment RunPayment Run A list of payments created by Buyers to settle their outstanding financial obligations with their suppliers. Payment runs are typically managed by the accounts payable function within a business on a periodic basis and go through stages of creation, authorisation, funding, and execution. Authorization component prompts for acceptance of consents. The below describes the consent font style
| Property | Type | Required? | Description |
|---|---|---|---|
headingIconColor | string | Optional | Any heading found in the component. |
bodyTextColor | string | Optional | Any consent related text in the component. |
Functions
You can interact with the library's components by utilizing the exposed functions. The below is a list of functions exposed for the Linked AccountLinked Account An entity in the Weavr system that represents an external bank account or payment service provider (PSP) account which an Identity has verified they own and control. This feature enables users to perform transactions, such as outgoing and incoming wire transfers, between their Linked Accounts and their Managed Accounts as 'self-to-self' transfers. Declaration component
mount
The mount function is called in order to mount a component into the defined selector.
linkedAccountDeclaration.mount(selector);
unmount
The unmount function is called in order to unmount a component from its selector.
Once a component is unmounted it can be remounted. One can remount the component utilizing the mount function.
linkedAccountDeclaration.unmount();
destroy
The destroy function can be used to remove the element and its references from the DOM.
Once a component is destroyed it cannot be remounted. The component is removed from Document Object Model (DOM)
alongside any references and needs to be re-initialized
linkedAccountDeclaration.destroy();
on
This function makes event listeners available for interacting with the component during events.
paymentRunAuthz.on(event, listener);
off
This function provides the capability to detach event listeners from the component.
linkedAccountDeclaration.off(event, listener);
Events
The component triggers the following events. You can listen to these events by attaching event listeners.
| Event | Trigger condition |
|---|---|
ready | Component has been initialization successfully. |
change | When component's state changes. |
error | An error is returned during API requests. If not handled, an error is returned. |
accept | Triggered when the Payment RunPayment Run A list of payments created by Buyers to settle their outstanding financial obligations with their suppliers. Payment runs are typically managed by the accounts payable function within a business on a periodic basis and go through stages of creation, authorisation, funding, and execution. Authorization is fulfilled. |
decline | Triggered the decline button is clicked. |
// Example - listen for ready event
linkedAccountDeclaration.on("ready", (event) => {
// do something
});
// Example - listen for accept event
linkedAccountDeclaration.on("accept", (event) => {
// do something
});
Examples
1. Show Linked Account Declaration
<!--linked-account-declaration.html-->
<div id="linked-account-declaration-example"></div>
// linked-account-declaration.js
const options = {
classNames: "linked-account-declaration-class",
style: {
container: {
height: "900px",
fontSize: "1rem",
fontFamily: "Fuggles",
backgroundColor: "#F0EDDE",
padding: "3rem",
borderRadius: "1rem",
},
lineColor: "#3CF7CA",
buttons: {
buttonRadius: "1rem",
buttonBackgroundColor: "#7C1869",
buttonTextColor: "#3CF7CA",
},
consentFont: {
bodyTextColor: "#7C1869",
headingIconColor: "#2A2B44",
},
smallTextColor: "#3CF7CA",
},
};
const linkedAccountDeclaration =
weavrComponents.prompt.linkedAccountDeclaration(linkedAccountId, options);
linkedAccountDeclaration.mount("#linked-account-declaration-example");
linkedAccountDeclaration.on("decline", (event) => {
console.log("Decline", event);
linkedAccountDeclaration.destroy();
});
linkedAccountDeclaration.on("accept", (event) => {
console.log("Accept", event);
linkedAccountDeclaration.destroy();
});