Why reconciliation is hard in affiliate
Every network invents its own transaction vocabulary: locked, available, reversed, declined, State=REVERSED next to a stale Status=Approved, positive clawbacks, negative clawbacks. Finance and AMs still need one answer: what is pending, what is approved, what is paid, and what was corrected for the month you are closing.
Hi Energy AI reconciles that mess into four normalized lifecycle statuses and reporting surfaces built for monthly payout review.
The four statuses that matter
| Status | Meaning in Hi Energy |
|---|---|
| pending | Not yet locked/approved — still at risk |
| approved | Accepted / locked / available for payout path |
| paid | Settled / paid out on the network’s terms |
| corrected | Reversed, rejected, declined, voided, cancelled, or negative commission |
Cross-network rule of thumb: a negative commission_amount always maps to corrected, even if the raw status token still says something friendlier. When raw fields conflict, the mapper prefers the more severe outcome (for example Impact State=REVERSED over a stale approved status).
Mappings live in network status config and are applied as transactions sync and upsert. Historical rows can be backfilled when mapping rules change.
Where to reconcile in the product
Transaction list + month window
A calendar month is what a network statement covers and what a payout is reconciled against. On transactions, pick a named month (for example 2026-07) instead of hand-typing the first and last day. The list and its Google Sheets export share that month parameter so the spreadsheet matches the month you were looking at.
Filter by normalized status (pending, approved, paid, corrected) the same way the Transactions API does.
Transaction status report
Open Transaction status report for daily counts and KPIs by the four statuses, with network breakdowns and publisher filters (where your role allows).
- Corrected KPI cards describe commissions corrected in the selected period
- Click through to the network status mapping modal to see how each network’s raw tokens land in pending / approved / paid / corrected
- Corrected sales and commission totals use absolute values so networks that sign corrections differently still sum to a meaningful “how much was corrected” number
Age and network views
Use the transaction age and network reports alongside status breakdown when you need unpaid aging or network-level mix — useful when a close question is “how old is pending?” or “which network is driving corrections?”
A practical monthly close checklist
- Pick the statement month on transactions (not a fuzzy trailing 30 days unless that is what the network invoice uses).
- Export or filter paid for the month and compare to the network payout.
- Review corrected with absolute KPIs on the status report — dig into advertisers or networks with large correction volume.
- Spot-check pending that is aging longer than your network’s lock window via the age report.
- When a raw status looks wrong, open the status mapping modal before assuming the feed is broken — many “bugs” are vocabulary differences already normalized.
API, GraphQL, and agents
- REST:
GET /api/v1/transactions?status=corrected(repeatstatusfor multiple values) - GraphQL: filter by normalized status; status timestamps expose
pendingAt/approvedAt/paidAt/correctedAtwhen the network provides them - MCP:
search_transactions/get_transactionwith the same permission model as the app
Bottom line
Transaction reconciliation in Hi Energy is not a separate product silo — it is normalized status + month-scoped lists + status/age/network reports. Map every network into pending / approved / paid / corrected, close on calendar months, and treat corrected as a first-class bucket with absolute KPIs so clawbacks do not disappear in the math.
Frequently Asked Questions
Direct answers to common questions about this topic — optimized for search and AI answer engines.