TD Bank Consent API

TD Open Banking Consent API implements the FDX consent model — fetching consent details for a consumer, revoking consents, and retrieving consent revocation records. Explicit consumer consent is the gating mechanism for every Data API call.

OpenAPI Specification

td-bank-consent-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: TD Bank Consent API
  description: >-
    TD Open Banking Consent API. Implements the FDX consent model — fetch
    consent details for a consumer, revoke consent, and retrieve consent
    revocation records. Every Data API call is gated by an active consent.
  version: '1.0.0'
  contact:
    name: TD Open Banking Developer Support
    url: https://developer.td.com
externalDocs:
  description: Consent Flow Guide
  url: https://docs.pat.openbanking.amcb.developer.td.com/guides/consent-flow
servers:
  - url: https://api.openbanking.amcb.developer.td.com/consent/v1
    description: Production
  - url: https://api.openbanking.amcb.developer.td.com/sandbox/consent/v1
    description: Sandbox
tags:
  - name: Consents
security:
  - oauth2: []
paths:
  /consents/{consentId}:
    get:
      operationId: getConsent
      summary: Get Consent Details
      tags: [Consents]
      parameters:
        - name: consentId
          in: path
          required: true
          schema: { type: string }
      responses:
        '200':
          description: Consent detail
          content:
            application/json:
              schema: { $ref: '#/components/schemas/Consent' }
    delete:
      operationId: revokeConsent
      summary: Revoke Consent
      tags: [Consents]
      parameters:
        - name: consentId
          in: path
          required: true
          schema: { type: string }
      responses:
        '204':
          description: Revoked
  /consent-revocations:
    get:
      operationId: listConsentRevocations
      summary: List Consent Revocations
      tags: [Consents]
      responses:
        '200':
          description: Revocations
          content:
            application/json:
              schema:
                type: object
                properties:
                  revocations:
                    type: array
                    items: { $ref: '#/components/schemas/ConsentRevocation' }
components:
  securitySchemes:
    oauth2:
      type: oauth2
      flows:
        authorizationCode:
          authorizationUrl: https://api.openbanking.amcb.developer.td.com/oauth/v1/authorize
          tokenUrl: https://api.openbanking.amcb.developer.td.com/oauth/v1/token
          scopes:
            consents_manage: Manage consents
  schemas:
    Consent:
      type: object
      required: [consentId, status]
      properties:
        consentId: { type: string }
        status: { type: string, enum: [ACTIVE, REVOKED, EXPIRED] }
        durationType: { type: string }
        durationPeriod: { type: integer }
        grantedAt: { type: string, format: date-time }
        expiresAt: { type: string, format: date-time }
        resources:
          type: array
          items:
            type: object
            properties:
              resourceType: { type: string }
              accountId: { type: string }
              dataClusters:
                type: array
                items: { type: string }
    ConsentRevocation:
      type: object
      properties:
        consentId: { type: string }
        revokedAt: { type: string, format: date-time }
        initiator: { type: string, enum: [CONSUMER, DATA_PROVIDER, DATA_RECIPIENT] }
        reason: { type: string }