Monthly affiliate validation checklist
The 12-step checklist for validating affiliate network commissions each month: exports, refunds, partial refunds, duplicates, codes, deadlines and upload.
By The AffCheck team · Updated
Affiliate validation is not a project. It is a routine, like a bank reconciliation: the same twelve steps, in the same order, on a date you decided once. Done that way it is dull and cheap. Skipped for a month, it becomes an archaeology exercise on transactions you are no longer allowed to change.
This page is that routine. It assumes you run one or more networks as an advertiser and refund in Shopify. Every network fact is footnoted to the network's own documentation; nothing here is a rule of thumb dressed up as a policy.
Pick the day, not the month
The first mistake is thinking of validation as a month-end job. It usually is not, for two reasons.
A days-based period runs from the date each sale tracked, not from the first of the month. On Awin, if a commission is not reviewed before the period ends "it will be automatically approved in line with your program's auto-validation settings".1 So on a 30-day period something is expiring every single day, and a monthly pass only works if it is comfortably shorter than the period.
CJ is the exception that sets your date. On the standard locking cycle, corrections for transactions from the previous calendar month have to be sent before the 10th of the current month.3 If you run CJ, the 10th is your deadline and everything else fits around it.
So: take the shortest deadline you actually have, subtract a working week, and put that date in a shared calendar with the networks listed on it. A 15-day Tradedoubler Start period7 cannot be served by a monthly routine at all — that one is fortnightly. A 90-day Rakuten update window6 has room to spare.
The date is a team fact, not a personal one
Whoever is on leave that week, the network still settles. One shared calendar entry, one named deputy, and the export steps written down are the difference between a routine and a person.
The twelve steps
- Read the calendar before the files. Which transactions expire before your next run? Those are the ones this session is for; the rest can wait and will be clearer next month.
- Export pending transactions from every network, on the same day. One file per network, covering the period you are reviewing plus a few days either side. Same day matters: a duplicate check across networks only works on files that describe the same window.
- Export your Shopify orders for the same window, starting a week earlier. Include the financial status, the refunded amount and the cancelled date. An order tracked on the 28th and refunded three weeks later has to be in the file, or you will read it as clean.
- Stack the network files in one sheet, with a network column. This is the step people skip, and it is the one that makes steps 7 and 8 possible. One tab, one row per claim, one column saying which network the claim came from.
- Normalise the order reference.
#1041and1041are the same order to you and different strings to a spreadsheet. Strip the hash, trim the spaces, force it to text, and do it in both files before you match anything. - Match, and sort into four piles. Refunded in full or cancelled; partially refunded; found and kept; not found.
XLOOKUPfrom the network sheet into the Shopify sheet on the normalised reference. - Count the claims per reference.
COUNTIFon the stacked sheet. Anything above one is a group to read as a pair: the same order claimed by two publishers, or by two networks, which no single network can see on its own. - Check the discount codes against their owners. A creator's code on an order claimed by a coupon publisher is the classic finding. You need a list of which publisher owns which code before you can call it — see step 12.
- Check the test and staff orders. Your own test orders, orders placed through an employee's own affiliate link, and anything with your internal tag on it. They are small and they are embarrassing later.
- Decide each pile. Full refunds and cancellations are declines — a correction on CJ, a reversal on impact.com. Partial refunds are amends: on Awin you change the sale amount and the commission is recalculated from it.8 Orders you could not find are not declines; they are usually an export that did not go back far enough. Widen it and look again.
- Write a reason on every row: what happened, when, and the number. "Order #1041 fully refunded on 12 January, refund of £84.00" can be checked by the publisher. "Returned" starts an email thread. Awin's own list of legitimate reasons covers cancelled or fully returned orders, a sale from the wrong marketing source, a breach of programme terms such as unauthorised voucher code use, an order that cannot be fulfilled, and fraud.1 CJ takes a code rather than a sentence:
RETRNfor returned merchandise,DUPOfor a duplicate order.3 - Upload before the earliest deadline, then check it took. On Awin Classic that is Commission → Validate → Batch Process Commission → Manual Upload, from Awin's own Accepted, Declined or Amended template, saved as a
.csv.9 Awin's file rules are worth reading before the first upload — hard-coded values with no formulas, the date format for your programme's locale — and afterwards you open Batch Process History and filter for Failed rows.8 A file that half-failed is worse than one you never sent, because you will believe it worked.
The sheet you only build once
Most of what a validation day costs goes on re-deriving facts you already knew last month. Write them down once, in one tab, and keep it beside the routine:
| Column | What goes in it |
|---|---|
| Network | One row per programme, not per network, if you run more than one programme |
| What a decline is called there | Decline, correction, reversal, cancellation, reclassification — the word their screen uses |
| Your deadline rule | The rule and the number from your own contract, not the published default |
| Where the period is set | The screen, or the name of the person at the network who changes it |
| Export screen | The exact menu path to pending transactions, written out |
| Upload path | The exact menu path, or "email to X", or "API" |
| Code owners | Which publisher owns which discount code or code prefix |
| Test order tag | The Shopify tag your team puts on test and staff orders |
The defaults you can start from — and how solid each one is — are in validation periods by network. Fill the "your deadline rule" column from your own programme settings, because the published default is not a promise about your contract.
Where a month goes wrong
Six of them, and in most months it is one of these rather than anything exotic.
Only the newest transactions were exported. Most export screens default to a short recent window. Set the dates by hand, every time, to the window you decided in step 1.
The order reference did not match. The network has your order name, your export has the order id, or one of them carries a prefix. This looks exactly like "the order does not exist", and it is the reason to widen the export and check the reference format before you treat anything as missing.
Partial refunds were declined in full. A customer who returned one of three items kept two. Declining the whole commission is not a correction, and it is the thing publishers notice fastest.
One network was not exported at all. The small one, the one with the awkward login, the one the agency runs. It is also the one most likely to be paying a duplicate claim, because nobody is looking.
The currency was assumed. A multi-currency store's network file and Shopify export can disagree about what a number means. Read the currency column rather than the symbol.
The file was uploaded and never checked. See step 12. Awin names incorrect locale formatting, missing required columns, formulas left in cells and headings left in the file as the common causes, and a row that fails this way fails quietly.8
If you missed a month
Take the loss and fix the structure; do not spend a day trying to undo it.
- Awin: anything still pending at the end of the period is approved automatically.1 On Awin Access, approved commissions cannot be reversed, and support steps in only in exceptional cases; on Accelerate and Advanced, support can reverse them if you send the order reference, the commission date and the validation date. On every plan, commission already paid to the publisher is gone.4
- CJ: cancellations cannot be processed for orders already in a Locked or Closed status.3
- impact.com: a late batch row comes back as
ALREADY_LOCKED, and the suggested remedy is a make-good through a Partner Funds Transfer rather than a reversal.5 - Webgains: once the validation period expires the transaction is final.10
What is left after that is a conversation with the publisher or the network, and a shorter gap between runs. If the reason you missed it is that the period is shorter than your returns window, that is the structural fix in the next section, not a diary problem.
Making it shorter next month
Every run should end with one change, so the twelfth is faster than the first.
Set the period to fit your returns window. Awin's own advice is your returns period plus about seven days, which covers the gap between a parcel arriving and the refund being recorded.2 The ceilings are real: 67 days on Awin Access,2 50 on Webgains,10 90 on Rakuten,6 and 90 for a days-only impact.com locking term.5
Write the export steps down as you do them. Screen names change; the version in your head does not survive a holiday.
Turn a recurring finding into a rule. The same creator code showing up under the same coupon publisher every month is a programme-terms conversation and a code-owner table, not a monthly discovery. The same publisher pair claiming the same orders is a de-duplication policy to write down once.
Reuse the wording. Fifteen decline and amend reasons are written out ready to copy in affiliate decline reasons.
In December and January this routine changes shape, because the volume is concentrated and the returns arrive after the deadline: the holiday-returns checklist is the seasonal version of this page, with the per-network dates for a Black Friday sale.
And if you are running the routine inside AffCheck rather than in a spreadsheet, how AffCheck works, start to finish is the same cycle in four steps against the app's own screens. The app suggests and shows its evidence; the decision and the upload stay yours.
Network facts checked on 18 Sep 2026 against each network’s own documentation.
FAQ
Questions, answered
How often should I validate affiliate commissions?
Often enough that nothing expires between runs. A monthly pass fits a 30-day period or longer; a 15-day Tradedoubler Start period needs a fortnightly one. If you run CJ on the standard cycle, the 10th of the month is the date everything else fits around.
What is on an affiliate validation checklist?
Twelve steps: check the deadline, export every network’s pending transactions on one day, export Shopify orders for a wider window, stack them, normalise the order reference, match, count duplicate claims, check codes, check test orders, decide, write a reason, upload and verify.
Which day of the month should I validate on?
Take the shortest deadline you actually have, subtract a working week and put that date in a shared calendar with the networks listed on it. A days-based period runs from the date each sale tracked, so something is expiring every day.
What if an order in the network export is not in Shopify?
Do not decline it. Almost always the Shopify export did not go back far enough, or the references differ — the network has your order name and your export has the order id. Widen the export and check again before treating it as anything.
Can I run this checklist without a tool?
Yes. Every step is a spreadsheet step: one tab per export, XLOOKUP on a normalised order reference and COUNTIF to find anything claimed twice. The free commission leak check does steps 4 to 9 in your browser instead, and still leaves every decision to you.
Related
- Affiliate validation periods by network Validation periods, locking dates and auto-approval rules for Awin, CJ, impact.com, Rakuten, Webgains, Partnerize and Tradedoubler, in one dated table.
- Holiday returns: a January validation checklist Black Friday and Christmas sales auto-approve in January. The per-network deadline, an eight-step routine and the misses that cost the most.
- Affiliate decline reasons: 15 templates to copy Copy-paste decline and amend reasons publishers accept: full refund, partial refund, cancellation, duplicate claim, voucher misuse, test order.
- How AffCheck works, start to finish The cycle in four steps: export your Shopify orders, import your network’s pending transactions, review what is flagged, decline before the deadline.
See what you paid for last month.
Two exports, five minutes, a dollar figure for your store. Files never leave your browser.