Offer Wall API - New Marketplaces
Why Integrate with Offer Wall API - New Marketplaces
Channel partners historically want a lightweight integration with Engine’s marketplace that delivers personalized offers without heavy engineering effort. To support this, Engine offers the Offer Wall API for New Marketplaces—ideal for smaller sub-verticals like Credit Builders, Earned Wage Access, and Debt Relief. This API lets partners send data via API and receive the Partner Page (PP) redirect URL without needing to build a custom front-end UX.
Key Benefits vs. Hosted Integration:
Better Lead Performance: Send lead PII and request product types for better pre-click offer matching and post-click conversion.
Stronger Re-engagement: Leverage collected user data to re-target users across additional marketing channels.
Broader Reach & Targeting: Access Engine’s full Offer Catalog to deliver more personalized and relevant product recommendations to users.
High-Level Integration Overview
Define
productTypes
: Determine which product types to include in your request. Reach out to your Engine by MoneyLion Partner Managers for recommendations.Collect Lead Data: Gather all required user and contextual fields needed for the API payload.
Submit to Offer Wall API: Send a single
POST
request to the Offer Wall API endpoint with the assembled lead data.Check for Offers: Review the response fields
numOffers
andnumPendingResponses
to confirm offer availability.Redirect to Offer Page: Use the
partnerPageUrl
from the response to direct users to the white-labeled or co-branded offer experience.
Integration Steps:
Offer Wall API - New Marketplaces Endpoint:
POST - https://api.engine.tech/leads/rateTables/offerWallUrls
Post Request Authorization
Engine will provide testing and production API access tokens. All requests to the Engine API must be authenticated using a bearer token specified in the Authorization header.
The header value is prefixed with the string "Bearer". Please contact your Engine Partner Manager for an appropriate bearer token for API testing.
Authorization: Bearer eyJhbGciOieyJhbGciOieyJhbGiOieyJhbGciOixxxxxxxxxx
Other Header Information
The supply partner must include the server's userAgent
in request headers (for logging, access control, and analytics) or the request will be rejected by Engine's servers.
Post Request Body - Object Structure
The required format of the request payload to the Offer Wall API is as follows:
curl -L -X POST 'https://api.engine.tech/leads/rateTables/offerWallUrls' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer eyJhbGciOieyJhbGciOieyJhbGiOieyJhbGciOixxxxxxxxxx' \
-H 'User-Agent: My-App/1.3 (Pod 3)' \
--data-raw
'{
"productTypes":
[
"EarnedWageAccess",
"CashAdvance"
],
"personalInformation": {
"firstName": "John",
"lastName": "Doe",
"email": "[email protected]",
"city": "New York",
"state": "NY",
"primaryPhone": "2125556789",
"address1": "45 West 21st Street",
"address2": "5th Floor",
"zipcode": "10010",
"dateOfBirth": "1993-10-09",
"ssn": "111-22-3333"
},
"sessionInformation": {
"ipAddress": "8.8.8.8",
"userAgent": "MyApp/2.1 (iOS 16.3; iPhone13,2)"
},
"loanInformation": {
"purpose": "debt_consolidation",
"loanAmount": 1000
},
"mortgageInformation": {
"propertyStatus": "own_with_mortgage"
},
"creditInformation": {
"providedCreditRating": "excellent"
},
"financialInformation": {
"employmentStatus": "employed",
"employmentPayFrequency": "weekly",
"annualIncome": 100000
},
"educationInformation": {
"educationLevel": "masters"
},
"legalInformation": {
"consentsToFcra": true,
"consentsToTcpa": true,
"fcraLanguage": "By checking this box/clicking '\''agree'\'' I hereby consent to the '\''E-Sign Agreement'\'', the '\''Credit Authorization Agreement'\'', the Terms of Service and Privacy Policy, and I am providing written consent under the Fair Credit Reporting Act (FCRA) for [Engine by MoneyLion and/or Insert Company Name], its partners and financial institutions to obtain consumer report information from my credit profile. I request that my information be provided to their partners, lenders, and financial services partners to provide me with financial recommendations, which may also include debt relief, credit repair, credit monitoring or other related services.",
"tcpaLanguage": "I agree to be contacted by Engine by MoneyLion and its partners at the telephone number(s) I have provided above to explore personal loan offers, including contact through automatic dialing systems, artificial or pre-recorded voice messaging, or text message. I understand my consent is not required as a condition to purchasing any goods or services from anyone."
},
"clientTags": {
"clientId": ["client1"],
"trafficsource": ["email"],
"campaignId": ["campaign1"]
}
}'
Required fields:
While only productTypes
and state
are technically required in the API request, Engine highly recommends including the additional fields mentioned below. Doing so will enhance lead decision-making and boost conversion rates.
Product Types
productTypes
Array
Y
"EarnedWageAccess", "CashAdvance"
Engine supports over 60 products in the New Marketplaces, listed below*
*"AlternativeInvestments", "AutoInsurance", "AutoServices", "AutomobileInsurance", "AutomobileLoan", "AutomobileRefinance", "BankingAccount", "BrokerageAccount", "BudgetingTools", "BusinessLendingMarketplace", "BusinessLineOfCredit", "CancellationServices", "CashAdvance", "CashManagementAccount", "CashRewards", "CertificateOfDeposit", "CheckingAccount", "CommercialAutoLoan", "CreditBuilderDebitCard", "CreditBuilderLoan", "CreditBuilderSecuredCreditCard", "CreditMonitoring", "CreditRepair", "CryptoBrokerage", "DebtSettlement", "EarnedWageAccess", "EducationOffers", "Freebies", "GigEconomy", "HealthDiscounts", "HealthInsurance", "HomeEquityInvestment", "HomeEquityLineOfCredit", "HomeEquityLoan", "IdentityProtection", "IncomeOpportunities", "IncomeProtection", "InstallmentLoanMarketplace", "MoneyMarketAccount", "MortgagePurchase", "MortgageRefinance", "MotorcycleInsurance", "OverdraftProtection", "PetInsurance", "RentUtilityBillReporting", "RentersInsurance", "RevenueBasedFinancing", "RoboInvesting", "SavingsAccount", "SecuredCreditCard", "SecuredPersonalLoan", "SpecialtyVehicleInsurance", "StudentLoan", "StudentLoanRefinance", "TaxFiling", "TermLifeInsurance", "TravelOffers", "UnsecuredCreditCard", "UnsecuredLineOfCredit", "UnsecuredPersonalLoan", "UtilitiesDiscounts", "WholeLifeInsurance"
Personal Information
firstName
String
N
John
lastName
String
N
Doe
city
String
N
New York
state
String
Y
NY
State 50 U.S. states + DC (District of Columbia) + PR (Puerto Rico) + VI (U.S. Virgin Islands)
primaryPhone
String
N
2125556789
See Regex Validations below for more information
address1
String
N
45 West 21st Street
address2
String
N
5th Floor
zipcode
String
N
10010
See Regex Validations below for more information
dateOfBirth
String
N
1993-10-09
yyyy-mm-dd
ssn
String
N
124-22-3333
Social Security Number. See Regex Validations below for more information
Loan Information
loanAmount
Integer
N
1000
Unit in USD
Mortgage Information
Credit Information
providedNumericCreditScore
Int
N
750
Include either providedCreditRating
or providedNumericCreditScore
if passing the data (not necessary to include both)
Financial Information
annualIncome
Integer
N
100000
Unit in USD
Legal Information
consentsToFcra
Boolean
N
true
fcraLanguage
String
Conditional
"By checking this box/clicking 'agree' I hereby consent to ..."
Required if consentsToFcra
is true
. Must include the exact FCRA language shown to users.
consentstoTcpa
Boolean
N
true
tcpaLanguage
String
Conditional
"By checking this box/clicking 'agree' I hereby consent to ..."
Required only if consentsToTcpa
is true
. Must include the exact TCPA language shown to users.
Session Information
ipAddress
String
N
8.8.8.8
Used for fraud detection by Engine and Financial Institution partners
userAgent
String
N
MyApp/2.1 (iOS 16.3; iPhone13,2)
Used for fraud detection/prevention by Financial Institution partners*
Client Tags
clientId
Array
N
clientId123
Client Tags can be added for ease of reporting/attribution (i.e. for the partner's convenience when Engine reports metrics to the partner). Refer to Client Tags for Reporting for details
Regex Validations
The following fields have the regex checks and will return errors if your lead submission does not adhere to this logic:
personalInformation.primaryPhone
The primary must be a string of 10 digits, with or without a leading 1, and with or without special characters e.g. ()-.
The area code cannot be the same 3 digits repeated, e.g. 222
or 333
.
personalInformation.zipcode
The zipcode must be a string of either:
5 digits
5 digits, a hyphen
-
, and 4 more digits
personalInformation.ssn
The SSN cannot have all digits in each group be identical (e.g.,
111-11-1111
or222-22-2222
).The following specific SSNs are not allowed because they are commonly used in examples or considered invalid:
123-45-6789
219-09-9999
078-05-1120
The first group of three digits cannot be:
666
000
Any number starting with
9
(e.g.,900
–999
).
The middle group of two digits cannot be:
00
The last group of four digits cannot be:
0000
API Response and Parsing
Sample response:
{
"uuid": "uuid will appear here",
"leadUuid": "leadUuid will appear here",
"numOffers": 3, //static offers + custom audience offers that have resolved
"numPendingResponses": 1, //pending responses
"partnerPageUrl": "https://www.moneylion.com/network/moneylion/cash-advance/compare/<uuid>"
}
As shown in the sample response above, Partners will get the following information upon making a successful request:
uuid
- this is a Rate Table UUID.leadUuid
- this is the uuid for each lead, or user. Generally a leadUuid should have only one rate table UUID. Only after the rate table for a lead expires (usually 30 days), should the user get a new rate table uuid.numOffers
- Number of offers resolved by Engine.numPendingResponses
- Number of pending responses Engine is still resolving internally or awaiting from Financial Institution partners.partnerPageUrl
- this is the partner page URL Engine will render for leads originated from the partner. Partners should redirect the user into this url (if there are any offers for that lead).
Suggested Parsing Logic of the API Response:
Store Identifiers. Partners should first store the
uuid
andleadUuid
fields for analytics, optimization, or internal tracking as needed.Redirect:
If
numPendingResponses
is >0, wait 2 seconds and then redirect the lead to the returnedpartnerPageUrl
—regardless ofnumOffers
.If
numPendingResponses
is 0 andnumOffers
is not 0, you may redirect the lead to the returned partnerPageUrl immediately.If both
numPendingResponses
andnumOffers
are 0, we advise against redirecting the lead to thepartnerPageUrl
. The lead will see an empty offer wall. ThepartnerPageUrl
field will be present even ifnumOffers
is 0.
Do NOT poll
https://api.engine.tech/leads/rateTables/offerWallUrls
for the same lead. Engine will create a new rate table UUID on every call to this endpoint, which can lead to inconsistencies and duplicate lead tracking. We will support the polling in the near future.
Sample Partner Page

Future Improvements
Engine plans to expand partnerships with more financial institutions to enhance the range of financial products available, meeting the diverse needs of our supply partners' end customers.
Last updated
Was this helpful?