Status Webhook

The MoneyGram Status Webhook allows receiving institution to asynchronously notify MoneyGram of transaction status changes. All updates are submitted by authorised receiving institutions via the SOAP updateStatus operation. The interface is idempotent, enabling receiving institutions to safely retry the same payload until MoneyGram confirms receipt.

Supported status updates

P

Pending

Transaction acknowledged; settlement in progress.

R

Received

Funds successfully credited to the beneficiary.

X

Rejected

Transaction could not be fulfilled; funds reversed to the sender.

Endpoint hosts

EnvironmentHost
UAThttps://extadpartner.moneygram.com
Productionhttps://adpartner.moneygram.com

HTTP headers

HeaderValue
Content-Typetext/xml;charset=UTF-8
SOAPAction"urn:PartnerConnect#updateStatus"
AuthorizationBasic base64(username:password)
HostAs per environment noted above.

Request fields

XML tagRequiredTypeDescription
<mgiTransactionID>RequiredStringMoneyGram transaction reference generated during the Fund Transfer request. Must match transaction.mgiTransactionId.
<partnerTransactionID>RequiredStringUnique partner transaction reference.
<partnerReasonCode>RequiredNumeric (4 digits)Partner status / reason code.
<partnerReasonMessage>RequiredString (1–255)Free-text message for audit and logging.

Example request

  POST / (SOAP) text/xml
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
                  xmlns:par="http://moneygram.com/service/PartnerConnectService">
  <soapenv:Header/>
  <soapenv:Body>
    <par:updateStatus>
      <par:status>
        <par:mgiTransactionID>85008029000003252021</par:mgiTransactionID>
        <par:partnerTransactionID>7532462</par:partnerTransactionID>
        <par:partnerReasonCode>1504</par:partnerReasonCode>
        <par:partnerReasonMessage>Credited Successfully</par:partnerReasonMessage>
      </par:status>
    </par:updateStatus>
  </soapenv:Body>
</soapenv:Envelope>

Partner reason codes

Pending

CodeScenarioMoneyGram action
1200Transaction acknowledged — delivery in progressAwaits final status.
1201OFAC holdFunds reversed to the sender immediately.
1205Other pendingFunds reversed to the sender immediately.
1213Pending wallet setupAwaits final status.
1214Pending receiver confirmationAwaits final status.
1215Communication error with partnerAwaits final status.
1216Pending KYC processAwaits final status.

Received

CodeScenarioMoneyGram action
1504Transaction delivered — confirmedDelivery notification sent to the sender.
1505Transaction delivered — assumedDelivery assumed; may later move to rejected if updated by a downstream system.

Rejected

All rejection codes trigger immediate reversal of funds to the sender.

CodeScenario
1401Account closed
1402Account unavailable for deposit
1404Invalid account number
1406Account no longer active
1409Other rejected
1410Invalid transaction amount
1424Invalid phone number
1425Invalid email address
1426Blocked account
1427Business account
1428Minor account
1429Joint account
1430Restricted account
1431Mobile wallet not set up
1432Invalid / insufficient ID
1433Transaction declined by receiver
1434Transaction expired
1435Insufficient prefund
1436Limit exceeded
1437Regulatory reason
1438Commercial account
1439Account name mismatch
1440Account exceeds monthly accumulated amount
1441Account exceeds weekly accumulated amount
1442Account exceeds daily accumulated amount
1443Transaction amount over limit
1444Invalid receiver ID
1445Transaction payment reversed
1446Invalid account currency

Responses

Accepted Successful response
updateStatusResponse text/xml
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
                  xmlns:par="http://moneygram.com/service/PartnerConnectService">
  <soapenv:Header/>
  <soapenv:Body>
    <par:updateStatusResponse/>
  </soapenv:Body>
</soapenv:Envelope>
Fault Invalid state transition
SOAP Fault text/xml
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
                  xmlns:par="http://moneygram.com/service/PartnerConnectService">
  <soapenv:Body>
    <soapenv:Fault>
      <faultcode>soapenv:Server</faultcode>
      <faultstring>User input error</faultstring>
      <detail>
        <par:updateStatusFault>
          <errorCode>9500</errorCode>
          <errorMessage>Invalid State Transition: Transaction 70972240 is in state REJ. Requested state is RECEIVED.</errorMessage>
        </par:updateStatusFault>
      </detail>
    </soapenv:Fault>
  </soapenv:Body>
</soapenv:Envelope>
Fault Authentication failure
SOAP Fault text/xml
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
  <soapenv:Body>
    <soapenv:Fault>
      <faultcode>soapenv:client</faultcode>
      <faultstring>Authentication Failed</faultstring>
    </soapenv:Fault>
  </soapenv:Body>
</soapenv:Envelope>
Fault Internal server error
SOAP Fault text/xml
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
  <soapenv:Body>
    <soapenv:Fault>
      <faultcode>soapenv:Server</faultcode>
      <faultstring>Transaction status not updated. Internal system error</faultstring>
    </soapenv:Fault>
  </soapenv:Body>
</soapenv:Envelope>

Fault codes

CodeScenarioFault messageExpected partner handling
soapenv:clientUsername / password mismatchAuthentication FailedPush callback to error queue; contact MGI Support; retry only after updated credentials are confirmed.
soapenv:ServerInternal server errorTransaction status not updated. Internal system errorRetry until successful.
9000Previous status unknownUnable to update transaction, previous notification code is UnknownPush to error queue and await MGI guidance.
9100Transaction not foundTransaction does not existContact MGI Support.
9200Security issueAgent is not authorizedVerify credentials and contact MGI Support if needed.
9300Unknown reason codeReason Code is not validRetry with the correct reason code.
9400Already processedTransaction is already receivedTreat as success. Do not retry.
9500Invalid state transitionInvalid State TransitionRaise alert and investigate immediately.
9600Communication / server issue treated as successVariesTreat as success if so instructed in the integration agreement.

Idempotency

i
The updateStatus operation is idempotent. Partners may safely resend the same payload when the request times out, the response is not received, a communication failure occurs, or a temporary server issue occurs. Retries must use identical transaction identifiers and the same status payload.

Retry policy

When a callback fails due to timeout, communication failure, or server error, the partner must retry the same payload for up to 24 hours using the following intervals:

AttemptDelay
12 minutes
210 minutes
330 minutes
460 minutes
52 hours
64 hours
78 hours
812 hours
916 hours
1020 hours
1124 hours

If the callback continues to fail after 24 hours, the partner must contact MGI Support.

!
Retry rules
  • Retry only with the identical payload.
  • Fault codes 9400 or 9600 are treated as successful.
  • Manual callback support — including bulk replay — must be available on request from MoneyGram Operations.

Implementation expectations

CapabilityExpectation
AuthenticationUse MoneyGram-issued credentials.
IdempotencySafe retry of identical callback payloads.
Status mappingSend only bilaterally agreed reason codes.
Transaction linkingmgiTransactionID must match the original Fund Transfer transaction.
Retry supportRetry failed callbacks for up to 24 hours per the defined schedule.
MonitoringQueue and monitor failed callbacks.
Manual operationsSupport manual and bulk callback replay on request.