How to accept InstaPay on your website and confirm payments automatically

To accept InstaPay on a website, show each order an exact amount and your InstaPay address, let the customer pay from their own bank app, then confirm it from your bank’s “money in” text. Forward that text to a small matcher that marks the order paid when the amount and one more sign agree.
That is worth getting right, because InstaPay is now how a large part of Egypt pays. By the end of Q2 2026, Egypt’s Instant Payment Network had nearly 22 million registered customers and 1.47 billion processed transactions worth around EGP 4.33 trillion, according to the Central Bank of Egypt.
I built InstaPlug, my own product that does this confirmation for any website, app or AI agent. The same matching runs a dog club’s bookings. Here is how it works, and what happens when customers do the unexpected.
What is InstaPay?
InstaPay is Egypt’s instant payment app. It runs on the Instant Payment Network, a national network linking all banks operating in Egypt, which the Central Bank of Egypt launched on 22 March 2022. The app is published by the Egyptian Banks Company.
The facts that matter for a business, from InstaPay’s own site and the CBE:
- Limits: EGP 70,000 per transaction, EGP 120,000 a day and EGP 400,000 a month, per bank registered in the app.
- Fees: 0.1% of the transfer, at least EGP 0.50 and at most EGP 20, applied from 1 April 2025.
- Addresses: you can receive on your mobile number, your account number, or an Instant Payment Address that looks like name@instapay.
- Status: a transfer is successful, rejected or pending. Pending means the receiving bank will execute it shortly.
Is there an InstaPay API for websites?
Not one you can sign up for as a merchant. I could not find a public merchant API on instapay.eg or on the CBE’s network page. That leaves two routes.
- A licensed payment provider. Some Egyptian payment companies offer InstaPay inside their checkout. Kashier, for example, lists a QR code or request to pay over InstaPay. You sign up as a merchant, the provider sits in the middle, and you pay its fee.
- Your own account, confirmed by your bank. The customer sends money straight to your account, as they would to anyone. Your bank already tells you when it lands, by text message. You turn that text into an automatic confirmation.
InstaPlug takes the second route. Nobody sits in the middle and there is no fee on top of InstaPay’s own. One limit I hit in testing: an InstaPay payment link opens the app with your details filled in, but not the amount, so the customer types the amount themselves. That is why the matching has to be careful.
How does automatic InstaPay confirmation work?
Five steps, from order to “Paid”.
- Create the payment. Your website, your dashboard or an AI agent creates a payment for the price. The customer gets a pay page with the exact amount, copy buttons, your InstaPay number and, on a computer, a QR code to pay from their phone.
- The customer pays from their own bank app. They send the amount by InstaPay to your number or address.
- Your bank texts your phone. The phone that gets your account’s alerts forwards the incoming-transfer text to your server. On an iPhone that is one Shortcuts automation. On Android, any text-forwarding app that can post to a web address.
- The matcher reads the text. It pulls out the amount, the payer’s name and the bank’s reference. Today it reads the Arabic texts from CIB, NBE, Banque du Caire and Banque Misr. Money going out, card withdrawals and one-time codes are ignored.
- It marks the order paid, once. The pay page turns to “Paid” by itself and your shop gets a signed webhook, so your own system can ship the order or confirm the booking.
Why one amount is not enough
Customers pay the real price by default, because most shops sell at fixed prices. But a friend might send you exactly EGP 750 for something else on the same afternoon. So the exact amount alone never marks an order paid. One of three second signs has to agree:
- The payer’s first name on the bank text matches the customer’s name.
- The customer tapped pay on the pay page (copied the number, opened InstaPay) in the last 30 minutes. This covers a parent or partner paying for someone.
- Unique amounts are on. For busy hours there is a setting where each open order asks a pound or two less, 1 to 2% of the price at most: EGP 749, then 748. If only one order asks that amount, the amount is the proof.
If no sign agrees, the text waits on a check list for a person. It never pays the wrong order on a guess.
What happens when something goes wrong?
Most of the work is in the edge cases. In short:
- Two orders at the same price: names or the “tapped pay” sign decide, or unique amounts keep them apart. With nothing to go on, a person decides.
- The customer pays the wrong amount: within 10% of an open order, the text goes on the check list. Further off, it is treated as personal money and never stored.
- The text arrives late: if the order is still open, it matches when the text lands, and the pay page simply waits. If the link has expired, the text goes on the check list.
- The phone forwards the same text twice: the bank reference is stored once, so the second copy is dropped and the order is paid once.
- Someone sends a fake bank text: texts from ordinary phone numbers are never trusted. Fake “money in” messages come from normal numbers, and real ones come from the bank’s sender name.
Try each one below, with unique amounts on and off.
Try itOrders wait for their exact amount. Bank texts arrive. Watch the matcher pair them, then try to trip it up.
Pick what happens
Off: every order asks its real price, and a second sign has to agree.
Waiting for the first text.
Open orders
Check list
Nothing waiting for a person.
What the matcher checked
- ...Pick a scenario above.
Example orders and texts. Real bank texts are in Arabic, shown here in English. The rules are the ones my product runs.
Can a screenshot prove an InstaPay payment?
No. A screenshot is easy to fake, and a pending transfer can still be rejected. InstaPlug has a “did it arrive?” check for shop counters: the staff snap the customer’s screenshot, it is read on the device without uploading, and checked against the bank texts that really arrived. Each text can vouch for one screenshot only, so the same payment cannot be shown twice. The answer is never “fake”, because texts can be late. Your bank app is the final word.
What do you need to set it up?
- A bank account linked to InstaPay, with incoming-transfer texts going to a phone you control.
- That phone on and online. If it goes offline, payments wait and match when it is back.
- A small server and a Postgres database. You run your own copy, so bank texts and payments stay in your database.
- A webhook in your shop that ships the order or confirms the booking when the signed message arrives.
- Your bank’s terms. Money arrives in your own account like any InstaPay transfer, so check what your bank says about business use. This is not legal advice.
Personal money into the same account stays private: only amounts close to an open order are kept, and only exact ones mark anything paid. Check your bank app now and then, since a text is a notification, not a statement.
The same server can also serve a talking counter screen for shops, staff alerts that never show the balance, and tools for AI agents to create a payment link and check whether it is paid. None of those tools can move money, the same rule I hold to in the guard I built for AI coding agents and in my MCP security checklist.
Questions people ask
Does InstaPay have an API for websites?
There is no public merchant API on InstaPay’s own site. You either go through a licensed payment provider that offers InstaPay in its checkout, or receive into your own account and confirm from your bank’s incoming-transfer texts.
Do I need a payment gateway integration to accept InstaPay?
Only if you want a provider in the middle. A payment gateway integration with a licensed provider that offers InstaPay in its checkout, such as Kashier’s QR code or request to pay, confirms each payment for you, for a fee. Without one, the money lands in your own account, a matcher confirms it from your bank’s texts, and your shop gets a signed webhook. That second route is the one InstaPlug takes.
Can InstaPay payments be confirmed automatically?
Yes. Forward your bank’s “money in” text to a matcher. It marks the order paid when the exact amount matches and a second sign agrees: the payer’s name, the customer tapping pay in the last 30 minutes, or a unique amount.
What is the InstaPay limit for one transaction?
EGP 70,000 per transaction, EGP 120,000 a day and EGP 400,000 a month, per bank registered in the app, according to InstaPay and the Central Bank of Egypt.
Does InstaPay charge fees?
Since 1 April 2025, transfers cost 0.1% of the amount, at least EGP 0.50 and at most EGP 20. Balance checks and mini-statements are EGP 0.50 each, with 10 free a month.
What if two customers pay the same amount?
Each payment needs a second sign: the payer’s name, a recent tap on the pay page, or a unique amount. If none fits, it waits for a person instead of paying the wrong order.
Is a screenshot proof of payment?
No. Only the money arriving in your account is proof. Check the screenshot against the bank texts that really arrived, and treat your bank app as final.
If you want InstaPay payments, bookings or a loyalty card wired into your business, see booking and loyalty systems or write to m@tawfik.tv.