Apps Billing
Apps Billing lets Partners with approved applications charge sellers directly through YouCan. YouCan collects payments from the seller's balance or attached payment method, then automatically passes revenue to Partners via Payouts. YouCan handles all chargeback processes — you own your pricing model.
Payouts
Your share of collected revenue accumulates in your Partner balance. Once your balance reaches $100, you can request a payout from the Partners dashboard at /dashboard/apps/:id/insights.
Charge types
| Type | Description |
|---|---|
| One-time | A single payment that requires seller approval each time. |
| Recurring (time-based) | A subscription billed monthly (30_days) or yearly (365_days). Supports a trial period. After the first approval, YouCan handles renewals automatically. |
How billing works
- A seller takes an action in your app that involves a charge (e.g. purchasing a feature or upgrading a plan).
- Your app creates a charge via the StoreAdmin API.
- YouCan verifies the charge and returns a
confirmation_url— redirect the seller there. - The seller approves (or declines) the charge on the YouCan-hosted page.
- YouCan redirects back to the
return_urlyou specified on the charge. - Your app reads the charge status to confirm and unlock the feature.
Charge statuses
| Status | Description |
|---|---|
pending | Charge created but not yet reviewed by the seller. |
active | Charge approved by the seller and currently active. |
deferred | Charge deferred to the next billing cycle (e.g. a plan downgrade). |
frozen | Charge frozen due to non-payment. |
declined | Seller declined the charge. Terminal state. |
expired | Charge was not approved before it expired. Terminal state. |
canceled | Charge was canceled by the app, the seller, or a plan change. Terminal state. |
Plan upgrades and downgrades
Recurring charge plan changes go through the same approval flow. The proration strategy applies when both the old and new plan share the same billing interval (30_days). Otherwise the new plan is deferred until the end of the current billing period.
Requirements
- Your application must be approved to create real charges.
- Charges created for non-approved apps or development stores must set
"test": true.
Webhooks
YouCan emits the following webhook topic for billing events:
| Topic | Triggered when |
|---|---|
apps.charge_updated | The status of a one-time or recurring charge changes. |
Subscribe via the REST Hooks API.
API reference
| Page | Description |
|---|---|
| List charges | Retrieve all charges for the current store. |
| Create a one-time charge | Issue a single payment request to a seller. |
| Create a recurring charge | Issue a subscription charge with optional trial. |