| Day | Total Sales | Refunded | Completed | Info Needed |
|---|
| Month | Total Sales | Refunded | Completed | Info Needed |
|---|
| Rank | State | Known Leads | Partials | Checkout Abandoned | Gross Sales | Refunds | Net Sales | Checkout Conversion | Net Sales / Lead |
|---|
| Date | Name / Email | Phone | Stage | Source | Campaign | Form % | IP | Device | Actions |
|---|
Notify your team by email when a lead hits a trigger. These go to internal recipients — not to the lead.
Parameters: m = message label, b = business, u = destination URL (only your own domains allowed), cid = optional custom click id.
| Time | Msg | Business | IP | Location | ISP | Device | Browser | Click ID |
|---|
Every product needs at least one live gateway. Weights are relative shares inside a product — 70 and 30 split traffic 70/30, and so do 7 and 3. Set a weight to 0 or flip a gateway off to pull it out of rotation without losing the link.
Your funnel fetches this and picks a gateway itself — no key needed, and it changes the moment you save a weight here.
/api/merchants/config
{}
const cfg = await fetch('/api/merchants/config').then(r => r.json());
const p = cfg.products[serviceType]; // 'standard' | 'extended'
// One random draw, one winner — the ranges already encode the weights.
const r = Math.random() * p.total_weight;
const gateway = p.gateways.find(g => r >= g.range_start && r < g.range_end) || p.gateways[0];
window.location = gateway.url; // gateway.merchant tells you who took it
Create and remove CRM logins. Only administrators can see this tab.
Send a POST request to create or update a lead. Matches by lead_id first, then email.
/api/postback
Content-Type: application/json
x-api-key: YOUR_API_KEY (optional when API_KEY=changeme)
| Field | Type | Description |
|---|---|---|
| lead_id | string | Optional. Reuse existing lead UUID to update it. |
| string | Used for dedup if lead_id not provided. | |
| first_name | string | |
| last_name | string | |
| phone | string | |
| company | string | |
| stage | string | One of the pipeline stages below. |
| source | string | e.g. "google", "facebook" |
| domain | string | Landing page domain |
| campaign | string | Campaign name or ID |
| utm_source | string | |
| utm_medium | string | |
| utm_campaign | string | |
| utm_term | string | |
| utm_content | string | |
| referrer | string | Full referrer URL |
| ip_address | string | |
| user_agent | string | |
| browser | string | e.g. "Chrome 124" |
| device_type | string | "desktop" / "mobile" / "tablet" |
| form_completion_percent | number | 0–100 |
| form_fields_completed | number | |
| form_fields_total | number | |
| custom_data | object | Any extra key/value pairs |
| force_stage | boolean | true = allow going backwards in stage |
curl -X POST http://localhost:3000/api/postback \
-H "Content-Type: application/json" \
-d '{
"email": "john@example.com",
"first_name": "John",
"stage": "Form Started",
"source": "google",
"domain": "myeinregistry.com",
"campaign": "llc-spring-2026",
"utm_source": "google",
"utm_medium": "cpc",
"utm_campaign": "llc-spring-2026",
"ip_address": "192.168.1.1",
"browser": "Chrome 124",
"device_type": "desktop",
"form_completion_percent": 10,
"form_fields_total": 12
}'
curl -X POST http://localhost:3000/api/postback \
-H "Content-Type: application/json" \
-d '{
"email": "john@example.com",
"stage": "Application Submitted",
"form_completion_percent": 100,
"form_fields_completed": 12,
"form_fields_total": 12
}'
Look up an order's fulfillment status by order number — for your funnel or a customer "track my order" page. Authenticated by API key.
/api/order-status?order=ORD-AB12CD
When status is Completed, the response also includes the delivery_date and the document file_location (currently a placeholder URL).
curl "http://localhost:3000/api/order-status?order=ORD-AB12CD" \
-H "x-api-key: YOUR_API_KEY"
{
"found": true,
"order_number": "ORD-AB12CD",
"status": "Completed",
"completed": true,
"last_updated": "2026-07-15T18:30:00.000Z",
"delivery_date": "2026-07-15T18:30:00.000Z",
"ein_number": "12-3456789",
"file_location": "https://myeinregistry.com/documents/ORD-AB12CD"
}
| Method | Path | Description |
|---|---|---|
| GET | /api/order-status | Order status by number. Query: order (API key auth) |
| GET | /api/leads | List leads. Query: stage, search, source, campaign, from, to, page, limit |
| GET | /api/leads/:id | Get single lead + stage history |
| PUT | /api/leads/:id/stage | Manually update stage. Body: {"stage": "Paid"} |
| DELETE | /api/leads/:id | Delete lead |
| GET | /api/analytics | Dashboard analytics |
| GET | /api/merchants/config | Checkout routing map per product. Query: product (no key needed) |
Sign in to manage leads, orders & fulfillment.