Whitelabel Integration Guide
General
Axo Group offers three tech products for whitelabel integration:
- AXO Whitelabel Form
An embeddable front-end application for application forms (e.g., unsecured loans, credit cards). - AXO Integration API
An API used to initiate loan applications within Axo Group’s platform. - AXO Pre-Check API
An API used to check whether a lead is likely to be accepted by Axo.
To submit applications to Axo Group’s platform, the use of the AXO Whitelabel Form is required. The two APIs are optional.
This guide outlines how to access and use these products. Integration and usage are consistent across all of Axo Group’s brokering products (unsecured loans and credit cards), brands, and markets (Norway, Sweden, Denmark, and Finland).
All code examples provided in this guide are complete and functional.
Embedding the Form
Embedding the AXO Whitelabel Form involves adding a <script> tag to your HTML. The implementation is the same across all Axo Group markets, brands, and products. For a more detailed explanation of how to use the AXO Whitelabel Form, please see
Example
In this example, we embed the application form for unsecured loans from the brand axofinans.no.
<script
id="axo-script"
src="https://embed.axogroup.com/axofinans.no/loan-application/main.js"
data-has-offers-affiliate-url="<YOUR-TRACKING-URL-PROVIDED-BY-AXO>"
type="module">
</script>Note: The
data-has-offers-affiliate-urlattribute is optional and should only be included when using Method 2: Full Front-End Integration.
Environments & URLs
AXO Whitelabel Forms follow a standard URL pattern:
https://<BASE-URL>/<BRAND>/<PRODUCT-TYPE>/main.js
Where:
BASE-URLis the environment:- Production:
embed.axogroup.com - Test:
form.axo-test.io
- Production:
BRANDis the domain of the brand (e.g.,axofinans.no)PRODUCT-TYPEis eitherloan-applicationorcredit-card
Production URLs & Supported Product Types / Brand / Markets
To use the test version of a form, replace the base URL with form.axo-test.io.
| Brand | Market | Product Type | URL |
|---|---|---|---|
| axofinans.no | NO | Unsecured Loans | https://embed.axogroup.com/axofinans.no/loan-application/main.js |
| axofinans.no | NO | Credit Cards | https://embed.axogroup.com/axofinans.no/credit-card/main.js |
| axofinans.se | SE | Unsecured Loans | https://embed.axogroup.com/axofinans.se/loan-application/main.js |
| axolaina.fi | FI | Unsecured Loans | https://embed.axogroup.com/axolaina.fi/loan-application/main.js |
| lendme.dk | DK | Unsecured Loans | https://embed.axogroup.com/lendme.dk/loan-application/main.js |
| zmarta.no | NO | Unsecured Loans | https://embed.axogroup.com/zmarta.no/loan-application/main.js |
| zmarta.se | SE | Unsecured Loans | https://embed.axogroup.com/zmarta.se/loan-application/main.js |
| zmarta.fi | FI | Unsecured Loans | https://embed.axogroup.com/zmarta.fi/loan-application/main.js |
Method 1: Partial Front-End Integration
This method is suitable for partners who want to host the initial steps of the customer journey themselves.
Example Scenario
A typical flow:
- A lead lands on the partner site.
- The lead fills out the partner’s custom form (referred to as the pre-form).
- We recommend collecting the same fields as the first step of the AXO Form:
- Loan Amount
- Loan Duration
- Email Address
- Phone Number
- Missing fields will result in the AXO Form redirecting the lead to complete Step 1, ensuring continuity. However, the best customer journey will be accomplished if the partner includes all necessary data for completing step 1 so the lead lands directly on AXO Form step 2.
- We recommend collecting the same fields as the first step of the AXO Form:
- Upon form submission, the partner can optionally:
- Call the AXO Pre-Check API to verify if the lead may be accepted.
- The partner calls the AXO Integration API to initiate the application.
- The partner stores the returned
jwtandapplicationIDinsessionStorage. - The lead is redirected to a page with the AXO Whitelabel Form embedded.
- Please note that in this scenario, you should not include the
data-has-offers-affiliate-url-attribute in the script tag. In this scenario, the attribution is handled by the AXO Integration API, and adding the tracking URL to the script-tag may cause duplicate or incorrect attribution.
- Please note that in this scenario, you should not include the
- The lead completes the form and is redirected to Axo Group My Page to view and accept offers.
Example Code
Two files are used in this example for the Danish brand lendme.dk. The example uses URLs to AXOs test environment and can be safely run locally to experiment with the set-up.
index.html– is an example of a minimalist partner pre-form which calls the calls the AXO Integration API to initiate the applicationaxo-form.html– Embeds the AXO Whitelabel Form
<!-- index.html -->
<!DOCTYPE html>
<html>
<head>
<title>My Whitelabel Site</title>
</head>
<body>
<form>
<fieldset>
<legend>Apply for a loan in Denmark</legend>
<input type="email" name="Email" placeholder="Email"><br><br>
<input type="text" name="PhoneNumber" placeholder="Phone Number"><br><br>
<input type="text" name="SocialSecurityNumber" placeholder="SSN"><br><br>
<input type="number" name="AppliedAmount" placeholder="Amount"><br><br>
<input type="number" name="LoanDuration" placeholder="Duration"><br><br>
<input type="submit" value="Continue">
</fieldset>
</form>
<script>
onsubmit = (e) => {
e.preventDefault();
const formData = new FormData(e.target);
const formProps = Object.fromEntries(formData);
fetch("https://integration.axo-test.io/v1/loan-application/", {
method: "POST",
headers: { "Content-type": "application/json; charset=UTF-8" },
body: JSON.stringify({
application: {
AppliedAmount: parseInt(formProps.AppliedAmount) || 100000,
LoanDuration: parseInt(formProps.LoanDuration) || 10,
MarketCountry: "DK",
Brand: "lendme.dk"
},
customer: {
MobilePhoneNumber: formProps.PhoneNumber || "40000000",
Email: formProps.Email || "[email protected]"
},
person: {
SocialSecurityNumber: formProps.SocialSecurityNumber || "2803282547"
},
tracking: {
HasOffersAffiliateURL: "https://go.axogroup.com/...",
StartedAtUrl: document.location.pathname
},
})
})
.then((response) => response.ok ? response.json() : Promise.reject(response))
.then((axoResponse) => {
sessionStorage.setItem("axo.token", axoResponse.jwt);
sessionStorage.setItem("axo.application-id", axoResponse.applicationID);
window.location.replace('axo-form.html');
})
.catch(() => alert("Error creating the application at Axo."));
};
</script>
</body>
</html><!-- axo-form.html -->
<!DOCTYPE html>
<html>
<head>
<title>Axo Whitelabel Form</title>
</head>
<body>
<script
id='axo-script'
src='https://embed.axogroup.com/lendme.dk/loan-application/main.js'
type='module'>
</script>
</body>
</html>Method 2: Full Front-End Integration
This method is for partners who prefer AXO to handle the entire customer journey.
No custom form or API integration is required.
Example Scenario
- A lead lands on the partner site.
- The partner embeds the AXO Whitelabel Form on the landing page.
- Please note that in this scenario, you have to include the
data-has-offers-affiliate-urlattribute in the script tag for your lead to attributed correctly in our systems
- Please note that in this scenario, you have to include the
- The lead completes the form directly.
- The lead is redirected to Axo Group My Page
Example Code
<!-- index.html -->
<!DOCTYPE html>
<html>
<head>
<title>Axo Whitelabel Form</title>
</head>
<body>
<script
id='axo-script'
src='https://embed.axogroup.com/lendme.dk/loan-application/main.js'
data-has-offers-affiliate-url="<YOUR-TRACKING-URL>"
type='module'>
</script>
</body>
</html>AXO Integration API
The AXO Integration API can be used to initiate loan applications, as shown in Method 2: Full Front-End Integration. The API does not require authentication to use. An example request/response is given below.
Example Request
curl -X 'POST' \
'https://integration.axo-test.io/v1/loan-application/' \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-d '{
"application": {
"AppliedAmount": 100000,
"LoanDuration": 10,
"MarketCountry": "NO",
"Brand": "axofinans.no"
},
"customer": {
"Email": "[email protected]",
"MobilePhoneNumber": "40000000"
},
"person": {
"SocialSecurityNumber": "01018012345"
},
"tracking": {
"StartedAtUrl": "/my-test-page",
"HasOffersAffiliateURL": "https://go.axogroup.com/...",
}
}'When doing test requests, its important that Whitelabel Partners do not use real emails or phone numbers, as this may result in real users getting test-communication from our platform.
Example Response
The response includes
applicationID: The internal AXO ID for this loan application.jwt: JSON Web Token. The Whitelabel Form needs this to authenticate with AXOs other back-end services. For how to use it, see Method 2: Full Front-End Integration.transactionID: Clicks and conversions will be tracked towards this transaction id in Tune.
{
"applicationID": "123e4567-e89b-12d3-a456-426614174000",
"jwt": "dGhpcyB3aWxsIGJlIGEgbG9uZyB2Y.WxpZCBqc29uI...",
"transactionID": "10201030c8012e449f894ae1e60971"
}Request Schema
Property | Type | Required | Description & Validations |
|---|---|---|---|
| Number | true | NO SE DK FI |
| Number | true | NO SE DK FI |
| String - Enum | true | Legal Values |
| String | true |
|
| String - Enum | false | Please note that NO SE DK FI |
| String - Enum | false |
|
| Srring - Enum | false |
|
| Boolean | false | Should reflect the state of the marketing consent that the WL may have on their step 1. Axo will only use this for incomplete reminder flows, not as a general Axo marketing consent. |
| String | true | Standard email validation rules apply. |
| String | true | Standard phone number validation rules per market country applies. Please note: the phone number should be provided without the country code. |
| String | false | Standard SSN validation rules per market country applies. |
| String | true | Should be the local path where you host your form, e.g., |
| String | true | Your tracking URL as provided by the Axo Affiliate Team. If this is not correct, clicks and conversions will not be attributed correctly to the partner. |
Environments & URLs
| Environment | Product Type | URL |
|---|---|---|
| PROD | Unsecured Loans | https://integration.axofinance.com/v1/loan-application |
| TEST | Unsecured Loans | https://integration.axo-test.io/v1/loan-application |
| PROD | Credit Cards | not yet supported |
| TEST | Credit Cards | not yet supported |
Pre-Check API
The Pre-Check API allows you to verify whether AXO might pay for a lead before submitting them to the AXO platform. Final payout depends on the lead quality and your commission model.
This API works across all Axo Group brokering products and brands.
Authentication
Use your dedicated API key in the x-api-key header.
If you don’t have a key, please contact our Affiliate Team.
Environments & URLs
| Environment | Product Type | URL |
|---|---|---|
| PROD | Unsecured Loans | https://integration.axofinance.com/pre-check |
| TEST | Unsecured Loans | https://integration.axo-test.io/pre-check |
| PROD | Credit Cards | https://integration.axofinance.com/pre-check/credit-card |
| TEST | Credit Cards | https://integration.axo-test.io/pre-check/credit-card |
Request Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| x-api-key | Header | true | Your API key. Contact our Affiliate Team if you don't have one or need a new key. |
| Query | true | The email address to check. | |
| brand | Query | false | Optional brand domain to check. See table here for legal values. If omitted, the check will be done across all brands/brokers. |
Example Request
curl --location --request GET 'https://integration.axo-test.io/[email protected]&brand=axofinans.no' --header 'x-api-key: <YOUR-API-KEY>'Response
- "REJECTED" – AXO will not pay for this lead.
- "OK" – AXO might pay for this lead.
Styling Overrides
Styling overrides are currently not supported and we discourage trying to override any of the internal styles. Proper support for simple theming configured by the whitelabel partner is in development.
Revision History
| Version | Description | Author |
|---|---|---|
| 2025-W21-1 | Added support for brand in the Pre-Check API. | JIL |
| 2025-W16-1 | Brand support. | GIO |
| 2025-W14-1 | First version of new guide published. | JIL |
Updated 3 months ago
