To start with the Fawaterk Webhook service, you can follow these steps to complete your integration :
1- Log in to your portal account and go to Integration
2- Add your link that web hook will send data to
Important Notes
Paid transactions webhook:
1 - This web hook only revoke when invoice status changed to Paid
2- In case you want to receive web hook data in json format be sure that your url has _json
ex: https://yourwebsite.com/webhook_json
WebHook Body (Default) :
{
"api_key": "d83a5d07aaeb8442dcbe259e6dae80a3f2e21a3a581e1a5acd",
"invoice_key": "69zpnFIcIPYNBwG",
"invoice_id": 1000430,
"payment_method": "Fawry",
"invoice_status": "paid",
"pay_load": null,
"referenceNumber": "982443480"
}
WebHook Body (New version more reliable, please contact our support to apply) :
{
"hashKey": "f59665d40772c9c47156cd0bff453b85e489306e849c27eea2",
"invoice_key": "69zpnFIcIPYNBwG",
"invoice_id": 1000430,
"payment_method": "Fawry",
"invoice_status": "paid",
"pay_load": null or Obj,
"referenceNumber": "982443480"
}
hashKey here is used to validate the callback is from Fawaterak side
HASH-KEY:
hashKey generation uses HMAC SHA256 Crypto mechanism, you should generate the hash from your backend and is implemented as explained below to compare it with ours:
function generateHashKey($data){
$secretKey = "FAWATERAK_VENDOR_KEY";
$queryParam = "InvoiceId=response.invoice_id&InvoiceKey=response.invoice_key&PaymentMethod=response.payment_method";
$hash = hash_hmac( 'sha256' , $queryParam , $secretKey ,false);
return $hash;
}
cancel transactions (Fawry, Aman, Masary) webhook:
1 - This webhook only revoke when Fawry/Aman/Masary transaction gets expired.
WebHook Body :
{
"hashKey": "f59665d40772c9c47156cd0bff453b85e489306e849c27eea2",
"referenceId": "123456",
"status": "EXPIRED",
"paymentMethod": "Fawry",
"pay_load": null or Obj
}
hashKey here is used to validate the callback is from Fawaterak side
HASH-KEY:
hashKey generation uses HMAC SHA256 Crypto mechanism, you should generate the hash from your backend and is implemented as explained below to compare it with ours:
function generateHashKey($data){
$secretKey = "FAWATERAK_VENDOR_KEY";
$queryParam = "referenceId=response.referenceId&PaymentMethod=response.paymentMethod";
$hash = hash_hmac( 'sha256' , $queryParam , $secretKey ,false);
return $hash;
}