Send a test event to a webhook subscription. **Note:** This endpoint is **only available** in the **sandbox** environment.
curl --request POST \
--url https://pre-partners-api.cobee.io/api/v3/webhooks/subscriptions/{subscriptionId}/test \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"eventType": "employee.committed-expense.created"
}
'import requests
url = "https://pre-partners-api.cobee.io/api/v3/webhooks/subscriptions/{subscriptionId}/test"
payload = { "eventType": "employee.committed-expense.created" }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({eventType: 'employee.committed-expense.created'})
};
fetch('https://pre-partners-api.cobee.io/api/v3/webhooks/subscriptions/{subscriptionId}/test', 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://pre-partners-api.cobee.io/api/v3/webhooks/subscriptions/{subscriptionId}/test",
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([
'eventType' => 'employee.committed-expense.created'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$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://pre-partners-api.cobee.io/api/v3/webhooks/subscriptions/{subscriptionId}/test"
payload := strings.NewReader("{\n \"eventType\": \"employee.committed-expense.created\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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://pre-partners-api.cobee.io/api/v3/webhooks/subscriptions/{subscriptionId}/test")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"eventType\": \"employee.committed-expense.created\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://pre-partners-api.cobee.io/api/v3/webhooks/subscriptions/{subscriptionId}/test")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"eventType\": \"employee.committed-expense.created\"\n}"
response = http.request(request)
puts response.read_body{
"messageId": "msg_2LKAAVHUEM1x9jdh9kJ8aT9nOzm"
}
Webhook Subscriptions
Send test event
POST
/
webhooks
/
subscriptions
/
{subscriptionId}
/
test
Send a test event to a webhook subscription. **Note:** This endpoint is **only available** in the **sandbox** environment.
curl --request POST \
--url https://pre-partners-api.cobee.io/api/v3/webhooks/subscriptions/{subscriptionId}/test \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"eventType": "employee.committed-expense.created"
}
'import requests
url = "https://pre-partners-api.cobee.io/api/v3/webhooks/subscriptions/{subscriptionId}/test"
payload = { "eventType": "employee.committed-expense.created" }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({eventType: 'employee.committed-expense.created'})
};
fetch('https://pre-partners-api.cobee.io/api/v3/webhooks/subscriptions/{subscriptionId}/test', 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://pre-partners-api.cobee.io/api/v3/webhooks/subscriptions/{subscriptionId}/test",
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([
'eventType' => 'employee.committed-expense.created'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$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://pre-partners-api.cobee.io/api/v3/webhooks/subscriptions/{subscriptionId}/test"
payload := strings.NewReader("{\n \"eventType\": \"employee.committed-expense.created\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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://pre-partners-api.cobee.io/api/v3/webhooks/subscriptions/{subscriptionId}/test")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"eventType\": \"employee.committed-expense.created\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://pre-partners-api.cobee.io/api/v3/webhooks/subscriptions/{subscriptionId}/test")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"eventType\": \"employee.committed-expense.created\"\n}"
response = http.request(request)
puts response.read_body{
"messageId": "msg_2LKAAVHUEM1x9jdh9kJ8aT9nOzm"
}
Overview
Note: This endpoint is available only in Sandbox environment
Important: theeventTypemust be one of the event types the subscription was registered with. Otherwise the call fails with422 event_type_not_in_subscription.
Important: the example is delivered and signed exactly like a real event, using the subscription’s signingSecret. Use it to validate your signature verification.
Important: the delivery is asynchronous. A 202 response means the test event was queued, not that your endpoint has already received it. The payload contains example data, so do not act on it as if it were a real event.
Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Path Parameters
The unique identifier of the webhook subscription, as returned when it was registered.
Body
application/json
The event type of the example payload to send. It must be one of the event types the subscription is registered for. See Event Models for what each one delivers.
Available options:
employee.committed-expense.created, employee.committed-expense.finished, employee.committed-expense.cancelled, employee.committed-expense.payment.cancelled Example:
"employee.committed-expense.created"
Response
The test event was accepted and queued for delivery to the subscription's URL.
The unique identifier of the queued test message.
Example:
"msg_2LKAAVHUEM1x9jdh9kJ8aT9nOzm"