Skip to content

Pricing and subscriptions

This guide contains both end-user and administrator flows. Aisman uses Creem as its payment processor. If you are setting up billing for the first time, see the Creem setup guide.

Use PricingAdmin to maintain the pricing model that is shown on the public Pricing page and used during checkout.

Main tabs include:

  • Defaults
  • Features
  • Tiers
  • Currencies
  • Regions
  • Discount codes
  • Affiliates (older data/model labels may still use Reseller internally)

In edit screens, you can use Close and Delete actions directly from the form toolbar.

Use Defaults to set the global default currency.

  1. Open PricingAdmin -> Defaults.
  2. Select the default currency.
  3. Save.

This currency is used as the baseline fallback when more specific currency/region overrides are not available.

Use the Features tab to define billable capabilities and their pricing behavior.

  • Drag and drop feature rows to reorder them.
  • Drop onto a row to make a feature a child of that row.
  • When detail is open, the list keeps focus on the selected row and hides non-essential columns.

In feature details, configure:

  • Name and key
  • Add-on flag
  • Value and data type
  • Quota-exceeded description

Use Add-on for purchasable extras that can be bought outside base tier limits.

For yearly values:

  • Enter per-month yearly values (not full-year totals).
  • Use the % toggle when the yearly value is a discount percentage.
  • Tooltip updates as you type and shows the computed yearly total.

In currency and region sub-tables you can define per-row overrides and set active/tax flags.

Use tiers to define subscription plans and included features.

  • Reorder tiers by drag-and-drop.
  • Set monthly and yearly pricing.
  • Mark tiers as organization tiers where required.
  • Add long description text for the public pricing page.

For included features, you can set tier-specific values where the feature supports a typed value.

  • Currencies are listed by code.
  • Open a row directly to edit it.
  • Save active/default behavior for pricing calculations.
  • Create regions from known region entries.
  • Region selection can auto-fill region metadata.
  • Assign a default currency per region.

Region-level overrides apply when a matching user region is detected.

6. Discount codes and resellers (administrator)

Section titled “6. Discount codes and resellers (administrator)”

Use the Discount codes tab to:

  • Create and manage codes.
  • Generate unique 10-character codes.
  • Control validity, limits, and applicability.
  • Restrict by target entity when needed.
  • Show active codes by default, with optional inactive visibility.
  • Open linked affiliate details directly from the code list.
  • Set discount percentages up to 100% for generic (non-affiliate) codes — the affiliate 25% cap does not apply here.
  • Once a code has been used at least once, the discount percentage becomes locked and cannot be changed. Other fields (title, description, applies-to settings) remain editable.
  • If you try to delete a code that has been used, Aisman offers to disable it instead. Disabled codes show an orange DISABLED label in the list and cannot be applied to new purchases.

Use Affiliates to:

  • Manage affiliate profiles.
  • Manage affiliate-linked codes.
  • Review ledger and payout-related information.
  • Filter by requested payouts and open payout detail workflows.

Note: database and some legacy labels can still use the term reseller while the UI uses affiliate wording.

Any signed-in user can become an affiliate instantly. The affiliate menu item is always visible:

  • Non-affiliates see the label “Become an affiliate in 2 minutes”.
  • Active affiliates see “Affiliate portal”.

When a non-affiliate clicks the menu item, they are taken to the affiliate page where they can read the Terms and conditions and activate their affiliate account with a single button click. There is no approval process.

Before activation, only the Summary and Terms and conditions tabs are visible. After activation, the full set of tabs appears immediately without a page reload.

Typical tabs include:

  • Summary: earnings overview displayed as stat cards, current affiliate settings (share percentage, minimum withdrawal amount, payment processor fees), and the activation button for non-affiliates.
  • Discount codes: active codes and optional inactive visibility.
  • Your ledger: recent earning/payout records with currency filter.
  • Payouts: list of past and current payout requests with statuses (requested, processing, processed), and a “Request a payout” button.
  • Details: nickname, payout preferences, and account information.
  • Terms and conditions: full affiliate program terms with dynamically computed payment processor fee values and reward calculation examples.

The Terms and conditions page dynamically inserts current payment processor percentage and fixed fee values into all examples and the “Current program values” section.

Active affiliates can create and manage their own discount codes from the Discount codes tab:

  • Click Add a discount code to open a two-tab form (same layout as the admin pricing discount form).
  • Tab 1 (Edit code) lets you enter or generate a random 10-character alphanumeric code, set the discount percentage, title, and description.
  • Tab 2 (Applies to) lets you restrict the code to subscriptions, features, or everything, set a validity date, and limit maximum uses.
  • Each code in the list has an Edit button for updating its details.
  • You can set one code as the default code per affiliate. The default code is automatically applied when a referred visitor arrives at the pricing page via your affiliate slug.
  • Codes must be globally unique — they cannot match any other discount code or any affiliate nickname.

The Payouts tab shows all past and current payout requests with their statuses (requested, processing, processed).

To request a payout:

  1. Click Request a payout.
  2. Aisman checks your available balance against the configured minimum withdrawal thresholds (monthly and quarterly).
  3. If your balance is below the minimum, you see an informational alert with your current balance and the required minimum.
  4. If eligible, choose between monthly or quarterly payout options (only eligible options are shown).
  5. Enter the payout amount — it must be at least the minimum for the selected type and not exceed your available balance.
  6. Confirm to submit the request.

Clicking any row in the Your ledger tab opens a right-side detail panel showing:

  • Transaction date and type.
  • Purchaser name and masked email.
  • Discount code used, discount percentage, and calculated monetary discount.
  • Original product price and the price actually paid.
  • Purchased subscription name and any feature add-ons.
  • Transaction reference and linked invoice ID.

While the detail panel is open, the ledger list switches to a compact four-column view (Date, Type, Amount, Currency). Click another row to update the panel, or close it to restore the full ledger columns.

If you are an active affiliate with sufficient credit balance, the pricing checkout page shows an additional Pay with my affiliate credit button alongside the standard payment button.

  • The button appears only when your affiliate credit can fully cover the checkout total.
  • Clicking it shows a confirmation dialog with your credit balance and the purchase amount.
  • On confirmation, the purchase completes immediately — no external payment processor is involved.
  • The amount is debited from your affiliate credit as a non-earning ledger entry linked to the generated invoice.

You cannot use your own affiliate discount code on your own purchases.

Visitors can reach the pricing page with a discount code pre-filled using URL slugs:

  • /{affiliateNickname} — redirects to /pricing with the affiliate’s default discount code auto-filled.
  • /pricing/{affiliateNickname} — same behavior.
  • /{discountCode} or /pricing/{discountCode} — redirects to /pricing with that specific code auto-filled.
  • Pricing defaults to yearly mode.
  • Card headline displays the per-month yearly amount.
  • The line below shows full yearly total and savings percent.
  • Save up to X% is calculated from the best available yearly discount.
  • If a tier has extra long-form notes, Aisman can show a More about the tiers section below the cards.
  • Your current subscription is highlighted, and exhausted free-trial quota can switch that highlight to a warning style.

7.2 Current subscription highlighting and expiry

Section titled “7.2 Current subscription highlighting and expiry”
  • Your current tier is highlighted.
  • If your subscription is time-limited (most subscriptions are), the active tier card shows the subscription expiry date both in the indicator text and in the feature list.
  • Time-unlimited subscriptions (such as the trial tier) do not show an expiry date.
  • If relevant quota limits are exceeded, affected values are emphasized and guidance is shown.

Organization tiers that include a seat-type feature display per-seat pricing:

  • Price labels show /seat/mo or /seat/yr suffixes.
  • When subscribing, a seat count dialog lets you choose the number of billable seats (admin seats are free).
  • The seat count you select is saved to the subscription and shown inline in the feature list.
  • The feature list displays both the purchased seat count and the current number of programmers in the organization.
  • You can purchase additional seats later as add-ons. The price is calculated pro-rata based on the months remaining in your current subscription period (up to 12 months maximum).

If add-ons are available for your context:

  • Add-ons are listed with quantity controls.
  • The add-on list follows the tier or subscription you are currently viewing.
  • Add-ons can use monthly, yearly, or one-off pricing.
  • For seat-type add-ons on yearly subscriptions, the per-month yearly price is used for the prorated calculation.
  • The remaining months value is always capped at a maximum of 12.
  • Total updates live as quantities change.
  • Purchase action appears when total is greater than zero.

If you manage organizations, the pricing page includes an Entity selector:

  • My personal account
  • Organizations where you have admin access

When you switch between personal and organization entities:

  • Tier cards, current subscription indicators, and add-on lists refresh for the selected entity.
  • Organization subscriptions are tracked separately from personal subscriptions.
  • Both personal and organization subscriptions can coexist for the same user account.

If active promotions are available:

  • A Promotions section is shown.
  • Promotions can be expanded and reviewed before checkout.
  • Discount codes can be applied during checkout (one active code at a time).
  • Referrer-based offers can expand the promotions list when a valid referrer is provided.
  • Checkout summary labels include clear period suffixes where relevant (for example subscription period context on line items).

When a referrer code is provided, matching promotions/referrer code behavior is applied automatically where eligible.

During checkout, Aisman validates discount and eligibility conditions and gives explicit messages for cases such as:

  • Code not found
  • Code expired
  • Usage quota reached
  • Code not applicable to selected purchase items
  • Code not allowed for current user or selected organization

To protect checkout, repeated invalid-code attempts can be rate-limited within a short time window.

If a code is valid, totals are recalculated immediately.

Additional checkout behavior:

  • Creem products are created dynamically at checkout time and cached for reuse, so no pre-configuration in the payment processor is required.
  • All prices are sent to Creem as tax-exclusive, so taxes are added on top of the listed price where applicable.
  • Add-on purchases go through the same checkout page flow, including discount-code entry and validation.
  • Subscription subscribe/upgrade flow keeps the selected tier and context reliably through checkout.
  • When an organization entity is selected, non-organization subscription tiers are disabled.
  • After successful checkout (including 100% discount/coupon flows), the pricing view refreshes immediately so updated subscription/quota state is visible without manual page reload.
  • Invoice and invoice item records are created automatically when a payment is saved.