Truist User Consent

View or revoke a client's consent. Consent API Truist publishes an OpenAPI 3.1.0 contract (v1.1.0) for this product on the Truist Developer Center.

Operations 2

GET /v1/consents/{consentId} Get Consent Grant #
PUT /v1/consents/{consentId}/revocation Revoke a Consent Grant #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/user-consent"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

bbandt-corp-retail-consents-openapi.yml Raw ↑
openapi: 3.1.0
info:
  version: '1.1.0'
  # build: '0'
  title: Personal and Small Business Customer Consent
  description: Truist Financial, following FDX V5.4.1 and and V6.4.1 Consent API
  contact:
    name: Truist API Support
    url: 'https://developer.truist.com/contact-us'
servers:
  - url: 'https://api-sandbox.truist.com/retail'
    description: Truist Financial Retail Open Banking APIs - Sandbox environment
  - url: 'https://apicert-secure.truist.com/retail'
    description: Truist Financial Retail Open Banking APIs - Certification environment
  - url: 'https://api-secure.truist.com/retail'
    description: Truist Financial Retail Open Banking APIs - Production environment
security:
  - BasicAuth: []
tags:
  - name: User Consent
    description: Request a customer consent grant
paths:
  ############################################################
  #
  # Consent paths
  #
  ############################################################

  /v1/consents/{consentId}:
    parameters:
      - $ref: '#/components/parameters/ConsentIdPath'
      - $ref: '#/components/parameters/FapiInteractionIdHeader'
    get:
      summary: Get Consent Grant
      description: Get a Consent Grant
      operationId: getConsentGrant
      tags:
        - User Consent
      responses:
        '200':
          description: Successful operation
          headers:
            x-fapi-interaction-id:
              $ref: '#/components/headers/x-fapi-interaction-id'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ConsentGrant'
              examples:
                (1) Single Resource:
                  value:
                    id: 9585694d3ae58863
                    status: ACTIVE
                    parties:
                      - name: Seedling App
                        type: DATA_RECIPIENT
                        homeUri: https://www.seedling.com
                        logoUri: https://www.seedling.com/assets/seedling-logo.png
                        registry: PRIVATE
                        registeredEntityName: Oak Tree Holdings, Inc
                        registeredEntityId: 5493001052I34KDC1O18
                      - name: Truist
                        type: DATA_PROVIDER
                        homeUri: https://www.truist.com
                        logoUri: https://static.truist.com/content/dam/global-images/truist-logo-purple.svg
                        registry: PRIVATE
                        registeredEntityName: Truist
                        registeredEntityId: '1'
                    createdTime: '2021-07-03T22:08:10.375Z'
                    expirationTime: '2022-07-03T22:08:10.374Z'
                    durationType: ONE_TIME
                    lookbackPeriod: 60
                    autoConnect: true
                    resources:
                      - resourceType: ACCOUNT
                        resourceId: b14e1e714693bc00
                        dataClusters:
                          - ACCOUNT_DETAILED
                          - TRANSACTIONS
                (2) Multiple Resources:
                  value:
                    id: 0e67811f9c12468f
                    status: ACTIVE
                    parties:
                      - name: Seedling App
                        type: DATA_RECIPIENT
                        homeUri: https://www.seedling.com
                        logoUri: https://www.seedling.com/assets/seedling-logo.png
                        registry: PRIVATE
                        registeredEntityName: Oak Tree Holdings, Inc
                        registeredEntityId: 5493001052I34KDC1O18
                      - name: Truist
                        type: DATA_PROVIDER
                        homeUri: https://www.truist.com
                        logoUri: https://static.truist.com/content/dam/global-images/truist-logo-purple.svg
                        registry: PRIVATE
                        registeredEntityName: Truist
                        registeredEntityId: '1'
                    createdTime: '2021-07-03T22:08:10.375Z'
                    expirationTime: '2022-07-03T22:08:10.374Z'
                    durationType: TIME_BOUND
                    durationPeriod: 365
                    lookbackPeriod: 60
                    autoConnect: false
                    resources:
                      - resourceType: ACCOUNT
                        resourceId: b14e1e714693bc00
                        dataClusters:
                          - ACCOUNT_DETAILED
                          - TRANSACTIONS
                      - resourceType: ACCOUNT
                        resourceId: ad6794161f45bc96
                        dataClusters:
                          - ACCOUNT_DETAILED
                          - TRANSACTIONS
                      - resourceType: CUSTOMER
                        resourceId: aed694b22bc3d2b3
                        dataClusters:
                          - CUSTOMER_CONTACT
                (3) Revoked Consent:
                  value:
                    id: 0e67811f9c12468f
                    status: REVOKED
                    parties:
                      - name: Seedling App
                        type: DATA_RECIPIENT
                        homeUri: https://www.seedling.com
                        logoUri: https://www.seedling.com/assets/seedling-logo.png
                        registry: PRIVATE
                        registeredEntityName: Oak Tree Holdings, Inc
                        registeredEntityId: 5493001052I34KDC1O18
                      - name: Truist
                        type: DATA_PROVIDER
                        homeUri: https://www.truist.com
                        logoUri: https://static.truist.com/content/dam/global-images/truist-logo-purple.svg
                        registry: PRIVATE
                        registeredEntityName: Truist
                        registeredEntityId: '1'
                    createdTime: '2021-07-03T22:08:10.375Z'
                    expirationTime: '2022-07-03T22:08:10.374Z'
                    durationType: TIME_BOUND
                    durationPeriod: 365
                    lookbackPeriod: 60
                (4) Expired Consent:
                  value:
                    id: 0e67811f9c12468f
                    status: EXPIRED
                    parties:
                      - name: Seedling App
                        type: DATA_RECIPIENT
                        homeUri: https://www.seedling.com
                        logoUri: https://www.seedling.com/assets/seedling-logo.png
                        registry: PRIVATE
                        registeredEntityName: Oak Tree Holdings, Inc
                        registeredEntityId: 5493001052I34KDC1O18
                      - name: Truist
                        type: DATA_PROVIDER
                        homeUri: https://www.truist.com
                        logoUri: https://static.truist.com/content/dam/global-images/truist-logo-purple.svg
                        registry: PRIVATE
                        registeredEntityName: Truist
                        registeredEntityId: '1'
                    createdTime: '2021-07-03T22:08:10.375Z'
                    expirationTime: '2022-07-03T22:08:10.374Z'
                    durationType: TIME_BOUND
                    durationPeriod: 365
                    lookbackPeriod: 60

        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '404':
          $ref: '#/components/responses/404'
        '405':
          $ref: '#/components/responses/405'
        '429':
          $ref: '#/components/responses/429'
        '500':
          $ref: '#/components/responses/500'
        '503':
          $ref: '#/components/responses/503'
        '504':
          $ref: '#/components/responses/504'
      security:
        - BasicAuth: []

  /v1/consents/{consentId}/revocation:
    parameters:
      - $ref: '#/components/parameters/ConsentIdPath'
      - $ref: '#/components/parameters/FapiInteractionIdHeader'
    put:
      summary: Revoke a Consent Grant
      description: Revoke a Consent Grant
      operationId: revokeConsentGrant
      tags:
        - User Consent
      requestBody:
        description: Reason and initiator of revocation
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ConsentRevocationRequest'
            examples:
              User cancellation in DR/app:
                value:
                  reason: USER_ACTION
                  initiator: DATA_RECIPIENT
      responses:
        '204':
          description: No Content
          headers:
            x-fapi-interaction-id:
              $ref: '#/components/headers/x-fapi-interaction-id'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '404':
          $ref: '#/components/responses/404'
        '405':
          $ref: '#/components/responses/405'
        '429':
          $ref: '#/components/responses/429'
        '500':
          $ref: '#/components/responses/500'
        '503':
          $ref: '#/components/responses/503'
        '504':
          $ref: '#/components/responses/504'
      security:
        - BasicAuth: []

components:
  securitySchemes:
    BasicAuth:
      type: http
      scheme: basic
      description: Base64(client_id:client_secret)

  parameters:
    ############################################################
    #
    # Consent request parameters
    #
    ############################################################

    ConsentIdPath:
      name: consentId
      in: path
      description: Consent Identifier
      required: true
      schema:
        $ref: '#/components/schemas/ConsentId'
      example: '0e67811f9c12468f'

    ############################################################
    #
    # Shared request parameters (usable by core and all extensions)
    #
    ############################################################
    FapiInteractionIdHeader:
      name: x-fapi-interaction-id
      in: header
      description: Unique request identifier
      schema:
        $ref: '#/components/schemas/FapiInteractionId'
      required: true
      example: c770aef3-6784-41f7-8e0e-ff5f97bddb3a

  headers:
    ############################################################
    #
    # Standard response headers
    #
    ############################################################

    x-fapi-interaction-id:
      description: Unique request identifier
      schema:
        $ref: '#/components/schemas/FapiInteractionId'
      required: true
      example: c770aef3-6784-41f7-8e0e-ff5f97bddb3a

  schemas:
    ############################################################
    #
    # Consent entities
    #
    ############################################################

    ConsentGrant:
      title: Consent Grant entity
      description: Record of user consent
      type: object
      properties:
        id:
          description: The persistent identifier of the consent
          $ref: '#/components/schemas/Identifier'
        status:
          description: The current status of the consent
          $ref: '#/components/schemas/ConsentGrantStatus'
        parties:
          description: The non-end user parties participating in the Consent Grant
          type: array
          items:
            $ref: '#/components/schemas/ConsentGrantParty'
        createdTime:
          description: When the consent was initially granted
          $ref: '#/components/schemas/Timestamp'
        expirationTime:
          description: When the consent grant will become expired
          $ref: '#/components/schemas/Timestamp'
        updatedTime:
          description: When the consent grant was updated
          $ref: '#/components/schemas/Timestamp'
        durationType:
          description: The type of duration of the consent
          $ref: '#/components/schemas/ConsentDurationType'
        durationPeriod:
          description: The consent duration in days from day of original grant
          $ref: '#/components/schemas/ConsentDurationPeriod'
        lookbackPeriod:
          description: >-
            Period, in days, for which historical data may be requested;
            measured from request time, not grant time
          $ref: '#/components/schemas/LookbackPeriod'
        autoConnect:
          description: >-
            Truist flag for whether to automatically extend this consent to a customer account
            which was newly opened or became newly visible in online banking
          type: boolean
        resources:
          description: The permissioned resource entities
          type: array
          items:
            $ref: '#/components/schemas/ConsentGrantResource'

    ConsentGrantParty:
      title: Consent Grant Party entity
      description: >-
        Details on the non-end user parties in the Consent Grant. Includes the
        legal entity operating branded products or services in the data sharing chain.
        Descriptive information is collected during Data Recipient registration at
        Data Provider, and populated during issuance by Data Provider from its registry
      type: object
      allOf:
        - $ref: '#/components/schemas/Party'
      required:
        - homeUri
        - registry
        - registeredEntityName
        - registeredEntityId

    ConsentGrantResource:
      title: Consent Grant Resource entity
      description: Entity of permissioned resources
      type: object
      properties:
        resourceType:
          description: Type of resource to be permissioned
          $ref: '#/components/schemas/ConsentResourceType'
        resourceId:
          description: Identifier of resource to be permissioned
          $ref: '#/components/schemas/Identifier'
        dataClusters:
          description: Names of clusters of data elements permissioned
          type: array
          items:
            $ref: '#/components/schemas/DataCluster'
          minItems: 1
      required:
        - resourceType
        - resourceId
        - dataClusters

    ConsentRevocationRequest:
      title: Consent revocation request entity
      description: Details of request to revoke consent grant
      type: object
      properties:
        reason:
          description: The reason for consent revocation
          $ref: '#/components/schemas/ConsentUpdateReason'
        initiator:
          description: The party initiating revocation
          $ref: '#/components/schemas/PartyType'
      required:
        - reason
        - initiator

    ############################################################
    #
    # Consent data types
    #
    ############################################################

    ConsentDurationPeriod:
      title: Consent Duration Period
      description: Consent duration, in days, from day of original grant
      type: integer

    ConsentGrantStatus:
      title: Consent Grant Status
      description: Current status of Consent Grant
      type: string
      enum:
        - ACTIVE
        - EXPIRED
        - REVOKED

    ConsentId:
      title: Consent Identifier
      description: Unique ID for a consent grant
      $ref: '#/components/schemas/Identifier'

    ConsentResourceType:
      title: Consent Resource Type
      description: >-
        Resource for which data may be permissioned;
        can be extended to support additional types of resources
      type: string
      enum:
        - ACCOUNT
        - CUSTOMER
        - DOCUMENT

    ConsentUpdateReason:
      title: Consent Update Reason
      description: Reason for Updating a Consent Grant
      type: string
      enum:
        - BUSINESS_RULE
        - USER_ACTION

    DataCluster:
      title: Data Cluster
      description: Name of permissioned
        [cluster of data elements](https://fdx.atlassian.net/wiki/spaces/FDX/pages/872906996/v1.1+Data+Clusters)
      type: string
      enum:
        - ACCOUNT_BASIC
        - ACCOUNT_DETAILED
        - CUSTOMER_CONTACT
        - PAYMENT_SUPPORT
        - TRANSACTIONS

    LookbackPeriod:
      title: Lookback Period
      description: >-
        Period, in days, for which historical data may be requested;
        period is measured from request time, not grant time
      type: integer

    ############################################################
    #
    # Shared data entities (usable by core and all extensions)
    #
    ############################################################

    Error:
      title: Error
      description: >-
        An error entity which can be used at the API level for error responses
      type: object
      properties:
        code:
          type: string
          description: >-
            Error code defined by FDX API Specification or Data Provider
            indicating the error situation which has occurred
        message:
          type: string
          description: >-
            End user displayable information which might help the customer
            diagnose an error

    Party:
      title: Party entity
      description: FDX Participant - an entity or person that is a part of a FDX API transaction
      type: object
      required:
        - name
        - type
      properties:
        name:
          description: Human recognizable common name
          type: string
        type:
          description: Extensible string enum identifying the type of the party
          $ref: '#/components/schemas/PartyType'
        homeUri:
          description: >-
            URI for party, where an end user could learn more about the company
            or application involved in the data sharing chain
          type: string
          format: uri
        logoUri:
          description: URI for a logo asset to be displayed to the end user
          type: string
          format: uri
        registry:
          description: >-
            The Truist registry containing the party's registration with name and id: PRIVATE
          $ref: '#/components/schemas/Registry'
        registeredEntityName:
          description: Registered name of party
          type: string
        registeredEntityId:
          description: Registered id of party
          type: string

    ############################################################
    #
    # Shared data types (usable by core and all extensions)
    #
    ############################################################

    ConsentDurationType:
      title: Consent Duration Type
      description: Duration of the Consent Grant, per FDX UX Guidelines v1.0 (pp 18 - 20)
      type: string
      enum:
        - ONE_TIME
        - TIME_BOUND

    Identifier:
      title: Identifier
      description: Value for a unique identifier
      type: string
      maxLength: 256

    PartyType:
      title: Party Type
      description: Identifies the type of a party
      type: string
      enum:
        - DATA_ACCESS_PLATFORM
        - DATA_PROVIDER
        - DATA_RECIPIENT
        - INDIVIDUAL
        - MERCHANT
        - VENDOR

    Timestamp:
      title: Timestamp
      pattern: \d{4}\-\d\d\-\d\dT\d\d:\d\d:\d\d\.\d\d\dZ
      description: >-
        ISO 8601 date-time in format 'YYYY-MM-DDThh:mm:ss.nnn[Z|[+|-]hh:mm]' according to
        [IETF RFC 3339](https://datatracker.ietf.org/doc/html/rfc3339.html#section-5.6)
      type: string
      format: date-time
      example: '2021-07-15T14:46:41.375Z'

    Registry:
      title: Registry
      description: Identifies the type of a Registry
      type: string
      enum:
        - PRIVATE

    FapiInteractionId:
      title: FAPI Interaction ID
      description: >-
        Universally unique identifier for this interaction,
        used across all FDX API requests and responses
      type: string
      format: uuid
      minLength: 36
      maxLength: 36
      example: c770aef3-6784-41f7-8e0e-ff5f97bddb3a

  responses:
    ############################################################
    #
    # Standard error responses
    #
    ############################################################

    '400':
      description: Bad Request
      headers:
        x-fapi-interaction-id:
          $ref: '#/components/headers/x-fapi-interaction-id'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          examples:
            INVALID_PATH_PARAMETER:
              value:
                code: '401'
                message: Invalid consentId
            INVALID_JSON:
              value:
                code: '401'
                message: The request payload is not in a valid JSON format

    '401':
      description: Unauthorized
      headers:
        x-fapi-interaction-id:
          $ref: '#/components/headers/x-fapi-interaction-id'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          examples:
            NO_APIPRODUCT_MATCHFOUND:
              value:
                code: '603'
                message: The app is not authorized for this API
            INVALID_BASICAUTHENTICATION_SOURCE:
              value:
                code: '603'
                message: Authentication failed

    '404':
      description: Not Found
      headers:
        x-fapi-interaction-id:
          $ref: '#/components/headers/x-fapi-interaction-id'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          examples:
            RESOURCE_NOT_FOUND:
              value:
                code: '1107'
                message: URI does not represent a recognized resource

    '405':
      description: Client called an unimplemented REST method
      headers:
        x-fapi-interaction-id:
          $ref: '#/components/headers/x-fapi-interaction-id'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          examples:
            INVALID_METHOD:
              value:
                code: '1206'
                message: Method Not Allowed

    '429':
      description: Too Many Requests
      headers:
        x-fapi-interaction-id:
          $ref: '#/components/headers/x-fapi-interaction-id'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          examples:
            SPIKE_ARREST_VIOLATION:
              value:
                code: '1207'
                message: Traffic spike, too many requests
            QUOTA_VIOLATION:
              value:
                code: '1207'
                message: Quota violation, too many requests

    '500':
      description: Internal Server Error
      headers:
        x-fapi-interaction-id:
          $ref: '#/components/headers/x-fapi-interaction-id'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          examples:
            INTERNAL_SERVER_ERROR:
              value:
                code: '500'
                message: System down for maintenance

    '503':
      description: Service unavailable / system down for maintenance
      headers:
        x-fapi-interaction-id:
          $ref: '#/components/headers/x-fapi-interaction-id'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          examples:
            SERVICE_UNAVAILABLE:
              value:
                code: '503'
                message: An upstream server is unavailable

    '504':
      description: Service Timed out
      headers:
        x-fapi-interaction-id:
          $ref: '#/components/headers/x-fapi-interaction-id'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          examples:
            GATEWAY_TIMEOUT:
              value:
                code: '504'
                message: A time-out occurred connecting to an upstream server