The money path

You do not lose faith in the rate. You lose it in not knowing where your money is.

Ask any partner what went wrong in a programme and the answer is rarely the commission rate. It is «pending approval» with no date, a balance that does not match what landed in the bank, and a question nobody ever answered. All three are structural, so all three are fixed structurally: a statement that cannot be stored unless it balances, a hold that cannot be recorded without an end date or a named action, and a dispute with a clock and a written answer.

Median to payment
—
Holds with an end
—
Structurally 100% — nothing else can be stored
Disputes on time
—
Decided for the partner
—
The rest were rejected — with a written reason
Three rules

These are not promises. They are constraints in the database.

A promise can be broken in a hurry. A constraint cannot, because the write fails.

A statement that balances

Closing = opening + earned − clawbacks + adjustments − held + released − paid. A statement that does not satisfy this cannot be stored. So you do not have to believe the number — you can compute it.

opening + accrued − clawback + adj − held + released − paid = closing

Every hold has an end

A hold is recorded either with a date it lifts by itself, or with an action you can take. A bare «pending» with neither does not pass. That is the entire reason the table exists.

CHECK (releases_at IS NOT NULL OR blocked_on <> '')

A dispute has a clock

A dispute gets a deadline the moment it opens, and a decision cannot be recorded without a written reason. A reasoned no is worth more to a partner than silence, because it tells you what to do next time.

CHECK (status NOT IN ('upheld','rejected') OR resolution <> '')
The timeline

What happens, and when

Four steps from period close to your account. Each leaves a record you can follow in the portal.

  1. 01

    The period closes

    The last day of the month. The statement is built from the commission rows — not by hand, by the same function that runs them all.

  2. 02

    Statement and invoice

    You get a self-billed invoice with a sequential identifier. The series has no gaps: the counter locks the row, so two concurrent closes cannot produce the same number or skip one.

  3. 03

    14-day terms

    The realised median is in the number above. It is measured from the payments, not promised on this page.

  4. 04

    Reconciliation

    The payment appears on the statement for the period it actually left our account, and the invoice keeps the number it was issued for. That is the only arrangement where the two documents line up side by side.

Holds

Six reasons money can be held — and what each of them means

In the portal you always see one of two things: the day the hold lifts, or the action that lifts it.

Refund window

Waiting out the refund period. Lifts by itself on the stated date.

Tax data missing

We cannot pay until the tax residency and identifier are on file.

Account unverified

The payment details do not match. One document clears it.

Under threshold

The balance rolls into the next period. You can lower the threshold yourself.

Dispute open

Only the contested amount waits for a decision, not the whole balance.

Under review

Anomalous traffic is being checked. The check has a deadline.

Tax and invoicing

The boring part, done properly once

Sequential invoice number

EU invoicing rules — in Finland section 209 e of the VAT Act — require an unbroken identifier series. Here a counter row produces it, and its lock serialises issuance. A gap is not unlikely; it is impossible.

VAT and reverse charge

A VAT-registered business in another EU country is invoiced without VAT, and the invoice says why. A Finnish business gets the domestic rate. For an individual neither applies.

DAC7 — flagged, not decided

EU platform reporting covers amounts paid to sellers. Goods sales have a de minimis (fewer than 30 transactions AND at most €2,000); services have no such threshold. The system flags accounts for a human to review and decides nothing for you — this is not tax advice.

We do not store your full account number. The field is capped at eight characters, so the worst possible leak is the tail of an account number, not the account number.

What we do not do

Four ways this usually goes wrong

We do not pay first and claw back later. The refund window is waited out before payment, with the date visible — a surprise negative balance is worse than a week of waiting.

We do not edit an invoice we already issued. The number it got, it keeps. A correction is a new line that shows.

We do not make an adjustment without a recorded reason. A statement with a non-zero adjustment requires an explanation or it cannot be stored.

We do not let a dispute lapse into silence. The deadline runs in the open, and when we miss it, the miss shows in the percentage above. One dispute in this demo is late, and it is there on purpose.