[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"integrations:item:en:modx":3,"integrations:siblings:en":106},{"id":4,"title":5,"body":6,"description":65,"extension":66,"faq":67,"integrationKind":80,"meta":81,"modifiedAt":82,"navigation":83,"pairId":84,"path":85,"platform":86,"publishedAt":87,"relatedPath":88,"repoPath":82,"requirement":89,"seo":90,"seoTitle":91,"settings":92,"sitemap":96,"slug":97,"stem":98,"steps":99,"summary":12,"translationSlug":97,"webhook":82,"__hash__":105},"integrations_en\u002Fen\u002Fintegrations\u002Fmodx.md","Accepting payments on a ModX site",{"type":7,"value":8,"toc":59},"minimark",[9,13,18,35,39,50],[10,11,12],"p",{},"We have no ready-made payment module for ModX. There are two working paths: the quick one is a payment link on a button, and the thorough one is an API integration your developer builds into the site or into an add-on such as miniShop2.",[14,15,17],"h2",{"id":16},"two-ways-to-connect","Two ways to connect",[19,20,21,29],"ul",{},[22,23,24,28],"li",{},[25,26,27],"strong",{},"A payment link."," Create a payment in the dashboard and put the address on a button. Nothing to program, but the ModX order status does not update.",[22,30,31,34],{},[25,32,33],{},"An API integration."," The payment is created from your server, and the payment notification updates the order status automatically.",[14,36,38],{"id":37},"what-to-keep-in-mind","What to keep in mind",[19,40,41,44,47],{},[22,42,43],{},"With the API, verify the notification signature before changing an order.",[22,45,46],{},"Keep keys in environment variables rather than in chunks and templates.",[22,48,49],{},"You can start with a link and move to the API once sales grow.",[10,51,52,53,58],{},"What the payment API can do and which SDKs exist is on the ",[54,55,57],"a",{"href":56},"\u002Fen\u002Fpayment-api","payment API page",".",{"title":60,"searchDepth":61,"depth":61,"links":62},"",2,[63,64],{"id":16,"depth":61,"text":17},{"id":37,"depth":61,"text":38},"There is no ready-made ModX module: payments run through a link or, with your own development, through the API. Both paths compared.","md",[68,71,74,77],{"question":69,"answer":70},"Why is there no ready-made ModX module?","ModX sites differ a lot in structure: a store is assembled from add-ons and templates for the task at hand. A universal module would help few people there, so we describe two paths — a link and an API integration.",{"question":72,"answer":73},"What should I choose if I run miniShop2?","An API integration: you already have orders and statuses, so changing them from a notification handler beats confirming payments by hand. The development is done by your team — we provide documentation and SDKs in the repository.",{"question":75,"answer":76},"Does a link work for a catalogue?","Not really: the amount is baked into the link, so each item needs its own. Links win where sales are few or the price is agreed with the client.",{"question":78,"answer":79},"Does the site need HTTPS?","Yes, mandatory. Without a valid certificate payments will not be connected and the buyer sees a browser warning instead of checkout.","link",{},null,true,"integration-12","\u002Fen\u002Fintegrations\u002Fmodx","ModX","2026-08-17","\u002Fen\u002Fshop-acquiring","A link on a button or an API integration",{"title":5,"description":65},"Payments on ModX with MulenPay",[93,94,95],"The amount and purpose — when creating a link","API Key, Shop ID and the secret key — for an API integration","The notification handler address — for the API scenario only",{"loc":85},"modx","en\u002Fintegrations\u002Fmodx",[100,101,102,103,104],"Pick the scenario: a link suits occasional sales, the API suits a full store.","For a link, create a payment in the dashboard and put the address on a button in a template or chunk.","For the API, get the keys in the store keys section and create payments from your server.","Set up a notification handler if you go the API route — it will change the order status.","Test the whole scenario: a successful payment, a decline and a refund.","Q1J9lmIkrnBkL4eXkd__Df0g6XboC58lQZEzbnXlnFY",[107,113,118,123,128,134,139,144,149,154,159,164,165,170],{"pairId":108,"slug":109,"platform":110,"summary":111,"integrationKind":112},"integration-01","wordpress","WordPress","MulenPay connects to WordPress through a ready-made payment gateway for WooCommerce: the plugin adds a payment method to the standard checkout, creates the payment and updates the order status from the webhook itself. There is no integration to write from scratch.","checkout",{"pairId":114,"slug":115,"platform":116,"summary":117,"integrationKind":112},"integration-02","1c-bitrix","1C-Bitrix","1C-Bitrix has a ready-made module: it adds MulenPay to the store's payment systems, redirects the customer to the payment page and updates the order status itself once the payment is confirmed.",{"pairId":119,"slug":120,"platform":121,"summary":122,"integrationKind":112},"integration-03","opencart","OpenCart","The OpenCart module adds MulenPay to the payment methods and lets you control when it shows: a minimum order total, a geo zone and the status assigned to an order once it is paid.",{"pairId":124,"slug":125,"platform":126,"summary":127,"integrationKind":112},"integration-04","prestashop","PrestaShop","The module for PrestaShop 1.7+ and 8.x creates the order in an awaiting-payment status, builds the payment through the MulenPay API and, once confirmed, moves the order to \"Payment accepted\" — or to \"Cancelled\" if the payment was cancelled.",{"pairId":129,"slug":130,"platform":131,"summary":132,"integrationKind":133},"integration-05","drupal","Drupal","The Drupal module provides a payment-creation service and a ready webhook endpoint. Unlike out-of-the-box store modules, you wire the payment call into your own code — the module gives you a method, not a checkout button.","method",{"pairId":135,"slug":136,"platform":137,"summary":138,"integrationKind":133},"integration-06","joomla","Joomla","The Joomla module installs as a regular zip archive and exposes a helper that returns a payment link. You embed the pay button into your own e-commerce component — the module handles creating the payment, not the checkout.",{"pairId":140,"slug":141,"platform":142,"summary":143,"integrationKind":133},"integration-07","insales","InSales","InSales connects not through a plugin but through a small Node.js relay service: the store sends the buyer to its address, the service creates the payment in MulenPay, and after payment it records the transaction on the InSales order.",{"pairId":145,"slug":146,"platform":147,"summary":148,"integrationKind":80},"integration-08","tilda","Tilda","There is no ready-made payment module for Tilda — the platform connects payment systems from its own fixed list. You can still accept payments: a payment link is created in the MulenPay dashboard and attached to a button in any block.",{"pairId":150,"slug":151,"platform":152,"summary":153,"integrationKind":80},"integration-09","amocrm","amoCRM","There is no ready-made amoCRM app, and manager-led sales hardly need one: a payment link is created in the MulenPay dashboard and sent to the client straight from the deal card — by email, chat or messenger.",{"pairId":155,"slug":156,"platform":157,"summary":158,"integrationKind":80},"integration-10","bitrix24","Битрикс24","Bitrix24 is a CRM and should not be confused with 1C-Bitrix: an online store on 1C-Bitrix has a ready-made payment module, while in the CRM payment is sent to the client as a link from the deal card.",{"pairId":160,"slug":161,"platform":162,"summary":163,"integrationKind":80},"integration-11","getcourse","GetCourse","We have no ready-made payment module for GetCourse: the platform works with its own list of payment systems. Payments can still run through a payment link — it is sent to the student by email or messenger, and access is granted once the payment is confirmed.",{"pairId":84,"slug":97,"platform":86,"summary":12,"integrationKind":80},{"pairId":166,"slug":167,"platform":168,"summary":169,"integrationKind":80},"integration-13","moodle","Moodle","We have no ready-made payment plugin for Moodle. You can take money through a payment link and enrol the student once the payment is confirmed, or automate it by building your own enrolment plugin on top of our API.",{"pairId":171,"slug":172,"platform":173,"summary":174,"integrationKind":80},"integration-14","webflow","Webflow","A ready-made payment module for Webflow does not exist and cannot: the built-in store works only with the platform own list of payment services. You can still accept payments through a payment link placed on a button of an ordinary page, bypassing the built-in cart."]