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.
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.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
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.curl "https://apis.io/api/v1/apis/user-consent"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
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: 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