ERMS Plus Documentation

Welcome to the ERMS Plus Documentation! Here, you’ll find everything you need to manage property rates, bills, payments, and ownership data with the ERMS Plus API.

Quick start

Bills & Rates
Generate, manage, and track property bills and rates easily.
Payments
Accept, verify, and reconcile payments for rates, licenses, and more.
Ownership Data
Manage ownership information and updates for properties securely.
×

Bills & Rates

With ERMS Plus, you can automate the generation and management of property bills and rates.

Features include:

  • Automated billing for properties and businesses
  • Flexible rate configuration for local authorities
  • Real-time bill tracking and reminders

×

Payments

Accept and track payments through multiple channels. ERMS Plus supports online, mobile money, and POS payments.

Highlights:

  • Secure payment gateway integrations
  • Instant payment verification and receipt generation
  • Financial reconciliation and reporting

×

Ownership Data

Keep your property ownership records accurate and up to date.

Benefits:

  • Ownership change workflow with approvals
  • Secure data updates and audit trails
  • Access to property history and documentation

Accept a Payment

ERMS Plus makes it easy for financial institutions—including banks, savings & loan companies, payment channels, and fintechs—to securely integrate and accept payments. Our robust API allows you to connect your core systems and start accepting a wide range of payments with minimal setup, high reliability, and world-class security.

Before you begin
Ensure your institution has obtained ERMS API credentials. All API calls must be authenticated using your unique secret keys for maximum security and access control.
POST api.ermsplus.com/transaction/initialize cURL

        curl https://api.ermsplus.com/transaction/initialize
        -H "Authorization: Bearer YOUR_SECRET_KEY"
        -H "Content-Type: application/json"
        -X POST
        

Terminal

Learn how to build delightful in-person payment experiences with ERMS Plus Terminal

Getting started

ERMS Plus Terminal enables a developer to build custom applications that create unique branded in-person payment experiences. We provide the following integration flows that cater to different use cases:

Invoice Payments
Allow customers make payment for items on order fulfillment
Push Payment Requests
Accept in-person payment on your point of sales system
Custom apps
Build apps on the Terminal by leveraging our API and SDK
Virtual Terminal
Accept in-person payments without a POS device

API Bill Payments

Easily Initiate Bill Payments using the ERMS Plus API from any platform—web, mobile, or backend. Our API supports seamless integrations in Vue.js, Python, Java, C, C++, Node.js, and more.

Feature availability
Bill Payments are available to in every region

Bill Payments — Code Examples


            // Vue.js (Axios)
            axios.post('https://api.ermsplus.com/transfer', {
              recipient: '1234567890',
              amount: 1500
            }, {
              headers: {
                'Authorization': 'Bearer YOUR_SECRET_KEY',
                'Content-Type': 'application/json'
              }
            })
            .then(res => console.log(res.data))
            .catch(err => console.error(err));
                  

            # Python (requests)
            import requests
            
            headers = {
                'Authorization': 'Bearer YOUR_SECRET_KEY',
                'Content-Type': 'application/json'
            }
            data = {
                'recipient': '1234567890',
                'amount': 1500
            }
            resp = requests.post('https://api.ermsplus.com/transfer', json=data, headers=headers)
            print(resp.json())
                  

            // Java (HttpURLConnection)
            URL url = new URL("https://api.ermsplus.com/transfer");
            HttpURLConnection con = (HttpURLConnection) url.openConnection();
            con.setRequestMethod("POST");
            con.setRequestProperty("Authorization", "Bearer YOUR_SECRET_KEY");
            con.setRequestProperty("Content-Type", "application/json");
            con.setDoOutput(true);
            String jsonInput = "{\"recipient\":\"1234567890\",\"amount\":1500}";
            try(OutputStream os = con.getOutputStream()) {
                byte[] input = jsonInput.getBytes("utf-8");
                os.write(input, 0, input.length);
            }
            int code = con.getResponseCode();
                  

            /* C (libcurl) */
            #include <curl/curl.h>
            CURL *curl = curl_easy_init();
            if(curl) {
              struct curl_slist *headers = NULL;
              headers = curl_slist_append(headers, "Authorization: Bearer YOUR_SECRET_KEY");
              headers = curl_slist_append(headers, "Content-Type: application/json");
              curl_easy_setopt(curl, CURLOPT_URL, "https://api.ermsplus.com/transfer");
              curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
              curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\"recipient\":\"1234567890\",\"amount\":1500}");
              CURLcode res = curl_easy_perform(curl);
              curl_easy_cleanup(curl);
            }
                  

            // C++ (libcurl)
            #include <curl/curl.h>
            CURL *curl = curl_easy_init();
            if(curl) {
              struct curl_slist *headers = NULL;
              headers = curl_slist_append(headers, "Authorization: Bearer YOUR_SECRET_KEY");
              headers = curl_slist_append(headers, "Content-Type: application/json");
              curl_easy_setopt(curl, CURLOPT_URL, "https://api.ermsplus.com/transfer");
              curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
              curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\"recipient\":\"1234567890\",\"amount\":1500}");
              CURLcode res = curl_easy_perform(curl);
              curl_easy_cleanup(curl);
            }
                  

            // Node.js (fetch or axios)
            const axios = require('axios');
            axios.post('https://api.ermsplus.com/transfer', {
              recipient: '1234567890',
              amount: 1500
            }, {
              headers: {
                Authorization: 'Bearer YOUR_SECRET_KEY',
                'Content-Type': 'application/json'
              }
            }).then(res => console.log(res.data));
                  

Identity Verification

Learn how to use ERMS Plus to verify your customer's identity.

Verify Account Number
Validate the authenticity of a customer's account number before sending money
Resolve Card BIN
Get more info about a debit or credit card using its first 6-digits
Validate Customer
Confirm the identity of your customer before assigning an account

Developer Tools

Integrate ERMS Plus into your systems with our suite of SDKs and tools, designed for efficient bill payment automation, seamless API connectivity, and secure callback handling on all platforms.

Web SDK

The ERMS Plus Web SDK lets you embed bill payment forms, initiate property and utility bill payments, and listen for payment completion callbacks in your web apps. It supports secure event handling—your app can auto-update the UI or database when a bill is paid.

Mobile SDKs

Accept and track bill payments in native and cross-platform mobile apps with the ERMS Mobile SDKs. They support instant payment status callbacks, digital receipts, and transaction validation—out of the box.

Server-side SDKs

Automate bill reconciliation, verify callbacks, and trigger advanced actions on your backend using our robust server SDKs.

Test & Explore Tools

Quickly test the ERMS Plus API, review callback payloads, and simulate bill payment events using these tools.

User Manual

Everything you need to administer, operate, and supervise ERMS Plus at every level.

Assembly Administration
Procedures for managing assemblies, accounts, rates, and more.
Ratepayer Administration
All guides for property owners, payment, receipts, and profile updates.
Government Supervision
Monitor, audit, and supervise ERMS operations across jurisdictions.
×

Register an Assembly

  1. Go to the "Assemblies" section in your admin dashboard.
  2. Click Add Assembly and complete the required fields.
  3. Save changes to add the assembly to ERMS.
  4. An admin can then assign accounts and set rates for the new assembly.
×

Approve Bills (PDF Guide)

×

Assembly Setup Video

×

Update Profile

Go to "My Profile" > Edit Details, update your contact/address, and save. Changes take effect instantly and are visible to the Assembly administration.

×

Download Receipts

×

Monitor Payments

Go to the Supervision dashboard, use filters by date, region, or status. Click “Export” for reports in PDF or Excel.

×

Audit Logs

Under the "Logs" section, select the activity or user to view all tracked changes. Export logs as needed for your records.