Enrichment Guide
Enrichment service is our data repository and intelligence engine that classifies, categorizes, and analyzes user transactions. Examples of data provided include the relevant business entity, location, and the category of the expense. (See: View Enriched Data).
This information is stored in our ever-expanding Knowledge Repository and returned with transactions in Enriched Info (enriched_info) for Card Transactions.

The Enriched Info Object

When a card transaction is received by us, we run it through our Knowledge Repository to appropriately assign:
    the Merchant Profile(s) that describe the type of business, physical retail location, or facilitator who provided Synapse with the transaction.
    the Transaction Category (enriched_info.category) for the transaction to place it into easily recognizable "buckets" from which potentially the end user, platform, or Synapse could then take further actions.

Enriched Info Object Examples

Payment Facilitator Example 1
Payment Facilitator Example 2
Payment Facilitator Example 3
Franchise Example
Singular Business Location Example
1
// PAYPAL *NETFLIX.COM 4029357733 CA 950327620
2
{
3
"category": "entertainment",
4
"entity_id": "5bde7b198ddd931c7ee7d0df", // Netflix
5
"facilitator_id": "5bde7b198ddd931c7ee7d0e0", // Paypal
6
"location_id": null,
7
"status": "SETTLED"
8
}
Copied!
1
// PAYPAL *PENGZHONGFA 4029357733 CA 95131
2
{
3
"category": "shopping",
4
"entity_id": null,
5
"facilitator_id": "5bde7b198ddd931c7ee7d0e0", // Paypal
6
"location_id": null,
7
"status": "SETTLED"
8
}
Copied!
1
// SQ *SUNSHINE MARKET LONG BEACH CA 90802
2
{
3
"category": "food&drink",
4
"entity_id": null,
5
"facilitator_id": "5bde7b198ddd931c7ee7d0e2", // Square
6
"location_id": "5cbb6df99000ab190894c4f1", // Sunshine Convenience Market
7
"status": "SETTLED"
8
}
Copied!
1
# MCDONALD S F1063 LOS ANGELES CA 90016
2
{
3
"category": "food&drink",
4
"entity_id": "5bde7b198ddd931c7ee7d0de", // McDonald's (chain)
5
"facilitator_id": null,
6
"location_id": "5d8010fb33c4bef4facee888", // McDonald's (local)
7
"status": "SETTLED"
8
}
Copied!
1
// JT BEAUTY KANSAS CITY MO 641343315
2
{
3
"category": "shopping",
4
"entity_id": null,
5
"facilitator_id": null,
6
"location_id": "5d73d3d0a8120df48e6cd1be", // JT Beauty Supply
7
"status": "SETTLED"
8
}
Copied!

Structure of the Enriched Info Object

Key
Type
Description
category
string
General category of the expense (e.g. "cash", "entertainment", "food&drink", "health", "services", "shopping", "transfer", "transportation", "travel"). Simplified / aggregated based on internal logic (similar to Merchant Category Codes / MCCs used by card processors). Please note that category is assigned according to the transaction rather than Merchant Profile (i.e. multiple transactions with different categories can be matched to the same Merchant Profile).
entity_id
string
Entity ID (i.e. the unique identifier that maps to the business entity / Corporate Entity Profile associated with the transaction).
facilitator_id
string
Facilitator ID (i.e. the unique identifier that maps to the facilitator / Facilitator Profile associated with transaction).
location_id
string
Location ID (i.e. the unique identifier that maps to the specific retail location / Location Profile associated with the transaction)
status
string
The status for the merchant information in the Knowledge Repository. The value can either be SETTLED or PENDING.
One-off locations (e.g. a "mom-and-pop" location that is not part of a chain or other larger corporate entity) may only have a location_id (i.e. you will find both entity_id: "null" and facilitator_id: "null").
Please also note that you may also find location_id: "null" (e.g. for an online-only transaction for Netflix facilitated by PayPal)
Lastly, if the business is not currently confirmed in our Knowledge Repository, then all values associated with the enriched_info attached to the transaction may be "null". Additionally, if a transaction was not matched to a Merchant Profile in the repository, status will be "PENDING" (it may take up to 48 hours to review and update information in the repository).

Merchant Profiles

The Knowledge Repository consists of Merchant Profiles that represent the businesses we provide enriched financial data about. A Merchant Profile can represent:
    a larger business or corporate entity,
    a specific retail location, or
    a facilitator.
Please refer to basic details and examples below.

Merchant Profile Basic Details

Merchant ‌‌Profile
Details
Examples ‌‌
Corporate Entity Profile
Profile for a business or corporate entity (e.g. a restaurant or store chain).
McDonald's Walmart 7-Eleven
Location Profile
Profile for a specific retail location (e.g. a singular business location or a franchise location).
Singular Business Location Example "Sunshine Convenience Market" ‌‌ Franchise Location Example "MCDONALD S F1063 LOS ANGELES CA 90016"
Facilitator Profile
Profile for a payment facilitator, hotel/discount travel facilitator, or other type of facilitator for the transaction. Please note that payment facilitators are in control of transaction formatting and use their own formats that may restrict our Enrichment service's ability to identify a final merchant for a transaction (e.g. by prepending an abbreviated code, followed by an asterisk, followed by a short transaction description that may be truncated such that we are unable to parse a merchant name). We provide facilitator information as part of our effort to transparently provide as much information as possible for each transaction.
Payment Facilitator Examples PayPal Apple Pay Google Pay Venmo Square Cash App ‌‌ Hotel / Discount Travel Facilitator HotelTonight Expedia ‌‌ Other Facilitators Kickstarter Indiegogo ActBlue WinRed
Please note that a retail location that is part of a larger business or corporate entity will have its own Location Profile and will reference the Corporate Entity Profile of its parent company. A singular business location (e.g. a "mom and pop" operation with only one location) will have a Location Profile but will not reference a parent company (i.e. will not reference a Corporate Entity Profile).

Merchant Profile Examples

Corporate Entity Profile
Location Profile
Facilitator Profile
1
{
2
"_id": "5bde7b198ddd931c7ee7d0de",
3
"address": {
4
"city": "Oak Brook",
5
"country_code": "US",
6
"loc": [
7
41.84754,
8
-87.97179
9
],
10
"postal_code": "60523",
11
"street1": "2111 Midwest Rd",
12
"street2": null,
13
"subdivision": "IL"
14
},
15
"analytics": {},
16
"logo": "https://cdn4.synapsefi.com/uploads/2020/01/03/1lcwyJFj8OMG0fb0vqiUTVCQHtamLKDRp6WAnESY5Ixe73uNP4.png",
17
"name": "McDonald's",
18
"official_page": "https://www.mcdonalds.com/",
19
"phone_number": {
20
"country_code": "1",
21
"national_number": "8884244622"
22
},
23
"scope": "entity"
24
}
Copied!
1
{
2
"_id": "5d8010fb33c4bef4facee888",
3
"address": {
4
"city": "Los Angeles",
5
"country_code": "US",
6
"loc": [
7
34.03021,
8
-118.33469
9
],
10
"postal_code": "90016",
11
"street1": "2838 Crenshaw Blvd",
12
"street2": null,
13
"subdivision": "CA"
14
},
15
"analytics": {},
16
"name": "McDonald's",
17
"phone_number": {
18
"country_code": "1",
19
"national_number": "3237310046"
20
},
21
"scope": "location"
22
}
Copied!
1
{
2
"_id": "5bde7b198ddd931c7ee7d0e0",
3
"address": {
4
"city": "San Jose",
5
"country_code": "US",
6
"loc": [
7
37.37696,
8
-121.92266
9
],
10
"postal_code": "95131",
11
"street1": "2211 N 1st St",
12
"street2": null,
13
"subdivision": "CA"
14
},
15
"analytics": {},
16
"logo": "https://cdn4.synapsefi.com/uploads/2020/03/06/d2BYQAtzO39x0VZu05qL4UcMajsFWE7rgDlRIbe8fTvkhi1Swo.jpeg",
17
"name": "PayPal",
18
"official_page": "https://www.paypal.com/",
19
"phone_number": {
20
"country_code": "1",
21
"national_number": "8882211161"
22
},
23
"scope": "entity"
24
}
Copied!

Transaction Categories

We similarly classify transactions from businesses by functionally combining their transactions into the following general categories:
Category
Examples
cash
cash disbursements (e.g. manual and ATMs)
entertainment
movies, amusements parks, shows, exhibits, digital subscriptions
food&drink
restaurants, fast food, grocery, alcohol & bars, delivery service facilitators (e.g. DoorDash, UberEats, GrubHub, etc.)
health
medical care, pharmacies, doctors, health practitioners
services
other services not classified as "entertainment," "health," or "transportation" (e.g. utilities, insurance, education, laundry, beauty shops, repair shops, etc.)
shopping
clothing retailers, electronics retailers, online merchants
transfer
person-to-person (P2P) money transfers (Cash App, Venmo, Paypal, Apple Pay, etc.)
transportation
public transportation, ridesharing (e.g. Uber/Lyft), taxi, parking, service stations, auto supplies, fuel
travel
car rentals, airlines, hotels, travel agencies, cruises, hotel/discount travel facilitators (e.g. HotelTonight, Expedia, etc.)

Implementing the Enrichment Service

How your platform chooses to pull data from our Knowledge Repository will vary based on the maturity of your platform and the size of your user base. An early-stage startup and a large enterprise operation will have different priorities in terms of optimizing for speed of development vs maximizing efficiencies at scale. Here are three suggestions:
    Early-Stage Approach (suitable for early-stage startups or for initial rapid prototyping)
    Growth Approach (suitable for growth-stage companies beginning to scale up operations)
    Enterprise Approach (suitable for enterprises performing operations at scale)

Early-Stage

This approach is by far the easiest to implement, but is an inefficient solution at scale.
Each time you receive the transaction stream (see: View Transaction and Subscriptions), you extract the relevant Entity ID, Facilitator ID, and/or Location ID to then perform the subsequent API call(s) necessary to retrieve the relevant Merchant Profiles associated with the ID(s) (See: View Enriched Data).
This approach means that you will be performing (and therefore repeating) distinct API calls to retrieve Merchant Profiles from the Knowledge Repository each time you process a new transaction.

Growth

This approach attempts to strike a balance between development time, ease of implementation, and scalability, but it is a less efficient approach than the Enterprise approach below.
At the user device level, cache knowledge objects (i.e. aggregate unique IDs) and associated Merchant Profiles locally for quick retrieval.
This approach will require you to refresh Knowledge data on user devices regularly (e.g. every 72 hours), and also means that you will be storing more data on user devices than is technically relevant to them and may have periods where locally cached data is temporarily out of sync with the "true" data in the Knowledge Repository.

Enterprise

This approach is the ideal/recommended way to use data gathered from the Knowledge Repository at scale as it is the most efficient for your operations.
At the server level, collect and cache all unique Merchant Profiles (as well as periodically check for new Merchant Profiles) to be able to retrieve up-to-date information from the Knowledge Repository without having to perform additional calls to our API.
Last modified 6mo ago