Connects HitPath, Cake, HasOffers, Everflow and Shopify
Revline
What Revline is for
Revline is a revenue dashboard for affiliate marketers who run traffic on more than one network. You add read-only API credentials for each network you work with — HitPath, Cake, HasOffers/TUNE, Everflow, Shopify, or a custom endpoint — and Revline polls all of them on a schedule, normalizes their very different schemas into one comparable number, and pushes a notification to your phone when that number does something worth knowing about. It is built for media buyers, email affiliates and small performance teams who currently keep five network tabs open and add them up by hand.
If you run one network, you do not need this. You log in, you read the number, you are done. The problem starts at network three, when "how much did I make today" stops being a question with an answer and turns into a reconciliation exercise: five dashboards, five definitions of the word today, five payout columns that mean subtly different things, and a running total that lives in your head until you type it into a spreadsheet at midnight.
The dashboard part of this is easy. Any competent developer can draw a chart. The work is upstream of the chart — getting six networks to hand you numbers that are actually comparable, and knowing when one of them is lying by omission. We know the shape of that work because we already built it once: Revline is the sponsor subsystem lifted out of a production email platform, the same code path that sits behind Mailflow, and rebuilt as a product you can point at your own accounts. Everything below comes from integrations that have run against real affiliate accounts, not from reading API documentation.
01 Why don't two networks ever agree on today's revenue?
Because "today" is not a shared definition, and neither is "revenue". Everflow's reporting endpoint takes a numeric timezone id alongside your date range — pass a different id against the same account and the same calendar day returns a different set of conversions. Cake's conversions report treats the end date as exclusive, so asking it for today through today returns nothing at all until you add a day to the upper bound. HitPath answers on a completely different subdomain from its offer API, in CSV, with no header contract to bind you to.
Then there is what each network calls money. HasOffers reports approved payout, which means a conversion you already earned is invisible until the network approves it — your total moves retroactively, days later, and you find out by accident. Everflow reports revenue per conversion. Cake calls the same field price. HitPath gives you an unlabeled CSV column. Shopify does not have a payout concept at all; it has orders, and somebody has to decide what share of an order counts as yours.
So when your Everflow tab says one number and your Cake tab says another and the sum does not match what you remember, nobody is broken. The two systems answered two different questions and both were right. That is the problem Revline exists to solve, and it is a data problem, not a design problem.
02 Which affiliate networks does Revline connect to?
Six network types plus a custom fallback. Each one needs a different credential shape, hits different endpoints, and speaks a different wire format — which is why "just add an API key" hides so much work.
| Network | Auth style | What it reports | Refresh |
|---|---|---|---|
| HitPath | API key posted as a form field | Conversions as CSV, offers as XML | Conversions 5 min · offers 30 min |
| NewHitPath | Bearer token, JSON | Campaign totals, then per-campaign sale detail | Conversions 5 min · offers 15 min |
| Cake | API key plus affiliate ID in the query string | Conversions, performance summary, clicks | Conversions 5 min · offers 15 min |
| HasOffers / TUNE | API key in the query, account ID in the hostname | Approved payout per conversion | Conversions 5 min · offers 15 min |
| Everflow | Custom API-key header, POST body filters | Conversions with revenue and sub IDs | Conversions 5 min · offers 15 min |
| Shopify | Admin API access token header | Orders with line items and totals | Orders 5 min · products 15 min |
| Custom | Whatever your endpoint speaks | Whatever you post in | On write |
Those cadences are per connection and back off on their own when a network starts pushing back. A network that rate-limits you at noon should not still be hammered at 12:05.
The quirks that cost the most time
HasOffers puts your account identifier in the hostname rather than a parameter, and then keeps its suppression and opt-out data behind an entirely separate service that spells the credential parameter differently. Everflow ignores your network's own domain completely and answers from one global API host. Shopify pages with opaque cursors buried in a response header, so you cannot ask for page four — you can only follow the chain. HitPath does not paginate at all; it hands you the whole month as one CSV blob and wishes you luck.
03 How does Revline turn six schemas into one number?
With an explicit mapping layer per network and a shared normalized record on the other side. Every integration is responsible for answering the same small set of questions — when did this convert, how much was it worth, which of my sub IDs came back, and what is its stable identity — and for translating its network's vocabulary into that shape before anything downstream sees it.
The sub IDs alone are a small tour of the industry. Everflow returns sub1 through sub3. Cake returns subid_1 through subid_3. HasOffers calls them affiliate info fields. NewHitPath uses c1, c2, c3. HitPath returns them as unnamed CSV columns you address by position, which means a column added upstream silently shifts your revenue one field to the left. We pin those positions and validate them on read for exactly that reason.
Identity is the harder half. Everflow hands you a real conversion id, so deduplication is free. HitPath hands you nothing usable, so an id has to be manufactured from the conversion timestamp and enough surrounding detail to stay stable across re-polls. Get that wrong and you either double-count on every pass or drop real conversions. This is the single most boring, most load-bearing decision in the whole product, and it is the reason we would not recommend anyone build this in a weekend.
Timestamps get the same treatment. One network sends Unix epoch integers, another a date string in its own timezone, another ISO-8601 with an offset. Revline converts on ingest, stores in UTC, and renders in the timezone you set — so the day boundary is yours, once, everywhere, instead of being inherited six different ways.
04 How are my API keys stored?
Encrypted at rest, write-only in the interface, and never rendered back to your browser. When you save a credential it goes into the database encrypted with the application key; when you reopen the connection form the field is empty rather than pre-filled, because a masked value that can be un-masked by reading the page source is not a secret. Rotating a key means pasting a new one, not revealing the old one.
We ask for read-only reporting keys and nothing more. Several of these networks will happily let software drive their web dashboard with your login and password, and we have written that code before. Revline does not want it. If a number can only be obtained by logging in as you and clicking around, our position is that the number is not available yet, and we would rather say so than build something that breaks the first time a network changes a form field.
Access is scoped per user and per team. A connection carries an explicit list of who may see it, so a contractor working one vertical does not get a view of the whole book of business, and revoking somebody removes their view without touching the credential itself. This is standard practice in the platform and API integration work we do for clients, and it is not the sort of thing you retrofit comfortably.
05 What happens when a network rate-limits or goes down?
The affected network goes stale and everything else keeps working. Partial failure is the normal operating condition of a multi-network integration, so it gets designed for rather than handled as an exception.
Networks fail in creative ways. One of them returns HTTP 200 with the words "please wait" in the response body when it is throttling you, which every naive HTTP client on earth reads as success. Another returns a proper 429. A third simply times out. Revline treats each network's poll as an isolated unit of work with its own timeout, its own retry schedule with backoff, and its own lock so an overrunning poll cannot be started twice by an impatient scheduler.
The rule we care most about: a network that failed to answer is never written down as zero. It is marked stale, with the timestamp of the last figure we actually trust, and the combined total tells you it is incomplete. A dashboard that quietly renders a failed API call as a bad day is worse than no dashboard, because you will act on it.
06 What do the mobile alerts actually tell you?
They tell you the four things that are worth interrupting your evening for. Revenue spiked past a threshold you set. Revenue stalled when it normally would not have. A payout crossed a level you care about. Or — the one that pays for the whole product — a network that was reporting has gone quiet.
That last one is the reason we built alerting before we built a nicer chart. A network returning an empty conversion list looks identical to a slow day. Your traffic could have been paused, your tracking link could have broken, an offer could have been pulled, or the API could just be down; all four render as the same flat line, and none of them announce themselves. Revline knows the difference between "reported zero" and "did not report", and only the second one wakes you up.
Alerts are per network and per threshold, so the network you check obsessively and the one you run a trickle of traffic to do not have to share settings. The point is not more notifications. The point is that you stop refreshing five tabs because the app has agreed to tell you.
07 Can I get access while Revline is in development?
Yes — as a design partner. Revline is in active build and is not open for general sign-up. We are onboarding a small group of affiliates and performance teams against their real network accounts, because the only way to find out that a network changed a field name is to be pulling from it every day while it happens. Join the waitlist below and tell us which networks you run; the ones our partners actually use are the ones that get hardened first.
What you get in return is influence over what ships and a direct line to the people writing it. What we get is the thing no amount of API documentation provides: live accounts, odd edge cases, and the specific ways each network disappoints you. That trade is how we build every product in our app portfolio, and it is the same SaaS product engineering practice we run for client teams — ship narrow, run it against real data early, and let the failures pick the roadmap.
If you would rather talk it through than fill in a form, get in touch and we will walk you through where Revline is today and what it does not do yet.
What it does, function by function
Every Revline function, drawn as a numbered line on one schedule.
Normalizes conversion and revenue fields across networks
One combined revenue total across every connected network
Read-only API credentials encrypted at rest
Per-user and per-team scoping on every connection
Automatic backoff and retry on rate-limited APIs
Stale-data flags when a network stops reporting
Mobile push alerts on revenue thresholds
Demo-led, not self-serve
There is no sign-up form to fill in the dark. Every rollout runs against your real process.
Walkthrough
We demo Revline against your real workflow — your documents, your approvers, your edge cases — not a canned dataset.
Configure
We tune the revenue analytics logic to how your team already works, so the tool fits the process instead of the other way round.
Shape it
As a design partner you help shape Revline against real routes and crews before it opens to everyone.
Be a Revline design partner
Revline is in active development. Join the waitlist and we will reach out as spots open, with a walkthrough tuned to how your team works today.
Related builds
Mailflow
The control plane for email sending infrastructure.
View appStorebridge
Every bucket you own, behind one login.
Join waitlistLedgerline
Finance-ops for teams that outgrew the spreadsheet.
View appFieldshift
Workflow automation for field-service teams.
Join waitlistOur engineering, as a service
The same standards Revline is built on, offered to teams building their own products.
See servicesThe portfolio
Independent companies solving one layer each of the same problem — the portfolio behind Cordytech.
See companies