Developer Portal
FricoPay APIs
Integrate AI support · airtime · data · payments
Loading...
Social Booster API

Sell social media followers, likes, views & engagement on TikTok, Instagram, YouTube and more — directly from your app. Charges your FricoPay wallet in GHS.

Endpoints
List services
GET /devapi/booster/services
curl https://fricopay.com/devapi/booster/services \
  -H "Authorization: Bearer YOUR_KEY"
Get price quote
POST /devapi/booster/quote
curl -X POST https://fricopay.com/devapi/booster/quote \
  -H "Authorization: Bearer YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"service_id": 1234, "quantity": 1000}'
Place an order
POST /devapi/booster/order
curl -X POST https://fricopay.com/devapi/booster/order \
  -H "Authorization: Bearer YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "service_id": 1234,
    "link": "https://tiktok.com/@user/video/123",
    "quantity": 1000
  }'
Check order status
GET /devapi/booster/order/:id
curl https://fricopay.com/devapi/booster/order/ORDER_ID \
  -H "Authorization: Bearer YOUR_KEY"
List your orders
GET /devapi/booster/orders
curl https://fricopay.com/devapi/booster/orders \
  -H "Authorization: Bearer YOUR_KEY"
Result Checker API

Sell WAEC & BECE result checkers in your app. Returns Serial & PIN instantly when in stock; auto-queues and delivers when our supplier restocks. Charges your FricoPay wallet in GHS.

Endpoints
List products
GET /devapi/checker/products
curl https://fricopay.com/devapi/checker/products \
  -H "Authorization: Bearer YOUR_KEY"
Buy a checker
POST /devapi/checker/buy
curl -X POST https://fricopay.com/devapi/checker/buy \
  -H "Authorization: Bearer YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "checkerType": "BECE",
    "phoneNumber": "0241234567"
  }'
Returns Serial & PIN instantly when supplier has stock. If queued, response includes queued: true — check status with the order endpoint.
Check order status
GET /devapi/checker/order/:reference
curl https://fricopay.com/devapi/checker/order/REFERENCE \
  -H "Authorization: Bearer YOUR_KEY"
List your orders
GET /devapi/checker/orders
curl https://fricopay.com/devapi/checker/orders \
  -H "Authorization: Bearer YOUR_KEY"
Fund your wallet

Top up your FricoPay wallet via Mobile Money, then spend it on any service. The payer is charged the amount plus the standard deposit fee; your wallet is credited the amount once they approve on their phone. Confirm with the deposit.success webhook or poll /devapi/v1/status/:reference.

Endpoint
Initiate a deposit
POST /devapi/v1/deposit
curl -X POST https://fricopay.com/devapi/v1/deposit \
  -H "Authorization: Bearer YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"amount":10,"phone":"0241234567","user_reference":"u_123"}'
Returns { reference, amount, fee, total_charged } with status pending. Your wallet is credited once the payer approves the prompt.
Check status
GET /devapi/v1/status/:reference
curl https://fricopay.com/devapi/v1/status/REFERENCE \
  -H "Authorization: Bearer YOUR_KEY"
Airtime API

Send airtime to MTN, Telecel, and AirtelTigo Ghana numbers from your app. Charges your FricoPay wallet in GHS. Sold at face value — earn 40% of our commission on every successful transaction.

Networks
Pass one of these in the network field:
MTN — MTN Ghana
TELECEL — Telecel Ghana (Vodafone)
AT — AirtelTigo Ghana
Endpoints
Send MTN airtime
POST /devapi/v1/airtime
curl -X POST https://fricopay.com/devapi/v1/airtime \
  -H "Authorization: Bearer YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"network":"MTN","phone":"233241234567","amount":5,"user_reference":"u_123"}'
Send Telecel airtime
POST /devapi/v1/airtime
curl -X POST https://fricopay.com/devapi/v1/airtime \
  -H "Authorization: Bearer YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"network":"TELECEL","phone":"233201234567","amount":5,"user_reference":"u_123"}'
Send AirtelTigo airtime
POST /devapi/v1/airtime
curl -X POST https://fricopay.com/devapi/v1/airtime \
  -H "Authorization: Bearer YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"network":"AT","phone":"233271234567","amount":5,"user_reference":"u_123"}'
Check status
GET /devapi/v1/status/:reference

Use only if your callback didn't fire after 5 minutes. reference is returned from the buy call.

curl https://fricopay.com/devapi/v1/status/REFERENCE \
  -H "Authorization: Bearer YOUR_KEY"
Data API

Sell data bundles for MTN, Telecel, and AirtelTigo Ghana. Live bundle inventory per number. Sold at face value — earn 40% of our commission on every successful transaction.

Networks
Pass one of these in the network field:
MTN — MTN Ghana
TELECEL — Telecel Ghana (Vodafone)
AT — AirtelTigo Ghana
Step 1 — List bundles for a number
MTN bundles
GET /devapi/v1/data/bundles?network=MTN&phone=233241234567
curl "https://fricopay.com/devapi/v1/data/bundles?network=MTN&phone=233241234567" \
  -H "Authorization: Bearer YOUR_KEY"
Telecel bundles
GET /devapi/v1/data/bundles?network=TELECEL&phone=233201234567
curl "https://fricopay.com/devapi/v1/data/bundles?network=TELECEL&phone=233201234567" \
  -H "Authorization: Bearer YOUR_KEY"
AirtelTigo bundles
GET /devapi/v1/data/bundles?network=AT&phone=233271234567
curl "https://fricopay.com/devapi/v1/data/bundles?network=AT&phone=233271234567" \
  -H "Authorization: Bearer YOUR_KEY"
Step 2 — Buy the chosen bundle
Buy MTN bundle
POST /devapi/v1/data

Use the bundle_id and matching price from Step 1 as amount.

curl -X POST https://fricopay.com/devapi/v1/data \
  -H "Authorization: Bearer YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"network":"MTN","phone":"233241234567","bundle_id":"data_bundle_1","amount":0.5,"user_reference":"u_123"}'
Buy Telecel bundle
POST /devapi/v1/data
curl -X POST https://fricopay.com/devapi/v1/data \
  -H "Authorization: Bearer YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"network":"TELECEL","phone":"233201234567","bundle_id":"DATANVSTRDLY","amount":0.5,"user_reference":"u_123"}'
Buy AirtelTigo bundle
POST /devapi/v1/data
curl -X POST https://fricopay.com/devapi/v1/data \
  -H "Authorization: Bearer YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"network":"AT","phone":"233271234567","bundle_id":"db_BigTime_Data_51MB_1GHC","amount":1,"user_reference":"u_123"}'
Status
Check status
GET /devapi/v1/status/:reference

Use only if your callback didn't fire after 5 minutes. reference is returned from the buy call.

curl https://fricopay.com/devapi/v1/status/REFERENCE \
  -H "Authorization: Bearer YOUR_KEY"
Virtual SMS Numbers API

Rent virtual phone numbers worldwide for SMS verification (WhatsApp, Telegram, Google, etc.). Charges your FricoPay GHS wallet. 15% markup over base price — resell at any margin you want.

Endpoints
List services
GET /devapi/virtual/services?country=usa

Returns available services for a country with cheapest operator and price in GHS.

curl https://fricopay.com/devapi/virtual/services?country=usa \
  -H "Authorization: Bearer YOUR_KEY"
Buy a number
POST /devapi/virtual/buy

Rents a number and returns the phone. Charges your wallet. Use operator: "any" for cheapest available.

curl -X POST https://fricopay.com/devapi/virtual/buy \
  -H "Authorization: Bearer YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"country":"usa","service":"whatsapp","operator":"any"}'
Check for SMS
GET /devapi/virtual/order/{id}

Polls 5SIM for incoming SMS. Returns array of received messages.

curl https://fricopay.com/devapi/virtual/order/123456 \
  -H "Authorization: Bearer YOUR_KEY"
Cancel + refund
POST /devapi/virtual/cancel/{id}

Cancels the order and refunds the full amount to your wallet. Only allowed before SMS arrives.

curl -X POST https://fricopay.com/devapi/virtual/cancel/123456 \
  -H "Authorization: Bearer YOUR_KEY"
Finish (close order)
POST /devapi/virtual/finish/{id}

Closes the order after you've received and verified the SMS. No refund.

curl -X POST https://fricopay.com/devapi/virtual/finish/123456 \
  -H "Authorization: Bearer YOUR_KEY"
SMS API

Send transactional SMS to any Ghanaian number from your app or website. Custom sender ID, instant delivery. Charges your FricoPay GHS wallet at ₵0.06 per SMS segment (160 chars regular, 70 chars unicode).

Sender ID activation required

Before you can send SMS, your sender ID (the name shown to recipients) must be approved. Send your sender ID via WhatsApp for activation.

Contact on WhatsApp
Endpoints
Send SMS
POST /devapi/sms/send

Send an SMS. Sender ID max 11 chars. SMS body max 480 chars (3 segments). Set unicode to "1" for non-Latin characters.

curl -X POST https://fricopay.com/devapi/sms/send \
  -H "Authorization: Bearer YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"to":"0241234567","from":"MyApp","sms":"Hello from my app","unicode":"0"}'
List sent messages
GET /devapi/sms/orders

Returns your recent SMS sends with cost breakdown.

curl https://fricopay.com/devapi/sms/orders \
  -H "Authorization: Bearer YOUR_KEY"
Football Data API

Live scores, fixtures, results and correct-score predictions with betting tips for matches worldwide. Cover thousands of matches every day across all major leagues. Start with a 7-day free trial - first call activates it automatically.

Pricing
7 days free · then ₵100/month
After trial expires, ₵100 is auto-debited from your FricoPay wallet monthly. If your balance is low, we retry daily until sufficient.
Endpoints
Check subscription status
GET /devapi/football/status

Returns current subscription state: not_started, trial, active, or pending_renewal (when wallet is low). Includes trial expiry / next charge date.

curl https://fricopay.com/devapi/football/status \
  -H "Authorization: Bearer YOUR_KEY"
Get all matches
GET /devapi/football/livescores

All matches with scores and status. Supports ?when=today (default), yesterday, or tomorrow. Each match returns home, away, time, score, status (scheduled/live/finished), plus homeLogo and awayLogo (team crest URLs served from our domain).

curl "https://fricopay.com/devapi/football/livescores?when=today" \
  -H "Authorization: Bearer YOUR_KEY"
Get a specific match result
GET /devapi/football/match

Look up the score for any specific match by team names. Required: home, away. Optional: when (today / yesterday / tomorrow). Returns teams, score, and status (FT, HT, live, not_started).

curl "https://fricopay.com/devapi/football/match?home=Real+Madrid&away=Oviedo&when=today" \
  -H "Authorization: Bearer YOUR_KEY"
Get full match detail NEW
GET /devapi/football/match-detail

Rich detail for a single match by team names. Required: home, away. Optional: when (today / yesterday / tomorrow). Returns team names with crest logos, score, status, a full events timeline (goals, cards, substitutions with player & minute), bookmaker odds (1 / X / 2 across multiple bookmakers), the predicted outcome, and a match analysis. Cached ~3 min. Matches are findable while in the today / yesterday / tomorrow windows - use the matching when value (a finished match moves from today to yesterday).

curl "https://fricopay.com/devapi/football/match-detail?home=Castellon&away=Almeria" \
  -H "Authorization: Bearer YOUR_KEY"
Team logos
GET /football/logo/{team}.png

Team crest images are served directly from our domain (no auth required, safe to use in <img> tags). The homeLogo/awayLogo fields in livescores and match-detail already contain ready-to-use URLs. If a crest is unavailable, a clean placeholder with the team initials is returned automatically.

Get predictions and betting tips
GET /devapi/football/predictions

Correct-score predictions plus betting tips for each match. Each entry includes home, away, kickoff time, league, predicted correct_score (e.g. 2:0), and a derived tip (e.g. Home one goal, Over 2.5). Supports ?when=today/yesterday/tomorrow.

curl "https://fricopay.com/devapi/football/predictions?when=today" \
  -H "Authorization: Bearer YOUR_KEY"
Sample responses
Match detail example
{
  "ok": true,
  "teams": "Castellón vs Almeria",
  "homeTeam": { "name": "Castellón", "logo": "https://fricopay.com/football/logo/castellón.png" },
  "awayTeam": { "name": "Almeria", "logo": "https://fricopay.com/football/logo/almeria.png" },
  "score": "1 - 1",
  "status": "FT",
  "events": [
    { "minute": "5'", "type": "yellow_card", "player": "J. Morcillo", "side": "away" },
    { "minute": "44'", "type": "goal", "player": "F. Brignani", "side": "home" }
  ],
  "odds": [
    { "bookmaker": "Megapari", "home": "1.81", "draw": "3.78", "away": "4.45" }
  ],
  "prediction": "Castellón",
  "analysis": "Teams Castellón and Almeria will try to find out who is the best..."
}
Predictions example
{
  "ok": true,
  "when": "today",
  "count": 119,
  "matches": [
    {
      "kickoff": "16:00",
      "home": "Admira Wacker",
      "away": "Floridsdorfer AC",
      "correct_score": "1:0",
      "tip": "Under 4.5",
      "league": "Austria 2. Liga"
    }
  ]
}
VPN API

Resell premium WireGuard VPN access. 79+ servers worldwide. Charges are deducted from your FricoPay wallet when a user buys a plan. Each VPN account is tied to your user_reference so you always know which of your end-users owns it.

Reseller pricing (your cost)
7 days ₵15 · 1 month ₵35 · 3 months ₵90
Sell to your end-users at any price (typical retail is ₵25/₵50/₵120). Auto-disabled when expired.
Endpoints
List plans
GET /devapi/vpn/plans

Returns the three plans with id (7d, 1m, 3m), days, label, and your cost in GHS.

curl https://fricopay.com/devapi/vpn/plans \
  -H "Authorization: Bearer YOUR_KEY"
List servers
GET /devapi/vpn/servers

79+ servers worldwide. Each entry has id, name (city like "Prague #1"), country_code, and flag URL.

curl https://fricopay.com/devapi/vpn/servers \
  -H "Authorization: Bearer YOUR_KEY"
Buy or extend VPN for a user
POST /devapi/vpn/buy

Body: { user_reference, plan_id, server_id }. Creates a fresh VPN account on first call; on subsequent calls with same user_reference, extends the existing one. Returns a WireGuard config (config_content) ready to give to your end-user.

curl -X POST https://fricopay.com/devapi/vpn/buy \
  -H "Authorization: Bearer YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"user_reference":"user_42","plan_id":"1m","server_id":135}'
List all VPN accounts you've created
GET /devapi/vpn/accounts

Returns up to 200 accounts. Use this to sync your records.

curl https://fricopay.com/devapi/vpn/accounts \
  -H "Authorization: Bearer YOUR_KEY"
Get a user's config + status
GET /devapi/vpn/account/:user_reference

Re-fetch the WireGuard config + current status (active / disabled) for a specific user.

curl https://fricopay.com/devapi/vpn/account/user_42 \
  -H "Authorization: Bearer YOUR_KEY"
Change a user's server (free)
POST /devapi/vpn/change-server

Body: { user_reference, server_id }. Returns the new config. No extra charge.

curl -X POST https://fricopay.com/devapi/vpn/change-server \
  -H "Authorization: Bearer YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"user_reference":"user_42","server_id":144}'
Cancel a user's VPN
POST /devapi/vpn/cancel

Body: { user_reference }. Immediately disables. No refund.

curl -X POST https://fricopay.com/devapi/vpn/cancel \
  -H "Authorization: Bearer YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"user_reference":"user_42"}'
Sample buy response
{
  "ok": true,
  "user_reference": "user_42",
  "account_id": 812041,
  "server_id": 135,
  "status": "active",
  "config_content": "[Interface]\nPrivateKey = ...\nAddress = 10.244.126.215/32\nDNS = 172.16.0.1\n\n[Peer]\nPublicKey = ...\nAllowedIPs = 0.0.0.0/0,::/0\nEndpoint = cz1.ipcover.net:55888",
  "config_name": "CZ-10.244.126.215.conf",
  "expires_at": "2026-06-14T03:00:00Z",
  "plan_id": "1m",
  "charged_ghs": 35,
  "is_extension": false
}

Display the config_content to your end-user as text, downloadable .conf file, or a QR code (recommended). They scan it with the official WireGuard app and connect.

Important
  • Expired VPN accounts are automatically disabled every 24 hours — you stop being billed once a plan ends.
  • To renew, call POST /devapi/vpn/buy again with the same user_reference. The same WireGuard config keeps working.
  • Each unique user_reference = one VPN account on our side. Reuse it for the same end-user across renewals.
Cheap Data API

Sell affordable data bundles (MTN, AirtelTigo iShare/BigTime, Telecel) in Ghana directly from your app. Live wholesale prices from FricoPay. Charges your FricoPay wallet in GHS. Order delivery typically within 60 seconds.

MTN 1GB from GHS 4.00
Auto-refund on failure
Order status lookup
Live wholesale prices (cached 6 hours)
4 networks: MTN, AT iShare, AT BigTime, Telecel
Reseller-grade reliability
Endpoints
List networks & packages
GET /devapi/cheap-data/networks · FREE
curl https://fricopay.com/devapi/cheap-data/networks \
  -H "Authorization: Bearer YOUR_KEY"
Purchase data bundle
POST /devapi/cheap-data/purchase · Paid (see /networks for prices)
curl -X POST https://fricopay.com/devapi/cheap-data/purchase \
  -H "Authorization: Bearer YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "networkKey": "YELLO",
    "recipient": "0241234567",
    "capacity": 1
  }'
Check order status
GET /devapi/cheap-data/orders/:reference · FREE
curl https://fricopay.com/devapi/cheap-data/orders/REFERENCE \
  -H "Authorization: Bearer YOUR_KEY"
Orders by recipient phone
GET /devapi/cheap-data/orders/by-phone/:phone · FREE
curl https://fricopay.com/devapi/cheap-data/orders/by-phone/0241234567 \
  -H "Authorization: Bearer YOUR_KEY"
Your purchase history
GET /devapi/cheap-data/transactions · FREE
curl https://fricopay.com/devapi/cheap-data/transactions \
  -H "Authorization: Bearer YOUR_KEY"
Network keys reference
YELLO · MTN Data
AT_PREMIUM · AirtelTigo iShare
AT_BIGTIME · AirtelTigo BigTime
TELECEL · Telecel Data
Bet Code Converter API

Convert bet codes between 17 supported bookies across Ghana, Nigeria, Kenya & more. Resell as a service to your users at any markup. Charges your FricoPay wallet in GHS per successful conversion.

GHS 1.50 per conversion
Lookup is FREE
10 free conversions · 7-day trial
Auto-refund on conversion failure
17 bookies supported (SportyBet, 1xBet, Betika, Odibet, MSport, Betpawa, 22bet & more)
Same provider used by FricoPay's consumer feature
Endpoints
List supported bookies
GET /devapi/bet-converter/bookies · FREE
curl https://fricopay.com/devapi/bet-converter/bookies \
  -H "Authorization: Bearer YOUR_KEY"
Lookup & preview a bet code
POST /devapi/bet-converter/lookup · FREE
curl -X POST https://fricopay.com/devapi/bet-converter/lookup \
  -H "Authorization: Bearer YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "originBookie": "sportybet:gh",
    "code": "8CJFR6"
  }'
Convert bet code
POST /devapi/bet-converter/convert · GHS 1.50 per call
curl -X POST https://fricopay.com/devapi/bet-converter/convert \
  -H "Authorization: Bearer YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "originBookie": "sportybet:gh",
    "destBookie": "1xbet:gh",
    "code": "8CJFR6"
  }'
List your conversion history
GET /devapi/bet-converter/history · FREE
curl https://fricopay.com/devapi/bet-converter/history \
  -H "Authorization: Bearer YOUR_KEY"
Sample success response (convert)
{
  "ok": true,
  "destinationCode": "FCA88",
  "originOdds": 8.78,
  "odds": 9.01,
  "noOfEntries": 2,
  "charged": 1.50,
  "currency": "GHS"
}
Currency Exchange API

Get live exchange rates between currencies and convert any amount at the current rate. Supports USD, NGN, GHS, GBP, EUR and more. Completely free — no wallet charge.

100% FREE
Live market rates
Real-time rates for major currencies
Direction-correct conversion (from → to)
Endpoints
Get exchange rate
GET /devapi/fx/rate · FREE
from required 3-letter source currency (e.g. USD)
to required 3-letter target currency (e.g. NGN, GHS)
curl "https://fricopay.com/devapi/fx/rate?from=USD&to=NGN" \
  -H "Authorization: Bearer YOUR_KEY"

# Response
{
  "ok": true,
  "from": "USD",
  "to": "NGN",
  "rate": 1359.3
}
Convert an amount
GET /devapi/fx/convert · FREE
from required 3-letter source currency (e.g. USD)
to required 3-letter target currency (e.g. NGN, GHS)
amount required positive number to convert (e.g. 99)
curl "https://fricopay.com/devapi/fx/convert?from=USD&to=NGN&amount=99" \
  -H "Authorization: Bearer YOUR_KEY"

# Response
{
  "ok": true,
  "from": "USD",
  "to": "NGN",
  "amount": 99,
  "rate": 1359.3,
  "converted": 134570.7
}
Utilities API

Pay DSTV, GOtv, Telecel Broadband subscriptions, ECG electricity meters, and Ghana Water bills. Verify a SIM owner's name. Sold at face value — earn 40% of our commission on every successful transaction.

DSTV / GOtv / Telecel Broadband
Step 1 — Verify account holder
GET /devapi/v1/utility/verify?service=DSTV&account=8226349986

service: DSTV, GOTV, or BROADBAND. Returns account_name and amount_due.

curl "https://fricopay.com/devapi/v1/utility/verify?service=DSTV&account=8226349986" \
  -H "Authorization: Bearer YOUR_KEY"
Step 2 — Pay the bill
POST /devapi/v1/utility
curl -X POST https://fricopay.com/devapi/v1/utility \
  -H "Authorization: Bearer YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"service":"DSTV","account":"8226349986","amount":50,"user_reference":"u_123"}'
ECG Electricity
Step 1 — List meters linked to a phone
GET /devapi/v1/ecg/meters?phone=233246912184

ECG registers meters against a Ghana mobile number. Returns all meters with current balances.

curl "https://fricopay.com/devapi/v1/ecg/meters?phone=233246912184" \
  -H "Authorization: Bearer YOUR_KEY"
Step 2 — Top up a meter
POST /devapi/v1/ecg

Use the meter_number from Step 1.

curl -X POST https://fricopay.com/devapi/v1/ecg \
  -H "Authorization: Bearer YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"phone":"233246912184","meter":"13334792","amount":20,"user_reference":"u_123"}'
Ghana Water
Step 1 — Verify water account
GET /devapi/v1/water/verify?meter=091019010006&phone=233242825109

Returns account_name, amount_due, and a session_id — required for the payment call.

curl "https://fricopay.com/devapi/v1/water/verify?meter=091019010006&phone=233242825109" \
  -H "Authorization: Bearer YOUR_KEY"
Step 2 — Pay water bill
POST /devapi/v1/water

session_id must be fresh from the verify call — can't reuse across transactions.

curl -X POST https://fricopay.com/devapi/v1/water \
  -H "Authorization: Bearer YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"phone":"233242825109","meter":"091019010006","session_id":"FROM_VERIFY_CALL","email":"user@example.com","amount":10,"user_reference":"u_123"}'
SIM Owner Verify
Look up registered SIM owner name
GET /devapi/v1/msisdn/verify?phone=233246912184

Returns the legal name the SIM was registered with. Useful for KYC and fraud prevention before sending money or airtime.

curl "https://fricopay.com/devapi/v1/msisdn/verify?phone=233246912184" \
  -H "Authorization: Bearer YOUR_KEY"
Status
Check transaction status
GET /devapi/v1/status/:reference

Use only if your callback didn't fire after 5 minutes. reference is returned from the buy call.

curl https://fricopay.com/devapi/v1/status/REFERENCE \
  -H "Authorization: Bearer YOUR_KEY"
Realtime Webhooks

Receive a signed callback the moment any order changes status - across all API services (Cheap Data, Airtime, Data, Checker, Booster, Utilities, Virtual Numbers). We POST signed JSON to your URL in realtime.

HMAC-SHA256 signed
Auto-retry 3x
order.placed · order.failed · order.delivered
Signature header for verification
Configuration
Webhook URL
Signing secret
Verify the X-FricoPay-Signature header (HMAC-SHA256 of the raw body).
Save a URL to generate
Sample payload
POST to your URL · Content-Type: application/json
{
  "event": "order.placed",
  "data": {
    "service": "cheap_data",
    "reference": "MN-XXXX",
    "networkKey": "YELLO",
    "recipient": "0240000000",
    "capacity": 1,
    "amount": 4,
    "status": "placed"
  },
  "timestamp": "2026-05-24T21:00:00.000Z"
}
FricoBusiness Payment Gateway

Build payment collection, transfers, and subscriptions into your app. Charge customers via Mobile Money — they approve a prompt on their phone, and net proceeds are credited to your FricoBusiness wallet the same day. Requires an approved FricoBusiness account.

Collections from GHS 1.50
2% on transfers
GHS 100 to activate
Apply for FricoBusiness to enable these endpoints.
Endpoints
Check wallet balance
GET /business/api/balance
curl https://fricopay.com/business/api/balance \
  -H "Authorization: Bearer YOUR_KEY"
Direct MoMo charge
POST /business/api/charge/direct

The customer receives a payment prompt on their phone and approves it with their MoMo PIN. The network is detected automatically from the phone number. Response status will be pending until approved — confirm with Verify a payment or your webhook.

Optional: pass customer_ref (your own customer/order ID) and metadata (any object). Both are returned in the charge.success webhook so you can credit the right customer.

curl -X POST https://fricopay.com/business/api/charge/direct \
  -H "Authorization: Bearer YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "amount": 50,
    "phone": "0241234567",
    "customer_ref": "order_12345",
    "metadata": { "plan": "pro" }
  }'
Check pending charge
POST /business/api/charge/check_pending

Check the status of a pending charge. Best practice: set a webhook (see below) and we push charge.success to you the moment the customer approves — use this endpoint to confirm status on demand.

curl -X POST https://fricopay.com/business/api/charge/check_pending \
  -H "Authorization: Bearer YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "reference": "REF_HERE"
  }'
Verify a payment
GET /business/api/charge/verify/:reference
curl https://fricopay.com/business/api/charge/verify/REF_HERE \
  -H "Authorization: Bearer YOUR_KEY"
FricoCheckout — hosted payment page
POST /business/api/checkout/create

Create a secure hosted payment page and redirect your customer to the returned authorization_url to pay by Mobile Money. When they complete payment, the net amount (after a flat 3% collection fee) is credited to your FricoBusiness collection balance, and we send you a charge.success webhook. Pass optional customer_ref and metadata — both are returned in the webhook. Set callback_url to the page we should return your customer to after payment.

curl -X POST https://fricopay.com/business/api/checkout/create \
  -H "Authorization: Bearer YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "email": "customer@example.com",
    "amount": 50,
    "customer_ref": "order_12345",
    "callback_url": "https://yoursite.com/payment-complete"
  }'

Response: { "status": true, "data": { "authorization_url": "https://...", "reference": "FPCO_..." } } — redirect your customer to authorization_url.

Send a transfer
POST /business/api/transfer
curl -X POST https://fricopay.com/business/api/transfer \
  -H "Authorization: Bearer YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "amount": 20,
    "momoNumber": "0241234567",
    "momoNetwork": "MTN",
    "momoName": "John Doe"
  }'
Nigeria Collection

Collect payments from customers in Nigeria. Create a dedicated Naira account for each customer — it displays your business name. Payments are received in Naira and held until your balance reaches ₦1,000, then converted to GHS at the live rate and paid to your MoMo (weekdays, 12pm–6pm). A 3% fee applies at payout.

Create a collection account
POST /business/api/ng-collection/create-account

Returns a permanent Naira account to share with your customer. customer_ref is your own ID for the customer (so you can match payments later).

curl -X POST https://fricopay.com/business/api/ng-collection/create-account \
  -H "Authorization: Bearer YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "customer_ref": "order_12345",
    "customer_name": "John Customer",
    "customer_phone": "08012345678"
  }'
{
  "status": true,
  "data": {
    "account_number": "9901234567",
    "bank_name": "Indulge MFB",
    "account_name": "Your Business",
    "currency": "NGN",
    "reference": "ngva_...",
    "customer_ref": "order_12345"
  }
}
List payments received
GET /business/api/ng-collection/payments

Returns each payment with its customer_ref, Naira amount, and GHS credited — use it to credit your own customers.

curl https://fricopay.com/business/api/ng-collection/payments \
  -H "Authorization: Bearer YOUR_KEY"
Collection balance
GET /business/api/ng-collection/balance

Returns balance_ghs (owed to you) and collected_ngn (raw Naira collected).

curl https://fricopay.com/business/api/ng-collection/balance \
  -H "Authorization: Bearer YOUR_KEY"
Check one payment
GET /business/api/ng-collection/payment/:reference

Pass the account reference (from create-account) or the flw_tx_id. Returns that payment's status and customer details.

curl https://fricopay.com/business/api/ng-collection/payment/REFERENCE_HERE \
  -H "Authorization: Bearer YOUR_KEY"
Webhooks

Get notified instantly when a customer pays — no polling needed. Set your webhook URL once in the Webhooks tab (it covers every service). When a customer pays via Mobile Money, FricoPay sends a charge.success event; Nigeria Collection payments send collection.success. Verify the X-FricoPay-Signature header as HMAC-SHA256 of the raw request body using your webhook secret (shown in the Webhooks tab — not your API key), then respond with HTTP 200 to acknowledge.

deposit.success payload
{
  "event": "deposit.success",
  "data": {
    "reference": "Payfrico_...",
    "amount": 10,
    "fee": 1,
    "currency": "GHS",
    "status": "success",
    "user_reference": "u_123"
  },
  "timestamp": "2026-07-09T12:00:00.000Z"
}
Fired when a wallet deposit via /devapi/v1/deposit succeeds. Your wallet is credited the amount; the payer covered amount + fee.
charge.success payload
{
  "event": "charge.success",
  "data": {
    "reference": "FPBM...",
    "amount": 50,
    "net": 48.75,
    "currency": "GHS",
    "status": "success",
    "customer_ref": "order_12345",
    "customer_phone": "0241234567",
    "metadata": { "plan": "pro" }
  },
  "timestamp": "2026-07-09T11:06:55.418Z"
}
customer_ref and metadata reflect what you sent when creating the charge (null if omitted).
collection.success payload
{
  "event": "collection.success",
  "data": {
    "service": "ng_collection",
    "reference": "ngva_...",
    "customer_ref": "order_12345",
    "customer_name": "John Customer",
    "amount_ngn": 5000,
    "account_number": "9901234567",
    "flw_tx_id": "2052728676",
    "status": "success"
  },
  "timestamp": "2026-06-10T10:49:35.664Z"
}
Home Support FricoShop Profile