Revenue share
Partners who bring you customers get their share of what was paid — computed, stated and booked by AlphaCount.
A sales partner brought you a school; a developer built a product you sell. Each gets a share of the net revenue that was actually paid for it, by the terms you agreed. You keep partners and agreements in your product and mirror them into AlphaCount; AlphaCount computes every share, issues the statement — a self-billed invoice where the partner agreed to one — and books it.
Partners
PUT /commission-partners/by-ref/{source}/{external_ref}:
{
"name": "lern.link GmbH",
"tax_status": "domestic_regular",
"street": "Allee 1",
"zip": "80331",
"city": "München",
"country_code": "DE",
"vat_id": "DE123456789",
"self_billing_agreed_on": "2026-09-01"
}tax_statusdecides how a statement is taxed:domestic_regular,domestic_small_business,eu_reverse_charge,third_country,private_person.self_billing_agreed_on: the day the partner agreed to self-billing. Without it, AlphaCount issues no self-billed invoice.billing_mode,statement_cadence,min_payout_cents,payout_rail: how and how often the partner is settled.- No bank details. A partner's IBAN is set by a person in the app, and every change notifies the company — a
changed account is how money gets redirected. A field like
ibanis refused.
Each partner is also a supplier in the company's books.
Agreements
PUT /commission-agreements/by-ref/{source}/{external_ref}:
{
"partner_ref": "lernlink",
"start_date": "2026-01-01",
"tiers": [
{ "from_month": 1, "to_month": 12, "percent": 15 },
{ "from_month": 13, "to_month": null, "percent": 5 }
]
}tierscount months from theanchor:attribution_start(the customer was attributed) orfirst_paid_revenue.applies_to:attributed_customers(the customers attributed to this partner) orall_customers— a developer's share on every sale of a product.product_numberslimit the agreement to products.accrue_from: the first day AlphaCount computes shares — for an agreement you move over from your own system, so that nothing is paid twice.
Once created, the terms are fixed: different terms are 409 commission.agreement_terms_frozen. A new deal is a new
agreement.
Attributions
PUT /commission-attributions/by-ref/{source}/{external_ref} puts a customer under an agreement from start_date,
until end_date. Or attribute when you invoice — POST /invoices takes
"attribution": { "partner_ref": "lernlink", "agreement_ref": "lernlink-2026" }Revenue
Revenue from invoices of this API and from a connected Stripe account, AlphaCount sees itself. Revenue it does not see
— paid somewhere else — you report with POST /revenue-events, once per (source, external_ref). A refund is a
negative net_amount with reverses_ref. Reporting revenue AlphaCount already sees counts it twice.
The ledger and the statements
GET /commission-entries— every share, per partner and status (open,statemented,paid).GET /commission-partners/by-ref/…— the partner with its balance in cents.GET /commission-statements,/{id},/{id}/pdf— the statements AlphaCount issued.
The commission_statement.* webhooks tell you when a statement is issued,
sent, cancelled, objected to or paid.
Paying a partner is a person's decision in the app — the API never moves money.