naftiko: 1.0.0-alpha2 info: label: Synctera API — External Accounts description: 'Synctera API — External Accounts. 11 operations. Lead operation: List external accounts. Self-contained Naftiko capability covering one Synctera business surface.' tags: - Synctera - External Accounts created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: SYNCTERA_API_KEY: SYNCTERA_API_KEY capability: consumes: - type: http namespace: synctera-external-accounts baseUri: https://api.synctera.com/v0 description: Synctera API — External Accounts business capability. Self-contained, no shared references. resources: - name: external_accounts path: /external_accounts operations: - name: listexternalaccounts method: GET description: List external accounts outputRawFormat: json outputParameters: - name: result type: object value: $. - name: addexternalaccounts method: POST description: Add an external account outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: external_accounts-access_tokens path: /external_accounts/access_tokens operations: - name: createaccesstoken method: POST description: Create a permanent access token for an external account outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: external_accounts-add_vendor_accounts path: /external_accounts/add_vendor_accounts operations: - name: addvendorexternalaccounts method: POST description: Add external accounts through a vendor, such as Plaid. outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: external_accounts-link_tokens path: /external_accounts/link_tokens operations: - name: createverificationlinktoken method: POST description: Create a link token to verify an external account outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: external_accounts-sync_vendor_accounts path: /external_accounts/sync_vendor_accounts operations: - name: syncvendorexternalaccounts method: POST description: Sync external accounts through a vendor, such as Plaid. outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: external_accounts-external_account_id path: /external_accounts/{external_account_id} operations: - name: deleteexternalaccount method: DELETE description: Delete an external account outputRawFormat: json outputParameters: - name: result type: object value: $. - name: getexternalaccount method: GET description: Get an external account outputRawFormat: json outputParameters: - name: result type: object value: $. - name: updateexternalaccount method: PATCH description: Patch an external account outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: external_accounts-external_account_id-balance path: /external_accounts/{external_account_id}/balance operations: - name: getexternalaccountbalance method: GET description: Get an external account balance outputRawFormat: json outputParameters: - name: result type: object value: $. - name: external_accounts-external_account_id-transactions path: /external_accounts/{external_account_id}/transactions operations: - name: getexternalaccounttransactions method: GET description: List transactions of a given external account outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: start_date in: query type: string description: Date range filtering for transactions. Date is inclusive. Date must be in UTC. required: true - name: end_date in: query type: string description: Date range filtering for transactions. Date is exclusive. Date must be in UTC. required: true authentication: type: bearer token: '{{env.SYNCTERA_API_KEY}}' exposes: - type: rest namespace: synctera-external-accounts-rest port: 8080 description: REST adapter for Synctera API — External Accounts. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/external-accounts name: external-accounts description: REST surface for external_accounts. operations: - method: GET name: listexternalaccounts description: List external accounts call: synctera-external-accounts.listexternalaccounts outputParameters: - type: object mapping: $. - method: POST name: addexternalaccounts description: Add an external account call: synctera-external-accounts.addexternalaccounts with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/external-accounts/access-tokens name: external-accounts-access-tokens description: REST surface for external_accounts-access_tokens. operations: - method: POST name: createaccesstoken description: Create a permanent access token for an external account call: synctera-external-accounts.createaccesstoken with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/external-accounts/add-vendor-accounts name: external-accounts-add-vendor-accounts description: REST surface for external_accounts-add_vendor_accounts. operations: - method: POST name: addvendorexternalaccounts description: Add external accounts through a vendor, such as Plaid. call: synctera-external-accounts.addvendorexternalaccounts with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/external-accounts/link-tokens name: external-accounts-link-tokens description: REST surface for external_accounts-link_tokens. operations: - method: POST name: createverificationlinktoken description: Create a link token to verify an external account call: synctera-external-accounts.createverificationlinktoken with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/external-accounts/sync-vendor-accounts name: external-accounts-sync-vendor-accounts description: REST surface for external_accounts-sync_vendor_accounts. operations: - method: POST name: syncvendorexternalaccounts description: Sync external accounts through a vendor, such as Plaid. call: synctera-external-accounts.syncvendorexternalaccounts with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/external-accounts/{external-account-id} name: external-accounts-external-account-id description: REST surface for external_accounts-external_account_id. operations: - method: DELETE name: deleteexternalaccount description: Delete an external account call: synctera-external-accounts.deleteexternalaccount outputParameters: - type: object mapping: $. - method: GET name: getexternalaccount description: Get an external account call: synctera-external-accounts.getexternalaccount outputParameters: - type: object mapping: $. - method: PATCH name: updateexternalaccount description: Patch an external account call: synctera-external-accounts.updateexternalaccount with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/external-accounts/{external-account-id}/balance name: external-accounts-external-account-id-balance description: REST surface for external_accounts-external_account_id-balance. operations: - method: GET name: getexternalaccountbalance description: Get an external account balance call: synctera-external-accounts.getexternalaccountbalance outputParameters: - type: object mapping: $. - path: /v1/external-accounts/{external-account-id}/transactions name: external-accounts-external-account-id-transactions description: REST surface for external_accounts-external_account_id-transactions. operations: - method: GET name: getexternalaccounttransactions description: List transactions of a given external account call: synctera-external-accounts.getexternalaccounttransactions with: start_date: rest.start_date end_date: rest.end_date outputParameters: - type: object mapping: $. - type: mcp namespace: synctera-external-accounts-mcp port: 9090 transport: http description: MCP adapter for Synctera API — External Accounts. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: list-external-accounts description: List external accounts hints: readOnly: true destructive: false idempotent: true call: synctera-external-accounts.listexternalaccounts outputParameters: - type: object mapping: $. - name: add-external-account description: Add an external account hints: readOnly: false destructive: false idempotent: false call: synctera-external-accounts.addexternalaccounts with: body: tools.body outputParameters: - type: object mapping: $. - name: create-permanent-access-token-external description: Create a permanent access token for an external account hints: readOnly: false destructive: false idempotent: false call: synctera-external-accounts.createaccesstoken with: body: tools.body outputParameters: - type: object mapping: $. - name: add-external-accounts-through-vendor description: Add external accounts through a vendor, such as Plaid. hints: readOnly: false destructive: false idempotent: false call: synctera-external-accounts.addvendorexternalaccounts with: body: tools.body outputParameters: - type: object mapping: $. - name: create-link-token-verify-external description: Create a link token to verify an external account hints: readOnly: false destructive: false idempotent: false call: synctera-external-accounts.createverificationlinktoken with: body: tools.body outputParameters: - type: object mapping: $. - name: sync-external-accounts-through-vendor description: Sync external accounts through a vendor, such as Plaid. hints: readOnly: false destructive: false idempotent: false call: synctera-external-accounts.syncvendorexternalaccounts with: body: tools.body outputParameters: - type: object mapping: $. - name: delete-external-account description: Delete an external account hints: readOnly: false destructive: true idempotent: true call: synctera-external-accounts.deleteexternalaccount outputParameters: - type: object mapping: $. - name: get-external-account description: Get an external account hints: readOnly: true destructive: false idempotent: true call: synctera-external-accounts.getexternalaccount outputParameters: - type: object mapping: $. - name: patch-external-account description: Patch an external account hints: readOnly: false destructive: false idempotent: true call: synctera-external-accounts.updateexternalaccount with: body: tools.body outputParameters: - type: object mapping: $. - name: get-external-account-balance description: Get an external account balance hints: readOnly: true destructive: false idempotent: true call: synctera-external-accounts.getexternalaccountbalance outputParameters: - type: object mapping: $. - name: list-transactions-given-external-account description: List transactions of a given external account hints: readOnly: true destructive: false idempotent: true call: synctera-external-accounts.getexternalaccounttransactions with: start_date: tools.start_date end_date: tools.end_date outputParameters: - type: object mapping: $.