@extends('layouts.app') @section('title', 'M-PESA Payments & Reconciliation') @section('content')
Payments & reconciliation
{{ $card[0] }}
{{ $card[1] }}
Environment: {{ strtoupper($settings['environment']) }} · Shortcode/Till: {{ $settings['shortcode'] ?: 'Not configured' }} · Type: {{ $settings['transaction_type'] ?: 'Not configured' }}
Credentials are kept in the server .env file. Never display consumer secrets or passkeys in the browser.
| Date | Type | M-PESA receipt | Phone | Customer / Sale | Amount | Status | Linked payment |
|---|---|---|---|---|---|---|---|
| {{ $tx->created_at?->timezone('Africa/Nairobi')->format('Y-m-d H:i:s') }} | STK Push | {{ $tx->mpesa_receipt ?: '—' }} | {{ $tx->phone }} | {{ class_basename($tx->payable_type) }} #{{ $tx->payable_id }} {{ $tx->account_reference }} | KSh {{ number_format($tx->amount_received ?? $tx->amount,2) }} | {{ strtoupper($tx->status) }} | {{ $tx->payment_id ? '#'.$tx->payment_id : ($tx->status==='success'?'REVIEW REQUIRED':'—') }} |
| No M-PESA transactions match these filters. | |||||||
Safaricom confirmations appear here automatically. Exact bill-reference matches are linked automatically when the reference equals a billed order number and the amount fits the outstanding balance. Other payments remain unlinked for cashier review.
| Date | Receipt | Customer name | Phone | Bill reference | Amount | Status / Sale | Match to sale |
|---|---|---|---|---|---|---|---|
| {{ $c2b->trans_time?->timezone('Africa/Nairobi')->format('Y-m-d H:i:s') ?: $c2b->created_at?->timezone('Africa/Nairobi')->format('Y-m-d H:i:s') }} | {{ $c2b->trans_id }} | {{ trim(($c2b->first_name ?? '').' '.($c2b->middle_name ?? '').' '.($c2b->last_name ?? '')) ?: 'Name not supplied' }} | {{ $c2b->phone ?: '—' }} | {{ $c2b->bill_ref_number ?: '—' }} | KSh {{ number_format((float)$c2b->amount,2) }} | {{ strtoupper($c2b->status) }}@if($c2b->linked_type && $c2b->linked_id) {{ class_basename($c2b->linked_type) }} #{{ $c2b->linked_id }} @endif |
@if($c2b->status==='unlinked') @else Already processed @endif |
| No C2B confirmations received yet. Confirm that Safaricom has registered the C2B confirmation URL. | |||||||