A suite of APIs that powers commerce for businesses of all sizes.

Robust, clean APIs that let you focus on building great products.
            function GetCustomerDetails()
                $url = 'https://api.ezypay.com/api/v1/customers/11111111-1111-1111-1111-1111';
                $ch = curl_init($url);                                                                      
                curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET");                                                                                                                                     
                curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);  
                curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
                curl_setopt($ch, CURLOPT_USERPWD, "aZj1zkAivrnZiiWpiM71O3hBUAAN6S:a");
                curl_setopt($ch, CURLOPT_HTTPHEADER, array(                                                                          
                'Content-Type: application/json',  
                'Accept: application/json', 
                'Content-Length: ' . strlen($data))                                                                       
                $result = curl_exec($ch);
                $http_status = curl_getinfo($ch, CURLINFO_HTTP_CODE);
                if($http_status == '200')
                    echo $result;
                    echo $http_status.' '.$result;
            void GetCustomerDetails()
             WebRequest req = WebRequest.Create(@"https://api.ezypay.com/api/v1/customers/11111111-1111-1111-1111-111111111111");
             req.Method = "GET";
             req.Headers["Authorization"] = "Basic " + Convert.ToBase64String(Encoding.Default.GetBytes("aZj1zkAivrnZiiWpiM71O3hBUAAN6S:a"));
             req.ContentType = "application/json";
             HttpWebResponse resp = req.GetResponse() as HttpWebResponse;
             if (resp.StatusCode != HttpStatusCode.OK)
              var message = String.Format("Request failed. Received HTTP {0}", resp.StatusCode);
              throw new ApplicationException(message);
             var responseValue = string.Empty;
             // grab the response
             using (var responseStream = resp.GetResponseStream())
              if (responseStream != null)
               using (var reader = new StreamReader(responseStream))
                responseValue = reader.ReadToEnd();
curl -u aZj1zkAivrnZiiWpiM71O3hBUAAN6S:a --basic "https://api.ezypay.com/api/v1/customers/11111111-1111-1111-1111-111111111111"
            import java.io.BufferedReader;
            import java.io.InputStream;
            import java.io.InputStreamReader;
            import java.net.HttpURLConnection;
            import java.net.URL;
            import org.apache.commons.codec.binary.Base64;
            public class ApiTest {
                public static void main(String[] args){
                    String ezypayCustomerApiEndpoint = "https://api.ezypay.com/api/v1/customers";
                    String customerId = "11111111-1111-1111-1111-111111111111";
                    // Base64 encode for auth
                    String authString = "aZj1zkAivrnZiiWpiM71O3hBUAAN6S:a" ;
                    byte[] authEncBytes = Base64.encodeBase64(authString.getBytes());
                    String authStringEnc = new String(authEncBytes);
                    try {
                        URL url = new URL (String.format("%s/%s",ezypayCustomerApiEndpoint,customerId));
                        HttpURLConnection connection = (HttpURLConnection) url.openConnection();
                        connection.setRequestProperty("Authorization", "Basic " + authStringEnc);
                        InputStream content = (InputStream)connection.getInputStream();
                        BufferedReader in = new BufferedReader (new InputStreamReader (content));
                        String line;
                        while ((line = in.readLine()) != null) {
                        } catch(Exception e) {
            # -*- coding: utf-8 -*-
            #!/usr/bin/env python
            import urllib2
            import base64
            # Constants
            ezypay_api_customer_data_endpoint = "https://api.ezypay.com/api/v1/customers"
            customer_id = "11111111-1111-1111-1111-111111111111"
            auth_token = "aZj1zkAivrnZiiWpiM71O3hBUAAN6S"
            # Request Object
            request = urllib2.Request('{0}/{1}'.format(ezypay_api_customer_data_endpoint,customer_id))
            #Add Authorization header
            base64string = base64.encodestring('{0}:a'.format(auth_token))
            request.add_header("Authorization", "Basic %s" % base64string)
            #Set content type
            # Make request and print it
            result = urllib2.urlopen(request).read()
            print result
            package main
                import (
             func main() {
                 url := "https://api.ezypay.com/api/v1/customers/11111111-1111-1111-1111-111111111111"
                 req, err := http.NewRequest("GET", url, nil)
                 req.Header.Set("Content-Type", "application/json")
                 client := &http.Client{}
                 resp, err := client.Do(req)
                 if err != nil {
                 defer resp.Body.Close()
                 body, _ := ioutil.ReadAll(resp.Body)
            require "net/http"
            require 'net/https'
            require "uri"
            uri = URI.parse("https://api.ezypay.com/api/v1/customers")
            customer_id = "11111111-1111-1111-1111-111111111111"
            # HTTP options
            http = Net::HTTP.new(uri.host, uri.port)
            http.use_ssl = true
            # Request object
            request = Net::HTTP::Get.new("%s/%s" % [uri.request_uri,customer_id])
            # Authentication
            request.basic_auth("aZj1zkAivrnZiiWpiM71O3hBUAAN6S", "a")
            #Make request and print result
            response = http.request(request)
            puts response.body

Built for Developers

Simple, composable, orthogonal APIs.


Powerful Toolkit

Works with any type of business.


Perfectly Scaled

Robust support for companies of all sizes.


Seamless Security

Trusted, secure and stress free.

Ezypay customer survey reveals 96% overall satisfaction.

With a dedicated customer support team located across two continents, you’ll enjoy prompt and friendly service every time with Ezypay.

Recurring Billing API


The Ezypay Recurring Billing API is available and useful for passing data back and forth between our recurring billing system and yours. It is an easy way to securely transfer data.


Billing Batch On-Demand API

This is the vendor integration manual for our billing batch on-demand (BOD) API. You will use this API to send files through to us in a batch mode.


ezypay API

This is a guide to setting up a web hook to notify you of a specific event in our system. Web hooks are available for when a customer is successfully added or when a payment for a customer or client has failed.



Ezypay has a number of API documents available to help developers utilise the API functionality. If you have an in-house IT system or even a website to manage your customers then you can use our APIs to pass data back and forth between the Ezypay API and your in-house system.


What is a Web API?

Defined by Wikipedia as “A server-side web API is a programmatic interface to a defined request-response message system, typically expressed in JSON or XML, which is exposed via the web—most commonly by means of an HTTP-based web server”

Now, that doesn’t sound very interesting does it ? Let us try and break things down.

From the Wikipedia entry, we understand that it is something that runs on a “server”. This means that it is something that can be accessed over the internet. Simply put, Web APIs are mechanisms through which we can gain access to certain functionality of an application (in this case, Ezypay/iconnect360) over the web.

The next key word to note is “programmatic interface”. This means that a program is involved somewhere. To be much more specific, the functionality exposed by the Web API is not for humans to interact with – rather, it is meant for other programs.

Using a Web API

Why You Should Consider Using the Ezypay API

When a business’s IT components start out, they tend to require certain very generic components e.g. a pay roll system, an email system, a billing and invoicing system and so on. Nowadays, a lot of IT operations companies provide these generic components as services available over the web – i.e. as Web APIs. The advantage is that it is often cheaper (in terms of money as well as time) to integrate these Web APIs into a business’s IT systems rather than build and maintain them on your own. For example, a lot of small to medium businesses use Paypal for processing payments, which is done using Paypal’s Web APIs.

In addition to providing functionality, Web APIs often expose their internal data in a format that is easily consumed by other programs. This provides businesses an opportunity to use this data in innovative ways. Frequently, Web APIs from multiple providers are used in conjunction to provide something new and innovative. This occurs often enough on the web to warrant a special term of its own, called Mash-ups. Check out the
ProgrammableWeb’s website for a list of mash ups.

Ezypay Web API

Ezypay’s Web API

Ezypay’s Web APIs focuses on providing core functionality of the product such as creating customers, scheduling debits and retrieving available payment plans as easy to consume APIs. This makes it easy for a business to integrate Ezypay into their in-house IT systems. If it is a business with a customer facing website, signing up one for direct debits is often a seamless process with Ezypay’s APIs.