Consumer API
>
API Reference
>
v0
>
Accounts
>
Details
openapi: 3.0.0
info:
version: '0.0'
title: Accounts Details
servers:
- url: 'https://{API_ENVIRONMENT}/a/consumer/api/v0'
variables:
API_ENVIRONMENT:
default: digital.garden-fi.com
description: FI specific hostname
tags:
- name: Account Information
paths:
'/users/{userId}/accounts':
get:
tags:
- Account Information
description: |
This endpoint supports being used with an Access Token from the Admin API with "View everything – users, messages, settings, and organizations and organization members" permission for Associated User.
Get all accounts for a user. This endpoint is not guaranteed to return correct balances.
Balances returned via EnrichmentAccountBalances events during a user creation
may be newer than the balances obtained by calls to GET /users/(userId)/accounts.
For balances returned both as an enrichment event and via this endpoint,
the version with the newer date should be used'
security:
- OpenID_Connect:
- 'https://api.banno.com/consumer/auth/accounts.readonly'
- 'https://api.banno.com/consumer/auth/accounts.readwrite'
parameters:
- $ref: '#/components/parameters/UserId'
- in: query
name: active
description: 'DEPRECATED - If true, only return non-hidden accounts'
schema:
type: boolean
deprecated: true
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/accounts'
'404':
description: Not found
'500':
description: Server error
'/users/{userId}/accounts/{accountId}/number':
get:
tags:
- Account Information
description: |
This endpoint supports being used with an Access Token from the Admin API with "View everything – users, messages, settings, and organizations and organization members" permission for Associated User.
Returns the unmasked account number for a given `accountId`.
**Note:**
In late September 2019, financial institutions were given the opportunity to opt out of displaying account numbers in-app.
If your financial institution opted out of displaying account numbers in-app, then this endpoint will not return the unmasked account number.
security:
- OpenID_Connect:
- 'https://api.banno.com/consumer/auth/accounts.unmaskednumber.readonly'
parameters:
- $ref: '#/components/parameters/UserId'
- $ref: '#/components/parameters/AccountId'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/AccountNumber'
'400':
description: Invalid UUID supplied
'404':
description: An unmasked account number could not be found for the accountId given
'500':
description: Server error
'/users/{userId}/accounts/entitlements':
get:
tags:
- Account Information
description: |
This endpoint does not support being used with an Access Token from the Admin API.
Gets entitlements for all accounts
security:
- OpenID_Connect:
- 'https://api.banno.com/consumer/auth/accounts.readonly'
parameters:
- $ref: '#/components/parameters/UserId'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/accountsEntitlements'
'404':
description: User not found
'500':
description: Server error
'/users/{userId}/accounts/{accountId}':
get:
tags:
- Account Information
description: |
This endpoint supports being used with an Access Token from the Admin API with "View everything – users, messages, settings, and organizations and organization members" permission for Associated User.
Get a single account for a user
security:
- OpenID_Connect:
- 'https://api.banno.com/consumer/auth/accounts.readonly'
- 'https://api.banno.com/consumer/auth/accounts.readwrite'
parameters:
- $ref: '#/components/parameters/UserId'
- $ref: '#/components/parameters/AccountId'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/account'
'404':
description: Not found
'500':
description: Server error
'/users/{userId}/accounts/{accountId}/name':
put:
tags:
- Account Information
description: |
This endpoint does not support being used with an Access Token from the Admin API.
Updates an account's name.
security:
- OpenID_Connect:
- 'https://api.banno.com/consumer/auth/accounts.readwrite'
parameters:
- $ref: '#/components/parameters/UserId'
- $ref: '#/components/parameters/AccountId'
requestBody:
description: Update an account's name value
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/accountNameUpdate'
responses:
'200':
description: Account's name update succeeded. Response includes new Account Name.
content:
application/json:
schema:
$ref: '#/components/schemas/newAccountName'
'400':
description: Bad request
content:
application/json:
schema:
$ref: '#/components/schemas/accountNameChangeBadRequest'
'403':
description: Account name change forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/accountNameChangeForbidden'
'404':
description: User not found or wrong Aggregation Type. Only NetTeller Retail and Credit Union types are supported.
'500':
description: Server error.
'503':
description: Service is not available.
content:
application/json:
schema:
$ref: '#/components/schemas/serviceUnavailable'
components:
parameters:
UserId:
in: path
name: userId
description: ID of the desired user
required: true
schema:
type: string
format: uuid
example: '01234567-abcd-4321-fedc-9876543210fa'
AccountId:
in: path
name: accountId
description: ID of the desired account
required: true
schema:
type: string
format: uuid
example: '02345617-bacd-3421-fdce-876593401fa0'
securitySchemes:
OpenID_Connect:
type: openIdConnect
description: OpenID Connect - Discovery endpoint will be institution specific
openIdConnectUrl: >-
https://digital.garden-fi.com/a/consumer/api/v0/oidc/.well-known/openid-configuration
schemas:
AccountNumber:
type: object
required:
- number
properties:
number:
type: string
accounts:
type: object
properties:
inactivatedAccountIds:
type: array
items:
type: string
accounts:
type: array
items:
$ref: '#/components/schemas/account'
account:
type: object
required:
- accountStatus
- accountType
- balance
- canCreatePayments
- canTransferFrom
- contributesToAggregateTotals
- fetchedDate
- formattedMetaData
- hasRewards
- hidden
- id
- institution
- loginId
- lowFundsAlertEnabled
- lowFundsAlertThreshold
- name
- numbers
- status
- regD
properties:
id:
type: string
description: Id of the account
name:
type: string
description: Name on the account
numbers:
type: string
description: The masked account number for this account
fetchedDate:
type: string
description: The date of when the balance was last successfully fetched
format: date-time
status:
type: string
description: The values of status are described in account-status
accountStatus:
type: string
enum:
- Active
- Active nonaccruing
- Authorization prohibited
- Bankrupt
- Charge off
- Charged off
- Close pending
- Closed
- Do not close on zero balance
- Dormant
- Drill
- Escheat
- Freeze with accrual
- Freeze with zero accrual
- Frozen
- Frozen nonaccruing
- Frozen with accrual
- Frozen without accrual
- Inactive
- Interest accrual prohibited
- Lost
- Mail return
- Mature not paid
- Matured
- Matured not paid
- New
- No auto pay
- No credits
- No post
- Non accrual allow transactions
- Normal
- Not available
- Occupied
- Paid off
- Past due
- Pending closed
- Redeemed
- Restricted
- Revoked
- Stolen
- Unknown
- Unoccupied
- Waiting for payment
- Zero accrual
description: The status of the account
closedAccountAvailableUntil:
type: string
format: date
example: '2018-08-02'
description: 'If this account is closed, this is the date when it will no longer be available'
lastLoginFailure:
type: string
description: The values of lastLoginFailure are described in login-failure
accountHolderName:
type: string
description: Name of the account holder (intended for display purposes only)
accountType:
type: string
description: The values of accountType are described in account-types
accountSubType:
type: string
description: The values of accountSubType are described in account-types
canCreatePayments:
type: boolean
description: Can create payments if true
canTransferFrom:
type: boolean
description: Can transfer from another account if true
hasRewards:
type: boolean
description: Does this account have rewards associated with it. Required to be true to be able to access the rewards endpoint for this account.
loginId:
type: string
description: Login Id
institution:
type: object
required:
- id
- name
properties:
id:
type: string
description: ID of the institution
name:
type: string
description: Name of the institution
hidden:
type: boolean
description: If the account is hidden or not
active:
type: boolean
description: True if the account is not hidden. Deprecated in favor of `hidden`
deprecated: true
contributesToAggregateTotals:
type: boolean
description: The preference of whether or not an account's totals should contribute to the aggregation totals
lowFundsAlertEnabled:
type: boolean
description: Alert for low funds if true
lowFundsAlertThreshold:
type: string
description: Threshold of the low funds alert
sortIndex:
type: integer
description: Sort order key for the account
favorited:
type: boolean
description: Favorited if true. Deprecated in favor of `sortIndex`
deprecated: true
balance:
type: string
description: 'The balance the institution discloses to Banno. Typically for cash accounts, this is the amount of cash in that account; for credit accounts, this is the cash sum of the transaction amounts that have been charged to the credit account'
availableBalance:
type: string
description: 'The available balance the institution discloses to Banno. Typically for cash accounts, this is the amount of cash in that account minus any pending transactions that have been authorized against that account'
availableCredit:
type: string
description: The available credit the institution discloses to Banno. This is only applicable for credit accounts
creditLimit:
type: string
description: The limit of account credit
paymentDueDate:
type: string
description: 'When the payment is due. Normalized by the client to only show the date. NOTE this data is duplicated in `formattedMetaData`, but is still required here for other purposes.'
pattern: ^\w+ \d{1,2}, \d{4}$
example: 'January 1, 1970'
paymentDueAmount:
type: string
description: 'The due amount of the payment. NOTE this data is duplicated in `formattedMetaData`, but is still required here for other purposes.'
minimumPaymentDue:
type: string
description: 'The minimum payment due. NOTE this data is duplicated in `formattedMetaData`, but is still required here for other purposes.'
payoffBalance:
type: string
description: 'Payoff balance of the account. NOTE this data is duplicated in `formattedMetaData`, but is still required here for other purposes.'
interestRate:
type: string
description: Interest rate. Deprecated in favor of this same data in `formattedMetaData`.
deprecated: true
originationDate:
type: string
description: Origin date. The date when the account was opened. Normalized by the client to only show the date. Deprecated in favor of this same data in `formattedMetaData`.
pattern: ^\w+ \d{1,2}, \d{4}$
example: 'January 1, 1970'
deprecated: true
principalAmount:
type: string
description: Deprecated in favor of this same data in `formattedMetaData`.
deprecated: true
interestBalance:
type: string
description: Interest Balance of the account. Deprecated in favor of this same data in `formattedMetaData`.
deprecated: true
regD:
type: object
required:
- restricted
properties:
restricted:
type: boolean
description: Is this account restricted by regulation D
count:
type: integer
description: Optional number of regulation D restricted withdrawals this month
routingNumber:
type: string
description: The routing number for the institution that this account belongs to
example: '123456789'
availableBalanceCalculationIncludes:
type: object
description: |
The values that were included in the calculation of the availableBalance provided. The calculation happens as follows:
- Start with current balance
- Subtract float
- Subtract holds
- Subtract next day memo debits
- Add accrued interest
- Add overdraft limit
- Add next day memo credits
- Add unused protection line
- Use sweep balances (include sweep parameters)
- Use sweep balances (do not include sweep parameters)
- Add bounce protection limit
- Use investment balance
properties:
currentBalance:
type: string
description: 'The current balance is the balance of the account as of the last end of day processing, which may also include memo posted items depending on the service charge code assigned to the account.'
holdAmount:
type: string
description: 'The hold amount is a value that can be setup on an account to limit the funds from what is available.'
floatAmount:
type: string
description: 'The float amount is the amount representing when there is a check deposited on an account and the funds are not yet considered 100% available, also known as uncollected funds.'
accruedInterest:
type: string
description: 'The accrued interest is the amount the deposit account has earned based upon the interest rate defined for the account that has not been paid out to the customer.'
availableSweepAmount:
type: string
description: 'The available sweep amount is the amount determined from a sweep, which is a function within the demand deposit system that allows the transfer of funds between accounts after the day’s transactions and the pre-defined criteria for the transfer have been considered.'
overdraftProtectionAmount:
type: string
description: 'The overdraft protection amount is a line of credit amount protecting a deposit account if it becomes overdrawn. Interest charges are incurred if this amount is used. Also known as unused protection line.'
overdraftLimit:
type: string
description: 'The overdraft limit is the amount allowed to post against for an individual debit, which would normally be an NSF (non-sufficient funds) item.'
bounceProtectionAmount:
type: string
description: 'The bounce protection amount is an extension of the overdraft limit to protect against a check being denied and returned.'
formattedMetaData:
$ref: '#/components/schemas/formattedMetaData'
accountNameUpdate:
type: object
required:
- name
properties:
name:
type: string
description: Account name to update to
accountNameChangeBadRequest:
type: object
required:
- type
properties:
type:
type: string
description: Type of bad request failure
enum:
- JSON
- AllWhitespaceAccountName
- NotASCII
newAccountName:
type: object
required:
- newAccountName
properties:
newAccountName:
type: string
description: 'New account name, i.e. to what it was changed.'
accountNameChangeForbidden:
type: object
required:
- type
properties:
type:
type: string
description: Type of forbidden failure
enum:
- NoAbility
- InvalidAccountType
- NotPossible
serviceUnavailable:
type: object
required:
- type
properties:
type:
type: string
enum:
- memoMode
description: MemoMode - Credit Union is in Memo Mode and does not support changing account name at this time. Please try again later.
accountsEntitlements:
type: object
properties:
entitlements:
type: array
items:
type: object
properties:
accountId:
type: string
format: uuid
stopPaymentsAccess:
type: string
description: 'Access control value for stop payments that distinguishes between read only, write only, or read/write'
enum:
- Read
- Write
- Both
- None
zelle:
type: boolean
description: Allowable account for use in the Zelle feature
links:
$ref: '#/components/schemas/links'
link:
type: object
required:
- id
- linkType
- title
- description
properties:
id:
type: string
description: The link ID
format: uuid
linkType:
type: string
description: Account level link type
enum:
- CardLocationManagement
- CheckReorderingByAccount
- CreditCardControls
- DocumentsByAccount
- EStatusConnect
- FSCCPayment
- LoanPayment
- MortgageServices
- PowerCDRenew
- PowerLoan
- PowerOverdraft
- PowerWithdrawCheck
- Rewards
title:
type: string
description: Title of the link
description:
type: string
description: Longer description of the link
name:
type: string
description: Name of the SSO provider
fdicNotice:
type: string
description: FDIC (Federal Deposit Insurance Corporation) notice text to display to the user.
links:
type: array
items:
$ref: '#/components/schemas/link'
description: See Links documentation for more information
formattedMetaData:
type: object
properties:
details:
type: array
items:
$ref: '#/components/schemas/formattedMetaDataGroup'
rewards:
type: array
items:
$ref: '#/components/schemas/formattedMetaDataGroup'
formattedMetaDataGroup:
type: object
required:
- values
properties:
label:
type: string
example: Activity
values:
type: array
items:
oneOf:
- $ref: '#/components/schemas/textValue'
- $ref: '#/components/schemas/dateValue'
- $ref: '#/components/schemas/moneyValue'
- $ref: '#/components/schemas/percentageValue'
- $ref: '#/components/schemas/countValue'
discriminator:
propertyName: type
mapping:
Text: '#/components/schema/textValue'
Date: '#/components/schema/dateValue'
Money: '#/components/schema/moneyValue'
Percentage: '#/components/schema/percentageValue'
Count: '#/components/schema/countValue'
formattedMetaDataValue:
type: object
required:
- type
- label
properties:
type:
type: string
enum:
- Text
- Date
- Money
- Percentage
- Count
description: The discriminator to determine the value type
label:
type: string
description: The label to display associated with the value
example: Important data
extraDetails:
type: string
description: 'Optional extra information to display - for example, in a popup dialog triggered by an info icon next to this field.'
example: This is only an estimate. Contact us for exact details.
hidden:
type: boolean
description: True if this value should be hidden from displaying in the UI. A value can be marked as hidden if the institution considers it irrelevant for account holders.
configuredLabel:
type: string
description: The label provided by the institution
example: Custom important data
textValue:
allOf:
- $ref: '#/components/schemas/formattedMetaDataValue'
- type: object
required:
- value
properties:
type:
enum:
- Text
value:
type: string
description: The text value to display
example: Zaphod Beeblebrox
dateValue:
allOf:
- $ref: '#/components/schemas/formattedMetaDataValue'
- type: object
required:
- value
- format
properties:
type:
enum:
- Date
value:
type: string
description: The date value (in ISO 8601 format).
format: date-time
example: '2018-08-02T00:00:00.000Z'
format:
type: string
description: A hint on the format to use for display purposes in a client app.
example: yyyy-MM-dd
moneyValue:
allOf:
- $ref: '#/components/schemas/formattedMetaDataValue'
- type: object
required:
- value
properties:
type:
enum:
- Money
value:
type: string
description: The monetary value to display
example: '233.97'
percentageValue:
allOf:
- $ref: '#/components/schemas/formattedMetaDataValue'
- type: object
required:
- value
properties:
type:
enum:
- Percentage
value:
type: string
description: The percentage value to display. Do not account for decimal place. It will be in the correct place.
example: '3.1415'
countValue:
allOf:
- $ref: '#/components/schemas/formattedMetaDataValue'
- type: object
required:
- value
properties:
type:
enum:
- Count
value:
type: integer
description: The whole number count
example: 42
unit:
type: string
description: The optional unit label to apply to the count
example: roads a man must walk down
Account Number Masking
Account numbers for SymXchange shares and loans will be masked to the last two
digits of the member number. This masked member number will then be concatenated with
the account type (S or L), followed by the ID (e.g., 01 or 0001).
SymXchange external accounts will be masked to the last four digits of the account number.
jXchange account numbers will also be masked to the last four digits.
unmasked: "123456789"
masked: "x6789"
Account Types
The accountType and accountSubType are the general ways of describing an account.
The enumerated values of accountType are static and do not change.
However, the values of accountSubType are not static and can be wildly different between accounts.
Decisions should be based of the value of accountType, but not accountSubType.
Credit Union core(s)
These are the accountType and accountSubtype values for credit unions.
Symitar
Regarding valid values
This listing is not an enumeration of valid values.
New values may be added in the future.
Your application should be robust and gracefully handle new and/or unexpected values.
accountType
accountSubType
Debt
Lease
Debt
Loan
Deposit
Club
Deposit
Checking
Deposit
Savings
Investment
Certificate of Deposit
Line of Credit
Credit Card
Line of Credit
Credit Card External Loan
Line of Credit
Line of Credit
Line of Credit
LOC Combination
Other
Third Party
Bank core(s)
These are the accountType and accountSubtype values for banks.
SilverLake
Regarding valid values
This listing is not an enumeration of valid values.
New values may be added in the future.
Your application should be robust and gracefully handle new and/or unexpected values.
accountType
accountSubType
Debt
Loan
Deposit
Checking
Deposit
Club
Deposit
Savings
Investment
Time deposit
Line of Credit
Credit Card
Line of Credit
Line of Credit
Other
General Ledger
Other
Safe Deposit Box
Other
Shareholder
Other
Third Party
CIF 20/20
Regarding valid values
This listing is not an enumeration of valid values.
New values may be added in the future.
Your application should be robust and gracefully handle new and/or unexpected values.
accountType
accountSubType
Debt
Loan
Deposit
Checking
Deposit
Club
Deposit
Savings
Investment
Time deposit
Line of Credit
Credit Card
Line of Credit
Line of Credit
Line of Credit
Overdraft Protection
Other
General Ledger
Other
Safe Deposit Box
Other
Third Party
Core Director
Regarding valid values
This listing is not an enumeration of valid values.
New values may be added in the future.
Your application should be robust and gracefully handle new and/or unexpected values.
accountType
accountSubType
Debt
Loan
Deposit
Checking
Deposit
Savings
Investment
Certificate of Deposit
Investment
Individual Retirement Account (IRA)
Investment
Investments
Line of Credit
Credit Card
Line of Credit
Line of Credit
Other
Other
Other
Safe Deposit Box
Values of accountType
Deposit
A bank account that allows money to be deposited and withdrawn by
the account owner. Includes accountSubType of most commonly
Checking and Savings, but also Interest Checking and others.
Line of Credit
A credit source extended to a consumer by a financial institution.
Includes accountSubType of Credit Card, Home Equity Line,
etc.
Debt
An obligation owed by a consumer to a financial institution.
Includes accountSubType of Loan and others.
Investment
The commitment of money to purchase financial instruments.
Includes accountSubType of Certificate of Deposit, Bond,
etc.
Bill Pay
An account that is used only to pay bills.
Other
An account that does not fit into one of the other account types.
Includes an accountSubType.
Unknown
An account type cannot be derived. accountSubType will also be
Unknown.
Balances
Deposit Accounts
A positive balance indicates the amount of money the owner has in the
account.
A negative balance would indicate other conditions (such as an overdraft).
Debt and Line of Credit Accounts
A positive balance indicates the amount owed. For example, a balance of 70,422 on a home loan
would indicate that the owner owes $70,422 on their home.
A negative balance indicates a credit owed. For example, a balance of -5.22 might indicate a refund
was posted to a credit card that had no outstanding balance.
Investment and Other Types of Accounts
No inference is applied to the balances with regard to positive or negative numbers.
Have a Question?
Have a how-to question? Seeing a weird error? Get help on
StackOverflow.
Register for the Digital Toolkit Meetup
where we answer technical Q&A from the audience.