Receive Direct Entry Dishonours Webhook
code examples curl request post \\ \ url https //api mpay com au/directentrydishonoureventwebhook target url \\ \ header 'accept application/json' \\ \ header 'content type application/json' \\ \ header 'authorisation ' \\ \ header 'verification signature e+afaj2w69rawbsgn+rssnfm2iseblo0mxnx9qtoh2k5mst1ceepcrvszgljzoplel2ea/iylbfgzddxvrtcnlinohsxm/smimnjbt8sq30fbvsnmjlfdnrz6foikl3e3cu9b+m4ovl8hafpohb67irndnycncvbm10qhrioiak=' \\ \ header 'webhookid 1234567' \\ \ data '{ "transactionreference" "dh 2026 0009912", "originaltransactionid" 884231706, "type" "directdebit", "returnreason" "refer to customer", "amount" 150 75, "transactiondate" "2026 09 08", "returndate" "2026 09 10" }'var myheaders = new headers(); myheaders append("accept", "application/json"); myheaders append("content type", "application/json"); myheaders append("authorisation", " "); myheaders append("verification signature", "e+afaj2w69rawbsgn+rssnfm2iseblo0mxnx9qtoh2k5mst1ceepcrvszgljzoplel2ea/iylbfgzddxvrtcnlinohsxm/smimnjbt8sq30fbvsnmjlfdnrz6foikl3e3cu9b+m4ovl8hafpohb67irndnycncvbm10qhrioiak="); myheaders append("webhookid", "1234567"); var raw = json stringify({ "transactionreference" "dh 2026 0009912", "originaltransactionid" 884231706, "type" "directdebit", "returnreason" "refer to customer", "amount" 150 75, "transactiondate" "2026 09 08", "returndate" "2026 09 10" }); var requestoptions = { method 'post', headers myheaders, body raw, redirect 'follow' }; fetch("https //api mpay com au/directentrydishonoureventwebhook target url", requestoptions) then(response => response text()) then(result => console log(result)) catch(error => console log('error', error));require "uri" require "json" require "net/http" url = uri("https //api mpay com au/directentrydishonoureventwebhook target url") https = net http new(url host, url port) https use ssl = true request = net http post new(url) request\["accept"] = "application/json" request\["content type"] = "application/json" request\["authorisation"] = " " request\["verification signature"] = "e+afaj2w69rawbsgn+rssnfm2iseblo0mxnx9qtoh2k5mst1ceepcrvszgljzoplel2ea/iylbfgzddxvrtcnlinohsxm/smimnjbt8sq30fbvsnmjlfdnrz6foikl3e3cu9b+m4ovl8hafpohb67irndnycncvbm10qhrioiak=" request\["webhookid"] = "1234567" request body = json dump({ "transactionreference" "dh 2026 0009912", "originaltransactionid" 884231706, "type" "directdebit", "returnreason" "refer to customer", "amount" 150 75, "transactiondate" "2026 09 08", "returndate" "2026 09 10" }) response = https request(request) puts response read body import requests import json url = "https //api mpay com au/directentrydishonoureventwebhook target url" payload = json dumps({ "transactionreference" "dh 2026 0009912", "originaltransactionid" 884231706, "type" "directdebit", "returnreason" "refer to customer", "amount" 150 75, "transactiondate" "2026 09 08", "returndate" "2026 09 10" }) headers = { 'accept' 'application/json', 'content type' 'application/json', 'authorisation' ' ', 'verification signature' 'e+afaj2w69rawbsgn+rssnfm2iseblo0mxnx9qtoh2k5mst1ceepcrvszgljzoplel2ea/iylbfgzddxvrtcnlinohsxm/smimnjbt8sq30fbvsnmjlfdnrz6foikl3e3cu9b+m4ovl8hafpohb67irndnycncvbm10qhrioiak=', 'webhookid' '1234567' } response = requests request("post", url, headers=headers, data=payload) print(response text) responses // success the notification passed validation and your endpoint has accepted responsibility for it return this as soon as the payload is persisted — do not wait for downstream processing monoova treats any 2xx as a successful delivery and will not retry { "status" "received", "webhookid" 1234567, "receivedat" "2026 09 10t14 32 12" }// bad request the notification could not be parsed, or a field failed your validation monoova will not retry a notification that is rejected with a 400, so return it only for a genuinely malformed payload — never for a transient fault on your side { "status" "rejected", "errorcode" "invalid payload", "errormessage" "field 'amount' is not a valid decimal value ", "webhookid" 1234567, "receivedat" "2026 09 10t14 32 12" }// unauthorised the authorisation header was missing or did not match the value registered on the subscription, or the verification signature header failed sha256 verification against the monoova public key return this without processing the payload { "status" "rejected", "errorcode" "invalid payload", "errormessage" "field 'amount' is not a valid decimal value ", "webhookid" 1234567, "receivedat" "2026 09 10t14 32 12" }// internal server error your endpoint accepted the notification but could not process it because of a fault on your side monoova retries a notification that fails with a 5xx, so return this — rather than a 400 — whenever the failure is transient and a redelivery could succeed { "status" "rejected", "errorcode" "invalid payload", "errormessage" "field 'amount' is not a valid decimal value ", "webhookid" 1234567, "receivedat" "2026 09 10t14 32 12" }