Custom Webhook HTTP Headers
By default, webhook POST requests from Friendbuy include a header with our standard signature(s). That signature header can be used to authenticate that Friendbuy originated the request. To provide better flexibility for customers that have specific header signature requirements, Friendbuy can now include custom headers in our webhooks as an alternative to our standard signature. As an example, if you would like to provide your own access token, abcdefghijklmnop, you can provide it to Friendbuy and specify the header name as Api-Access-Token. Friendbuy will then send a header with that provided value in each webhook request.
For example: Api-Access-Token=abcdefghijklmnop
Custom headers can also be utilized for purposes other than security. For instance, if your webhook url handles posts from more than one service, a vendor identifier could be used to indicate Friendbuy is the requesting vendor for your service. This could indicate what type of request body your system should expect to handle.
For example: Webhook-Consumer-Id=friendbuy
This feature is currently supported for the webhooks (Share, Conversion, Reward), share email opt-outs callback, and custom reward validation callbacks.
For more details about utilizing custom headers, please contact your Friendbuy Customer Success Manager.
Rewards stuck in pending if validation callback fails after all retry attempts (2829)
If a reward validation callback fails after all attempts, the reward would become stuck in a “Pending” state. Now, after the initial attempt and 23 retries, a reward is marked “Rejected” with a Rejected Reason of "Validation callback did not complete or failed." Note, this can be manually overridden in the Reward report so that the reward is marked as “Approved.”
Saving a Reward or Offer email with malformed HTML causes freeze up (6721)
When attempting to save a Reward of Offer email that contains malformed HTML, the application would freeze. Now, when saving an email, the HTML is accepted without freezing and adapted where needed so that all saves are successful.