karavan-core
Version:
Apache Camel Karavan Core
1,363 lines (1,323 loc) • 175 kB
YAML
openapi: 3.0.0
info:
version: '5.0.0'
title: FDX V5.0
description: Financial Data Exchange V5.0 Core API
contact:
name: Financial Data Exchange
url: 'https://financialdataexchange.org/'
email: fdxsupport@financialdataexchange.org
servers:
- url: 'https://api.fi.com/fdx/v5'
description: Financial Data Exchange V5.0 Core API
tags:
- name: Personal Information
description: Search and view customer or customers
- name: Fraud Notification
description: Notify of suspected fraud
- name: Meta
description: API management and metrics
- name: User Consent
description: Request a customer consent grant
- name: Account Information
description: Search and view customer accounts
- name: Account Statements
description: Search and retrieve account statements
- name: Account Transactions
description: Search and view account transactions
- name: Money Movement
description: View account money movement details
- name: Reward Program Categories
description: View categories of reward programs
- name: Reward Program Information
description: Search and view customer reward programs
security:
- rhsso: []
paths:
############################################################
#
# Common paths
#
############################################################
/availability:
get:
operationId: getAvailability
tags:
- Meta
description: Get information about this API's availability
summary: Get API availability
parameters:
- $ref: '#/components/parameters/OperationIdQuery'
responses:
'200':
description: Status and planned times of API availability
content:
application/json:
schema:
$ref: '#/components/schemas/AvailabilityList'
/capability:
get:
operationId: getCapability
tags:
- Meta
description: Get information about this API's capability
summary: Get API capability
parameters:
- $ref: '#/components/parameters/OperationIdQuery'
- $ref: '#/components/parameters/FdxVersionQuery'
- $ref: '#/components/parameters/ResultTypeQuery'
responses:
'200':
description: >-
API's capability for connections, cutoff times
and product types
content:
application/json:
schema:
$ref: '#/components/schemas/Capability'
/certification-metrics:
get:
operationId: getCertificationMetrics
tags:
- Meta
description: Get certification performance metrics for this implementer's APIs
summary: Get certification performance metrics
parameters:
- $ref: '#/components/parameters/OperationIdQuery'
responses:
'200':
description: Array of API's certification metrics
content:
application/json:
schema:
$ref: '#/components/schemas/CertificationMetrics'
/consents/{consentId}:
get:
summary: Get Consent Grant
description: Get a Consent Grant
operationId: getConsentGrant
tags:
- User Consent
parameters:
- name: consentId
in: path
description: Consent Grant ID
required: true
schema:
$ref: '#/components/schemas/ConsentId'
examples:
ConsentId:
value: 9585694d3ae58863
responses:
'200':
description: Ok
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: FDX
registeredEntityName: Oak Tree Holdings, Inc
registeredEntityId: 5493001052I34KDC1O18
- name: Midwest Primary Bank, NA
type: DATA_PROVIDER
homeUri: https://www.midwest.com
logoUri: https://www.midwest.com/81d88112572c.jpg
registry: GLEIF
registeredEntityName: Midwest Primary Bank, NA
registeredEntityId: 549300ATG070THRDJ595
createdTime: "2021-07-03T21:28:10.375Z"
expirationTime: "2021-07-03T22:28:10.374Z"
durationType: ONE_TIME
lookbackPeriod: 60
resources:
- resourceType: ACCOUNT
resourceId: b14e1e714693bc00
dataClusters:
- ACCOUNT_DETAILED
- TRANSACTIONS
- STATEMENTS
(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: GLEIF
registeredEntityName: Oak Tree Holdings, Inc
registeredEntityId: 5493001052I34KDC1O18
- name: Midwest Primary Bank, NA
type: DATA_PROVIDER
homeUri: https://www.midwest.com
logoUri: https://www.midwest.com/81d88112572c.jpg
registry: GLEIF
registeredEntityName: Midwest Primary Bank, NA
registeredEntityId: 549300ATG070THRDJ595
createdTime: "2021-07-03T22:08:10.375Z"
expirationTime: "2022-07-03T22:08:10.374Z"
durationType: TIME_BOUND
durationPeriod: 365
lookbackPeriod: 60
resources:
- resourceType: ACCOUNT
resourceId: b14e1e714693bc00
dataClusters:
- ACCOUNT_DETAILED
- TRANSACTIONS
- STATEMENTS
- resourceType: ACCOUNT
resourceId: ad6794161f45bc96
dataClusters:
- ACCOUNT_DETAILED
- TRANSACTIONS
- STATEMENTS
- resourceType: CUSTOMER
resourceId: aed694b22bc3d2b3
dataClusters:
- CUSTOMER_CONTACT
/customers:
get:
operationId: getCustomers
tags:
- Personal Information
description: Retrieve account holders related to consented accounts
summary: Retrieve customers
parameters:
- $ref: '#/components/parameters/OffsetQuery'
- $ref: '#/components/parameters/LimitQuery'
responses:
'200':
description: Customers
content:
application/json:
schema:
$ref: '#/components/schemas/Customers'
/customers/current:
get:
operationId: getCustomerInfo
tags:
- Personal Information
description: Get information about the customer within the authorization scope
summary: Get current authenticated customer information
responses:
'200':
description: Data describing current authenticated customer
content:
application/json:
schema:
$ref: '#/components/schemas/Customer'
/customers/{customerId}:
get:
operationId: getCustomer
tags:
- Personal Information
description: Retrieve customer information by customer id
summary: Customer by id
parameters:
- name: customerId
in: path
description: Customer Identifier
required: true
schema:
type: string
responses:
'200':
description: Customer
content:
application/json:
schema:
$ref: '#/components/schemas/Customer'
/fraud/suspected-incident:
post:
summary: Notify Data Provider of fraud
description: Notify Data Provider of suspected fraud
operationId: reportSuspectedFraudIncident
tags:
- Fraud Notification
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/SuspectedFraudIncident'
responses:
'200':
description: OK
############################################################
#
# Core paths
#
############################################################
/accounts:
get:
operationId: searchForAccounts
tags:
- Account Information
summary: Search for accounts
description: Query all information for a set of accounts provided in the payload
parameters:
- name: accountIds
in: query
description: Comma separated list of account ids
style: form
explode: false
schema:
type: array
items:
type: string
- name: startTime
in: query
description: Start time for use in retrieval of transactions
schema:
type: array
items:
$ref: '#/components/schemas/DateString'
- name: endTime
in: query
description: End time for use in retrieval of transactions
schema:
type: array
items:
$ref: '#/components/schemas/DateString'
- $ref: '#/components/parameters/ResultTypeQuery'
- $ref: '#/components/parameters/OffsetQuery'
- $ref: '#/components/parameters/LimitQuery'
responses:
'200':
description: >-
Array of accounts (DepositAccount, LoanAccount, LocAccount, InvestmentAccount,
InsuranceAccount or AnnuityAccount)
content:
application/json:
schema:
$ref: '#/components/schemas/Accounts'
examples:
example1:
value:
{
"page": {
"nextOffset": "2",
"total": 3
},
"links": {
"next": {
"href": "/accounts?offSet=2&limit=10"
}
},
"accounts" : [
{
"depositAccount" : {
"accountId" : "10001",
"nickname" : "My Checking Acc XXXX3223",
"status" : "OPEN",
"balanceAsOf" : "2017-11-05T13:15:30.751Z",
"currentBalance" : 13300.35
}
},
{
"depositAccount" : {
"accountId" : "10002",
"nickname" : "My Checking Acc XXXX4443",
"status" : "OPEN",
"balanceAsOf" : "2017-11-05T13:15:30.751Z",
"currentBalance" : 332.22
}
},
{
"loanAccount" : {
"accountId" : "20001",
"nickname" : "My Mortgage Acc XXXX9979",
"status" : "OPEN",
"balanceAsOf" : "2017-11-05T13:15:30.751Z",
"principalBalance" : 133000.35,
"loanTerm" : 30,
"nextPaymentDate" : "2017-12-01",
"nextPaymentAmount" : 2333.32
}
}
]
}
/accounts/{accountId}:
get:
operationId: getAccount
tags:
- Account Information
description: Get a specific account
summary: Get an account
parameters:
- $ref: '#/components/parameters/AccountIdPath'
responses:
'200':
description: >-
This can be one of LoanAccount, DepositAccount, LocAccount,
InvestmentAccount, InsuranceAccount or AnnuityAccount
content:
application/json:
schema:
$ref: '#/components/schemas/AccountWithDetails'
example:
{
"loanAccount": {
"accountId": "12345678",
"accountType": "LOAN",
"displayName": "XXXXX4567",
"status": "OPEN",
"description": "30 Year Mortgage",
"nickname": "My Home Mortgage",
"currency": {"currencyCode": "USD"},
"interestRate": 4.0,
"loanTerm": 0,
"totalNumberOfPayments": 0
}
}
/accounts/{accountId}/contact:
get:
operationId: getAccountContact
tags:
- Personal Information
description: Get contact information on the account
summary: Get an account's contact information
parameters:
- $ref: '#/components/parameters/AccountIdPath'
responses:
'200':
description: >-
Details used to verify an account
content:
application/json:
schema:
$ref: '#/components/schemas/AccountContact'
/accounts/{accountId}/payment-networks:
get:
operationId: getAccountPaymentNetworks
tags:
- Money Movement
description: Get payment networks supported by the account
summary: Get payment networks supported by the account
parameters:
- $ref: '#/components/parameters/AccountIdPath'
- $ref: '#/components/parameters/OffsetQuery'
- $ref: '#/components/parameters/LimitQuery'
responses:
'200':
description: Information required to execute a payment transaction against this account
content:
application/json:
schema:
$ref: '#/components/schemas/AccountPaymentNetworkList'
examples:
Account Number:
value:
page:
totalElements: 1
paymentNetworks:
- bankId: "121000358"
identifier: "1234567890"
identifierType: "ACCOUNT_NUMBER"
type: "US_ACH"
transferIn: true
transferOut: true
Tokenized Account Number:
value:
page:
totalElements: 1
paymentNetworks:
- bankId: "121000358"
identifier: "987654321"
identifierType: "TOKENIZED_ACCOUNT_NUMBER"
type: "US_ACH"
transferIn: true
transferOut: true
Multiple Networks:
value:
page:
totalElements: 2
paymentNetworks:
- bankId: "121000358"
identifier: "1234567890"
identifierType: "ACCOUNT_NUMBER"
type: "US_ACH"
transferIn: true
transferOut: true
- bankId: "026009593"
identifier: "1234567890"
identifierType: "ACCOUNT_NUMBER"
type: "US_FEDWIRE" # Real-time payments
transferIn: true
transferOut: true
/accounts/{accountId}/statements:
get:
operationId: searchForAccountStatements
tags:
- Account Statements
description: >-
Get account statements. Example: GET
/accounts/{accountId}/statements?startTime=value1&endTime=value2
summary: Search for statements
parameters:
- $ref: '#/components/parameters/AccountIdPath'
- $ref: '#/components/parameters/StartTimeQuery'
- $ref: '#/components/parameters/EndTimeQuery'
- $ref: '#/components/parameters/OffsetQuery'
- $ref: '#/components/parameters/LimitQuery'
responses:
'200':
description: Paginated list of available statements
content:
application/json:
schema:
$ref: '#/components/schemas/Statements'
examples:
example1:
value:
{
"page": {
"nextOffset": "2",
"total": 3
},
"links": {
"next": {
"href": "/accounts/1111/statements?offSet=2&limit=10"
}
},
"statements": [
{
"accountId": "10001",
"statementId": "20001"
}
]
}
/accounts/{accountId}/statements/{statementId}:
get:
operationId: getAccountStatement
tags:
- Account Statements
description: >-
Gets an account statement image file. Use
[HTTP Accept request-header](https://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html)
to specify desired content types. See ContentTypes definition for typical values
summary: Get an account statement
parameters:
- $ref: '#/components/parameters/AccountIdPath'
- $ref: '#/components/parameters/StatementIdPath'
responses:
'200':
description: An image of an account statement
content:
application/pdf:
schema:
description: A pdf image of an account statement
type: string
format: binary
image/gif:
schema:
description: A gif image of an account statement
type: string
format: binary
image/jpeg:
schema:
description: A jpeg image of an account statement
type: string
format: binary
image/tiff:
schema:
description: A tiff image of an account statement
type: string
format: binary
image/png:
schema:
description: A png image of an account statement
type: string
format: binary
'406':
description: Document not available for 'Accept' header's content-type
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
/accounts/{accountId}/transaction-images/{imageId}:
get:
operationId: getAccountTransactionImages
tags:
- Account Transactions
description: Get account transaction image
summary: Get account transaction image
parameters:
- $ref: '#/components/parameters/AccountIdPath'
- $ref: '#/components/parameters/ImageIdPath'
responses:
'200':
description: An image of transaction (such as a scanned check)
content:
application/pdf:
schema:
type: string
format: binary
image/gif:
schema:
type: string
format: binary
image/jpeg:
schema:
type: string
format: binary
image/tiff:
schema:
type: string
format: binary
image/png:
schema:
type: string
format: binary
/accounts/{accountId}/transactions:
get:
operationId: searchForAccountTransactions
tags:
- Account Transactions
description: >-
Search for account transactions. Example:
/accounts/{accountId}/transactions?startTime=value1&endTime=value2
summary: Search for account transactions
parameters:
- $ref: '#/components/parameters/AccountIdPath'
- $ref: '#/components/parameters/StartTimeQuery'
- $ref: '#/components/parameters/EndTimeQuery'
- $ref: '#/components/parameters/OffsetQuery'
- $ref: '#/components/parameters/LimitQuery'
responses:
'200':
description: >-
Paginated collection of transactions, which can be one of
DepositTransaction, LoanTransaction, LocTransaction,
InvestmentTransaction or InsuranceTransaction
content:
application/json:
schema:
$ref: '#/components/schemas/Transactions'
examples:
Paginated Transactions:
value: {
"page": {
"nextOffset": "2",
"total": 3
},
"links": {
"next": {
"href": "/accounts/33333/transactions?offSet=2&limit=10"
}
},
"transactions": [
{"depositTransaction":{
"accountId": "10001",
"transactionId": "20001",
"transactionCategory": "DEPOSIT_ACCOUNT_TRANSACTION",
"postedTimestamp": "2017-11-05T13:15:30.751Z",
"description": "Direct deposit from XYZ",
"debitCreditMemo": "CREDIT",
"amount": 1200.42
}},
{"depositTransaction":{
"accountId": "10001",
"transactionId": "20001",
"transactionCategory": "DEPOSIT_ACCOUNT_TRANSACTION",
"postedTimestamp": "2017-11-05T13:15:31.751Z",
"description": "Withdrawal from ATM",
"debitCreditMemo": "DEBIT",
"amount": 1200.42
}}
]
}
Transaction with Rewards:
summary: Example of single transaction with associated reward
value: {
"transactions": [
{
"locTransaction":
{
"accountId": "10001",
"transactionId": "20001",
"transactionCategory": "HOTEL",
"postedTimestamp": "2017-11-05T13:15:30.751Z",
"description": "Hotel Stay",
"debitCreditMemo": "DEBIT",
"amount": 236,
"reward": {
"accrued": 472,
"adjusted": 0,
"categoryId": "293"
}
}
}
]
}
/reward-programs:
get:
operationId: searchRewardPrograms
tags:
- Reward Program Information
description: Query all reward programs
summary: Search reward programs
responses:
'200':
description: Data describing reward programs associated with accounts
content:
application/json:
schema:
$ref: '#/components/schemas/RewardPrograms'
examples:
Multiple Reward Programs:
summary: Example showing multiple reward programs
value: {
"rewardPrograms": [
{
"programName": "Marriott Bonvoy",
"programId": "4FRCCQvGW0GZEMtsOQWlkQ",
"programUrl": "https://www.marriott.com/loyalty.mi",
"memberships": [
{
"accountIds": [
"af0f8e58-9649-4c29-bab2-0295d522cd6f",
"e75e31eb-bf04-4d87-9f20-4554f63a639e"
],
"businessOrConsumer": "CONSUMER",
"customerId": "kBA5C3d7cBK9DuRngsQRwt6Ydo80bjYDR7n4O5yCKshizuS7hOZJ4cAevBne",
"memberId": "5ee28848b4f242a6b7a41e0daa03a824",
"memberNumber": "1783949940",
"memberTier": "Gold",
"balances": [
{
"name": "Points",
"type": "POINTS",
"balance": 900,
"accruedYtd": 1000,
"redeemedYtd": 200,
"qualifying": false
},
{
"name": "Promotional",
"type": "POINTS",
"balance": 900,
"accrued": 1000,
"redeemed": 200,
"qualifying": false
}
]
}
]
},
{
"programName": "United MileagePlus®",
"programId": "GY4cHWCPxkqgkY61h4BKdQ",
"programUrl": "https://www.united.com/en/us/fly/mileageplus.html",
"memberships": [
{
"accountIds": [
"b4ef4572-452d-41bd-9d2d-1b29dafe63f0"
],
"businessOrConsumer": "BUSINESS",
"customerId": "kBA5C3d7cBK9DuRngsQRwt6Ydo80bjYDR7n4O5yCKshizuS7hOZJ4cAevBne",
"memberId": "b6b319dd3e2c4592847ad6ee32d518bc",
"memberNumber": "9394970669",
"balances": [
{
"name": "Miles",
"type": "MILES",
"balance": 900,
"accrued": 1000,
"redeemed": 200,
"qualifying": false
}
]
}
]
},
{
"programName": "Starbucks Rewards",
"programId": "iqOtPUEYb0Go6SCL8As4fQ",
"programUrl": "https://www.starbucks.com/rewards",
"memberships": [
{
"accountIds": [
"89cf3262-ff38-4f6a-afbc-aafc50cac751"
],
"businessOrConsumer": "CONSUMER",
"customerId": "kBA5C3d7cBK9DuRngsQRwt6Ydo80bjYDR7n4O5yCKshizuS7hOZJ4cAevBne",
"memberId": "95c1aeacd85e4783950a9c2d6e76efa9",
"memberNumber": "7417973194",
"balances": [
{
"name": "Stars",
"type": "POINTS",
"balance": 900,
"accrued": 1000,
"redeemed": 200,
"qualifying": false
}
]
}
]
}
]
}
/reward-programs/{rewardProgramId}:
get:
operationId: getRewardProgram
tags:
- Reward Program Information
description: Get a specific reward program
summary: Get reward program
parameters:
- $ref: '#/components/parameters/RewardProgramIdPath'
responses:
'200':
description: Data describing reward programs associated with accounts
content:
application/json:
schema:
$ref: '#/components/schemas/RewardProgram'
examples:
Single Reward Program:
value: {
"programName": "Discover Cashback Bonus",
"programId": "ywX9ME0FXUa6Mtj0xkOgtA",
"programUrl": "https://www.discover.com/credit-cards/cashback-bonus/",
"memberships": [
{
"accountIds": [
"af0f8e58-9649-4c29-bab2-0295d522cd6f",
"e75e31eb-bf04-4d87-9f20-4554f63a639e"
],
"businessOrConsumer": "CONSUMER",
"customerId": "kBA5C3d7cBK9DuRngsQRwt6Ydo80bjYDR7n4O5yCKshizuS7hOZJ4cAevBne",
"memberId": "b0a853a278804e1694d3104709cbfb58",
"memberNumber": "6137299224",
"memberTier": "Gold",
"balances": [
{
"name": "Cashback",
"type": "CASHBACK",
"balance": 101.95,
"accruedYtd": 4500.10,
"redeemedYtd": 234.45,
"qualifying": false
},
{
"name": "Cashback Match",
"type": "CASHBACK",
"balance": 401.95,
"accruedYtd": 500.10,
"redeemedYtd": 134.45,
"qualifying": false
}
]
}
]
}
/reward-programs/{rewardProgramId}/categories:
get:
operationId: getRewardProgramCategories
tags:
- Reward Program Categories
description: Get reward categories
summary: Get reward categories
parameters:
- $ref: '#/components/parameters/RewardProgramIdPath'
- $ref: '#/components/parameters/OffsetQuery'
- $ref: '#/components/parameters/LimitQuery'
responses:
'200':
description: Data describing a reward program's categories
content:
application/json:
schema:
$ref: '#/components/schemas/RewardCategories'
examples:
Multiple Reward Categories:
summary: Example response with multiple reward categories
value:
categories:
- categoryName: Amusement Park
categoryId: 100
multiplier: 1
description: >-
The Amusement Park category, including zoos, circuses and aquariums, covers
establishments that operate parks or carnivals and offer mechanical rides
and games and/or live animal shows.
- categoryName: Dining/Restaurant
categoryId: 101
multiplier: 2
description: >-
Merchants in the Dining/Restaurant category range from fast food restaurants
to fine dining establishments. They fall into the Dining category if they
primarily prepare food and drinks for immediate consumption on the premises
or for take-out. Dining merchants include bars, cocktail lounges, nightclubs,
taverns and fast-food restaurants. Some merchants that sell food and drinks
are located within larger establishments that sell other goods and services
and may not be not included in this category. For example a department store
or hotel restaurant, theme park cafes or discount store food counter would
not be categorized under Dining.
- categoryName: Entertainment
categoryId: 102
multiplier: 2
description: >-
Entertainment includes purchases made at sports promoters, movie theaters,
theatrical promoters, amusement parks, tourist attractions, record stores
and video rentals.
- categoryName: Hotels
categoryId: 103
multiplier: 5
description: >-
Hotels include businesses that provide sleeping or meeting room accommodations.
Some goods and services that appear on a hotel bill are included. Often
restaurants in hotels are categorized as a hotel purchase.
components:
securitySchemes:
rhsso:
flows:
authorizationCode:
authorizationUrl: 'https://keycloak-sso.apps.home.myocp.net/auth/realms/apps/protocol/openid-connect/auth'
tokenUrl: >-
https://keycloak-sso.apps.home.myocp.net/auth/realms/apps/protocol/openid-connect/token
refreshUrl: >-
https://keycloak-sso.apps.home.myocp.net/auth/realms/apps/protocol/openid-connect/token
type: oauth2
parameters:
############################################################
#
# Shared request parameters (usable by core and all extensions)
#
############################################################
LimitQuery:
name: limit
in: query
description: >-
Number of elements that the consumer wishes to receive.
Providers should implement reasonable default and maximum values
schema:
type: integer
OffsetQuery:
name: offset
in: query
description: >-
Opaque cursor used by the provider to send the next set of records
schema:
type: string
ResultTypeQuery:
name: resultType
in: query
description: >-
Flag to indicate if you want a lightweight array of metadata (AccountDescriptor
or Tax or Operations) or full item details (Account or a Tax subclass or
Availability details). If set to 'lightweight', should only return the
fields associated with the metadata entity.
This field is not required, defaults to lightweight
required: false
schema:
$ref: '#/components/schemas/ResultType'
############################################################
#
# Common request parameters
#
############################################################
FdxVersionQuery:
name: fdxVersion
in: query
description: Specific FDX version for which to get the capability. Optional
required: false
schema:
$ref: '#/components/schemas/FdxVersion'
OperationIdQuery:
name: operationId
in: query
description: Specific operationId for which to get the metrics. Optional
required: false
schema:
$ref: '#/components/schemas/OperationId'
############################################################
#
# Core request parameters
#
############################################################
AccountIdPath:
name: accountId
in: path
description: Account Identifier
required: true
schema:
type: string
EndTimeQuery:
name: endTime
in: query
description: End time for use in retrieval of elements (ISO 8601)
schema:
$ref: '#/components/schemas/DateString'
ImageIdPath:
name: imageId
in: path
description: Image Identifier
required: true
schema:
type: string
RewardProgramIdPath:
name: rewardProgramId
in: path
description: Reward Program Identifier
required: true
schema:
type: string
StartTimeQuery:
name: startTime
in: query
description: Start time for use in retrieval of elements (ISO 8601)
schema:
$ref: '#/components/schemas/DateString'
StatementIdPath:
name: statementId
in: path
description: Statement Identifier
required: true
schema:
type: string
schemas:
############################################################
#
# Shared data entities (usable by core and all extensions)
#
############################################################
Address:
title: Address
description: Postal address
type: object
properties:
line1:
$ref: '#/components/schemas/String64'
description: Address line 1
line2:
$ref: '#/components/schemas/String64'
description: Address line 2
line3:
$ref: '#/components/schemas/String64'
description: Address line 3
city:
$ref: '#/components/schemas/String64'
description: City
state:
allOf:
- $ref: '#/components/schemas/String64'
description: State or province. Deprecated, will remove in FDX V6.0
deprecated: true
region:
$ref: '#/components/schemas/String64'
description: State or province or territory. Replaces "state" property
postalCode:
type: string
maxLength: 16
description: Postal code
country:
$ref: '#/components/schemas/Iso3166CountryCode'
description: Country code
Customer:
title: Customer entity
description: Represents a customer
type: object
properties:
customerId:
$ref: '#/components/schemas/Identifier'
description: >-
Long-term persistent identity of the customer.
This identity must be unique to the owning institution
name:
$ref: '#/components/schemas/CustomerName'
description: The customer's name
dateOfBirth:
$ref: '#/components/schemas/DateString'
description: The customer's date of birth
taxId:
type: string
description: Country specific Tax Id associated with this customer (SIN or NAS in Canada, SSN or TIN in US, etc.)
taxIdCountry:
$ref: '#/components/schemas/Iso3166CountryCode'
description: Country originating the Customer’s taxId element
governmentId:
type: string
description: >-
A federal (such as passport) or state (such as driver's license)
issued identifier
email:
type: array
items:
type: string
description: >-
An array of the customer's electronic mail addresses
addresses:
type: array
items:
$ref: '#/components/schemas/DeliveryAddress'
description: >-
An array of the customer's physical mail addresses
telephones:
type: array
items:
$ref: '#/components/schemas/TelephoneNumber'
description: An array of the customer's telephone numbers
accounts:
type: array
items:
$ref: '#/components/schemas/CustomerToAccountRelationship'
description: List of accounts related to this customer
CustomerName:
title: Customer Name entity
description: The name of an individual in their role as a customer
type: object
allOf:
- $ref: '#/components/schemas/IndividualName'
- type: object
properties:
prefix:
description: Name prefix, e.g. Mr.
type: string
company:
type: string
description: Company name
CustomerToAccountRelationship:
title: Customer to Account Relationship entity
description: Describes an account related to a customer
type: object
properties:
accountId:
$ref: '#/components/schemas/Identifier'
description: Account ID of the related account
links:
$ref: '#/components/schemas/HateoasLinks'
description: Links to the account, or to invoke other APIs
relationship:
$ref: '#/components/schemas/AccountHolderRelationship'
description: Type of relationship to the account
DeliveryAddress:
title: Delivery Address
description: A delivery address and its location type
type: object
allOf:
- $ref: '#/components/schemas/Address'
- type: object
properties:
type:
$ref: '#/components/schemas/DeliveryAddressType'
description: Type of address location. One of BUSINESS, HOME, MAILING
Error:
title: Error
description: >-
An error entity which can be used at the API level for error responses
or at the account level to indicate a problem specific to a particular
account
type: object
properties:
code:
type: string
description: >-
Long term persistent identifier which can be used to trace error
condition back to log information
message:
type: string
description: >-
End user displayable information which might help the customer
diagnose an error
FiAttribute:
title: FI Attribute entity
description: Financial Institution provider-specific attribute
type: object
properties:
name:
type: string
description: Name of attribute
value:
type: string
description: Value of attribute
HateoasLink:
title: HATEOAS Link
description: REST application constraint (Hypermedia As The Engine Of Application State)
required: [href]
type: object
properties:
href:
type: string
format: uri-reference
description: URL to invoke the action on the resource
example: "https://api.fi.com/fdx/v4/accounts/12345"
action:
type: string
enum: [GET, POST, PATCH, DELETE, PUT]
description: HTTP Method to use for the request
rel:
description: >-
Relation of this link to its containing entity, as defined by and with many
example relation values at [IETF RFC5988](https://datatracker.ietf.org/doc/html/rfc5988)
type: string
types:
type: array
items:
$ref: '#/components/schemas/ContentTypes'
description: Content-types that can be used in the Accept header
IndividualName:
title: Individual name
description: First name, middle initial, last name, suffix fields
type: object
properties:
first:
description: First name
type: string
middle:
description: Middle initial
type: string
last:
description: Last name
type: string
suffix:
description: Generational or academic suffix
type: string
NameAddress:
title: Name and Address
description: Individual or business name with address
type: object
allOf:
- $ref: '#/components/schemas/Address'
- type: object
properties:
name1:
$ref: '#/components/schemas/String64'
description: Name line 1
name2:
$ref: '#/components/schemas/String64'
description: Name line 2
NameAddressPhone:
title: Name, Address and Phone
description: Contact phone number with name and address
type: object
allOf:
- $ref: '#/components/schemas/NameAddress'
- type: object
properties:
phone:
$ref: '#/components/schemas/TelephoneNumberPlusExtension'
description: Phone number
PageMetadata:
title: Page Metadata
description: Offset IDs for paginated result sets
type: object
properties:
nextOffset:
type: string
example: "2"
description: Opaque identifier. Does not need to be numeric or have any specific pattern.
Implementation specific
prevOffset:
type: string
example: "1"
description: Opaque identifier. Does not need to be numeric or have any specific pattern.
Implementation specific
totalElements:
type: integer
example: 3
description: Total number of elements
PageMetadataLinks:
title: Page Metadata Links
description: Resource URLs for retrieving next or previous datasets
type: object
properties:
next:
$ref: '#/components/schemas/HateoasLink'
description: Resource URL for retrieving next dataset
prev:
$ref: '#/components/schemas/HateoasLink'
description: Resource URL for retrieving previous dataset
PaginatedArray:
title: Paginated Array
description: Base class for results that may be paginated
type: object
properties:
page:
$ref: '#/components/schemas/PageMetadata'
description: Offset IDs for navigating result sets
links:
$ref: '#/components/schemas/PageMetadataLinks'
description: Resource URLs for navigating result sets
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 registry containing the party’s registration with name and id:
FDX, GLEIF, ICANN, PRIVATE
$ref: '#/components/schemas/PartyRegistry'
registeredEntityName:
description: Registered name of party
type: string
registeredEntityId:
description: Registered id of party
type: string
PaymentDetails:
title: Payment Details entity
description: Details of this payment
type: object
properties:
principalAmount:
type: number
description: The amount of payment applied to principal
interestAmount:
type: number
description: The amount of payment applied to interest
insuranceAmount:
type: number
description: The amount of payment applied to life/health/accident insurance on the loan
escrowAmount:
type: number
description: The amount of payment applied to escrow
pmiAmount:
type: number
description: The amount of payment applied to PMI
feesAmount:
type: number
description: The amount of payment applied to fees
TelephoneNumber:
title: Telephone Number
description: Standard for international phone numbers
type: object
properties:
type:
$ref: '#/components/schemas/TelephoneNumberType'
description: 'Type of phone number: HOME, BUSINESS, CELL, FAX'
country:
type: string
maxLength: 3