OpenAPI Specification
openapi: 3.0.3
info:
title: TIAA Financial Data Exchange Accounts API
description: The TIAA Financial Data Exchange (FDX) API provides authorized fintechs and financial aggregators with secure access to customer account data, including balances, transactions, investment positions, and income information from TIAA retirement and brokerage accounts. This API is built on the FDX open standard (v6.x) and uses OAuth 2.0 for customer-consented data sharing.
version: '6.0'
contact:
name: TIAA Developer Support
url: https://developer.tiaa.org/public/fdx
termsOfService: https://developer.tiaa.org/public/terms
license:
name: TIAA API License
url: https://developer.tiaa.org/public/terms
servers:
- url: https://api.tiaa.org/fdx/v6
description: TIAA FDX Production API
tags:
- name: Accounts
description: Customer account information and balances
paths:
/accounts:
get:
operationId: listAccounts
summary: List Customer Accounts
description: Returns all accounts to which the customer has granted consent.
tags:
- Accounts
security:
- OAuth2: []
parameters:
- name: offset
in: query
schema:
type: integer
description: Pagination offset
required: false
- name: limit
in: query
schema:
type: integer
description: Maximum number of accounts to return
required: false
responses:
'200':
description: A list of accounts
content:
application/json:
schema:
$ref: '#/components/schemas/AccountList'
'401':
description: Unauthorized
'403':
description: Forbidden
/accounts/{accountId}:
get:
operationId: getAccount
summary: Get Account Details
description: Returns details for a specific account by account ID.
tags:
- Accounts
security:
- OAuth2: []
parameters:
- name: accountId
in: path
required: true
schema:
type: string
description: Unique account identifier
responses:
'200':
description: Account details
content:
application/json:
schema:
$ref: '#/components/schemas/Account'
'404':
description: Account not found
components:
schemas:
AccountList:
type: object
properties:
accounts:
type: array
items:
$ref: '#/components/schemas/Account'
page:
$ref: '#/components/schemas/Page'
Account:
type: object
properties:
accountId:
type: string
description: Unique account identifier
accountType:
type: string
enum:
- INVESTMENT
- RETIREMENT
- ANNUITY
- BROKERAGE
description: Account type
displayName:
type: string
description: Human-readable account name
accountNumber:
type: string
description: Masked account number
balanceAsOf:
type: string
format: date-time
description: Balance timestamp
currentBalance:
type: number
format: double
description: Current account balance in USD
currency:
type: string
default: USD
status:
type: string
enum:
- OPEN
- CLOSED
- PENDING
Page:
type: object
properties:
nextOffset:
type: integer
totalElements:
type: integer
limit:
type: integer
securitySchemes:
OAuth2:
type: oauth2
flows:
authorizationCode:
authorizationUrl: https://auth.tiaa.org/oauth2/authorize
tokenUrl: https://auth.tiaa.org/oauth2/token
scopes:
openid: OpenID Connect
profile: Customer profile
accounts: Account data access
transactions: Transaction data access
investments: Investment data access
tax: Tax document access