Personal Loans

Flutter Personal Loans Mobile SDK Integration Guide

Overview

This documentation covers installation, required prerequisites, configuration properties currently surfaced (channel, zone, experience), and a basic usage example.

Setup Instructions

You’ll need the correct channel and zone values for your integration. Ask your Partner Manager to provide these values for Flutter Personal Loans.

Step 1: Request and API Token

Before you can use the Engine SDK, you'll need to request an API token from your Partner Manager. This token is used to authenticate with the Engine API and provides access to different financial institutions. You may want to use multiple API tokens depending on how many entry points your app has into the SDK.

Step 2: Confirm Software Requirements

  • Flutter 3.0.0 or higher

  • Dart 3.10.7 or higher

Step 3: Install the SDK

Add the dependency to your pubspec.yaml:

dependencies: engine_mobile_flutter_sdk: ^0.0.3

Note: This installs the latest compatible SDK version. For a specific version, pin it explicitly in pubspec.yaml.

Then install the dependency:

Step 4: Initialize the SDK

Add the following import to any Dart file where you want to use the SDK:

Basic Example

Place the EngineSDK widget anywhere in your widget tree to render the Personal Loan flow.

Properties

Pass these properties to EngineSDK:

  • channel (String, required) Identifies your integration in Engine. Provided by your Partner Manager. Example: 'direct'

  • zone (String, required) Identifies the placement or distribution surface for the SDK. Provided by your Partner Manager. Example: 'marketplace'

  • experience (String, required) Selects the product flow variant. Use 'search' for Personal Loans unless instructed otherwise. Example: 'search'

User Experience Demo

The SDK renders a complete Personal Loans journey inside your app. It collects any missing user inputs, submits the lead, and then displays offers.

Typical flow:

  1. Landing screen

  2. Loan and personal details form

  3. Review / confirm details

  4. Offer results

Landing Screen
Loan Details
Personal Details
Personal Details
Personal Details
Personal Details

Client Tags for Reporting

The Engine Flutter SDK supports adding your unique Client Tags to track performance of specific campaigns or users. All Client Tag data is attributed to the lead level.

Client Tags can be added by including a clientTags attribute at the top level of the EngineSDK widget, where the value is a Map<String, List<String>>.

We strongly recommend including only one element per list for ease of reporting and attribution—if you want two separate tags, include the second tag under a different key. There is no limit to the number of keys in the clientTags map

Example

Note: Client Tags are only sent when both prefilledData and bearerToken are provided.

Supported Client Tag Keys for Reporting

If you plan for the Engine team to set up reporting (i.e., you do not plan to hit the Analytics API), these are the only keys that are currently fully supported. If a different key is needed, please reach out to your partner manager—we may be able to accommodate, but adding nonstandard keys will increase the time it takes Engine to report Client Tag values back to you and is therefore not recommended.

  • agentId

  • campaignId

  • clientId

  • deviceid

  • medium

  • sourceId

  • subid

  • subid1

  • subid2

  • subid3

  • target

  • trafficsource

  • userid

See the GET Lead Client Tagsarrow-up-right endpoint for information on attributing lead analytics to your own client tags, if you decide to hit the Analytics API for reporting.

Prefilling Lead Data

This sections describes how to prefill any user data you already have into your Flutter SDK implementation.

PrefilledData Example

Here is a full code snippet of how you might implement the Flutter SDK into your app, with all prefilledData fields populated:

The prefilledData object should include any fields you want the user to not have to answer themselves, if you already have that info available. You may prefill as many of these fields as desired.

Important: Do not prefill any fields that are empty or otherwise unavailable. If you do not have info for a particular field, omit that field from your prefilledData object.

For example, the following is incorrect:

This is correct:

PrefilledData Type Definitions

The data should follow the class/type schema described below in Dart:

Enums/Accepted Values for Certain Fields

Certain fields must use one of the predefined Dart enum values. Here are those values:

PrefilledData Sanitization

Prefilled data must align with the type definitions above, and any fields with an accepted-value enum must use a valid enum value. If you prefill user data and any type/value is invalid, that attribute will be stripped and the lead will have to enter it again manually.

Event Handlers Implementation

Flutter Callbacks Events for Trackingchevron-right

Last updated

Was this helpful?