{"openapi":"3.1.0","info":{"title":"Synctera (BYOK) API","version":"0.1.0","description":"Synctera (BYOK) lets an AI assistant read your own Synctera data through the Synctera API with a key you supply (Synctera API key). Read-only: 11 tools (list_accounts, get_account, list_posted_transactions, list_pending_transactions, list_statements, list_internal_accounts, list_sent_ach, list_outgoing_wires, list_businesses, list_monitoring_alerts, list_account_programs). The BYOK key travels...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-synctera.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-synctera/docs"},"termsOfService":"https://connectorbay.com/byok-synctera/terms"},"servers":[{"url":"https://byok-synctera.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-synctera/docs"},"security":[{"upstreamKey":[]}],"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer","description":"Optional. A Pro API key raises rate limits; no credentials are required."},"upstreamKey":{"type":"apiKey","in":"header","name":"X-Upstream-Key","description":"Your own key for the service this connector wraps (bring your own key). Used for that one call only; never stored, logged or cached."}},"schemas":{"Error":{"type":"object","properties":{"ok":{"const":false},"error":{"type":"object"}}}}},"paths":{"/v1/tools/list_accounts":{"post":{"operationId":"list_accounts","summary":"List banking accounts of the fintech program with type, status, masked account number, currency, balances and creation t","description":"List banking accounts of the fintech program with type, status, masked account number, currency, balances and creation time. Full account numbers are not returned by this connector. Use for \"Which checking accounts exist in my Synctera program\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"customer_id":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only accounts of this customer ID (comma-separated for several).","title":"Customer Id"},"business_id":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only accounts of this business ID (comma-separated for several).","title":"Business Id"},"account_type":{"anyOf":[{"enum":["CHECKING","SAVING","CREDIT_CARD","LINE_OF_CREDIT","PREPAID","CHARGE_SECURED","CHARGE_UNSECURED","REVOLVING_CREDIT_SECURED","REVOLVING_CREDIT_UNSECURED","GENERAL_LEDGER"],"type":"string"},{"type":"null"}],"default":null,"description":"Only this account type.","title":"Account Type"},"from_creation_time":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only accounts created at or after this ISO 8601 time, for example 2026-01-01T00:00:00Z.","title":"From Creation Time"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many results to return per page (1 to 100).","title":"Limit"},"page_token":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Pagination token: pass the next_page_token from the previous answer to get the next page.","title":"Page Token"}},"title":"list_accountsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_account":{"post":{"operationId":"get_account","summary":"Get one banking account by ID: type, status, masked account number, balances, enabled payment rails and dates. Use for \"","description":"Get one banking account by ID: type, status, masked account number, balances, enabled payment rails and dates. Use for \"What is the balance and status of Synctera account 1a2b3c\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"account_id":{"description":"Synctera account ID (UUID).","maxLength":200,"title":"Account Id","type":"string"}},"required":["account_id"],"title":"get_accountArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_posted_transactions":{"post":{"operationId":"list_posted_transactions","summary":"List posted ledger transactions, optionally for one account and a date range, with type, subtype, status and dates. Use ","description":"List posted ledger transactions, optionally for one account and a date range, with type, subtype, status and dates. Use for \"Show posted transactions for account 1a2b3c this month\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"account_id":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only transactions of this account ID.","title":"Account Id"},"from_date":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only transactions with posting date after this date, YYYY-MM-DD.","title":"From Date"},"to_date":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only transactions with posting date up to and including this date, YYYY-MM-DD.","title":"To Date"},"dc_sign":{"anyOf":[{"enum":["credit","debit"],"type":"string"},{"type":"null"}],"default":null,"description":"Only credits or only debits.","title":"Dc Sign"},"type":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only this transaction type (usually the payment rail), for example ACH.","title":"Type"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many results to return per page (1 to 100).","title":"Limit"},"page_token":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Pagination token: pass the next_page_token from the previous answer to get the next page.","title":"Page Token"}},"title":"list_posted_transactionsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_pending_transactions":{"post":{"operationId":"list_pending_transactions","summary":"List pending transactions (holds that have not posted yet), optionally for one account, with transaction detail data. Us","description":"List pending transactions (holds that have not posted yet), optionally for one account, with transaction detail data. Use for \"What pending transactions does account 1a2b3c have\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"account_id":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only transactions of this account ID.","title":"Account Id"},"from_date":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only transactions with posting date after this date, YYYY-MM-DD.","title":"From Date"},"to_date":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only transactions with posting date up to and including this date, YYYY-MM-DD.","title":"To Date"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many results to return per page (1 to 100).","title":"Limit"},"page_token":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Pagination token: pass the next_page_token from the previous answer to get the next page.","title":"Page Token"}},"title":"list_pending_transactionsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_statements":{"post":{"operationId":"list_statements","summary":"List statement summaries (issue, start, end and due dates) for one account. Use for \"List the statements issued for acco","description":"List statement summaries (issue, start, end and due dates) for one account. Use for \"List the statements issued for account 1a2b3c\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"account_id":{"description":"Synctera account ID (UUID) whose statements to list.","maxLength":200,"title":"Account Id","type":"string"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many results to return per page (1 to 100).","title":"Limit"},"page_token":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Pagination token: pass the next_page_token from the previous answer to get the next page.","title":"Page Token"}},"required":["account_id"],"title":"list_statementsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_internal_accounts":{"post":{"operationId":"list_internal_accounts","summary":"List the program's internal general-ledger accounts (settlement, suspense, fees and so on) with purpose, ledger type, cu","description":"List the program's internal general-ledger accounts (settlement, suspense, fees and so on) with purpose, ledger type, currency and balances. Use for \"What are the balances of our settlement and suspense ledger accounts\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many results to return per page (1 to 100).","title":"Limit"},"page_token":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Pagination token: pass the next_page_token from the previous answer to get the next page.","title":"Page Token"}},"title":"list_internal_accountsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_sent_ach":{"post":{"operationId":"list_sent_ach","summary":"List ACH transactions sent from the program, with amount in cents, status, effective date, company name and trace number","description":"List ACH transactions sent from the program, with amount in cents, status, effective date, company name and trace number. Use for \"Which outgoing ACH payments are still pending\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"start_effective_date":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Start of the effective date range, YYYY-MM-DD.","title":"Start Effective Date"},"end_effective_date":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"End of the effective date range, YYYY-MM-DD.","title":"End Effective Date"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many results to return per page (1 to 100).","title":"Limit"},"page_token":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Pagination token: pass the next_page_token from the previous answer to get the next page.","title":"Page Token"}},"title":"list_sent_achArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_outgoing_wires":{"post":{"operationId":"list_outgoing_wires","summary":"List outgoing wire transfers with amount in cents, currency, status, effective and settlement dates. Use for \"Show outgo","description":"List outgoing wire transfers with amount in cents, currency, status, effective and settlement dates. Use for \"Show outgoing wires from the last week and their status\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"status":{"anyOf":[{"enum":["BLOCKED","POSTED","READY"],"type":"string"},{"type":"null"}],"default":null,"description":"Only wires in this status.","title":"Status"},"from_date":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only wires with effective date after this date, YYYY-MM-DD.","title":"From Date"},"to_date":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only wires with effective date up to this date, YYYY-MM-DD.","title":"To Date"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many results to return per page (1 to 100).","title":"Limit"},"page_token":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Pagination token: pass the next_page_token from the previous answer to get the next page.","title":"Page Token"}},"title":"list_outgoing_wiresArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_businesses":{"post":{"operationId":"list_businesses","summary":"List business parties known to the program with legal name, status, structure, formation state and verification status. ","description":"List business parties known to the program with legal name, status, structure, formation state and verification status. Tax IDs are not returned. Use for \"Which businesses in our program are still unverified\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"status":{"anyOf":[{"enum":["ACTIVE","PROSPECT","FROZEN","SANCTION","SUSPENDED","INACTIVE","DISSOLVED","CANCELLED","MERGED","CONVERTED"],"type":"string"},{"type":"null"}],"default":null,"description":"Only businesses with this status.","title":"Status"},"entity_name":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only businesses with this legal name.","title":"Entity Name"},"has_accounts":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"True for businesses that have accounts, false for those without.","title":"Has Accounts"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many results to return per page (1 to 100).","title":"Limit"},"page_token":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Pagination token: pass the next_page_token from the previous answer to get the next page.","title":"Page Token"}},"title":"list_businessesArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_monitoring_alerts":{"post":{"operationId":"list_monitoring_alerts","summary":"List compliance monitoring alerts (watchlist, negative news, bankruptcy, license validity) with type, source and status.","description":"List compliance monitoring alerts (watchlist, negative news, bankruptcy, license validity) with type, source and status. Use for \"Are there any active watchlist alerts in our program\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"business_id":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only alerts for this business ID.","title":"Business Id"},"person_id":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only alerts for this person ID.","title":"Person Id"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many results to return per page (1 to 100).","title":"Limit"},"page_token":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Pagination token: pass the next_page_token from the previous answer to get the next page.","title":"Page Token"}},"title":"list_monitoring_alertsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_account_programs":{"post":{"operationId":"list_account_programs","summary":"List account programs with account type, billing category, enabled flag and number of related accounts. Use for \"What ac","description":"List account programs with account type, billing category, enabled flag and number of related accounts. Use for \"What account programs have we configured in Synctera\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"enabled":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"True for enabled programs only, false for disabled ones.","title":"Enabled"},"name_like":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Case-insensitive name search; use * as a wildcard.","title":"Name Like"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many results to return per page (1 to 100).","title":"Limit"},"page_token":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Pagination token: pass the next_page_token from the previous answer to get the next page.","title":"Page Token"}},"title":"list_account_programsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}}}}