Skip to content

API documentation for Easy Enrichment - Transaction enrichment with AI

Notifications You must be signed in to change notification settings

AI-Factory-Dev/easyenrichment-api

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 

Repository files navigation

Easy Enrichment API — Transaction Enrichment with AI

The simplest, most affordable transaction enrichment API. Turn raw bank transaction descriptions like AMZN MKTP US*2K4X9Y1Z0 into structured merchant data — name, category, logo, contact info, and more — with a single API call.

API Status Pricing Documentation


Why Easy Enrichment?

Most transaction enrichment providers — Plaid Enrich, Mastercard Ethoca, Visa Merchant Search, Ntropy — require enterprise contracts, sales calls, and hidden pricing. Easy Enrichment is different:

Feature Easy Enrichment Plaid Enrich Ntropy Mastercard Ethoca Visa Merchant Search
Public pricing 1-2¢/call Contact sales Contact sales Enterprise only Enterprise only
Free trial 20 free calls 200 calls 2,000 calls No No
No sales call needed Sign up & go Depends Depends Required Required
Batch support Up to 100/req Yes Yes N/A N/A
Response time ~500ms ~200ms ~100ms N/A N/A
AI-powered Claude AI ML models Custom LLM Rule-based Rule-based
Subscription detection Yes Yes Yes No No
Logo URLs Yes Yes No Yes No
Carbon footprint Yes No No No No
Minimum commitment $0 Varies Free tier Enterprise Enterprise

Who is this for?

  • Indie developers and startups building fintech apps who don't want to negotiate enterprise contracts
  • Personal finance apps that need merchant names, logos, and categories
  • Accounting software that needs clean transaction categorization
  • Banks and neobanks looking for a simple, cost-effective enrichment layer
  • Anyone who tried to parse POS DEBIT VISA CHECK CARD 4821 TARG*T 000009834 and gave up

Quick Start

curl -X POST https://api.easyenrichment.com/enrich \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"description": "AMZN MKTP US*2K4X9Y1Z0"}'

Response:

{
  "success": true,
  "data": {
    "merchant_name": "Amazon",
    "category": "Shopping",
    "categories": ["E-commerce", "Shopping", "Retail"],
    "subcategory": "Online Marketplace",
    "business_type": "E-commerce Platform",
    "mcc_code": "5942",
    "is_chain": true,
    "is_subscription": false,
    "is_online_only": true,
    "domain": "amazon.com",
    "logo_url": "https://img.logo.dev/amazon.com?token=pk_xxx&size=128",
    "brand_id": "amazon_us",
    "country": "US",
    "contact_phone": "+1-888-280-4331",
    "contact_email": "cs-reply@amazon.com",
    "support_url": "https://www.amazon.com/gp/help/customer/display.html",
    "co2_category": "medium",
    "confidence": 0.98,
    "description": "Amazon Marketplace purchase"
  },
  "billing": {
    "cost_cents": 1,
    "balance_cents": 19
  }
}

Sign up at easyenrichment.com to get your API key. 20 free calls included — no credit card required.


Base URL

https://api.easyenrichment.com

Authentication

Include your API key in the Authorization header:

Authorization: Bearer enrich_xxxxxxxxxxxx

Get your API key from the dashboard after signing up.

Security: Never expose your API key in client-side code, mobile apps, or public repositories. Use it only from your backend server.


Endpoints

POST /enrich — Single Transaction

Enrich one transaction description.

Request Body

Parameter Type Required Description
description string Yes Raw bank transaction description

Example:

curl -X POST https://api.easyenrichment.com/enrich \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"description": "UBER *TRIP HELP.UBER.COM"}'

POST /enrich/batch — Batch Enrichment

Enrich up to 100 transactions in a single request. Each transaction is billed individually.

Request Body

Parameter Type Required Description
transactions string[] Yes Array of descriptions (max 100)

Example:

curl -X POST https://api.easyenrichment.com/enrich/batch \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "transactions": [
      "NETFLIX.COM",
      "SPOTIFY SUBSCRIPTION",
      "AMZN MKTP US*2K4X9Y1Z0"
    ]
  }'

GET /usage — Usage Statistics

Check your current usage and limits.

curl https://api.easyenrichment.com/usage \
  -H "Authorization: Bearer YOUR_API_KEY"

GET /payments/balance — Account Balance

Check your current credit balance.

curl https://api.easyenrichment.com/payments/balance \
  -H "Authorization: Bearer YOUR_API_KEY"

Response Fields

Every successful enrichment returns these fields:

Field Type Description
merchant_name string Clean, readable merchant name
category string Primary spending category
categories string[] All applicable categories
subcategory string Specific sub-category
business_type string Type of business (e.g., "Streaming Service")
mcc_code string Standard Merchant Category Code
is_chain boolean Part of a chain/franchise?
is_subscription boolean Recurring payment?
is_online_only boolean Online-only merchant?
domain string Merchant website
logo_url string Direct URL to merchant logo
brand_id string Unique brand identifier
country string Country code (ISO 3166-1)
contact_phone string Support phone number
contact_email string Support email
support_url string Help/support page URL
co2_category string Carbon footprint (low/medium/high)
confidence number Confidence score (0-1)
description string Human-readable description

Pricing

Transparent, public pricing. No sales calls. No enterprise contracts.

Purchase Credits Per API Call Savings
$10 500 2.0¢
$25 1,666 1.5¢ 25% off
$50 4,166 1.2¢ 40% off
$100 10,000 1.0¢ 50% off
  • Free trial: 20 API calls on signup, no credit card
  • No monthly fees. Buy credits, use them whenever
  • Never expires. Credits don't have an expiration date
  • Enterprise? Contact us for custom volume pricing

How it compares

  • Plaid Enrich: ~$1.50/user/month, requires sales call, US/Canada only
  • Ntropy: Free tier then custom pricing, requires approval
  • Mastercard Ethoca: Enterprise contracts only, aimed at card issuers
  • Visa Merchant Search: Enterprise only, designed for acquirers/issuers
  • Easy Enrichment: 1¢/call, sign up in 30 seconds, works globally

Error Handling

HTTP Code Meaning
200 Success
400 Bad request — invalid parameters
401 Unauthorized — bad or missing API key
402 Payment required — insufficient balance
429 Rate limited — slow down
500 Server error

Error response:

{
  "success": false,
  "error": {
    "code": "INSUFFICIENT_BALANCE",
    "message": "Insufficient balance. Please add funds."
  }
}

Rate Limits

Limit Value
Per minute 100 requests
Per day 10,000 requests

Need more? Contact us for higher limits.


Code Examples

Python

import requests

API_KEY = "YOUR_API_KEY"

def enrich(description):
    r = requests.post(
        "https://api.easyenrichment.com/enrich",
        headers={"Authorization": f"Bearer {API_KEY}"},
        json={"description": description}
    )
    return r.json()

result = enrich("STARBUCKS STORE 12345")
print(result["data"]["merchant_name"])  # "Starbucks"
print(result["data"]["category"])       # "Food & Drink"
print(result["data"]["is_chain"])       # True

Node.js / TypeScript

const API_KEY = 'YOUR_API_KEY';

async function enrich(description: string) {
  const res = await fetch('https://api.easyenrichment.com/enrich', {
    method: 'POST',
    headers: {
      'Authorization': `Bearer ${API_KEY}`,
      'Content-Type': 'application/json',
    },
    body: JSON.stringify({ description }),
  });
  return res.json();
}

const result = await enrich('STARBUCKS STORE 12345');
console.log(result.data.merchant_name); // "Starbucks"

cURL

curl -X POST https://api.easyenrichment.com/enrich \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"description": "STARBUCKS STORE 12345"}'

Batch (Python)

import requests

API_KEY = "YOUR_API_KEY"

transactions = [
    "NETFLIX.COM",
    "UBER *TRIP",
    "SPOTIFY P1234",
    "AMZN MKTP US",
    "STARBUCKS #9281"
]

r = requests.post(
    "https://api.easyenrichment.com/enrich/batch",
    headers={"Authorization": f"Bearer {API_KEY}"},
    json={"transactions": transactions}
)

for item in r.json()["data"]["results"]:
    print(f"{item['merchant_name']:20} | {item['category']}")

Use Cases

Personal Finance Apps

Enrich transaction feeds to show clean merchant names, logos, and spending categories. Replace cryptic bank descriptions with something users can actually understand.

Accounting & Bookkeeping

Automatically categorize expenses using MCC codes and category data. Detect subscriptions and recurring charges for better cash flow analysis.

Banking & Neobanks

Add merchant logos and clean names to transaction history. Detect subscription payments. Provide carbon footprint data for eco-conscious customers.

Fraud Detection

Cross-reference merchant data, domains, and contact info to flag suspicious transactions. Use confidence scores to identify potential mismatches.

Data Analytics

Enrich large transaction datasets for spending analysis, market research, or competitive intelligence. Batch API handles up to 100 transactions per request.


FAQ

Q: How accurate is the enrichment? A: Our AI achieves 90%+ accuracy across common merchants. The confidence field tells you exactly how confident the model is for each result.

Q: What languages/countries are supported? A: The API works with transaction descriptions from any country and in any language. It performs best with English, Spanish, Portuguese, French, and German descriptions.

Q: Are results cached? A: Yes. Repeated queries for the same description are served from cache at no additional cost. Cache TTL is 7 days for high-confidence results.

Q: Is there an SLA? A: We target 99.9% uptime. For SLA guarantees, contact us about enterprise plans.

Q: Can I try before I buy? A: Yes. Sign up for free at easyenrichment.com and get 20 free API calls. No credit card required.


Official SDKs

Language Package Install
Node.js / TypeScript npm npm install easyenrichment
Python PyPI pip install easyenrichment

Node.js / TypeScript SDK

import EasyEnrichment from 'easyenrichment';

const client = new EasyEnrichment({ apiKey: 'YOUR_API_KEY' });
const result = await client.enrich('AMZN MKTP US*2K4X9Y1Z0');
console.log(result.data.merchant_name); // "Amazon"

View Node.js SDK →

Python SDK

from easyenrichment import EasyEnrichment

client = EasyEnrichment(api_key="YOUR_API_KEY")
result = client.enrich("AMZN MKTP US*2K4X9Y1Z0")
print(result["data"]["merchant_name"])  # "Amazon"

View Python SDK →


Links


Built by Easy Enrichment — Transaction enrichment that just works.