Webhook Field Index

The table below contains a comprehensive list of all fields that appear within Spidr webhooks, along with their description.

Webhook Field Index

FieldDescriptionAppears in (Webhook Types)
accountIdUnique identifier for the account.All account, card, transaction, and achAccount webhooks
accountNumberAccount number associated with the account.account.create
achAccountIdUnique identifier for the ACH account.achAccount.create, achAccount.remove, transaction.createAch
achRequestIdUnique identifier for the ACH request.transaction.createAch, transaction.cancelAch
actionRequestorObject containing details about the source of the action.All webhooks
actionRequestor.sourceSource of the action ("api" or "sst").All webhooks
actionRequestor.sstRequestorUserEmailEmail of the SST user who initiated the action (if source is "sst").account.statusUpdate, card.resetPin, transaction.reverseFee, transaction.adj
actionRequestor.sstRequestorUserIdID of the SST user who initiated the action (if source is "sst").account.statusUpdate, card.resetPin, transaction.reverseFee, transaction.adj
adjustmentTypeType of adjustment applied.transaction.adj
amountAmount of the transaction or fee.transaction.createAch, transaction.createFee, transaction.adj, transaction.payment, transaction.a2a
archiveReasonReason for archiving a user.user.archive
cardIdUnique identifier for the card.All card webhooks, cardId also in responseBody for some card webhooks
cardNumberMasked card number.card.reissued (responseBody), card.replaced (responseBody.card)
cardExpiryDateCard expiration date.card.reissued (responseBody), card.replaced (responseBody.card)
changesArray of objects describing changes made (field, oldValue, newValue).user.edit, user.archive, account.shippingAddressUpdate, account.statusUpdate, account.featureUpdate, card.activate, card.replaced, card.pinChanged
changes.fieldName of the field that was changed.All webhooks with changes
changes.oldValuePrevious value of the changed field.All webhooks with changes
changes.newValueNew value of the changed field.All webhooks with changes
companyIdThe ID of the company associated with the webhook.All webhooks
cipCustomer Identification Program details.user.create
creditDebitIndicatorIndicates if the adjustment is a credit or debit.transaction.adj
dateArchivedDate the user was archived.user.archive (in changes)
dateOfBirthUser's date of birth.user.edit (in changes)
debitCreditIndicatorIndicates if the ACH transaction is a debit or credit.transaction.createAch
descriptionDescription of the transaction or adjustment.transaction.createAch, transaction.adj
emailUser's email address.user.edit (in changes)
encryptedCardDataEncrypted card data for mobile wallet provisioning.card.mobileWalletProvision (responseBody)
expiresExpiry date/time for a card image URL.card.fetchImageUrl (responseBody)
features.achTransfersIndicates if ACH transfers are enabled for the account.account.featureUpdate (in changes.field)
feeTypeType of fee applied.transaction.createFee
firstNameUser's first name.user.edit (in changes)
idUnique identifier for the user (in responseBody).user.create (responseBody)
isArchivedIndicates if the user/account/card is archived.user.archive (in changes), card.replaced (in changes)
lastNameUser's last name.user.edit (in changes)
messageMessage attached to a transfer.transaction.a2a
newBalanceNew balance after transaction.transaction.createFee, transaction.reverseFee, transaction.adj, transaction.payment, transaction.a2a (responseBody)
newStatusNew status after an update.account.statusUpdate (responseBody), card.frozen (responseBody), card.unfrozen (responseBody), card.statusUpdate (responseBody)
oldBalancePrevious balance before transaction.transaction.createFee, transaction.reverseFee, transaction.adj, transaction.payment, transaction.a2a (responseBody)
originalFeeTransactionIdThe original fee transaction ID being reversed.transaction.reverseFee
paymentTransactionIdUnique identifier for the payment transaction.transaction.payment (responseBody)
paymentTypeType of payment.transaction.payment
productIdUnique identifier for the product.All webhooks except user.retrieveId, user.retrieveIdHistory, ZTM webhooks
providerDetailsRaw payload from the associated external provider.transaction.payment (in data), transaction.adj (in data)
providerDetails.orig_nameOriginator name - the name of the sending institution or entity for incoming ACH.transaction.payment (in data.providerDetails), transaction.adj (in data.providerDetails)
providerDetails.orig_acct_numberOriginator account number - the source account for the incoming ACH.transaction.payment (in data.providerDetails), transaction.adj (in data.providerDetails)
providerDetails.odfi_routing_numberODFI routing number - Originating Depository Financial Institution routing number.transaction.payment (in data.providerDetails), transaction.adj (in data.providerDetails)
removedBoolean indicating if an ACH account was removed.achAccount.remove (responseBody)
requestIdUnique identifier for the request that triggered the webhook.All webhooks
responseBodyContains the full result of the API request that generated the webhook.All webhooks
responseBody.accountIdAccount ID in the response body.account.create, account.featureUpdate
responseBody.achAccountIdACH Account ID in the response body.achAccount.create
responseBody.adjustmentTransactionIdAdjustment transaction ID in the response body.transaction.adj
responseBody.cardCard object in the response body.card.replaced
responseBody.cardExpiryDateCard expiry date in the response body.card.reissued
responseBody.cardIdCard ID in the response body.card.activate, card.fetchImageUrl, card.pinToken, card.resetPin
responseBody.cardNumberCard number in the response body.card.reissued, card.replaced
responseBody.encryptedCardDataEncrypted card data in the response body.card.mobileWalletProvision
responseBody.expiresExpiry date/time in the response body.card.fetchImageUrl
responseBody.feeTransactionIdFee transaction ID in the response body.transaction.createFee
responseBody.idUser ID in the response body.user.create
responseBody.newBalanceNew balance in the response body.transaction.createFee, transaction.reverseFee, transaction.adj, transaction.payment, transaction.a2a
responseBody.newStatusNew status in the response body.account.statusUpdate, card.frozen, card.unfrozen, card.statusUpdate
responseBody.oldBalanceOld balance in the response body.transaction.createFee, transaction.reverseFee, transaction.adj, transaction.payment, transaction.a2a
responseBody.paymentTransactionIdPayment transaction ID in the response body.transaction.payment
responseBody.removedIndicates if an ACH account was removed in the response body.achAccount.remove
responseBody.spidrActionIdUnique identifier for the Spidr action in the response body.All webhooks with responseBody
responseBody.statusStatus in the response body.transaction.createFee, transaction.reverseFee, transaction.adj, transaction.payment, transaction.cancelAch, card.activate, card.resetPin
responseBody.updatedBoolean indicating if an object was updated in the response body.user.edit, user.archive, account.featureUpdate
responseBody.urlCard image URL in the response body.card.fetchImageUrl
reversalTransactionIdUnique identifier for the reversal transaction.transaction.reverseFee (responseBody)
senderMessageMessage from the sender in a transfer.transaction.a2a
spidrActionIdUnique identifier for the Spidr action.All webhooks
statusStatus of the card or transaction.card.activate (responseBody), card.resetPin (responseBody), transaction.createFee, transaction.reverseFee, transaction.adj, transaction.payment, transaction.cancelAch
statusReasonReason for the status change.account.statusUpdate (responseBody), account.statusUpdate (changes)
tokenPIN change token for a card.card.pinToken (responseBody)
transferToAccountIdAccount ID to which funds are transferred.transaction.a2a
typeType of transaction or webhook.transaction.a2a, transaction.payment
updatedBoolean indicating if an object was updated.user.edit, user.archive, account.featureUpdate (responseBody)
urlCard image URL.card.fetchImageUrl (responseBody)
userIdThe ID of the user associated with the webhook event.All webhooks
uuidUnique identifier for the webhook event.All webhooks
webhookTypeThe type of webhook event (e.g., user.archive, account.create).All webhooks
ztmDataRisk and risk provider object.user.create, achAccount.create, auth.authApproved (in data)

ZTM Webhook-Specific Fields

The following fields may appear in ZTM (Zero Touch Monitoring) webhooks such as idvSession.*, watchlistScreening.*, and user.cipStatusUpdate:

FieldDescriptionAppears in (Webhook Types)
cipStatusCurrent CIP (Customer Identification Program) status of the user.user.cipStatusUpdate
idvSessionIdUnique identifier for the identity verification session.idvSession.* webhooks
idvSessionStatusCurrent status of the identity verification session.idvSession.* webhooks
plaidIdvSessionIdPlaid's identifier for the IDV session.idvSession.* webhooks (when using Plaid)
requiresActionIndicates what action is required (e.g., manual review, retry).idvSession.manualReviewRequired, idvSession.needsDecision
watchlistHitIdUnique identifier for a watchlist screening hit.watchlistScreening.hitUpdate
watchlistScreeningIdUnique identifier for the watchlist screening.watchlistScreening.statusUpdate, watchlistScreening.hitUpdate
watchlistScreeningStatusCurrent status of the watchlist screening (e.g., clear, review, hit).watchlistScreening.statusUpdate

Provider Webhook-Specific Fields

The following fields appear in provider-originated webhooks such as account.pinChangeStageSuccess and account.pinChange. These webhooks have a data wrapper object instead of top-level fields:

FieldDescriptionAppears in (Webhook Types)
dataWrapper object containing the webhook payload data.account.pinChangeStageSuccess, account.pinChange
data.accountIdUnique identifier for the account.account.pinChangeStageSuccess, account.pinChange
data.accountNumberAccount number associated with the account.account.pinChangeStageSuccess, account.pinChange
data.cardIdUnique identifier for the card.account.pinChange
data.productIdUnique identifier for the product.account.pinChangeStageSuccess, account.pinChange
data.providerDetailsObject containing raw provider data (e.g., Galileo event details).account.pinChangeStageSuccess, account.pinChange
data.providerDetails.providerName of the provider (e.g., "galileo").account.pinChangeStageSuccess, account.pinChange
data.providerDetails.typeProvider event type (e.g., "agserv_PIN_change_success", "system_pin_change").account.pinChangeStageSuccess, account.pinChange
data.providerDetails.eventTypeCategory of the provider event (e.g., "AccountEvent").account.pinChangeStageSuccess, account.pinChange
data.timestampUTC timestamp of when the event occurred.account.pinChangeStageSuccess, account.pinChange
data.userIdUnique identifier for the user.account.pinChangeStageSuccess, account.pinChange

Authorization and Settlement Webhook Fields

The following fields appear in authorization and settlement webhooks such as auth.authApproved, deniedAuth, and transaction.settle. These webhooks have a data wrapper object containing transaction details from payment processors:

FieldDescriptionAppears in (Webhook Types)
dataWrapper object containing the webhook payload data.auth.authApproved, deniedAuth, transaction.settle
data.accountIdUnique identifier for the account.auth.authApproved, deniedAuth, transaction.settle
data.amountTransaction amount (negative for debits/purchases).auth.authApproved, deniedAuth, transaction.settle
data.authDateTimestamp when the authorization occurred.auth.authApproved, deniedAuth, transaction.settle
data.calculatedBalanceAccount balance after the transaction.auth.authApproved, deniedAuth, transaction.settle
data.cardIdUnique identifier for the card used in the transaction.auth.authApproved, deniedAuth, transaction.settle
data.descriptionMerchant or transaction description.auth.authApproved, deniedAuth, transaction.settle
data.mccCodeMerchant Category Code for the transaction.auth.authApproved, deniedAuth, transaction.settle
data.parentAuthIdID of the parent authorization for a settlement.transaction.settle
data.postedDateDate/time when the transaction was posted (null for pending authorizations).auth.authApproved, deniedAuth, transaction.settle
data.productIdUnique identifier for the product.auth.authApproved, deniedAuth, transaction.settle
data.providerDetailsObject containing raw provider/processor data.auth.authApproved, deniedAuth, transaction.settle
data.providerDetails.additionalFieldsObject containing additional provider-specific fields.auth.authApproved, deniedAuth, transaction.settle
data.providerDetails.additionalFields.response_codeResponse code from the payment processor (e.g., "00" for approved, "5C" for declined).auth.authApproved, deniedAuth
data.providerDetails.additionalFields.response_reasonsHuman-readable reason for declined transactions.deniedAuth
data.providerDetails.additionalFields.typeType of transaction event (e.g., "auth", "denied_auth", "setl").auth.authApproved, deniedAuth, transaction.settle
data.providerDetails.auth_idAuthorization ID from the payment processor.auth.authApproved, deniedAuth, transaction.settle
data.providerDetails.auth_tsAuthorization timestamp from the processor.auth.authApproved, deniedAuth, transaction.settle
data.providerDetails.amtTransaction amount from the processor.auth.authApproved, deniedAuth, transaction.settle
data.providerDetails.card_idCard identifier from the payment processor.auth.authApproved, deniedAuth, transaction.settle
data.providerDetails.formatted_merchant_descFormatted merchant description.auth.authApproved, deniedAuth, transaction.settle
data.providerDetails.mcc_codeMerchant Category Code from the processor.auth.authApproved, deniedAuth, transaction.settle
data.providerDetails.merchant_idMerchant identifier.auth.authApproved, deniedAuth, transaction.settle
data.providerDetails.network_codeCard network code (e.g., "V" for Visa).auth.authApproved, deniedAuth, transaction.settle
data.providerDetails.pmt_ref_noPayment reference number.auth.authApproved, deniedAuth, transaction.settle
data.providerDetails.providerName of the webhook provider (e.g., "galileo-webhook").auth.authApproved, deniedAuth, transaction.settle
data.providerDetails.trans_codeTransaction code from the processor (e.g., "VIA", "VSA").auth.authApproved, deniedAuth, transaction.settle
data.providerDetails.vendorName of the payment processor vendor (e.g., "galileo").auth.authApproved, deniedAuth, transaction.settle
data.statusCurrent status of the transaction (e.g., "pending", "settled").auth.authApproved, deniedAuth, transaction.settle
data.transactionIdUnique identifier for the transaction in Spidr.auth.authApproved, deniedAuth, transaction.settle
data.txnKeyUnique key identifying the transaction.auth.authApproved, deniedAuth, transaction.settle
data.txnRequestIdRequest ID for the transaction (links settlements to authorizations).auth.authApproved, deniedAuth, transaction.settle
data.txnTypeType of transaction (e.g., "purchase.authorization", "purchase.settlement", "other.denied_auth").auth.authApproved, deniedAuth, transaction.settle
data.userIdUnique identifier for the user.auth.authApproved, deniedAuth, transaction.settle
data.vendorName of the payment processor vendor.auth.authApproved, deniedAuth, transaction.settle
data.ztmDataZTM risk assessment data (when ZTM is enabled).auth.authApproved
data.ztmData.isTrainingModeIndicates if ZTM is running in training mode.auth.authApproved
data.ztmData.providerErrorsArray of errors from risk providers.auth.authApproved
data.ztmData.providerResponsesArray of responses from risk providers.auth.authApproved
data.ztmData.providerSummarySummary of risk assessment from all providers.auth.authApproved
data.ztmData.providerSummary.riskConfigurationIdID of the risk configuration used.auth.authApproved
data.ztmData.providerSummary.riskLevelOverall risk level determined by providers.auth.authApproved
data.ztmData.riskLevelOverall risk level for the transaction (e.g., "low", "medium", "high").auth.authApproved