A build-to-order Frappe app that connects ERPNext to Paymob's unified checkout, so cards, mobile wallets, and installment payments settle straight into ERPNext with webhook-verified Payment Entries. ECOSIRE builds, installs, and supports it for your instance. Built to order by ECOSIRE for ERPNext v15, v16 — indicative price from $249.00 USD; request a quote for a scoped proposal.

A build-to-order Frappe app that connects ERPNext to Paymob's unified checkout, so cards, mobile wallets, and installment payments settle straight into ERPNext with webhook-verified Payment Entries. ECOSIRE builds, installs, and supports it for your instance.
Sem pagamento agora. Isto envia um pedido de orçamento à nossa equipe — responderemos por e-mail com preços e próximos passos.
Egyptian and MENA merchants running ERPNext hit the same wall: Paymob is the gateway their customers actually pay with — cards, Vodafone/Orange/Etisalat wallets, and bank installments — but ERPNext core has no concept of Paymob. Out of the box you get manual Payment Entry records reconciled by hand against a separate Paymob dashboard, no way to send a customer a pay-now link from a Sales Invoice, and no automated confirmation when money actually clears. The built-in Payment Gateway framework covers a handful of global processors; Paymob's unified intention API, HMAC-signed callbacks, and multi-country acceptance are simply not in it.
`Paymob Settings` single DocType storing API key, integration IDs, iframe/checkout IDs and HMAC secret via Frappe `Password` fieldtype (encrypted at rest, never rendered)
Unified checkout creation via a whitelisted server method calling Paymob's intention/order API, returning a hosted checkout URL for cards, wallets, and installments
Payment link generation attached to `Sales Invoice` and the customer portal so staff can send a pay-now link without leaving ERPNext
Guest webhook endpoint (`@frappe.whitelist(allow_guest=True)`) that recomputes and verifies the HMAC signature before trusting any callback field
Idempotent `Payment Entry` creation on confirmed callbacks, keyed on Paymob transaction ID so retried webhooks never double-post
`hooks.py` doc events on `Sales Invoice` submit to trigger checkout/link creation, plus a `Payment Request`-compatible flow
We build a proper Frappe app (erpnext_paymob) — a versioned module with its own DocTypes, not a pile of loose customizations. A Paymob Settings single DocType holds your API key, integration IDs, iframe/checkout config, and HMAC secret (secrets stored via Frappe's Password fieldtype, never in plain fields). The core flow: a whitelisted server method calls Paymob's intention/order API to create a payment and returns a hosted unified-checkout URL or a generated payment link, which we surface on the Sales Invoice and via the customer portal. When the shopper pays, Paymob POSTs to a webhook endpoint we expose as a @frappe.whitelist(allow_guest=True) method that first recomputes and verifies the HMAC signature before trusting a single field — on a valid, non-duplicate callback it creates and submits the matching Payment Entry, links it to the invoice, and updates status idempotently so a retried webhook never double-posts.
Technically it lives where ERPNext expects it. hooks.py doc events fire the checkout logic on Sales Invoice submit; a Payment Request-style flow drives link generation; a client script adds the "Pay with Paymob" action in the invoice UI; scheduler events (scheduler_events in hooks.py) run a reconciliation sweep that queries Paymob for any transaction whose webhook was missed and back-fills the Payment Entry. Refunds are handled through a server action that calls Paymob's refund/void endpoint and writes the reversal back into ERPNext with an audit trail. Access is governed by a dedicated role and role-profile so only authorized users can view credentials or trigger refunds, and every gateway call is logged. Multi-country support means we wire the correct integration IDs and currency handling for Egypt, the GCC market you operate in, and Pakistan, rather than assuming a single locale.
Because this is build-to-order, nothing is a black-box download. After a short scoping call we confirm exactly which payment methods, currencies, invoice/portal touchpoints, and ERPNext version (v15 or v16) you need, then build against a staging copy of your instance. You get the full app source in a git repository, install and configuration on your bench, UAT on staging with live Paymob test credentials, and a documented rollback path before we touch production. Typical delivery is 2-4 weeks from confirmed scope, followed by a post-go-live support window while real transactions flow.
Sells online in EGP and needs cards plus Vodafone/Orange wallet acceptance flowing into ERPNext invoices automatically, with confirmed payments creating Payment Entries instead of manual reconciliation against the Paymob dashboard.
Operates across Egypt, a GCC market, and Pakistan on one ERPNext instance and needs correct integration IDs, currencies, and installment options per country without maintaining separate spreadsheets or ad-hoc scripts.
Owns reconciliation and refunds and wants webhook-verified Payment Entries, an audit trail on every gateway call, and role-gated refund actions so accounts stay clean and controls hold.
Wants a properly structured Frappe app with DocTypes, hooks, and a git repo they can read, extend, and maintain — not brittle custom fields and untracked server scripts bolted onto production.
Compre a licença em ecosire.com e baixe o ZIP do aplicativo ERPNext Paymob Connector no painel da sua conta.
Extraia o ZIP na pasta de aplicativos do seu banco ou execute `bench get-app` com o caminho para o aplicativo extraído.
Execute `bench --site SITE_NAME install-app APP_NAME` seguido de `bench Migra` para instalar ERPNext Paymob Connector e aplicar seu esquema.
Abra as configurações de licença ECOSIRE em seu site e ative sua chave de licença. Requer os aplicativos gratuitos ecosire_connect e ecosire_license_client.
| Critério | ECOSIRE | Construção personalizada | Concorrente | Odoo nativo |
|---|---|---|---|---|
| Paymob support | Purpose-built for Paymob unified checkout, wallets, and installments | Whatever you scope and build in-house | Often generic or Stripe/PayPal-focused, Paymob rarely first-class | |
| Payment confirmation | HMAC-verified webhook creates idempotent Payment Entry | Depends on your build; signature checks often skipped | Varies; some trust unsigned callbacks | |
| Multi-country (EG/GCC/PK) | Integration IDs and currencies wired per country | Buildable but you design it yourself | Usually single-locale assumptions | |
| Refunds | Server action to Paymob refund/void with linked audit trail | Only if you build it | Inconsistent or absent | |
| Code ownership | Full app source in a git repo you own | You own it, but you also maintain everything | Often closed or license-locked | |
| Reconciliation | Scheduled sweep back-fills missed webhooks | Extra work to design and test | Rarely included | |
| Version fit | Built and tested for your v15/v16 instance | Whatever you target | May lag ERPNext releases | |
| Support | Post-go-live support window plus optional ongoing | Your own team | Community forum or paid tier |
This is a build-to-order app, not an instant download. Typical delivery is 2-4 weeks from confirmed scope — the exact timeline depends on how many payment methods, currencies, and invoice/portal touchpoints you need. After a short scoping call we confirm requirements and your ERPNext version, then build and test against a staging copy of your instance.
We build and test against Frappe/ERPNext v15 and v16. Tell us your exact version and hosting (Frappe Cloud, self-hosted, or ECOSIRE-managed) during scoping and we target it specifically, including migration-safe fixtures for settings and custom fields.
Paymob POSTs to a webhook endpoint we expose. It recomputes and verifies the HMAC signature before trusting any field, then creates and submits the matching `Payment Entry` idempotently so a retried callback never double-posts. A scheduled reconciliation sweep also back-fills any transaction whose webhook was missed.
Paymob unified checkout covers cards, mobile wallets, and bank installments. We wire the correct integration IDs and currency handling for Egypt (EGP), your GCC market, and Pakistan (PKR). We confirm the exact methods and currencies with you during scoping.
Every build includes a post-go-live support window for defect fixes and configuration adjustments while real transactions flow. Beyond that window we offer ongoing support and version-upgrade work as a separate engagement — you own the git repository, so you or any Frappe partner can also maintain it.
Yes. You receive the full Frappe app source in a git repository you own, plus technical documentation covering the DocTypes, hooks, scheduler events, and webhook logic. Nothing is a locked black box.
Yes. We expose whitelisted methods via the Frappe REST API so a headless storefront or custom frontend can initiate a Paymob payment against an ERPNext invoice and receive the checkout URL, while confirmation still flows through the verified webhook.
A build-to-order Frappe app that connects ERPNext to Paymob's unified checkout, so cards, mobile wallets, and installment payments settle straight into ERPNext with webhook-verified Payment Entries. ECOSIRE builds, installs, and supports it for your instance.