Wavo credits and limits
1 credit = $0.001. MARKUP 1.1× on model costs. credit_balance + monthly_cap. Owner/admin set cap via PUT /credits/cap. Stripe top up.
Written By Salvatore Sinigaglia
Last updated About 5 hours ago
1 credit = $0.001. MARKUP 1.1× on model costs. credit_balance + monthly_cap. Owner/admin set cap via PUT /credits/cap. Stripe top up.
Wavo credits and limits
Wavo usage is metered in credits: 1 credit = $0.001. Each message charged at
input_cost + output_costper 1K tokens (per the mode's model inchat-models.ts) with MARKUP 1.1× applied. Owner / admin set monthly cap viaPUT /api/v1/chat/credits/cap. Top up via Stripe (POST checkout → purchase → confirm 3DS). View at/settings/team/billing.
Who is this for
Anyone wondering "how much does Wavo cost?" or "why am I out of credits?". Admins managing team usage caps.
The pricing model
Per-message cost
Each Wavo message charges based on:
- Input tokens ×
input_cost_per_1k(model-specific) - Output tokens ×
output_cost_per_1k(model-specific) - MARKUP: 1.1× (10% on top of base provider cost)
Formula:
cost_credits = (input_tokens × input_cost + output_tokens × output_cost) × 1.1Stored in chat_message.credits_used per message.
Mode costs (verified chat-models.ts)
You pick a mode (Fast / Smart / Expert), not a model name — Wevion manages which model powers each mode. Approximate base cost per 1K tokens in credits (input / output), before the MARKUP 1.1× multiplier:
These are credit values per 1K tokens (1 credit = $0.001). MARKUP 1.1× is applied on top when charging.
Why some modes cost more
- Expert: deepest reasoning, best for complex analysis + long multi-tool chains — the most expensive lane
- Smart: balanced, everyday analysis
- Fast: cheapest, best for simple questions at high volume — the default
Pick a mode per task. For most daily mediabuyer questions, Fast (default) is fine; switch to Smart or Expert for heavier analysis.
The credit_balance table
Each team has one credit_balance row:
Same model as Creative Hub credits (ch-112) but separate ledger entries for chat messages.
View balance + history
/settings/team/billing shows:
- Current balance (in credits + USD equivalent)
- Monthly usage vs cap
- Recent chat transactions (per-message cost, model, timestamp)
- Top up button (opens Stripe)
GET /api/v1/chat/credits returns balance.GET /api/v1/chat/credits/history returns paginated transactions.
Top up via Stripe
For Stripe-enabled workspaces:
/settings/team/billing→ Top up- Pick amount or custom value
POST /api/v1/chat/credits/checkout→ Stripe checkout URL- Complete payment (3DS confirm if required:
POST /confirm) - Webhook →
credit_transactioncredit entry →credit_balance.balanceincrements
Visible at /settings/team/billing after webhook completes (usually < 1 min).
Monthly cap (admin)
Owner / admin can set a cap to limit per-period usage:
PUT /api/v1/chat/credits/cap body:
monthly_cap_credits(integer, in credits)cap_reset_at(typically first of month)
When monthly_used >= monthly_cap: chat messages return 402 with reason monthly_cap_reached.
Reset: at cap_reset_at timestamp, monthly_used resets to 0.
Per-user cap?
Currently: cap is per-team (owner-level), not per-individual-user. All team members draw from the same pool.
For per-user discipline: monitor usage in chat_message aggregations, or use Wevion roles to restrict who can use Wavo.
Cost-saving tips
Use a cheaper mode for iteration
- Iterate prompts in Fast mode (cheapest)
- Switch to Smart or Expert for final / important analysis
Per-session mode override via the mode picker in the chat composer.
Use project instructions
Setting context once via project instructions avoids re-typing context per session. Less input tokens = less cost.
Be specific in prompts
Vague prompt → Wavo follow-ups → multiple turns. Specific prompt → single turn, lower total cost.
Avoid unnecessary tool calls
If you already know the data, don't make Wavo re-query. Reference previous answer.
Memory facts persist context
Saving "ROAS target = 3 for ClientA" as a project fact means you don't restate it each session.
Limit output length
"In one sentence" or "Just the number" — reduces output tokens.
What charges, what doesn't
Failed messages
If a model call fails (provider outage, network):
chat_message.status = failedcredits_used = 0(no charge for failed completions)- Wavo says "I couldn't complete that — please try again"
Partial outputs may or may not charge depending on what reached the user (typical: charge for tokens streamed).
Compliance + audit
credit_transaction is append-only:
- Every charge: type + amount (negative) + chat_message_id reference
- Every top-up: type + amount (positive) + stripe_payment_intent_id
- Sort by date for monthly reports
For audit: export from /settings/team/billing → CSV.
Common surprises
- "Used 1000 credits in a day": long sessions with many tool calls in Expert mode add up; check usage breakdown
- "Monthly cap hit early in month": usage spiked (large project audit); raise cap or wait reset
- "Credit balance after top-up": Stripe webhook can take 1-2 min; refresh page
- "Failed messages charged me": typically no charge; if charged, check
credits_usedon the message + contact support if anomalous
Common issues
- 402 monthly_cap_reached: cap hit; admin raises cap or wait reset
- Out of balance: top up via Stripe
- Top up failed: Stripe 3DS required → use POST /confirm flow
- Different cost vs expected: model + length + tool calls all affect cost; review per-message breakdown in history
FAQ
How much does a Wavo message cost?
Wavo usage is metered in credits, where 1 credit equals $0.001. Each message charges for input tokens times the model's input cost plus output tokens times its output cost, with a 1.1× markup applied on top. The formula is (input_tokens × input_cost + output_tokens × output_cost) × 1.1, and the result is stored in chat_message.credits_used.
Which Wavo mode is the default, and which is cheapest?
Fast is the default and the cheapest lane — right for most daily mediabuyer questions and high-volume iteration. Smart (Plus and up) adds balanced reasoning at a moderate cost. Expert (Pro and up) is the most capable and most expensive, suited to complex analysis and long multi-tool chains. You pick a mode, not a specific model — Wevion manages the underlying model behind each mode.
How do I top up Wavo credits?
On Stripe-enabled workspaces, go to /settings/team/billing and click Top up, pick an amount, and complete payment via Stripe checkout, confirming 3DS if required. A webhook then adds a credit entry and increments your balance, usually in under a minute. You can view your current balance and recent chat transactions on the same billing page.
Can I set a monthly spending cap for Wavo?
Yes. An owner or admin can set a per-team cap using PUT /api/v1/chat/credits/cap with a monthly_cap_credits value and a cap_reset_at date. When monthly_used reaches the cap, chat messages return 402 with reason monthly_cap_reached, and usage resets to zero at the reset timestamp. The cap is per-team, so all members draw from one pool.
Do failed Wavo messages charge me?
Generally no. If a model call fails due to a provider outage or network issue, the message is marked status = failed with credits_used = 0, and Wavo tells you it couldn't complete the request. Partial outputs may charge for tokens that were streamed to you; if a fully failed message appears charged, check credits_used and contact support.