Trigger Test Webhook - Afriex Business API

Afriex SDK

TypeScript

const result = await afriex.webhooks.triggerTestWebhook({
  event: "TRANSACTION.UPDATED",
  resourceId: "transaction-id",
});

console.log(result); // { success: true, message: "..." }
curl --request POST \
  --url https://sandbox.api.afriex.com/api/v1/webhooks/trigger \
  --header 'Content-Type: application/json' \
  --header 'x-api-key: <api-key>' \
  --data '
{
  "event": "TRANSACTION.UPDATED",
  "entityId": "6952826eba52c13b669fb263"
}
'
import requests

url = "https://sandbox.api.afriex.com/api/v1/webhooks/trigger"

payload = {
    "event": "TRANSACTION.UPDATED",
    "entityId": "6952826eba52c13b669fb263"
}
headers = {
    "x-api-key": "<api-key>",
    "Content-Type": "application/json"
}

response = requests.post(url, json=payload, headers=headers)

print(response.text)
const options = {
  method: 'POST',
  headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
  body: JSON.stringify({event: 'TRANSACTION.UPDATED', entityId: '6952826eba52c13b669fb263'})
};

fetch('https://sandbox.api.afriex.com/api/v1/webhooks/trigger', options)
  .then(res => res.json())
  .then(res => console.log(res))
  .catch(err => console.error(err));
<?php

$curl = curl_init();

curl_setopt_array($curl, [
  CURLOPT_URL => "https://sandbox.api.afriex.com/api/v1/webhooks/trigger",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "POST",
  CURLOPT_POSTFIELDS => json_encode([
    'event' => 'TRANSACTION.UPDATED',
    'entityId' => '6952826eba52c13b669fb263'
  ]),
  CURLOPT_HTTPHEADER => [
    "Content-Type: application/json",
    "x-api-key: <api-key>"
  ],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
package main

import (
    "fmt"
    "strings"
    "net/http"
    "io"
)

func main() {

url := "https://sandbox.api.afriex.com/api/v1/webhooks/trigger"

payload := strings.NewReader("{\n  \"event\": \"TRANSACTION.UPDATED\",\n  \"entityId\": \"6952826eba52c13b669fb263\"\n}")

req, _ := http.NewRequest("POST", url, payload)

req.Header.Add("x-api-key", "<api-key>")
    req.Header.Add("Content-Type", "application/json")

res, _ := http.DefaultClient.Do(req)

defer res.Body.Close()
    body, _ := io.ReadAll(res.Body)

fmt.Println(string(body))
}
HttpResponse<String> response = Unirest.post("https://sandbox.api.afriex.com/api/v1/webhooks/trigger")
  .header("x-api-key", "<api-key>")
  .header("Content-Type", "application/json")
  .body("{\n  \"event\": \"TRANSACTION.UPDATED\",\n  \"entityId\": \"6952826eba52c13b669fb263\"}\n")
  .asString();
require 'uri'
require 'net/http'

url = URI("https://sandbox.api.afriex.com/api/v1/webhooks/trigger")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n  \"event\": \"TRANSACTION.UPDATED\",\n  \"entityId\": \"6952826eba52c13b669fb263\"}\n"

response = http.request(request)
puts response.read_body

Responses

Success and Error Codes:

Response Examples

{
  "data": {
    "queued": true,
    "event": "TRANSACTION.UPDATED",
    "entityId": "6952826eba52c13b669fb263",
    "deliveryUrl": "https://merchant.example.com/webhooks"
  }
}
{
  "code": "<string>",
  "error": "<string>",
  "details": {
    "errorMessage": "<string>",
    "friendlyMessage": "<string>",
    "data": {
      "customerId": "<string>"
    }
  }
}

Testing the Webhook

Fire a real signed webhook from sandbox using an existing entity as the payload. Use this to test your webhook handler without having to manufacture the underlying activity. This endpoint is only available in the sandbox/staging environment and returns a 403 Forbidden response in production.