Dashboard
Total Users
—
Loading…
Volume (MTD)
—
Month to date
Volume (24h)
—
Last 24 hours
Revenue (MTD)
—
Platform fees
Gateway Fees (MTD)
—
Paid to Flutterwave
Txns Today
—
Transactions
Escrow Locked
—
Active escrows
Pending KYC
—
Need review
Open Tickets
—
Awaiting reply
Pending KYB
—
Businesses to review
Pending Withdrawals
—
Need processing
Failed Webhooks
—
Delivery issues
Recent Users
Loading…
Recent Transactions
Loading…
Users
All Users
| User | Country | Balance | KYC | Status | Joined | Actions |
|---|---|---|---|---|---|---|
| Loading… | ||||||
KYC Review
Pending Documents
| User | Country | Doc Type | Tier | Submitted | Actions |
|---|---|---|---|---|---|
| Loading… | |||||
KYB Review (Business)
Loading…
Transactions
| Reference | User | Type | Amount | Status | Date |
|---|---|---|---|---|---|
| Loading… | |||||
Withdrawal Queue
Pending Withdrawals
| User | Method | Amount | Status | Submitted | Actions |
|---|---|---|---|---|---|
| Loading… | |||||
PayPal Payments
MyroPay has no automated PayPal integration. Check the recipient's PayPal account/email for the incoming payment before confirming — confirming credits the wallet immediately and cannot be undone from here.
Pending PayPal Payments
| Recipient | Amount | Details | Submitted | Actions |
|---|---|---|---|---|
| Loading… | ||||
Escrow Disputes
Open Disputes
| Escrow | Amount | Raised By | Status | Created | Actions |
|---|---|---|---|---|---|
| Loading… | |||||
Support Tickets
| User | Subject | Category | Priority | Status | Created | Actions |
|---|---|---|---|---|---|---|
| Loading… | ||||||
FX Rates
Live Rates — OpenExchangeRates
Loading sync status…
Get a free App ID at openexchangerates.org.
Rates sync automatically every hour via cron (
fx_sync.php); use "Sync now" to refresh immediately after changing the App ID.
Current Rates
| Pair | Rate | Margin | Source | Updated |
|---|---|---|---|---|
| Loading… | ||||
Currency Margins
The spread MyroPay keeps on each currency, applied automatically to both directions (USD→CCY and CCY→USD) whenever rates are used or synced. Positive = customers get a slightly worse rate than mid-market; negative = better than mid-market. Changes apply immediately.
Loading…
Manual Rate Override
For pairs OpenExchangeRates doesn't cover, or a one-off hand-set value. This bypasses margin entirely and will be overwritten by the next sync if it's a USD pair MyroPay already tracks.
Settings
Checkout Fee
Buyer-facing surcharge on ordinary (non-escrow) checkout payments. Merchants always receive exactly the price they set — this is added on top. Escrowed sessions use the separate escrow fee instead.
For countries/methods with a known real Flutterwave processing cost (see GATEWAY_COST_RATES), the buyer is always charged at least that real cost, regardless of the flat Percent below — Margin is added on top of the real cost for those; Percent/Flat below are the fallback for anything without a known rate (e.g. bank transfer, or a currency not in the table).
For countries/methods with a known real Flutterwave processing cost (see GATEWAY_COST_RATES), the buyer is always charged at least that real cost, regardless of the flat Percent below — Margin is added on top of the real cost for those; Percent/Flat below are the fallback for anything without a known rate (e.g. bank transfer, or a currency not in the table).
Referral Rewards
Flat amount credited to a user for each successful referral, and how many reward points that converts to for display.
Bill Payments (Reloadly)
Margin added on top of MyroPay's own FX conversion when a user pays a bill in another country's local currency — covers the gap between our rate and whatever Reloadly's own settlement actually costs.
Integration Credentials Status
Read-only. Payment-gateway secrets, the database password, and signing/encryption keys are never displayed or edited through the dashboard — that would mean any compromised admin login or XSS could exfiltrate every production credential at once. Set or rotate these directly in the server's
.env file (see shared/config/config.php); changes take effect on the next request, no restart required.
Loading…
Admin Team
| Name | Role | Last Login | Status | Actions | |
|---|---|---|---|---|---|
| Loading… | |||||
Create Admin
Audit Log
Recent Actions
| Actor | Action | Target | IP | Time |
|---|---|---|---|---|
| Loading… | ||||
Escrow Management
| Title | Amount | Initiator | Beneficiary | Status | Created |
|---|---|---|---|---|---|
| Loading… | |||||
Invoices
| Invoice # | Merchant | Client | Total | Status | Due |
|---|---|---|---|---|---|
| Loading… | |||||
Checkout Sessions
| Session | Merchant | Customer | Amount | Status | Created |
|---|---|---|---|---|---|
| Loading… | |||||
Merchant API Keys
| App | Owner | KYB | Public Key | Mode | Status | Actions |
|---|---|---|---|---|---|---|
| Loading… | ||||||
Webhook Deliveries
| Endpoint | Merchant | Event | Status | Attempts | Sent | Actions |
|---|---|---|---|---|---|---|
| Loading… | ||||||
Gateway Webhook Log
Every inbound call Flutterwave or Paystack has made to checkout.myropay.com/api/webhook.php — the single URL both are configured to use. If a payment "went through" on the payer's side but nothing shows here for it, the gateway never called us (a dashboard/config problem on their end, not this app's).
| Time | Provider | Event | tx_ref | Route | Signature | Outcome |
|---|---|---|---|---|---|---|
| Loading… | ||||||
Email Campaigns
Sends to active users who have marketing emails enabled in Settings. Delivery runs in the background — a queued campaign starts within 5 minutes and sends in small batches, so progress updates gradually rather than all at once.
Campaigns
| Subject | Status | Progress | Created | By | |
|---|---|---|---|---|---|
| Loading… | |||||
New Campaign
Insert:
Audience
Account type
KYC status
Reaches … opted-in users.
Push Broadcasts
Sends a push notification (and always an in-app notification, even to users without a subscribed device) to active users who have push notifications enabled.
Broadcasts
| Title | Status | Progress | Created | By | |
|---|---|---|---|---|---|
| Loading… | |||||
New Broadcast
Insert:
Audience
Account type
KYC status
Reaches … opted-in users.
Cron Jobs
Last completed run of every scheduled job on the server, read straight from shared/cron/logs/. A job flagged "Stale" hasn't completed within roughly 3x its own schedule — check the server's crontab.
Scheduled Jobs
| Job | Schedule | Last Run | Exit | Status | |
|---|---|---|---|---|---|
| Loading… | |||||