← All docs

Payouts

The Payouts page (Apps, then Sprout Affiliate, then Payouts) is where commission stops being a number and becomes money. It does two jobs: approving referral orders, and paying the affiliates behind them. This page covers the paying half; approving is covered in Referral orders.

Opening a section as a full list

Flagged orders sits above Pending, and only while a fraud rule has flagged an order. Each flagged order is listed on its own with Approve and Reject, and Approve all never includes one.

Every section of the Payouts page (Off-schedule payout requests, Flagged orders, Pending, To pay, Past payouts, and Past referrals) opens as a page of its own. Click the section's title, the one with an arrow beside it, or the Pending approval, To pay, and Affiliates owed tiles. The whole list becomes a table, ten rows at a time with a bigger page if you want one. You choose its columns and sort by any heading.

Pending lists one row per order, since every order is approved on its own: the order number opens that order, and the reason it is waiting sits beside it. It also names the customer who bought and the products they bought, and both open that customer and that product in your Shopify admin. A product you have since deleted, or a customer on a store that has not granted customer access, stays as plain text rather than a link that goes nowhere.

A panel on the right stays in view as you scroll. It holds the list's filters, what you can do with the list, and its settings. The filters are a search, the affiliates you want to see (several at once), their program, and whatever else that list can be narrowed by: the reason an order is waiting, the payout method, the status, a date range. Which columns the table shows is in there too, since it decides what the list puts in front of you; Program is one of the columns you can switch on. Rows keep their buttons, so you can approve, reject, mark paid, decline a request, or undo a payout from the full list. The tiles across the top switch between the lists, and the back arrow returns you to the Payouts page.

The settings in that panel are the ones that belong to the list you are on. On Pending that is automatic approval, and with it on, the wait before an order approves itself, which is the same setting as Days to wait before approving orders automatically in Settings. On To pay it is the automatic PayPal payout schedule.

The automatic payout schedule
Frequency
Every week
Day
Wednesday
Time
2:00 PM
Memo on the payment
Affiliate commission {date}

The affiliate sees: Affiliate commission Aug 19, 2026

Payout methods

Each affiliate chooses how they want to be paid in their own portal, under Settings and then Payouts. You do not set this for them, though you do control the shortlist: each program has a Payout methods offered section, and an affiliate only sees the methods their program offers. A program with none ticked offers the six methods every store started with: PayPal, Venmo, bank transfer, check, store credit, and gift card. Cash App, Zelle, Payoneer, Revolut, Skrill, Bitcoin, USDC, and any method of your own are offered only by a program that ticks them. If you later narrow a program, an affiliate keeps the method they already saved. An affiliate who has not chosen yet opens on the first method their program offers. Store credit is locked in that section, with a padlock, on a store where customers could not spend it (the same reasons as below). Under it is a link to Settings > Customer accounts in your Shopify admin, named for what to change there, such as "Turn on store credit in Shopify". A program that already offers store credit keeps it, and a save that newly adds it is refused until Shopify allows it.

PayPal and store credit are sent by Sprout Affiliate itself, and so is a bank transfer when Wise or Dwolla is connected. Every other method you pay outside the app and then record: Venmo, check, a bank transfer without Wise or Dwolla, Cash App, Zelle, Payoneer, Revolut, Skrill, Bitcoin, USDC, and your own methods.

MethodSent by Sprout AffiliateWhat you do
PayPalYes, through PayPal PayoutsConnect PayPal, then use "Send PayPal payouts" or a schedule
VenmoNoPay the username they gave you, then "Mark paid"
Bank transferWith Wise connected, through your Wise account. With Dwolla connected, US bank accounts through your Dwolla accountConnect Wise, then press "Send Wise payouts" in To pay, or "Send via Wise" on their row. For US banks, connect Dwolla and press "Send Dwolla payouts" or "Send via Dwolla". Neither is ever sent by a PayPal button or on the PayPal schedule. Without either, pay from your bank, then "Mark paid"
CheckNoPost the check, then "Mark paid"
Cash AppNoSend it to the $Cashtag they gave you, then "Mark paid"
ZelleNoSend it to the email or phone number their Zelle uses, then "Mark paid"
PayoneerNoPay the Payoneer email they gave you, then "Mark paid"
RevolutNoSend it to their Revtag or phone number, then "Mark paid"
SkrillNoPay the Skrill email they gave you, then "Mark paid"
Bitcoin and USDCNo, neverSend it from your own wallet to the address they gave you, on the network they chose, then "Mark paid"
A method of your ownNoPay it the way you set it up, using the answers they gave you, then "Mark paid"
Store creditYes, to their Shopify customer accountEnable it in Settings › Payouts, then set when it goes out in the "Automatic store credit" panel under To pay — as soon as an order is approved, weekly, monthly, or Off, in which case you send it with "Issue store credit" on their row, or to everyone at once with "Send store credit payouts"

Bank transfer details. An affiliate paid by bank transfer first picks their bank's Bank country. Every country is on the list, named in the affiliate's language. Like every list of more than 15 choices in the portal, the signup page, your admin and the phone apps (countries, currencies, phone codes, languages), it opens with a search box: typing a few letters narrows the list, and a click picks one. The country decides which details it asks for:

Every country also asks for the account holder's name. Routing numbers, IBANs, and SWIFT/BIC codes are checked before they save. You see the details on the affiliate's page, starting with the bank's country, and in the to-pay export.

With Wise connected, the form is Wise's own. The affiliate picks the currency their bank account is in, and Wise says exactly what an account in that currency needs: an IFSC code in India, a sort code in the UK, a full street address with its state in the US. The form shows those fields in the affiliate's language where Wise has it, and on save Sprout Affiliate asks Wise to add the account to your Wise recipients, so anything Wise would refuse is refused while the affiliate is still looking at it. You see the details on the affiliate's page as Wise labels them, with the account's currency first. An affiliate who entered bank details before you connected Wise is asked to enter them again, because the older form does not carry everything Wise needs. A store that uses its own payout form for bank transfers (Settings › Affiliate portal › Payouts) keeps that form, and pays those affiliates by hand.

With Dwolla connected, a US bank is added through Dwolla. The affiliate gives the account holder's first and last name, checking or savings, the routing number, and the account number twice, and ticks a box agreeing to Dwolla's Terms of Service and Privacy Policy. On save, Sprout Affiliate adds them to your Dwolla account as a payee that can only receive money, and adds the bank. The account number goes straight to Dwolla in that one step and is never stored by Sprout Affiliate: what is kept is the bank's name, the account type, the routing number, and the last four digits, which is all you see on the affiliate's page and in the to-pay export. Dwolla pays US bank accounts in US dollars only. On a store with Wise too, the affiliate first says whether the bank is in the United States: a US bank goes through Dwolla, any other bank through Wise. On a store with Dwolla and no Wise, the form says that a bank outside the US means choosing another payout method. A merchant signed in as the affiliate cannot add a bank through Dwolla, because Dwolla asks that the person being paid agree to its terms. Bank details saved for another store are not copied to a store that sends through Dwolla; the affiliate adds the bank there on its own.

Cash App, Zelle, Payoneer, Revolut, Skrill, Bitcoin, and USDC. Each asks the affiliate for the one thing it is paid to, and checks it before it saves:

A wallet address is checked against the network chosen, by that network's own address format, checksum included where the address carries one (Bitcoin, Tron, Stellar, and an Ethereum-style address written in mixed case). So an Ethereum address entered for Solana, a Bitcoin address in a USDC box, or an address with one character wrong is refused with the network named. Sprout Affiliate never sends crypto: you send it from your own wallet. The form tells the affiliate that a payment sent to the wrong address or network can't be recovered. You see what they gave you on their page, in the to-pay export, and on the row in To pay. No Wise email method is offered, because Wise is how Bank transfer is sent: connect Wise and bank transfers go through it.

Payout methods of your own. For a way of paying that is not on the list, such as Interac e-Transfer or M-Pesa, add your own in Settings › Affiliate portal › Your own payout methods. Press Add payout method, give it a Method name, and build the fields the affiliate fills in with the same field types as your own payout form below (text, dropdown, phone and WhatsApp numbers, preferred currency, notes, and a consent checkbox), with the same live preview. A store can have ten. A name that is already a payout method, such as Zelle, is refused: tick that one in the program instead. Your method then appears in each program's Payout methods offered beside the built-in ones, by the name you gave it. Affiliates in a program that ticks it can choose it in their portal and in the phone app, and fill in your fields. You pay it by hand and record it with "Mark paid", and the payout is named after your method everywhere: To pay, past payouts and their filters, the statements and their CSV and PDF, the reports, the earnings statement and the 1099 (where it counts like any other payment), the API, and the phone apps. You can edit or remove a method in the same card and in the phone app's Settings. A removed method is no longer offered, while payouts already made by it keep its name, and Undo brings it back as it was.

Your own payout form. If you pay by hand and need different details from your affiliates, you can ask for exactly what you need. In Settings › Affiliate portal › Payouts, turn off Default payout fields, pick the Payout method the form is for (Bank transfer, Check, Venmo, Cash App, Zelle, Payoneer, Revolut, Skrill, Bitcoin, or USDC), and list the fields in the order affiliates should see them. Drag a field by the grip on its left to move it. Each field is one of:

A Phone number or Preferred currency field starts with that name, which you can change. Every field but a note and a consent checkbox can be marked Required, and a consent checkbox is always required. A field that is not required shows "(optional)" after its name. A required field left empty turns red when the affiliate saves, and when a save is refused, everything they typed stays in the form with the field at fault in red. The card shows a live preview of the form as the affiliate will see it. Affiliates who choose that method see your fields in their portal and in the phone app, in place of the ones described above. Their answers are kept encrypted with the rest of their payout details. You see each answer under the name you gave it on the affiliate's page, a consent checkbox as the sentence they agreed to, and every answer in the to-pay export. If you change a consent checkbox's words, or remove a dropdown choice or currency an affiliate picked, that answer no longer counts: the affiliate sees the payout details banner and is held from payouts until answering again. Turning Default payout fields back on keeps your form, so switching it off again brings it back as it was. While a Bank transfer form is on, Wise doesn't send bank transfers, so affiliates paid through your form are paid from your bank and marked paid. A Wise account an affiliate saved before stays on file, and Wise pays it again once Default payout fields is back on.

Venmo is worth calling out, because the app collects a Venmo username and it looks like an automatic method. It is not. A PayPal batch only ever includes affiliates whose method is PayPal. Store-credit affiliates are settled by the same run, in a separate pass that adds the credit to their Shopify customer account. Affiliates on Venmo, bank transfer, check, and every other method you pay by hand stay in your to-pay list until you record them.

Sending through PayPal at all, whether by hand or on a schedule, needs the Growth plan or higher. On the free plan the "Send PayPal payouts" button does not appear and the schedule panel is replaced by "Automatic payouts are on the Growth plan." and a See plans button. Marking payouts paid by hand works on every plan. Issuing store credit automatically needs Growth as well, even though it runs on its own timing rather than with the PayPal batch. On the free plan, issue the credit in Shopify yourself and use "Mark paid".

Store credit is the only method with nothing for the affiliate to fill in (there is no PayPal address, Venmo username, bank account, or postal address to collect), so those affiliates are never held back for missing details. Sprout Affiliate issues the credit in Shopify for you, on its own timing, separate from PayPal's schedule. That timing is set on the Payouts page, in the Automatic store credit panel directly under "Automatic PayPal payouts" — the same panel, with the same Frequency, day and time — and Settings › Payouts › Store credit points you there. The panel shows only while store credit is in use: a program offers it as a payout method, or an affiliate is set to be paid by it. Its Frequency is one of:

Whatever you choose, each store-credit affiliate in To pay has an Issue store credit button that pays them on the spot, and it works whether or not you have PayPal connected, since store credit needs only Shopify. To pay all of them at once, press Send store credit payouts, next to "Send PayPal payouts" in To pay and in the full To pay list's panel. It credits every store-credit affiliate who is ready to be paid and sends no PayPal money. It shows only when someone in To pay is paid by store credit, and it can't be pressed while every one of them is on hold. Each send button pays only its own method: "Send PayPal payouts" never issues store credit, and neither does the scheduled PayPal run. Automatic store credit, instant or scheduled, is on the Growth plan and up, like scheduled PayPal payouts. Stores that already had a PayPal schedule kept the same day and time for store credit when this changed, so nothing moved without you. Two things have to be in place: store credit enabled in Settings › Payouts, and the store-credit permission granted (open the app from your Shopify admin once). The affiliate does not have to be one of your customers already. A store credit balance lives on a customer account, so if they have never bought from you, the payout creates the account that holds it — tagged "Sprout Affiliate", with no marketing consent, and an affiliate who is already a customer is left exactly as they are. The run tells you when it created one. When something is missing, the run names the affiliate, leaves the commission payable, and you issue the credit yourself and use "Mark paid".

Store credit is only worth issuing where an affiliate can spend it, so the Enable switch in Settings › Payouts › Store credit is locked, with the reason beside it, on a store where nobody could. Sprout Affiliate asks Shopify every time you open Settings, and again before every run. The switch is locked when:

Change the one it names in Shopify and the switch unlocks the next time you open Settings. When it is Shopify's store credit setting, the switch shows a Turn on store credit in Shopify link that opens that setting in your Shopify admin, and the "Automatic store credit" panel on the Payouts page has the same button. While a store is locked, affiliates are not offered store credit in their portal and automatic store credit does not run. Affiliates who already chose store credit stay owed until you pay them another way and use "Mark paid", or until the store can take credit again.

Credit is matched to the affiliate by email: it goes to the Shopify customer whose email is exactly the one on their Sprout Affiliate profile, so that is the email they sign in with. New customer accounts have no password. The affiliate enters that email, types the 6-digit code Shopify sends them, and their balance is there, including credit issued before they had ever signed in. Their portal shows where to go under Settings › Payouts, in a Store login section with a button to your sign-in page and the email to use. The email telling them they were paid in store credit carries the same button and names the same email. The button goes to your store's customer accounts address, the URL Shopify shows under Settings › Customer accounts. Settings › Payouts › Store credit shows the same address under Sign-in link affiliates are shown. It can't be edited there: its Manage button opens your domain settings in Shopify, which is where that address is changed.

The portal's Dashboard and Payments page show what they have to spend. Beside Pending, Approved and Lifetime paid, an affiliate paid all or part in store credit sees Store credit available: the balance on that customer account, read from Shopify each time the page opens, so it goes down as they spend it at your store. A click opens your store's sign-in page in a new tab. An affiliate who has never been paid in store credit has no customer account yet, so the box reads $0.00. Reading a balance on an existing account needs one more permission, to read store credit accounts, which Shopify asks you to approve the next time you open the app from your Shopify admin. Until you do, or whenever Shopify can't say, the box reads See balance in place of a figure, and the click still takes them to where the balance is.

Because the email is the link, an affiliate paid in store credit who goes to change their email is told first that new credit will go to the account for the new email while credit already paid stays with the old one, and is asked to confirm before it changes.

An affiliate with no payout details on file cannot be paid or marked paid at all. Their row shows a red "No payout option" tag in place of the pay controls. They fix it themselves in their portal.

That counts what is actually saved for their method: a bank transfer needs a bank account, a check needs a name and address, Venmo needs a username, Cash App a $Cashtag, Zelle an email or phone number, Payoneer and Skrill an email, Revolut a Revtag or phone number, Bitcoin and USDC a network and a wallet address, a method of your own the answers to its required fields, and when you have turned on your own payout form for their method, its required questions need answers. An affiliate who picked a method but left its details blank is held the same way, and their dashboard asks them to add their payout details.

Until they do, their dashboard, in the portal and in the phone app, shows a banner asking them to add their payout details. So does the dashboard of an affiliate whose payout method now uses your own payout form, until they have answered its required fields.

Affiliates without a tax ID on file are held the same way when you have turned on "Require a tax ID before payouts" in Settings (see Tax on payouts). They give it on the Tax tab of their portal, in a W-9 with their SSN or EIN, or a W-8BEN outside the US. Until they do, their dashboard in the portal and the phone app asks them to add their tax ID. Open an affiliate's own page and run the payout there to see the full text naming who is held and for how much.

Split payouts

A split payout pays part of what an affiliate is owed as store credit and the rest by the affiliate's own payout method. It is on the Growth plan and above. Turn it on in Settings, Payouts, inside the Store credit card: Store credit split payout, shown while store credit is on. Then set the Store credit share, a whole percent from 1 to 99. At 40%, a $100.00 payout goes out as $40.00 of store credit and $60.00 by the other method.

Who it applies to:

A program can set its own. In the program editor, once Store credit and another method are ticked under Payout methods offered, a Split payouts box appears beneath them. It starts on Store default, with a pill that names the store's setting and opens Settings at the Split payouts card. Choose Split to split this program's payouts whatever the store's switch says, with its own Store credit share (left blank, it uses the store's), or Don't split to keep this program's payouts whole.

Both parts go out together. On the Payouts page a split row says both figures, for example "PayPal $60.00 + store credit $40.00", and its button reads Mark paid and issue credit: pressing it records the $60.00 you paid and issues the $40.00 of store credit at that moment. A PayPal or Wise send does the same: the store credit is issued, then the rest is sent. Store credit for a split payout does not wait for the store credit schedule.

Things to know:

An affiliate can ask for a different split, if you allow it. You decide the split. Turn on Allow affiliates to ask for a different split under Store credit split payout; it is off until you do, and while it is off the portal shows no way to ask. With it on, on the Payouts page of the portal, right under the line that says how the store splits payouts, the affiliate has an Ask for a different split section: the store credit share the affiliate would like, from 0 to 100, and an optional note. You are told by email and on your phone, and the ask appears on your Payouts page under Split change requests and on the affiliate's own page, each with Approve and Decline.

You can set one affiliate's share yourself. On the affiliate's page, under Payment method, This affiliate's store credit share takes a whole percent from 0 to 100 and overrides the program's share for that affiliate. At 0 the affiliate is paid in full by the affiliate's own method. Clear the box to go back to the program's share.

One payout at a different share. With the same switch on, and where payout requests are on, the request form also shows the affiliate's share and lets the affiliate type another for that one payout. The request on your Payouts page then says "Asked for 25% as store credit" and shows the two figures at that share. Paying the request from its own row uses the share the affiliate asked for; declining it leaves the split in place.

The minimum payout

The Minimum payout field sits in Settings › Payments, inside whichever sending rail you have enabled — the PayPal payouts card, or the Wise card on a store that only uses Wise — because that is what it governs: PayPal charges per transfer, so small balances wait and go out together. It starts at 5, is labelled with your store’s currency symbol, and the number is read in that currency. Before a run compares a balance to it, Sprout Affiliate adds up each affiliate’s approved commission plus any unpaid bonuses and applies your payout tax if you use one.

A PayPal run leaves anything under the line for next time, and names each affiliate it applies to. Nothing is lost: the commission stays in your to-pay total until it clears the line.

With no sending rail enabled it is not shown at all, and it stops applying: a store that pays entirely by hand does not hold an affiliate's payout request against a figure it cannot see.

Paying someone yourself always goes through. “Mark paid”, the “Paid them” tick box and a bulk mark-paid settle a balance whatever its size, because the money has already left your account and the minimum is about what PayPal sends, not about what an affiliate is owed. The one thing the minimum also does off that rail is hold back an affiliate’s request for a payout: they cannot ask to be paid until they are owed at least this much. That is why the field is shown even on a plan without PayPal payouts.

Three details that surprise people. Tax is applied before the minimum is checked, so a withholding rate can push a small balance under the line and a VAT-on-top rate can push one over it. A negative balance (a refund clawback larger than what the affiliate has earned since) always carries, because you cannot send negative money. And your ledger always records the commission earned, not the amount sent, so with withholding on, the totals in "Past referrals" are the gross figures.

The payout schedule

The "Automatic PayPal payouts" panel sits in the To pay card, and in the panel on the right of the full To pay list. It has three frequencies (Off, Every week, Every month), plus a day (a weekday for Every week, a day of the month for Every month) and a time. It needs the Growth plan and PayPal connected (see Connecting PayPal). The "Automatic store credit" panel directly under it works the same way for store credit, with one more frequency, As soon as an order is approved; it needs the Growth plan and store credit enabled, and when it cannot be set it says why — the plan, store credit switched off, or a store where nobody could spend it (see where store credit can be spent).

Until both of those are true there is no schedule to set, so the panel does not offer one: without PayPal connected it says so and gives you a button through to Settings, Payouts, and below the Growth plan it points at the plans instead. The one exception is a schedule that is already running, which keeps its controls whatever happens to your PayPal connection, so you can always switch it off from here.

A scheduled run pays PayPal and store-credit affiliates. Affiliates on Venmo, bank transfer, check, and every other method you pay by hand are left in the to-pay list, and the run says how many, naming each method, your own by the name you gave it.

The memo on the payment

The memo is the note the affiliate sees on the PayPal payment. The field appears under the schedule, with a preview underneath showing exactly what an affiliate would see, filled in with a sample name, 5 orders, and a sample amount. Leave it blank and Sprout Affiliate uses "Commission for {orders} referred order(s)", or "Bonus from {brand}" when the payment is all bonus and no referred orders. If you write your own memo it is used for every PayPal payment, bonus or not, with the variables filled in.

VariableBecomes
{brand}Your store name, or "our store" if it is unset
{affiliate}The affiliate's name
{orders}How many referred orders this payment covers (bonuses do not count)
{amount}The amount being sent, in your store's currency, after any tax
{date}The day the payout is sent, in your shop's timezone

{date} is one date for the whole run, so every memo in a batch agrees. It is your shop's day, not the server's, which matters for an evening payout that would otherwise be stamped tomorrow. The memo saves when you click out of the field, and is capped at 4000 characters because that is PayPal's own limit and a longer note fails the entire batch.

One limitation: the memo field is only shown while a schedule is set to Every week or Every month. A memo you saved earlier is still used by manual "Send PayPal payouts" runs, but if you switch the schedule to Off you can no longer see or edit it. Set a frequency, edit the memo, then set it back.

The memo only applies to PayPal payments. Marking paid by hand moves no money, so there is nothing to write a memo on.

Marking paid by hand

You can record a payout you made outside the app in three ways. Upload PayPal report takes the report PayPal gives you after a Mass Pay and marks everyone it says was paid, with each one's fee, in one go. The other two are on the list itself. Each affiliate row has a "Paid them" tick box and a "Mark paid" button, which records only that affiliate. Above the list, "I've paid these affiliates outside Sprout" and "Mark all as paid" record everyone who is approved, over the minimum, and not held. Both need the tick first, so a single click can never settle your whole to-pay list by accident.

Recording a payout writes the referrals to your ledger, stamps any included bonuses as paid, and moves those orders to Paid. "Mark all as paid" also clears a scheduled-failure banner, because it settles the same commission the schedule was failing to send. A single affiliate's "Mark paid" leaves the banner up, because the rest of that run is still owed.

Deductions

Refunds and chargebacks take commission back on their own. A deduction is for money you take back by hand: an overpayment, a gift the customer returned for a refund, a correction. Open the affiliate's page and use Make a deduction, under Give a bonus: an amount, and a Note for the affiliate, which is required. The phone apps have the same section on the affiliate's screen, and the API and the MCP server can record one too. Deductions are on the same plan as bonuses (Professional).

On statements, the affiliate's statement lists each deduction with your note, and its per-order view names the line "Deduction: your note". Your payout statement, its CSV, and its PDF show a Deductions column beside Commission when the period has one; Sent is what actually went out. Deductions are not counted as referrals.

On the 1099-NEC, Box 1a is the commissions and bonuses paid in the year before deductions, and the deductions are listed beside it with the figure without them. Sprout Affiliate cannot tell whether a deduction repaid compensation you paid earlier in the same year (an overpayment, which can reduce Box 1a), repaid an earlier year's payment, or settled something else the affiliate owed you (neither of which does). Leaving it in is the conservative figure. Where the deductions would take the total below the filing threshold, the page says so with both figures. Ask your accountant before filing.

Deleting an affiliate is refused only while you still owe them money once their deductions come off. A deduction on its own never blocks a delete, because it is money the affiliate owes you. Whatever they still owed you goes with them.

Contests

A contest is a timed competition among your affiliates, such as "the top 3 affiliates by referral sales from November 1 to November 30 win $500, $250, and $100". Open Payouts and press Contests at the top of the page. Contests are on the Professional plan, the same as bonuses.

Setting one up takes a name, a start date and an end date (days in your store's timezone, both included), the programs it counts (or all programs), what it measures (Referral sales or Referral orders), an optional minimum to place, and a prize for each place, up to ten. A prize is either a Bonus, an amount paid into the affiliate's next payout, or Something else, such as "A featured post", which you arrange yourself.

A winner's dashboard shows the prize won for two weeks after you award the prizes. The contests page is on the web admin only; the phone apps show affiliates the contest card.

Payout requests

An affiliate can ask to be paid off schedule from the Payments page of their portal: the Request an off-schedule payout button opens a page where they choose what it is for, and can add a note. The request appears on your Payouts page in Off-schedule payout requests, right under the totals, and is emailed to your notification address. You pay it or decline it. Decline opens a box for an optional note to the affiliate saying why, which they read on the Payments page of their portal. An affiliate can have more than one request open, each for different commissions; a request for everything they are owed leaves nothing more to ask for until it is answered. While a sending rail is on they cannot ask for less than your minimum payout.

An affiliate chooses what the request is for. The request page lists each approved commission and bonus that no open request already asks for, with a tick box, all ticked to start, and one button that shows the total, such as Request $146.24. Only approved commission can be chosen, so approving orders stays your check against fraud. Anything the affiliate owes back, such as commission on a refunded order, is listed without a tick box and comes off whatever they are paid. Once sent, the request and each chosen commission show as Pending on their Payments page, under the Pending, Approved and Lifetime paid figures their dashboard also shows, and as Payout requested on their Referrals page.

On your Payouts page, a request for some of their commission says which, for example "For #1001, #1004, 1 bonus", and its Ready now figure counts only those. Mark paid and Send via PayPal on that request pay only what it chose. The rest of the affiliate's balance stays in To pay for your next payout. A request closes when one of its chosen commissions is paid, whether you pay it there, pay the affiliate's whole balance, or your schedule pays it.

A request for a day

Under Payout requests in Settings > Affiliate portal, Allow affiliates to request a specific payout day adds a day to the request page. It is off until you turn it on, and it is only there while Payout requests is on. The affiliate picks the day in their own time zone, and it is taken as that whole day.

A request that names a day is answered first. On your Payouts page it shows Wants it and the day, on your store's clock, with Approve and Decline in place of the pay buttons. Approving moves it to Approved payout requests, right above To pay, soonest first, where it shows Pay on and the day and is paid with the usual buttons. A PayPal request's row always has its PayPal button, which reads Connect PayPal until PayPal can send. If you have an automatic PayPal schedule, it leaves approved requests out: they're paid from their own row, on their day. The heading shows a count once there's more than one. The affiliate sees it as approved for that day, and its commissions read Payout scheduled on their Referrals page. You can still decline it from there.

A request can only be approved, or paid, while the affiliate can actually be paid. If the payout run would hold them back (their tax ID is missing and you require one, their payout details are missing, they are no longer active, a refund has left them owing, or a Wise transfer to them is waiting), the request shows that reason where Approve and the pay buttons would be. Decline still works, and the buttons come back once the reason is fixed.

When the day comes and the request is still unpaid, whether approved or never answered, Sprout Affiliate reminds you once, by a push to your phone and an email to your notification address, and the row is marked Due. A day with no time comes due at 9:00 on your store's clock. A request paid in the meantime, from its own row, the affiliate's whole balance, or your schedule, is closed and not reminded.

To stop requests, switch off Payout requests in Settings > Affiliate portal. The Request an off-schedule payout button leaves the portal, and a request can no longer be sent. Requests already open stay on your Payouts page until you pay or decline them. The switch is on for every store until you turn it off.

Note for affiliates, in Settings > Affiliate portal, shows above every affiliate's payouts in the portal, set apart in your portal color: the place to say when you pay, such as "Payouts go out every Friday". Its preview shows it exactly as the portal will.

Undoing a batch

In "Past payouts", batches you recorded by hand, and batches that issued store credit, have an Undo button. Undo deletes that batch's ledger rows, puts its bonuses and deductions back to unpaid, and removes its payout-tax records, so the orders return to To pay exactly as they were. You also get a one-click undo bar straight after marking paid.

PayPal batches cannot be undone. The money has already left your account, and un-recording it would make every one of those commissions look payable again, which is how an affiliate gets paid twice. A PayPal payout shows how it was sent instead of an Undo button. If a PayPal payment genuinely needs reversing, do it in PayPal.

Store credit can be taken back, because it is your store's to give. A store-credit payout has an Undo button like one you recorded by hand: Undo removes the credit from the affiliate's Shopify customer account and puts those commissions back in To pay. If the affiliate has already spent some of that credit it cannot be taken back, and nothing is undone.

When PayPal accepts a batch and a payment still fails

This is the most important part of PayPal payouts to understand. When PayPal accepts a batch, it has accepted the request, not delivered the money. Each payment then settles on its own and can still end up returned, blocked, refunded, reversed, denied, cancelled, or simply failed, sometimes days later.

Money that is pending, on hold or unclaimed is treated as still moving, not as a failure. Unclaimed money can sit for about 30 days before PayPal returns it, and only then does it count as failed.

Sprout Affiliate keeps watching. It re-checks open batches when you open the Payouts page (each batch at most once every ten minutes, so reloading does not slow the page down) and once an hour in the background, for up to 45 days after the batch was sent. When a payment has failed for good, that affiliate's referrals are un-recorded, their bonuses restored, and their tax row removed, so they reappear in your to-pay list. Affiliates in the same batch who were paid are left alone.

You then see a red banner naming the batch, how many payments failed, and each PayPal address or phone number the money did not reach with the status PayPal gave it, telling you to check the payout details on those affiliates and pay again. The banner stays for 30 days from the batch date, then stops, because after that it is no longer something you can act on.

One limitation to know: if PayPal reports a failure that Sprout Affiliate cannot match back to an affiliate, nothing is returned to your to-pay list. The batch is deliberately not marked clean, and its banner drops the usual line about the commission being back in your to-pay list. Instead it reads "Unmatched failures:", then the address and status PayPal gave, then says in so many words that nothing has been returned to your to-pay list. Look the batch up in PayPal and settle it by hand rather than assuming it went through.

When a scheduled run fails

The one warning that can arrive before a failure: a day before a scheduled PayPal payout, if your PayPal balance is below what that run will send, you are told once, by email and on your phone, and the Payouts page says "PayPal balance is below the next payout." PayPal does not pull the difference from your bank; it refuses the whole batch and nobody is paid, so this is your chance to move money in. It only works when your PayPal app is allowed to read the balance, which most are not; without that, nothing is sent rather than a guess.

A failed scheduled payout shows a red banner in the To pay card with the time of the last attempt in your shop's clock, and PayPal's reason underneath. The wording is deliberate: nobody was paid, nothing was marked as paid, and the money is still owed.

A scheduled run is attempted once. It is not retried by itself, because the same attempt an hour later fails the same way: whatever blocked it, a permission PayPal has not granted, a missing payout address, a currency PayPal refuses, needs you. Fix the cause and press "Send PayPal payouts" to send it straight away, or leave it for the next scheduled run. You get one email and one push notification for that run, no more. Changing the scheduled time makes a different run, which is attempted at the new time and reported on its own.

The email goes to your notification email (or your support email if you have not set one), and the push goes to the Sprout Affiliate admin app on your paired phone. The two are independent, so no email address on file still gets you a phone alert.

Dismissing the banner acknowledges it, it does not fix it. The next failed run raises it again, and dismissing cannot cause a second notification for the run you just dismissed.

Some outcomes are not failures and raise nothing: a run where nothing was approved and payable, a run where no affiliate uses PayPal, and a run that finds another payout already in progress. Alarming you every week about a store whose affiliates all take store credit would train you to ignore the alarm that matters.

Successful runs are reported too, but only when money actually moved: a batch PayPal accepted, store credit that was really issued, or both. A run that had nothing to pay sends no "payout sent" message, because that would be a false statement about your money.

Automatic store credit reports to you the same way. A weekly or monthly run emails you what it issued (and pushes it to your phone, if payout notifications are on), and names anyone it could not credit and why: no email on file, Shopify refusing the credit, or an earlier credit Shopify never confirmed. "As soon as an order is approved" emails you only when something goes wrong, since the approval was yours a moment earlier. A problem is reported once, not on every sweep, and again only if it changes or comes back after a clean run. If store credit stops being possible, for example because Shopify's own store credit setting was turned off, you are told once, with what to change. Anyone who was not credited stays owed and stays in To pay.

Times Sprout Affiliate refuses to send

Three guards can stop a payout, and all three are protecting you from a duplicate payment.

  1. A payout is already running for this store. Only one runs at a time, across the web admin, the phone app, and the schedule. Wait for it to finish and reload the page to see what was paid.
  2. A previous batch was started and never recorded. If Sprout Affiliate cannot tell whether an earlier batch left, it sends nothing and says so. Check that batch in your PayPal account. If it went through, use "Mark as paid" on those referrals. If it did not, email support@sproutaffiliate.com and it will be cleared.
  3. PayPal sent a batch but recording it failed. This is the worst case. The affiliates have been paid. Do not run the payout again. Use "Mark as paid" on those referrals, or email support@sproutaffiliate.com with the batch id. If this happens during a scheduled run, Sprout Affiliate also switches your automatic payouts off by itself and emails and pushes you, so the next scheduled tick cannot send the same money again.

Separately, PayPal itself rejects batches from accounts that do not have Payouts switched on, which is every business account by default. Valid credentials and ticking Payouts under Features in the PayPal Developer Dashboard are not enough: only PayPal support can enable Payouts on the account itself. See Connecting PayPal for what to ask them for. Until it is on, pay another way and use "Mark as paid".

The free plan's 200-order limit is not a payout problem

On the free plan only the first 200 referral orders in a calendar month are attributed, meaning matched to the affiliate who referred them. Anything past that gets no commission calculated, and the Payouts page shows a warning saying how many were affected. Those referrals never reach your to-pay list, so no payout setting will recover them. Upgrading is the only way to include them.

Connecting PayPal, and getting Payouts enabled

Connecting PayPal takes two separate permissions, and having only the first is the usual reason a first payout fails.

  1. Your app may ask. In the PayPal Developer Dashboard, switch to Live, create an app, tick Payouts under Features, and paste the Client ID and Secret (PayPal's username and password for that app) into Settings. You do this part yourself, and it takes effect the moment you save.
  2. Your account may send. PayPal does not switch Payouts on by default for any business account. You have to request it, and only PayPal support can grant it.

Check it first, in one place

Open developer.paypal.com/dashboard/accountStatus and look at the Permissions table. There is a Sandbox column (PayPal's test mode, where no real money moves) and a Live column (real payments). Find the Payouts row and read the Live column.

PayPal › Account status › Permissions. This is what a blocked account looks like.
Permission nameDescriptionSandboxLive
Invoicing APIEmail detailed invoices that include an online payment button. Manage invoices through search, reminders, and more.✓Denied
SubscriptionsInitiate and manage regularly scheduled payments from customers.✓✓
PayPal paymentsAccept Payments from PayPal members and issue Invoices using PayPal payment experience.✓✓
Log in with PayPalIdentity service that enables your customers to log in with their PayPal account.✓✓
PayoutsPayout up to 15000 recipients in one API Call.✓Denied

Read the Live column on the Payouts row. A green tick means it is enabled, and Denied means it is not. Sandbox is ticked either way, which is why a sandbox test succeeds and going live does not, and every other permission can be green while payouts still fail.

To get it: contact PayPal support from the business account that owns those credentials and ask them to enable Payouts on the account. Ask for Merchant Technical Support if the first person cannot act on it. They will ask what you are using it for, which is paying affiliate commissions to your own affiliates from your own balance, and roughly how much and how often.

If a payout has already failed, quote the PayPal reference shown in the error on your Payouts page, printed as "PayPal ref" followed by a code. It is the fastest way for them to find the exact refused call.

Nothing needs changing in Sprout Affiliate afterwards. Once PayPal has enabled it, press "Send PayPal payouts" on the Payouts page to send what is owed straight away, or wait for the next scheduled run, which goes through on its own.

Connecting Wise

Wise is how Sprout Affiliate sends a bank transfer: it pays the affiliate's bank account, in their own currency, wherever they are. Affiliates choose Bank transfer and fill in the form Wise asks for; there is no separate Wise choice for them.

In Sprout Affiliate the card is in Settings › Payouts, under Wise, in the same tab as PayPal. The Wise row under Settings › Integrations takes you there rather than asking for the token in the list.

Both cards there carry an Enable switch. A rail you have not enabled shows nothing but its name, so a store that pays everyone by hand is not reading PayPal setup instructions it will never use. Switching one on opens its setup; switching one off stops Sprout Affiliate sending on that rail without disconnecting it, and the credentials are kept for when you turn it back on. If a payout schedule is running when you turn a connected rail off, the app says so first — scheduled runs stop using that rail until you turn it back on.

Setting up Wise

Connect a Wise team member made just for Sprout Affiliate, not the account owner's own login. The card walks through the same steps under Show setup steps.

  1. In Wise, add a team member for Sprout Affiliate (Team, then Invite a team member).
  2. Give it these permissions:
    • View account: view all transactions, account balances, and recipient lists.
    • Move money: set up or make payments, and add or edit recipients.
    • Manage team: view team members.
    • Manage account: manage software integrations and tools.
  3. Signed in as that team member, open Account, then Accounting Integrations, then the Custom Integrations tab, then API tokens, then Add new token. There is no API tokens section under Settings, which is where most people look first.
  4. Name it anything you will recognize later, such as Sprout Affiliate.
  5. Under Token permissions, choose Full access. This is the step that decides whether payouts work at all: Read only can list transfers but cannot create one, so a Read only token connects here, looks perfectly healthy, and then fails at your first payout.
  6. Allowed IPs is optional, and leaving it blank is correct. Sprout Affiliate sends from its own servers, whose addresses change.
  7. Create the token, copy it, and paste it into Sprout Affiliate. Wise shows a token once.
  8. Back in Sprout Affiliate, pick which Wise profile pays. Wise gives most people a personal and a business profile; the money leaves the one you choose here.
  9. Keep your store's currency in that profile's Wise balance. Every payout is sent from it, with Wise's fee on top.

The token is stored encrypted and is never shown again, here or anywhere else. Disconnecting removes it, and affiliates on Bank transfer are paid by hand until you reconnect. You cannot disconnect while a Wise transfer is still waiting; approve or cancel it first.

Payout security

Wise sends nothing until you set up a payout password or an authenticator app (Google Authenticator or any other), on the Wise card once it is connected. Every Send through Wise then asks for the password, or the 6-digit code the app shows. The password is stored only as a scrambled hash, never as the password itself, and it should be a new one, not your Shopify or Wise password. For an authenticator, scan the QR code the card shows (or type the key under it) and confirm with a code from the app. Changing either one asks for the current one first. Five wrong tries in a row lock sending through Wise for 15 minutes. Disconnecting Wise clears it, and you set a new one when you reconnect.

Sending, fees, and what happens next

Press "Send Wise payouts" in To pay, or "Send via Wise" on an affiliate's row or their payout page. Before anything is sent, Sprout Affiliate asks Wise for its price and shows each affiliate's amount (and what it arrives as, when their account is in another currency), Wise's fee, and the total that leaves your Wise balance. The affiliate receives everything they are owed: Wise's fee is added on top, and a payment into another currency is converted at Wise's rate before the fee. Enter your payout password or code, and press Send.

Each affiliate is one Wise transfer. Sprout Affiliate creates it and funds it from your balance, and the affiliate is recorded as paid (and told, if they get payment emails) the moment Wise starts moving the money. Wise's fee and what landed are kept on the payout's record.

UK and EEA Wise accounts approve each payout in Wise. Wise does not let an API token fund a transfer for those accounts, so the transfer waits in your Wise account for you to approve it there. Until you do, the affiliate shows as waiting in To pay and cannot be paid another way, so the same commission cannot go out twice. Sprout Affiliate checks with Wise every few minutes and records the payout once Wise sends it.

The Wise transfers list on the Payouts page shows each transfer and where it is: Approve in Wise, Waiting in Wise, On its way, Sent, Came back from the bank, or Cancelled, with a link to it in Wise. A transfer still waiting can be cancelled from the list, which puts the affiliate back in To pay. If the bank sends a transfer back, or you cancel it in Wise after it was funded, the payout is taken back and its orders return to To pay by themselves. A payout sent through Wise cannot be undone by hand. If Wise refuses a transfer, for example because the balance is short, it is withdrawn in Wise, nobody is recorded as paid, and the Payouts page gives Wise's own reason.

Connecting Dwolla

Dwolla is the other way Sprout Affiliate sends a bank transfer: it pays an affiliate's US bank account by ACH, in US dollars, from your own Dwolla account. Like Wise it is a connection, not a payout method: affiliates choose Bank transfer and add their US bank, and there is no separate Dwolla choice for them. A store can use Dwolla and Wise together, with Dwolla for US banks and Wise for everyone else.

The card is in Settings › Payouts, under Dwolla, beside Wise, with the same Enable switch. Dwolla only works on a store whose currency is US dollars; on any other store the card says so and cannot be connected. Sending through Dwolla is on the Growth plan, like PayPal and Wise.

Setting up Dwolla

  1. Open a business account with Dwolla and finish Dwolla's verification. Dwolla approves each account before it can send payouts, and sets its fees and limits in your Dwolla agreement.
  2. In Dwolla, add the bank your payouts are sent from and verify it, or keep money in your Dwolla balance.
  3. In the Dwolla dashboard, open Applications and copy the key and the secret.
  4. In Sprout Affiliate, pick Production (or Sandbox, below), paste the key and the secret, and press Connect.
  5. Pick where payouts are sent from: your verified bank or your Dwolla balance. Only those can send.

To try it with test money first, sign up for Dwolla's sandbox at dashboard-sandbox.dwolla.com, use the key and secret from there, and pick Sandbox. No real money moves, and the card and the Send dialog say so.

The secret is stored encrypted and is never shown again. On connecting, Sprout Affiliate also asks Dwolla to tell it about every transfer (a webhook); if that cannot be set up, Sprout Affiliate still checks with Dwolla every few minutes. Disconnecting removes the key, the secret, and the webhook, and affiliates whose bank is in Dwolla are paid by hand until you reconnect. You cannot disconnect while a Dwolla transfer is still on its way. Reconnecting a different Dwolla account means each affiliate adds their bank again, because the banks belong to the account they were added to.

Payout security

Dwolla has its own payout password or authenticator app, set up on the Dwolla card once it is connected and kept separately from Wise's. Dwolla sends nothing until one is set up, and every Send through Dwolla asks for it. It works exactly as Wise's does: stored only as a scrambled hash, the current one needed to change it, and five wrong tries in a row lock sending through Dwolla for 15 minutes.

Sending, and what happens next

Press "Send Dwolla payouts" in To pay, or "Send via Dwolla" on an affiliate's row or their payout page. The dialog lists each affiliate and amount and the total sent from your Dwolla account. Dwolla does not quote its fee in advance: it charges it under your Dwolla plan, and you can enter it on the payout's page once you know it. Enter your payout password or code, and press Send.

Each affiliate is one Dwolla transfer, sent once even if the connection drops: Sprout Affiliate gives each transfer a key that Dwolla treats as the same transfer if it is asked again. The affiliate is recorded as paid, and told if they get payment emails, the moment Dwolla accepts the transfer. If Dwolla's answer never arrives, the affiliate shows as waiting and cannot be paid another way while Sprout Affiliate finds the transfer in Dwolla; if Dwolla never received it, the affiliate goes back to To pay after half an hour and nothing was sent.

A transfer takes one to three business days to reach the bank. The Dwolla transfers list on the Payouts page shows each one: On its way, Sent, Didn't go through, or Cancelled. One that is still on its way can be cancelled from the list until 4pm Central on the day it was sent, which takes the payout back. If Dwolla refuses a transfer, for example because the balance is short, nobody is recorded as paid and the Payouts page gives Dwolla's reason.

A payment can still come back after it was sent. The affiliate's bank can return an ACH payment, for example when the account number is wrong (return code R03) or the account is closed (R02), sometimes days later. When that happens the payout is taken back by itself, its orders return to To pay, and the Payouts page shows a red notice with the return code and Dwolla's words, so you can ask the affiliate to check their bank and pay again. A payout sent through Dwolla cannot be undone by hand.

Tax on payouts

Tax is set for each affiliate on their own page, under Tax information > Tax on payouts. Whether a payout carries a tax depends on where that affiliate is based and where your store is, so there is no store-wide setting. Every affiliate starts on No tax.

What each option pays out on a $100 commission at 10%
Tax on payoutsAffiliate receivesLeaves your accountRecorded as earned
No tax$100.00$100.00$100.00
Tax held back$90.00$90.00$100.00
VAT added on top$110.00$110.00$100.00

The commission the affiliate earned is always $100 in the ledger. Only the payout changes.

The rate applies when a payout runs, not when a commission is earned, and withholding runs before your payout minimum, so it can push a small balance under the line and carry it to the next run.

Sprout Affiliate does not decide whether any tax applies. It records the amount and adjusts the payout; it does not file or remit anything. Whether tax is due, who accounts for it, and at what rate depends on where you and the affiliate are, and cross-border rules differ from domestic ones. Ask your accountant before setting either one on an affiliate.

Tax forms are separate from the tax setting. Sprout Affiliate can collect a W-9 from US affiliates, or a W-8BEN from foreign ones, in their portal, and totals each affiliate’s paid commissions for the year so you can file a 1099-NEC. Those totals are on the Professional plan.

Only you can open your affiliates’ tax forms. Before a store collects tax forms, it sets a tax passphrase under Settings > Affiliate tax forms. Your browser then makes a key that only that passphrase opens, and every W-9 and W-8BEN an affiliate signs is locked with it the moment it arrives, as is your own EIN for the 1099. Sprout Affiliate never sees the passphrase and has no way to open the forms, so nobody who runs Sprout Affiliate can read a tax ID.

You open a form in the Tax information card on the affiliate’s page, under General information, or on their 1099, by entering the passphrase there; it stays open in that browser tab until you reload. Download W-9 (or W-8BEN) in the same card saves the IRS’s own form with the affiliate’s answers filled in, asking for the passphrase first if the form isn’t open. The form is filled in your browser, so the tax ID never passes through Sprout Affiliate. Lists show only whether a form is on file, which form, and the tax ID’s last four digits. When you set the passphrase you are shown a recovery key once: keep it somewhere safe, because it is the only other way in. Change passphrase needs the current passphrase or the recovery key. If both are lost, nobody can open the forms, Sprout Affiliate included, and starting over deletes them so each affiliate fills in their form again on the portal.

Both are for stores based in the United States, because both exist for a US filing obligation. If your store’s address in Shopify is anywhere else, Settings has no Taxes section, no affiliate is asked for a form, and nothing is held back for a missing one.