Hold a payment

Temporarily prevent a payment from processing


As illustrated in the previous two sections, due to the asynchronous nature of ACH payments there may be instances where a payment is created via an API request and subsequently needs to be completely stopped from processing or cancelled. But what if you just wanted to temporarily stop a payment from processing rather than completely cancelling it or deciding on a new payment date. Well, that's what hold is for!

This function isn't used often, but could be handy in situations where there is a pending customer verification (KYC) or maybe a product shipment delay.

As indicated on the link shared above, as long as the current status of the payment is scheduled it can be placed on hold via a simple API call.

Fields and values


Third time is a charm

Remember to pass in the Transact_ReferenceID as it's the key to querying the desired payment record to place on hold

Placing a payment on hold is almost exactly like cancelling a payment with the one difference being the value pass in the Command field:

Field NameUsageField Value Format ConstraintsMax Length
CommandRequiredSet to ECheck.Hold50
Transact_ReferenceIDRequiredA unique identifier assigned to the original payment by ACHQ50

Remember, all API requests should always include the fields detailed in the General Implementation Rules.

Resulting in the following request:

curl --request POST \
     --url 'https://www.speedchex.com/datalinks/transact.aspx/?ProviderID=99&Provider_GateKey=test&Provider_GateID=test&MerchantID=2001&Merchant_GateID=test&Merchant_GateKey=test&CommandVersion=2.0&Command=ECheck.Void&cancel=' \
     --header 'Content-Type: application/x-www-form-urlencoded' \
     --data Transact_ReferenceID=14477207

and response:

  "CommandStatus": "Approved",
  "Description": "Command Successful.  Approved.",
  "ErrorInformation": null,
  "ExpressVerify": {
    "Status": null,
    "Code": null,
    "Description": null
  "ResponseData": null,
  "ACHQToken": null,
  "Provider_TransactionID": null,
  "TransAct_ReferenceID": "14477210",
  "ResponseCode": "000"

View more at the 🛑 cancel a payment endpoint