White-Label App
Overview
White-Label App is the fastest and easiest way for software companies to launch branded financial features, with one line of code. Companies can now offer customers a branded banking and lending experience, while reducing engineering lift and radically accelerating time to market.
White-Label App is a turnkey solution for companies to embed accounts, cards, payments, and lending, directly in their product. This for example, can be done through the addition of a banking tab within a client’s web app.
White-Label App is a fully-featured web app that encapsulates backend code, frontend UI/UX design, optimal user experience, security, and compliance.
In addition to a complete set of features, optimal user experiences are already built in, including initial account funding, card activation, activity filtering, and payment workflows – so you can easily activate and retain banking and lending customers.
Supported Use Cases
The current version of the White Label App supports banking for consumers & small business (including both sole props & incorporated businesses), and business lending.
Is the White Label App Right for me?
- I have restricted resources (R&D, product, design etc.)
- I want to test the market opportunity before investing my own resources
- I'm looking for the fastest way to get market with an MVP
- I see an opportunity to monetize an existing customer base by leveraging embedded finance
Requirements for V1
- I have a prominent web-based product
- I can provide a JWT to Unit (a token that tells Unit the unique identity of the user, and allows Unit to verify that they are currently logged into your app)
Supported Platforms
Platform | Availability |
---|---|
Web (desktop & mobile) | Available |
React Native | Available |
iOS | Q4 '24 |
Android | Q4 '24 |
Features
Feature | Details |
---|---|
Onboarding (KYB / KYC) experience | Identity verification, fraud screening, document verification (if applicable), manual reviews |
Deposit Accounts | Multiple deposit accounts with flexible terms (limits, clearing times, end customer fees, interest) |
Account funding | ACH debit (pull), Check deposits |
Money In | Receive ACH credit, Receive Wire, Cash deposits in Allpoint ATMs (using a physical card) |
Money Out | ACH credit (same / next day), Book payments (between accounts on the Unit platform), cards, ATM |
Activity | Overview of the customer's activity (transactions, card authorizations etc.) |
Cards | Multiple physical and/or virtual cards, both branded. Including ability to add cards to a mobile wallet. |
First-time user experience | A a part of the onboarding flow, the White-label App includes a tutorial step to encourage the end-user to fund the account and activating the available card, as a call to action and engagement with the banking features |
First-time user experience example
Embedding
Authentication Setup
White-label app requires a JWT token to be passed to it. This token is used to authenticate the end-user. The token is passed to the app via the jwt-token
attribute.
Using Identity Providers
Unit supports JWT token generated by the following Identity Providers: Okta, Auth0, AWS Cognito, Stych. If you are using one of these providers, you should provide Unit with JWKs Path and JWT Issuer. Unit will use this information to validate the JWT token.
Custom JWT implementation
Unit can rely on a custom implementation of JWT token that adheres to the specifications outlined in RFC 7519. In this case you should provide Unit with a public key that will be used to validate the token. The token must be signed using the RS256 algorithm and must include the following claims:
sub
: a unique identifier for the end-user.exp
: the expiration time of the token.iss
: the issuer of the token.
Implementation
White Label App is not enabled by default. In order to get the White-Label App ready for testing in Sandbox, we need a few things from your team:
- Sign up for a [Sandbox environment] (https://app.s.unit.sh/signup) if you haven’t already.
- Configure the application form. This can be found in the Unit Dashboard under Developer -> Org Settings -> Application Form.
- Configure the JWT settings. This can be found in the Unit Dashboard under Developer -> Org Settings -> JWT Settings. If you are using a custom JWT solution please reach out to your CSM.
- Configure Plaid credentials. This can be found in the Unit Dashboard under Developer -> Org Settings -> Integrations. This is required for the ACH debit flow only.
- Provide your CSM with your jwtIssuer.
Embedding the white-label app is accomplished by adding a script tag and a unit-elements-white-label-app
tag to the page where you want it to appear.
The unit-elements-white-label-app
is part of the White-Label UI Components, but due to its additional size, it is not included in the main script.
Please use the extended script https://ui.s.unit.sh/release/latest/components-extended.js (Sandbox) https://ui.unit.co/release/latest/components.js (Production) to embed this component.
<html>
<head>
<script async src="https://ui.s.unit.sh/release/latest/components-extended.js"></script>
<!-- For production environment use `https://ui.unit.co/release/latest/components-extended.js` as the script source.-->
</head>
<body>
<unit-elements-white-label-app jwt-token="{{JwtToken}}" theme="{{themeUrl}}" language="{{languageUrl}}"> </unit-elements-white-label-app>
</body>
</html>
You can choose to create unit-elements-white-label-app
dynamically using JavaScript
<html>
<head>
<script async src="https://ui.unit.co/release/latest/components-extended.js"></script>
</head>
<body>
<div id="unit-app-placeholder"></div>
<script>
const unit = document.createElement("unit-elements-white-label-app")
unit.setAttribute("theme", "{{themeUrl}}")
unit.setAttribute("jwt-token", "{{JwtToken}}")
unit.setAttribute("language", "{{languageUrl}}")
document.querySelector("#unit-app-placeholder").append(unit)
</script>
</body>
</html>
White-label app will use 2 keys in local storage. unitCustomerToken
and unitVerifiedCustomerToken
. It's important to clean them up when the user logs out from the app.
localStorage.removeItem("unitCustomerToken")
localStorage.removeItem("unitVerifiedCustomerToken")
Content-Security-Policy
If you are using a Content-Security-Policy (CSP) header, you may need to add the following directives to allow the web components to work correctly:
<meta http-equiv="Content-Security-Policy" content="connect-src 'self' https://*.s.unit.sh https://*.unit.co">
End User Setup
White-label app doesn't require any back-end configuration. However, for the advanced features like pre-filling the application form or restricting application types, you will need to implement an API endpoint that returns the end-user setup resource.
Unit will make an HTTP request to this endpoint with a JWT token in the Authorization header before creating an Application Form. The server will need to return the End User Configuration resource.
The response must include the data
, type: whiteLabelAppEndUserConfig
and attributes
keys.
In the future, we are planning to add more customization options to the end-user setup.
Please, contact Unit in order to configure the endpoint.
Request example:
curl -X GET 'https://yourdomain.com/unit/application-form-prefill' \
-H "Authorization: Bearer ${JWT Token}"