{"id":19759,"date":"2025-01-31T13:16:52","date_gmt":"2025-01-31T12:16:52","guid":{"rendered":"https:\/\/monta.com\/en\/?p=19759"},"modified":"2025-05-07T10:31:26","modified_gmt":"2025-05-07T09:31:26","slug":"ev-payment-terminals-where-we-stand-2025","status":"publish","type":"post","link":"https:\/\/monta.com\/en\/blog\/ev-payment-terminals-where-we-stand-2025\/","title":{"rendered":"EV Payment Terminals: Where we stand in 2025"},"content":{"rendered":"<figure class=\"wp-block-post-featured-image\"><img loading=\"lazy\" decoding=\"async\" width=\"2400\" height=\"1260\" src=\"https:\/\/monta.com\/app\/uploads\/sites\/12\/2025\/01\/EVPaymentTerminals_BlogPost-1.png\" class=\"attachment-post-thumbnail size-post-thumbnail wp-post-image\" alt=\"\" style=\"object-fit:cover;\" srcset=\"https:\/\/monta.com\/app\/uploads\/sites\/12\/2025\/01\/EVPaymentTerminals_BlogPost-1.png 2400w, https:\/\/monta.com\/app\/uploads\/sites\/12\/2025\/01\/EVPaymentTerminals_BlogPost-1-300x158.png 300w, https:\/\/monta.com\/app\/uploads\/sites\/12\/2025\/01\/EVPaymentTerminals_BlogPost-1-1024x538.png 1024w, https:\/\/monta.com\/app\/uploads\/sites\/12\/2025\/01\/EVPaymentTerminals_BlogPost-1-150x79.png 150w, https:\/\/monta.com\/app\/uploads\/sites\/12\/2025\/01\/EVPaymentTerminals_BlogPost-1-768x403.png 768w, https:\/\/monta.com\/app\/uploads\/sites\/12\/2025\/01\/EVPaymentTerminals_BlogPost-1-1536x806.png 1536w, https:\/\/monta.com\/app\/uploads\/sites\/12\/2025\/01\/EVPaymentTerminals_BlogPost-1-2048x1075.png 2048w\" sizes=\"auto, (max-width: 2400px) 100vw, 2400px\" title=\"\"><\/figure>\n\n\n<p>EV charging payments are meant to be simple, but in reality, they&#8217;re far from it. The industry is still tangled in fragmented integrations, conflicting standards, and clunky systems that slow everything down and hinder the user experience.&nbsp;<\/p>\n\n\n\n<p>To bring clarity to this complexity, we categorize payment terminal integrations into <strong>four key approaches<\/strong>:&nbsp;<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Local integration<\/strong><\/li>\n\n\n\n<li><strong>Local integration with California pricing<\/strong><\/li>\n\n\n\n<li><strong>CPMS integrates via terminal cloud API<\/strong><\/li>\n\n\n\n<li><strong>Terminal\/Merchant provider integrates via CPMS API<\/strong><\/li>\n<\/ul>\n\n\n\n<p>Choosing the right solution starts with understanding the options. Let\u2019s break down how each one works\u2014and where the challenges lie.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">1. Local Integration (The Old Way)<\/h2>\n\n\n\n<p>This is the original method, where the hardware (HW) model dictates the integration to control the payment terminal, limiting the ability to accept payment flexibility. If you switch to a different hardware provider, you may also need to swap out your payment terminal.<\/p>\n\n\n\n<p><strong>Challenges:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>All logic sits between the charger and terminal, making debugging and logging difficult.<\/li>\n\n\n\n<li>Limited configuration, typically managed within <a href=\"\/en\/glossary\/open-charge-point-protocol-ocpp\/\">OCPP<\/a>.<\/li>\n\n\n\n<li>Receipts are often clunky or non-existent.<\/li>\n\n\n\n<li>VAT\/sales tax settings are very restrictive.<\/li>\n\n\n\n<li>Funds are processed through a different PSP than e-commerce and roaming transactions.<\/li>\n\n\n\n<li>Not kiosk-compatible\u2014one terminal per charger is required.<\/li>\n\n\n\n<li>Pricing is maintained in several places and often requires a charger reboot.<\/li>\n<\/ul>\n\n\n\n<p>The good news is that more settings are being added, and if we can map the transaction started from the terminal, it\u2019s actually possible to enhance the experience further.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>New settings provide options to:<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Reconcile revenue into Monta wallets<\/li>\n\n\n\n<li>Use Monta\u2019s receipt system&nbsp;<\/li>\n\n\n\n<li>In theory, update the OCPP settings automatically via <a href=\"https:\/\/monta.com\/en\/\">CPMS<\/a>, and thereby align the pricing<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">2. Local Integration with California pricing<\/h2>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>California Pricing Enhancement (Option 2)<\/strong><\/h4>\n\n\n\n<p>This is an extension of the first approach, but it fixes a few of the issues.<\/p>\n\n\n\n<p>Originally, <a href=\"https:\/\/openchargealliance.org\/wp-content\/uploads\/2024\/03\/ocpp_and_dms_evse_regulation-v3.0.pdf\" target=\"_blank\" rel=\"noopener\">California pricing<\/a> allowed CPMS to send pricing information to the charger for display. Over time, this was repurposed to enhance local payment terminal integration by directly syncing pricing and using the CPMS-calculated price for the transaction. Smart!<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Benefits:<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>No need to maintain pricing separately in multiple systems.<\/li>\n\n\n\n<li>Supports dynamic pricing and idle fees.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Challenges:<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Logic is now between all three parties (the HW manufacturer, the CPMS, and terminal) meaning debugging is much harder<\/li>\n\n\n\n<li>Can only pass simple things like kWh price and accumulated price.<\/li>\n\n\n\n<li>Very few providers support this feature today<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">3: CPMS Integrates via Terminal Cloud API (Our Favorite)<\/h2>\n\n\n\n<p>This method gives full backend control to CPMS, enabling:<br>\u2705 <strong>Kiosk mode<\/strong> (one terminal for multiple chargers)<br>\u2705 <strong>Configurable UI<\/strong><br>\u2705 <strong>Unified receipt system<\/strong><strong><br><\/strong>\u2705 <strong>Seamless pricing integration<\/strong><strong><br><\/strong>\u2705 <strong>Real-time revenue reconciliation across apps, roaming, and terminals<\/strong><\/p>\n\n\n\n<p>However, it comes with a <strong>major challenge<\/strong>\u2014<strong>complex integrations<\/strong>. We\u2019ve completed integrations with <strong><a href=\"\/en\/features\/payter\/\">Payter &amp; CPI<\/a><\/strong> and are now working on <strong>Nayax<\/strong>. Each provider has a unique approach, adding to the complexity.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">4: Terminal\/Merchant Provider Integrates via CPMS API<\/h2>\n\n\n\n<p>This is the easiest approach for us because the heavy lifting sits with the terminal provider. However, it also <strong>outsources control<\/strong>, leading to issues:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Integration &amp; API robustness&nbsp;<\/li>\n\n\n\n<li>Reconciliation between two systems<\/li>\n\n\n\n<li>Some providers operate as consultants, billing by the hour and passing costs onto the operators<\/li>\n<\/ul>\n\n\n\n<p>We\u2019ve done a handful of these. It might be quick to get started, but getting it robust is harder.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">So, is 2025 worse than ever?<\/h2>\n\n\n\n<p>Yes, and it\u2019s not looking to be fixed in 2025, either.<\/p>\n\n\n\n<p>OCPI introduced <a href=\"https:\/\/evroaming.org\/wp-content\/uploads\/2024\/11\/OCPI-2.2.1-d2.pdf\" target=\"_blank\" rel=\"noopener\">payment support in version 2.2.1<\/a>, but it&#8217;s unclear if this fully resolves the issue\u2014our last OCPI payment integration still required a custom event and a custom filter.&nbsp;<\/p>\n\n\n\n<p>OCPP is adding support in 2.1, with plans to backport it, but this seems more like a standardization of option 2, and it&#8217;s still years away.<\/p>\n\n\n\n<p>The takeaway? The industry\u2019s payment chaos isn\u2019t getting fixed overnight, but you don\u2019t have to wait. By choosing flexible, cloud-based integrations today, you can bypass the outdated infrastructure and avoid the costs and complexity of traditional setups.<\/p>\n\n\n\n<p><a href=\"\/en\/contact-sales\/\">Get in contact with us<\/a> to learn more about the future of EV payments.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>EV charging payments are meant to be simple, but in reality, they&#8217;re far from it. The industry is still tangled in fragmented integrations, conflicting standards, and clunky systems that slow everything down and hinder the user experience.\u00a0<\/p>\n","protected":false},"author":64,"featured_media":20504,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[364],"tags":[540,417,457],"article_tags":[],"class_list":["post-19759","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-charge-point-management","tag-charge-point-operators","tag-monta-hub","tag-solution-providers"],"acf":[],"featured_media_global":[],"_links":{"self":[{"href":"https:\/\/monta.com\/en\/wp-json\/wp\/v2\/posts\/19759","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/monta.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/monta.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/monta.com\/en\/wp-json\/wp\/v2\/users\/64"}],"replies":[{"embeddable":true,"href":"https:\/\/monta.com\/en\/wp-json\/wp\/v2\/comments?post=19759"}],"version-history":[{"count":5,"href":"https:\/\/monta.com\/en\/wp-json\/wp\/v2\/posts\/19759\/revisions"}],"predecessor-version":[{"id":19869,"href":"https:\/\/monta.com\/en\/wp-json\/wp\/v2\/posts\/19759\/revisions\/19869"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/monta.com\/en\/wp-json\/wp\/v2\/media\/20504"}],"wp:attachment":[{"href":"https:\/\/monta.com\/en\/wp-json\/wp\/v2\/media?parent=19759"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/monta.com\/en\/wp-json\/wp\/v2\/categories?post=19759"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/monta.com\/en\/wp-json\/wp\/v2\/tags?post=19759"},{"taxonomy":"article_tags","embeddable":true,"href":"https:\/\/monta.com\/en\/wp-json\/wp\/v2\/article_tags?post=19759"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}