1:"$Sreact.fragment" 3:I[1901,["619","static/chunks/619-ba102abea3e3d0e4.js","140","static/chunks/140-b415d2eac6336efa.js","337","static/chunks/337-1b524bb563584148.js","177","static/chunks/app/layout-472b9a1f42ce06b2.js"],"ThemeProvider"] b:I[7150,[],""] :HL["/_next/static/media/36966cca54120369-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}] :HL["/_next/static/media/e4af272ccee01ff0-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}] :HL["/_next/static/css/e6368d7e3a3a2a8b.css","style"] :HL["/_next/static/css/5e8eaa776b4eb964.css","style"] 2:T8a3,[{"@context":"https://schema.org","@type":"Organization","name":"Novafold","url":"https://novafoldltd.com","logo":"https://novafoldltd.com/logo_2.png","description":"Leading ERPNext implementation partner in Africa with M-Pesa integration and local compliance","address":{"@type":"PostalAddress","addressLocality":"Nairobi","addressCountry":"KE","addressRegion":"Nairobi"},"contactPoint":{"@type":"ContactPoint","email":"info@novafoldltd.com","telephone":"+254700000000","contactType":"Customer Service","areaServed":["KE","TZ","UG","RW","ZM","ZA"],"availableLanguage":["en"]},"sameAs":[],"areaServed":[{"@type":"Country","name":"Kenya"},{"@type":"Country","name":"Tanzania"},{"@type":"Country","name":"Uganda"},{"@type":"Country","name":"Rwanda"},{"@type":"Country","name":"Zambia"},{"@type":"Country","name":"South Africa"}]},{"@context":"https://schema.org","@type":"ProfessionalService","@id":"https://novafoldltd.com","name":"Novafold","image":"https://novafoldltd.com/logo_2.png","address":{"@type":"PostalAddress","addressLocality":"Nairobi","addressCountry":"KE","addressRegion":"Nairobi"},"geo":{"@type":"GeoCoordinates","latitude":"-1.2921","longitude":"36.8219"},"url":"https://novafoldltd.com","telephone":"+254700000000","email":"info@novafoldltd.com","priceRange":"$$","openingHoursSpecification":{"@type":"OpeningHoursSpecification","dayOfWeek":["Monday","Tuesday","Wednesday","Thursday","Friday"],"opens":"08:00","closes":"17:00"},"areaServed":[{"@type":"Country","name":"Kenya"},{"@type":"Country","name":"Tanzania"},{"@type":"Country","name":"Uganda"},{"@type":"Country","name":"Rwanda"},{"@type":"Country","name":"Zambia"},{"@type":"Country","name":"South Africa"}],"hasOfferCatalog":{"@type":"OfferCatalog","name":"ERPNext Services","itemListElement":[{"@type":"Offer","itemOffered":{"@type":"Service","name":"ERPNext Implementation","description":"Complete ERPNext setup, configuration, and deployment"}},{"@type":"Offer","itemOffered":{"@type":"Service","name":"Custom App Development","description":"Custom Frappe framework applications"}},{"@type":"Offer","itemOffered":{"@type":"Service","name":"ERPNext Integration","description":"M-Pesa, KRA eTIMS, and third-party integrations"}}]}}]0:{"P":null,"b":"KXa2T4SpKZmitUxzoDzg8","p":"","c":["","blog","mpesa-integration-erpnext-step-by-step"],"i":false,"f":[[["",{"children":["blog",{"children":[["slug","mpesa-integration-erpnext-step-by-step","d"],{"children":["__PAGE__",{}]}]}]},"$undefined","$undefined",true],["",["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/e6368d7e3a3a2a8b.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/css/5e8eaa776b4eb964.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":[["$","head",null,{"children":[["$","meta",null,{"name":"viewport","content":"width=device-width, initial-scale=1, maximum-scale=5"}],["$","meta",null,{"name":"theme-color","content":"#2563eb"}],["$","link",null,{"rel":"canonical","href":"https://novafoldltd.com"}],["$","link",null,{"rel":"icon","href":"/favicon-16x16.png","type":"image/png","sizes":"16x16"}],["$","link",null,{"rel":"icon","href":"/favicon-32x32.png","type":"image/png","sizes":"32x32"}],["$","link",null,{"rel":"icon","href":"/favicon-48x48.png","type":"image/png","sizes":"48x48"}],["$","link",null,{"rel":"apple-touch-icon","href":"/logo_2.png"}],["$","script",null,{"type":"application/ld+json","dangerouslySetInnerHTML":{"__html":"$2"}}]]}],["$","body",null,{"className":"__variable_f367f3 __variable_c22fe1 font-sans","children":["$","$L3",null,{"attribute":"class","defaultTheme":"system","enableSystem":true,"disableTransitionOnChange":false,"storageKey":"novafold-theme","children":["$L4","$L5","$L6"]}]}]]}]]}],{"children":["blog","$L7",{"children":[["slug","mpesa-integration-erpnext-step-by-step","d"],"$L8",{"children":["__PAGE__","$L9",{},null,false]},null,false]},null,false]},null,false],"$La",false]],"m":"$undefined","G":["$b",[]],"s":false,"S":true} c:I[522,["619","static/chunks/619-ba102abea3e3d0e4.js","140","static/chunks/140-b415d2eac6336efa.js","337","static/chunks/337-1b524bb563584148.js","177","static/chunks/app/layout-472b9a1f42ce06b2.js"],"AnimatedBackground"] d:I[7642,["619","static/chunks/619-ba102abea3e3d0e4.js","140","static/chunks/140-b415d2eac6336efa.js","337","static/chunks/337-1b524bb563584148.js","177","static/chunks/app/layout-472b9a1f42ce06b2.js"],"FloatingNavbar"] e:I[9766,[],""] f:I[8924,[],""] 10:I[2619,["619","static/chunks/619-ba102abea3e3d0e4.js","953","static/chunks/app/blog/%5Bslug%5D/page-fa2ba5757ff46280.js"],""] 11:I[1890,["619","static/chunks/619-ba102abea3e3d0e4.js","953","static/chunks/app/blog/%5Bslug%5D/page-fa2ba5757ff46280.js"],"AnimatedSection"] 15:I[4431,[],"ViewportBoundary"] 17:I[4431,[],"MetadataBoundary"] 18:"$Sreact.suspense" 4:["$","$Lc",null,{}] 5:["$","$Ld",null,{}] 6:["$","div",null,{"className":"relative z-10","children":["$","$Le",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$Lf",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[["$","div",null,{"className":"flex flex-col items-center justify-center min-h-screen bg-gradient-to-br from-blue-50 to-indigo-100 dark:from-gray-900 dark:to-gray-800","children":["$","div",null,{"className":"text-center space-y-6 px-4","children":[["$","h1",null,{"className":"text-9xl font-bold text-blue-600 dark:text-blue-400","children":"404"}],["$","h2",null,{"className":"text-3xl font-bold text-gray-900 dark:text-white","children":"Page Not Found"}],["$","p",null,{"className":"text-lg text-gray-600 dark:text-gray-300 max-w-md","children":"The page you're looking for doesn't exist or has been moved."}],["$","div",null,{"className":"flex gap-4 justify-center","children":[["$","$L10",null,{"href":"/","children":["$","button",null,{"className":"inline-flex items-center justify-center gap-2 whitespace-nowrap text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 h-11 rounded-md px-8 bg-blue-600 hover:bg-blue-700 text-white","ref":"$undefined","children":"Go Home"}]}],["$","$L10",null,{"href":"/contact","children":["$","button",null,{"className":"inline-flex items-center justify-center gap-2 whitespace-nowrap text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 border border-input bg-background hover:bg-accent hover:text-accent-foreground h-11 rounded-md px-8","ref":"$undefined","children":"Contact Us"}]}]]}]]}]}],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}] 7:["$","$1","c",{"children":[null,["$","$Le",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$Lf",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}] 8:["$","$1","c",{"children":[null,["$","$Le",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$Lf",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}] 12:Ta17,

M-Pesa Integration with ERPNext & Frappe Framework: A Step-by-Step Guide


M-Pesa integration is essential for Kenyan businesses using ERPNext built on Frappe Framework. This guide walks you through the complete integration process using Python and Frappe Framework.


Why Integrate M-Pesa with ERPNext?


  • **Real-time Payment Processing**: Accept payments instantly
  • **Automatic Reconciliation**: Reduce manual reconciliation work
  • **Better Cash Flow Management**: Track mobile money transactions
  • **Customer Convenience**: Offer preferred payment method
  • **Compliance**: Maintain proper financial records

  • Integration Methods


    1. API Integration


    Direct integration using M-Pesa API:


  • Register for M-Pesa API access
  • Obtain API credentials
  • Configure webhooks
  • Set up payment processing

  • 2. Payment Gateway Integration


    Use payment gateway providers:


  • Pesapal
  • Flutterwave
  • DPO Group

  • Step-by-Step Implementation


    Step 1: API Registration


    Register for M-Pesa API access through Safaricom Developer Portal.


    Step 2: Configure ERPNext Built on Frappe Framework


    Set up payment gateway in ERPNext using Frappe Framework:


    1. Navigate to Payment Gateway settings in ERPNext

    2. Install M-Pesa Frappe app

    3. Add M-Pesa gateway configuration

    4. Enter API credentials

    5. Configure webhook URL using Python


    Step 3: Test Integration


    Test the integration:


  • Process test payments
  • Verify webhook callbacks
  • Check reconciliation

  • Step 4: Go Live


    After successful testing:


  • Switch to production credentials
  • Monitor initial transactions
  • Provide user training

  • Best Practices


  • Use webhooks for real-time updates
  • Implement proper error handling
  • Maintain transaction logs
  • Regular reconciliation checks
  • Secure API credentials

  • Common Issues and Solutions


    **Issue**: Webhook not receiving callbacks

    **Solution**: Verify webhook URL and firewall settings


    **Issue**: Payment not reflecting in ERPNext

    **Solution**: Check API credentials and webhook configuration


    Conclusion


    M-Pesa integration with ERPNext streamlines payment processing and improves financial management for Kenyan businesses.


    9:["$","$1","c",{"children":[["$","div",null,{"className":"flex flex-col min-h-screen","children":["$","main",null,{"className":"flex-1","children":[["$","section",null,{"className":"w-full py-16 md:py-24 bg-gradient-to-br from-blue-600/90 via-purple-700/90 to-indigo-800/90 dark:from-blue-900/90 dark:via-purple-900/90 dark:to-indigo-950/90 relative overflow-hidden","children":["$","div",null,{"className":"container px-4 md:px-6 relative z-10","children":["$","$L11",null,{"children":[["$","$L10",null,{"href":"/blog","children":["$","button",null,{"className":"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 hover:text-accent-foreground h-10 px-4 py-2 mb-6 text-white hover:bg-white/20","ref":"$undefined","children":[["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-arrow-left mr-2 h-4 w-4","children":[["$","path","1l729n",{"d":"m12 19-7-7 7-7"}],["$","path","x3x0zl",{"d":"M19 12H5"}],"$undefined"]}],"Back to Blog"]}]}],["$","div",null,{"className":"max-w-3xl","children":[["$","div",null,{"className":"flex items-center gap-4 mb-4","children":[["$","span",null,{"className":"px-3 py-1 text-sm font-semibold text-blue-200 bg-blue-900/30 rounded-full","children":"Integration"}],["$","div",null,{"className":"flex items-center gap-2 text-sm text-gray-200","children":[["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-calendar h-4 w-4","children":[["$","path","1cmpym",{"d":"M8 2v4"}],["$","path","4m81vk",{"d":"M16 2v4"}],["$","rect","1hopcy",{"width":"18","height":"18","x":"3","y":"4","rx":"2"}],["$","path","8toen8",{"d":"M3 10h18"}],"$undefined"]}],"December 10, 2024"]}],["$","div",null,{"className":"flex items-center gap-2 text-sm text-gray-200","children":[["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-clock h-4 w-4","children":[["$","circle","1mglay",{"cx":"12","cy":"12","r":"10"}],["$","polyline","68esgv",{"points":"12 6 12 12 16 14"}],"$undefined"]}],"6 min read"]}]]}],["$","h1",null,{"className":"text-4xl font-bold tracking-tighter sm:text-5xl md:text-6xl text-white drop-shadow-lg mb-4","children":"M-Pesa Integration with ERPNext & Frappe Framework: A Step-by-Step Guide"}],["$","p",null,{"className":"text-xl text-gray-100 drop-shadow-md","children":"Learn how to integrate M-Pesa mobile money payments into your ERPNext system built on Frappe Framework using Python for seamless payment processing and reconciliation."}]]}]]}]}]}],["$","$L11",null,{"delay":200,"children":["$","article",null,{"className":"w-full py-16 md:py-24 bg-white/50 dark:bg-gray-900/50 backdrop-blur-sm","children":["$","div",null,{"className":"container px-4 md:px-6","children":["$","div",null,{"className":"max-w-3xl mx-auto","children":[["$","div",null,{"ref":"$undefined","className":"rounded-lg text-card-foreground bg-white/80 dark:bg-gray-800/80 backdrop-blur-sm border-0 shadow-xl","children":["$","div",null,{"ref":"$undefined","className":"p-8 md:p-12","children":["$","div",null,{"className":"prose prose-lg dark:prose-invert max-w-none","dangerouslySetInnerHTML":{"__html":"$12"}}]}]}],"$L13"]}]}]}]}]]}]}],null,"$L14"]}] a:["$","$1","h",{"children":[null,[["$","$L15",null,{"children":"$L16"}],["$","meta",null,{"name":"next-size-adjust","content":""}]],["$","$L17",null,{"children":["$","div",null,{"hidden":true,"children":["$","$18",null,{"fallback":null,"children":"$L19"}]}]}]]}] 1a:I[4431,[],"OutletBoundary"] 1c:I[5278,[],"AsyncMetadataOutlet"] 13:["$","div",null,{"className":"mt-12 flex flex-col sm:flex-row gap-4 justify-between","children":[["$","$L10",null,{"href":"/blog/complete-guide-erpnext-implementation-kenya","children":["$","button",null,{"className":"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 border border-input bg-background hover:bg-accent hover:text-accent-foreground h-10 px-4 py-2 w-full sm:w-auto","ref":"$undefined","children":[["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-arrow-left mr-2 h-4 w-4","children":[["$","path","1l729n",{"d":"m12 19-7-7 7-7"}],["$","path","x3x0zl",{"d":"M19 12H5"}],"$undefined"]}],"Previous: ","Complete Guide to ERPNext & Frappe Frame","..."]}]}],["$","$L10",null,{"href":"/blog/kra-etims-compliance-erpnext","className":"ml-auto","children":["$","button",null,{"className":"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 border border-input bg-background hover:bg-accent hover:text-accent-foreground h-10 px-4 py-2 w-full sm:w-auto","ref":"$undefined","children":["Next: ","KRA eTIMS Compliance with ERPNext: Compl","...",["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-arrow-right ml-2 h-4 w-4","children":[["$","path","1ays0h",{"d":"M5 12h14"}],["$","path","xquz4c",{"d":"m12 5 7 7-7 7"}],"$undefined"]}]]}]}]]}] 14:["$","$L1a",null,{"children":["$L1b",["$","$L1c",null,{"promise":"$@1d"}]]}] 16:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]] 1b:null 1e:T505,ERPNext Africa,Frappe Framework Africa,Frappe development Kenya,Python ERP development,Frappe Python development,ERPNext built on Frappe,ERP software Kenya,Frappe implementation Africa,ERPNext Kenya,Frappe framework Kenya,Python ERPNext development,ERP Tanzania,ERP Uganda,M-Pesa integration,Kenya compliance ERP,African ERP solutions,ERPNext customization Africa,Frappe framework Africa,Frappe app development,Python Frappe apps,ERP implementation East Africa,ERPNext business analyst,ERPNext developer Kenya,Frappe developer Africa,Python developer Kenya,custom ERPNext apps,custom Frappe apps,Frappe mobile app development,ERPNext mobile app development,KRA compliance ERPNext,biometric integration ERPNext,ERPNext consulting Africa,Frappe consulting Africa,ERPNext support Kenya,Frappe support Africa,ERPNext training Africa,Frappe training Africa,ERPNext data migration,ERPNext implementation services,Frappe implementation services,open source ERP Africa,Frappe open source,Python open source ERP,ERPNext manufacturing,ERPNext healthcare,ERPNext education,ERPNext retail,ERPNext distribution,ERPNext accounting,ERPNext HR payroll,ERPNext inventory management,ERPNext financial management,ERPNext supply chain,ERPNext East Africa,ERPNext Rwanda,ERPNext Zambia,ERPNext South Africa1d:{"metadata":[["$","title","0",{"children":"M-Pesa Integration with ERPNext & Frappe Framework: A Step-by-Step Guide | Novafold Blog | Novafold"}],["$","meta","1",{"name":"description","content":"Learn how to integrate M-Pesa mobile money payments into your ERPNext system built on Frappe Framework using Python for seamless payment processing and reconciliation."}],["$","meta","2",{"name":"author","content":"Novafold"}],["$","meta","3",{"name":"keywords","content":"$1e"}],["$","meta","4",{"name":"creator","content":"Novafold"}],["$","meta","5",{"name":"publisher","content":"Novafold"}],["$","meta","6",{"name":"robots","content":"index, follow"}],["$","meta","7",{"name":"googlebot","content":"index, follow, max-video-preview:-1, max-image-preview:large, max-snippet:-1"}],["$","link","8",{"rel":"canonical","href":"https://novafoldltd.com/blog/mpesa-integration-erpnext-step-by-step"}],["$","meta","9",{"property":"og:title","content":"M-Pesa Integration with ERPNext & Frappe Framework: A Step-by-Step Guide"}],["$","meta","10",{"property":"og:description","content":"Learn how to integrate M-Pesa mobile money payments into your ERPNext system built on Frappe Framework using Python for seamless payment processing and reconciliation."}],["$","meta","11",{"property":"og:url","content":"https://novafoldltd.com/blog/mpesa-integration-erpnext-step-by-step"}],["$","meta","12",{"property":"og:type","content":"article"}],["$","meta","13",{"property":"article:published_time","content":"2024-12-10"}],["$","meta","14",{"property":"article:author","content":"Novafold"}],["$","meta","15",{"property":"article:tag","content":"Integration"}],["$","meta","16",{"name":"twitter:card","content":"summary_large_image"}],["$","meta","17",{"name":"twitter:title","content":"Novafold - ERPNext Experts in East Africa"}],["$","meta","18",{"name":"twitter:description","content":"Leading ERPNext implementation partner in Africa with M-Pesa integration and local compliance"}],["$","meta","19",{"name":"twitter:image","content":"https://novafoldltd.com/logo_2.png"}],["$","link","20",{"rel":"shortcut icon","href":"/favicon-32x32.png"}],["$","link","21",{"rel":"icon","href":"/favicon.ico","type":"image/x-icon","sizes":"32x32"}],["$","link","22",{"rel":"icon","href":"/favicon-16x16.png","sizes":"16x16","type":"image/png"}],["$","link","23",{"rel":"icon","href":"/favicon-32x32.png","sizes":"32x32","type":"image/png"}],["$","link","24",{"rel":"icon","href":"/favicon-48x48.png","sizes":"48x48","type":"image/png"}],"$L1f","$L20","$L21"],"error":null,"digest":"$undefined"} 19:"$1d:metadata" 22:I[622,[],"IconMark"] 1f:["$","link","25",{"rel":"icon","href":"/logo_2.png","sizes":"500x500","type":"image/png"}] 20:["$","link","26",{"rel":"apple-touch-icon","href":"/logo_2.png","type":"image/png"}] 21:["$","$L22","27",{}]