Automation · Finance
How to build partner payouts
Payouts are worked out in a spreadsheet at quarter end, partners dispute a third of them, and the arguments take a month. How to calculate what each partner is owed from the deal and the cash, the prompts that build it, and how to make the statement the end of the conversation.
Built with Tray Headless
- System Salesforce
- Step Invoice paid?
- Step Rate at the time
- Step Statement to partner
- System NetSuite
A payout is calculated when the deal's invoice is paid, from the partner's rate at the time, and shown to the partner before it is paid.
The short answer
What are partner payouts?
Partner payouts have four parts: an earning event tied to cash rather than the signature, usually the customer's invoice being paid; the partner's rate taken from their agreement and tier as they stood when the deal was registered, not as they stand today; a statement each partner can see in the portal before anything is paid, line by line back to the deal; and the payment raised in the finance system with the statement attached. What causes most disputes is the rate. A partner promoted a tier mid-quarter, paid on the old rate for some deals and the new one for others, with nobody able to say which applied when.
Stage 6 of 6: Pay partners. Part of Partner integrations, end to end : every stage, the systems it runs on and the guide that builds it.
What matters here
- Pay on cash, not on signature. A deal that never pays shouldn't cost you a payout to claw back.
- Use the rate as it stood when the deal was registered. Today's tier applied to last quarter's deals is a dispute.
- Show the statement before you pay. A partner who can check it first rarely disputes it after.
- Tie every line to a deal and an invoice. A payout that can't be traced will be negotiated.
- Handle credits and refunds on the next statement, visibly. A silent clawback ends partnerships.
Who this is for
You run partner operations or finance for a partner program. Payouts are calculated in a spreadsheet from CRM exports and the accounting system, and every quarter brings disputes.
How it works in practice
From a partner's deal closing to the partner being paid what they can see they earned.
- 1
A partner deal closes
A registered or referred deal, linked to its partner and its registration.
- 2
The invoice is paid
In the finance system. This is the earning event, so a deal that never pays never earns.
- 3
The payout is calculated
From the partner's rate and tier on the registration date, against the amount collected.
- 4
The partner sees the statement
In the portal, line by line, with a window to question any line before payment.
- 5
The payment is raised
As a vendor bill in the finance system, with the statement attached.
- 6
Credits and refunds adjust the next statement
As their own lines, with the deal and the reason, never netted off silently.
What partner payouts are made of
Four parts. The second is where most disputes start.
Cash as the earning event
The customer's invoice paid, read from the finance system, not the deal closing in the CRM.
The rate at the time
The partner's tier and rate from their agreement as they stood on the registration date, kept with each payout line.
A statement first
Each partner's lines in the portal before payment, with a few days to question one and a reason required.
Payment with the evidence
A vendor bill in the finance system per partner per period, with every line traceable to a deal and an invoice.
The Tray Headless prompts
Paste these into Claude Code or Codex with the Tray Headless plugin installed. Each stage runs on its own. The systems named in them are the worked example rather than a requirement, and every prompt says so.
Once per project, run
/tray-workflows:set-workspace
to pick the workspace these build in. Point it at a sandbox first.
- 1
Write down what earns a payout
Before any code, because the rule is the program.
Headless skills
build-workflowUse build-workflow. The systems in play are Salesforce, NetSuite, Impartner, Slack and Snowflake, or whatever we run in those seats. Before you plan anything, tell me which are already authenticated. Write the payout rule down with me before building. My starting position: A payout is earned when the customer's invoice for the deal is paid The rate is the partner's rate for their tier on the date the deal was registered or referred Multi-year deals pay on each year's invoice as it is paid A refund or credit reverses the matching share on the next statement, as its own line Tell me where each fact lives, in which system.
- 2
Calculate on cash, at the rate at the time
Today's tier applied to last quarter's deals is a dispute.
Headless skills
build-workflowtray-gotchasUse build-workflow and tray-gotchas. When an invoice is paid in NetSuite, find its Salesforce opportunity and check whether it has a partner registration or referral. If it does, find the partner's tier and rate on the registration date from the tier history, never the current value, and calculate the payout on the amount collected. Record each payout line with the deal, the invoice, the amount collected, the rate and the date it applied from. Never change a line once a partner has seen it. Corrections are new lines.
- 3
Show the statement before paying
A partner who checks it first rarely disputes it after.
At the end of each period, publish each partner's statement in Impartner: every line with the customer, the deal, the amount collected, the rate and the payout. Give partners five working days to question a line, with a reason. Send each question to the partner manager in Slack with the line's record. Answer from the record, and if the record is wrong, add a correcting line rather than editing the old one.
- 4
Raise the payment and report
Every payment carries its evidence.
After the question window, raise one vendor bill per partner in NetSuite for the period's total, with the statement attached and the partner as the vendor. Land every line in Snowflake. Report per period: payouts by partner, lines questioned and why, corrections made, and the average days from invoice paid to partner paid.
Lines questioned per period is the number that shows whether the rule is clear. It should fall every quarter.
What it connects to
The deal is in the CRM, the cash is in finance, and the partner sees it in the portal.
Salesforce
Link each paid invoice to its deal and registration, and read the partner's tier history.
Reads
NetSuite
Start the calculation when an invoice is paid, and raise the partner's vendor bill for the period.
Reads and writes
Impartner
Publish each partner's statement before payment, and take questions on any line.
Reads and writes
Same build, other stacks
The design does not change if you run something else in one of these seats. The same prompts build it against Microsoft Dynamics 365, SAP S/4HANA, Google BigQuery, Microsoft Teams, HubSpot or Oracle.
Connections in this build
Field mapping, templates and common problems for each pairing: NetSuite + Salesforce, Impartner + Salesforce and Salesforce + Slack.
Named systems are the ones most teams run, not the only ones that work. Each is an authentication in your Tray workspace, referenced by name, so the workflow never holds a credential. Where we have a connector page, the name links to it.
Running it in production
This pays money to other companies. Every line will be checked by someone.
It runs on every paid invoice
Payouts build up through the period, so the statement is ready on the last day rather than three weeks later.
Lines are never edited
Corrections are new lines with a reason, so the statement a partner saw is always the statement on file.
Credentials stay in the workspace
A credential that raises vendor bills is sensitive. It lives in your workspace, scoped and separately rotatable.
Finance owns the rule
The payout rule and the rate table open in Tray Build, so a program change is reviewed where it is made.
Questions people ask
Should partners be paid on signature or on cash?
On cash, for most programs. A deal that never pays shouldn't cost a payout you then have to claw back.
Which rate applies when a partner changes tier?
The rate on the date the deal was registered or referred. Keep a tier history so it can be looked up, and say so in the program rules.
How do you cut payout disputes?
Show each partner the statement before paying, line by line back to the deal and invoice, with a window to question any line. Most disputes are settled before payment that way.
How are refunds handled?
As their own line on the next statement, with the deal and the reason. Never net a refund off silently.
Related guides
Revenue operations
How to build partner deal registration
Check submissions against pipeline in seconds, protect for a fixed window, expire visibly, and settle conflicts with a rule rather than an argument. The prompts.
Revenue operations
How to build a commission data to payroll sync
Qualify transactions against the plan, show the working line by line, hold disputes without holding the run, and reconcile before it pays. The prompts.
Finance
How to build collections and dunning
Escalate on the customer rather than the invoice, stop the moment they pay or dispute, and never dun an account somebody is negotiating with. The prompts.
Last reviewed October 2026.