Webhook Events
Webhooks allow you to subscribe to certain events that happen in Revolv3. When one of these events are triggered we’ll send a HTTP POST payload to the webhook’s configured URL.
Webhooks are configured on a per-merchant basis and we will send you events for every merchant registered in Revolv3.
Events
The available events you will receive are:
Event Type | Payload Example |
---|---|
SubscriptionCreated | { "EventDateTime": "2023-08-22T21:02:01.9510921Z", "EventType": "SubscriptionCreated", "MerchantId": 2, "RecordId": 1, "Entropy": "7f64ba26-74db-4cab-8e9c-76a98ba43351" } |
SubscriptionFailed | { "EventDateTime": "2023-08-22T21:02:01.9510921Z", "EventType": "SubscriptionFailed", "MerchantId": 2, "RecordId": 1, "Entropy": "7f64ba26-74db-4cab-8e9c-76a98ba43351" } |
ACHInvoiceStatusChanged | { "EventDateTime": "2023-08-22T21:02:01.9510921Z", "EventType": "ACHInvoiceStatusChanged", "MerchantId": 2, "RecordId": 137, "Entropy": "7f64ba26-74db-4cab-8e9c-76a98ba43351" } |
InvoiceCreated | { "EventDateTime": "2023-08-22T21:01:01.9510921Z", "EventType": "InvoiceCreated", "MerchantId": 2, "RecordId": 137, "Entropy": "7f64ba26-74db-4cab-8e9c-76a98ba43351" } |
InvoiceStatusChanged | { "EventDateTime": "2023-08-22T21:02:01.9510921Z", "EventType": "InvoiceStatusChanged", "MerchantId": 2, "RecordId": 137, "Entropy": "7f64ba26-74db-4cab-8e9c-76a98ba43351" } |
WebhookTest | { "EventDateTime": "2023-08-31T13:30:22.8938167Z", "EventType": "WebhookTest", "MerchantId": 2147483647, "RecordId": 2147483647, "Entropy": "d1153029-c1a9-4497-b1e8-10111751fece" } |
Each Event will consist of:
EventDateTime | The date and time that event occurred (UTC time) |
EventType | The type of event of that occurred (see the table above) |
MerchantId | The ID of the merchant that the event happened in |
RecordId | The ID of the resource that has changed (Invoice, Subscribtion, etc…) |
Entropy | A random string to make the payload more cryptographically secure |
The x-revolv3-signature header
A hashed signature of the payload is passed along in the headers of each request as x-revolv3-signature. This signature is used to be sure all requests are sent from revolv3 application.
We are using HMACSHA256 algorithm to generate the signature key.
Example of how to check on C#
public static bool IsValidWebhookEventSignature(
string requestBody,
string signatureHeader,
string signatureKey,
string url)
{
if (string.IsNullOrEmpty(signatureKey))
throw new ArgumentNullException(nameof (signatureKey));
if (string.IsNullOrEmpty(url))
throw new ArgumentNullException(nameof (url));
byte[] bytes = Encoding.UTF8.GetBytes($"{url}${requestBody}");
using var hmacshA256 = new HMACSHA256(Encoding.UTF8.GetBytes(signatureKey));
return Convert.ToBase64String(hmacshA256.ComputeHash(bytes)).Equals(signatureHeader);
}
Creating a webhook
To create a webhook for your merchant you have to go to Webhooks page and create a new webhook.
You have to specify:
The url for us to deliver to.
You have to copy your Webhook Key and prepare your backend to receive the webhooks.
If your app is ready to receive webhooks, click on the Test Connection button. In case we receive a response with code 200 the Save button will be enabled. After you save the configuration everything is ready to receive information
Updated about 1 year ago