MoneyWorks support
MoneyWorks Webhooks
Although not a specific "feature" of MoneyWorks, webhooks (i.e. initiating a scripted action in MoneyWorks via a URL) can be easily implemented using a special custom report. This relies on three other MoneyWorks features: Reports can be invoked using the … Continue reading
Python script for MoneyWorks
A third-party Python script is available to facilitate development of services that use the MoneyWorks REST APIs to push data to MoneyWorks, or to automate MoneyWorks processes from outside of MoneyWorks. Examples: from moneyworks import Moneyworks mw = Moneyworks() # … Continue reading
Command line curl REST authentication
Sometimes you want to test out REST calls from the command line. How to handle the dual realm Authorization headers that Datacentre requires? --user will not work because curl will only accept one such parameter, so you need to specify … Continue reading
MoneyWorks Datacentre REST API
Synopsis The MoneyWorks Datacentre REST API provides a simple, platform-neutral, stateless network interface to MoneyWorks Datacentre. Description The MoneyWorks REST API is hosted on a MoneyWorks Datacentre server. The server may be self-hosted on-premises, self-hosted on a cloud VM, or … Continue reading
XML data exchange
MoneyWorks 6.1 and later supports import and export of xml-formatted data. This removes the need to preconfigure an import map when building automated importing scripts (although you will still need to understand import maps). XML is the only import format … Continue reading
Accessing REST from PHP
Example of using curl to issue an authenticated REST request. <?php // Demonstrates two methods of including authorisation // for accessing a resource // The resource in this case is an xml export of the account // table of document Acme.moneyworks if($_GET["auth"] == "headers") { $ch = curl_init(); // set URL and other appropriate options curl_setopt($ch, CURLOPT_URL, "http://127.0.0.1:6710/REST/Acme.moneyworks/ export/table=account&format=xml-terse"); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // set Auth headers for Datacentre login, and document login $headers = array( "Authorization: Basic " . base64_encode("root:Datacentre:XXXX"), "Authorization: Basic " . base64_encode("Admin:Document:fred")); curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); $result = curl_exec($ch); curl_close($ch); } else if($_GET["auth"] == "inline") { $ch = curl_init(); // usernames and passwords are inline in the URL // ask for verbose output so we can see the difference curl_setopt($ch, CURLOPT_URL, "http://root:XXXX@127.0.0.1:6710/ REST/Admin:fred@Acme.mwd6/export/ table=account&format=xml-verbose"); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $result = curl_exec($ch); … Continue reading