> ## Documentation Index
> Fetch the complete documentation index at: https://docs.moneyline.co/llms.txt
> Use this file to discover all available pages before exploring further.

# Migration from Heron Data

> Moneyline is a drop-in replacement for Heron Data's transaction enrichment API. This guide maps Heron endpoints to Moneyline equivalents.

## Endpoint Mapping

| Heron Endpoint | Moneyline Equivalent | Notes |
| - | - | - |
| `POST /api/end_users` | `POST /v1/submissions` | `end_user_id` → `external_id` |
| `GET /api/end_users` | `GET /v1/submissions` | Same pagination pattern |
| `GET /api/end_users/:id` | `GET /v1/submissions/:id` | |
| `DELETE /api/end_users/:id` | `DELETE /v1/submissions/:id` | |
| `POST /api/end_users/:id/transactions` | `POST /v1/transactions/bulk` | Pass `submission_id` in the body; field mapping below |
| `GET /api/end_users/:id/transactions` | `GET /v1/transactions?submission_id=:id` | Filtered by query param, not nested under the submission |
| `POST /api/transactions/enrich` | `POST /v1/submissions/:id/transactions/enrich` | Now submission-scoped |
| `GET /api/end_users/:id/categories` | `GET /v1/categories` | Now global taxonomy |

## Authentication

| Heron | Moneyline |
| - | - |
| `Authorization: Basic <base64>` | `Authorization: Bearer <api_key>` |

Create a Moneyline API key in the dashboard, then replace your auth header.

## Transaction Field Mapping

| Heron Field | Moneyline Field | Notes |
| - | - | - |
| `heron_id` | `id` | |
| `end_user_id` | `submission_id` | |
| `original_description` | `description` | |
| `amount` | `amount` | Same sign convention |
| `timestamp` | `date` | ISO 8601 |
| `balance` | `balance` | |
| `currency` | `currency` | |
| `category_label` | `categories[0].name` | Now supports multiple categories |
| `category` | `categories[0].slug` | |
| `merchant.name` | `merchant_name` | |
| `merchant.mcc_code` | `mcc_code` | |
| `is_recurring` | `is_recurring` | |

## Category Mapping

Moneyline uses a compatible category taxonomy. Most Heron categories map 1:1:

| Heron Category | Moneyline Category |
| - | - |
| `income.salary` | `revenue.salary` |
| `income.sales` | `revenue.sales` |
| `expense.rent` | `expenses.rent` |
| `expense.utilities` | `expenses.utilities` |
| `expense.payroll` | `expenses.payroll` |
| `transfer.internal` | `transfers.internal` |
| `fee.bank` | `fees.bank` |
| `fee.nsf` | `fees.nsf_overdraft` |

## Migration Steps

1. **Create a Moneyline API key** in the dashboard
2. **Update your API base URL** from `https://app.herondata.io` to `https://api.moneyline.co`
3. **Update auth header** from Basic to Bearer
4. **Map field names** per the tables above
5. **Test with a single submission** before migrating all traffic
6. **Update webhooks** — Moneyline uses `X-Moneyline-Signature` (HMAC-SHA256)

## SDK Migration

### Python: Heron → Moneyline

```python theme={null}
# Before (Heron)
from heron import Heron
client = Heron(api_key="heron_...")

# After (Moneyline)
from moneyline import Moneyline
client = Moneyline(api_key="ml_...")
```

### Node.js: Heron → Moneyline

```typescript theme={null}
// Before (Heron)
import { HeronAI } from 'heronai';
const client = new HeronAI({ apiKey: 'heron_...' });

// After (Moneyline)
import { Moneyline } from '@moneyline/sdk';
const client = new Moneyline({ apiKey: 'ml_...' });
```

## What's New in Moneyline

Beyond Heron's enrichment, Moneyline adds:

* **Document processing** — Upload PDFs, auto-classify, parse structured data
* **Full analytics suite** — Scorecard, cashflow, risk score, forecasts
* **Policy engine** — Configurable rules with automated evaluation
* **MCP server** — AI agent integration for LLM-powered workflows
* **CRM integrations** — Salesforce + HubSpot sync
* **Self-hosting** — Run on your own infrastructure


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.