Legacy webhook body examples
Every webhook will include a body with the following keys:
eventType
: (string) The event that triggered the webhook. See the Event type table for a full list of possible valuesdata
: (object) Information about the event
This section contains examples of the data
object returned in the body of a webhook response.
Transaction events
The data
object will be shaped the same for any transaction event. To see full examples of the values contained in the data
object, see the example 200 response in the Run card transaction endpoint.
{
"eventType": "TRANSACTION_CAPTURED",
"data": {
"id": "2eruYW1lIjoidXNhZXBheSIZYXABCiOiIxMDAwMzkiLCJyZWZOdW1iZXIiOiZYXABCcmFuZG9tIjowLCJjdXJyZW5jeSI6InVzZCJ9",
"shouldUpdateCard": true,
"merchantId": "100039",
"transactionDate": "2019-12-23T20:50:23.060Z",
"authCode": "458399",
"transactionStatus": "pending",
"amount": 1.15,
"transactionType": "sale",
"currency": "USD",
"gatewayResponse": {...},
"data": {
"amount": 1.15,
"currency": "USD",
"settlementCurrency": "USD",
"customFields": {...},
"customer": {...},
"cart": {...},
"lodging": {...}
},
"card": {...},
"kountResponse": {...},
"token": {...}
}
}
Card events
Account closed
When you get this webhook, it is safe to delete the saved card token. For information about deleting tokens, see the Delete card tokens endpoint.
{
"eventType": "ACCOUNT_UPDATER_ACCOUNT_CLOSED",
"data": {
"updateCode": "203",
"reportDate": "2021-09-09T16:44:41.000Z",
"merchantId": "101039",
"originalCard": {
"lastFour": "2223",
"firstSix": "400060"
},
"tokenex": {
"lastFour": "2223",
"token": "192b8c0f-ef3a-4e13-8465-2b41971db046",
"firstSix": "400060"
},
"card": {
"expirationYear": "02",
"expirationMonth": "02"
},
"cardNumber": "400060******2223",
"updateType": 30
}
}
Card updated
To see full examples of the values contained in the data
object, see the example 200 response in the Save card token endpoint. When you get this webhook, it is purely informational. You do not need to take any action.
The following example shows that the expiration date has been updated.
{
"eventType": "CARD_DATA_UPDATED",
"data": {
"updateCode": "201",
"reportDate": "2021-09-09T16:12:32.000Z",
"merchantId": "101039",
"originalCard": {
"lastFour": "2222",
"firstSix": "400020"
},
"tokenex": {
"lastFour": "2222",
"token": "ac719225-cb55-4605-a673-8f0ccb822c4c",
"firstSix": "400020"
},
"card": {
"expirationYear": "2033",
"expirationMonth": "02"
},
"cardNumber": "400020******2222",
"updateType": 20
}
}
}
The following example shows that both the expiration date and the card number have been updated.
{
"eventType": "CARD_DATA_UPDATED",
"data": {
"updateCode": "202",
"reportDate": "2021-09-09T16:44:41.000Z",
"merchantId": "101039",
"originalCard": {
"lastFour": "2224",
"firstSix": "400010"
},
"tokenex": {
"lastFour": "2229",
"token": "7f657119-a7e6-47cb-a0b5-153db253512a",
"firstSix": "400010"
},
"card": {
"expirationYear": "2033",
"expirationMonth": "02"
},
"cardNumber": "400010******2229",
"updateType": 10
}
}
Card saved
To see full examples of the values contained in the data
object, see the example 200 response in the Save card token endpoint.
{
"eventType": "CARD_SAVED",
"data": {
"data": {
"customer": {...}
},
"merchantId": "101040",
"shouldUpdateCard": true,
"cardType": "masterCard",
"kountResponse": {...},
"card": {
"expirationYear": "2021",
"cardType": "masterCard",
"expirationMonth": "10",
"cardHolderName": "Jane Doe"
},
"token": {
"lastFour": "5100",
"cardType": "masterCard",
"firstSix": "510510",
"token": "b01bfaee-31b2-4222-8d89-24d1a42fd50e"
}
}
}
Contact cardholder
When you get this webhook, you should contact the cardholder so you can find out what they want to do about the saved card.
{
"eventType": "ACCOUNT_UPDATER_CONTACT_CARDHOLDER",
"data": {
"updateCode": "204",
"reportDate": "2021-09-09T16:46:41.000Z",
"merchantId": "101039",
"originalCard": {
"lastFour": "2221",
"firstSix": "400070"
},
"tokenex": {
"lastFour": "2221",
"token": "269c3057-4f7d-47a2-80cd-3196f803631e",
"firstSix": "400070"
},
"card": {
"expirationYear": "02",
"expirationMonth": "02"
},
"cardNumber": "400070******2221",
"updateType": 40
}
}
Echeck events
Echeck saved
To see full examples of the values contained in the data
object, see the example 200 response in the Save echeck token reference section.
{
"eventType": "ECHECK_SAVED",
"data": {
"data": {
"key": "871446789.5292712865664733",
"merchantId": "100039",
"data": {
"customer": {...},
"customFields": {...}
},
"tokenex": {
"success": true,
"error": null,
"token": "871446789",
"sesssionID": "fca21ef9067d4f009e58e302dbc115a4",
"customerRefNumber": "b210bad6-a013-4e91-b5bf-0",
"characterCount": 9,
"lastFour": "6789"
},
"dateCreated": "2019-12-30T18:06:15.188Z",
"dateLastModified": "2019-12-30T18:06:15.193Z",
"bank": {
"accountHolderName": "Todd Smitherton",
"routingNumber": "123456789"
}
}
}
}
Payout events
After configuring legacy webhooks for payouts, a webhook will be sent every time one of the following happens:
- A payout gets submitted (Note: This means that you will receive multiple webhooks when submitting a batch payout)
- A payout status changes
- A transfer status changes
For example, after the recipient accepts the payout, the data.transferStatus
changes to 20
.
For more information about the parameters returned in the data
object, see the specific Response parameters in the View a payout or View payouts endpoint.
Note
For payouts, the body of the webhook contains most of the possible parameters for a payout. To view the values for all the available parameters, use the View a payout or View payouts endpoint.
{
"eventType": "PAYOUT",
"data": {
"id": 2440195,
"payoutStatus": "pendingRecipientAction",
"transferStatus": "available",
"recipientRef": "testRecipient",
"providerRecipientRef": "testRecipient",
"batchRef": "batch-2022-12-12T22:04:25.568Z",
"amount": 22.25,
"currency": "USD",
"description": "Payout for company",
"payoutDate": "2022-12-12T22:04:53.000Z",
"payoutRef": "46237c84-4159-462e-9765-ef378b27f036",
"payoutProviderRef": "46237c84-4159-462e-9765-ef378b27f036",
"payoutProviderAdditionalRef": "NEBS07ZPPY4MY16P9",
"email": "[email protected]",
"firstName": "John",
"lastName": "Doe",
"phoneNumber": null,
"mobileNumber": null,
"addressLine1": null,
"addressLine2": null,
"city": null,
"region": null,
"postalCode": null,
"country": "US",
"countryOfBirth": null,
"countryOfNationality": null,
"providerResponse": "TransactionStatusType_Pending",
"recipientId": 1223456,
"providerId": 12608,
"payoutAccountId": 1234,
"providerType": "payquicker",
"createdAt": "2022-12-12T22:04:53.000Z",
"updatedAt": "2022-12-12T22:04:53.000Z",
"payoutId": 2440195
}
}
Spendback events
After configuring legacy webhooks for spendbacks, a webhook will be sent every time one of the following happens:
- A spendback is submitted
- A spendback is refunded
- A spendback status changes
For example, after the recipient's payout account has been debited, the data.spendbackStatus
changes to completed
.
For more information about the parameters returned in the data
object, see the specific Response parameters in the View a payout or View payouts endpoint.
Note
For payouts, the body of the webhook contains most of the possible parameters for a payout. To view the values for all the available parameters, use the View a spendback or View spendbacks endpoint.
{
"eventType": "SPENDBACK",
"data": {
"id": 5,
"spendbackStatus": "completed",
"spendbackRef": "18214ebf-6be5-4e34-8deb-3170f3ded4f8",
"providerSpendbackRef": "spnd_bk_343e4d77-7fea-11ed-9f8b-02450efa1c35",
"amount": 15,
"currency": "USD",
"description": null,
"spendbackDate": "2022-12-19T22:12:19.000Z",
"providerResponse": null,
"recipientRef": "[email protected]",
"recipientId": 138128,
"providerId": 12685,
"payoutAccountId": 3927,
"providerType": "masspay",
"spendbackType": 10,
"createdAt": "2022-12-19T22:12:19.000Z",
"updatedAt": "2022-12-19T22:12:19.000Z",
"spendbackId": 5
}
}
Subscription events
After being configured, webhooks will be sent every time a recurring payment is run through the subscription service.
You will also receive webhooks for all transaction events that have previously been configured.
To see full examples of the values contained in the data.paymentResult
object, see the example 200 response in the Run card transaction or Run echeck transaction endpoint.
The payment
object contains the values provided when the subscription was created.
{
"eventType": "SUBSCRIPTION_DETAILS",
"data": {
"dateCreated": "2020-09-21T17:27:46.836Z",
"accountId": "6862a4dc-490e-4eec-9a23-a3fec25979b6",
"customerRef": "metest2",
"paymentResult": {
"id": "eyJuYW1lIjoidXNhZXBheSIsIm1lcmNoYW50SWQiOiIxMDEwMzkiLCJyZWZOdW1iZXIiOiIzMTEzMjc5MDI0IiwicmFuZG9tIjowLCJjdXJyZW5jeSI6InVzZCJ9",
"merchantId": "101039",
"transactionDate": "2020-09-21T17:31:49.680Z",
"authCode": "026252",
"transactionStatus": "pending",
"amount": 10,
"transactionType": "sale",
"currency": "USD",
"gatewayResponse": {...},
"data": {
"amount": 10,
"currency": "USD",
"settlementCurrency": "USD",
"customer": {...},
"cart": {...}
},
"card": {...},
"kountResponse": {...},
"token": {...}
},
"dateLastModified": "2020-09-21T17:32:11.016Z",
"userName": "[email protected]",
"dateNextRun": "2020-10-21",
"active": true,
"schedule": {
"duration": 5,
"dateInitialBillingEnd": "2020-09-21",
"initialBillingAmount": null,
"balance": 30,
"scheduleType": 20,
"intervalCount": 1,
"initialBalance": 50,
"interval": "month"
},
"lastPaymentStatus": "success",
"dateLastRun": "2020-09-21T17:31:28.699Z",
"payment": {
"data": {
"amount": 10,
"currency": "USD",
"cart": {...},
"customer": {...}
},
"tokenex": {...},
"isProcessedFromServer": true,
"clientIp": "10.0.0.1"
},
"id": "cdd9d4b2-bf86-445b-8b54-59861a9ad3ae",
"accessRights": {
"merchantIds": {
"101039": "A"
}
}
}
}
Updated over 1 year ago