Installation
What Paymob Payment Provider for Egypt requires, how to install it, and how to check the install worked.
Requirements
- Odoo 18.0, Community or Enterprise
- Payment (payment) — Odoo's own payment framework
- Odoo reachable from the internet over HTTPS, so Paymob can deliver the callback
- A Paymob Egypt merchant account
HTTPS is not optional. The callback is what decides whether an order is paid, and Paymob will not deliver it to a plain HTTP endpoint.
Install
- Put technovision_paymob in your addons path.
- Update the apps list and install Paymob Payment Provider for Egypt.
- Accounting → Configuration → Payment Providers → Paymob.
It adds one payment provider and two routes: a customer return URL and the webhook Paymob posts to.
The four credentials
All from the Paymob dashboard:
| Credential | Where |
|---|---|
| Secret Key | Developers |
| Public Key | Developers |
| HMAC Secret | Settings → Account Info → HMAC |
| Card Integration ID | Developers → Payment Integrations |
All four are restricted to base.group_system. An accountant who can see a transaction cannot see the key that authorises one.
Test keys and live keys are not interchangeable
Saving a live key on a test provider is refused, and vice versa.
Paymob uses one hostname for both environments and only the key distinguishes them, which means getting it wrong is otherwise completely silent — you would find out when a real card was charged during testing, or when a real customer's payment went to the sandbox. The guard exists because the mistake is expensive and invisible.
Set the callback in Paymob
Transaction Processed Callback:
https://your-odoo-domain/payment/paymob/webhookWithout this, payments will succeed at Paymob and never be recorded in Odoo. The customer's browser returning to your site does not confirm anything — see the User guide for why.
Test the connection
Press Test Connection on the provider.
It creates a one-piastre intention that is never paid. That exercises the secret key, the integration ID and the account state together, and costs nothing. A credential that is merely well-formed passes a format check and fails here, which is the point.
Check the install worked
- Test Connection succeeds.
- Enable the provider in Test mode.
- Pay a small invoice from the customer portal.
- The transaction appears under Payment Transactions and moves to done only after the callback arrives.
If step 4 stalls at pending, the callback is not reaching you — check the callback URL in Paymob and that Odoo is reachable over HTTPS.
Currency
EGP only, which is what Paymob Egypt settles in. The provider hides itself for any other currency rather than appearing at checkout and failing there.
Upgrading
Upgrade normally. Transactions and their states are preserved.
Uninstalling
Removes the provider and the routes. Transactions already processed by Paymob stay processed — uninstalling an Odoo module does not reverse a payment. Reconcile before removing it.