Vendor payouts in a WP Sell Services marketplace follow one path: the buyer pays, your commission is taken, the vendor’s share is credited to a wallet, and then you pay that balance out. In the free plugin, that last step is yours. Vendors request a withdrawal, you pay them however you like, and you mark it paid. Pro adds automatic rails for it: Stripe Connect and PayPal Payouts.
That’s the whole picture. The rest of this post fills in the parts a marketplace owner usually asks about: how the commission is worked out, how long earnings can be held, what a payout looks like day to day, and what happens when a refund arrives after the vendor has already been paid.
Commission: one rate, with overrides
Every order carries a split between your platform and the vendor. You set a global commission rate in Settings, from zero to fifty percent, and it applies to every vendor unless you’ve given a particular vendor their own rate. The per-vendor override is in the free plugin, and it applies once you switch on vendor-specific rates in the commission settings. After that it wins over the global rate. It’s useful for a promotional rate for new vendors, or for a partner you’ve agreed different terms with.
If the rate should depend on the sale rather than the vendor, Pro adds tiered rules that match on service category, seller level or sales volume. The first matching percentage rule wins, and rules are never stacked or averaged. Because the rules are applied after the per-vendor rate, a matching rule takes over the rate for that sale.
One detail worth knowing: the split is worked out once, when the order is paid, and stored on the order. Change your commission rate next month and the orders already paid keep the rate they were paid at. Nothing rewrites history behind your back, which is what you want when a vendor asks you to explain a figure from March. The commission system docs cover the rate settings step by step.
Earnings land in a wallet, then clearance applies
When an order completes, the vendor’s share is credited to their wallet. (Milestone phases are different: each one is credited when the buyer approves it, not when it is paid. See milestone payments for how that works.)
Credited doesn’t have to mean withdrawable. The clearance period is the number of days earnings are held before the vendor can request them. It ships at zero, meaning no hold, because how long to sit on someone else’s money is a policy decision and not something the plugin should impose. Set a refund window of a week or two and a vendor can’t withdraw an order’s earnings until it passes, which gives late disputes and chargebacks time to show up first.
Neither choice is wrong. A short or zero clearance period is friendlier to vendors. A longer one protects you from paying out money you may have to give back.
Paying vendors in the free plugin
The free workflow has no integration to connect, and it works for a lot of marketplaces for longer than you’d expect.
A vendor opens their earnings page, sees their available balance and requests a withdrawal, choosing a payment method and giving their details. You see it in Withdrawals, review it, and approve or reject it. If you reject it, the money goes straight back to the vendor’s available balance. If you approve it, you send the payment yourself: a bank transfer, PayPal, Wise, whatever you already use. Then you mark it paid, and the ledger records the debit. The order matters: a request has to be approved before it can be marked paid, so nobody pays out a request that was never reviewed.
Two things make this less manual than it sounds. First, you can turn on scheduled auto-withdrawals, which are also in the free plugin. Pick a threshold and a weekly, bi-weekly or monthly schedule, and the plugin raises withdrawal requests for any vendor whose balance has passed the threshold and who has a payment method saved. You still approve and pay each one. What you’ve automated is the chasing, not the paying. The automated payouts docs have the details, including how the schedule behaves.
Second, there’s a CSV export on the Withdrawals screen. It follows the status and method filters you’ve set, so you can export every approved PayPal request, load the file into your bank’s or PayPal’s bulk upload, pay the lot and then mark each one paid. The export itself never changes a status, so a failed transfer can’t be silently recorded as paid.
What is in the CSV export, and how to handle it
The export is a plain CSV with one row per request. It carries the withdrawal ID, vendor name and email, amount, currency, method, the PayPal email or bank name and account number the vendor saved, the status, and the requested and processed dates. Only an administrator can download it.
Because the file contains payout details in readable form, treat it like any other financial document. Download it, upload it to your bank or PayPal, then delete it from your downloads folder. Don’t email it around or leave it in a shared drive.
Filtering before you export is the useful part. Set the status to approved and the method to PayPal, and the file contains exactly the batch you are about to pay. Run it again for bank transfers, and each upload matches one rail.
What happens when a refund arrives after a payout
This is the case that makes owners nervous, and it’s worth understanding before you launch.
A refund reverses the platform fee and the vendor earnings in proportion. If the vendor hasn’t been paid yet, their balance just goes down. If they have been paid, the balance goes negative: an honest record of a debt, which future earnings pay down automatically as they come in. The vendor can see it on their earnings dashboard.
If you’d prefer that conversation never happens, that’s what clearance days are for. Hold earnings for as long as your refund window runs and most reversals land before the money has left.
What Pro adds: Stripe Connect and PayPal Payouts
Pro doesn’t change the ledger. Every rail settles against the same wallet balances, so you can mix them and move between them without orphaning anything. What Pro changes is who does the paying.
Stripe Connect pays vendors as the sale happens. Each vendor connects a Stripe account through Stripe’s own hosted onboarding, so you never handle their bank details. When a buyer pays, your platform fee stays with you and the rest goes to the vendor’s connected account. The fee comes from your normal commission rules, unless you set a separate Connect fee on purpose. Vendors who don’t connect aren’t blocked. They earn into the ordinary wallet and request withdrawals like anyone else. Setup is in the Stripe Connect docs.
PayPal Payouts is for the batch route. Vendors add a payout email, you select the balances owed and send a single batch, and each payout is settled on the ledger once so a balance can’t be reduced twice. A batch can be re-synced with PayPal if part of it failed.
Neither one is required. The vendor payouts docs lay out each rail and when to use it, and free vs Pro shows the tier split.
A worked example with numbers
These figures are made up to show the arithmetic. Say your commission is ten percent, your clearance period is seven days and your minimum withdrawal is fifty.
- A buyer pays 200 for a service. The split is fixed at payment: 20 for you, 180 for the vendor.
- The order completes on a Tuesday. The 180 is credited to the vendor’s wallet, but it sits inside the clearance window, so the earnings page shows it as not yet available.
- Seven days later the 180 becomes available. The vendor’s balance is above the minimum, so they request a withdrawal.
- You approve the request, send 180 from your own bank or PayPal account, and mark it paid. The ledger debits the wallet by 180.
If the buyer had been refunded on day five, the vendor’s credit would have been reversed before it ever became withdrawable, and no payout would have been needed. That is the practical value of a clearance period: it lets disputes and refunds land before the money leaves.
The withdrawal queue in more detail
Every request is in one of five states: pending, approved, completed, rejected or cancelled. A few rules keep the queue predictable.
- A vendor can have one open request at a time, which stops a pile of overlapping requests for the same balance.
- Requests below the minimum withdrawal are refused when the vendor submits them.
- A vendor can cancel their own pending request, which releases the amount back to their available balance.
- Marking a request paid twice debits the wallet once, so two admins clicking at the same moment cannot double-pay in the ledger.
Vendors choose a payout method when they request money. The free plugin ships with PayPal, which asks for an email address, and bank transfer, which asks for the account holder, the bank and the account number. Their details are saved as a payout profile, so the next request starts filled in. A developer can add more methods with a filter if your market uses something else.
A weekly routine for the owner
Payouts don’t need daily attention. A weekly pass is enough for most marketplaces.
- Open Withdrawals and filter to pending requests.
- Check each vendor’s recent activity before approving, especially for first payouts.
- Export the approved requests as CSV and load the file into your bank or PayPal.
- Mark each request paid once the transfer clears, not before.
- Glance at any vendor with a negative balance and decide whether to wait for future earnings or ask for repayment.
What the plugin does not do
The free plugin does not send money for you. It records, reserves and reports. It also doesn’t collect tax forms from vendors or generate year-end tax documents, so if your jurisdiction requires them you will need a separate process. Pro adds automatic payout rails, but it doesn’t add tax paperwork either.
Wallet plugins such as TeraWallet, WooWallet and MyCred aren’t offered as payout choices. Vendors are always paid from the plugin’s own balance, and the balance history is the single record of what moved. If your site already uses a wallet plugin, treat it as a separate system.
For the exact screens and settings, the withdrawals documentation goes through each option, and the site owner overview puts payouts alongside the other admin tools. The freelance marketplace use case shows a full setup from signup to payout.
Questions vendors will ask you
Most payout support is the same handful of questions. Having the answers in your vendor onboarding saves you a steady stream of messages.
- Why can’t a withdrawal be requested yet? Either the earnings are inside your clearance period, the balance is below the minimum withdrawal, or an earlier request is still open.
- Why is my balance negative? A refund landed after a payout. Future earnings pay the debt down automatically, and the earnings dashboard shows it.
- Why does a milestone phase show as clearing? The buyer has paid, but the phase is credited when the buyer approves the delivery.
- How long will a payout take? On the free plugin, as long as you take to approve and send it. Say your usual schedule in your terms, such as a weekly payout day.
- Can payout details be changed? Yes. Details entered with a withdrawal request become the saved payout profile, and later requests reuse it.
Write these into a vendor help page and link it from the earnings screen. The vendor overview describes what sellers see on their side, which helps when you are drafting that page.
Choosing a setup that fits your size
A handful of vendors: stay on manual withdrawals and mark-paid. There’s nothing to configure and nothing to break.
Growing, and tired of chasing requests: add scheduled auto-withdrawals plus the CSV export, and keep control of when money leaves.
Many vendors who already take PayPal: batch them with PayPal Payouts. High volume, with a Stripe account already in place: Stripe Connect, so each sale settles itself.
You can change your mind later. Start simple, and add an automatic rail when the weekly payout run starts eating real time.