Skip to main content

Overview

The admin dashboard provides real-time financial summaries and platform statistics. These endpoints power the main admin dashboard interface.

Financial Summary

Get aggregated financial data including passenger balances, platform profit, and driver balances grouped by currency.
curl -X GET "https://api.masareagle.com/api/admin/dashboard/financial-summary" \
  -H "Authorization: Bearer YOUR_ADMIN_TOKEN"

Response

success
boolean
Operation status
message
string
Status message
data
object
Financial summary data

Example Response

{
  "success": true,
  "message": "Financial summary retrieved successfully",
  "data": {
    "totalPassengerBalance": [
      {
        "currency": "SAR",
        "amount": 125000.50
      },
      {
        "currency": "USD",
        "amount": 8500.00
      }
    ],
    "totalPlatformProfit": [
      {
        "currency": "SAR",
        "amount": 45000.75
      },
      {
        "currency": "USD",
        "amount": 3200.00
      }
    ],
    "totalDriverBalance": [
      {
        "currency": "SAR",
        "amount": 230000.00
      },
      {
        "currency": "USD",
        "amount": 15000.00
      }
    ]
  }
}

Dashboard Metrics

The financial summary provides key metrics for administrators:

Passenger Balances

Total amount of money held in passenger wallets across all currencies. This represents:
  • Pre-loaded wallet funds
  • Refunds from cancelled bookings
  • Admin deposits
High passenger balances indicate strong user trust and wallet adoption.

Platform Profit

Total commission revenue collected by the platform. This includes:
  • Commission from driver trips
  • Commission from company public trips
  • Revenue from completed bookings
This metric shows the platform’s actual revenue generation.

Driver Balances

Total amount of money in driver wallets across all currencies. This represents:
  • Earnings from completed trips
  • Pending withdrawals
  • Admin deposits
Monitoring driver balances helps ensure timely settlements.

Multi-Currency Support

All financial data is grouped by currency to provide accurate reporting across different markets:
  • SAR - Saudi Riyal (primary currency)
  • USD - US Dollar
  • EGP - Egyptian Pound
  • Other configured currencies
This allows administrators to:
  • Track performance in each market
  • Monitor currency-specific trends
  • Manage settlements by currency

Real-Time Data

The dashboard endpoints provide real-time data by querying:
  • Current wallet balances from the Trips service
  • Commission records from booking transactions
  • Aggregated totals across all user types
Data is calculated on-demand to ensure accuracy. For historical analysis and trends, use the Reports Overview endpoint.

Access Control

The financial summary endpoint is currently marked as AllowAnonymous in the source code, but it should be protected with AdminPolicy authorization in production. Ensure proper authentication is enforced at the API gateway level.

Integration Examples

Dashboard Widget

const fetchFinancialSummary = async () => {
  const response = await fetch(
    'https://api.masareagle.com/api/admin/dashboard/financial-summary',
    {
      headers: {
        'Authorization': `Bearer ${adminToken}`
      }
    }
  );
  
  const data = await response.json();
  
  // Display SAR balances
  const sarPassengers = data.data.totalPassengerBalance
    .find(b => b.currency === 'SAR')?.amount || 0;
  const sarProfit = data.data.totalPlatformProfit
    .find(p => p.currency === 'SAR')?.amount || 0;
  const sarDrivers = data.data.totalDriverBalance
    .find(d => d.currency === 'SAR')?.amount || 0;
  
  console.log(`Passenger Wallets: ${sarPassengers} SAR`);
  console.log(`Platform Profit: ${sarProfit} SAR`);
  console.log(`Driver Wallets: ${sarDrivers} SAR`);
};

Multi-Currency Display

const displayAllCurrencies = (data) => {
  const currencies = new Set([
    ...data.totalPassengerBalance.map(b => b.currency),
    ...data.totalPlatformProfit.map(p => p.currency),
    ...data.totalDriverBalance.map(d => d.currency)
  ]);
  
  currencies.forEach(currency => {
    const passengers = data.totalPassengerBalance
      .find(b => b.currency === currency)?.amount || 0;
    const profit = data.totalPlatformProfit
      .find(p => p.currency === currency)?.amount || 0;
    const drivers = data.totalDriverBalance
      .find(d => d.currency === currency)?.amount || 0;
    
    console.log(`\n${currency}:`);
    console.log(`  Passengers: ${passengers}`);
    console.log(`  Profit: ${profit}`);
    console.log(`  Drivers: ${drivers}`);
  });
};

Build docs developers (and LLMs) love