MyroPay Admin
Platform control center
MyroPay Admin
Admin
SA
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
UserCountryBalanceKYCStatusJoinedActions
Loading…
KYC Review
Pending Documents
UserCountryDoc TypeTierSubmittedActions
Loading…
KYB Review (Business)
Loading…
Transactions
ReferenceUserTypeAmountStatusDate
Loading…
Withdrawal Queue
Pending Withdrawals
UserMethodAmountStatusSubmittedActions
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
RecipientAmountDetailsSubmittedActions
Loading…
Escrow Disputes
Open Disputes
EscrowAmountRaised ByStatusCreatedActions
Loading…
Support Tickets
UserSubjectCategoryPriorityStatusCreatedActions
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
PairRateMarginSourceUpdated
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).
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
NameEmailRoleLast LoginStatusActions
Loading…
Create Admin
Audit Log
Recent Actions
ActorActionTargetIPTime
Loading…
Escrow Management
TitleAmountInitiatorBeneficiaryStatusCreated
Loading…
Invoices
Invoice #MerchantClientTotalStatusDue
Loading…
Checkout Sessions
SessionMerchantCustomerAmountStatusCreated
Loading…
Merchant API Keys
AppOwnerKYBPublic KeyModeStatusActions
Loading…
Webhook Deliveries
EndpointMerchantEventStatusAttemptsSentActions
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).
TimeProviderEventtx_refRouteSignatureOutcome
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
SubjectStatusProgressCreatedBy
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
TitleStatusProgressCreatedBy
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
JobScheduleLast RunExitStatus
Loading…