{"id":29427,"date":"2026-06-03T11:32:44","date_gmt":"2026-06-03T10:32:44","guid":{"rendered":"https:\/\/monta.com\/en\/?page_id=29427"},"modified":"2026-06-03T11:32:49","modified_gmt":"2026-06-03T10:32:49","slug":"api-native-ev-charging-infrastructure","status":"publish","type":"page","link":"https:\/\/monta.com\/en\/api-native-ev-charging-infrastructure\/","title":{"rendered":"API-Native EV Charging Infrastructure"},"content":{"rendered":"<section aria-label=\"Add the API-native infrastructure your stack is missing\" class=\"bg-black text-white  rounded-section\">\n            <div class=\"pill-label mb-8 border-white text-white\">\n            Integrations        <\/div>\n        <div class=\"grid md:grid-cols-2 grid-cols-1 gap-24\">\n        \n        <div>\n                            <h1 class=\"h1 mb-10\">\n                    Add the API-native infrastructure your stack is missing                <\/h1>\n                        <ul>\n<li>Build solutions for every charging use case<\/li>\n<li>Maximise the impact of your strategy with API-native infrastructure<\/li>\n<li>Maintain full control of your charging data, sessions, users, transactions, vehicles<\/li>\n<li>Take only the endpoints you need and integrate into your existing ERP, CRM, fleet and identity systems<\/li>\n<\/ul>\n<div class=\"flex \">\n<a href=\"https:\/\/monta.com\/en\/contact-sales\/\" class=\"btn-primary-blue mt-8\" target=\"_blank\" rel=\"noopener\">Book a demo<\/a><br \/>\n<a href=\"https:\/\/docs.partner-api.monta.com\/\" class=\"btn-outline-white mt-8 ml-0 md:ml-4\" target=\"_blank\" rel=\"noopener\">Read the API docs<\/a>\n<\/div>\n\n        <\/div>\n        <div>\n            <div class=\"console\" aria-hidden=\"true\">\n<div class=\"console-bar\">\n        <span class=\"dots\"><i><\/i><i><\/i><i><\/i><\/span><br \/>\n        <span class=\"console-url\">api.monta.com \/ v2024-07-01<\/span><br \/>\n        <span class=\"console-status\">200 OK<\/span>\n      <\/div>\n<div class=\"console-body\">\n<div class=\"req-line\">\n          <span class=\"method method--get\">GET<\/span><br \/>\n          <span class=\"path\">\/charge-points\/<span class=\"path-id\">8842<\/span><\/span>\n        <\/div>\n<pre class=\"console-json\">{\r\n  <span class=\"k\">\"id\"<\/span>: <span class=\"n\">8842<\/span>,\r\n  <span class=\"k\">\"site_id\"<\/span>: <span class=\"n\">412<\/span>,\r\n  <span class=\"k\">\"protocol\"<\/span>: <span class=\"s\">\"OCPP 2.0.1\"<\/span>,\r\n  <span class=\"k\">\"vendor\"<\/span>: <span class=\"s\">\"Alfen\"<\/span>,\r\n  <span class=\"k\">\"model\"<\/span>: <span class=\"s\">\"Eve Single Pro-line\"<\/span>,\r\n  <span class=\"k\">\"power_kw\"<\/span>: <span class=\"n\">22<\/span>,\r\n  <span class=\"k\">\"status\"<\/span>: <span class=\"s\">\"available\"<\/span>,\r\n  <span class=\"k\">\"connectors\"<\/span>: [\r\n    { <span class=\"k\">\"id\"<\/span>: <span class=\"n\">1<\/span>, <span class=\"k\">\"type\"<\/span>: <span class=\"s\">\"Type 2\"<\/span> }\r\n  ],\r\n  <span class=\"k\">\"team_id\"<\/span>: <span class=\"n\">39<\/span>\r\n}<\/pre>\n<div class=\"console-foot\">\n          <span class=\"pill\">Auth<\/span><br \/>\n          <span>OAuth 2.0 \u00b7 client_credentials<\/span><br \/>\n          <span class=\"hero-meta-sep\">\u00b7<\/span><br \/>\n          <span>~120ms<\/span>\n        <\/div>\n<\/p><\/div>\n<\/p><\/div>\n\n        <\/div>\n    <\/div>\n<\/section>\n\n<section  aria-labelledby=\"numberslider-heading-block_e4fc01d43def7dc3b3bc36455be1b4ab\"  class=\"text-white bg-primary-blue  rounded-section number-slider !pr-0 md:!pr-10\">\n    <div class=\"\">\n                    <div class=\"grid grid-cols-1 md:grid-cols-12 md:mb-31 mb-10\">\n                 <h2  id=\"numberslider-heading-block_e4fc01d43def7dc3b3bc36455be1b4ab\" class=\"h2 md:col-span-6 mb-7 md:mb-0\">Production-grade infrastructure, battle-tested at scale  <\/h2>                 <div class=\"rich-text intro md:col-start-8 md:col-span-5\">\n                    \n                <\/div>\n            <\/div>\n                        <number-slider data-slides='[{\"illustration\":false,\"number\":\"238\",\"number_label\":\"API endpoints\",\"number_description\":\"Across charge points, billing, wallets, and user management\"},{\"illustration\":false,\"number\":\"99.99%\",\"number_label\":\"Uptime SLA\",\"number_description\":\"Production-grade reliability\"},{\"illustration\":false,\"number\":\"7M+\",\"number_label\":\"Daily API requests\",\"number_description\":\"Live API traffic in production\"},{\"illustration\":false,\"number\":\"3B+\",\"number_label\":\"Total API traffic\",\"number_description\":\"Battle-tested at scale\"},{\"illustration\":false,\"number\":\"200+\",\"number_label\":\"Operators integrated\",\"number_description\":\"Live integrations across the platform\"},{\"illustration\":false,\"number\":\"170+\",\"number_label\":\"Hardware brands supported\",\"number_description\":\"Multi-vendor compatibility\"}]' bg=\"primary-blue\">\n        \n        <\/number-slider>\n    <\/div>\n<\/section>\n\n<section  aria-label=\"Easily integrate reliable infrastructure into your existing stack.\" class=\"bg-transparent text-charcoal pb-0 pt-0 rounded-section\" >\n    <div class=\"grid grid-cols-1 md:grid-cols-12 gap-12 items-center\">\n                <div class=\"md:col-span-6 hidden md:block\">\n                                        <lottie-player src=\"https:\/\/monta.com\/app\/uploads\/sites\/12\/2026\/06\/ExtensibilityStack_Monta.json\" background=\"transparent\" speed=\"1\"\n                    style=\"width: 100%; height: auto\" loop autoplay mode=\"normal\">\n                <\/lottie-player>\n                                <\/div>\n                <div class=\"md:col-span-5 md:col-start-8\">\n                                                                <h2 class=\"h2 mb-10 \">\n                    Easily integrate reliable infrastructure into your existing stack.                <\/h2>\n                                                <div class=\"md:hidden block mb-10 \">\n                                                    <lottie-player src=\"https:\/\/monta.com\/app\/uploads\/sites\/12\/2026\/06\/ExtensibilityStack_Monta.json\" background=\"transparent\" speed=\"1\"\n                        style=\"width: 100%; height: auto; margin-bottom: 24px;\" loop autoplay mode=\"normal\">\n                                            <\/div>\n                        <div class=\"rich-text \">\n                <p>Connect Monta&#8217;s proven CPMS directly to your existing ERP, CRM, fleet, and identity systems, without rebuilding what already works. Full OCPP 1.6 and 2.0.1 support, 100% use case coverage, and versioned releases mean your architects can spend less time integrating and more time innovating. Our API puts charging in every system that needs it.<\/p>\n\n            <\/div>\n                                                        <\/div>\n            <\/div>\n<\/section>\n\n\n\n<section  aria-label=\"Build exactly what you need\"  class=\"  \">\n        <div class=\"md:grid md:grid-cols-12 mb-12\">\n        <div class=\"col-span-5\">\n             <h2>  Build exactly what you need  <\/h2>         <\/div>\n        <div class=\"rich-text col-start-8 col-span-5 intro\">\n            Monta&#8217;s extensible infrastructure gives you the full control to build the charging services that you need. Own your data, your brand, and your customer experience end to end.\r\n\r\n\n        <\/div>\n    <\/div>\n\n    \n    <div class=\"md:grid md:grid-cols-2 gap-6\">\n                                <div class=\"md:grid md:grid-cols-1 mb-6 md:mb-0 gap-6 md:p-10 px-4 -mx-4 md:-mx-0 py-6 h-full bg-grey text-charcoal rounded-xl\">\n                                <div class=\"col-span-1 flex flex-col\">\n                                            <div class=\"mb-6\"><span class=\"pill-label\">Solution providers \u00b7 Einride<\/span><\/div>\n                                        <h3 class=\"mb-3 md:mb-8\">Fleet logistics built on a Go SDK<\/h3>\n                    <div class=\"flex-1 mb-3 md:mb-8\">\n                        <p>Fleet charging at enterprise scale. Scheduling driven by logistics data, not a dashboard. Einride built and maintains an open-source Go SDK on Monta&#8217;s API. Their logistics systems schedule charges, control charge point availability, and manage billing through the API.\n<\/p><\/div>\n<div>\n<div class=\"border-faded-grey-horizontal border-t-1 border-b-0 mt-4 mb-4\"><\/div>\n<div class=\"inline-flex gap-2 items-center\">\n<span class=\"bg-primary-blue rounded-full w-2 h-2\"><\/span>github.com\/einride\/monta-go<\/div>\n\n                    <\/div>\n                                    <\/div>\n            <\/div>\n                                        <div class=\"md:grid md:grid-cols-1 mb-6 md:mb-0 gap-6 md:p-10 px-4 -mx-4 md:-mx-0 py-6 h-full bg-grey text-charcoal rounded-xl\">\n                                <div class=\"col-span-1 flex flex-col\">\n                                            <div class=\"mb-6\"><span class=\"pill-label\">Energy utilities \u00b7 M\u00f6lndal Energi<\/span><\/div>\n                                        <h3 class=\"mb-3 md:mb-8\">Bespoke e-invoicing automated<\/h3>\n                    <div class=\"flex-1 \">\n                        <p>M\u00f6lndal Energi used Monta&#8217;s API to automate e-invoicing for customers with bespoke contractual billing requirements. Each customer&#8217;s billing runs on different terms, formats, and schedules. Monta&#8217;s API handles the data extraction, and M\u00f6lndal&#8217;s billing system handles the rest.\n<\/p><\/div>\n<div>\n<div class=\"border-faded-grey-horizontal border-t-1 border-b-0 mt-4 mb-4\"><\/div>\n<div class=\"inline-flex gap-2 items-center\">\n<span class=\"bg-primary-blue rounded-full w-2 h-2\"><\/span>10% MoM session growth<\/div>\n\n                    <\/div>\n                                    <\/div>\n            <\/div>\n                                        <div class=\"md:grid md:grid-cols-1 mb-6 md:mb-0 gap-6 md:p-10 px-4 -mx-4 md:-mx-0 py-6 h-full bg-grey text-charcoal rounded-xl\">\n                                <div class=\"col-span-1 flex flex-col\">\n                                            <div class=\"mb-6\"><span class=\"pill-label\">Enterprise migration patterns<\/span><\/div>\n                                        <h3 class=\"mb-3 md:mb-8\">Lift CPMS-equivalent services into Monta.<\/h3>\n                    <div class=\"flex-1 \">\n                        <p>Operators who&#8217;ve already built ticketing, billing, dispatch, or pricing in their own landscape integrate Monta as the charge-point layer underneath. Their proprietary services keep running. Monta handles charge points, sessions, roaming, and the rest stays where it is.\n<\/p><\/div>\n<div>\n<div class=\"border-faded-grey-horizontal border-t-1 border-b-0 mt-4 mb-4\"><\/div>\n<div class=\"inline-flex gap-2 items-center\">\n<span class=\"bg-primary-blue rounded-full w-2 h-2\"><\/span>Common pattern in utility and network operator RFPs.<\/div>\n\n                    <\/div>\n                                    <\/div>\n            <\/div>\n                                        <div class=\"md:grid md:grid-cols-1 mb-6 md:mb-0 gap-6 md:p-10 px-4 -mx-4 md:-mx-0 py-6 h-full bg-grey text-charcoal rounded-xl\">\n                                <div class=\"col-span-1 flex flex-col\">\n                                            <div class=\"mb-6\"><span class=\"pill-label\">Energy markets &#038; DSOs<\/span><\/div>\n                                        <h3 class=\"mb-3 md:mb-8\">Grid services, spot pricing, and DR signals<\/h3>\n                    <div class=\"flex-1 \">\n                        <p>Push billing data to ERP and invoicing systems. Pull spot pricing from Nordpool. Participate in UK grid services via GridBeyond. Translate OpenADR 2.0b demand response signals directly into charging behaviour.\n<\/p><\/div>\n<div>\n<div class=\"border-faded-grey-horizontal border-t-1 border-b-0 mt-4 mb-4\"><\/div>\n<div class=\"inline-flex gap-2 items-center\">\n<span class=\"bg-primary-blue rounded-full w-2 h-2\"><\/span>OpenADR 2.0b certified. 2,000 EVs in UK SFFR programme.<\/div>\n\n                    <\/div>\n                                    <\/div>\n            <\/div>\n                <\/div>\n\n    \n    \n<\/section>\n\n\n<section aria-label=\"Safer, faster, production-ready AI deployment.\" class=\"bg-black text-white  rounded-section\">\n    <div class=\"max-w-4xl mx-auto text-center\">\n                                    <h2 class=\"h2 mb-10 \">\n                Safer, faster, production-ready AI deployment.            <\/h2>\n                                <div class=\"text-lg mb-10 \">\n            <p>Monta&#8217;s MCP and CLI give your team direct access to structured, normalised charging data, with endless possibilities to manipulate data to suit your requirements in real time. Build, test, and ship AI features on a proven foundation without writing a single custom pipeline.\n<\/p><\/div>\n<div>\n<div style=\"display: grid; grid-template-columns: repeat(3, 1fr); gap-x: 48px; max-width: 1100px;\">\n<div>\n<div style=\"font-family: var(--font-display); font-weight: 500; font-size: 22px; color: #fff; margin-bottom: 10px;\">MCP<\/div>\n<p style=\"font-size: 16px; line-height: 1.5; color: rgba(255,255,255,0.78); margin: 0;\">Talk to Monta from any LLM. Every endpoint, every operation, on tap.<\/p>\n<\/p><\/div>\n<div>\n<div style=\"font-family: var(--font-display); font-weight: 500; font-size: 22px; color: #fff; margin-bottom: 10px;\">CLI<\/div>\n<p style=\"font-size: 16px; line-height: 1.5; color: rgba(255,255,255,0.78); margin: 0;\">Drive Monta from the terminal, the pipeline, the cron. Same auth, same surface.<\/p>\n<\/p><\/div>\n<div>\n<div style=\"font-family: var(--font-display); font-weight: 500; font-size: 22px; color: #fff; margin-bottom: 10px;\">Agents<\/div>\n<p style=\"font-size: 16px; line-height: 1.5; color: rgba(255,255,255,0.78); margin: 0;\">Build the agents that serve your customers. Monta gives them 100% of the API to call.<\/p>\n<\/p><\/div>\n<\/p><\/div>\n        <\/div>\n                    <\/div>\n<\/section>\n\n<section  aria-label=\"What you can integrate with\"  class=\"  \">\n            <div class=\"mb-8\">\n            <span class=\"pill-label\">How Monta connects<\/span>\n        <\/div>\n        <div class=\"md:grid md:grid-cols-12 mb-12\">\n        <div class=\"col-span-5\">\n             <h2>  What you can integrate with  <\/h2>         <\/div>\n        <div class=\"rich-text col-start-8 col-span-5 intro\">\n            \n        <\/div>\n    <\/div>\n\n    \n    <div class=\"hidden md:grid md:grid-cols-3 gap-6\">\n                                <div class=\"md:grid md:grid-cols-1 mb-6 md:mb-0 gap-6 md:p-10 px-4 -mx-4 md:-mx-0 py-6 h-full bg-grey text-charcoal rounded-xl\">\n                                <div class=\"col-span-1 flex flex-col\">\n                                        <h3 class=\"mb-3 md:mb-8\">Partner API<\/h3>\n                    <div class=\"flex-1 \">\n                        <p>238 endpoints across charge points, billing, wallets, users, and webhooks. REST and OAuth 2.0, compatible with any modern integration stack. Your developers build on top; your data flows where you need it.\n<\/p><\/div>\n<div>\n<div class=\"border-faded-grey-horizontal border-t-1 border-b-0 mt-4 mb-4\"><\/div>\n<div class=\"font-mono text-sm mb-1\"><span class=\"text-primary-blue mr-2\">GET<\/span>\/charge-points<\/div>\n<div class=\"font-mono text-sm mb-1\"><span class=\"text-primary-blue mr-2\">POST<\/span>\/charges<\/div>\n<div class=\"font-mono text-sm mb-1\"><span class=\"text-primary-blue mr-2\">GET<\/span>\/wallets<\/div>\n\n                    <\/div>\n                                    <\/div>\n            <\/div>\n                                        <div class=\"md:grid md:grid-cols-1 mb-6 md:mb-0 gap-6 md:p-10 px-4 -mx-4 md:-mx-0 py-6 h-full bg-grey text-charcoal rounded-xl\">\n                                <div class=\"col-span-1 flex flex-col\">\n                                        <h3 class=\"mb-3 md:mb-8\">Payments<\/h3>\n                    <div class=\"flex-1 \">\n                        <p>Plug into the payment stack you already use. Three payment rails (Stripe, Adyen, Wise), three terminal providers (Payter, CPI, Nayax), and the price group, tariff, and invoicing primitives to assemble the commercial model your business actually runs.\n<\/p><\/div>\n<div>\n<div class=\"border-faded-grey-horizontal border-t-1 border-b-0 mt-4 mb-4\"><\/div>\n<div class=\"font-mono text-sm mb-1\"><span class=\"text-primary-blue mr-2\">GET<\/span>\/invoices<\/div>\n<div class=\"font-mono text-sm mb-1\"><span class=\"text-primary-blue mr-2\">GET<\/span>\/tariffs<\/div>\n<div class=\"font-mono text-sm mb-1\"><span class=\"text-primary-blue mr-2\">POST<\/span>\/price-groups<\/div>\n\n                    <\/div>\n                                    <\/div>\n            <\/div>\n                                        <div class=\"md:grid md:grid-cols-1 mb-6 md:mb-0 gap-6 md:p-10 px-4 -mx-4 md:-mx-0 py-6 h-full bg-grey text-charcoal rounded-xl\">\n                                <div class=\"col-span-1 flex flex-col\">\n                                        <h3 class=\"mb-3 md:mb-8\">Roaming<\/h3>\n                    <div class=\"flex-1 \">\n                        <p>500,000+ roamable charge points across Hubject (OICP, 24-hour sync), Gireve (OCPI, instant), and Emobi (120,000+ in North America). Bilateral OCPI agreements available through Monta Hub.\n<\/p><\/div>\n<div>\n<div class=\"border-faded-grey-horizontal border-t-1 border-b-0 mt-4 mb-4\"><\/div>\n<div class=\"font-mono text-sm mb-1\"><span class=\"text-primary-blue mr-2\">OCPI<\/span>locations \/ tokens<\/div>\n<div class=\"font-mono text-sm mb-1\"><span class=\"text-primary-blue mr-2\">OICP<\/span>via Hubject<\/div>\n<div class=\"font-mono text-sm mb-1\"><span class=\"text-primary-blue mr-2\">GET<\/span>\/roaming-stats<\/div>\n\n                    <\/div>\n                                    <\/div>\n            <\/div>\n                                        <div class=\"md:grid md:grid-cols-1 mb-6 md:mb-0 gap-6 md:p-10 px-4 -mx-4 md:-mx-0 py-6 h-full bg-grey text-charcoal rounded-xl\">\n                                <div class=\"col-span-1 flex flex-col\">\n                                        <h3 class=\"mb-3 md:mb-8\">Energy &#038; Grid<\/h3>\n                    <div class=\"flex-1 \">\n                        <p>Real-time vehicle telemetry via Enode. Carbon-aware charging via Electricity Maps. Grid services via GridBeyond. Spot pricing from Nordpool and SEMO-PX at 15-minute intervals.\n<\/p><\/div>\n<div>\n<div class=\"border-faded-grey-horizontal border-t-1 border-b-0 mt-4 mb-4\"><\/div>\n<div class=\"font-mono text-sm mb-1\"><span class=\"text-primary-blue mr-2\">GET<\/span>\/vehicles\/{id}<\/div>\n<div class=\"font-mono text-sm mb-1\"><span class=\"text-primary-blue mr-2\">GET<\/span>\/grid-events<\/div>\n<div class=\"font-mono text-sm mb-1\"><span class=\"text-primary-blue mr-2\">POST<\/span>\/smart-charge<\/div>\n\n                    <\/div>\n                                    <\/div>\n            <\/div>\n                                        <div class=\"md:grid md:grid-cols-1 mb-6 md:mb-0 gap-6 md:p-10 px-4 -mx-4 md:-mx-0 py-6 h-full bg-grey text-charcoal rounded-xl\">\n                                <div class=\"col-span-1 flex flex-col\">\n                                        <h3 class=\"mb-3 md:mb-8\">Webhooks<\/h3>\n                    <div class=\"flex-1 \">\n                        <p>14 event types covering charge transactions, OCPP messages, sites, teams, wallet transactions, and more. Push-based delivery, retries on failure, signed payloads.\n<\/p><\/div>\n<div>\n<div class=\"border-faded-grey-horizontal border-t-1 border-b-0 mt-4 mb-4\"><\/div>\n<div class=\"font-mono text-sm mb-1\"><span class=\"text-primary-blue mr-2\">EVT<\/span>charge_transaction.completed<\/div>\n<div class=\"font-mono text-sm mb-1\"><span class=\"text-primary-blue mr-2\">EVT<\/span>wallet_transaction.created<\/div>\n<div class=\"font-mono text-sm mb-1\"><span class=\"text-primary-blue mr-2\">EVT<\/span>charge_point.status_changed<\/div>\n\n                    <\/div>\n                                    <\/div>\n            <\/div>\n                                        <div class=\"md:grid md:grid-cols-1 mb-6 md:mb-0 gap-6 md:p-10 px-4 -mx-4 md:-mx-0 py-6 h-full bg-grey text-charcoal rounded-xl\">\n                                <div class=\"col-span-1 flex flex-col\">\n                                        <h3 class=\"mb-3 md:mb-8\">Write &#038; control<\/h3>\n                    <div class=\"flex-1 \">\n                        <p>Read is half the story. Push commands to charge points. Set tariffs from your spot market. Queue billing runs. Update users. Move money. The API that reads is the API that writes.\n<\/p><\/div>\n<div>\n<div class=\"border-faded-grey-horizontal border-t-1 border-b-0 mt-4 mb-4\"><\/div>\n<div class=\"font-mono text-sm mb-1\"><span class=\"text-primary-blue mr-2\">POST<\/span>\/commands<\/div>\n<div class=\"font-mono text-sm mb-1\"><span class=\"text-primary-blue mr-2\">POST<\/span>\/tariffs<\/div>\n<div class=\"font-mono text-sm mb-1\"><span class=\"text-primary-blue mr-2\">POST<\/span>\/price-groups<\/div>\n\n                    <\/div>\n                                    <\/div>\n            <\/div>\n                <\/div>\n\n    \n            <infocards-slider\n            class=\"md:hidden\"\n            data-cards=\"[{&quot;image&quot;:false,&quot;pill_label&quot;:&quot;&quot;,&quot;title&quot;:&quot;Partner API&quot;,&quot;description&quot;:&quot;&lt;p&gt;238 endpoints across charge points, billing, wallets, users, and webhooks. REST and OAuth 2.0, compatible with any modern integration stack. Your developers build on top; your data flows where you need it.\\n&lt;\\\/p&gt;&lt;\\\/div&gt;\\n&lt;div&gt;\\n&lt;div class=\\&quot;border-faded-grey-horizontal border-t-1 border-b-0 mt-4 mb-4\\&quot;&gt;&lt;\\\/div&gt;\\n&lt;div class=\\&quot;font-mono text-sm mb-1\\&quot;&gt;&lt;span class=\\&quot;text-primary-blue mr-2\\&quot;&gt;GET&lt;\\\/span&gt;\\\/charge-points&lt;\\\/div&gt;\\n&lt;div class=\\&quot;font-mono text-sm mb-1\\&quot;&gt;&lt;span class=\\&quot;text-primary-blue mr-2\\&quot;&gt;POST&lt;\\\/span&gt;\\\/charges&lt;\\\/div&gt;\\n&lt;div class=\\&quot;font-mono text-sm mb-1\\&quot;&gt;&lt;span class=\\&quot;text-primary-blue mr-2\\&quot;&gt;GET&lt;\\\/span&gt;\\\/wallets&lt;\\\/div&gt;\\n&quot;,&quot;button_link&quot;:&quot;&quot;,&quot;button_label&quot;:&quot;&quot;},{&quot;image&quot;:false,&quot;pill_label&quot;:&quot;&quot;,&quot;title&quot;:&quot;Payments&quot;,&quot;description&quot;:&quot;&lt;p&gt;Plug into the payment stack you already use. Three payment rails (Stripe, Adyen, Wise), three terminal providers (Payter, CPI, Nayax), and the price group, tariff, and invoicing primitives to assemble the commercial model your business actually runs.\\n&lt;\\\/p&gt;&lt;\\\/div&gt;\\n&lt;div&gt;\\n&lt;div class=\\&quot;border-faded-grey-horizontal border-t-1 border-b-0 mt-4 mb-4\\&quot;&gt;&lt;\\\/div&gt;\\n&lt;div class=\\&quot;font-mono text-sm mb-1\\&quot;&gt;&lt;span class=\\&quot;text-primary-blue mr-2\\&quot;&gt;GET&lt;\\\/span&gt;\\\/invoices&lt;\\\/div&gt;\\n&lt;div class=\\&quot;font-mono text-sm mb-1\\&quot;&gt;&lt;span class=\\&quot;text-primary-blue mr-2\\&quot;&gt;GET&lt;\\\/span&gt;\\\/tariffs&lt;\\\/div&gt;\\n&lt;div class=\\&quot;font-mono text-sm mb-1\\&quot;&gt;&lt;span class=\\&quot;text-primary-blue mr-2\\&quot;&gt;POST&lt;\\\/span&gt;\\\/price-groups&lt;\\\/div&gt;\\n&quot;,&quot;button_link&quot;:&quot;&quot;,&quot;button_label&quot;:&quot;&quot;},{&quot;image&quot;:false,&quot;pill_label&quot;:&quot;&quot;,&quot;title&quot;:&quot;Roaming&quot;,&quot;description&quot;:&quot;&lt;p&gt;500,000+ roamable charge points across Hubject (OICP, 24-hour sync), Gireve (OCPI, instant), and Emobi (120,000+ in North America). Bilateral OCPI agreements available through Monta Hub.\\n&lt;\\\/p&gt;&lt;\\\/div&gt;\\n&lt;div&gt;\\n&lt;div class=\\&quot;border-faded-grey-horizontal border-t-1 border-b-0 mt-4 mb-4\\&quot;&gt;&lt;\\\/div&gt;\\n&lt;div class=\\&quot;font-mono text-sm mb-1\\&quot;&gt;&lt;span class=\\&quot;text-primary-blue mr-2\\&quot;&gt;OCPI&lt;\\\/span&gt;locations \\\/ tokens&lt;\\\/div&gt;\\n&lt;div class=\\&quot;font-mono text-sm mb-1\\&quot;&gt;&lt;span class=\\&quot;text-primary-blue mr-2\\&quot;&gt;OICP&lt;\\\/span&gt;via Hubject&lt;\\\/div&gt;\\n&lt;div class=\\&quot;font-mono text-sm mb-1\\&quot;&gt;&lt;span class=\\&quot;text-primary-blue mr-2\\&quot;&gt;GET&lt;\\\/span&gt;\\\/roaming-stats&lt;\\\/div&gt;\\n&quot;,&quot;button_link&quot;:&quot;&quot;,&quot;button_label&quot;:&quot;&quot;},{&quot;image&quot;:false,&quot;pill_label&quot;:&quot;&quot;,&quot;title&quot;:&quot;Energy &amp; Grid&quot;,&quot;description&quot;:&quot;&lt;p&gt;Real-time vehicle telemetry via Enode. Carbon-aware charging via Electricity Maps. Grid services via GridBeyond. Spot pricing from Nordpool and SEMO-PX at 15-minute intervals.\\n&lt;\\\/p&gt;&lt;\\\/div&gt;\\n&lt;div&gt;\\n&lt;div class=\\&quot;border-faded-grey-horizontal border-t-1 border-b-0 mt-4 mb-4\\&quot;&gt;&lt;\\\/div&gt;\\n&lt;div class=\\&quot;font-mono text-sm mb-1\\&quot;&gt;&lt;span class=\\&quot;text-primary-blue mr-2\\&quot;&gt;GET&lt;\\\/span&gt;\\\/vehicles\\\/{id}&lt;\\\/div&gt;\\n&lt;div class=\\&quot;font-mono text-sm mb-1\\&quot;&gt;&lt;span class=\\&quot;text-primary-blue mr-2\\&quot;&gt;GET&lt;\\\/span&gt;\\\/grid-events&lt;\\\/div&gt;\\n&lt;div class=\\&quot;font-mono text-sm mb-1\\&quot;&gt;&lt;span class=\\&quot;text-primary-blue mr-2\\&quot;&gt;POST&lt;\\\/span&gt;\\\/smart-charge&lt;\\\/div&gt;\\n&quot;,&quot;button_link&quot;:&quot;&quot;,&quot;button_label&quot;:&quot;&quot;},{&quot;image&quot;:false,&quot;pill_label&quot;:&quot;&quot;,&quot;title&quot;:&quot;Webhooks&quot;,&quot;description&quot;:&quot;&lt;p&gt;14 event types covering charge transactions, OCPP messages, sites, teams, wallet transactions, and more. Push-based delivery, retries on failure, signed payloads.\\n&lt;\\\/p&gt;&lt;\\\/div&gt;\\n&lt;div&gt;\\n&lt;div class=\\&quot;border-faded-grey-horizontal border-t-1 border-b-0 mt-4 mb-4\\&quot;&gt;&lt;\\\/div&gt;\\n&lt;div class=\\&quot;font-mono text-sm mb-1\\&quot;&gt;&lt;span class=\\&quot;text-primary-blue mr-2\\&quot;&gt;EVT&lt;\\\/span&gt;charge_transaction.completed&lt;\\\/div&gt;\\n&lt;div class=\\&quot;font-mono text-sm mb-1\\&quot;&gt;&lt;span class=\\&quot;text-primary-blue mr-2\\&quot;&gt;EVT&lt;\\\/span&gt;wallet_transaction.created&lt;\\\/div&gt;\\n&lt;div class=\\&quot;font-mono text-sm mb-1\\&quot;&gt;&lt;span class=\\&quot;text-primary-blue mr-2\\&quot;&gt;EVT&lt;\\\/span&gt;charge_point.status_changed&lt;\\\/div&gt;\\n&quot;,&quot;button_link&quot;:&quot;&quot;,&quot;button_label&quot;:&quot;&quot;},{&quot;image&quot;:false,&quot;pill_label&quot;:&quot;&quot;,&quot;title&quot;:&quot;Write &amp; control&quot;,&quot;description&quot;:&quot;&lt;p&gt;Read is half the story. Push commands to charge points. Set tariffs from your spot market. Queue billing runs. Update users. Move money. The API that reads is the API that writes.\\n&lt;\\\/p&gt;&lt;\\\/div&gt;\\n&lt;div&gt;\\n&lt;div class=\\&quot;border-faded-grey-horizontal border-t-1 border-b-0 mt-4 mb-4\\&quot;&gt;&lt;\\\/div&gt;\\n&lt;div class=\\&quot;font-mono text-sm mb-1\\&quot;&gt;&lt;span class=\\&quot;text-primary-blue mr-2\\&quot;&gt;POST&lt;\\\/span&gt;\\\/commands&lt;\\\/div&gt;\\n&lt;div class=\\&quot;font-mono text-sm mb-1\\&quot;&gt;&lt;span class=\\&quot;text-primary-blue mr-2\\&quot;&gt;POST&lt;\\\/span&gt;\\\/tariffs&lt;\\\/div&gt;\\n&lt;div class=\\&quot;font-mono text-sm mb-1\\&quot;&gt;&lt;span class=\\&quot;text-primary-blue mr-2\\&quot;&gt;POST&lt;\\\/span&gt;\\\/price-groups&lt;\\\/div&gt;\\n&quot;,&quot;button_link&quot;:&quot;&quot;,&quot;button_label&quot;:&quot;&quot;}]\"\n            data-full-height-image=\"false\"\n            data-card-bg-class=\"bg-grey text-charcoal\"\n            data-btn-tertiary-class=\"btn-tertiary-black hover:!bg-white\"\n            data-column-layout=\"3 column\"\n        ><\/infocards-slider>\n    \n<\/section>\n\n\n<section aria-label=\"The API your engineers already know how to use.\" class=\"bg-transparent text-charcoal  rounded-section\">\n    <div class=\"grid grid-cols-1 md:grid-cols-12 gap-12\">\n        \n        <div class=\"md:col-span-5\">\n                            <div class=\"pill-label mb-8 \">\n                    Built for engineers                <\/div>\n            \n                                                <h2 class=\"h2 mb-10\">The API your engineers already know how to use.<\/h2>\n                            \n            <div class=\"rich-text\">\n                <p class=\"intro\">The same infrastructure powers Monta Hub and Monta Charge. If a feature isn&#8217;t in the API, we don&#8217;t ship it.<\/p>\n<ul>\n<li>OAuth 2.0 client credentials, 1-hour bearer tokens, 24-hour refresh<\/li>\n<li>Snowflake Data Warehouse for SQL access via Tableau, PowerBI, Looker<\/li>\n<li>MCP server, live today. CLI for ops and CI.<\/li>\n<li>Configurable rate limits per credential, offset-based pagination<\/li>\n<li>Full OpenAPI spec, two API versions (stable + beta)<\/li>\n<\/ul>\n\n            <\/div>\n\n            <div class=\"md:hidden block mt-10\">\n                        <div\n            data-wp-interactive=\"monta\/textcode\"\n            data-wp-context='{&quot;activeIndex&quot;:0,&quot;copied&quot;:false}'\n            class=\"textcode-card relative bg-black text-white rounded-2xl overflow-hidden shadow-xl\"\n        >\n            <div class=\"flex items-center justify-between gap-4 px-6 pt-5 pb-3 border-b border-white\/10\">\n                <div role=\"tablist\" class=\"flex items-center gap-6 overflow-x-auto min-w-0 flex-1\">\n                                            <button\n                            type=\"button\"\n                            role=\"tab\"\n                            data-wp-context='{&quot;tabIndex&quot;:0}'\n                            data-wp-on--click=\"actions.selectTab\"\n                            data-wp-bind--aria-selected=\"state.isActive\"\n                            data-wp-bind--data-active=\"state.isActive\"\n                            class=\"textcode-tab whitespace-nowrap text-sm font-repro-medium pb-1 border-b-2 border-transparent text-white\/60 hover:text-white transition-colors cursor-pointer data-[active=true]:text-white data-[active=true]:border-primary-blue\"\n                        >\n                            cURL                        <\/button>\n                                            <button\n                            type=\"button\"\n                            role=\"tab\"\n                            data-wp-context='{&quot;tabIndex&quot;:1}'\n                            data-wp-on--click=\"actions.selectTab\"\n                            data-wp-bind--aria-selected=\"state.isActive\"\n                            data-wp-bind--data-active=\"state.isActive\"\n                            class=\"textcode-tab whitespace-nowrap text-sm font-repro-medium pb-1 border-b-2 border-transparent text-white\/60 hover:text-white transition-colors cursor-pointer data-[active=true]:text-white data-[active=true]:border-primary-blue\"\n                        >\n                            Node.js                        <\/button>\n                                            <button\n                            type=\"button\"\n                            role=\"tab\"\n                            data-wp-context='{&quot;tabIndex&quot;:2}'\n                            data-wp-on--click=\"actions.selectTab\"\n                            data-wp-bind--aria-selected=\"state.isActive\"\n                            data-wp-bind--data-active=\"state.isActive\"\n                            class=\"textcode-tab whitespace-nowrap text-sm font-repro-medium pb-1 border-b-2 border-transparent text-white\/60 hover:text-white transition-colors cursor-pointer data-[active=true]:text-white data-[active=true]:border-primary-blue\"\n                        >\n                            Python                        <\/button>\n                                    <\/div>\n                <button\n                    type=\"button\"\n                    data-wp-on--click=\"actions.copyCode\"\n                    data-wp-bind--aria-label=\"state.copyAriaLabel\"\n                    class=\"textcode-copy shrink-0 inline-flex items-center justify-center px-3 py-1.5 text-xs font-repro-medium rounded-md border border-primary-blue\/60 text-white hover:bg-primary-blue\/20 transition-colors cursor-pointer\"\n                >\n                    <span data-wp-text=\"state.copyLabel\">Copy<\/span>\n                <\/button>\n            <\/div>\n            <div class=\"textcode-body\">\n                                                        <pre\n                        data-wp-context='{&quot;tabIndex&quot;:0}'\n                        data-wp-bind--hidden=\"state.isHidden\"\n                        data-tab-index=\"0\"\n                        class=\"textcode-pane language-bash m-0 overflow-x-auto\"\n                    ><code class=\"language-bash\"># Webhook handler: charge_transaction.completed\r\ncurl -X POST https:\/\/api.monta.com\/v2024-07-01\/webhooks \\\r\n  -H &quot;Authorization: Bearer $TOKEN&quot; \\\r\n  -H &quot;Content-Type: application\/json&quot; \\\r\n  -d &#039;{\r\n    &quot;event&quot;: &quot;charge_transaction.completed&quot;,\r\n    &quot;url&quot;:   &quot;https:\/\/your-app.example\/hooks\/monta&quot;,\r\n    &quot;secret&quot;: &quot;whsec_***&quot;\r\n  }&#039;\r\n\r\n# Sample payload pushed to your endpoint:\r\n{\r\n  &quot;event&quot;: &quot;charge_transaction.completed&quot;,\r\n  &quot;timestamp&quot;: &quot;2026-05-04T18:31:42Z&quot;,\r\n  &quot;data&quot;: {\r\n    &quot;id&quot;: 1248532,\r\n    &quot;charge_point_id&quot;: 8842,\r\n    &quot;site_id&quot;: 412,\r\n    &quot;team_id&quot;: 39,\r\n    &quot;started_at&quot;: &quot;2026-05-04T17:08:11Z&quot;,\r\n    &quot;stopped_at&quot;: &quot;2026-05-04T18:31:42Z&quot;,\r\n    &quot;kwh&quot;: 42.180,\r\n    &quot;cost&quot;: { &quot;amount&quot;: 12.94, &quot;currency&quot;: &quot;EUR&quot; },\r\n    &quot;co2_saved_g&quot;: 203\r\n  }\r\n}<\/code><\/pre>\n                                                        <pre\n                        data-wp-context='{&quot;tabIndex&quot;:1}'\n                        data-wp-bind--hidden=\"state.isHidden\"\n                        data-tab-index=\"1\"\n                        class=\"textcode-pane language-javascript m-0 overflow-x-auto\"\n                    ><code class=\"language-javascript\">\/\/ Subscribe to charge_transaction.completed\r\nimport { Monta } from &quot;@monta\/sdk&quot;;\r\n\r\nconst monta = new Monta({ apiKey: process.env.MONTA_TOKEN });\r\n\r\nawait monta.webhooks.create({\r\n  event: &quot;charge_transaction.completed&quot;,\r\n  url:   &quot;https:\/\/your-app.example\/hooks\/monta&quot;,\r\n  secret: &quot;whsec_***&quot;,\r\n});\r\n\r\n\/\/ In your handler:\r\napp.post(&quot;\/hooks\/monta&quot;, (req, res) =&gt; {\r\n  const { event, data } = req.body;\r\n  if (event === &quot;charge_transaction.completed&quot;) {\r\n    \/\/ data.kwh, data.cost, data.co2_saved_g, ...\r\n    invoiceQueue.push(data);\r\n  }\r\n  res.status(200).end();\r\n});<\/code><\/pre>\n                                                        <pre\n                        data-wp-context='{&quot;tabIndex&quot;:2}'\n                        data-wp-bind--hidden=\"state.isHidden\"\n                        data-tab-index=\"2\"\n                        class=\"textcode-pane language-python m-0 overflow-x-auto\"\n                    ><code class=\"language-python\"># pip install monta-sdk\r\nfrom monta import Monta\r\nfrom flask import Flask, request\r\n\r\nmonta = Monta(api_key=os.environ[&quot;MONTA_TOKEN&quot;])\r\n\r\nmonta.webhooks.create(\r\n    event=&quot;charge_transaction.completed&quot;,\r\n    url=&quot;https:\/\/your-app.example\/hooks\/monta&quot;,\r\n    secret=&quot;whsec_***&quot;,\r\n)\r\n\r\napp = Flask(__name__)\r\n\r\n@app.post(&quot;\/hooks\/monta&quot;)\r\ndef on_event():\r\n    payload = request.get_json()\r\n    if payload[&quot;event&quot;] == &quot;charge_transaction.completed&quot;:\r\n        data = payload[&quot;data&quot;]\r\n        # data[&quot;kwh&quot;], data[&quot;cost&quot;], data[&quot;co2_saved_g&quot;], ...\r\n        enqueue_invoice(data)\r\n    return &quot;&quot;, 200<\/code><\/pre>\n                            <\/div>\n                            <div class=\"px-6 py-3 text-xs text-white\/40 border-t border-white\/10\">\n                    api.monta.com \u00b7 OAuth 2.0 \u00b7 v2024-07-01                <\/div>\n                    <\/div>\n                    <\/div>\n\n                            <a href=\"https:\/\/docs.partner-api.monta.com\/\" class=\"btn-primary-blue mt-8\">\n                    View partner API docs                <\/a>\n            \n                            <a href=\"https:\/\/docs.public-api.monta.com\/reference\/home\"\n                    class=\"btn-outline-black mt-4 ml-0 md:ml-4\">\n                    Public API docs\n                <\/a>\n                    <\/div>\n\n                    <div class=\"md:col-span-6 md:col-start-7 hidden md:block\">\n                        <div\n            data-wp-interactive=\"monta\/textcode\"\n            data-wp-context='{&quot;activeIndex&quot;:0,&quot;copied&quot;:false}'\n            class=\"textcode-card relative bg-black text-white rounded-2xl overflow-hidden shadow-xl\"\n        >\n            <div class=\"flex items-center justify-between gap-4 px-6 pt-5 pb-3 border-b border-white\/10\">\n                <div role=\"tablist\" class=\"flex items-center gap-6 overflow-x-auto min-w-0 flex-1\">\n                                            <button\n                            type=\"button\"\n                            role=\"tab\"\n                            data-wp-context='{&quot;tabIndex&quot;:0}'\n                            data-wp-on--click=\"actions.selectTab\"\n                            data-wp-bind--aria-selected=\"state.isActive\"\n                            data-wp-bind--data-active=\"state.isActive\"\n                            class=\"textcode-tab whitespace-nowrap text-sm font-repro-medium pb-1 border-b-2 border-transparent text-white\/60 hover:text-white transition-colors cursor-pointer data-[active=true]:text-white data-[active=true]:border-primary-blue\"\n                        >\n                            cURL                        <\/button>\n                                            <button\n                            type=\"button\"\n                            role=\"tab\"\n                            data-wp-context='{&quot;tabIndex&quot;:1}'\n                            data-wp-on--click=\"actions.selectTab\"\n                            data-wp-bind--aria-selected=\"state.isActive\"\n                            data-wp-bind--data-active=\"state.isActive\"\n                            class=\"textcode-tab whitespace-nowrap text-sm font-repro-medium pb-1 border-b-2 border-transparent text-white\/60 hover:text-white transition-colors cursor-pointer data-[active=true]:text-white data-[active=true]:border-primary-blue\"\n                        >\n                            Node.js                        <\/button>\n                                            <button\n                            type=\"button\"\n                            role=\"tab\"\n                            data-wp-context='{&quot;tabIndex&quot;:2}'\n                            data-wp-on--click=\"actions.selectTab\"\n                            data-wp-bind--aria-selected=\"state.isActive\"\n                            data-wp-bind--data-active=\"state.isActive\"\n                            class=\"textcode-tab whitespace-nowrap text-sm font-repro-medium pb-1 border-b-2 border-transparent text-white\/60 hover:text-white transition-colors cursor-pointer data-[active=true]:text-white data-[active=true]:border-primary-blue\"\n                        >\n                            Python                        <\/button>\n                                    <\/div>\n                <button\n                    type=\"button\"\n                    data-wp-on--click=\"actions.copyCode\"\n                    data-wp-bind--aria-label=\"state.copyAriaLabel\"\n                    class=\"textcode-copy shrink-0 inline-flex items-center justify-center px-3 py-1.5 text-xs font-repro-medium rounded-md border border-primary-blue\/60 text-white hover:bg-primary-blue\/20 transition-colors cursor-pointer\"\n                >\n                    <span data-wp-text=\"state.copyLabel\">Copy<\/span>\n                <\/button>\n            <\/div>\n            <div class=\"textcode-body\">\n                                                        <pre\n                        data-wp-context='{&quot;tabIndex&quot;:0}'\n                        data-wp-bind--hidden=\"state.isHidden\"\n                        data-tab-index=\"0\"\n                        class=\"textcode-pane language-bash m-0 overflow-x-auto\"\n                    ><code class=\"language-bash\"># Webhook handler: charge_transaction.completed\r\ncurl -X POST https:\/\/api.monta.com\/v2024-07-01\/webhooks \\\r\n  -H &quot;Authorization: Bearer $TOKEN&quot; \\\r\n  -H &quot;Content-Type: application\/json&quot; \\\r\n  -d &#039;{\r\n    &quot;event&quot;: &quot;charge_transaction.completed&quot;,\r\n    &quot;url&quot;:   &quot;https:\/\/your-app.example\/hooks\/monta&quot;,\r\n    &quot;secret&quot;: &quot;whsec_***&quot;\r\n  }&#039;\r\n\r\n# Sample payload pushed to your endpoint:\r\n{\r\n  &quot;event&quot;: &quot;charge_transaction.completed&quot;,\r\n  &quot;timestamp&quot;: &quot;2026-05-04T18:31:42Z&quot;,\r\n  &quot;data&quot;: {\r\n    &quot;id&quot;: 1248532,\r\n    &quot;charge_point_id&quot;: 8842,\r\n    &quot;site_id&quot;: 412,\r\n    &quot;team_id&quot;: 39,\r\n    &quot;started_at&quot;: &quot;2026-05-04T17:08:11Z&quot;,\r\n    &quot;stopped_at&quot;: &quot;2026-05-04T18:31:42Z&quot;,\r\n    &quot;kwh&quot;: 42.180,\r\n    &quot;cost&quot;: { &quot;amount&quot;: 12.94, &quot;currency&quot;: &quot;EUR&quot; },\r\n    &quot;co2_saved_g&quot;: 203\r\n  }\r\n}<\/code><\/pre>\n                                                        <pre\n                        data-wp-context='{&quot;tabIndex&quot;:1}'\n                        data-wp-bind--hidden=\"state.isHidden\"\n                        data-tab-index=\"1\"\n                        class=\"textcode-pane language-javascript m-0 overflow-x-auto\"\n                    ><code class=\"language-javascript\">\/\/ Subscribe to charge_transaction.completed\r\nimport { Monta } from &quot;@monta\/sdk&quot;;\r\n\r\nconst monta = new Monta({ apiKey: process.env.MONTA_TOKEN });\r\n\r\nawait monta.webhooks.create({\r\n  event: &quot;charge_transaction.completed&quot;,\r\n  url:   &quot;https:\/\/your-app.example\/hooks\/monta&quot;,\r\n  secret: &quot;whsec_***&quot;,\r\n});\r\n\r\n\/\/ In your handler:\r\napp.post(&quot;\/hooks\/monta&quot;, (req, res) =&gt; {\r\n  const { event, data } = req.body;\r\n  if (event === &quot;charge_transaction.completed&quot;) {\r\n    \/\/ data.kwh, data.cost, data.co2_saved_g, ...\r\n    invoiceQueue.push(data);\r\n  }\r\n  res.status(200).end();\r\n});<\/code><\/pre>\n                                                        <pre\n                        data-wp-context='{&quot;tabIndex&quot;:2}'\n                        data-wp-bind--hidden=\"state.isHidden\"\n                        data-tab-index=\"2\"\n                        class=\"textcode-pane language-python m-0 overflow-x-auto\"\n                    ><code class=\"language-python\"># pip install monta-sdk\r\nfrom monta import Monta\r\nfrom flask import Flask, request\r\n\r\nmonta = Monta(api_key=os.environ[&quot;MONTA_TOKEN&quot;])\r\n\r\nmonta.webhooks.create(\r\n    event=&quot;charge_transaction.completed&quot;,\r\n    url=&quot;https:\/\/your-app.example\/hooks\/monta&quot;,\r\n    secret=&quot;whsec_***&quot;,\r\n)\r\n\r\napp = Flask(__name__)\r\n\r\n@app.post(&quot;\/hooks\/monta&quot;)\r\ndef on_event():\r\n    payload = request.get_json()\r\n    if payload[&quot;event&quot;] == &quot;charge_transaction.completed&quot;:\r\n        data = payload[&quot;data&quot;]\r\n        # data[&quot;kwh&quot;], data[&quot;cost&quot;], data[&quot;co2_saved_g&quot;], ...\r\n        enqueue_invoice(data)\r\n    return &quot;&quot;, 200<\/code><\/pre>\n                            <\/div>\n                            <div class=\"px-6 py-3 text-xs text-white\/40 border-t border-white\/10\">\n                    api.monta.com \u00b7 OAuth 2.0 \u00b7 v2024-07-01                <\/div>\n                    <\/div>\n                    <\/div>\n            <\/div>\n<\/section>\n\n\n<section  aria-label=\"Industry standards, not proprietary ones\"  class=\"\">\n            <div class=\"mb-8\">\n            <span class=\"pill-label\">Open standards<\/span>\n        <\/div>\n        <div class=\"grid grid-cols-1 md:grid-cols-12 mb-8 md:mb-14\">\n        <div class=\"col-span-12 md:col-span-5\">\n             <h2>  Industry standards, not proprietary ones  <\/h2>         <\/div>\n            <\/div>\n    <div class=\"grid grid-cols-1 md:grid-cols-12\">\n        <div class=\"col-span-12\">\n                            <div class=\"border-faded-grey-horizontal border-t-0 md:border-t-1 border-b-0 md:last:border-b-1 grid grid-cols-1 md:grid-cols-3\">\n                                            <div class=\"md:px-4 py-8 border-l-0 border-t-0 md:border-b-0 max-md:border-faded-grey-horizontal max-md:border-b-1\n                        md:border-faded-top-grey-vertical md:border-r-1                        \">\n                            <div class=\"prose max-w-none text-black\">\n                                <h4 class=\"mb-4\">OCPP <span class=\"text-medium-grey\">1.6J + 2.0.1<\/span><\/h4>\n<p>Charger-to-backend communication. 170+ hardware brands and 600+ charger models connect to Monta, whether you use Monta as your full platform or plug into specific capabilities via the API.<\/p>\n\n                            <\/div>\n                        <\/div>\n                                            <div class=\"md:px-4 py-8 border-l-0 border-t-0 md:border-b-0 max-md:border-faded-grey-horizontal max-md:border-b-1\n                        md:border-faded-top-grey-vertical md:border-r-1                        \">\n                            <div class=\"prose max-w-none text-black\">\n                                <h4 class=\"mb-4\">OCPI<\/h4>\n<p>Roaming and bilateral EMP agreements. Agreements are between operator and EMP, not between operator and Monta. Direct bilateral OCPI available through Monta Hub.<\/p>\n\n                            <\/div>\n                        <\/div>\n                                            <div class=\"md:px-4 py-8 border-l-0 border-t-0 md:border-b-0 max-md:border-faded-grey-horizontal max-md:border-b-1\n                                                \">\n                            <div class=\"prose max-w-none text-black\">\n                                <h4 class=\"mb-4\">OpenADR <span class=\"text-medium-grey\">2.0b certified<\/span><\/h4>\n<div class=\"standards-item\">\n<p class=\"standards-desc\">Grid demand response signalling. Monta translates demand response events into charging behaviour. The certification is Monta&#8217;s. The protocol is the industry&#8217;s.<\/p>\n<\/div>\n\n                            <\/div>\n                        <\/div>\n                                    <\/div>\n                            <div class=\"border-faded-grey-horizontal border-t-0 md:border-t-1 border-b-0 md:last:border-b-1 grid grid-cols-1 md:grid-cols-3\">\n                                            <div class=\"md:px-4 py-8 border-l-0 border-t-0 md:border-b-0 max-md:border-faded-grey-horizontal max-md:border-b-1\n                        md:border-faded-bottom-grey-vertical md:border-r-1                        \">\n                            <div class=\"prose max-w-none text-black\">\n                                <h4 class=\"mb-4\">ISO 15118 <span class=\"text-medium-grey\">in development<\/span><\/h4>\n<p>Plug&amp;Charge: vehicle authentication without RFID or app. In development via Hubject EMP ecosystem. AutoCharge (MAC-based) is live today.<\/p>\n\n                            <\/div>\n                        <\/div>\n                                            <div class=\"md:px-4 py-8 border-l-0 border-t-0 md:border-b-0 max-md:border-faded-grey-horizontal max-md:border-b-1\n                        md:border-faded-bottom-grey-vertical md:border-r-1                        \">\n                            <div class=\"prose max-w-none text-black\">\n                                <h4 class=\"mb-4\">OAuth 2.0<\/h4>\n<p>Industry-standard authentication for both Partner API and Public API. Client credentials flow with 1-hour bearer tokens and 24-hour refresh.<\/p>\n\n                            <\/div>\n                        <\/div>\n                                            <div class=\"md:px-4 py-8 border-l-0 border-t-0 md:border-b-0 max-md:border-faded-grey-horizontal max-md:border-b-1\n                                                \">\n                            <div class=\"prose max-w-none text-black\">\n                                <h4 class=\"mb-4\">REST \/ JSON<\/h4>\n<p>No proprietary protocols. Any system that accepts REST\/JSON (Salesforce, HubSpot, SAP, Oracle, custom ERP) can pull data from Monta.<\/p>\n\n                            <\/div>\n                        <\/div>\n                                    <\/div>\n                    <\/div>\n    <\/div>\n<\/section>\n\n\n<section  aria-label=\"API-first, not API-only.\"  class=\"pb-0 pt-0 bg-black text-white px-4 md:px-10 py-12 md:py-20 rounded-xl\">\n            <div class=\"mb-8\">\n            <span class=\"pill-label border-light-blue text-light-blue\">Build with Monta<\/span>\n        <\/div>\n        <div class=\"md:grid md:grid-cols-12 mb-12\">\n        <div class=\"col-span-5\">\n             <h2>  API-first, not API-only.  <\/h2>         <\/div>\n        <div class=\"rich-text col-start-8 col-span-5 intro\">\n            The same infrastructure that runs Monta Hub and Monta Charge powers your integrations. Use the API alone, use the products on top, swap any of them out.\n        <\/div>\n    <\/div>\n\n    \n    <div class=\"md:grid md:grid-cols-3 gap-6\">\n                                <div class=\"md:grid md:grid-cols-1 mb-6 md:mb-0 gap-6 md:p-10 px-4 -mx-4 md:-mx-0 py-6 h-full bg-charcoal text-white rounded-xl\">\n                                <div class=\"col-span-1 flex flex-col\">\n                                        <h3 class=\"mb-3 md:mb-8\">White Label <\/h3>\n                    <div class=\"flex-1 \">\n                        <p>Themed Monta Charge apps and Hub portals running under your brand. ~30 white-label apps in production.<\/p>\n\n                    <\/div>\n                                    <\/div>\n            <\/div>\n                                        <div class=\"md:grid md:grid-cols-1 mb-6 md:mb-0 gap-6 md:p-10 px-4 -mx-4 md:-mx-0 py-6 h-full bg-charcoal text-white rounded-xl\">\n                                <div class=\"col-span-1 flex flex-col\">\n                                        <h3 class=\"mb-3 md:mb-8\">Data Warehouse<\/h3>\n                    <div class=\"flex-1 \">\n                        <p>Snowflake-hosted, full charge session and billing data, compatible with Tableau, PowerBI, and any SQL client.<\/p>\n\n                    <\/div>\n                                    <\/div>\n            <\/div>\n                                        <div class=\"md:grid md:grid-cols-1 mb-6 md:mb-0 gap-6 md:p-10 px-4 -mx-4 md:-mx-0 py-6 h-full bg-charcoal text-white rounded-xl\">\n                                <div class=\"col-span-1 flex flex-col\">\n                                        <h3 class=\"mb-3 md:mb-8\">Professional Services<\/h3>\n                    <div class=\"flex-1 \">\n                        <p>Bespoke feature development on retainer or project basis. Solutions architects engaged from day one.<\/p>\n\n                    <\/div>\n                                    <\/div>\n            <\/div>\n                <\/div>\n\n    \n    \n<\/section>\n\n\n<section aria-label=\"Your infrastructure stays. Monta connects in.\" class=\"bg-primary-blue text-white  rounded-section\">\n    <div class=\"max-w-4xl mx-auto text-center\">\n                <div class=\"pill-label mb-8 text-white border-white\">\n            Get started        <\/div>\n                                    <h2 class=\"h2 mb-10 \">\n                Your infrastructure stays. Monta connects in.            <\/h2>\n                                <div class=\"text-lg mb-10 \">\n            <p>Production-grade, open standards, no lock-in.<\/p>\n        <\/div>\n                                <div class=\"flex flex-col md:flex-row gap-4 justify-center\">\n            <a href=\"https:\/\/monta.com\/en\/contact-sales\/\"                 class=\"btn-primary-black\">\n                Talk to a solutions architect            <\/a>\n                            <a href=\"https:\/\/docs.partner-api.monta.com\/\" class=\"btn-outline-white-black\">\n                    Read the API docs\n                <\/a>\n                    <\/div>\n            <\/div>\n<\/section>","protected":false},"excerpt":{"rendered":"","protected":false},"author":62,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"tags":[],"class_list":["post-29427","page","type-page","status-publish","hentry"],"acf":[],"_links":{"self":[{"href":"https:\/\/monta.com\/en\/wp-json\/wp\/v2\/pages\/29427","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/monta.com\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/monta.com\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/monta.com\/en\/wp-json\/wp\/v2\/users\/62"}],"replies":[{"embeddable":true,"href":"https:\/\/monta.com\/en\/wp-json\/wp\/v2\/comments?post=29427"}],"version-history":[{"count":4,"href":"https:\/\/monta.com\/en\/wp-json\/wp\/v2\/pages\/29427\/revisions"}],"predecessor-version":[{"id":29433,"href":"https:\/\/monta.com\/en\/wp-json\/wp\/v2\/pages\/29427\/revisions\/29433"}],"wp:attachment":[{"href":"https:\/\/monta.com\/en\/wp-json\/wp\/v2\/media?parent=29427"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/monta.com\/en\/wp-json\/wp\/v2\/tags?post=29427"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}