Affiliates

An affiliate program for your App. Affiliates share a tracked link; when a buyer they referred pays, Onelo records a Commission for that Affiliate. Onelo counts and reports. It does not move money to Affiliates: you pay them yourself, outside Onelo, and mark the Payout as paid. An Affiliate is not one of your App Users and does not need Onelo Auth. Manage the program under Dashboard → Affiliates, or through the MCP connector (module affiliates).

This is not tax or legal advice. This page describes how Onelo behaves. You run the program, you set its Terms, and you pay your Affiliates. Whether and how you may track referrals, what you owe your Affiliates, and how those payments are taxed depend on your situation — confirm them with an adviser.

Who pays whom

MoneyFromToThrough
The buyer’s paymentBuyerYouYour own Stripe account, as for every sale
Platform Fee and Affiliate FeeYour paymentOneloThe Stripe application fee on that payment
CommissionYouThe AffiliateOutside Onelo, in the way you agree with them

Affiliate Fee — a worked example

On a payment that earns a Commission, Onelo adds its Affiliate Fee to the application fee it already takes. The fee is a share of the Commission, not of the sale, and depends on your Onelo Plan. A payment with no Referral carries no Affiliate Fee. Example: a sale of 100.00 with a 10% Commission.

Onelo PlanSaleCommissionAffiliate Fee to Onelo
Free100.0010.000.50
Pro100.0010.000.30
Business100.0010.000.20

Amounts are in the payment's own currency. The fee is rounded to the smallest unit of that currency and stored on each Commission, shown in the Affiliate Fee column of the Commissions list. On a subscription's first invoice the fee is folded into the application fee percent, so the amount charged can differ slightly from the recorded one; renewals and one-time payments carry the exact amount. See pricing.

Tracking a referral

  • Each Affiliate gets a stable link, {APP_URL}/r/{code}. The code never changes.
  • A click counts only after the visitor consents to the referral cookie. Without consent nothing is stored about the visitor; the click adds 1 to an anonymous total per Affiliate and day.
  • A click is kept for the attribution window (attribution_window_days, default 60, from 1 to 365 days). A purchase after the window attributes nothing.
  • When a buyer clicked more than one link, attribution_winner decides: first_click (default) or last_click.
  • A buyer who refused cookies can type the Affiliate's code at checkout (“Referred by someone? Enter their code”). A typed code beats a cookie. An unknown code, or one of an Affiliate who is not approved, is refused.
  • On your own landing page, without the Onelo SDK, paste {APP_URL}/affiliates.js; it records nothing before the visitor answers. In your app, the SDK's affiliates.capture({ consent }) keeps the click and claims it for the App User at sign-in.
  • With block_self_referral on (default), a purchase made with the Affiliate's own e-mail creates no Referral and no Commission.

Becoming an Affiliate

  • Prospects apply on the hosted page {APP_URL}/affiliates/{app_slug} and must tick your App's Terms; each acceptance is recorded with its time and Terms version. An App with no Terms takes no applications.
  • acceptance_mode: manual (default — you approve or reject each application), auto (approved at once) or invite (only people you invite; the invitation link works once).
  • Approved Affiliates sign in to their portal with a one-time e-mail link and see only their own clicks, Referrals, Commissions and balances.
  • E-mails go out once per event, in your App's Branding: application received, new application (to the Workspace owner), approved, rejected, invitation, and Payout paid.

How a Commission is counted

SettingBehaviour
commission_modelfirst_payment (default) pays once; recurring_months pays every payment for N calendar months from the first commissioned one; recurring_forever pays every payment.
commission_typepercent of the payment, or fixed — a fixed amount in the payment's own currency, never above the net payment.
BaseThe amount charged minus the VAT charged; discounts are already deducted.
CurrencyEach Commission stays in its payment’s currency. Balances are kept per Affiliate per currency and are never converted or netted across currencies.

Hold, refunds and chargebacks

CaseWhat happens
New CommissionPending for hold_days (default 30, 0 to 365). After the hold it becomes payable. With 0 days it is payable at once.
Full refund inside the holdThe Commission is cancelled and Onelo refunds the matching Affiliate Fee.
Partial refund inside the holdThe Commission is lowered pro rata and Onelo refunds the matching part of the Affiliate Fee.
Chargeback inside the holdThe Commission is cancelled and Onelo refunds the matching Affiliate Fee, as for a full refund.
Chargeback after the Commission is payable or paidA negative adjustment in the same currency, as for a refund after payout. The Affiliate Fee is not refunded.
Refund after the Commission is payable or paidA negative adjustment in the same currency, shown as “Refund after payout” and netted in the Affiliate’s payable balance. The Affiliate Fee is not refunded.

Paying Affiliates

  • Affiliates enter their payout details in the portal. Onelo stores them encrypted and shows only the last four characters. You reveal them on the Affiliates page; every reveal is written to the Reveal log first.
  • A balance is due once it reaches payout_threshold (default 50, in each currency separately; overrides per currency; 0 means everything payable is due). Below it, the balance rolls on.
  • You pay outside Onelo, then mark the Payout as paid with a date and a note. The Affiliate gets an e-mail with the amount, currency and date — never the note or the payout details.

With an AI agent

In the MCP connector, affiliates.get_state reads the program and affiliates.set_program turns it on or changes its settings after you approve the plan in Onelo. Payout details are never shown to an agent. Adding, inviting, approving and rejecting Affiliates happens on the Affiliates page. See MCP connector.