myFawry icon

myFawry wallet, bills and BNPL data API

Fawry for Banking & Payment Technology Services · Payments

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

  • myFawry screenshot 1
  • myFawry screenshot 2
  • myFawry screenshot 3
  • myFawry screenshot 4
  • myFawry screenshot 5
  • myFawry screenshot 6
  • myFawry screenshot 7

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-in osint

    Signs 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
    • email
    • 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/snapshot openbanking

    Reloads 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/instruments openbanking

    Lists 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/sessions openfinance

    Opens 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/settlements openfinance

    Executes 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-status openfinance

    Polls 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-ledger opendata

    Pages 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-ledger opendata

    Lists 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-check openfinance

    Validates 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} openfinance

    Looks 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/verification openfinance

    Starts 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-options openfinance

    Returns 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/agreements openfinance

    Creates 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-options openfinance

    Lists 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/destinations osint

    Returns 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

Get a quote