Monoova Payments API (v5.14)

Download OpenAPI specification:Download

Introduction

Monoova has developed a powerful payments engine which allows you to receive, manage and pay funds in AUD in Australia automatically. This service is made available to Monoova’s clients through a set of easy-to-use RESTful APIs with JSON payloads described in this document. The central idea is to reduce the cost, risk and effort normally associated with managing complex money movements so that you can focus on growing your business.

Our clients can receive and reconcile funds via Realtime transfers (NPP), direct credits/debits, and BPAY. They can then manage those funds by building virtual account/wallet hierarchies to get bespoke reporting, reconciliation and much more. And finally, our clients can pay funds via Realtime transfers (NPP) direct credits and BPAY. As new technologies become available (e.g. NPP Mandated payments) we will make additional methods of receiving, managing and paying available.

All information flows are real-time. Moving money between various Monoova accounts is also real time. All money flows in and out of the Engine are as fast as the banking system allows.

The sandbox environment is open to everyone who signs up on our Developer Portal at no cost. The sandbox environment allows you to test out the functionality of our API in a consequence free development environment. Access to the live environment is granted once you have (1) gone through our compliance process and (2) had formal sign-off on your sandbox integration.

Getting started

  • Sign on to our Developer Portal which you already have done
  • Get your sandbox API key under MANAGE > ACCOUNTS in the Developer Portal
  • Authenticate
  • Browse this document to find the functions you need
  • Begin experimenting with your first API calls by sending HTTP requests to the endpoints described in this document
  • Use the provided examples in the document as guidance

To try out our API you can use a client such as Postman

You can download a postman collection of our API by clicking the link below:

Run in Postman

Authentication

All RESTful APIs in this document use BASIC Authentication (except those in public/v1) in two scenarios either

  • API KEY
  • OneShotSecurityToken

Sandbox Authentication Credentials

Field Value
Username API Key (obtained from the Developer Portal)
Password leave blank when using API key; Monoova will provide password for OneShotSecurityToken
Base URL https://api.m-pay.com.au/

Live Authentication Credentials This will be provided by Monoova after a technical review.

Field Value
Username API Key (obtained from the Production Portal; Production credentials will be supplied by Monoova)
Password leave blank when using API key; Monoova will provide password for OneShotSecurityToken
Base URL https://api.mpay.com.au/

When using the LIVE Engine, your Sign-In Account is given five (5) attempts to authenticate your credentials. On the fifth failure your Sign-In Account is locked for one (1) hour. The returned data will indicate that your account is locked and the time in UTC that the account will be unlocked. If you require the account to be unlocked on the LIVE system you may contact your Monoova representative and at his or her discretion they will unlock the account. See the API routes in Security to manage Passwords and Tokens.

UserName/Password

Using this scenario, you can configure BASIC Authentication with the following

  • UserName - API Key (obtained from the Developer Portal) Production credentials will be supplied by Monoova when you have demonstrated successful implementation of the API on our Sandbox environment.
  • Password - When using your API Key, no password is required. If the key is compromised, it can be re-rolled via the Developer Portal.

  • Receive and Pay

    With our API, you receive funds from both outside and inside the Monoova Payments Engine. From outside the Engine, e.g. from your customers or your own bank account, you can receive and reconcile funds via

    • Direct credits
    • Direct debits
    • BPAY
    • NPP

    From inside the engine, you can receive funds from either your own virtual accounts and wallets or those belonging to others. These are real-time transactions. Once you have cleared funds in our Engine you can decide to pay recipients both outside and inside the Monoova Payments Engine. To recipients outside, you can send money via

    • Direct credits
    • BPAY
    • NPP

    Recipients in the Engine receive your funds in real time straight into their own virtual accounts and wallets. As always, we provide you with comprehensive reports on all your money moves. You will find more information on reporting, balance queries and many other management tools in the Manage section.

    Financial / Payments

    Overview

    The Financial APIs provide the core financial functionality of the Engine such as standard direct-entry transactions, refunds and status information.

    You may Debit one of the following sources

    • mWallets (for BPAY transactions only)
    • mAccounts (our virtual account)
    • External Australian Bank Accounts

    You may Credit one of the following sources

    • mWallets (for BPAY transactions)
    • mAccounts (our virtual account)
    • External Australian Bank Accounts
    • BPAY biller codes

    Process a transaction

    The purpose of the execute API is to debit a source for funds then distribute those funds to one or more supplied disbursement accounts. You can use the /financial/v2/transaction/validate endpoint to determine if the parameters are correct.

    Request Body schema:
    uniqueReference
    string <= 200 characters

    This is a unique reference generated by the calling service. This is a nonce. Its use is to determine if a request has already been received by the Engine.

    printUniqueReferenceOnStatement
    boolean
    Default: false

    If true, the uniqueReference will be printed on the statement. Default is false.

    totalAmount
    number <decimal> >= 0.01

    This is the total amount of the transaction

    paymentSource
    required
    string

    This is the type of transaction. The correct type MUST be used as it instructs the Engine to move funds according to established rules. Valid values are mAccount, mWallet, directDebit, token

    required
    object
    description
    string <= 500 characters

    This description will be displayed on the mAccount statements. If any disbursement object is present, this description will be overwritten. This description will only display on statements for payments directly into the sign in mAccount. (ie no disbursement object)

    Array of directCredit (object) or mAccount (object) or mWallet (object) or ABAToken (object) or BPAY (object) or NppCreditBankAccount (object) or NppCreditPayId (object)

    Responses

    Request samples

    {
      "totalAmount": "100",
      "paymentSource": "mAccount",
      "mAccount": {
          "token": "0000000000000000"
      },
      "mWallet": {
          "token": "6279059784226976",
          "pin": "0000"
      },
      "disbursements": [
          {
              "disbursementMethod": "bpay",
              "toBPayDetails": {
                  "billerCode": "857763",
                  "referenceNumber": "6279059700010918"
              },
              "amount": "100"
          }
      ]
    }
    

    Response samples

    Content type
    application/json
    {
    • "durationMs": 20,
    • "status": "Ok",