Skip to main content

Payment Run Authorisation Component

Overview

The Payment Run Authorisation is an embeddable Secure UI Component that is initiated to perform SCA to authorise a payment run. When initiating the UI Component, users will be prompted to:

  • Payment Run Overview: The user will be prompted with the 1st step to review the overall details of the Payment run.
  • Payment Review: The user needs to review all the payments in the Payment Run to ensure that the each line item is reviewed.
  • Verify SCA Challenge Once all the payments are reviewed and confirmed, the user will be prompted with the final screen to enter the OTP and verify the SCA challenge.
Pre-requisites

To complete a Payment Run authorisation, the user must:

Embed the Payment Run Authorisation UI Component

The Payment Run Authorisation Component requires the below parameters in order to be initialized successfully.

tip

To use Weavr UI components, you must first set up the Weavr UI library in your application and ensure that you have an authentication token set as per instruction.

paymentRunAuthz(paymentRunId, options);
ParameterTypeRequired?Description
paymentRunIdstringRequiredThe payment run Id that requires payment authorisation.
optionsobjectOptionalAdd styling to the component.
const pra = weavrComponents.prompt.paymentRunAuthz(paymentRunId, 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.

note

Upon mounting to the element target the component will immediately call the necessary API’s in order to populate the necessary data on screen.

<!--pra.html-->
<div id="pra-example"></div>
// secure-pra.js
const pra = weavrComponents.prompt.paymentRunAuthz(paymentRunId, options);
pra.mount("#pra-example");

Look and feel

The options parameter manages the overall appearance of the component. The below defines the options object:

PropertyTypeRequired?Description
classNamesobjectOptionalDefines which classes are to be appended to the wrapping element.
styleobjectOptionalDefines the look and feel of the components elements.
const pra = weavrComponents.prompt.paymentRunAuthz(paymentRunId, {
classNames: "pra-class",
style: {
// Definition found below
},
});

Property Definitions

style

The specified styles will be 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

PropertyTypeRequired?Description
containerobjectOptionalStyles the wrapping element of the component that within the secure frame
lineColorstringOptionalLine color.
buttonsobjectOptionalDefines the look and feel of the button elements.
consentFontobjectOptionalDefines the look and feel of the font used in the consent.
tableobjectOptionalDefines the styling of the table element for the component in subject.
smallTextColorstringOptionalDefines the look and feel of the font used in the consent.
const sca = weavrComponents.prompt.paymentRunAuthz(paymentRunId, {
classNames: 'pra-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 ',
},
table: {
alternatingRowColor: '#FEFEFE',
},
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.

note

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.

ParameterTypeRequiredDescription
backgroundColorstringOptionalBackground color
borderstringOptionalBorder width, style, and color
borderRadiusstringOptionalBorder rounded corners
classesNamesstringOptionalCustom styling, or referencing in your stylesheet
colorstringOptionalText color
fontFamilystringOptionalText font
fontSizestringOptionalFont size
fontSmoothingstringOptionalFont smoothing (anti-aliasing)
fontStylestringOptionalText Style (italic or normal)
fontVariantstringOptionalText with small caps (or other font variants)
fontWeightstringOptionalText weight (thickness or boldness)
heightstringOptionalComponent height
letterSpacingstringOptionalSpace between characters in the text
lineHeightstringOptionalHeight of text
marginstringOptionalSpacing within component
paddingstringOptionalSpacing inside Component (between content & border)
textAlignstringOptionalHorizontal text alignment
textDecorationstringOptionalText underline or overline
textIndentstringOptionalFirst line text indentation
textShadowstringOptionalText shadow effect
textTransformstringOptionalText capitalization
    
:hoverobject*OptionalPseudo-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 Run Authorisation component.

PropertyTypeRequired?Description
buttonRadiusstringOptionalThe radius of the buttons.
buttonBackgroundColorstringOptionalThe background color of the buttons.
buttonTextColorstringOptionalThe buttons text color.

consentFont

The Payment Run Authorisation component will prompt for acceptance of consents. The below describes the consent font style

PropertyTypeRequired?Description
headingIconColorstringOptionalAny heading found in the component.
bodyTextColorstringOptionalAny consent related text in the component.

table

Describes the Payment's table look and feel.

PropertyTypeRequired?Description
alternatingRowColorstringOptionalThe background color of the alternating row found in the payment's table.



Functions

You can interact with the library's components by utilizing the exposed functions. The below is a list of functions exposed for the Payment Run Authorisation component

mount

The mount function is called in order to mount a component into the defined selector.

paymentRunAuthz.mount(selector);

unmount

The unmount function is called in order to unmount a component from its selector.

note

Once a component is unmounted it can be remounted. One can remount the component utilizing the mount function.

paymentRunAuthz.unmount();

destroy

The destroy function can be used to remove the element and its references from the DOM.

note

Once a component is destroyed it cannot be remounted. The component will be removed from Document Object Model (DOM) alongside any references and will need to be re-initialised

paymentRunAuthz.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.

paymentRunAuthz.off(event, listener);



Events

The component will trigger the following events. You can listen to these events by attaching event listeners.

EventTrigger condition
readyComponent has been initialisation successfully.
changeWhen component's state changes.
errorAn error is returned during API requests. If not handled, an error is returned.
acceptTriggered when the Payment Run Authorisation is fulfilled.
declineTriggered the decline button is clicked.
// Example - listen for ready event
paymentRunAuthz.on("ready", (event) => {
// do something
});
// Example - listen for accept event
paymentRunAuthz.on("accept", (event) => {
// do something
});



Examples

1. Show Payment Run Authorisation

<!--pra.html-->
<div id="pra-example"></div>
// pra.js
const options = {
classNames: "pra-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",
},
table: {
alternatingRowColor: "#FEFEFE",
},
smallTextColor: "#3CF7CA",
},
};

const pra = weavrComponents.prompt.paymentRunAuthz(paymentRunId, options);
pra.mount("#pra-example");

pra.on("decline", (event) => {
console.log("Decline", event);
pra.destroy();
});

pra.on("accept", (event) => {
console.log("Accept", event);
pra.destroy();
});