Configurations
Get updates on transaction status
The configuration of the CALLBACK service is very simple since it can be done through the LocalPayment user interface Stage and/or Production environment.
Once you have entered the user interface, click on: Settings → Edit Client → Notifications.

In the "Notifications" section, select Callbacks tab and enter a URL. On the reported URL, you will receive a POST request each time a transaction reaches a final status (described above).
In addition to the notification URL, we will configure and share with you a secret key that will be used to sign the request via HMAC-SHA256. The resulting signature will be sent in the X-Signature header like shown in the image:
HMAC-SHA256 ecac5e86f0c63a52297e1b48cbgea38fbf98kce89n8227b22d3009b6713428e9
When you sign the HMAC-SHA256 request, it is recommended that you compress the json request to remove white space. Also avoid using any json formatter that can modify the original format of property values.
Remember that you are able to setup and change your own Callbacks - Webhooks by accessing with an ADMIN user to the application.
HMAC algorithm
using System;
using System.Collections.Generic;
using System.Linq;
using System.Security.Cryptography;
using System.Text;
using System.Threading.Tasks;
namespace Localpayment.API.Helpers
{
public static class HmacHelper
{
//This function receives the parameters secret, payload, signature and validates the signature. If it is the correct signature, it returns true,
// otherwise it returns false.
public static bool IsValid(string secret, string payload, string signature)
{
//calculate the signature
var verifiedHash = ComputeHash(secret, payload);
//Validate the signature
if (!String.IsNullOrEmpty(verifiedHash) && !String.IsNullOrEmpty(signature) && signature.ToLower().Equals(verifiedHash.ToLower()))
{
return true;
}
return false;
}
//function used to generate the hmac
public static string ComputeHash(string secret, string payload)
{
byte[] key = Encoding.UTF8.GetBytes(secret);
HMACSHA256 myhmacsha256 = new HMACSHA256(key);
byte[] byteArray = Encoding.UTF8.GetBytes(payload);
MemoryStream stream = new MemoryStream(byteArray);
string result = myhmacsha256.ComputeHash(stream).Aggregate("", (s, e) => s + String.Format("{0:x2}", e), s => s);
return result;
}
}
}
Our Dynamic tutorial:
Follow our tutorial to configure the callback url from our frontend:
Example: Callback Notifications Service
Last updated
Was this helpful?