myFawry wallet, bills and BNPL data API
myFawry is the consumer payments super-app from Fawry for Banking & Payment Technology Services. It brings electricity, water, gas, mobile top-ups and government payments together with a Fawry wallet, Meeza prepaid cards and merchant checkout. Shoppers can choose valU, Forsa or Souhoola installments, apply for cash loans, place savings in Azimut money-market funds, redeem loyalty and gift vouchers, and use NFC at participating Fawry tills. It serves Arabic- and English-speaking consumers in Egypt, connecting everyday household payments with the Fawry kiosk and merchant network.
Fawry collection receipts pair referenceNumber and orderStatus with paymentAmount, paymentTime and fawryFees, giving bill-payment reconciliation a shared payment reference and a fee breakdown. Merchant order matching uses merchantRefNum on charge receipts and merchantRefNumber on wallet-payment status records. The account view adds walletAccounts.balance, walletAccounts.currencyCode and walletAccounts.lastFourDigits; saved cards contribute cards.brand and cards.lastFourDigits for wallet and card aggregation.
Financing records distinguish valU eligibility through customerStatus and compare plans through minimumDownPayment, noOfMonths, rate and upFrontFees. Forsa records identify a loan through loanId, while merchant-configured plans add installmentPlan.minAmount and installmentPlan.maxAmount to define the purchase amounts each plan covers.
Rewards records add pointsList.points, pointsList.expiryDate, pointsList.transactionStatus and vouchersList.status, supporting expiry reminders and merchant CRM synchronization. Finance teams can match collections to their ledgers, account-aggregation builders can combine wallet and masked-card views, and checkout integrators can compare installment terms. openData Studio turns these data structures into callable open data for bill-pay reconciliation, account aggregation, installment comparison and rewards integrations.
Screenshots
API surface
The endpoints and request/response examples below are reconstructed from the app's interface — illustrative, not a live capture.
Customer login
POST
/v1/access/sign-inosintSigns the shopper into FawryPay and returns the session token, CIF, Fawry customer number, profile demographics and the walletAccounts list used to render the signed-in home.
Auth: Unauthenticated; response token is sent as Authorization Bearer on later FawryPay calls, with Accept-Language ar-eg or en-gb.
- id
- token
- refreshToken
- cif
- fawryCustomerNumber
- customerName
- customerStatus
- customerTypeCode
- customerCategory
- mobileNumber
- birthDate
- gender
- nationalityCode
- invitationCode
- creditCardEnabled
- totalOrdersAmt
- totalOrdersCount
- walletAccounts
POST /v1/access/sign-in HTTP/1.1 Content-Type: application/json Accept-Language: ar-eg {"email": "[email protected]", "mobileNumber": "01000000000"}{ "id": 100001, "token": "<access-token>", "refreshToken": "<refresh-token>", "cif": "CIF-EXAMPLE", "fawryCustomerNumber": "CUSTOMER-EXAMPLE", "customerName": "Example Customer", "customerStatus": "ACTIVE", "customerTypeCode": "CONSUMER", "customerCategory": "RETAIL", "email": "[email protected]", "mobileNumber": "01000000000", "birthDate": "1990-04-12", "gender": "M", "nationalityCode": "EG", "invitationCode": "INVITE-EXAMPLE", "creditCardEnabled": true, "totalOrdersAmt": 18250.5, "totalOrdersCount": 47, "walletAccounts": [ { "accountId": "wa_1001", "accountNumber": "****8891", "accountAlias": "Fawry Wallet", "accountTypeCode": "MWALLET", "accountStatusCode": "ACTIVE", "balance": 1250.75, "currencyCode": "EGP", "lastFourDigits": "8891", "enabled": true } ] }Customer profile by token
GET
/v1/account/snapshotopenbankingReloads the signed-in FawryPay profile and per-wallet balance, currency, lastFourDigits and loyalty redemption floor without repeating login.
Auth: Authorization Bearer token from login, plus Accept-Language ar-eg or en-gb.
- id
- cif
- fawryCustomerNumber
- customerName
- customerStatus
- merchantAccountNumber
- notificationsPreferredLang
- walletAccounts.accountId
- walletAccounts.balance
- walletAccounts.currencyCode
- walletAccounts.lastFourDigits
- walletAccounts.monetaryValue
- walletAccounts.minRedemptionPoints
GET /v1/account/snapshot HTTP/1.1 Authorization: Bearer <access-token> Accept-Language: ar-eg{ "id": 100001, "cif": "CIF-EXAMPLE", "fawryCustomerNumber": "CUSTOMER-EXAMPLE", "customerName": "Example Customer", "customerStatus": "ACTIVE", "merchantAccountNumber": "MERCHANT-EXAMPLE", "notificationsPreferredLang": "ar-eg", "walletAccounts": [ { "accountId": "wa_1001", "accountNumber": "****8891", "accountNumberEncrypted": "<encrypted-account>", "accountTypeCode": "MWALLET", "accountStatusCode": "ACTIVE", "balance": 1250.75, "monetaryValue": 1250.75, "currencyCode": "EGP", "lastFourDigits": "8891", "issueBankId": "FAWRY", "minRedemptionPoints": 50.0, "enabled": true } ] }Saved cards list
GET
/v1/funding/instrumentsopenbankingLists tokenized saved cards (Meeza prepaid and other brands) with BIN, last four digits and holder name for the card-picker on checkout.
Auth: Authorization Bearer token from login.
- cards.token
- cards.brand
- cards.cardHolderName
- cards.firstSixDigits
- cards.lastFourDigits
- cards.accountTypeCode
- cards.creationDate
GET /v1/funding/instruments HTTP/1.1 Authorization: Bearer <access-token> Accept-Language: en-gb{ "statusCode": 200, "cards": [ { "token": "<card-token>", "brand": "MEEZACARD", "cardHolderName": "EXAMPLE CUSTOMER", "firstSixDigits": "507803", "lastFourDigits": "4411", "accountTypeCode": "PREPAID", "creationDate": 1714521600000 } ] }Init payment session
POST
/v1/checkout/sessionsopenfinanceOpens a FawryPay checkout session for a merchant reference and amount before the charge, wallet or BNPL step.
Auth: Authorization Bearer token from login.
- merchantCode
- merchantRefNum
- amount
- currencyCode
- customerProfileId
- paymentMethod
POST /v1/checkout/sessions HTTP/1.1 Authorization: Bearer <access-token> Content-Type: application/json {"merchantCode": "MERCHANT-EXAMPLE", "merchantRefNum": "ORDER-EXAMPLE-001", "amount": 350.0, "currencyCode": "EGP", "customerProfileId": "100001", "paymentMethod": "MWALLET"}{ "sessionId": "ps_7c21", "merchantCode": "MERCHANT-EXAMPLE", "merchantRefNum": "ORDER-EXAMPLE-001", "amount": 350.0, "currencyCode": "EGP", "paymentMethod": "MWALLET" }Charge payment
POST
/v1/checkout/settlementsopenfinanceExecutes a FawryPay charge (card, wallet or BNPL) and returns the Fawry referenceNumber, orderStatus, paymentAmount and fawryFees shown on the receipt.
Auth: Authorization Bearer token from login.
- referenceNumber
- merchantRefNum
- orderStatus
- orderAmount
- paymentAmount
- paymentMethod
- paymentTime
- fawryFees
- taxes
- shippingFees
- adminFees
- customerName
- customerMobile
- customerMail
- customerProfileId
- expirationTime
- signature
POST /v1/checkout/settlements HTTP/1.1 Authorization: Bearer <access-token> Content-Type: application/json {"merchantCode": "MERCHANT-EXAMPLE", "merchantRefNum": "ORDER-EXAMPLE-001", "customerProfileId": "100001", "customerMobile": "01000000000", "customerEmail": "[email protected]", "customerName": "Example Customer", "amount": 350.0, "paymentMethod": "CARD", "enable3DS": true, "language": "ar-eg", "chargeItems": [{"itemId": "BILL-ELEC", "price": 350.0}]}{ "referenceNumber": "COLLECTION-EXAMPLE-001", "merchantRefNum": "ORDER-EXAMPLE-001", "merchantRefNumber": "ORDER-EXAMPLE-001", "orderStatus": "PAID", "orderAmount": "350.00", "paymentAmount": "365.50", "paymentMethod": "CARD", "paymentTime": 1712920800000, "fawryFees": 15.5, "taxes": 0.0, "shippingFees": 0.0, "adminFees": 0.0, "customerName": "Example Customer", "customerMobile": "01000000000", "customerMail": "[email protected]", "customerProfileId": "100001", "expirationTime": "2026-04-13T12:00:00Z", "signature": "<signature>", "walletQr": null }Mobile-wallet payment status
POST
/v1/checkout/wallet-statusopenfinancePolls a mobile-wallet (Meeza / Fawry wallet) charge until orderStatus settles, returning authNumber, fees and the optional walletQr.
Auth: Authorization Bearer token from login.
- referenceNumber
- merchantRefNumber
- orderStatus
- orderAmount
- paymentAmount
- paymentMethod
- paymentTime
- fawryFees
- interestAmount
- upFrontFees
- authNumber
- customerProfileId
- walletQr
POST /v1/checkout/wallet-status HTTP/1.1 Authorization: Bearer <access-token> Content-Type: application/json {"merchantRefNum": "ORDER-EXAMPLE-001", "referenceNumber": "COLLECTION-EXAMPLE-001"}{ "referenceNumber": "COLLECTION-EXAMPLE-001", "merchantRefNumber": "ORDER-EXAMPLE-001", "orderStatus": "PAID", "orderAmount": 350.0, "paymentAmount": 365.5, "paymentMethod": "MWALLET", "paymentTime": 1712920860000, "fawryFees": 15.5, "interestAmount": 0.0, "upFrontFees": 0.0, "authNumber": "AUTH-EXAMPLE", "customerName": "Example Customer", "customerMobile": "01000000000", "customerMail": "[email protected]", "customerProfileId": "100001", "walletQr": null, "signature": "<signature>" }Loyalty points history
GET
/v1/rewards/point-ledgeropendataPages the merchant loyalty ledger: points earned, EGP amount, readyToUseDate / expiryDate and transactionStatus for the FawryPay rewards screen.
Auth: Authorization Bearer token from login.
- resultCount
- pointsList.id
- pointsList.points
- pointsList.amount
- pointsList.transactionDate
- pointsList.readyToUseDate
- pointsList.expiryDate
- pointsList.redemptionDate
- pointsList.transactionStatus
- pointsList.branch
GET /v1/rewards/point-ledger?merchantCode=MERCHANT-EXAMPLE&customerProfileId=100001&page=0&size=20 HTTP/1.1 Authorization: Bearer <access-token>{ "resultCount": 2, "pointsList": [ { "id": 501, "points": 120.0, "amount": 12.0, "transactionDate": 1712505600000, "readyToUseDate": 1712592000000, "expiryDate": 1720339200000, "redemptionDate": null, "transactionStatus": "READY", "branch": {"branchCode": "CAI-01"} } ] }Loyalty vouchers history
GET
/v1/rewards/voucher-ledgeropendataLists issued loyalty vouchers with status, program and gift description for the coupons wallet.
Auth: Authorization Bearer token from login.
- totalElements
- vouchersList.id
- vouchersList.status
- vouchersList.loyaltyProgram
- vouchersList.gift
GET /v1/rewards/voucher-ledger?merchantCode=MERCHANT-EXAMPLE&customerProfileId=100001&page=0&size=20 HTTP/1.1 Authorization: Bearer <access-token>{ "totalElements": 1, "vouchersList": [ { "id": 88, "status": "ACTIVE", "loyaltyProgram": {"id": 3, "name": "Fawry Rewards"}, "gift": {"giftType": "COUPON", "giftDescription": "EGP 50 off"} } ] }Validate merchant coupon
POST
/v1/offers/coupon-checkopenfinanceValidates a promo coupon against the current basket and returns discountAmount plus matched bill items before charge.
Auth: Authorization Bearer token from login.
- discountAmount
- giftDescription
- matchedItems
POST /v1/offers/coupon-check HTTP/1.1 Authorization: Bearer <access-token> Content-Type: application/json {"couponCode": "FAWRY50", "merchantCode": "MERCHANT-EXAMPLE", "amount": 350.0}{ "discountAmount": 50.0, "giftDescription": "EGP 50 off electricity bill", "matchedItems": [ {"itemId": "BILL-ELEC", "price": 350.0} ] }valU customer status
GET
/v1/credit/eligibility/{phoneNumber}openfinanceLooks up valU BNPL eligibility for a mobile number before the installment-plan picker is shown.
Auth: Authorization Bearer token from login; language query defaults to en-gb in the client.
- customerStatus
- responseCode
- responseDesc
GET /v1/credit/eligibility/01000000000?language=en-gb HTTP/1.1 Authorization: Bearer <access-token>{ "customerStatus": "ELIGIBLE", "responseCode": "00", "responseDesc": "Customer eligible for valU" }Verify valU customer
POST
/v1/credit/verificationopenfinanceStarts valU customer verification for a checkout amount and returns the orderId used by the OTP step.
Auth: Authorization Bearer token from login.
- mobileNumber
- orderId
- responseCode
- responseDesc
POST /v1/credit/verification HTTP/1.1 Authorization: Bearer <access-token> Content-Type: application/json {"valUCustomerVerificationRequest": {"mobileNumber": "01000000000"}, "chargeRequest": {"merchantCode": "MERCHANT-EXAMPLE", "amount": 350.0}}{ "mobileNumber": "01000000000", "orderId": "VALU-EXAMPLE-001", "responseCode": "00", "responseDesc": "OTP sent" }valU installment plans
POST
/v1/credit/tenor-optionsopenfinanceReturns valU tenors for the current order: minimumDownPayment plus per-plan noOfMonths, rate and min/max amount.
Auth: Authorization Bearer token from login.
- mobileNumber
- orderId
- minimumDownPayment
- responseCode
- responseDesc
- productList
- noOfMonths
- rate
- minAmount
- maxAmount
- upFrontFees
- nameEN
- nameAR
POST /v1/credit/tenor-options HTTP/1.1 Authorization: Bearer <access-token> Content-Type: application/json {"mobileNumber": "01000000000", "orderId": "VALU-EXAMPLE-001", "amount": 350.0}{ "mobileNumber": "01000000000", "orderId": "VALU-EXAMPLE-001", "minimumDownPayment": 35.0, "responseCode": "00", "responseDesc": "Plans available", "productList": [ { "id": 6, "noOfMonths": 6, "rate": 1.5, "minAmount": 100.0, "maxAmount": 20000.0, "upFrontFees": 0.0, "nameEN": "6 months", "nameAR": "٦ أشهر" } ] }Create Forsa loan
POST
/v1/credit/agreementsopenfinanceCreates a Forsa BNPL loan for the checkout amount and returns loanId used on the subsequent Forsa payment.
Auth: Authorization Bearer token from login.
- loanId
- detail
POST /v1/credit/agreements HTTP/1.1 Authorization: Bearer <access-token> Content-Type: application/json {"merchantCode": "MERCHANT-EXAMPLE", "amount": 1200.0, "tenureMonths": 12, "customerMobile": "01000000000"}{ "loanId": 440291, "detail": "Loan created" }Merchant installment plans
GET
/v1/checkout/tenor-optionsopenfinanceLists merchant-configured installment tenors (months, rate, min/max, upfront fees) offered at FawryPay checkout.
Auth: Authorization Bearer token from login.
- id
- installmentPlan.id
- installmentPlan.nameEN
- installmentPlan.nameAR
- installmentPlan.noOfMonths
- installmentPlan.rate
- installmentPlan.minAmount
- installmentPlan.maxAmount
- installmentPlan.upFrontFees
- installmentPlan.merchantProfileCode
- installmentPlan.isOnline
- installmentPlan.type
GET /v1/checkout/tenor-options?merchantCode=MERCHANT-EXAMPLE&amount=1200 HTTP/1.1 Authorization: Bearer <access-token>[ { "id": 12, "installmentPlan": { "id": 12, "nameEN": "12 months", "nameAR": "١٢ شهر", "noOfMonths": 12, "rate": 2.1, "minAmount": 200.0, "maxAmount": 50000.0, "upFrontFees": 25.0, "merchantProfileCode": "MERCHANT-EXAMPLE", "isOnline": true, "type": "CARD" } } ]Shipping addresses
GET
/v1/delivery/destinationsosintReturns saved shipping addresses with receiver, Cairo-governorate hierarchy and geolocation for cash-on-delivery and courier checkout.
Auth: Authorization Bearer token from login.
- id
- receiverName
- receiverMobile
- address
- buildingNumber
- floorNumber
- apartmentNumber
- isDefault
- status
- governorate
- city
- area
- geolocation
GET /v1/delivery/destinations HTTP/1.1 Authorization: Bearer <access-token>[ { "id": 31, "receiverName": "Example Customer", "receiverMobile": "01000000000", "address": "12 Example Street", "buildingNumber": "12", "floorNumber": "3", "apartmentNumber": "8", "isDefault": true, "status": "ACTIVE", "governorate": {"governorateCode": "C", "governorateDisplayName": "Cairo"}, "city": {"cityCode": "CAI", "cityDisplayName": "Nasr City"}, "area": {"areaName": "Abbas El Akkad"}, "geolocation": {"latitude": 30.0444, "longitude": 31.2357} } ]
Data categories
- balances
- cards
- payments
- bills
- loyalty
- bnpl
- identity
- addresses
Where teams use this data
Egyptian bill-pay reconciliation
Finance bots pull referenceNumber, orderStatus, paymentAmount and fawryFees after a charge so utility and government billers can match Fawry collections to their own ledgers without scraping the receipt screen.
Wallet and saved-card aggregation
Account-aggregation layers read walletAccounts.balance, currencyCode and lastFourDigits plus tokenized CardDetail firstSixDigits / brand to show Fawry wallet and Meeza prepaid holdings next to bank accounts.
BNPL eligibility and tenor pricing
Lenders inspect valU customerStatus, minimumDownPayment, noOfMonths and rate, then Forsa loanId, to underwrite or compare installment offers sitting on the same FawryPay checkout.
Loyalty ledger sync
Rewards platforms page pointsList (points, amount, expiryDate, transactionStatus) and vouchersList so Fawry Rewards balances stay in sync with merchant CRM.
Frequently asked questions
Which wallet and card fields are represented?
The account examples include walletAccounts.balance, walletAccounts.currencyCode, walletAccounts.lastFourDigits and walletAccounts.minRedemptionPoints, together with cif and fawryCustomerNumber. Saved-card records add cards.brand, cards.firstSixDigits and cards.lastFourDigits for a masked card-picker view.
Can the data describe bill-payment receipts as well as balances?
Yes. Charge receipts and wallet-payment status records include referenceNumber, orderStatus, paymentAmount, fawryFees and paymentTime. Charge receipts use merchantRefNum for the merchant order reference, while wallet status records use merchantRefNumber and also include authNumber and an optional walletQr. These fields support matching collections to merchant ledgers.
Which installment-provider data is included?
valU records cover customerStatus, verification orderId and plans with noOfMonths, rate, minimumDownPayment and upFrontFees. Forsa financing returns loanId. Merchant-configured installment plans add installmentPlan.upFrontFees, installmentPlan.minAmount and installmentPlan.maxAmount for comparing checkout options.
What authentication pattern do the examples use?
The sign-in example returns token and refreshToken. Subsequent requests illustrate Authorization: Bearer <access-token>, with Accept-Language values ar-eg or en-gb where needed. Routes and token values are illustrative placeholders, not official service addresses or working credentials.
Apps similar to myFawry
- InstaPay Egypt — InstaPay Egypt is the Central Bank of Egypt instant-payment app for sending and receiving money around the clock between linked bank accounts, Meeza prepaid cards, mobile wallets and electronic cards, plus bill payment.
- etisalat money - EG — etisalat money - EG is e& Egypt's registered mobile wallet for transfers to other wallets, utility bills, merchant purchases, airtime recharge, an online card, and cash-out at etisalat stores, ATMs or merchants.
- Orange Max it - Egypt — Orange Max it - Egypt combines Orange line and internet management with Orange Cash so users can send and receive money, recharge lines and pay utility bills in the same app.
- WE Pay EG — WE Pay EG is Telecom Egypt's Banque Misr-backed wallet for cash-in and cash-out at WE stores, Fawry outlets and bank ATMs, plus WE and utility bills, QR purchases and transfers to other Egyptian e-wallets.
- Halan: Lending, BNPL, Payments — Halan is an Egyptian fintech app that combines buy-now-pay-later and consumer lending with bill payment and in-app money send and receive.
- AMAN — AMAN, a Raya Holding business line, is an Egyptian app for bill payment, recharge and donations, plus an AMAN installment card and a locator for AMAN stores and merchants that sell on installments.
- Sahl سهل - Payments Made Easy — Sahl is an Egyptian bill-pay app for prepaid and postpaid electricity, water, gas, mobile top-ups, landline, donations and other household services, with bank card, Meeza or digital-wallet checkout.
- Telda — Telda is an Egyptian spending app that issues a customizable card for in-store and online purchases, supports instant person-to-person transfers, and tracks budgets from the same account.
Topics
- myFawry data API
- Fawry wallet balance
- Meeza saved cards
- Fawry bill payment receipts
- valU installment eligibility
- Forsa financing loanId
- Fawry loyalty points
- Egyptian payments integration
Need this app's data API integrated?
We deliver scoped integrations for any named app — from USD 500 with source-code handoff, or hosted access billed per call. Tell us the data you need.
- NDA + SOW on every engagement
- Delivery in 3–7 days
- Payment only after acceptance
- Work scoped to authorized use