> ## Documentation Index
> Fetch the complete documentation index at: https://docs.synci.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Revoke access credentials

> Permanently invalidates the connection's SimpleFIN credentials (and any
unclaimed setup token). Actual's subsequent pulls receive an
authorization error until the account is relinked with a new connection.



## OpenAPI

````yaml /openapi/v1.json post /destinations/simplefin/connections/{connectionId}/revoke
openapi: 3.2.0
info:
  title: Synci
  version: '1.0'
  description: >-
    Synci is a platform for integrating financial accounts with your favorite
    apps.
servers:
  - url: https://api.synci.io/api/v1
security:
  - oauth2: []
  - http: []
tags:
  - name: Finance
    kind: nav
  - name: Connections
    parent: Finance
  - name: Accounts
    parent: Finance
  - name: Transactions
    parent: Finance
  - name: Institutions
    parent: Finance
  - name: Destinations
    kind: nav
  - name: YNAB
    parent: Destinations
  - name: Lunch Money
    parent: Destinations
  - name: Google Sheets
    parent: Destinations
  - name: SimpleFIN
    parent: Destinations
  - name: Notion
    parent: Destinations
  - name: Account
    kind: nav
  - name: Webhooks
    parent: Account
  - name: User
    parent: Account
  - name: rule-engine
    summary: Rules
    kind: nav
  - name: Rules
    parent: rule-engine
  - name: Rule Logs
    parent: rule-engine
  - name: Transfers
    kind: nav
  - name: Transfer Links
    parent: Transfers
  - name: Transfer Logs
    parent: Transfers
paths:
  /destinations/simplefin/connections/{connectionId}/revoke:
    post:
      tags:
        - SimpleFIN
      summary: Revoke access credentials
      description: |-
        Permanently invalidates the connection's SimpleFIN credentials (and any
        unclaimed setup token). Actual's subsequent pulls receive an
        authorization error until the account is relinked with a new connection.
      operationId: destinations.simplefin.connections.revoke
      parameters:
        - name: connectionId
          in: path
          required: true
          description: The SimpleFIN connection ID
          schema:
            type: integer
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    const: SimpleFIN connection revoked.
                  data:
                    allOf:
                      - $ref: '#/components/schemas/SimpleFinConnectionResource'
                      - type: object
                        required:
                          - health
                required:
                  - message
                  - data
        '401':
          $ref: '#/components/responses/AuthenticationException'
        '403':
          $ref: '#/components/responses/AuthorizationException'
        '404':
          $ref: '#/components/responses/ModelNotFoundException'
        '422':
          description: ''
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    const: Connection is already revoked.
                required:
                  - message
components:
  schemas:
    SimpleFinConnectionResource:
      type: object
      properties:
        id:
          type: string
        health:
          $ref: '#/components/schemas/HealthResource'
        name:
          type: string
          description: Display name for the connection.
        app:
          type: string
          description: |-
            Which SimpleFIN app this connection is for (drives the card/icon
            and setup guide the UI shows). Protocol behavior is identical
            across apps.
        enabled:
          type: string
          description: >-
            Whether the connection is enabled. Disabled connections reject
            pulls.
        status:
          type: string
          description: |-
            Lifecycle status: pending (waiting for the token to be claimed),
            expired (setup token lapsed unclaimed), claimed (Actual holds
            active credentials), or revoked (credentials invalidated).
        setup_token:
          type:
            - string
            - 'null'
          description: |-
            The one-time SimpleFIN setup token to paste into Actual's
            "Link bank account with SimpleFIN" flow. Only present while the
            connection is pending; claiming or regeneration replaces it.
        setup_token_expires_at:
          type: string
        claimed_at:
          type: string
          description: When Actual claimed the setup token in exchange for credentials.
        revoked_at:
          type: string
          description: When the access credentials were revoked, if ever.
        last_pulled_at:
          type: string
          description: When Actual last pulled account data from Synci.
        all_accounts:
          type: boolean
          description: |-
            Whether every financial account (including future ones) is
            exposed. When true, financial_accounts is not authoritative and
            is returned empty; the account set is resolved at pull time.
        financial_accounts:
          description: |-
            IDs of the financial accounts exposed to Actual Budget. Empty
            when all_accounts is true.
          anyOf:
            - type: array
              items:
                type: string
              minItems: 0
              maxItems: 0
            - type: string
        accounts:
          type: array
          description: |-
            Accounts Actual has been observed syncing (informational; see
            the accounts sub-endpoint). Present when loaded.
          items:
            $ref: '#/components/schemas/SimpleFinAccountResource'
        created_at:
          type: string
        updated_at:
          type: string
      required:
        - id
        - name
        - app
        - enabled
        - status
        - setup_token
        - setup_token_expires_at
        - claimed_at
        - revoked_at
        - last_pulled_at
        - all_accounts
        - financial_accounts
        - created_at
        - updated_at
      title: SimpleFinConnectionResource
    HealthResource:
      type: object
      properties:
        status:
          type: string
          description: >-
            Health status: HEALTHY (last request succeeded), FAILING (recent
            requests failed), or DEAD (10 or more consecutive failures).
        integrator_message:
          type: string
          description: The most recent error message reported by the provider, if any.
        failure_count:
          type: string
          description: The number of consecutive failed requests.
        transient_message:
          type: string
          description: >-
            A provider-side outage currently blocking part of the sync (for
            example the institution being down for maintenance). Not counted as
            a failure: the status stays HEALTHY while Synci retries
            automatically. Null when nothing is being retried.
        transient_failure_count:
          type: string
          description: The number of consecutive sync attempts refused by that outage.
        last_attempt_at:
          type: string
          description: When the last sync attempt occurred.
      required:
        - status
        - integrator_message
        - failure_count
        - transient_message
        - transient_failure_count
        - last_attempt_at
      title: HealthResource
    SimpleFinAccountResource:
      type: object
      properties:
        id:
          type: string
        financial_account_id:
          type: string
          description: The Synci financial account Actual has been syncing.
        name:
          type:
            - string
            - 'null'
          description: Display name of the financial account.
        still_shared:
          type: string
          description: |-
            Whether the account is still part of the connection's exposed
            selection (always true under all_accounts). False means Actual
            synced it in the past but the account has since been
            deselected — Actual will show an error for it until unlinked
            there.
        first_pulled_at:
          type: string
          description: When Actual first synced this account.
        last_pulled_at:
          type: string
          description: |-
            When Actual last synced this account. Unlinking inside Actual
            sends no signal, so a stale value may mean unlinked or simply
            not synced recently.
      required:
        - id
        - financial_account_id
        - name
        - still_shared
        - first_pulled_at
        - last_pulled_at
      title: SimpleFinAccountResource
  responses:
    AuthenticationException:
      description: Unauthenticated
      content:
        application/json:
          schema:
            type: object
            properties:
              message:
                type: string
                description: Error overview.
            required:
              - message
    AuthorizationException:
      description: Authorization error
      content:
        application/json:
          schema:
            type: object
            properties:
              message:
                type: string
                description: Error overview.
            required:
              - message
    ModelNotFoundException:
      description: Not found
      content:
        application/json:
          schema:
            type: object
            properties:
              message:
                type: string
                description: Error overview.
            required:
              - message
  securitySchemes:
    oauth2:
      type: oauth2
      flows:
        authorizationCode:
          authorizationUrl: https://api.synci.io/oauth/authorize
          tokenUrl: https://api.synci.io/oauth/token
          scopes:
            profile:read: View your name, email, and profile details
            accounts:read: View your connected financial accounts and balances
            accounts:write: >-
              Update, sync, and remove your financial accounts, and change their
              settings
            transactions:read: View your transactions
            transactions:write: Create, update, and delete your transactions
            sensitive:read: >-
              See sensitive identifiers like account numbers and account holder
              names
            transfer-links:read: View your transfer links and their transfer history
            transfer-links:write: Create, update, and delete transfer links, and undo transfers
            rules:read: View your rules and rule activity
            rules:write: Create, update, and delete rules, and undo rule actions
            webhooks:read: View your webhook endpoints
            webhooks:write: >-
              Create, update, and delete webhook endpoints, and rotate their
              secrets
            destinations:read: View your connected destinations
            destinations:write: Connect, update, and remove destinations
            financial-connections:read: View your connected institutions
            financial-connections:write: Manage your connected institutions
    http:
      type: http
      description: Bearer token (personal access token or OAuth access token)
      scheme: bearer

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.