UNPKG

karavan-core

Version:
1,363 lines (1,323 loc) 175 kB
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