Routy

Account Integrations

Routy signs into the affiliate programs you work with, collects their reports on a schedule, and files the conversions, commissions and payouts next to your own click data.

What this feature does

An account integration connects one of your affiliate accounts to the program it belongs to. Routy signs in on a schedule, pulls the reports that program publishes, maps their columns onto Routy figures, and stores the result alongside your clicks and your spend.

Most publishers end up partnered with more platforms than they planned for. There are the multi-vertical networks: Awin, Impact, ShareASale, FlexOffers, MaxBounty, Tradedoubler. There's affiliate tracking software sitting underneath some of the programs, like Everflow, Affise, Tune, Cake, Post Affiliate Pro, Scaleo, Affiliatly, RavenTrack and TrackBox. iGaming has its own platforms, among them Cellxpert, Affilka, NetRefer, EveryMatrix, Income Access, MyAffiliate, Smartico, Alanbase, Affix and ITMedia. And plenty of operator brands run their own program directly, including bet365, BetMGM, Stake, 1xBet, CloudBet and AmWager. Each one has its own login, its own export schedule, its own name for the same conversion event, and its own idea of which timezone a day is counted in, which is why the reconciliation usually ends up in a spreadsheet that's a day or two behind.

Collection runs one way. Routy reads from the affiliate program and pushes nothing back, because the program's own report is where your conversion was recorded in the first place.

The full list, with the detail for each platform, is on the account integrations hub.

What you'll get out of it

  • Conversions, commissions and payouts from every program you've connected, in the reports you already use, next to the clicks that produced them.
  • Each program's figures in the currency that program pays in. A report whose currency doesn't match the account's is caught during collection instead of being stored as a wrong number.
  • Collection on a cadence set per account: daily, every four days, or weekly.
  • Reports at whatever grain the program publishes, from Click, Day, Tracker, Brand and Month through to Customer where the partner shares per-player activity.
  • Alerts that say whether a failure is yours to fix, the partner's or ours, including one that fires when a partner isn't sharing click-level data with you at all.
  • Control over how each of the program's report columns maps to a Routy figure, with a preview of the numbers before you approve the change.
  • Three account statuses: Active, Inactive, and Closed, which hands the slot in your plan back.

Account-integration reports reach publishers whose affiliate has the feature switched on. If you can't see them at all, that's the switch to ask your account manager about. Per-platform freshness, the report set each program publishes and the settings it takes vary, and the per-platform pages on the hub carry those.

How it actually works

Connecting an account

Each program declares which credentials it needs and the form shows only those: a username and password, an API key, or a client id and secret for the OAuth-style ones. The base URL is usually pre-filled.

Press Test connection and you get one of three answers rather than a generic failure. The partner accepted the credentials. The partner rejected them, and the message says what to do about it, like "iREV rejected the API token (403). Its IP allow-list most likely does not include this platform's egress IP." Or Routy couldn't reach the partner at all, in which case nothing has been concluded about your credentials and nothing in the form is cleared. Test connection also works on MAP accounts now, which used to answer that they didn't support it.

Some programs won't authenticate at all until a particular setting is filled in. Quint's api3 summary report rejects every request that lacks an ap-brand value. An integration now declares which of its settings are required and at which level, so the form blocks a save that would create a connection guaranteed to fail, and a run whose required setting can't be resolved anywhere ends with Missing required settings: apBrand instead of an opaque extraction error.

How often it collects

Each account sits in one of three tiers. Tier 1 collects daily, Tier 2 every four days, Tier 3 weekly. Your plan caps how many accounts can sit in Tier 1 and Tier 2, and Tier 3 is uncapped and takes everything else. A new account collects daily for its first 14 days so it isn't starved while it builds up history.

Tiers are scored every day, led by USD commission with signups and first-time deposits as the tiebreaker, weighting the last 7 days above the last 30. You can pin an account to a tier yourself as long as that tier has a free slot; moving one down to Tier 3 is always allowed. The simulator shows the proposed buckets with their scores and remaining slots, you drag accounts between them, and nothing changes until you press Apply. An account dropping to a slower tier gets you a notification saying so, and promotions are silent.

You can still trigger a run by hand, but no more often than the account's own cadence, so a Tier 3 account can be re-run at most once every 7 days.

Collections no longer all start on the same second. Every account on one schedule used to become due at the same instant, so a partner could receive requests for an entire estate in a single spike and answer by slowing down or not answering at all. Each account now starts a few minutes into its window. A collection set for 02:00 still happens in the 02:00 hour.

Routy also caps how hard it hits any one partner, both as a limit on runs at the same moment and as a limit on runs started per rolling window. Those caps are set per network and per brand by your account manager, not on your side. A run that meets one is parked and redelivered rather than failed, so no task is marked failed and no alert is raised. If an integration ran later than you expected, that's a likely reason.

Settings, and where each value came from

Integration settings resolve across four levels, software to program to affiliate to account, and the most specific one wins. You set a value once at the level it belongs to rather than on every account. The resolved view returns the effective value for each key, the level it won at, and the value stored at every level, so a setting you didn't expect can be traced back to where it was set. Reading that view needs account-manager rights. A required setting counts as satisfied when any level in the chain supplies it, or when the schema carries a default.

Turning a program's report columns into your figures

A program's report arrives as a table with its own headers: Registrations, NGR, FTD Count, Date. Each one has to be mapped to a Routy concept before its values turn into stats. The Report Columns screen for an account lists one row per column in your report, what it currently maps to, and a suggested mapping where Routy recognises the header.

A mapping you edit becomes a draft, and a draft doesn't count towards your figures. Previews use drafts; your real numbers come from approved mappings only. So the order is edit, preview, approve, and the row says as much where you changed it, with Approve and Undo on it. Every mapping that was already working was marked approved when this shipped, so nothing you had set up stopped counting.

The preview is computed from collections Routy has already stored. Nothing is fetched from the partner and nothing is written, so tuning a mapping over and over can't trip a vendor's rate limit or move your stats. GET /v1/integrations/accounts/{accountId}/reports/preview takes reportBy (Click, Day, Tracker, Brand, Month or Customer, defaulting to Day), from and to, and a limit between 1 and 500 that defaults to 50. The window defaults to 30 days and 31 is the longest it will compute; a longer range comes back as a 400 that names both dates, rather than being trimmed to 31 with no sign of it. An empty result carries an explanation saying which of the two reasons it was: no report stored for those dates, or mappings that produce nothing from the reports there are.

You can approve your own mapping. That used to be your account manager's job, which left an edited mapping sitting as a draft with no way to finish it off. Remove deletes your version of a column's mapping and puts the column back to whatever Routy had for it, or to not mapped if there wasn't anything. Removing is permanent and it only ever touches your copy, so a mapping inherited from the program or software level is shared with other accounts and gets refused rather than deleted. Each row shows where its mapping came from, with the same badge in the flat list as in the grouped view.

A format, condition or formula typed wrong is now rejected at save, with the message beside the field it belongs to, so you find out while the mapping is still in front of you rather than on the next collection hours later. Date columns need a format such as dd/MM/yyyy, and a save without one is refused.

When a run doesn't work

A run that stalls is detected and revived, one waiting on a rate limit backs off, and one that needs something from you is marked blocked instead of being retried forever. A run can also finish partway: login and most reports worked, some dates didn't, and it ends as "N of M report(s) failed to extract" rather than claiming a clean success.

Run history no longer shows you Routy's internal error text. Where a failure is on our side, the message is a plain sentence saying we've been notified and there's nothing for you to do. Failures you can act on still carry their real message: wrong credentials, an IP allow-list that doesn't include us, a document or an action waiting in the partner's portal. Test connection behaves the same way.

Some alerts exist to tell you a partner isn't sharing something. Where a partner doesn't send the report that ties each registration and deposit to the click behind it, conversions still show in your daily totals but can't be credited to a link, campaign or traffic source. You get an alert on the account at Warning severity, by email too, naming the two fixes: ask your affiliate manager at the partner to enable dynamic-tag reporting, or set up a postback. It closes itself on the first collection after the report appears, and it covers Affilka-based partners for now. A tracker-level report with no tracker column in it now gets flagged the same way, since nothing in that report can be attributed either.

Settings worth knowing on particular platforms

Cellxpert reports are configurable. You choose which breakdowns each report is grouped by, from day, tracking code, brand, language, creative type, size and name, and you can narrow any of them to a single brand, tracking code or creative. Backfills fetch a date range in one request per report instead of one request per day.

iREV accounts collect daily and per-offer performance alongside the raw conversion feed: visitors, registrations, FTDs and commission, using whichever metrics your iREV account is entitled to. Currency defaults to USD and Timezone to UTC. Set the timezone to match your iREV reporting timezone or your daily totals will be counted across a different midnight than the portal's. The per-offer breakdown can be switched to offer URL, advertiser, brand, country, goal, goal type, traffic source, or one of your aff_sub values.

MAP brands are recognised per collection, so a brand that moves to MAP's rebuilt portal switches to the new data feed on its own with nothing to reconfigure. Brands already moved across also return a player report, a row per player with registration and first-deposit dates, deposits, revenue and your commission. Four optional settings come with it: which tracking variable your click report is grouped by (CID, PID, or VAR1 to VAR5), whether to pull every available column or the portal's standard set, a filter to specific brands, and the row cap for the player report.

ReferOn accounts have an Affiliate scope setting. The default pulls the login you connected and nothing beneath it, which is almost always right, because each sub-affiliate should be connected to Routy as an account in its own right. All affiliates pulls the login plus everything under it, and it's only safe when those sub-affiliates aren't connected separately, or their traffic arrives twice and your numbers come out overstated. Report grouping, the measures pulled and the page size are editable settings on these accounts too. Changing any of them doesn't backfill, so ask support to re-run the dates you want re-collected.

Income Access accounts can choose which report the figures come from. The default, Earnings, carries revenue and commission in detail and no acquisition figures at all, so no registrations, no first deposits, no active player counts. A Tracker report setting points the account at a report that includes them, with Tracker group by for the breakdown. "Member Report - Detailed Aggregate" is usually the one to pick: it adds the acquisition figures and keeps the per-site and per-tracker detail. Quick Summary carries the same figures as one daily total per brand, with no site or tracker detail.

Buffalo-based brands now retry a refused request more patiently, wait as long as the brand asks for when it says so, and stop a run that's clearly over the brand's limit instead of spending minutes on it. Dates left uncollected come back on the next cycle. Where a brand supports it, a month can be fetched in one request per feed rather than one per day, which is thirty times fewer requests and makes a backfill much faster. That option is off by default, and support turns it on per account after checking the brand really does return the full range; where it doesn't, collection falls back to day by day.

Casino Controller and Income Access accounts can use the connection's proxy setting, which both integrations previously ignored. Turning it on routes collection through a different network route, which is what gets past a network blocking the usual one.

Account status

An account is Active, Inactive or Closed. Active collects stats and its links redirect. Inactive stops both and keeps everything, and it still uses one of the account slots in your plan. Closed stops both and frees the slot, and your history stays in your reports either way. A closed account can be re-opened when you have a free slot. Before August 2026 there were eight statuses: Enabled, New and Approved are now Active, Suspended is Inactive, and Disabled, Obsolete and Duplicated are Closed.

Why this is worth doing

Done by hand, this is a weekly round of logging into each program, exporting a CSV, converting the currencies and assembling a view where the numbers line up. For a publisher holding twenty or thirty accounts it's most of a day.

The second argument is about which decisions you can defend. Per-program numbers that sit under the same attribution rules let you decide what to push and what to drop on what the integrations collected, rather than on what you remember from last quarter. A program paying less than you assumed shows up in that comparison instead of staying an impression.

For iGaming publishers, the continuous feed is also what carries player value over time. A casino player's worth to your account accumulates over weeks and months, and the per-player reports from Cellxpert, Stake and the MAP brands carry registration dates, first-deposit dates, deposits, revenue and commission, so you get the curve and not only the first-deposit event.

Two costs are worth stating. Setup is a few minutes per account, and every active or inactive account uses a slot in your plan, which is why Closed exists. And a collection is only as complete as what the partner publishes: where a program won't share click-level data with you, Routy raises an alert and names the fixes, but it can't produce a report the partner is holding back.

Frequently asked questions

Which platforms are supported?

Generic affiliate networks, affiliate tracking software, iGaming-specific platforms and operator brands. The account integrations hub has the full list and a page per platform.

How fresh is the data?

That follows the account's tier: daily on Tier 1, every four days on Tier 2, weekly on Tier 3, and daily for any account's first 14 days. The report set each program publishes, and how far back its reports reach, vary by platform and are on the per-platform pages.

Are the integrations bidirectional?

No. Routy reads from the affiliate program and doesn't push conversions back to it, because the program's own report is where the conversion was recorded.

I edited a mapping and my figures didn't move. Why not?

The mapping is almost certainly still a draft, and a draft counts in previews only. Open the column and approve it.

Can I undo a mapping change?

Yes. Remove deletes your version of that column's mapping, and the column goes back to the mapping Routy had for it, or to not mapped if there wasn't one. It's permanent, and it only ever removes your own copy.

Does this work for currencies that aren't USD or EUR?

Yes. Each program's figures keep the currency that program pays in, and a report arriving in a currency that doesn't match the account's is caught during collection rather than stored as a wrong number. Some integrations, iREV among them, take a currency setting on the account saying what the money figures get converted to.

What about platforms that aren't on the list?

Push the data in yourself through the Routy API. New platform integrations get added on customer demand.

An account says the problem is on Routy's side. What should I do?

Nothing. Your credentials and settings aren't implicated, collection resumes on the account's next scheduled run, and missed days are re-requested on later runs so the gap fills in. Don't re-enter your credentials or re-create the account integration. If you want a status update, or it's still open after a day, ask your account manager.

Why did a collection run later than the time I set?

Either it started a few minutes into its window, which is how collections are spread across the hour, or it met one of the caps on how hard Routy may hit that partner and was parked and redelivered. Neither is a failure and neither raises an alert.

Ready to try Account Integrations?

Open the integrations section, add your first affiliate account, and press Test connection before you save. Setup is a few minutes per account.