myFawry App Payment

Introduction

The myFawry App payment method enables your customers to complete payments using the myFawry mobile application. When a customer initiates a payment through this method, your server receives two outputs in the API response: a deep link that opens the myFawry app directly (for mobile use cases) and a QR code the customer can scan with their camera (for web use cases). Your application presents whichever output matches the customer's device, the customer completes the payment inside the app, and your application verifies the transaction by polling the order status.

This method is ideal for merchants who want to provide a seamless, contactless, app-based payment experience across both mobile and web channels.

How It Works

After a customer clicks the payment button, your server should send a charge request to FawryPay with paymentMethod set to MYFAWRY . FawryPay will respond with two outputs: a deepLink (for mobile checkouts, which opens the myFawry app directly) and a qrCode URL (for web checkouts, which the customer scans with their mobile camera). Your application presents whichever output matches the customer's device. Once the payment is completed in the myFawry app, your application polls the Get Payment Status V2 API to verify the transaction.

Present the Payment Option to the Customer

After receiving the successful response from the myFawry charge API, your application should decide which output to present to the customer based on the device context. The API response provides both a deep link and a QR code to cover both use cases:

Mobile Use Case — Deep Link

When the customer is checking out from a mobile device (iOS or Android), use the deepLink value from the response. Render it as a tappable button or auto-invoke it to seamlessly open the myFawry application on the customer's device. This skips the scanning step entirely since the customer is already on their phone.

Web Use Case — QR Code

When the customer is checking out from a desktop or web browser on a non-mobile device, render the QR code image using the qrCode URL from the response. The customer scans the QR code with their mobile camera, which opens the myFawry application on their phone to complete the payment.

Check Payment Button

Regardless of which method the customer uses, your checkout page should include a Check Payment button that triggers a call to the Get Payment Status V2 API using the referenceNumber received in the charge response. The customer clicks this button after completing the payment in the myFawry app to verify the transaction.

myFawry Payment Status Response

Upon clicking the Check Payment button, your application should call the Get Payment Status V2 API to retrieve the current state of the order.

Sample Response:

Response Parameters Description

Arguments type Description example
orderStatus String The current status of the order in the FawryPay system. Possible values: UNPAID, PAID, EXPIRED, CANCELED, REFUNDED. UNPAID
paymentTime Timestamp The exact timestamp indicating when the payment status was last updated, formatted as ISO 8601 (yyyy-MM-ddTHH:mm:ss.SSS). 2026-04-22T10:59:14.207

Best Practices

  • Ensure your checkout page clearly instructs the customer not to close the browser tab until the payment is verified.
  • Display a loading indicator when the Check Payment button is clicked to provide feedback during the status check.
  • Implement a retry mechanism allowing customers to click the Check Payment button multiple times if the status has not yet been updated.
  • Use the Server Notification V2 webhook in parallel to receive real-time updates on the backend when the payment is confirmed.