{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://raw.githubusercontent.com/api-evangelist/bbandt-corp/main/json-schema/bbandt-corp-transactions-schema.json", "title": "Transactions entity", "description": "Optionally paginated array of transactions", "x-generated": "2026-10-12", "x-method": "derived", "x-generator": "derive-json-schema.py", "x-source": "openapi/bbandt-corp-account-transactions-api-openapi.yml#/components/schemas/Transactions", "type": "object", "x-fdx-csdf-account-categories": [ "ANY" ], "properties": { "paginatedArray": { "$ref": "#/$defs/PaginatedArray", "description": "Base class for results that may be paginated" }, "transactions": { "description": "An array of transactions with entity type dependent on the account type (deposit, loan or line of credit)", "type": "array", "x-fdx-csdf-account-categories": [ "ANY" ], "items": { "oneOf": [ { "type": "object", "properties": { "depositTransaction": { "$ref": "#/$defs/DepositTransaction", "description": "A deposit transaction", "x-fdx-csdf-account-categories": [ "REG_E" ] } } }, { "type": "object", "properties": { "investmentTransaction": { "$ref": "#/$defs/InvestmentTransaction", "description": "An investment transaction" } } }, { "type": "object", "properties": { "loanTransaction": { "$ref": "#/$defs/LoanTransaction", "description": "A loan transaction" } } }, { "type": "object", "properties": { "locTransaction": { "$ref": "#/$defs/LocTransaction", "description": "A line-of-credit transaction", "x-fdx-csdf-account-categories": [ "REG_Z" ] } } } ] } } }, "$defs": { "AccountCategory": { "title": "Account Category type", "description": "The category of account", "type": "string", "x-fdx-csdf-account-categories": [ "ANY" ], "enum": [ "DEPOSIT_ACCOUNT", "INVESTMENT_ACCOUNT", "LOAN_ACCOUNT", "LOC_ACCOUNT" ] }, "DebitCreditMemo": { "title": "Debit Credit Memo", "description": "The posting type of a transaction", "type": "string", "x-fdx-csdf-account-categories": [ "ANY" ], "enum": [ "CREDIT", "DEBIT" ] }, "DepositTransaction": { "title": "Deposit Transaction entity", "description": "A transaction on a deposit account type", "type": "object", "x-fdx-csdf-account-categories": [ "REG_E" ], "allOf": [ { "$ref": "#/$defs/Transaction" }, { "type": "object", "properties": { "transactionType": { "$ref": "#/$defs/DepositTransactionType", "description": "ATMDEPOSIT, ATMWITHDRAWAL, CHECK, DEPOSIT, INTEREST, POSCREDIT, POSDEBIT, FEE", "x-fdx-csdf-account-categories": [ "REG_E" ] }, "payee": { "$ref": "#/$defs/String255", "description": "Payee name", "x-fdx-csdf-account-categories": [ "REG_E" ] }, "checkNumber": { "type": "integer", "description": "Check number", "x-fdx-csdf-account-categories": [ "REG_E" ] } } } ] }, "DepositTransactionType": { "title": "Deposit Transaction Type", "description": "The type of a deposit transaction", "type": "string", "x-fdx-csdf-account-categories": [ "REG_E" ], "enum": [ "ATMDEPOSIT", "ATMWITHDRAWAL", "CHECK", "DEPOSIT", "FEE", "INTEREST", "POSCREDIT", "POSDEBIT" ] }, "FiAttribute": { "title": "FI Attribute entity", "description": "Financial Institution provider-specific attribute", "type": "object", "x-fdx-csdf-account-categories": [ "ANY" ], "properties": { "name": { "type": "string", "description": "Name of attribute", "x-fdx-csdf-account-categories": [ "ANY" ] }, "value": { "type": "string", "description": "Value of attribute", "x-fdx-csdf-account-categories": [ "ANY" ] } } }, "HateoasLink": { "title": "HATEOAS Link", "description": "REST application constraint (Hypermedia As The Engine Of Application State)", "required": [ "href" ], "type": "object", "x-fdx-csdf-technical": true, "properties": { "href": { "type": "string", "format": "uri-reference", "description": "URL to invoke the action on the resource", "x-fdx-csdf-technical": true }, "action": { "$ref": "#/$defs/HttpAction", "description": "HTTP Method to use for the request", "x-fdx-csdf-technical": true } } }, "HttpAction": { "title": "HTTP Action Type", "description": "HTTP Methods to use for requests", "type": "string", "x-fdx-csdf-technical": true, "enum": [ "GET" ] }, "Identifier": { "title": "Identifier", "description": "Value for a unique identifier", "type": "string", "maxLength": 256, "x-fdx-csdf-account-categories": [ "ANY" ] }, "InvestmentTransaction": { "title": "Investment Transaction entity", "description": "An investment transaction", "type": "object", "allOf": [ { "$ref": "#/$defs/Transaction" }, { "type": "object", "properties": { "transactionType": { "$ref": "#/$defs/InvestmentTransactionType", "description": "PURCHASED, SOLD, PURCHASEDTOCOVER, ADJUSTMENT, PURCHASETOOPEN, PURCHASETOCLOSE, SOLDTOOPEN, SOLDTOCLOSE, INTEREST, MARGININTEREST, REINVESTOFINCOME, RETURNOFCAPITAL, TRANSFER, CONTRIBUTION, FEE, OPTIONEXERCISE, OPTIONEXPIRATION, DIVIDEND, DIVIDENDREINVEST, SPLIT, CLOSURE, INCOME, EXPENSE, CLOSUREOPT, INVEXPENSE, JRNLSEC, JRNLFUND, OTHER, DIV, SRVCHG, DEP, DEPOSIT, ATM, POS, XFER, CHECK, PAYMENT, CASH, DIRECTDEP, DIRECTDEBIT, REPEATPMT" }, "shares": { "type": "number", "description": "Required for stock, mutual funds. Number of shares (with decimals). Negative numbers indicate securities are being removed from the account" }, "price": { "type": "number", "description": "Unit purchase price" }, "securityId": { "type": "string", "description": "Unique identifier of security" }, "securityIdType": { "$ref": "#/$defs/SecurityIdType", "description": "CINS, CMC, CME, CUSIP, ISIN, ITSA, NASDAQ, SEDOL, SICC, VALOR, WKN" }, "securityType": { "$ref": "#/$defs/SecurityType", "description": "Truist is adding ANNUITY and CD per RFC 0394 with FDX v6.5, in addition to FDX v6.4 values BOND, DEBT, MUTUALFUND, OPTION, OTHER, STOCK, SWEEP" }, "symbol": { "type": "string", "description": "Ticker symbol" }, "commission": { "type": "number", "description": "Transaction commission" }, "fees": { "type": "number", "description": "Fees applied to the trade" }, "unitPrice": { "type": "number", "description": "Price per commonly-quoted unit. Does not include markup/markdown, unitprice. Share price for stocks, mutual funds, and others. Percentage of par for bonds. Per share (not contract) for options" }, "units": { "type": "number", "description": "For security-based actions other than stock splits, quantity. Shares for stocks, mutual funds, and others. Face value for bonds. Contracts for options" }, "unitType": { "$ref": "#/$defs/UnitType", "description": "SHARES, CURRENCY" }, "settlementTimestamp": { "description": "When the trade settled", "$ref": "#/$defs/Timestamp" } } } ] }, "InvestmentTransactionType": { "title": "Investment Transaction Type", "description": "The type of an investment transaction", "type": "string", "enum": [ "ADJUSTMENT", "AIRDROP", "ATM", "CASH", "CHECK", "CLOSURE", "CLOSUREOPT", "CONTRIBUTION", "DEP", "DEPOSIT", "DIRECTDEBIT", "DIRECTDEP", "DIV", "DIVIDEND", "DIVIDENDREINVEST", "EXPENSE", "FEE", "FORKED", "INCOME", "INTEREST", "INVEXPENSE", "JRNLFUND", "JRNLSEC", "MARGININTEREST", "MINED", "OPTIONEXERCISE", "OPTIONEXPIRATION", "OTHER", "PAYMENT", "POS", "PURCHASED", "PURCHASEDTOCOVER", "PURCHASETOCLOSE", "PURCHASETOOPEN", "REINVESTOFINCOME", "REPEATPMT", "RETURNOFCAPITAL", "SOLD", "SOLDTOCLOSE", "SOLDTOOPEN", "SPLIT", "SRVCHG", "STAKED", "TRANSFER", "WITHDRAWAL", "XFER" ] }, "LoanTransaction": { "title": "Loan Transaction entity", "description": "A transaction on a loan account", "type": "object", "allOf": [ { "$ref": "#/$defs/Transaction" }, { "type": "object", "properties": { "transactionType": { "$ref": "#/$defs/LoanTransactionType", "description": "FEE, INTEREST, PAYMENT, PAYOFF, PRINCIPAL" }, "paymentDetails": { "$ref": "#/$defs/PaymentDetails", "description": "Breakdown of payment details" } } } ] }, "LoanTransactionType": { "title": "Loan Transaction Type", "description": "Defines the type of a loan transaction:\n * `FEE`: Fee charge. For example, a late payment fee\n * `INTEREST`: Interest charge\n * `PAYMENT`: Required payment that satisfies the minimum payment (e.g. principal + interest for mortgages)\n * `PAYOFF`: Payment that satisfies the terms of the mortgage loan and completely pays off the debt", "type": "string", "enum": [ "FEE", "INTEREST", "PAYMENT", "PAYOFF", "PRINCIPAL" ] }, "LocTransaction": { "title": "Line-Of-Credit Transaction entity", "description": "A line-of-credit transaction", "type": "object", "x-fdx-csdf-account-categories": [ "REG_Z" ], "allOf": [ { "$ref": "#/$defs/Transaction" }, { "type": "object", "properties": { "transactionType": { "$ref": "#/$defs/LocTransactionType", "description": "FEE, INTEREST, PAYMENT", "x-fdx-csdf-account-categories": [ "REG_Z" ] }, "checkNumber": { "type": "integer", "description": "Check number", "x-fdx-csdf-account-categories": [ "REG_Z" ] } } } ] }, "LocTransactionType": { "title": "Line-Of-Credit Transaction Type", "description": "The type of a line-of-credit transaction", "type": "string", "x-fdx-csdf-account-categories": [ "REG_Z" ], "enum": [ "FEE", "INTEREST", "PAYMENT" ] }, "PageMetadata": { "title": "Page Metadata", "description": "Offset IDs for paginated result sets", "type": "object", "x-fdx-csdf-technical": true, "properties": { "nextOffset": { "type": "string", "description": "Opaque identifier. Does not need to be numeric or have any specific pattern.", "x-fdx-csdf-technical": true }, "totalElements": { "type": "integer", "description": "Total number of elements, only available from Truist on final pagination query", "x-fdx-csdf-technical": true }, "partialElements": { "type": "integer", "description": "The elements returned so far, adding these to prior pagination responses" } } }, "PageMetadataLinks": { "title": "Page Metadata Links", "description": "Resource URLs for retrieving next or previous datasets", "type": "object", "x-fdx-csdf-technical": true, "properties": { "next": { "$ref": "#/$defs/HateoasLink", "description": "Resource URL for retrieving next dataset", "x-fdx-csdf-technical": true } } }, "PaginatedArray": { "title": "Paginated Array", "description": "Base class for results that may be paginated", "type": "object", "x-fdx-csdf-technical": true, "properties": { "page": { "$ref": "#/$defs/PageMetadata", "description": "Offset IDs for navigating result sets", "x-fdx-csdf-technical": true }, "links": { "$ref": "#/$defs/PageMetadataLinks", "description": "Resource URLs for navigating result sets", "x-fdx-csdf-technical": true } } }, "PaymentDetails": { "title": "Payment Details entity", "description": "Details of this payment", "type": "object", "x-fdx-csdf-account-categories": [ "ANY" ], "properties": { "principalAmount": { "type": "number", "description": "The amount of payment applied to principal", "x-fdx-csdf-account-categories": [ "ANY" ] }, "interestAmount": { "type": "number", "description": "The amount of payment applied to interest", "x-fdx-csdf-account-categories": [ "ANY" ] }, "insuranceAmount": { "type": "number", "description": "The amount of payment applied to life/health/accident insurance on the loan", "x-fdx-csdf-account-categories": [ "REG_E" ] }, "escrowAmount": { "type": "number", "description": "The amount of payment applied to escrow", "x-fdx-csdf-account-categories": [ "REG_E" ] }, "pmiAmount": { "type": "number", "description": "The amount of payment applied to PMI", "x-fdx-csdf-account-categories": [ "REG_E" ] }, "feesAmount": { "type": "number", "description": "The amount of payment applied to fees", "x-fdx-csdf-account-categories": [ "ANY" ] } } }, "RewardType": { "title": "Reward Type", "description": "The type of the reward balance. Example: a reward program awarding \"Stars\" for purchases would use the `POINTS` reward type.\n * `CASHBACK`: Rewards balances enumerated using a monetary amount\n * `MILES`: Rewards balances enumerated using distance\n * `POINTS`: Default when a reward balance is not of type CASHBACK or MILES", "type": "string", "x-fdx-csdf-account-categories": [ "ANY" ], "enum": [ "CASHBACK", "MILES", "POINTS" ] }, "SecurityIdType": { "title": "Security Id Type", "description": "The source of the identifier for a security\n | Value | Description |\n |-----|-----|\n | CINS | CUSIP International Numbering System) is a global securities identification numbering system that provides |\n | CMC | Coin Market Cap |\n | CME | Chicago Mercantile Exchange |\n | CUSIP | Committee on Uniform Securities Identification Procedures |\n | ISIN | International Securities Identification Number |\n | ITSA | International Securities Identification Number Technical Committee |\n | NASDAQ | National Association of Securities Dealers Automated Quotations |\n | SEDOL | Stock Exchange Daily Official List |\n | SICC | Standard Identification Code for Institutional Investment |\n | VALOR | SIX Swiss Exchange |\n | WKN | Wertpapierkennnummer |", "type": "string", "enum": [ "CINS", "CMC", "CME", "CUSIP", "ISIN", "ITSA", "NASDAQ", "SEDOL", "SICC", "VALOR", "WKN" ] }, "SecurityType": { "title": "Security Type", "description": "The type of a security\n | Value | Description |\n |-----|-----|\n | ANNUITY | Financial product that pays out a fixed stream of payments. Added by Truist per RFC 0394 with FDX v6.5 |\n | BOND | Debt security as a loan to a government, agency or company, repaid with interest |\n | CD | Certificate of Deposit, a savings account with a fixed rate and term. Added by Truist per RFC 0394 with FDX v6.5 |\n | DEBT | Any type of security that must be paid back in full along with interest |\n | MUTUALFUND | Pooled collection of assets invested in stocks, bonds, and other securities |\n | OPTION | The right to buy a specific number of stock shares at a pre-set price |\n | OTHER | Another type of security not listed here |\n | STOCK | A share in the ownership of a company |\n | SWEEP | Interest-earning account used to collect low- or non-interest-earning cash at close of day |", "type": "string", "enum": [ "ANNUITY", "BOND", "CD", "DEBT", "MUTUALFUND", "OPTION", "OTHER", "STOCK", "SWEEP" ] }, "String255": { "title": "String 255", "description": "String of maximum length 255", "type": "string", "maxLength": 255, "x-fdx-csdf-account-categories": [ "ANY" ] }, "Timestamp": { "title": "Timestamp", "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", "x-fdx-csdf-account-categories": [ "ANY" ] }, "Transaction": { "title": "Transaction", "description": "Base entity for financial transactions", "type": "object", "x-fdx-csdf-account-categories": [ "ANY" ], "properties": { "accountId": { "$ref": "#/$defs/Identifier", "description": "Corresponds to AccountId in Account", "x-fdx-csdf-account-categories": [ "ANY" ] }, "accountCategory": { "$ref": "#/$defs/AccountCategory", "description": "The category of account", "x-fdx-csdf-account-categories": [ "ANY" ] }, "transactionId": { "$ref": "#/$defs/Identifier", "description": "Long term persistent identity of the transaction (unique to account)", "x-fdx-csdf-account-categories": [ "ANY" ] }, "referenceTransactionId": { "$ref": "#/$defs/Identifier", "description": "For reverse postings, the identity of the transaction being reversed. For the correction transaction, the identity of the reversing post. For credit card posting transactions, the identity of the authorization transaction", "x-fdx-csdf-account-categories": [ "ANY" ] }, "cardNumberDisplay": { "type": "string", "description": "The payment card number (e.g. debit, credit or digital), suitably masked, used to originate the transaction. May differ from primary account number as a secondary or employee card or a one-time use number. This is an optional field and won't be returned for certain types of transactions such as cash or check deposits", "x-fdx-csdf-account-categories": [ "ANY" ] }, "postedTimestamp": { "$ref": "#/$defs/Timestamp", "description": "The date and time that the transaction was posted to the account. If not provided then TransactionTimestamp can be used as PostedTimeStamp", "x-fdx-csdf-account-categories": [ "ANY" ] }, "transactionTimestamp": { "$ref": "#/$defs/Timestamp", "description": "The date and time that the transaction was added to the server backend systems", "x-fdx-csdf-account-categories": [ "ANY" ] }, "description": { "type": "string", "description": "The description of the transaction", "x-fdx-csdf-account-categories": [ "ANY" ] }, "memo": { "$ref": "#/$defs/String255", "description": "Secondary transaction description", "x-fdx-csdf-account-categories": [ "ANY" ] }, "debitCreditMemo": { "$ref": "#/$defs/DebitCreditMemo", "description": "DEBIT, CREDIT, MEMO", "x-fdx-csdf-account-categories": [ "ANY" ] }, "reference": { "type": "string", "description": "A tracking reference identifier", "x-fdx-csdf-account-categories": [ "ANY" ] }, "status": { "$ref": "#/$defs/TransactionStatus", "description": "PENDING, POSTED", "x-fdx-csdf-account-categories": [ "ANY" ] }, "amount": { "type": "number", "description": "The amount of money in the account currency", "x-fdx-csdf-account-categories": [ "ANY" ] }, "reward": { "$ref": "#/$defs/TransactionReward", "description": "Rewards earned with this transaction. Will only be returned on posted LocTransactions for which customer is eligible for rewards", "x-fdx-csdf-account-categories": [ "ANY" ] }, "fiAttributes": { "type": "array", "description": "Array of Financial institution-specific attributes", "x-fdx-csdf-account-categories": [ "ANY" ], "items": { "$ref": "#/$defs/FiAttribute" } } } }, "TransactionReward": { "title": "Transaction Reward entity", "description": "Rewards earned on a transaction", "type": "object", "x-fdx-csdf-account-categories": [ "ANY" ], "properties": { "accrued": { "type": "number", "description": "Reward units accrued on this transaction", "x-fdx-csdf-account-categories": [ "ANY" ] }, "adjusted": { "type": "number", "description": "Reward units adjusted on this transaction", "x-fdx-csdf-account-categories": [ "ANY" ] }, "type": { "$ref": "#/$defs/RewardType", "description": "The type of the reward balance - CASHBACK, MILES, POINTS. As added to `TransactionReward` by RFC 0379 with FDX Release v6.5 in Fall 2025", "x-fdx-csdf-account-categories": [ "ANY" ] } } }, "TransactionStatus": { "title": "Transaction Status", "description": "The status of a transaction", "type": "string", "x-fdx-csdf-account-categories": [ "ANY" ], "enum": [ "PENDING", "POSTED" ] }, "UnitType": { "title": "Unit Type", "description": "The units of an investment transaction", "type": "string", "enum": [ "CURRENCY", "SHARES" ] } } }