API Specifications

Authentication

Engine by MoneyLion will provide testing and production API bearer tokens. All requests to the Engine by MoneyLion API must be authenticated using a bearer token specified in the Authorization header.

The header value is prefixed with the string “Bearer “, so a properly-authenticated request will look similar to the one here:

Authorization: Bearer 0a930e7f-4a96-4388-8c12-c901a161084e_409cc5f2-4008-11aa-84a4-0b68f163f437

Post Request

The required format of the body (JSON) in the request to https://api.engine.tech/leads/rateTables:

{
  "productTypes": [
    "savings"
  ],
  "personalInformation": {
    "zipcode": "10010"
  },
  "savingsInformation": {
    "minDepositAmount": 1000
  },
  "clientTags": {
    "tag.sv": [
      "facebook_campaign"
    ]
  }
}

More information about key/value pair formatting and acceptable fields can be found here.

Response

Here is a sample response of /rateTables

Savings offers will appear in this schema

{
  ...,
  "savingsOffers": [
    {
      "uuid": "11111111-ae64-4bd5-8614-9119bab84e45",
      "partner": {
        "uuid": "00000000-4c51-4ade-b165-6f8218b06ac8",
        "name": "Sample Bank Brand Name",
        "description": "Sample Savings",
        "disclaimer": "None",
        "supportsPersonalizedOffers": false,
        "supportsPreSelect": false,
        "shouldDisplayPreSelect": false,
        "imageUrl": "https://www.sampleurl.com/content/125x70/img.png"
      },
      "marketplace": {
        "uuid": "22222222-c920-4c5e-966d-c8dc8cd4335f",
        "name": "LT",
        "description": "Description",
        "disclaimer": "Disclaimer",
        "supportsPersonalizedOffers": false,
        "supportsPreSelect": false,
        "shouldDisplayPreSelect": false,
        "imageUrl": "https://s3.amazonaws.com/test.png"
      },
      "productType": "savings",
      "productSubType": "savings_account",
      "url": "https://offers.engine.tech/ref/021d6704-dbd1-48f6-8677-9cdea4eea990",
      "details": {
        "name": "360 Performance Savings",
        "description": "<ul>\n<li>Access your money easily with Bill Pay</li>\n<li>Easy Opening</li>\n<li>No Monthly Service Fees</li>\n</ul>",
        "annualPercentYield": 2.1,
        "compoundingMethod": "monthly",
        "minimumDeposit": 0,
        "monthlyFee": 0,
        "checkWriting": false,
        "federalInsuranceType": "fdic",
        "effectiveAsOf": "2022-08-30T14:34:29.477165Z"
      },
      "expiresAt": "2022-08-30T16:34:29.477165Z"
    }
  ]
}

Below are the fields used for displaying offers:

Field Description

API Field Name

Example Response

Notes

Bank Brand Name

partner.name

Citi Bank

FDIC, NCUA status

details.federalInsuranceType

FDIC or NCUA or Null

If null, recommended to not display

Product Name

details.name

360 Performance Savings

Bank Logo

partner.imageUrl

https://s3.amazonaws.com/images.engine.tech/logos/prod/lt_-_enablement_api-v2isl9ak.png

APY

details.annualPercentYield

1.50

String ‘Annual Percentage Yield’ (can’t shorten to APY) must be displayed and number must be shown as a percentage

Monthly Fee Amount

details.monthlyFee

0

Dollar value to be accompanied by the string ‘Monthly fee’

Check Writing Status

details.checkWriting

True

Status to be accompanied by the string ‘Check writing’’

Min Balance to Earn APY

details.minimumDeposit

2500

Dollar value to be accompanied by the string ‘Min balance to earn APY’

Marketing Details

details.description

<ul>\n<li>Lorem</li>\n<li>impsum</li></ul>

Bulleted list of account values that are returned by the Financial Institutions

As of Date

details.effectiveAsOf

2022-08-26T13:14:41.396113Z

Must be posted on each card

Other Important Fields:

Field Description

API Field Name

Example Response

Notes

Savings, or Money Market Offer or CD Designation

productSubType

savings_account OR money_market_account OR certificate-of-deposit

We will be adding support for Checking and CDs in future upgrades

Offer Expiration Date/Time

expiresAt

2022-10-03T16:48:03.504061Z

Offers should not be cached. Offers expire after this timestamp

Offer Click URL

url

https://offers.engine.tech/ref/864a7925-4abd-42b3-b5a6-68960209e327

The user should be sent here based on click of the account card

Asynchronous Flow Responses

Asynchronous Flow - https://api.engine.tech/leads/rateTables

Partners building a Native API integration posting user information to this endpoint will need to make a separate request to retrieve offers. This is the recommended endpoint given the partner’s flexibility to retrieve offers from a separate endpoint.

In the asynchronous flow, creating a rate table does not wait for all of our partners to respond with offers, instead, it contains an array of pending responses ({.pendingResponses}), as well as any resolved offers. You may poll the endpoint using the resulting ID to check for additional offers.

  • “uuid”: Engine by MoneyLion’s Rate Table UUID which will be used to retrieve offer information

  • “leadUuid”: Engine by MoneyLion’s Lead UUID which partners building a Native API integration should store for internal records

Here is an example of the API response. Note that pendingResponses contains information about the Financial Services partners to whom Engine by MoneyLion is sending user information:

{
  "uuid": "37d88231-8e0b-473f-a73e-6f6565b62389",
  "leadUuid": "d6d87f85-de69-4651-9adc-77917d546333",
  "creditCardOffers": [],
  "lifeInsuranceOffers": [],
  "lineOfCreditOffers": [],
  "loanOffers": [],
  "mortgageOffers": [],
  "savingsOffers": [],
  "specialOffers": [],
  "pendingOriginators": [],
  "pendingResponses": [
    {
      "partner": {
        "uuid": "9a3346bd-760e-42a6-94bf-16b8a9374223",
        "name": "Sample Bank Name",
        "description": "description",
        "disclaimer": "description",
        "supportsPersonalizedOffers": false,
        "supportsPreSelect": false,
        "shouldDisplayPreSelect": true,
        "imageUrl": "https://www.depositaccounts.com/content/spnsr/125x70/sample-bank-name-bank.png"
      },
      "productTypes": ["savings"]
    }
  ]
}

In the Asynchronous Flow, partners building a Native API integration must make a secondary request to Engine by MoneyLion’s API to retrieve offer information. Below are instructions for this secondary request:

  • Capture the “UUID” returned in the initial API response

  • Execute a GET request to Engine by MoneyLion’s Offers Endpoint – https://api.engine.tech/originator/rateTables/{uuid}

Poll the endpoint once every second up to 15 seconds, or until “pendingResponses” is empty

Below is an example of the API response for Engine by MoneyLion’s Offers endpoint. Note that pendingResponses is empty as Engine by MoneyLion has already received offers back for the user from all Financial Services partners.

{
  ...,
  "savingsOffers": [
    {
      "uuid": "00000000-ae64-4bd5-8614-9119bab84e45",
      "partner": {
        "uuid": "11111111-4c51-4ade-b165-6f8218b06ac8",
        "name": "Sample Bank Brand Name",
        "description": "Sample Savings",
        "disclaimer": "None",
        "supportsPersonalizedOffers": false,
        "supportsPreSelect": false,
        "shouldDisplayPreSelect": false,
        "imageUrl": "https://www.sampleurl.com/content/125x70/img.png"
      },
      "marketplace": {
        "uuid": "22222222-c920-4c5e-966d-c8dc8cd4335f",
        "name": "LT",
        "description": "Description",
        "disclaimer": "Disclaimer",
        "supportsPersonalizedOffers": false,
        "supportsPreSelect": false,
        "shouldDisplayPreSelect": false,
        "imageUrl": "https://s3.amazonaws.com/test.png"
      },
      "productType": "savings",
      "productSubType": "savings_account",
      "url": "https://offers.engine.tech/ref/d0000000-dbd1-48f6-8677-9cdea4eea990",
      "details": {
        "name": "360 Performance Savings",
        "description": "<ul>\n<li>Access your money easily with Bill Pay</li>\n<li>Easy Opening</li>\n<li>No Monthly Service Fees</li>\n</ul>",
        "annualPercentYield": 2.1,
        "compoundingMethod": "monthly",
        "minimumDeposit": 0,
        "monthlyFee": 0,
        "checkWriting": false,
        "federalInsuranceType": "fdic",
        "effectiveAsOf": "2022-08-30T14:34:29.477165Z"
      },
      "expiresAt": "2022-08-30T16:34:29.477165Z"
    }
  ]
}

Synchronous Flow

If you’d like details on supporting a synchronous flow, please contact your Engine by MoneyLion Partner Manager or [email protected] for help.

Last updated