Welcome to Wooxy – Your Digital Growth Partner! Crafted with Excellence in Estonia

Webhooks

Webhooks

Wooxy can make an HTTP POST request to your URL when events occur with your messages (sent and delivered events are exceptions). If you would like Wooxy to POST event notifications, you need to provide a Callback URL in the the Control Panel.

The Wooxy POST request to your Callback URL will come from following IP address: 188.226.196.117. Please, add it to your Firewall whitelist.

Wooxy will keep the connection for 1.5 seconds. If the status code 200 is not received, the connection will be dropped and another attempt made after a short delay to deliver the webhooks.

If the webhook delivery fails, we will make 15 attempts to deliver the webhook before dropping it from the queue.

Number of attemptsSeconds between attempts
3100
6600
63600

Specific Message Callback Events

If you have provided webHookUri in your account, Wooxy will send a POST request to it with the status of the Email message.

Body Example

JSON
                {
    "datetime": 1234567890,
    "event": "read",
    "email": "user@example.com",
    "id": "5537ab2a08d241dc69326b19",
    "userId": "myUserId-1"
    "headers": {
        "X-Additional-Header": "additional-header-value"
    }
}
            

Parameters

Callback URL
datetimeThe time when the event was generated in the system provided as Unix epoch  
seconds.
eventThe type of the event.
readThe email recipient opened the email and enabled image viewing.
clickThe email recipient clicked on a link in the email.
hardThe ISP server returned hard-bounce for this message
complaintThe email recipient clicked on a Spam button in his inbox.
list-unsubscribeThe email recipient requested unsubscription from all emails in his inbox using “list-unsubscribe” technology.
rejectThe email address is in black list
emailThe email address of the recipient
idThe message unique identification number in Wooxy system
userId

Contact’s unique userId from your platform enables management of the contact in the list based on it.

IMPORTANT: The userId should be added beforehand to the contact list for a specific contact; otherwise, the value will be Null

IMPORTANT: Event with 'reject' type will not have 'userId' in the webhook.

headersOptional extra headers added to the message.

Contact Management Callback Events

If you have provided webHookUri in your account, Wooxy will send a POST request to it with information regarding changes of the contact status in the Contact List.

Body Example

JSON
                {
    "event": "subscribed",
    "email": "user@example.com",
    "datetime": 1483010763,
    "contactId": "60890ee5890ede9d2c70a077",
    "emailListId": "5537ab2a08d241dc69326b19",
    "phoneNumber": "+155555555",
    "userId": "myUserId-1"
}
            

Parameters

Callback URL
eventThe type of the event.
subscribedThe contact subscribed to Email channel in the specified contact list.
unsubscribedThe contact unsubscribed from Email channel in the specified contact list.
sms-subscribedThe contact subscribed to SMS channel in the specified contact list.
sms-unsubscribedThe contact unsubscribed from SMS channel in the specified contact list.
web-push-contact-desktop-subscribedThe contact subscribed to Desktop Web Push channel in the specified contact list.
web-push-contact-desktop-unsubscribedThe contact unsubscribed from Desktop Web Pushail channel in the specified contact list.
web-push-contact-mobile-subscribedThe contact subscribed to Mobile Web Push channel in the specified contact list.
web-push-contact-mobile-unsubscribedThe contact unsubscribed from Mobile Web Push channel in the specified contact list.
telegram-contact-channel-subscribedThe contact subscribed to Telegram channel in the specified contact list.
telegram-contact-channel-unsubscribedThe contact unsubscribed from Telegram channel in the specified contact list.
emailThe email address of the recipient
datetimeThe time when the event was generated in the system provided as Unix epoch seconds.
contactIdThe message unique identification number for the contact in Wooxy system
emailListIdThe ID of the contact list to which the contact belongs.  
The contact list already should be created in your account on the Lists page:  
https://app.wooxy.com/email-list/
phoneNumberAddressee phoneNumber.
userId

Contact’s unique userId from your platform enables management of the contact in the list based on it.

IMPORTANT: The userId should be added beforehand to the contact list for a specific contact; otherwise, the value will be Null

IMPORTANT: Event with 'reject' type will not have 'userId' in the webhook.

Variable for unsubscribeThis webhook will work only if unsubscribes are handled by Wooxy via variable {{unSubscribeUrl}}

Email Delivery Status

If you have provided webHookUri in your account, Wooxy will send a POST request to it with the status as soon as it is accepted by ISP.

The following are key operational details:

  • Any webhook batch that does not receive an HTTP 200 response will be retried for a total of 8 hours before the data is discarded.

  • Webhooks posting to your endpoint will timeout after 10 seconds. For best results, write webhook batches to disk and then process asynchronously to minimize data loss if you have a problem with your database.

  • One message delivery webhook can be included up to 100 messages. The number is optional and may include less messages.

Body Example

JSON
                {
  "event": "delivered",
  "messages": {
    "5537ab2a08d241dc69326b19": {
      "id": "5537ab2a08d241dc69326b19",
      "email": "user@example.com",
      "datetime": 1510676506,
      "userId": "myUserId-1"
      "info": {
        "type": "transaction"
      },
      "headers": {
          "X-Additional-Header": "additional-header-value"
      }
    },
    "5537ab2a08d241dc69326b20": {
      "id": "5537ab2a08d241dc69326b20",
      "email": "user-2@example.com",
      "datetime": 1510676506,
      "userId": "myUserId-2"
      "info": {
        "type": "campaign",
        "id": "59bbcc21f97239a65e546569",
      },
      "headers": {
          "X-Additional-Header": "additional-header-value"
      }
    },
    "5537ab2a08d241dc69326b21": {
      "id": "5537ab2a08d241dc69326b21",
      "email": "user-3@example.com",
      "datetime": 1510676506,
      "userId": "myUserId-3"
      "info": {
        "type": "automation",
        "id": "59bbcc21f97239a65e546570"
      }
     "headers": null
    }
  }
}
            

Parameters

Parameters
eventThe type of the event.
DeliveredThe ISP server returned 250 (accepted & queued for delivery) for this message
messagesMessage object where the key is the unique message id and value information on the specific message
message_idThe message unique identification number in Wooxy system
idThe message unique identification number in Wooxy system
emailThe email address of the recipient
datetimeUnix timestamp (seconds from epoch)
userId

Contact’s unique userId from your platform enables management of the contact in the list based on it.

 

IMPORTANT: The userId should be added beforehand to the contact list for a specific contact; otherwise, the value will be Null

IMPORTANT: Event with 'reject' type will not have 'userId' in the webhook.

infoObject with additional information
typeMessage type
transactionMessage was send via API as a transactional
campaignMessage was send as a one time promo campaign from admin panel
automationMessage was send from automation set up in admin panel
id 
'optional'
Available only for messages with campaign or automation types
campaign_idThe promo campaign unique identification number in Wooxy system
scenario_idThe automation unique identification number in Wooxy system
title 
'optional'
The specific campaign name typed in Wooxy during creation. IMPORTANT: Available only for messages with campaign type.
headersOptional extra headers added to the message.

SMS Delivery Status

If you have provided webHookUri in your account, Wooxy will send a POST request to it with the status of the SMS as soon as it is accepted by Mobile Operator.

Body Example

JSON
                {
   "datetime": 1234567890,
   "event": "sms_delivered",
   "phoneNumber": "+155555555",
   "userId": "myUserId-1",
   "email": "user@example.com",
   "id": "5537ab2a08d241dc69326b19"
}
            

Parameters

Callback URL
datetimeRequest time in Unix_Timestamp format
eventThe type of the event.
sms_deliveredThe SMS was successfully delivered to recipient.
phoneNumberAddressee phoneNumber.
userId

Contact’s unique userId from your platform enables management of the contact in the list based on it.

IMPORTANT: The userId should be added beforehand to the contact list for a specific contact; otherwise, the value will be Null

IMPORTANT: Event with 'reject' type will not have 'userId' in the webhook.

emailThe email address of the recipient
idThe SMS unique identification number in Wooxy system

Telegram Delivery Status

If you have provided webHookUri in your account, Wooxy will send a POST request to it with the status of the message as soon as it is accepted by Telegram.

Body Example

JSON
                {
  "datetime": 1234567890,
  "event": "telegram-delivered",
  "id": "5537ab2a08d241dc69326b19",
  "botId": "60891092890ede99356891u7",
  "contactId": "60890ee5890ede9d2c70a077",
  "emailListId": "60224b6a890ededbb63493yy",
  "phoneNumber": "+155555555",
  "userId": "myUserId-1",
  "email": "user@example.com"
}
            

Parameters

Callback URL
datetimeRequest time in Unix_Timestamp format
eventThe type of the event.
telegram-deliveredThe message was successfully delivered to the recipient.
telegram-viewedThe recipient opened the message
telegram-clickedThe email recipient clicked on a link in the message.
idThe Telegram message unique identification in the Wooxy system
botIdUnique Telegram botId that is already registered
contactIdThe unique identification number for the contact in the Wooxy system
emailListIdThe ID of the contact list to which the contact belongs.  
The contact list already should be created in your account on the Lists page:  
https://app.wooxy.com/email-list/
phoneNumberAddressee phoneNumber.
userId

Contact’s unique userId from your platform enables management of the contact in the list based on it.

IMPORTANT: The userId should be added beforehand to the contact list for a specific contact; otherwise, the value will be Null

IMPORTANT: Event with 'reject' type will not have 'userId' in the webhook.

emailThe email address of the recipient

WebPush Delivery Status

If you have provided webHookUri in your account, Wooxy will send a POST request to it with the status of the WebPush as soon as it is accepted by Browser.

Body Example

JSON
                {
  "datetime": 1234567890,
  "event": "web-push-delivered",
  "id": "5537ab2a08d241dc69326b19",
  "webSiteId": "60379473a813802d276922b1"
  "contactId": "60890ee5890ede9d2c70a02d",
  "emailListId": "60224b6a890ededbb63493ee",
  "phoneNumber": "+155555555",
  "userId": "myUserId-1",
  "email": "user@example.com"
}
            

Parameters

Callback URL
datetimeRequest time in Unix_Timestamp format
eventThe type of the event.
webPush-deliveredThe message was successfully delivered to the recipient.
webPush-openThe recipient opened the message
webPush-clickedThe email recipient clicked on a link in the message.
idThe webPush message unique identification in the Wooxy system
webSiteIdUnique Website Id that is already registered
contactIdThe  unique identification number for the contact in the Wooxy system
emailListIdThe ID of the contact list to which the contact belongs.  
The contact list already should be created in your account on the Lists page:  
https://app.wooxy.com/email-list/
phoneNumberAddressee phoneNumber.
userId

Contact’s unique userId from your platform enables management of the contact in the list based on it.

IMPORTANT: The userId should be added beforehand to the contact list for a specific contact; otherwise, the value will be Null

IMPORTANT: Event with 'reject' type will not have 'userId' in the webhook.

emailThe email address of the recipient

Viber Delivery Status

If you have provided webHookUri in your account, Wooxy will send a POST request to it with the status of the message as soon as it is accepted by Viber.

Body Example

JSON
                {
  "datetime": 1234567890,
  "event": "viber-delivered",
  "id": "5537ab2a08d241dc69326b19",
  "contactId": "60890ee5890ede9d2c70a02d",
  "emailListId": "60224b6a890ededbb63493ee",
  "phoneNumber": "+155555555",
}
            

Parameters

Callback URL
datetimeRequest time in Unix_Timestamp format
eventThe type of the event.
viber-deliveredThe message was successfully delivered to the recipient.
viber-viewedThe recipient opened the message
viber-failedThe message delivery in Viber application failed
idThe Viber message unique identification in the Wooxy system
contactIdThe  unique identification number for the contact in the Wooxy system
emailListIdThe ID of the contact list to which the contact belongs.  
The contact list already should be created in your account on the Lists page:  
https://app.wooxy.com/email-list/
phoneNumberAddressee phoneNumber.

Subaccount Create Status Success

If you provide a value for the parameter webhookUri when sending the request to create a subaccount using the API method Subaccount Create, you will receive a request confirming the successful creation of your subaccount. 

Important! This request is sent at the moment when the subaccount has been fully created.

Body Example

JSON
                {
  "event": "sub_account_creation_success",
  "subAccount": {
    "name": "SUBACCOUNT_NAME",
    "subscription": "month",
    "country": "SUBACCOUNT_COUNTRY_ISO_ALPHA_2",
    "timezone": "Europe/Tallinn",
    "id": "ACCOUNT_ID"
  },
  "owner": {
    "email": "SUBACCOUNT_EMAIL",
    "password": "******",
    "firstName": "SUBACCOUNT_FIRSTNAME",
    "lastName": "AUBACCOUNT_LASTNAME",
    "id": "USER_ID",
    "token": "SUBACCOUNT_API_KEY"
  }
}

            

Parameters

Callback URL
eventsub_account_creation_successThis status indicates that the subaccount has been successfully created.
subAccountObject with the parameters of the created subaccount.
nameSubaccount name.
subscriptionThe plan selected for creating the subaccount. You can change it by contacting us at support@wooxy.com.
countryThe country of the subaccount.
timezoneAccount's timezone
idAccount identifier
ownerObject with key parameters of your subaccount necessary for login, etc.
emailEmail that can be used to log in to the subaccount.
passwordPassword that can be used to log in to the subaccount.
firstNameSubaccount First Name
lastNameSubaccount Last Name
idUser identifier 
tokenAPI key of your subaccount.

Subaccount Create Status Failed

If you provide a value for the parameter webhookUri when sending the request to create a subaccount using the API method Subaccount Create, you will receive a request confirming the successful creation of your subaccount or the creation will fail. 

Important! This request is sent at the moment when the subaccount has been fully created or the creation will fail.

Important! If the error occurred due to insufficient funds in the balance, you need to check the balance and only after the required amount is available, resend the request.

Body Example

JSON
                {
  "event": "sub_account_creation_error",
  "subAccount": {
    "name": "SUBACCOUNT_NAME",
    "subscription": "month",
    "country": "SUBACCOUNT_COUNTRY_ISO_ALPHA_2",
    "timezone": "Europe/Tallinn",
    "id": "ACCOUNT_ID"
  },
  "owner": {
    "email": "SUBACCOUNT_EMAIL",
    "password": "******",
    "firstName": "SUBACCOUNT_FIRSTNAME",
    "lastName": "AUBACCOUNT_LASTNAME",
    "id": "USER_ID",
    "token": "SUBACCOUNT_API_KEY"
  },
  "error": "transaction failed"
}

            

Parameters

Callback URL
eventsub_account_creation_errorThis parameter indicates that an error occurred during the creation of the subaccount.
subAccountObject with the parameters of the created subaccount.
nameSubaccount name.
subscriptionThe plan selected for creating the subaccount. You can change it by contacting us at support@wooxy.com.
countryThe country of the subaccount.
timezoneAccount's timezone
ownerObject with key parameters of your subaccount necessary for login, etc.
emailEmail that can be used to log in to the subaccount.
passwordPassword that can be used to log in to the subaccount.
firstNameSubaccount First Name
lastNameSubaccount Last Name
errorDescription of the error that occurred.

Domain Creation Status

When using the API method for Domain Creation, you can add the webhookUri parameter to receive a request with data once the domain creation and necessary record generation are complete.

Important! The request will arrive at the moment when the domain has been fully created and all records have been generated.

Body Example

JSON
                {
  "account": {
    "id": "ACCOUNT_ID",
    "name": "ACCOUNT_NAME"
  },
  "domain": {
    "id": "DOMAIN_ID",
    "name": "DOMAIN"
  },
  "event": "domain_dns_records_created"
}
            

Parameters

Callback URL
accountObject with account data in which the new domain has been added.
idAccount identifier
nameAccount name
domainObject with data about the created domain.
idDomain identifier
nameCreated domain
eventdomain_dns_records_createdThe event that indicates the DNS records for the domain have been successfully generated and the domain has been created.

Domain Remove Status

When using the API method for Domain Deletion, there is an option to specify the webhookUri parameter, to which a request with additional information about the deletion will be sent after the domain is deleted.

Important! The webhook will be sent only after the domain is fully deleted. This process may take some time as the domain may have many entities that require time to be removed.

Body Example

JSON
                {
  "account": {
    "id": "ACCOUNT_ID",
    "name": "ACCOUNT_NAME"
  },
  "domain": {
    "id": "DOMAIN_ID",
    "name": "DOMAIN"
  },
  "event": "domain_removed"
}
            

Parameters

Callback URL
accountObject with account data in which the new domain has been removed.
idAccount identifier
nameAccount name
domainObject with data about the removed domain.
idDomain identifier
nameRemoved domain
eventdomain_removedThe event that indicates the DNS records for the domain have been successfully removed, and all entities associated with the domain have also been removed.
Need Help?

Our technical support team will be happy to help with your integration. They are at your disposal 24/7.

Just send us a line by following email address with the information where you have been stuck so we could help faster: support@wooxy.com.

Need Help? Contact us