Personal Loans

Flutter Personal Loans Mobile SDK Integration Guide

Overview

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

Getting Started

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

Use isDev: true while you test. Set isDev: false before releasing to production.

Prerequisites

  • Flutter 3.0.0 or higher

  • Dart 3.10.7 or higher

Installation

Add the dependency to your pubspec.yaml:

dependencies: engine_mobile_flutter_sdk: ^0.0.3

Then install the dependency:

flutter pub get

Initializing 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'

  • isDev (bool, optional, default: false) Enables development/testing mode. Keep false in production releases. Example: true

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

Event Handlers for Real-Time Trackingchevron-right

Last updated

Was this helpful?