Pricing models, billing, payouts and taxes for developers.
How your app earns, always in EUR.
All app pricing on spuke is denominated in EUR. Merchants see and pay EUR; conversion happens on their side.
| Model |
When to use |
Billing |
| Free |
Growth, companion apps, internal tools |
Nothing charged |
| One-time purchase |
Setup-heavy tools, migrations, templates |
Charged once at install |
| Subscription |
Ongoing value: automation, reporting, support |
Monthly or yearly, recurring |
Pick the model in the wizard step Availability & pricing, set the price in minor units and describe the details ("from €19 / month") in the pricing text. The pricing shown in the store must match what you actually charge — mismatches are a rejection reason.
Trials and discounts
Offer them inside your own product and describe them in the pricing details. There is no platform-managed trial engine yet.
Publishing fee
Publishing a version in live mode charges a one-time publishing fee to your billing method. Sandbox publishing is always free — the fee simply does not exist in test mode.
Changing prices
A price change is a new version and goes through review. Existing subscribers keep their price until you migrate them; communicate changes at least 30 days ahead.
What we charge you, and what you charge merchants.
Money flowing to spuke
| Charge |
When |
Mode |
| App publishing fee |
A version is published |
Live only |
Charges appear in Billing with status, amount, currency and the related app version. Every charge is idempotent — a retried publish never double-charges.
Money flowing to you
Merchant payments for paid apps are collected by spuke, aggregated per developer and settled through payout cycles. Your Earnings view shows gross, refunds, reversals and net per period.
Refunds and reversals
If a merchant is refunded after your earnings were counted, the amount is reversed in the next cycle. A negative balance carries forward and is netted against future earnings.
Taxes
You are responsible for your own tax treatment. Invoices carry the spuke legal entity, your organization details and the VAT/tax identifiers on file. Keep your billing address and tax id current — invoices are issued from that data automatically.
Failed payment methods
If the publishing fee cannot be charged, the version stays approved but unpublished and you are notified. Fix the payment method and retry from the app's overview.
Thresholds, cycles and what pauses them.
Requirements
- A verified payout account in live mode
- Payouts enabled and not paused
- Net balance at or above the payout threshold (default €50.00)
Cycle
A scheduled job runs the payout cycle: for every developer with an active payout account it computes the net of earnings, refunds and reversals since the last payout and sends one transfer when the threshold is met. Below the threshold, the balance rolls into the next cycle.
Payouts are made in EUR only.
Status
| Status |
Meaning |
pending |
Created, on the way to your bank |
paid |
Settled at your bank |
failed |
Rejected — usually stale bank details |
paused |
Blocked by verification or a compliance hold |
What pauses payouts
- Payout account
restricted or disabled (missing documents, expired ID)
- Suspended developer organization
- An open compliance review
You are notified in-app and by email, with the exact requirement, until it is resolved.
Failures
A failed transfer returns the amount to your balance and it is retried in the next cycle after you update the bank details. Bank changes are edited in the payout settings; sandbox mode has no bank management at all.