API Reference

Transaction Webhook

A webhook that will provider information about when a transaction is updated.

Registering a Webhook URL

Please contact system administrators to register a webhook URL for transaction webhooks. Below is an example payload provided by the transaction webhook upon updates made to said transaction(s).


Payload Examples

{
  "category": "transactions",
  "action": "INSERT",
  "data": {
    "company": "tob merc",
    "uuid": "2b11a4bf-5712-4700-a27c-93cd3c0bff46",
    "numericId": 83847,
    "method": "ACH",
    "type": "Debit",
    "amount": 9000,
    "status": "Created",
    "standardEntryClassCode": "WEB",
    "createdAt": "2025-10-13T15:28:15.897246839Z",
    "externalUniqueId": "333",
    "description": "test this is for a loan",
    "memo": null,
    "externalCustomerId": null,
    "holdDetails": null,
    "changeDetails": null,
    "voidDetails": null,
    "paymentDetails": {
      "name": "Test txn",
      "accountType": "Checking",
      "routingNumber": "022000046",
      "bankDetails": {
        "address": "2ND FLOOR",
        "areaCode": "800",
        "city": "AMHERST",
        "state": "NY",
        "name": "M & T BANK",
        "phonePrefix": "724",
        "phoneSuffix": "2240",
        "zip": "14228",
        "zipExt": "0000",
        "servicingFRBNumber": "021001208"
      }
    },
    "batchDetails": null,
    "settlementDetails": null,
    "returnDetails": null,
    "rejectDetails": null
  }
}
{
  "category": "transactions",
  "action": "INSERT",
  "data": {
    "company": "tob merc",
    "uuid": "3b21b23f-ad07-4099-877e-ab4fbbe26d09",
    "numericId": 83849,
    "method": "ACH",
    "type": "Credit",
    "amount": 200000,
    "status": "Held",
    "standardEntryClassCode": "WEB",
    "createdAt": "2025-10-13T15:58:12.685699921Z",
    "externalUniqueId": null,
    "description": null,
    "memo": null,
    "externalCustomerId": null,
    "holdDetails": {
      "holdReason": "Transaction amount brings prefund used above the maximum",
      "holdCode": "H15",
      "releasedAt": null
    },
    "changeDetails": null,
    "voidDetails": null,
    "paymentDetails": {
      "name": "Too Much",
      "accountType": "Checking",
      "routingNumber": "071000013",
      "bankDetails": {
        "address": "10430 HIGHLAND MANOR DRIVE",
        "areaCode": "800",
        "city": "TAMPA",
        "state": "FL",
        "name": "JPMORGAN CHASE BANK, NA",
        "phonePrefix": "677",
        "phoneSuffix": "7477",
        "zip": "33610",
        "zipExt": "0000",
        "servicingFRBNumber": "071000301"
      }
    },
    "batchDetails": null,
    "settlementDetails": null,
    "returnDetails": null,
    "rejectDetails": null
  }
}
{
  "category": "transactions",
  "action": "MODIFY",
  "data": {
    "company": "tob merc",
    "uuid": "2e593a67-6357-4d6f-9c52-6f75ef59af6f",
    "numericId": 83848,
    "method": "ACH",
    "type": "Debit",
    "amount": 12300,
    "status": "Void",
    "standardEntryClassCode": "WEB",
    "createdAt": "2025-10-13T15:56:00.489119468Z",
    "externalUniqueId": null,
    "description": null,
    "memo": null,
    "externalCustomerId": null,
    "holdDetails": null,
    "changeDetails": null,
    "voidDetails": {
      "voidedAt": "2025-10-13T15:56:11.926230204Z"
    },
    "paymentDetails": {
      "name": "Josh",
      "accountType": "Checking",
      "routingNumber": "121000248",
      "bankDetails": {
        "address": "7TH FL,  MAC N9300-074",
        "areaCode": "800",
        "city": "MINNEAPOLIS",
        "state": "MN",
        "name": "WELLS FARGO BANK, NA",
        "phonePrefix": "745",
        "phoneSuffix": "2426",
        "zip": "55415",
        "zipExt": "0000",
        "servicingFRBNumber": "121000374"
      }
    },
    "batchDetails": null,
    "settlementDetails": null,
    "returnDetails": null,
    "rejectDetails": null
  }
}
{
  "category": "transactions",
  "action": "MODIFY",
  "data": {
    "company": "merchant1",
    "uuid": "a00b4fdb-6e61-4f06-812d-493058447042",
    "numericId": 99,
    "method": "RCC",
    "type": "Debit",
    "amount": 482,
    "status": "Returned",
    "standardEntryClassCode": null,
    "createdAt": "2025-05-28T19:16:28.091530868Z",
    "externalUniqueId": null,
    "holdDetails": null,
    "changeDetails": null,
    "voidDetails": null,
    "rejectDetails": null,
    "paymentDetails": {
      "name": "Kyle Bode",
      "accountType": "Checking",
      "routingNumber": "121000248",
      "bankDetails": {
        "address": "7TH FL,  MAC N9300-074",
        "areaCode": "800",
        "city": "MINNEAPOLIS",
        "state": "MN",
        "name": "WELLS FARGO BANK, NA",
        "phonePrefix": "745",
        "phoneSuffix": "2426",
        "zip": "55415",
        "zipExt": "0000",
        "servicingFRBNumber": "121000374"
      }
    },
    "batchDetails": {
      "batchUuid": null,
      "batchNumericId": null,
      "batchedAt": "2025-05-30T15:29:07.016232064Z"
    },
    "settlementDetails": {
      "settlementUuid": null,
      "settlementNumericId": null,
      "expectedToSettleAt": null,
      "settlementProcessedAt": null,
      "lateReturnSettlementUuid": null,
      "lateReturnSettlementNumericId": null,
      "lateReturnSettlementProcessedAt": null
    },
    "returnDetails": {
      "returnCode": "A",
      "returnReason": "NSF - Not Sufficient Funds",
      "returnedAt": "2025-05-30T15:29:15.894111371Z",
      "lateReturnedAt": null
    }
  }
}

The action field will only ever be one of two values: "INSERT" or "MODIFY". This action field, along with the category field, details the type of action that is expected with the following payload data.

Other important fields include batchDetails, returnDetails, settlementDetails, and paymentDetails. These fields are objects which contain additional information regarding the transactions batch information, return information, settlement information, and payment information respectively.

There are fields that are populated upon certain actions happening the transaction. These fields include batchDetails, returnDetails, settlementDetails, holdDetails, changeDetails, voidDetails, and rejectDetails. These fields will be populated when a transaction is batched, a transaction is returned, a transaction is settled, a transaction is held, a transaction is changed as a result of a NOC, a transaction is voided, or a transaction is rejected respectively. As shown in the example above, if those processes do not happen on the transaction, then the objects are null and are not populated.


Schema

This is the schema for the payload of the transaction webhook

{
  "category": "string",
  "action": "string",
  "data": {
    "company": "string",
    "uuid": "string",
    "numericId": int,
    "method": "string",
    "type": "string",
    "amount": int,
    "status": "string",
    "standardEntryClassCode": "string",
    "createdAt": "string",
    "externalUniqueId": "string",
    "description": "string",
    "memo": "string",
    "externalCustomerId": "string",
    "rejectDetails": {
      "rejectReason": "string",
      "rejectedAt": "string",
      "restoredAt": "string (date-time timestamp)"
    },
    "holdDetails": {
      "holdReason": "string",
      "holdCode": "string",
      "releasedAt": "string (date-time timestamp)"
    },
    "changeDetails": {
      "changeCode": "string",
      "changeReason": "string",
      "changedAt": "string",
      "oldValues": {
        "accountNumber": "string" | null,
          "accountType": "string" | null,
          "bankName": "string" | null,
          "routingNumber": "string" | null
      },
      "newValues": {
        "accountNumber": "string" | null,
          "accountType": "string" | null,
          "bankName": "string" | null,
          "routingNumber": "string" | null
      },
      "filterUuid": "string"
    },
    "voidDetails": {
      "voidedAt": "string (date-time timestamp)"
    },
    "paymentDetails": {
      "name": "string",
      "accountType": "string",
      "routingNumber": "string",
      "bankDetails": {
        "address": "string",
        "areaCode": "string",
        "city": "string",
        "state": "string",
        "name": "string",
        "phonePrefix": "string",
        "phoneSuffix": "string",
        "zip": "string",
        "zipExt": "string",
        "servicingFRBNumber": "string"
      }
    },
    "batchDetails": {
      "batchUuid": "string (nullable)",
      "batchNumericId": "integer (nullable)",
      "batchedAt": "string (date-time, nullable)"
    },
    "settlementDetails": {
      "settlementUuid": "string",
      "settlementNumericId": "integer",
      "expectedToSettleAt": "string",
      "settlementProcessedAt": "string (date-time timestamp)",
      "lateReturnSettlementUuid": "string",
      "lateReturnSettlementNumericId": "integer",
      "lateReturnSettlementProcessedAt": "string (date-time timestamp)"
    },
    "returnDetails": {
      "returnCode": "string",
      "returnReason": "string",
      "returnNumericId": "string",
      "returnUuid": "string",
      "returnedAt": "string (date-time timestamp)",
      "lateReturnedAt": "string (date-time timestamp)"
    },
  }
}