curl --request POST \
--url https://api.synci.io/api/v1/finance/connections \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"institution_id": 123
}
'const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({institution_id: 123})
};
fetch('https://api.synci.io/api/v1/finance/connections', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.synci.io/api/v1/finance/connections"
payload = { "institution_id": 123 }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.synci.io/api/v1/finance/connections",
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([
'institution_id' => 123
]),
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://api.synci.io/api/v1/finance/connections"
payload := strings.NewReader("{\n \"institution_id\": 123\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))
}{
"message": "A connection for this institution already exists.",
"data": {
"already_connected": true,
"financial_connection": {
"id": "<string>",
"institution_id": "<string>",
"region": "<string>",
"enabled": "<string>",
"status": "<string>",
"status_message": "<string>",
"sync_balances": "<string>",
"supports_reauthorization": true,
"supports_manage": true,
"max_historical_days": "<string>",
"access_valid_for_days": "<string>",
"consent_expires_at": "<string>",
"reference": "<string>",
"accounts_last_synced_at": "<string>",
"setup_pending": true,
"setup_renewal": "<string>",
"activated_at": "<string>",
"created_at": "<string>",
"updated_at": "<string>",
"institution": {
"id": "<string>",
"integrator": "<string>",
"region": "<string>",
"country": "<string>",
"name": "<string>",
"bic": "<string>",
"external_id": "<string>",
"logo": "<string>",
"supported": "<string>",
"supports_pending_transactions": "<string>",
"supports_card_accounts": "<string>",
"max_historical_days": "<string>",
"max_access_valid_for_days": "<string>",
"supported_products": "<string>",
"category": "<string>",
"updated_at": "<string>"
},
"health": {
"status": "<string>",
"integrator_message": "<string>",
"failure_count": "<string>",
"transient_message": "<string>",
"transient_failure_count": "<string>",
"last_attempt_at": "<string>"
},
"financial_accounts": [
{
"id": "<string>",
"enabled": "<string>",
"integrator": "<string>",
"account_category": "<string>",
"raw_type": "<string>",
"cash_balance": {
"amount": "<string>",
"currency": "<string>"
},
"total_balance": {
"amount": "<string>",
"currency": "<string>"
},
"meta": "<string>",
"name": "<string>",
"custom_name": "<string>",
"display_name": "<string>",
"currency": "<string>",
"product_name": "<string>",
"cash_account_type": "<string>",
"account_usage": "<string>",
"linked_accounts": "<string>",
"details": "<string>",
"details_last_synced_at": "<string>",
"transactions_last_synced_at": "<string>",
"transactions_backfill_cursor": "<string>",
"balances_last_synced_at": "<string>",
"balance": {
"available": "<string>",
"cleared": "<string>"
},
"created_at": "<string>",
"updated_at": "<string>",
"financial_connection_id": "<string>",
"financial_connection": "<unknown>",
"config": {
"map_fields": {
"payee": "<string>",
"description": "<string>",
"date": "<string>"
},
"enrichment": {
"enabled": "<string>",
"provider": "<string>",
"country": "<string>"
},
"sync_start_date": "2025-01-01",
"sync_auto": "<string>",
"sync_pending_transactions": "<string>",
"pending_settlement_matching": "<string>",
"pending_settlement_max_days": "<string>",
"fuzzy_counterparty_matching": "<string>",
"fuzzy_counterparty_min_chars": "<string>",
"sync_balances": "<string>",
"sync_frequency_in_minutes": "<string>",
"fields_for_duplicate_filtering": [
"<string>"
]
},
"health": {
"status": "<string>",
"integrator_message": "<string>",
"failure_count": "<string>",
"transient_message": "<string>",
"transient_failure_count": "<string>",
"last_attempt_at": "<string>"
},
"account_number_masked": "<string>",
"bban": "<string>",
"scan": "<string>",
"iban": "<string>",
"bic": "<string>",
"owner_name": "<string>",
"owner_address": "<string>",
"msisdn": "<string>",
"integrator_id": "<string>",
"institution_id": "<string>",
"rules": [
{
"order": 123,
"rule": {}
}
],
"transfer_links": [
{
"id": "<string>",
"financial_account_id": "<string>",
"destination_type": "<string>",
"destination_id": "<string>",
"transfer_start_date": "2025-01-01",
"active": "<string>",
"sync_mode": "<string>",
"on_booked_change": {
"update_status": "<string>",
"update_payee": "<string>",
"update_description": "<string>",
"update_amount": "<string>"
},
"created_at": "<string>",
"updated_at": "<string>",
"financial_account": "<unknown>",
"destination": {
"id": "<string>",
"budget_id": "<string>",
"ynab_id": "<string>",
"name": "<string>",
"type": "<string>",
"on_budget": "<string>",
"closed": "<string>",
"note": "<string>",
"balance": "<string>",
"cleared_balance": "<string>",
"uncleared_balance": "<string>",
"transfer_payee_id": "<string>",
"direct_import_linked": "<string>",
"last_reconciled_at": "<string>",
"created_at": "<string>",
"updated_at": "<string>",
"budget": {
"id": "<string>",
"connection_id": "<string>",
"ynab_id": "<string>",
"enabled": "<string>",
"name": "<string>",
"currency": "<string>",
"first_month": "<string>",
"last_month": "<string>",
"last_synced_at": "<string>",
"created_at": "<string>",
"updated_at": "<string>",
"connection": {
"id": "<string>",
"name": "<string>",
"enabled": "<string>",
"sync_balances": "<string>",
"ynab_user_id": "<string>",
"last_synced_at": "<string>",
"created_at": "<string>",
"updated_at": "<string>",
"health": {
"status": "<string>",
"integrator_message": "<string>",
"failure_count": "<string>",
"transient_message": "<string>",
"transient_failure_count": "<string>",
"last_attempt_at": "<string>"
},
"auth_url": "<string>",
"budgets": "<array>"
},
"accounts": "<array>"
},
"health": {
"status": "<string>",
"integrator_message": "<string>",
"failure_count": "<string>",
"transient_message": "<string>",
"transient_failure_count": "<string>",
"last_attempt_at": "<string>"
},
"transfer_links": "<array>"
},
"rules": [
{
"order": 123,
"rule": {}
}
]
}
],
"transfer_links_count": "<string>"
}
],
"financial_accounts_count": "<string>"
}
}
}{
"message": "Financial connection created. Follow the URL to start the authentication process with the bank.",
"data": {
"auth_url": "<string>",
"client_session": {},
"financial_connection": {
"id": "<string>",
"institution_id": "<string>",
"region": "<string>",
"enabled": "<string>",
"status": "<string>",
"status_message": "<string>",
"sync_balances": "<string>",
"supports_reauthorization": true,
"supports_manage": true,
"max_historical_days": "<string>",
"access_valid_for_days": "<string>",
"consent_expires_at": "<string>",
"reference": "<string>",
"accounts_last_synced_at": "<string>",
"setup_pending": true,
"setup_renewal": "<string>",
"activated_at": "<string>",
"created_at": "<string>",
"updated_at": "<string>",
"institution": {
"id": "<string>",
"integrator": "<string>",
"region": "<string>",
"country": "<string>",
"name": "<string>",
"bic": "<string>",
"external_id": "<string>",
"logo": "<string>",
"supported": "<string>",
"supports_pending_transactions": "<string>",
"supports_card_accounts": "<string>",
"max_historical_days": "<string>",
"max_access_valid_for_days": "<string>",
"supported_products": "<string>",
"category": "<string>",
"updated_at": "<string>"
},
"health": {
"status": "<string>",
"integrator_message": "<string>",
"failure_count": "<string>",
"transient_message": "<string>",
"transient_failure_count": "<string>",
"last_attempt_at": "<string>"
},
"financial_accounts": [
{
"id": "<string>",
"enabled": "<string>",
"integrator": "<string>",
"account_category": "<string>",
"raw_type": "<string>",
"cash_balance": {
"amount": "<string>",
"currency": "<string>"
},
"total_balance": {
"amount": "<string>",
"currency": "<string>"
},
"meta": "<string>",
"name": "<string>",
"custom_name": "<string>",
"display_name": "<string>",
"currency": "<string>",
"product_name": "<string>",
"cash_account_type": "<string>",
"account_usage": "<string>",
"linked_accounts": "<string>",
"details": "<string>",
"details_last_synced_at": "<string>",
"transactions_last_synced_at": "<string>",
"transactions_backfill_cursor": "<string>",
"balances_last_synced_at": "<string>",
"balance": {
"available": "<string>",
"cleared": "<string>"
},
"created_at": "<string>",
"updated_at": "<string>",
"financial_connection_id": "<string>",
"financial_connection": "<unknown>",
"config": {
"map_fields": {
"payee": "<string>",
"description": "<string>",
"date": "<string>"
},
"enrichment": {
"enabled": "<string>",
"provider": "<string>",
"country": "<string>"
},
"sync_start_date": "2025-01-01",
"sync_auto": "<string>",
"sync_pending_transactions": "<string>",
"pending_settlement_matching": "<string>",
"pending_settlement_max_days": "<string>",
"fuzzy_counterparty_matching": "<string>",
"fuzzy_counterparty_min_chars": "<string>",
"sync_balances": "<string>",
"sync_frequency_in_minutes": "<string>",
"fields_for_duplicate_filtering": [
"<string>"
]
},
"health": {
"status": "<string>",
"integrator_message": "<string>",
"failure_count": "<string>",
"transient_message": "<string>",
"transient_failure_count": "<string>",
"last_attempt_at": "<string>"
},
"account_number_masked": "<string>",
"bban": "<string>",
"scan": "<string>",
"iban": "<string>",
"bic": "<string>",
"owner_name": "<string>",
"owner_address": "<string>",
"msisdn": "<string>",
"integrator_id": "<string>",
"institution_id": "<string>",
"rules": [
{
"order": 123,
"rule": {}
}
],
"transfer_links": [
{
"id": "<string>",
"financial_account_id": "<string>",
"destination_type": "<string>",
"destination_id": "<string>",
"transfer_start_date": "2025-01-01",
"active": "<string>",
"sync_mode": "<string>",
"on_booked_change": {
"update_status": "<string>",
"update_payee": "<string>",
"update_description": "<string>",
"update_amount": "<string>"
},
"created_at": "<string>",
"updated_at": "<string>",
"financial_account": "<unknown>",
"destination": {
"id": "<string>",
"budget_id": "<string>",
"ynab_id": "<string>",
"name": "<string>",
"type": "<string>",
"on_budget": "<string>",
"closed": "<string>",
"note": "<string>",
"balance": "<string>",
"cleared_balance": "<string>",
"uncleared_balance": "<string>",
"transfer_payee_id": "<string>",
"direct_import_linked": "<string>",
"last_reconciled_at": "<string>",
"created_at": "<string>",
"updated_at": "<string>",
"budget": {
"id": "<string>",
"connection_id": "<string>",
"ynab_id": "<string>",
"enabled": "<string>",
"name": "<string>",
"currency": "<string>",
"first_month": "<string>",
"last_month": "<string>",
"last_synced_at": "<string>",
"created_at": "<string>",
"updated_at": "<string>",
"connection": {
"id": "<string>",
"name": "<string>",
"enabled": "<string>",
"sync_balances": "<string>",
"ynab_user_id": "<string>",
"last_synced_at": "<string>",
"created_at": "<string>",
"updated_at": "<string>",
"health": {
"status": "<string>",
"integrator_message": "<string>",
"failure_count": "<string>",
"transient_message": "<string>",
"transient_failure_count": "<string>",
"last_attempt_at": "<string>"
},
"auth_url": "<string>",
"budgets": "<array>"
},
"accounts": "<array>"
},
"health": {
"status": "<string>",
"integrator_message": "<string>",
"failure_count": "<string>",
"transient_message": "<string>",
"transient_failure_count": "<string>",
"last_attempt_at": "<string>"
},
"transfer_links": "<array>"
},
"rules": [
{
"order": 123,
"rule": {}
}
]
}
],
"transfer_links_count": "<string>"
}
],
"financial_accounts_count": "<string>"
}
}
}{
"status": "<string>",
"message": "<string>"
}{
"message": "<string>"
}{
"message": "<string>"
}{
"message": "Institution not found."
}{
"message": "<string>",
"errors": {}
}{
"message": "Provider is not hosted in this region.",
"code": "cell_misrouted"
}{
"message": "The region that hosts this provider is temporarily unavailable. Please try again.",
"code": "cell_unavailable",
"region": "<string>"
}Create a new financial connection
Creates the connection and returns an authorization URL (auth_url). Send the user there to authorize
with the bank. Once authorized, Synci discovers the connection’s accounts and starts their first balance and
transaction sync, reaching back max_historical_days (any value up to the institution’s maximum).
Two kinds of connection cannot start here. US banks (Array) authorize through an embedded SDK rather than a
URL: the endpoint answers 403 with code: "provider_requires_synci_surface", and the connection is made in
the Synci Dashboard or the connection portal. Managed users connect in the portal too: with a managed user’s
token the endpoint answers 403 with code: "managed_connection_requires_portal", and you mint a portal
session instead (POST /managed/v1/users/{id}/portal-sessions).
Accounts discovered on a platform app’s connection are created with sync_auto off and nothing is fetched
until you configure them. Send the account config (sync_start_date plus sync_auto: true) or call
POST /finance/accounts/{id}/sync to start. sync_start_date is the oldest date the backfill reaches;
history before it is never fetched.
curl --request POST \
--url https://api.synci.io/api/v1/finance/connections \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"institution_id": 123
}
'const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({institution_id: 123})
};
fetch('https://api.synci.io/api/v1/finance/connections', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.synci.io/api/v1/finance/connections"
payload = { "institution_id": 123 }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.synci.io/api/v1/finance/connections",
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([
'institution_id' => 123
]),
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://api.synci.io/api/v1/finance/connections"
payload := strings.NewReader("{\n \"institution_id\": 123\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))
}{
"message": "A connection for this institution already exists.",
"data": {
"already_connected": true,
"financial_connection": {
"id": "<string>",
"institution_id": "<string>",
"region": "<string>",
"enabled": "<string>",
"status": "<string>",
"status_message": "<string>",
"sync_balances": "<string>",
"supports_reauthorization": true,
"supports_manage": true,
"max_historical_days": "<string>",
"access_valid_for_days": "<string>",
"consent_expires_at": "<string>",
"reference": "<string>",
"accounts_last_synced_at": "<string>",
"setup_pending": true,
"setup_renewal": "<string>",
"activated_at": "<string>",
"created_at": "<string>",
"updated_at": "<string>",
"institution": {
"id": "<string>",
"integrator": "<string>",
"region": "<string>",
"country": "<string>",
"name": "<string>",
"bic": "<string>",
"external_id": "<string>",
"logo": "<string>",
"supported": "<string>",
"supports_pending_transactions": "<string>",
"supports_card_accounts": "<string>",
"max_historical_days": "<string>",
"max_access_valid_for_days": "<string>",
"supported_products": "<string>",
"category": "<string>",
"updated_at": "<string>"
},
"health": {
"status": "<string>",
"integrator_message": "<string>",
"failure_count": "<string>",
"transient_message": "<string>",
"transient_failure_count": "<string>",
"last_attempt_at": "<string>"
},
"financial_accounts": [
{
"id": "<string>",
"enabled": "<string>",
"integrator": "<string>",
"account_category": "<string>",
"raw_type": "<string>",
"cash_balance": {
"amount": "<string>",
"currency": "<string>"
},
"total_balance": {
"amount": "<string>",
"currency": "<string>"
},
"meta": "<string>",
"name": "<string>",
"custom_name": "<string>",
"display_name": "<string>",
"currency": "<string>",
"product_name": "<string>",
"cash_account_type": "<string>",
"account_usage": "<string>",
"linked_accounts": "<string>",
"details": "<string>",
"details_last_synced_at": "<string>",
"transactions_last_synced_at": "<string>",
"transactions_backfill_cursor": "<string>",
"balances_last_synced_at": "<string>",
"balance": {
"available": "<string>",
"cleared": "<string>"
},
"created_at": "<string>",
"updated_at": "<string>",
"financial_connection_id": "<string>",
"financial_connection": "<unknown>",
"config": {
"map_fields": {
"payee": "<string>",
"description": "<string>",
"date": "<string>"
},
"enrichment": {
"enabled": "<string>",
"provider": "<string>",
"country": "<string>"
},
"sync_start_date": "2025-01-01",
"sync_auto": "<string>",
"sync_pending_transactions": "<string>",
"pending_settlement_matching": "<string>",
"pending_settlement_max_days": "<string>",
"fuzzy_counterparty_matching": "<string>",
"fuzzy_counterparty_min_chars": "<string>",
"sync_balances": "<string>",
"sync_frequency_in_minutes": "<string>",
"fields_for_duplicate_filtering": [
"<string>"
]
},
"health": {
"status": "<string>",
"integrator_message": "<string>",
"failure_count": "<string>",
"transient_message": "<string>",
"transient_failure_count": "<string>",
"last_attempt_at": "<string>"
},
"account_number_masked": "<string>",
"bban": "<string>",
"scan": "<string>",
"iban": "<string>",
"bic": "<string>",
"owner_name": "<string>",
"owner_address": "<string>",
"msisdn": "<string>",
"integrator_id": "<string>",
"institution_id": "<string>",
"rules": [
{
"order": 123,
"rule": {}
}
],
"transfer_links": [
{
"id": "<string>",
"financial_account_id": "<string>",
"destination_type": "<string>",
"destination_id": "<string>",
"transfer_start_date": "2025-01-01",
"active": "<string>",
"sync_mode": "<string>",
"on_booked_change": {
"update_status": "<string>",
"update_payee": "<string>",
"update_description": "<string>",
"update_amount": "<string>"
},
"created_at": "<string>",
"updated_at": "<string>",
"financial_account": "<unknown>",
"destination": {
"id": "<string>",
"budget_id": "<string>",
"ynab_id": "<string>",
"name": "<string>",
"type": "<string>",
"on_budget": "<string>",
"closed": "<string>",
"note": "<string>",
"balance": "<string>",
"cleared_balance": "<string>",
"uncleared_balance": "<string>",
"transfer_payee_id": "<string>",
"direct_import_linked": "<string>",
"last_reconciled_at": "<string>",
"created_at": "<string>",
"updated_at": "<string>",
"budget": {
"id": "<string>",
"connection_id": "<string>",
"ynab_id": "<string>",
"enabled": "<string>",
"name": "<string>",
"currency": "<string>",
"first_month": "<string>",
"last_month": "<string>",
"last_synced_at": "<string>",
"created_at": "<string>",
"updated_at": "<string>",
"connection": {
"id": "<string>",
"name": "<string>",
"enabled": "<string>",
"sync_balances": "<string>",
"ynab_user_id": "<string>",
"last_synced_at": "<string>",
"created_at": "<string>",
"updated_at": "<string>",
"health": {
"status": "<string>",
"integrator_message": "<string>",
"failure_count": "<string>",
"transient_message": "<string>",
"transient_failure_count": "<string>",
"last_attempt_at": "<string>"
},
"auth_url": "<string>",
"budgets": "<array>"
},
"accounts": "<array>"
},
"health": {
"status": "<string>",
"integrator_message": "<string>",
"failure_count": "<string>",
"transient_message": "<string>",
"transient_failure_count": "<string>",
"last_attempt_at": "<string>"
},
"transfer_links": "<array>"
},
"rules": [
{
"order": 123,
"rule": {}
}
]
}
],
"transfer_links_count": "<string>"
}
],
"financial_accounts_count": "<string>"
}
}
}{
"message": "Financial connection created. Follow the URL to start the authentication process with the bank.",
"data": {
"auth_url": "<string>",
"client_session": {},
"financial_connection": {
"id": "<string>",
"institution_id": "<string>",
"region": "<string>",
"enabled": "<string>",
"status": "<string>",
"status_message": "<string>",
"sync_balances": "<string>",
"supports_reauthorization": true,
"supports_manage": true,
"max_historical_days": "<string>",
"access_valid_for_days": "<string>",
"consent_expires_at": "<string>",
"reference": "<string>",
"accounts_last_synced_at": "<string>",
"setup_pending": true,
"setup_renewal": "<string>",
"activated_at": "<string>",
"created_at": "<string>",
"updated_at": "<string>",
"institution": {
"id": "<string>",
"integrator": "<string>",
"region": "<string>",
"country": "<string>",
"name": "<string>",
"bic": "<string>",
"external_id": "<string>",
"logo": "<string>",
"supported": "<string>",
"supports_pending_transactions": "<string>",
"supports_card_accounts": "<string>",
"max_historical_days": "<string>",
"max_access_valid_for_days": "<string>",
"supported_products": "<string>",
"category": "<string>",
"updated_at": "<string>"
},
"health": {
"status": "<string>",
"integrator_message": "<string>",
"failure_count": "<string>",
"transient_message": "<string>",
"transient_failure_count": "<string>",
"last_attempt_at": "<string>"
},
"financial_accounts": [
{
"id": "<string>",
"enabled": "<string>",
"integrator": "<string>",
"account_category": "<string>",
"raw_type": "<string>",
"cash_balance": {
"amount": "<string>",
"currency": "<string>"
},
"total_balance": {
"amount": "<string>",
"currency": "<string>"
},
"meta": "<string>",
"name": "<string>",
"custom_name": "<string>",
"display_name": "<string>",
"currency": "<string>",
"product_name": "<string>",
"cash_account_type": "<string>",
"account_usage": "<string>",
"linked_accounts": "<string>",
"details": "<string>",
"details_last_synced_at": "<string>",
"transactions_last_synced_at": "<string>",
"transactions_backfill_cursor": "<string>",
"balances_last_synced_at": "<string>",
"balance": {
"available": "<string>",
"cleared": "<string>"
},
"created_at": "<string>",
"updated_at": "<string>",
"financial_connection_id": "<string>",
"financial_connection": "<unknown>",
"config": {
"map_fields": {
"payee": "<string>",
"description": "<string>",
"date": "<string>"
},
"enrichment": {
"enabled": "<string>",
"provider": "<string>",
"country": "<string>"
},
"sync_start_date": "2025-01-01",
"sync_auto": "<string>",
"sync_pending_transactions": "<string>",
"pending_settlement_matching": "<string>",
"pending_settlement_max_days": "<string>",
"fuzzy_counterparty_matching": "<string>",
"fuzzy_counterparty_min_chars": "<string>",
"sync_balances": "<string>",
"sync_frequency_in_minutes": "<string>",
"fields_for_duplicate_filtering": [
"<string>"
]
},
"health": {
"status": "<string>",
"integrator_message": "<string>",
"failure_count": "<string>",
"transient_message": "<string>",
"transient_failure_count": "<string>",
"last_attempt_at": "<string>"
},
"account_number_masked": "<string>",
"bban": "<string>",
"scan": "<string>",
"iban": "<string>",
"bic": "<string>",
"owner_name": "<string>",
"owner_address": "<string>",
"msisdn": "<string>",
"integrator_id": "<string>",
"institution_id": "<string>",
"rules": [
{
"order": 123,
"rule": {}
}
],
"transfer_links": [
{
"id": "<string>",
"financial_account_id": "<string>",
"destination_type": "<string>",
"destination_id": "<string>",
"transfer_start_date": "2025-01-01",
"active": "<string>",
"sync_mode": "<string>",
"on_booked_change": {
"update_status": "<string>",
"update_payee": "<string>",
"update_description": "<string>",
"update_amount": "<string>"
},
"created_at": "<string>",
"updated_at": "<string>",
"financial_account": "<unknown>",
"destination": {
"id": "<string>",
"budget_id": "<string>",
"ynab_id": "<string>",
"name": "<string>",
"type": "<string>",
"on_budget": "<string>",
"closed": "<string>",
"note": "<string>",
"balance": "<string>",
"cleared_balance": "<string>",
"uncleared_balance": "<string>",
"transfer_payee_id": "<string>",
"direct_import_linked": "<string>",
"last_reconciled_at": "<string>",
"created_at": "<string>",
"updated_at": "<string>",
"budget": {
"id": "<string>",
"connection_id": "<string>",
"ynab_id": "<string>",
"enabled": "<string>",
"name": "<string>",
"currency": "<string>",
"first_month": "<string>",
"last_month": "<string>",
"last_synced_at": "<string>",
"created_at": "<string>",
"updated_at": "<string>",
"connection": {
"id": "<string>",
"name": "<string>",
"enabled": "<string>",
"sync_balances": "<string>",
"ynab_user_id": "<string>",
"last_synced_at": "<string>",
"created_at": "<string>",
"updated_at": "<string>",
"health": {
"status": "<string>",
"integrator_message": "<string>",
"failure_count": "<string>",
"transient_message": "<string>",
"transient_failure_count": "<string>",
"last_attempt_at": "<string>"
},
"auth_url": "<string>",
"budgets": "<array>"
},
"accounts": "<array>"
},
"health": {
"status": "<string>",
"integrator_message": "<string>",
"failure_count": "<string>",
"transient_message": "<string>",
"transient_failure_count": "<string>",
"last_attempt_at": "<string>"
},
"transfer_links": "<array>"
},
"rules": [
{
"order": 123,
"rule": {}
}
]
}
],
"transfer_links_count": "<string>"
}
],
"financial_accounts_count": "<string>"
}
}
}{
"status": "<string>",
"message": "<string>"
}{
"message": "<string>"
}{
"message": "<string>"
}{
"message": "Institution not found."
}{
"message": "<string>",
"errors": {}
}{
"message": "Provider is not hosted in this region.",
"code": "cell_misrouted"
}{
"message": "The region that hosts this provider is temporarily unavailable. Please try again.",
"code": "cell_unavailable",
"region": "<string>"
}Authorizations
The access token received from the authorization server in the OAuth 2.0 flow.
Body
The ID of the institution you want to establish a connection with. You can find available institutions under the institutions endpoint (GET /finance/institutions).
The maximum number of days of historical data Synci should be able to fetch. Applies to all accounts belonging to this connection. Use the institutions endpoint (GET /finance/institutions) to find out the maximum historical days for an institution.
x >= 0Also known as consent lifetime. The number of days Synci should be able to access accounts belonging to this connection. E.g. if this is set to 180 days, you will have to re-authenticate the connection every 180 days. Synci will email you when the expiry date is approaching. Use the institutions endpoint (GET /finance/institutions) to find out the maximum access valid for days for an institution.
x >= 1The provider a financial connection or account is sourced from: GOCARDLESS (EU/UK banks), AKAHU (NZ banks), ARRAY (US banks), SNAPTRADE (brokerages and crypto exchanges) or DEMO (Synci's demo banks). UNKNOWN is used for accounts created manually via the API.
UNKNOWN |
GOCARDLESS |
AKAHU |
ARRAY US banks. One connection can carry depository, liability and investment accounts, and transactions arrive already enriched. Connections cannot be created through the API: the consent flow is an embedded SDK, so they are started from the Synci Dashboard or the connection portal. |
SNAPTRADE |
DEMO Synci's demo banks. Accounts, balances and transactions are generated by Synci rather than fetched from a bank, and otherwise behave like real data: syncs, webhooks and transfer links all run. |
UNKNOWN, GOCARDLESS, AKAHU, ARRAY, SNAPTRADE, DEMO Optional correlation id stored on the connection — e.g. your own end-user id. Filter connections later with ?filter[reference]=.
255