{"id":140774,"date":"2026-08-04T06:45:10","date_gmt":"2026-08-04T06:45:10","guid":{"rendered":"https:\/\/docs.daftra.com\/?post_type=user_manual&#038;p=140774"},"modified":"2026-08-05T05:59:27","modified_gmt":"2026-08-05T05:59:27","slug":"a-complete-guide-to-m-pesa-payments","status":"publish","type":"user_manual","link":"https:\/\/docs.daftra.com\/en\/user_manual\/a-complete-guide-to-m-pesa-payments\/","title":{"rendered":"A Complete Guide to M-PESA Payments"},"content":{"rendered":"<section class=\"wpb-content-wrapper\"><p>[vc_row][vc_column][vc_column_text]<\/p>\n<p class=\"font-claude-response-body break-words whitespace-normal\" dir=\"auto\">The system allows you to accept M-PESA payments on your invoices directly \u2014 the client receives an STK Push request on their phone, enters their PIN to complete the payment, and the system updates automatically once Safaricom confirms the transaction. This guide covers the complete workflow: from activation and credential setup, through executing a payment and handling errors.<\/p>\n<p>[\/vc_column_text][vc_message message_box_style=&#8221;3d&#8221; message_box_color=&#8221;alert-warning&#8221;]<\/p>\n<blockquote><p>M-PESA is available for Kenya-based accounts only.<\/p><\/blockquote>\n<p>[\/vc_message][vc_column_text]<\/p>\n<p class=\"text-text-100 mt-2 -mb-1 text-base font-bold\" dir=\"auto\"><strong>Before You Begin<\/strong><\/p>\n<ul class=\"[li_&amp;]:mb-0 [li_&amp;]:mt-1 [li_&amp;]:gap-1 [&amp;:not(:last-child)_ul]:pb-1 [&amp;:not(:last-child)_ol]:pb-1 list-disc flex flex-col gap-1 pl-8 mb-3\" dir=\"auto\">\n<li class=\"font-claude-response-body whitespace-normal break-words pl-2\">Make sure you have the <strong>&#8220;Edit Payment Options&#8221;<\/strong> permission to access M-PESA settings. Users without this permission will not see the Payment Methods menu item.<\/li>\n<li class=\"font-claude-response-body whitespace-normal break-words pl-2\">To activate M-PESA you will need the following Daraja credentials, obtained from Safaricom: Consumer Key and Consumer Secret (from the Daraja portal under My Apps), Business Shortcode (your Paybill or Till number registered with Safaricom), and Passkey (sent to you by Safaricom via email after your app is approved for production).<\/li>\n<\/ul>\n<p>[\/vc_column_text][\/vc_column][\/vc_row][vc_row][vc_column][vc_custom_heading text=&#8221;Part 1: Enabling M-PESA and Configuring Credentials&#8221; font_container=&#8221;tag:h2|font_size:28|text_align:center|color:%2304306b|line_height:2&#8243; use_theme_fonts=&#8221;yes&#8221; css=&#8221;.vc_custom_1784626959461{margin-left: 200px !important;background-color: #f6f9fc !important;border-radius: 4px !important;}&#8221;][vc_column_text]<\/p>\n<p class=\"font-claude-response-body break-words whitespace-normal\" dir=\"auto\">To enable M-PESA, an account administrator navigates to <strong>&#8220;Payment Methods&#8221;<\/strong> and toggles M-PESA on \u2014 the credentials form opens immediately. The form requires the Daraja credentials listed above, along with selecting the operating environment:<\/p>\n<ul class=\"[li_&amp;]:mb-0 [li_&amp;]:mt-1 [li_&amp;]:gap-1 [&amp;:not(:last-child)_ul]:pb-1 [&amp;:not(:last-child)_ol]:pb-1 list-disc flex flex-col gap-1 pl-8 mb-3\" dir=\"auto\">\n<li class=\"font-claude-response-body whitespace-normal break-words pl-2\"><strong>Production:<\/strong> For live payments \u2014 uses <code class=\"bg-text-200\/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]\">https:\/\/api.safaricom.co.ke<\/code>.<\/li>\n<li class=\"font-claude-response-body whitespace-normal break-words pl-2\"><strong>Sandbox:<\/strong> For testing only \u2014 uses <code class=\"bg-text-200\/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]\">https:\/\/sandbox.safaricom.co.ke<\/code>.<\/li>\n<\/ul>\n<p class=\"font-claude-response-body break-words whitespace-normal\" dir=\"auto\">A <strong>&#8220;Test Connection&#8221;<\/strong> button is available in the form to verify the credentials before saving. Once saved successfully, M-PESA becomes active and appears as a payment option on invoices.<\/p>\n<p class=\"font-claude-response-body break-words whitespace-normal\" dir=\"auto\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-140777 size-full\" src=\"https:\/\/docs.daftra.com\/wp-content\/uploads\/2026\/07\/Screenshot-2026-07-21-124658.png\" alt=\"\" width=\"1366\" height=\"632\" srcset=\"https:\/\/docs.daftra.com\/wp-content\/uploads\/2026\/07\/Screenshot-2026-07-21-124658.png 1366w, https:\/\/docs.daftra.com\/wp-content\/uploads\/2026\/07\/Screenshot-2026-07-21-124658-300x139.png 300w, https:\/\/docs.daftra.com\/wp-content\/uploads\/2026\/07\/Screenshot-2026-07-21-124658-1024x474.png 1024w, https:\/\/docs.daftra.com\/wp-content\/uploads\/2026\/07\/Screenshot-2026-07-21-124658-768x355.png 768w\" sizes=\"auto, (max-width: 1366px) 100vw, 1366px\" \/><\/p>\n<blockquote class=\"ml-2 border-l-4 border-[hsl(var(--border-300)\/0.1)] pl-4 text-text-300\" dir=\"auto\">\n<p class=\"font-claude-response-body break-words whitespace-normal\" dir=\"auto\">If the form is closed before saving, the M-PESA card shows a <strong>&#8220;Configuration required&#8221;<\/strong> warning badge \u2014 click the settings link on the card to complete the setup. M-PESA will not appear on invoices until the setup is complete.<\/p>\n<\/blockquote>\n<p>[\/vc_column_text][vc_custom_heading text=&#8221;Part 2: Updating Credentials&#8221; font_container=&#8221;tag:h2|font_size:28|text_align:center|color:%2304306b|line_height:2&#8243; use_theme_fonts=&#8221;yes&#8221; css=&#8221;.vc_custom_1784628759551{margin-left: 200px !important;background-color: #f6f9fc !important;border-radius: 4px !important;}&#8221;][vc_column_text]<\/p>\n<p class=\"font-claude-response-body break-words whitespace-normal\" dir=\"auto\">Daraja credentials can be updated at any time from the <strong>settings icon (\u2699)<\/strong> on the M-PESA card on the Payment Methods page. Sensitive fields (Consumer Secret and Passkey) are displayed masked as <code class=\"bg-text-200\/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]\">\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022[last 4 characters]<\/code> and are only enabled for editing when clicked. Updating credentials only affects future payments and does not impact historical records.<\/p>\n<p dir=\"auto\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-140780 size-full\" src=\"https:\/\/docs.daftra.com\/wp-content\/uploads\/2026\/07\/Screenshot-2026-07-21-132049.png\" alt=\"\" width=\"1197\" height=\"632\" srcset=\"https:\/\/docs.daftra.com\/wp-content\/uploads\/2026\/07\/Screenshot-2026-07-21-132049.png 1197w, https:\/\/docs.daftra.com\/wp-content\/uploads\/2026\/07\/Screenshot-2026-07-21-132049-300x158.png 300w, https:\/\/docs.daftra.com\/wp-content\/uploads\/2026\/07\/Screenshot-2026-07-21-132049-1024x541.png 1024w, https:\/\/docs.daftra.com\/wp-content\/uploads\/2026\/07\/Screenshot-2026-07-21-132049-768x405.png 768w\" sizes=\"auto, (max-width: 1197px) 100vw, 1197px\" \/><\/p>\n<p>[\/vc_column_text][\/vc_column][\/vc_row][vc_row][vc_column][vc_custom_heading text=&#8221;Part 3: Disabling M-PESA&#8221; font_container=&#8221;tag:h2|font_size:28|text_align:center|color:%2304306b|line_height:2&#8243; use_theme_fonts=&#8221;yes&#8221; css=&#8221;.vc_custom_1784629349704{margin-left: 200px !important;background-color: #f6f9fc !important;border-radius: 4px !important;}&#8221;][vc_column_text]<\/p>\n<p class=\"font-claude-response-body break-words whitespace-normal\" dir=\"auto\">M-PESA can be turned off at any time by toggling it off from the <strong>&#8220;Payment Methods&#8221;<\/strong> page after confirming the prompt. Upon disabling, M-PESA is removed from all future invoice payment options, while historical payment records remain intact and unaffected.<\/p>\n<p dir=\"auto\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-140782 size-full\" src=\"https:\/\/docs.daftra.com\/wp-content\/uploads\/2026\/07\/Screenshot-2026-07-21-132338.png\" alt=\"\" width=\"1366\" height=\"633\" srcset=\"https:\/\/docs.daftra.com\/wp-content\/uploads\/2026\/07\/Screenshot-2026-07-21-132338.png 1366w, https:\/\/docs.daftra.com\/wp-content\/uploads\/2026\/07\/Screenshot-2026-07-21-132338-300x139.png 300w, https:\/\/docs.daftra.com\/wp-content\/uploads\/2026\/07\/Screenshot-2026-07-21-132338-1024x475.png 1024w, https:\/\/docs.daftra.com\/wp-content\/uploads\/2026\/07\/Screenshot-2026-07-21-132338-768x356.png 768w\" sizes=\"auto, (max-width: 1366px) 100vw, 1366px\" \/><\/p>\n<p>[\/vc_column_text][vc_custom_heading text=&#8221;Part 4: Paying an Invoice via M-PESA&#8221; font_container=&#8221;tag:h2|font_size:28|text_align:center|color:%2304306b|line_height:2&#8243; use_theme_fonts=&#8221;yes&#8221; css=&#8221;.vc_custom_1784629484569{margin-left: 200px !important;background-color: #f6f9fc !important;border-radius: 4px !important;}&#8221;][vc_column_text]<\/p>\n<ul class=\"[li_&amp;]:mb-0 [li_&amp;]:mt-1 [li_&amp;]:gap-1 [&amp;:not(:last-child)_ul]:pb-1 [&amp;:not(:last-child)_ol]:pb-1 list-decimal flex flex-col gap-1 pl-8 mb-3\" dir=\"auto\">\n<li class=\"font-claude-response-body whitespace-normal break-words pl-2\">Open the invoice you want to pay and click <strong>&#8220;Add Payment.&#8221;<\/strong><\/li>\n<\/ul>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-140784 size-full\" src=\"https:\/\/docs.daftra.com\/wp-content\/uploads\/2026\/07\/Screenshot-2026-07-21-132807.png\" alt=\"\" width=\"1366\" height=\"630\" srcset=\"https:\/\/docs.daftra.com\/wp-content\/uploads\/2026\/07\/Screenshot-2026-07-21-132807.png 1366w, https:\/\/docs.daftra.com\/wp-content\/uploads\/2026\/07\/Screenshot-2026-07-21-132807-300x138.png 300w, https:\/\/docs.daftra.com\/wp-content\/uploads\/2026\/07\/Screenshot-2026-07-21-132807-1024x472.png 1024w, https:\/\/docs.daftra.com\/wp-content\/uploads\/2026\/07\/Screenshot-2026-07-21-132807-768x354.png 768w\" sizes=\"auto, (max-width: 1366px) 100vw, 1366px\" \/><\/p>\n<ul>\n<li>Select <strong>M-PESA<\/strong> from the available payment options.<\/li>\n<\/ul>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-140786 size-full\" src=\"https:\/\/docs.daftra.com\/wp-content\/uploads\/2026\/07\/Screenshot-2026-07-21-133100.png\" alt=\"\" width=\"1195\" height=\"632\" srcset=\"https:\/\/docs.daftra.com\/wp-content\/uploads\/2026\/07\/Screenshot-2026-07-21-133100.png 1195w, https:\/\/docs.daftra.com\/wp-content\/uploads\/2026\/07\/Screenshot-2026-07-21-133100-300x159.png 300w, https:\/\/docs.daftra.com\/wp-content\/uploads\/2026\/07\/Screenshot-2026-07-21-133100-1024x542.png 1024w, https:\/\/docs.daftra.com\/wp-content\/uploads\/2026\/07\/Screenshot-2026-07-21-133100-768x406.png 768w\" sizes=\"auto, (max-width: 1195px) 100vw, 1195px\" \/><\/p>\n<ul>\n<li>A popup appears \u2014 enter the client&#8217;s M-PESA registered phone number in the format <code class=\"bg-text-200\/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]\">254XXXXXXXXX<\/code> (e.g. 254712345678).<\/li>\n<\/ul>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-140788 size-full\" src=\"https:\/\/docs.daftra.com\/wp-content\/uploads\/2026\/07\/Screenshot-2026-07-21-133421.png\" alt=\"\" width=\"1196\" height=\"630\" srcset=\"https:\/\/docs.daftra.com\/wp-content\/uploads\/2026\/07\/Screenshot-2026-07-21-133421.png 1196w, https:\/\/docs.daftra.com\/wp-content\/uploads\/2026\/07\/Screenshot-2026-07-21-133421-300x158.png 300w, https:\/\/docs.daftra.com\/wp-content\/uploads\/2026\/07\/Screenshot-2026-07-21-133421-1024x539.png 1024w, https:\/\/docs.daftra.com\/wp-content\/uploads\/2026\/07\/Screenshot-2026-07-21-133421-768x405.png 768w\" sizes=\"auto, (max-width: 1196px) 100vw, 1196px\" \/><\/p>\n<blockquote class=\"ml-2 border-l-4 border-[hsl(var(--border-300)\/0.1)] pl-4 text-text-300\" dir=\"auto\">\n<p class=\"font-claude-response-body break-words whitespace-normal\" dir=\"auto\">The phone number must always be entered manually \u2014 no pre-fill from the client record is applied. If the format is incorrect the message appears: <em>&#8220;Please enter a valid M-PESA phone number in the format 254XXXXXXXXX.&#8221;<\/em><\/p>\n<\/blockquote>\n<ol class=\"[li_&amp;]:mb-0 [li_&amp;]:mt-1 [li_&amp;]:gap-1 [&amp;:not(:last-child)_ul]:pb-1 [&amp;:not(:last-child)_ol]:pb-1 list-decimal flex flex-col gap-1 pl-8 mb-3\" dir=\"auto\" start=\"4\">\n<li class=\"font-claude-response-body whitespace-normal break-words pl-2\">Review the instruction on screen: <em>&#8220;You will receive an M-PESA prompt on your phone. Enter your PIN to complete the payment.&#8221;<\/em><\/li>\n<li class=\"font-claude-response-body whitespace-normal break-words pl-2\">Click <strong>&#8220;Submit&#8221;<\/strong> \u2014 the popup closes and the payment request is sent to Safaricom.<\/li>\n<li class=\"font-claude-response-body whitespace-normal break-words pl-2\">A waiting screen appears with a countdown timer and the status <strong>&#8220;Waiting\u2026&#8221;<\/strong> \u2014 keep this screen open.<\/li>\n<li class=\"font-claude-response-body whitespace-normal break-words pl-2\">On the client&#8217;s phone, an STK Push prompt appears \u2014 enter the M-PESA PIN to authorize the payment.<\/li>\n<li class=\"font-claude-response-body whitespace-normal break-words pl-2\">Once Safaricom confirms the payment, the screen redirects to the payment success page displaying the M-PESA receipt number.<\/li>\n<\/ol>\n<p>[\/vc_column_text][vc_custom_heading text=&#8221;Payment Amount&#8221; font_container=&#8221;tag:h2|font_size:28|text_align:center|color:%2304306b|line_height:2&#8243; use_theme_fonts=&#8221;yes&#8221; css=&#8221;.vc_custom_1784630151118{margin-left: 200px !important;background-color: #f6f9fc !important;border-radius: 4px !important;}&#8221;][vc_column_text]<\/p>\n<p class=\"font-claude-response-body break-words whitespace-normal\" dir=\"auto\">The payment amount is automatically set to the full outstanding invoice balance, rounded up to the nearest whole Kenyan Shilling (e.g. KES 1,500.50 is sent as KES 1,501). Partial payments are not supported in the standard flow.<\/p>\n<p dir=\"auto\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-140791 size-full\" src=\"https:\/\/docs.daftra.com\/wp-content\/uploads\/2026\/07\/Screenshot-2026-07-21-134048.png\" alt=\"\" width=\"1199\" height=\"633\" srcset=\"https:\/\/docs.daftra.com\/wp-content\/uploads\/2026\/07\/Screenshot-2026-07-21-134048.png 1199w, https:\/\/docs.daftra.com\/wp-content\/uploads\/2026\/07\/Screenshot-2026-07-21-134048-300x158.png 300w, https:\/\/docs.daftra.com\/wp-content\/uploads\/2026\/07\/Screenshot-2026-07-21-134048-1024x541.png 1024w, https:\/\/docs.daftra.com\/wp-content\/uploads\/2026\/07\/Screenshot-2026-07-21-134048-768x405.png 768w\" sizes=\"auto, (max-width: 1199px) 100vw, 1199px\" \/><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-140793 size-full\" src=\"https:\/\/docs.daftra.com\/wp-content\/uploads\/2026\/07\/Screenshot-2026-07-21-134003.png\" alt=\"\" width=\"1194\" height=\"633\" srcset=\"https:\/\/docs.daftra.com\/wp-content\/uploads\/2026\/07\/Screenshot-2026-07-21-134003.png 1194w, https:\/\/docs.daftra.com\/wp-content\/uploads\/2026\/07\/Screenshot-2026-07-21-134003-300x159.png 300w, https:\/\/docs.daftra.com\/wp-content\/uploads\/2026\/07\/Screenshot-2026-07-21-134003-1024x543.png 1024w, https:\/\/docs.daftra.com\/wp-content\/uploads\/2026\/07\/Screenshot-2026-07-21-134003-768x407.png 768w\" sizes=\"auto, (max-width: 1194px) 100vw, 1194px\" \/><\/p>\n<p>[\/vc_column_text][\/vc_column][\/vc_row][vc_row][vc_column][vc_custom_heading text=&#8221;What Happens After a Successful Payment&#8221; font_container=&#8221;tag:h2|font_size:28|text_align:center|color:%2304306b|line_height:2&#8243; use_theme_fonts=&#8221;yes&#8221; css=&#8221;.vc_custom_1784630839419{margin-left: 200px !important;background-color: #f6f9fc !important;border-radius: 4px !important;}&#8221;][vc_column_text]<\/p>\n<p class=\"font-claude-response-body break-words whitespace-normal\" dir=\"auto\">The invoice status changes to <strong>Paid<\/strong> and a payment record is created containing the M-PESA receipt number, the masked client phone number (e.g. <code class=\"bg-text-200\/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]\">254\u2022\u2022\u2022\u2022\u2022\u2022\u202278<\/code>), the amount paid in KES, the payment timestamp, and the payment method. The payment is visible in the invoice&#8217;s <strong>Payment History<\/strong> tab and an accounting journal entry is created following the same rules as all other payment methods.<\/p>\n<p>[\/vc_column_text][vc_custom_heading text=&#8221;Part 5: If the Payment Does Not Complete&#8221; font_container=&#8221;tag:h2|font_size:28|text_align:center|color:%2304306b|line_height:2&#8243; use_theme_fonts=&#8221;yes&#8221; css=&#8221;.vc_custom_1784630878109{margin-left: 200px !important;background-color: #f6f9fc !important;border-radius: 4px !important;}&#8221;][vc_column_text]<\/p>\n<p class=\"font-claude-response-body break-words whitespace-normal\" dir=\"auto\">The waiting screen remains open while the system checks the payment status. If no confirmation is received within 60 seconds, the system automatically queries Safaricom and the screen updates to <strong>&#8220;Checking\u2026&#8221;<\/strong> \u2014 retrying every 10 seconds for a maximum of 3 retries.<\/p>\n<p class=\"font-claude-response-body break-words whitespace-normal\" dir=\"auto\">For most failure scenarios \u2014 including cancellation, timeout, insufficient funds, an active USSD session on the phone, or a temporarily unavailable service \u2014 a descriptive message appears alongside a <strong>&#8220;Try Again&#8221;<\/strong> button that returns to the phone number entry step.<\/p>\n<p class=\"font-claude-response-body break-words whitespace-normal\" dir=\"auto\">Two scenarios do not offer a retry option: when the PIN has been entered incorrectly too many times (contact Safaricom as directed in the message), and when the payment status cannot be confirmed after all retries are exhausted. In the latter case the invoice remains as <strong>Pending<\/strong> and the message appears: <em>&#8220;We could not confirm your payment status. Please check your M-PESA messages. If the amount was deducted, contact support with your receipt number.&#8221;<\/em> Do not attempt to pay the invoice again before verifying with Safaricom whether the amount was deducted.<\/p>\n<p>[\/vc_column_text][vc_message message_box_style=&#8221;3d&#8221; message_box_color=&#8221;alert-warning&#8221;]<\/p>\n<blockquote>\n<p class=\"text-text-100 mt-2 -mb-1 text-base font-bold\" dir=\"auto\"><strong>Security Notes<\/strong><\/p>\n<ul class=\"[li_&amp;]:mb-0 [li_&amp;]:mt-1 [li_&amp;]:gap-1 [&amp;:not(:last-child)_ul]:pb-1 [&amp;:not(:last-child)_ol]:pb-1 list-disc flex flex-col gap-1 pl-8 mb-3\" dir=\"auto\">\n<li class=\"font-claude-response-body whitespace-normal break-words pl-2\">Sensitive credentials are encrypted in the database and never appear in any logs, API responses, or anywhere on the frontend.<\/li>\n<li class=\"font-claude-response-body whitespace-normal break-words pl-2\">The settings page is restricted to users with the <strong>&#8220;Edit Payment Options&#8221;<\/strong> permission only.<\/li>\n<\/ul>\n<\/blockquote>\n<p>[\/vc_message][\/vc_column][\/vc_row]<\/p>\n<\/section>","protected":false},"author":23,"template":"","categories":[2068],"tags":[8338,10511,10501,10499,10512,10513,10516,10515,10514],"class_list":["post-140774","user_manual","type-user_manual","status-publish","hentry","category-payment-methods","tag-adda-branch","tag-enable-m-pesa","tag-kenya-accounts","tag-m-pesa","tag-passkey","tag-safaricom","tag-sandbox-vs-production","tag-stk-push","tag-update-credentials"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v17.8 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>A Complete Guide to M-PESA Payments - Daftra Knowledge Base<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/docs.daftra.com\/en\/user_manual\/a-complete-guide-to-m-pesa-payments\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"A Complete Guide to M-PESA Payments - Daftra Knowledge Base\" \/>\n<meta property=\"og:description\" content=\"[vc_row][vc_column][vc_column_text] The system allows you to accept M-PESA payments on your invoices directly \u2014 the client receives an STK Push request on their phone, enters their PIN to complete the payment, and the system updates automatically once Safaricom confirms the transaction. This guide covers the complete workflow: from activation and credential setup, through executing a [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/docs.daftra.com\/en\/user_manual\/a-complete-guide-to-m-pesa-payments\/\" \/>\n<meta property=\"og:site_name\" content=\"Daftra Knowledge Base\" \/>\n<meta property=\"article:modified_time\" content=\"2026-08-05T05:59:27+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/docs.daftra.com\/wp-content\/uploads\/2026\/07\/Screenshot-2026-07-21-124658.png\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebSite\",\"@id\":\"https:\/\/docs.daftra.com\/#website\",\"url\":\"https:\/\/docs.daftra.com\/\",\"name\":\"Daftra Knowledge Base\",\"description\":\"Daftra\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/docs.daftra.com\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/docs.daftra.com\/en\/user_manual\/a-complete-guide-to-m-pesa-payments\/#primaryimage\",\"inLanguage\":\"en-US\",\"url\":\"https:\/\/docs.daftra.com\/wp-content\/uploads\/2026\/07\/Screenshot-2026-07-21-124658.png\",\"contentUrl\":\"https:\/\/docs.daftra.com\/wp-content\/uploads\/2026\/07\/Screenshot-2026-07-21-124658.png\",\"width\":1366,\"height\":632},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/docs.daftra.com\/en\/user_manual\/a-complete-guide-to-m-pesa-payments\/#webpage\",\"url\":\"https:\/\/docs.daftra.com\/en\/user_manual\/a-complete-guide-to-m-pesa-payments\/\",\"name\":\"A Complete Guide to M-PESA Payments - Daftra Knowledge Base\",\"isPartOf\":{\"@id\":\"https:\/\/docs.daftra.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/docs.daftra.com\/en\/user_manual\/a-complete-guide-to-m-pesa-payments\/#primaryimage\"},\"datePublished\":\"2026-08-04T06:45:10+00:00\",\"dateModified\":\"2026-08-05T05:59:27+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/docs.daftra.com\/en\/user_manual\/a-complete-guide-to-m-pesa-payments\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/docs.daftra.com\/en\/user_manual\/a-complete-guide-to-m-pesa-payments\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/docs.daftra.com\/en\/user_manual\/a-complete-guide-to-m-pesa-payments\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/docs.daftra.com\/en\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"A Complete Guide to M-PESA Payments\"}]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"A Complete Guide to M-PESA Payments - Daftra Knowledge Base","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/docs.daftra.com\/en\/user_manual\/a-complete-guide-to-m-pesa-payments\/","og_locale":"en_US","og_type":"article","og_title":"A Complete Guide to M-PESA Payments - Daftra Knowledge Base","og_description":"[vc_row][vc_column][vc_column_text] The system allows you to accept M-PESA payments on your invoices directly \u2014 the client receives an STK Push request on their phone, enters their PIN to complete the payment, and the system updates automatically once Safaricom confirms the transaction. This guide covers the complete workflow: from activation and credential setup, through executing a [&hellip;]","og_url":"https:\/\/docs.daftra.com\/en\/user_manual\/a-complete-guide-to-m-pesa-payments\/","og_site_name":"Daftra Knowledge Base","article_modified_time":"2026-08-05T05:59:27+00:00","og_image":[{"url":"https:\/\/docs.daftra.com\/wp-content\/uploads\/2026\/07\/Screenshot-2026-07-21-124658.png"}],"twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebSite","@id":"https:\/\/docs.daftra.com\/#website","url":"https:\/\/docs.daftra.com\/","name":"Daftra Knowledge Base","description":"Daftra","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/docs.daftra.com\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"ImageObject","@id":"https:\/\/docs.daftra.com\/en\/user_manual\/a-complete-guide-to-m-pesa-payments\/#primaryimage","inLanguage":"en-US","url":"https:\/\/docs.daftra.com\/wp-content\/uploads\/2026\/07\/Screenshot-2026-07-21-124658.png","contentUrl":"https:\/\/docs.daftra.com\/wp-content\/uploads\/2026\/07\/Screenshot-2026-07-21-124658.png","width":1366,"height":632},{"@type":"WebPage","@id":"https:\/\/docs.daftra.com\/en\/user_manual\/a-complete-guide-to-m-pesa-payments\/#webpage","url":"https:\/\/docs.daftra.com\/en\/user_manual\/a-complete-guide-to-m-pesa-payments\/","name":"A Complete Guide to M-PESA Payments - Daftra Knowledge Base","isPartOf":{"@id":"https:\/\/docs.daftra.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/docs.daftra.com\/en\/user_manual\/a-complete-guide-to-m-pesa-payments\/#primaryimage"},"datePublished":"2026-08-04T06:45:10+00:00","dateModified":"2026-08-05T05:59:27+00:00","breadcrumb":{"@id":"https:\/\/docs.daftra.com\/en\/user_manual\/a-complete-guide-to-m-pesa-payments\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/docs.daftra.com\/en\/user_manual\/a-complete-guide-to-m-pesa-payments\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/docs.daftra.com\/en\/user_manual\/a-complete-guide-to-m-pesa-payments\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/docs.daftra.com\/en\/"},{"@type":"ListItem","position":2,"name":"A Complete Guide to M-PESA Payments"}]}]}},"_links":{"self":[{"href":"https:\/\/docs.daftra.com\/en\/wp-json\/wp\/v2\/user_manual\/140774","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/docs.daftra.com\/en\/wp-json\/wp\/v2\/user_manual"}],"about":[{"href":"https:\/\/docs.daftra.com\/en\/wp-json\/wp\/v2\/types\/user_manual"}],"author":[{"embeddable":true,"href":"https:\/\/docs.daftra.com\/en\/wp-json\/wp\/v2\/users\/23"}],"version-history":[{"count":7,"href":"https:\/\/docs.daftra.com\/en\/wp-json\/wp\/v2\/user_manual\/140774\/revisions"}],"predecessor-version":[{"id":141380,"href":"https:\/\/docs.daftra.com\/en\/wp-json\/wp\/v2\/user_manual\/140774\/revisions\/141380"}],"wp:attachment":[{"href":"https:\/\/docs.daftra.com\/en\/wp-json\/wp\/v2\/media?parent=140774"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/docs.daftra.com\/en\/wp-json\/wp\/v2\/categories?post=140774"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/docs.daftra.com\/en\/wp-json\/wp\/v2\/tags?post=140774"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}