Reseller / Channel Partner Network
Scope. Kontier bills the customers your partners bring in: customers, subscriptions, invoices, payments, credit notes, FX, wallets and VAT verifications are available today. Partner commission rules, settlements and recurring schedules are planned and not available through the public API. In this blueprint Kontier is the system of record for referred revenue, and your own commission job turns that revenue into commissions, co-op accruals and payouts.
The reseller channel pattern: instead of selling direct, you sell through partners (resellers, MSPs, integrators, distributors) who layer their own services and margin on top of your platform. Partners earn a commission on their referred revenue, which can be tiered by partner level (Bronze/Silver/Gold/Platinum), augmented with co-op marketing budgets, and modified by spiff incentives for hitting quarterly targets. The hard part is keeping the commission math correct as partners move between tiers and earn or lose access to incentive programs.
Real-world examples. Microsoft Partner Network (Azure / 365 reseller commissions, MOSP/CSP tiers), AWS Marketplace (ISV partner revenue share), Stripe Apps / Stripe Partner Ecosystem (per-app revenue share + tier benefits), Salesforce AppExchange, HubSpot Solutions Partner Program, Adobe Solution Partner. Common shape: 3-5 partner tiers with progressively better commission rates, base commission + spiff incentives for quarterly/annual targets, co-op marketing fund (% of referred revenue available for partner-driven marketing), monthly or quarterly commission payouts.
The shape of the problem
Multi-tier partner programs combine marketplace and enterprise mechanics:
- Per-partner tier commission. A partner's commission rate depends on their tier: Bronze = 5%, Silver = 8%, Gold = 12%, Platinum = 15%. The tier is determined by trailing-12-month referred revenue and recertified periodically.
- Mid-period tier promotions. When a partner crosses the Silver-to-Gold threshold, the new rate applies prospectively. Existing already-paid commissions don't get re-rated.
- Spiff incentives. "Earn an extra 3% on any new logo above $100k contract value in Q2" - time-bounded, threshold-conditional bonus commission on top of the base rate.
- Co-op marketing fund. A percentage of the partner's referred revenue accumulates into a partner-controlled marketing fund that the partner can draw against for approved marketing spend.
- Multi-tier hierarchy. Distributor sells to a sub-distributor sells to a reseller sells to the customer. Each layer takes a cut. Commissions flow up the hierarchy in correct order.
- MDF (Marketing Development Funds). Partner submits an expense for an approved campaign; once approved, it draws from the co-op fund and is paid back to the partner.
Kontier blueprint
| Concern | Kontier primitive |
|---|---|
| The partner | A BUSINESS customer record for the partner, with its tier in metadata |
| Attribution of referred customers | A customer tag per partner on each referred customer, plus the partner's id in the customer's metadata |
| Referred revenue per period | GET /v1/invoices filtered by customer, status=paid and paid_at |
| Real-time commission accrual | The invoice.payment_recorded webhook |
| Per-partner tier, spiff and hierarchy rules | Your commission job; commission rules are not part of the public API |
| Co-op marketing fund | Tracked in your commission job; optionally granted as price-reduction credit on the partner's own invoices |
| Monthly partner payouts | Your payables process; partner settlements are planned and not available through the public API |
| Partner VAT ID | Verifications: a VIES check on the partner's VAT ID |
Build it
IDs in the examples are placeholders: use the id each create call returns.
1. Onboard a Gold-tier partner
Create the partner as a business customer. Its tier and commission terms are your program's data, so keep them in metadata where your commission job reads them:
Code
POST /v1/customers also provisions the partner's wallet in its preferred_currency; GET /v1/customers/{id}/wallet returns it. You need it only if the partner also buys from you (see step 5).
Then create one customer tag per partner. You attach it to every customer the partner refers:
Code
2. Tag deals with the partner who referred them
When a customer signs through a partner, create the customer with the partner's tag and record the referral facts your spiff rules need:
Code
Then subscribe the customer as usual: POST /v1/subscriptions, author the deal with PUT /v1/subscriptions/{id}/revisions/draft, and start it with POST /v1/subscriptions/{id}/activate (the SaaS per-seat blueprint shows the calls). The customer's invoices carry its customer_id, and the tag ties that id to the partner: GET /v1/customers?tag=partner-synergy lists every customer the partner referred.
3. Define the commission rules, including the quarterly spiff
Commission rules (base rate per tier, spiffs, volume bonuses) are not part of the public API. Keep them in your commission job, keyed by tier and effective dates:
Code
For a qualifying deal paid in Q2 the job applies 12% + 3% = 15%; outside Q2, 12%. Because the rules carry effective dates, a tier promotion applies prospectively, and commissions on already-settled periods are not re-rated.
4. Compute the monthly partner statement
At month end, read what the partner's customers paid. For each referred customer, list the paid invoices in the period:
Code
customer_id also accepts a comma-separated list (customer_id=a,b), so one call can cover several referred customers. Each invoice carries subtotal (net of tax), total and amount_paid as { "value", "currency" }. Your job applies the partner's rules to the subtotals and produces the statement: for example $85,000 at 15% = $12,750 commission plus $1,700 co-op accrual, and $2,500 at 12% = $300 plus $50 co-op.
To accrue as money arrives rather than at month end, subscribe a webhook endpoint to invoice.payment_recorded and accrue when the paid invoice belongs to a tagged customer. Credit notes reduce referred revenue: the invoice list returns invoices by default, so list credit notes the same way with kind=credit_note and net them against the commission.
The settlement itself (the partner-facing statement and the cash payout) happens in your payables process. Kontier's marketplace payouts cover sellers on a marketplace, not channel-partner commissions.
5. Co-op marketing fund and MDF claims
A Kontier wallet holds a customer's own money, so it is not a ledger for funds you owe a partner. Keep the co-op fund balance in your commission job: each statement adds 2% of referred revenue, and each approved MDF claim draws from it. Run your MDF approval workflow there too; Kontier has no approval queue for partner expenses.
When the partner also buys from you (for example, it resells licenses billed to its own account), you can honor an approved claim as credit on its invoices: a person with the wallet.grant_promotional permission can grant price-reduction credit on the partner's wallet: POST /v1/wallets/{id}/credit with source: "PROMOTION", grant_kind: "PRICE_REDUCTION" and a reason. The grant needs a human caller, so your commission job cannot make it with an API key. It moves no cash: it reduces the partner's next invoices before tax, and the reason is printed on each invoice it reduces.
6. Tier recertification
Recurring schedules are not available through the public API, so run the quarterly recertification from your own scheduler. It reads each partner's trailing-12-month referred revenue (step 4 over twelve months) and writes the new tier back to the partner record:
Code
metadata on a PATCH replaces the whole object, so send every key. Promotions take effect prospectively; commissions on already-settled deals don't re-rate.
Variations
- Multi-tier hierarchy (distributor -> sub-distributor -> reseller). Record each partner's parent in its
metadata(for exampleparent_partner_customer_id). Your commission job walks the chain for every referred invoice and gives each layer its configured cut. - ISV revenue share. A third-party ISV listed on the platform with their own product. Use the marketplace pattern: the ISV is a marketplace seller, paid through marketplace payouts, while the referral commission stays in your commission job.
- Volume bonuses. Add a rule to your commission job: an extra 2% when a partner's monthly referred revenue passes $1M. Step 4's invoice list gives the monthly total.
- Net-of-cost commissions. When payment processing cost varies per deal (cards vs ACH vs wire), net it against the commission before payout, the same way as the creator platform net handling.
- Certified-partner exclusivity. Track certifications (annual exam pass) in your partner system and gate tier benefits on them in the commission job. Kontier verifications check VAT IDs, not partner certifications.
- Stack rank quarterly bonuses. Top 10% of partners by referred revenue earn an additional 1% spiff. Rank partners from step 4's totals and add the spiff rule for the quarter.
What you don't have to build
- Customer billing for every referred deal: subscriptions, invoices, payments, dunning and credit notes
- Per-partner attribution from customer to invoice (customer tags and
GET /v1/invoicesfilters) - A real-time feed of paid revenue (
invoice.payment_recorded) - Multi-currency referred revenue: each invoice states its currency, and your job converts at your FX policy
- VAT checks on partner VAT IDs
Next steps
- Customers - partner records, tags and metadata
- Invoices - listing paid invoices per customer
- Webhooks -
invoice.payment_recorded - Wallets - price-reduction credit for partners who also buy from you
- Marketplace - related blueprint