@php $fmt = app(\App\Services\Formatter::class); @endphp
This transaction ID has been submitted before.
Short by {{ $fmt->money($shortfall) }}
The invoice balance is {{ $fmt->money($expected) }} but this payment is {{ $fmt->money($payment->amount) }}. Approving credits the invoice but does not start the term until it is settled in full.
Overpaid by {{ $fmt->money(abs($shortfall)) }}
Confirm with the shop whether to credit the surplus to the next term.
Screenshot
@if (! $payment->proof_path)They say they sent
{{ $fmt->money($payment->amount) }}
via {{ $payment->gateway->label() }} @if ($payment->account) into {{ $payment->account->title }} @endif
Their note
{{ $payment->tenant_note }}
Against
{{ $payment->subscription?->plan?->name ?? 'No plan' }} ({{ $payment->subscription?->billing_cycle->label() }})
@if ($invoice) Invoice {{ $invoice->invoice_number }} · {{ $fmt->money($invoice->total) }} total · {{ $fmt->money($invoice->paid_amount) }} already credited @else No invoice attached @endif
Verifying starts the term today, credits the invoice and unlocks the shop immediately.
@else{{ $payment->status->label() }} on {{ $fmt->dateTime($payment->reviewed_at) }}
@if ($payment->rejection_reason)Reason given: {{ $payment->rejection_reason }}
@endif @if ($payment->admin_note){{ $payment->admin_note }}
@endifThe shop owner sees this sentence and nothing else, so make it specific enough to act on — "screenshot is for Rs 3,000, invoice is Rs 5,000" rather than "invalid".
This puts the payment back in the pending queue. It deliberately does not revoke access the shop already has — to take access away, suspend the shop instead.