AlphaCount Developers
Guides

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_status decides 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 iban is 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 }
  ]
}
  • tiers count months from the anchor: attribution_start (the customer was attributed) or first_paid_revenue.
  • applies_to: attributed_customers (the customers attributed to this partner) or all_customers — a developer's share on every sale of a product.
  • product_numbers limit 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.

On this page