curl --request GET \
--url https://api.synci.io/api/v1/webhooks/events \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.synci.io/api/v1/webhooks/events', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.synci.io/api/v1/webhooks/events"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.synci.io/api/v1/webhooks/events",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.synci.io/api/v1/webhooks/events"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}{
"data": [
{
"id": "<string>",
"event_id": "<string>",
"webhook_endpoint_id": "<string>",
"event_type": "<string>",
"status_code": "<string>",
"error": "<string>",
"attempt": "<string>",
"success": "<string>",
"sensitive_identifiers_omitted": "<string>",
"created_at": "<string>",
"updated_at": "<string>",
"webhook_endpoint": {
"id": "<string>",
"url": "<string>",
"description": "<string>",
"enabled": "<string>",
"type": "<string>",
"omit_sensitive_identifiers": "<string>",
"events": "<string>",
"payload_version": "<string>",
"created_at": "<string>",
"updated_at": "<string>",
"financial_accounts": "<string>",
"health": {
"status": "<string>",
"integrator_message": "<string>",
"failure_count": "<string>",
"transient_message": "<string>",
"transient_failure_count": "<string>",
"last_attempt_at": "<string>"
},
"secret": "<string>"
},
"payload": "<string>"
}
],
"links": {
"first": "<string>",
"last": "<string>",
"prev": "<string>",
"next": "<string>"
},
"meta": {
"current_page": 2,
"from": 2,
"last_page": 2,
"links": [
{
"url": "<string>",
"label": "<string>",
"active": true
}
],
"path": "<string>",
"per_page": 1,
"to": 2,
"total": 1
}
}{
"message": "<string>"
}List all webhook events
The delivery log for your webhook endpoints: one entry per delivery
attempt, with the outcome. Use include=payload to include the
delivered payload in each event.
curl --request GET \
--url https://api.synci.io/api/v1/webhooks/events \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.synci.io/api/v1/webhooks/events', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.synci.io/api/v1/webhooks/events"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.synci.io/api/v1/webhooks/events",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.synci.io/api/v1/webhooks/events"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}{
"data": [
{
"id": "<string>",
"event_id": "<string>",
"webhook_endpoint_id": "<string>",
"event_type": "<string>",
"status_code": "<string>",
"error": "<string>",
"attempt": "<string>",
"success": "<string>",
"sensitive_identifiers_omitted": "<string>",
"created_at": "<string>",
"updated_at": "<string>",
"webhook_endpoint": {
"id": "<string>",
"url": "<string>",
"description": "<string>",
"enabled": "<string>",
"type": "<string>",
"omit_sensitive_identifiers": "<string>",
"events": "<string>",
"payload_version": "<string>",
"created_at": "<string>",
"updated_at": "<string>",
"financial_accounts": "<string>",
"health": {
"status": "<string>",
"integrator_message": "<string>",
"failure_count": "<string>",
"transient_message": "<string>",
"transient_failure_count": "<string>",
"last_attempt_at": "<string>"
},
"secret": "<string>"
},
"payload": "<string>"
}
],
"links": {
"first": "<string>",
"last": "<string>",
"prev": "<string>",
"next": "<string>"
},
"meta": {
"current_page": 2,
"from": 2,
"last_page": 2,
"links": [
{
"url": "<string>",
"label": "<string>",
"active": true
}
],
"path": "<string>",
"per_page": 1,
"to": 2,
"total": 1
}
}{
"message": "<string>"
}Authorizations
The access token received from the authorization server in the OAuth 2.0 flow.
Query Parameters
The number of results that will be returned per page.
The page number to start the pagination from.
Only the event with the given ID.
id, -id, created_at, -created_at payload, webhook_endpoint Only events of the given event type.
Webhook event types Synci can emit. The three account-lifecycle events were renamed from bank_account.* to account.*, and the payload embed key from bank_account to financial_account. The legacy bank_account.* event names remain available so existing integrations keep working — endpoints with payload_version=v1 receive the legacy variant. The other events (transactions.*, balance.updated, holdings.updated) have the same event-type string in both versions; only the payload embed key differs between v1 and v2.
transactions.created, transactions.updated, balance.updated, holdings.updated, account.created, account.updated, account.deleted, bank_account.created, bank_account.updated, bank_account.deleted, connection.created, connection.activated, connection.reauthorized, connection.expiring, connection.expired, connection.failing, connection.recovered, connection.disabled, connection.deleted, portal.user.verified Only events delivered to the given webhook endpoint.
Only successful (true) or failed (false) deliveries.
Only deliveries that received the given HTTP status code.