Skip to content

Earnings

The Earnings tab shows all partner earnings across your apps, with powerful filtering options.


Navigate to FinancesEarnings tab.

The table displays:

ColumnDescription
PartnerWho earned this amount
AppWhich app the purchase was for
AmountPartner’s share (in USD)
StatusCurrent earning status
TransactionPurchase event reference
DateWhen the earning was recorded

Earnings progress through these statuses:

StatusDescriptionWhat happens
AccruedPending payoutWaiting for daily payout batch
ProcessingIn a payout batchStripe transfer in progress
PaidCompletePartner received funds
VoidCancelledPurchase was refunded

Use the filter bar to narrow results:

  • All statuses
  • Accrued only
  • Processing only
  • Paid only
  • Void only

Select a specific app or view all apps.

Filter to a specific partner.

Set custom start and end dates.


Partner Earning = Purchase Amount × (Payout Rate BPS / 10000)

For example:

  • Purchase: $9.99
  • Payout rate: 3000 BPS (30%)
  • Partner earning: $9.99 × 0.30 = $2.997 → $3.00

All earnings are displayed in USD:

  • Non-USD purchases are converted using ECB rates
  • Original currency is preserved in the purchase event

Each earning links to a purchase event:

  • The original webhook from your IAP provider
  • Contains full purchase details
  • Click the transaction reference to view details

flowchart TB
    A[Purchase Event] --> B[Earning Created - Accrued]
    B --> C{Payout Cron Runs}
    C -->|Below threshold| B
    C -->|Above threshold| D[Earning - Processing]
    D --> E{Stripe Transfer}
    E -->|Success| F[Earning - Paid]
    E -->|Failure| G[Earning - Accrued]
  1. Purchase event triggers earning creation
  2. Earning starts as Accrued
  3. Daily cron checks if partner meets payout threshold
  4. If eligible, earning moves to Processing
  5. After Stripe confirms, moves to Paid

Currently, when a purchase is refunded in the App Store or Google Play:

  1. The original earning remains “Paid” or “Accrued”
  2. Refunds must be handled manually by adjusting future payouts or voiding earnings directly in the database

We are building automated refund handling that will:

  • Listen for refund webhooks
  • Automatically void associated earnings
  • Deduct amounts from future payouts if already paid