Guides

Bulk contractor payouts: pay your bench in one run on Fynex

How to set up bulk contractor payouts on Fynex: add each contractor as a payee, fund USD, GBP and EUR balances, approve one run; every payment reconciles.

To pay your contractor bench in one bulk payout run on Fynex, add each contractor once as a payee with their bank details, fund your USD, GBP and EUR balances, and let Fynex build the run each cycle. You approve it once. Each contractor is paid separately over their local rail, and each payment is reconciled to its invoice.

This guide is for agencies and creative studios paying a bench of freelancers and contractors across several countries. It covers the Fynex setup. If you are still deciding how contractors should be paid at all, read how to pay your contractor bench across borders and the best way to pay international contractors first.

How to set up bulk contractor payouts on Fynex: the steps

Steps 1 to 4 happen once per contractor. Steps 5 to 8 are the monthly run, and they take minutes once the bench is in place.

  1. Create a Fynex account. The setup dock walks you through a first payee, a commission rule, an invoice and a test payment; you can explore in sandbox before verification. How to get started with Fynex walks through every screen.
  2. Add each contractor as a payee. Enter the business or trading name, email, role (Contractor), tax ID, address, bank country, account number and BIC or routing number. A wallet for the contractor is set up automatically.
  3. Record what each contractor is owed. A fixed monthly rate, a day rate against a timesheet, or a milestone. This is the figure Fynex checks each payment against.
  4. Fund your currency balances. Your Fynex account holds USD, GBP and EUR. Top up the currencies you owe, so payouts draw from a balance rather than a conversion on every line.
  5. Let Fynex build the run. One line per contractor: amount, currency, rail and the invoice it settles. Lines that don’t match the agreed rate are flagged before you see the total.
  6. Approve once. Review the run, hold a line if you need to, then approve. Nothing moves before approval.
  7. Each payout goes out on its own rail. Every line is a separate payment with its own reference and status.
  8. The run reconciles itself. Each settled payout is matched to the contractor’s invoice and booked to QuickBooks or Xero.

What do you need from each contractor before the first run?

Collect the details once, at onboarding, and the monthly run never stops to ask for them. A contractor with missing bank details is held out of the run with the reason shown, rather than paid late or paid wrong.

DetailWhy it’s needed
Legal or trading name, emailIdentifies the payee and receives the payment notice
Tax ID and addressKeeps the payee record ready for year-end filings
Bank countryDecides the currency and the rail
Account number and BIC, IBAN, sort code or routing numberThe destination the payout goes to
Agreed rate or timesheet sourceThe figure each payment is checked against

Ask each contractor to invoice in the currency they are paid in. It keeps the invoice, the payment and the ledger entry in one currency, and it removes the conversion question from the contractor’s side.

Which rail does each contractor get paid on?

Fynex picks the rail from the payout currency and the contractor’s bank details. Where a domestic scheme reaches the contractor, the payment uses it instead of an international wire. That is where most of the saving on a bench run comes from.

Contractor’s bankCurrencyRail
US accountUSDACH or same-day ACH; wire, RTP or FedNow when speed matters
UK account (sort code)GBPFaster Payments
Eurozone account (IBAN)EURSEPA
Account elsewhere (IBAN)USD or GBPCross-border transfer

Pay each contractor in the currency they invoice in. A designer in Lisbon invoicing in EUR is paid in EUR over SEPA, from your EUR balance, with no conversion on arrival. The rail terms themselves are explained in SEPA vs SWIFT.

What does a bulk payout run cost on Fynex?

Fynex’s fee is 0.05% per transaction on money in and money out, plus $20 a month for the plan, which includes 40,000 agent credits. On a $40,000 monthly bench run, the Fynex fee is $20. Full details are on the pricing page.

Two costs matter more than the fee line on most contractor platforms:

  • The FX spread. A low transfer fee can hide a wide rate. Fynex earns no spread on your flow; hold the currencies you owe and convert deliberately rather than per payment.
  • The rail. A domestic payment usually costs far less than an international wire to the same contractor.

Price any platform on all three at once. FX markup explains how to spot the spread.

How does one approval become forty separate payments?

A bulk payout on Fynex is one approval over many payments, not one payment split later. When you approve the run, each line is sent as its own payout, drawn from the contractor’s wallet in that currency.

Every payout moves through the same statuses: pending, processing, then completed, failed or cancelled. A failed line returns its amount to your balance and shows the reason. The other lines carry on.

Each payout carries a description of up to 140 characters, which reaches the contractor’s bank statement as remittance information. Put the invoice number in it, for example “INV-0931 September design retainer”, and neither side has to ask which payment was which.

If you run the bench through the API instead of the dashboard, the same run is one POST /payees/{payee_id}/payouts per contractor, with payoutMethodId, amount, description and an idempotencyKey. The Payouts docs have the full request.

How do contractor payouts land in QuickBooks or Xero?

Each settled payout is matched to the invoice it pays and to the contractor, so month-end starts from forty settled invoices, not one lump to untangle. The applied rate travels with each foreign-currency payment, so a difference between invoiced and sent amounts is explained when it happens.

This is the agentic finance layer on top of the run: the agents check each line against the agreed rate, route it, and reconcile it, and you approve the result. Your cash position already shows the run against the client payments landing that week, so payday never collides with a low balance.

Where to go next

FAQ

Frequently asked questions

Add each contractor to Fynex once as a payee, with their bank country and account details, and fund the currency balances you pay from. Each cycle, Fynex builds the payout run: one line per contractor, in their currency, over their local rail. You review it and approve it once. Every line then goes out separately, is tracked to completion, and is reconciled to the invoice it settles in QuickBooks or Xero.
Compare three costs, not one: the per-payout fee, the FX spread hidden in the rate, and the rail each payment travels on. Fynex charges 0.05% per transaction, so a $40,000 bench run costs $20 in Fynex fees, plus $20 a month for the plan with 40,000 agent credits. It earns no spread on your flow, and it routes each contractor over their domestic scheme rather than an international wire where one is available.
Many. You approve one run, but each contractor receives their own payment with their own reference, amount and status. That is what keeps the run reconcilable: forty contractors paid means forty settled payments matched to forty invoices, not one debit someone has to split later. It also means one failed payment does not hold up the other thirty-nine.
The failed line returns its amount to your balance and shows as an exception with a plain-language reason, such as a closed account or a wrong routing number. The rest of the run is unaffected. Fix the contractor's payout method, then pay that line again with the same idempotency key, so a payment that did go through is never sent a second time.
Yes. Create each contractor as a payee with a payout method, then send one POST /payees/{payee_id}/payouts per contractor with the payout method id, the amount, a description and an idempotency key. The description reaches the contractor's bank statement as remittance information. Payouts do not emit webhooks yet, so poll GET /payouts/{id} until each reaches completed, failed or cancelled.
Book a demo