Partner Events

After you create a subscription to the event(s), you will receive notification(s) from us as callback(s). The Webhook API can return different types of events triggered by Sniptech. Each event response contains shared properties, but has a unique data object determined by its event type. The Event object common properties describes the properties shared by all events, and each event type describes the data properties that are unique to the specific event.

Event object common properties

The event objects returned from the Webhook API endpoints have the same structure.

Event API attribute name

Description

eventId

Unique identifier for the event.

timestamp


Date and time at which the event was created.

type

Description of the event (e.g., PFM.ACCOUNT.EXPIRES or DEALS.REWARD.EARNED)

data

Object containing data associated with the event.

Example


Full payload example (PFM.CONNECTION.RECONNECT):

  "eventId": "6cf63b1e-5afd-4222-a217-d3s6d748eeae",
"type": "PFM.CONNECTION.RECONNECT",
"timestamp": "2022-10-07T10:33:39.527Z",
"data": {
"connectionId": "29237c93-f64b-4a52-a5b5-45839605e136",
"status": "SUCCESS",
"userId": "80fb6b4d-705c-4796-9d12-124ade4fb14f"
}

Types of events

This is a list of all the types of events we currently send. Each event is following a pattern: [domain-name].[object].[action]. We may add more at any time, so in developing and maintaining your code, you should not assume that only these types exist.

AUDIENCE.CREATED

Occurs when an audience is created. Audiences can have status ACTIVE, INACTIVE or ARCHIVED.

"data": { 
"audienceId": "0502ad8e-7f53-436d-8e18-92b9494b9412",
"status": "ACTIVE",
"name": "Audience number 1",
"description": "This is an example audience"
"createdAt": "2023-04-12T13:45:00.000Z"
"updatedAt" : "2023-04-12T13:45:00.000Z"
"deals":
[{
"dealId" : "c6af2596-e508-4dd5-9cde-98a77e61f370"
}]
}

AUDIENCE.UPDATED

Occurs when an existing audience is updated. Updated fields can be name, description or status.

"data": { 
"audienceId": "0502ad8e-7f53-436d-8e18-92b9494b9412",
"status": "INACTIVE",
"name": "Audience number 1",
"description": "This is an example audience"
"createdAt": "2023-04-12T13:45:00.000Z"
"updatedAt" : "2023-04-13T13:45:00.000Z"
"deals":
[{
"dealId" : "c6af2596-e508-4dd5-9cde-98a77e61f370"
}]
}

AUDIENCE.DEALS.UPDATED

Occurs when a deal is linked or unlinked from an audience.

"data": { 
"audienceId": "0502ad8e-7f53-436d-8e18-92b9494b9412",
"status": "INACTIVE",
"name": "Audience number 1",
"description": "This is an example audience"
"createdAt": "2023-04-12T13:45:00.000Z"
"updatedAt" : "2023-04-13T13:45:00.000Z"
"deals":
[{
"dealId" : "c6af2596-e508-4dd5-9cde-98a77e61f370"
}, {
"dealId" : "9c323717-29ca-48a0-8d24-5b7e6656bf8b"
}]
}

PFM.ARCHIVED.TRANSACTIONS.UPDATED

Occurs when transaction details are updated in the Sniptech storage

"data":{
"userId": "1035fe45-7c51-47a2-834a-356bb1643a0f",
"connectionId": "efa28398-e205-46b2-9a65-2dd1e20ed10c",
"updatedTransactions": [{
"transactionId": "8ae89d62-7105-451d-8d6b-b6311203db14",
"recordDate": "2023-07-13T13:45:00.000Z",
"note": "purchase at Disneyland",
"amount": {
"value": "5",
"currency": "EUR"
},
"newMerchant": {
"merchantType": "BB",
"domainMerchantId":"b806ac66-8fc6-4bf3-957e-b78104bc1dbc"
},
"oldMerchant": {
"merchantType": "BB",
"domainMerchantId":"0029807e-68de-4432-a487-858da7296ff0"
},
"oldCategory": {
"categoryType": "BB",
"domainCategoryId": "1234"
},
"newCategory": {
"categoryType": "BB",
"domainCategoryId": "1234"
}]
}

PFM.CONNECTION.RECONNECT

Occurs whenever a user reconnects a bank account.

Possible statuses are: SUCCESS, FAILED, TIMEOUT

"data": {
"connectionId": "62237c93-f64b-4a52-a5b5-45839605e136",
"status": "SUCCESS",
"userId": "30fb6b4d-705c-4796-9d12-124ade4fb14f"
}

PFM.CONNECTION.REFRESH

Occurs whenever an existing connection has been refreshed.

Possible statuses are: SUCCESS, FAILED, TIMEOUT

"data": {
"connectionId":"6237c93-f64b-4a52-a5b5-45839605e136",
"status": "SUCCESS",
"userId": "30fb6b4d-705c-4796-9d12-124ade4fb14f"
}

PFM.CONNECTION.CREATE

Occurs whenever a user creates a bank connection.

Possible statuses are: SUCCESS, FAILED, TIMEOUT

"data": {
"connectionId": "62237c93-f64b-4a52-a5b5-45839605e136",
"status": "SUCCESS",
"userId": "30fb6b4d-705c-4796-9d12-124ade4fb14f"
}

PFM.CONNECTION.DELETE

Occurs whenever a user or system deletes a bank connection.

Event contains has only DELETED

"data": {
"connectionId": "29237c93-f64b-4a52-a5b5-45839605e136",
"status": "DELETED",
"userId": "20fb6b4d-705c-4796-9d12-124ade4fb14f"
}

PFM.CONNECTION.TRANSACTION.FETCH

Occurs whenever new transactions from the provider has been fetched

Statuses are: STARTED, FAILEDor SUCCESS

"data": {
"connectionId": "29237c93-f64b-4a52-a5b5-45839605e136",
"status": "STARTED",
"userId": "20fb6b4d-705c-4796-9d12-124ade4fb14f"
}

PFM.CONNECTION.CONSENT

Occurs when consent is revoked or expired

Statuses are: EXPIRED or REVOKED

"data": {
"connectionId": "62237c93-f64b-4a52-a5b5-45839605e136",
"status": "EXPIRED",
"userId": "20fb6b4d-705c-4796-9d12-124ade4fb14f"
}

PFM.CONNECTION.BANK.AUTHENTICATION

Occurs when bank authentication is started, failed or success.

Statuses are: STARTED, FAILEDor SUCCESS

"data": {
"connectionId": "62237c93-f64b-4a52-a5b5-45839605e136",
"status": "SUCCESS",
"userId": "20fb6b4d-705c-4796-9d12-124ade4fb14f"
}

PFM.CONNECTION.ACCOUNT.FETCH

Occurs whenever an account information is fetched from the provider (e.g. bank).

NOTE: this event doesn’t indicate the fetching of transactions. For this process, you can refer to PFM.CONNECTION.TRANSACTION.FETCH event.

Statuses are: STARTED, FAILEDor SUCCESS

"data": { 
"connectionId": "62237c93-f64b-4a52-a5b5-45839605e136",
"status": "SUCCESS",
"userId": "20fb6b4d-705c-4796-9d12-124ade4fb14f"
}

PFM.TRANSACTION.MATCHED

Occurs when a user transaction is matched with at least 1 merchant from another domain.

  • OB: Orange Buddies Store

  • DM: Sniptech Deal Merchant

  • GXL: GoCancel Organization (not implemented)

"data":{ 
"transactionId":"8b30e595-8bf3-4ce0-8ddf-2b6ac9703efb",
"userId":"0cae21cd-455a-4c5a-acfd-d1e3310548dc",
"domainMerchants":[
{
"merchantType":"OB",
"domainMerchantId":"123"
},
{
"merchantType":"OB",
"domainMerchantId":"325"
},{
{ "merchantType":"DM",
"domainMerchantId":"0acbb652-931a-4599-a7f5-134890bb1642"
}
]
}

PFM.TRANSACTIONS.UPDATED

Occurs when BudgetBakers updates values in a transaction.

"data":{
"userId": "1035fe45-7c51-47a2-834a-356bb1643a0f",
"connectionId": "efa28398-e205-46b2-9a65-2dd1e20ed10c",
"updatedTransactions": [{
"transactionId": "8ae89d62-7105-451d-8d6b-b6311203db14",
"recordDate": "2023-07-13T13:45:00.000Z",
"note": "purchase at Disneyland",
"amount": {
"value": "5",
"currency": "EUR"
},
"newMerchant": {
"merchantType": "BB",
"domainMerchantId":"b806ac66-8fc6-4bf3-957e-b78104bc1dbc"
},
"oldMerchant": {
"merchantType": "BB",
"domainMerchantId":"0029807e-68de-4432-a487-858da7296ff0"
},
"oldCategory": {
"categoryType": "BB",
"domainCategoryId": "1234"
},
"newCategory": {
"categoryType": "BB",
"domainCategoryId": "1234"
}]
}

CANCELLATIONS.STATUS.UPDATED

Occurs when the status of cancellation has been updated.

Statuses are:

DRAFTED - cancellation letter has been drafted;

BATCHED - cancellation letter is put into the batch to be sent to the organisation based on provider;

DISPATCHED - cancellation letter is ready to be sent;

DELIVERED - cancellation letter is sent to the organisation (if its email, fax, PEC or was sent by post);

FAILED - when something went wrong during processing of the cancellation letter;

CANCELLED - status for cancelled letters (for example, customer requested refund or something went wrong, the cancellation letter was cancelled and new one is created);

FORTY_DAYS_LATER -status 40 days after sending the cancellation letter.

"data": {
"cancellationId": "5d75f7ee-5496-4183-9c60-9831be99ace6",
"locale": "es-ES",
"organizationId": "ea2afd08-d053-4cd9-ab59-f509f9ed2edf",
"productId": "0c1b7ca0-df5f-41c3-9953-2865297a4806",
"status": "DISPATCHED",
"userId": "693cb172-5a39-42ec-bb0c-74605afea939"
}

CASHBACK.IMMEDIATE

Occurs whenever a pfm transaction is matched with an online cashback merchant, at least one click-out is found for the user in the last 24 hours, the cashback is not tracked yet by the affilate network and the user received an “immediate cashback” reward.

"data": {
"pfmTransaction": {
"transactionId": "a43c1997-e65a-477c-b1c6-bc422c10e108"
},
"cashbackMerchant": {
"domainMerchantId": "133783"
},
"click": {
"clickId": "12878428724"}
],
"cashbackTransaction": {
"eventSourceId": "d666b2b7-1716-4125-a133-0884ce85d3dc",
"amount": "1.12"
}
"user": {
"userId": "1eef5b46-650f-4f7c-9299-6d868424c9f3"
}

CASHBACK.CLICKOUT

"data": {
"user": {
"userId": "1eef5b46-650f-4f7c-9299-6d868424c9f3"
},
"pfmTransaction": {
"transactionId": "a43c1997-e65a-477c-b1c6-bc422c10e108"
},
"cashbackMerchant": {
"domainMerchantId": "a123"
},
"clicks":
{"clickId": "12878428724"},
"cashbackTransaction": {
"eventSourceId": "d666b2b7-1716-4125-a133-0884ce85d3dc",
"amount": {
"currency": "EUR",
"value": "1.23"
}
}

CASHBACK.MISSED

Occurs whenever a pfm transaction is matched with an online cashback merchant, but no clickout is found for the user in the last 24 hours.

"data": {
"user": {
"userId": "1eef5b46-650f-4f7c-9299-6d868424c9f3"
},
"pfmTransaction": {
"transactionId": "a43c1997-e65a-477c-b1c6-bc422c10e108"
},
"cashbackMerchants": [{
"domainMerchantId": "a123"
}]
}

CASHBACK.TRANSACTION.CREATED

Occurs whenever a new transaction is created in users cashback wallet.

"data": {
"transactionId": "123456",
"userId": "30fb6b4d-705c-4796-9d12-124ade4fb14f"
}

CASHBACK.TRANSACTION.UPDATED

Occurs whenever an existing transaction in user cashback wallet is updated.

"data": {
"transactionId": "123456",
"userId": "30fb6b4d-705c-4796-9d12-124ade4fb14f"
}

DEALS.CASHBACK.CREATED

Occurs when a cashback transaction is created in the user’s wallet

"data":{
"user": {
"userId": "1eef5b46-650f-4f7c-9299-6d868424c9f3"
},
"pfmTransactions": [
{
"transactionId": "a43c1997-e65a-477c-b1c6-bc422c10e108"
}
],
"cashbackTransaction":{
"transactionId":"83736581a",
"eventSourceId":"1234-a",
"amount":{
"value":"1",
"currency":"EUR"
},
"deal":{
"dealId": "rc25b25a-c353-4f93-9bdc-c5df42037175"
},
"dealMerchant":{
"domainMerchantId": "a95993f8-edca-49e4-90ab-a9050d4a2288"
},
"outcomeAmount":{
"value":"1",
"currency":"EUR"
}
}

DEALS.REWARD.REVERTED

This type is sent when a reward has been reverted.

"data":{
"user": {
"userId": "1eef5b46-650f-4f7c-9299-6d868424c9f3"
},
"pfmTransactions": [
{
"transactionId": "a43c1997-e65a-477c-b1c6-bc422c10e108"
}
],
"cashbackTransaction":{
"transactionId":"83736581a",
"eventSourceId":"1234-a",
"amount":{
"value":"1",
"currency":"EUR"
},
"deal":{
"dealId": "rc25b25a-c353-4f93-9bdc-c5df42037175"
},
"dealMerchant":{
"domainMerchantId": "a95993f8-edca-49e4-90ab-a9050d4a2288"
}
}

DEALS.GIFTCARD.STATUS.UPDATED

Occurs when the status of gift card has been updated.

Statuses are:

REQUIRE_OPTIN: Opt-in by user is required

IN_PROGRESS: User is in progress of earning the gift card.

AVAILABLE: Available, awaiting purchase to get rewarded to user account.

PARTIALLY_USED: The gift card is in use, but not fully spent.

FULLY_USED: The gift card is used.

EXPIRED: The gift card is expired.

MISSED: The gift card is not rewarded and the deal is no longer available while the gift card status was still IN_PROGRESS.

  "data": {
"giftcardId": "7335fe19-b053-45da-8d87-10c8769a1ca3",
"giftcardTemplateId": "e3h1e46b-4373-4e69-a467-aaad9778c0d0",
"status": "AVAILABLE",
"userId": "27d3cc4a-8461-411a-943e-5d2d597018b2"
}

DEALS.GIFTCARD.TOPPEDUP

Occurs when a top-up has been added to a giftcard.

"data":{
"user": {
"userId": "1eef5b46-650f-4f7c-9299-6d868424c9f3"
},
"giftCard": {
"giftcardId": "7335fe19-b053-45da-8d87-10c8769a1ca3",
"giftcardTemplateId": "e3h1e46b-4373-4e69-a467-aaad9778c0d0",
"status": "AVAILABLE",
"userId": "27d3cc4a-8461-411a-943e-5d2d597018b2"
},
"topupAmount":{
      "value": "1",
      "currency": "EUR"
    },
"pfmTransactions": [
{
"transactionId": "a43c1997-e65a-477c-b1c6-bc422c10e108"
}
],
"deal":{
"dealId": "rc25b25a-c353-4f93-9bdc-c5df42037175"
},
"dealMerchant":{
"domainMerchantId": "abc-123"
}
}