1. Guides
Synci API
  • Overview
  • Guides
    • Authentication
    • Building OAuth apps
    • Webhooks
    • Pagination, filtering, and sorting
    • Errors
    • Rate limits
    • MCP: Connect AI assistants
  • API Reference
    • Finance
      • Connections
        • List all financial connections
        • Create a new financial connection
        • Get financial connection
        • Delete financial connection
        • Disable financial connection
        • Reconfirm the consent of a financial connection
      • Accounts
        • List all financial accounts
        • Get financial account
        • Update financial account
        • Delete financial account
        • Sync financial account data
        • Reset financial account config to defaults
        • List all account balance entries
        • Get account balance entry
        • List account holdings
        • Get account holding
      • Transactions
        • List all transactions
        • Create a new transaction
        • Get transaction
        • Update transaction
        • Delete transaction
        • Bulk delete transactions
      • Institutions
        • Get supported countries
        • List all supported institutions
        • Get supported institution
    • Destinations
      • YNAB Connections
        • YNAB Budgets
          • YNAB Budget Accounts
            • List all YNAB budget accounts
            • Get YNAB budget account
            • Delete YNAB budget account
          • List all YNAB budgets
          • Get YNAB budget
          • Delete YNAB budget
          • Update YNAB budget
        • List all YNAB connections
        • Create new YNAB connection
        • Get YNAB connection
        • Delete YNAB connection
        • Update YNAB connection
        • Refresh YNAB connection
      • Lunch Money Connections
        • Lunch Money Accounts
          • List all Lunch Money accounts
          • Get Lunch Money account
          • Delete Lunch Money account
        • List all Lunch Money connections
        • Create new Lunch Money connection
        • Get Lunch Money connection
        • Delete Lunch Money connection
        • Update Lunch Money connection
        • Refresh Lunch Money connection
      • Google Sheets Connections
        • Sheets
          • List destination spreadsheets for a connection
          • Register a destination spreadsheet
          • Get a destination spreadsheet
          • Update a destination spreadsheet
          • Delete a destination spreadsheet
          • List the worksheets (tabs) of a spreadsheet
          • Create a new worksheet (tab) in a spreadsheet
        • List all Google Sheets connections
        • Create new Google Sheets connection
        • Get Google Sheets connection
        • Delete Google Sheets connection
        • Update Google Sheets connection
        • Refresh Google Sheets connection
    • Transfer Links
      • List all transfer links
      • Create a new transfer link
      • Get transfer link
      • Update transfer link
      • Delete transfer link
      • Retry transfers for all transfer links
      • Retry transfers for a specific transfer link
    • Transfer Logs
      • List all transfer logs
      • Get transfer log
      • Undo a transfer
      • Undo multiple transfers
    • Rules
      • Create a new rule
      • List all rules
      • Get rule
      • Update rule
      • Delete rule
      • Attach rule to transfer link
      • Detach rule from transfer link
      • Reorder rules for a transfer link
      • Attach rule to a financial account
      • Detach rule from financial account
      • Reorder rules for a financial account
      • Preview a rule against transactions (dry-run)
    • Rule Logs
      • List all rule logs
      • Get rule log
      • Undo multiple rule actions
      • Undo a rule action
    • Webhooks
      • List all webhook events
      • List all webhook endpoints
      • Create new webhook endpoint
      • Get webhook endpoint
      • Update webhook endpoint
      • Delete webhook endpoint
      • Test webhook endpoint
      • Rotate webhook secret
  • ActualBudgetConnections
    • List all Actual Budget connections
      GET
    • Create new Actual Budget connection
      POST
    • Get Actual Budget connection
      GET
    • Update Actual Budget connection
      PUT
    • Delete Actual Budget connection
      DELETE
    • Regenerate setup token
      POST
    • Revoke access credentials
      POST
    • List accounts linked in Actual
      GET
  • Schemas
    • AccountHoldingResource
    • ActualBudgetAccountResource
    • ActualBudgetConnectionResource
    • BalanceTypeEnum
    • BulkDeleteTransactionsRequest
    • BulkUndoRuleLogsRequest
    • BulkUndoTransferLogsRequest
    • CreateFinancialConnectionRequest
    • CreateGoogleSheetTabRequest
    • CreateGoogleSheetsConnectionRequest
    • CreateLunchMoneyConnectionRequest
    • CreateRuleRequest
    • CreateTransactionRequest
    • CreateTransferLinkRequest
    • CreateWebhookEndpointRequest
    • CreateYnabConnectionRequest
    • DestinationTypeEnum
    • EnrichmentProviderEnum
    • FinancialAccount
    • FinancialAccountBalanceResource
    • FinancialAccountResource
    • FinancialConnectionResource
    • GoogleSheetResource
    • GoogleSheetsConnectionResource
    • HealthResource
    • HealthStatusEnum
    • InstitutionConfigMappedDateEnum
    • InstitutionConfigMappedTextEnum
    • InstitutionConfigResource
    • InstitutionResource
    • IntegratorEnum
    • LunchMoneyAccountResource
    • LunchMoneyConnectionResource
    • PreviewRuleRequest
    • ReauthorizeFinancialConnectionRequest
    • RetryTransfersAllLinksRequest
    • RetryTransfersRequest
    • RuleActionResource
    • RuleActionTypeEnum
    • RuleConditionResource
    • RuleLogResource
    • RuleOperatorEnum
    • RuleResource
    • RuleTypeEnum
    • StoreActualBudgetConnectionRequest
    • StoreGoogleSheetRequest
    • SyncFinancialAccountRequest
    • TestWebhookRequest
    • TransactionResource
    • TransactionTypeEnum
    • TransferLink
    • TransferLinkResource
    • TransferLinkSyncModeEnum
    • TransferLogResource
    • TransferLogStatusEnum
    • UpdateActualBudgetConnectionRequest
    • UpdateFinancialAccountRequest
    • UpdateGoogleSheetRequest
    • UpdateGoogleSheetsConnectionRequest
    • UpdateLunchMoneyConnectionRequest
    • UpdateRuleRequest
    • UpdateTransactionRequest
    • UpdateTransferLinkRequest
    • UpdateWebhookEndpointRequest
    • UpdateYnabBudgetRequest
    • UpdateYnabConnectionRequest
    • WebhookEndpointPayloadVersion
    • WebhookEndpointResource
    • WebhookEventResource
    • WebhookEventTypeEnum
    • WebhookTypeEnum
    • YnabBudgetAccountResource
    • YnabBudgetAccountTypeEnum
    • YnabBudgetResource
    • YnabConnectionResource
  1. Guides

Errors

The Synci API uses conventional HTTP status codes. Codes in the 2xx range mean success, 4xx means something was wrong with the request, and 5xx means something went wrong on Synci's side.

Error response format#

Errors return a JSON body with a human-readable message:
{
  "message": "Not found"
}
Validation failures (422) additionally include an errors map with per-field messages:
{
  "message": "The url field must be a valid URL.",
  "errors": {
    "url": [
      "The url field must be a valid URL."
    ]
  }
}

Status codes#

CodeMeaning
200 OKThe request succeeded.
201 CreatedThe resource was created.
204 No ContentThe request succeeded and there is nothing to return (typically deletes).
400 Bad RequestThe request was malformed.
401 UnauthorizedMissing, expired, or revoked token.
403 ForbiddenThe token is valid but lacks a required scope, or the action is not available on your plan.
404 Not FoundThe resource does not exist, or it was not granted to this token. Synci deliberately returns 404 instead of 403 for ungranted resources so tokens cannot probe for data they were not given.
409 ConflictThe request cannot be performed in the resource's current state (for example, syncing an account that is inactive at the bank).
422 Unprocessable EntityValidation failed; see the errors map.
429 Too Many RequestsYou hit a rate limit; see Rate limits. The message explains which limit and, where applicable, when you can retry.
500 Internal Server ErrorSomething went wrong on our side. Safe to retry with backoff; contact support if it persists.

OAuth errors#

The OAuth endpoints (/oauth/authorize, /oauth/token) return standard OAuth 2.0 error codes:
ErrorCause
invalid_clientWrong or missing client credentials, or the token request was sent as JSON instead of application/x-www-form-urlencoded.
invalid_grantExpired or already-used authorization code, mismatched code_verifier, or a rotated/revoked refresh token.
invalid_scopeA requested scope is not registered for your app.
access_deniedThe user declined the authorization request (returned on the redirect).

Handling errors#

Retry 429 and 5xx with exponential backoff. Honor the Retry-After header when present.
Do not retry 4xx (other than 429) without fixing the request.
Treat 401 on a previously working OAuth token as "access token expired": refresh and retry once. If the refresh also fails, the user has likely revoked your app and needs to authorize again.
Modified at 2026-07-11 12:31:18
Previous
Pagination, filtering, and sorting
Next
Rate limits
Built with