{{ __('Admin') }} {{ __('Wallet rules') }}
{{ __('Affiliate & credits') }}

{{ __('Wallet') }} {{ __('rules') }}.

{{ __('How many credits a referrer earns, how much one message costs, and how rupees convert to credits at top-up time. Changes take effect immediately on the next send.') }}

@php $credPerSignup = (int) ($settings['referral_signup_credits'] ?? 100); $credPerMessage = (int) ($settings['credits_per_message'] ?? 1); $credPerRupee = (float) ($settings['credits_per_currency_minor'] ?? 0.1); $rupeeForCredits100 = $credPerRupee > 0 ? round(100 / $credPerRupee, 2) : 0; $msgsFor100Credits = $credPerMessage > 0 ? intdiv(100, $credPerMessage) : 0; $referrerWorth = $credPerSignup * $credPerMessage; @endphp {{-- KPI strip --}}
{{ __('Signup reward') }}
{{ $credPerSignup }} {{ __('credits') }}
{{ __('per successful referral') }}
{{ __('Cost per message') }}
{{ $credPerMessage }} credit{{ $credPerMessage > 1 ? 's' : '' }}
{{ __('charged from wallet on every outbound send') }}
@php // Symbol of the platform's default currency — what one major // unit of credit-conversion is denominated in. INR ⇒ ₹, USD ⇒ $. $defaultCur = \App\Support\FormatSettings::currencyFor(); $defaultSym = $defaultCur?->symbol ?? ($defaultCur?->code ?? ''); @endphp
{{ __('Top-up rate') }}
{{ rtrim(rtrim(number_format($credPerRupee, 2), '0'), '.') }} cred / {{ $defaultSym }}
{{ $defaultSym }}{{ $rupeeForCredits100 }} buys 100 credits
{{ __('Real spending') }}
{{ number_format($msgsFor100Credits) }}
{{ __('messages a customer can send for 100 credits') }}
{{-- Settings form — full width --}}
@csrf
{{ __('Rules') }}

{{ __('Adjust credit economics') }}

{{ __('live · 3 keys') }}
With current values, {{ $referrerWorth }} credits flow into the referrer's wallet — enough for {{ number_format($referrerWorth) }} messages.
{{-- Quick guide — 3 cards in a row BELOW the form so it never leaves a gap --}}
{{ __('Quick guide') }}

{{ __('How wallet credits work') }}

{{ __('The wallet:') }} every workspace has a credit balance (column workspaces.wallet_credits). Credits are debited on sends, topped up by payments or referrals.

{{ __('Cost per message:') }} the price tag on every outbound WhatsApp send — chat reply, campaign, broadcast, scheduled, auto-reply. Higher value = each send burns more credit.

{{ __('Top-up conversion:') }} "Credits per {{ $defaultSym }}" decides how many credits each unit of the platform currency buys. 0.1 = {{ $defaultSym }}10/credit · 1.0 = {{ $defaultSym }}1/credit · 10 = {{ $defaultSym }}0.10/credit.

{{ __('Referral reward:') }} the moment a referee finishes signup, referrer wallet += {{ __('credits per signup') }}. This is the affiliate engine.

{{ __('Lifecycle') }}

{{ __('When credits move') }}

  1. {{ __('Referee signs up with a code → referrer wallet +=') }} {{ __('credits per signup') }}.
  2. {{ __('Workspace tops up → wallet += rupees ×') }} {{ __('credits per ₹') }}.
  3. {{ __('Workspace sends message → wallet -=') }} {{ __('credits per message') }}.
  4. {{ __('Wallet hits 0 → next send fails with "insufficient credits" until a top-up lands.') }}
{{ __('Strategy tip') }}

{{ __('Break-even math') }}

{{ __('Lower "cost per message" during promotional periods. The referral reward + cost-per-message together set the actual') }} {{ __('break-even point') }} for affiliate marketing — too generous and your wallet drains, too stingy and nobody refers.

{{ __('Default: 100 signup × 1 msg = 100 free sends per referral.') }}