diff --git a/404.html b/404.html index 20a89197..a610794c 100644 --- a/404.html +++ b/404.html @@ -1 +1 @@ -404: This page could not be found

404

This page could not be found.

\ No newline at end of file +404: This page could not be found

404

This page could not be found.

\ No newline at end of file diff --git a/_next/static/aYFseIZjDLVs8qZV3Na2S/_buildManifest.js b/_next/static/aYFseIZjDLVs8qZV3Na2S/_buildManifest.js new file mode 100644 index 00000000..b0da3345 --- /dev/null +++ b/_next/static/aYFseIZjDLVs8qZV3Na2S/_buildManifest.js @@ -0,0 +1 @@ +self.__BUILD_MANIFEST=function(s,e,i,t,a){return{__rewrites:{beforeFiles:[],afterFiles:[],fallback:[]},"/":[s,"static/chunks/pages/index-181effc6b40cc52a.js"],"/_error":["static/chunks/pages/_error-2280fa386d040b66.js"],"/_tmp":[s,"static/chunks/pages/_tmp-4f0d990f8b959eb4.js"],"/_tmp/api-versions":[s,"static/chunks/pages/_tmp/api-versions-4c51e3c28a939476.js"],"/_tmp/api-versions/five-dot-one":[e,i,s,t,a,"static/chunks/pages/_tmp/api-versions/five-dot-one-f85311f5244efad6.js"],"/_tmp/api-versions/five-dot-three":[e,i,s,t,a,"static/chunks/pages/_tmp/api-versions/five-dot-three-b60e97a7fe80ff35.js"],"/_tmp/api-versions/five-dot-two":[e,i,s,t,a,"static/chunks/pages/_tmp/api-versions/five-dot-two-781da308077818c3.js"],"/_tmp/api-versions/five-dot-zero":[e,i,s,t,a,"static/chunks/pages/_tmp/api-versions/five-dot-zero-bc63a7c5ea14f86e.js"],"/_tmp/api-versions/four-dot-six":[e,i,s,t,a,"static/chunks/pages/_tmp/api-versions/four-dot-six-884ed98b7d244314.js"],"/_tmp/api-versions/six-dot-zero":[e,i,s,t,a,"static/chunks/pages/_tmp/api-versions/six-dot-zero-61c6a52ced002b57.js"],"/_tmp/authentication":[s,"static/chunks/pages/_tmp/authentication-2ff17fd020943010.js"],"/_tmp/changelist":[s,"static/chunks/pages/_tmp/changelist-334b4084873ed192.js"],"/_tmp/example":[s,"static/chunks/pages/_tmp/example-209bde1c06fddf40.js"],"/_tmp/implementation-checklists":[s,"static/chunks/pages/_tmp/implementation-checklists-be617b8842d4e349.js"],"/_tmp/user-experience":[s,"static/chunks/pages/_tmp/user-experience-c2f017e391040bfe.js"],"/api-versions":[s,"static/chunks/pages/api-versions-bd2dbd158ce2a2d9.js"],"/api-versions/five-dot-one":[s,"static/chunks/pages/api-versions/five-dot-one-f9616236da9bf788.js"],"/api-versions/five-dot-three":[s,"static/chunks/pages/api-versions/five-dot-three-8f79f7495f65f273.js"],"/api-versions/five-dot-two":[s,"static/chunks/pages/api-versions/five-dot-two-eb847d75b4d7d316.js"],"/api-versions/five-dot-zero":[s,"static/chunks/pages/api-versions/five-dot-zero-456428bbbf686c47.js"],"/api-versions/four-dot-six":[s,"static/chunks/pages/api-versions/four-dot-six-ec835b0c3728ab3d.js"],"/api-versions/six-dot-zero":[s,"static/chunks/pages/api-versions/six-dot-zero-9fe7ab84b23756e8.js"],"/authentication":[s,"static/chunks/pages/authentication-98eab3a155ed6036.js"],"/changelist":[s,"static/chunks/pages/changelist-7ee7b245b9c3dcdd.js"],"/example":[s,"static/chunks/pages/example-b0b1f728df676c43.js"],"/implementation-checklists":[s,"static/chunks/pages/implementation-checklists-6bf6a5b86fb7fc96.js"],"/user-experience":[s,"static/chunks/pages/user-experience-e9a340bf28769535.js"],sortedPages:["/","/_app","/_error","/_tmp","/_tmp/api-versions","/_tmp/api-versions/five-dot-one","/_tmp/api-versions/five-dot-three","/_tmp/api-versions/five-dot-two","/_tmp/api-versions/five-dot-zero","/_tmp/api-versions/four-dot-six","/_tmp/api-versions/six-dot-zero","/_tmp/authentication","/_tmp/changelist","/_tmp/example","/_tmp/implementation-checklists","/_tmp/user-experience","/api-versions","/api-versions/five-dot-one","/api-versions/five-dot-three","/api-versions/five-dot-two","/api-versions/five-dot-zero","/api-versions/four-dot-six","/api-versions/six-dot-zero","/authentication","/changelist","/example","/implementation-checklists","/user-experience"]}}("static/chunks/839-b93a52da2b5ff45d.js","static/chunks/b19b3968-b8e0be8680e7a876.js","static/chunks/e82996df-95f350db17b0d318.js","static/chunks/534-3558d567ae999b3f.js","static/chunks/254-6b8cea82ffbca35f.js"),self.__BUILD_MANIFEST_CB&&self.__BUILD_MANIFEST_CB(); \ No newline at end of file diff --git a/_next/static/ct6fZLPZBFldOiResO6kY/_middlewareManifest.js b/_next/static/aYFseIZjDLVs8qZV3Na2S/_middlewareManifest.js similarity index 100% rename from _next/static/ct6fZLPZBFldOiResO6kY/_middlewareManifest.js rename to _next/static/aYFseIZjDLVs8qZV3Na2S/_middlewareManifest.js diff --git a/_next/static/ct6fZLPZBFldOiResO6kY/_ssgManifest.js b/_next/static/aYFseIZjDLVs8qZV3Na2S/_ssgManifest.js similarity index 100% rename from _next/static/ct6fZLPZBFldOiResO6kY/_ssgManifest.js rename to _next/static/aYFseIZjDLVs8qZV3Na2S/_ssgManifest.js diff --git a/_next/static/chunks/254-62fb25a4054de893.js b/_next/static/chunks/254-62fb25a4054de893.js deleted file mode 100644 index 27ddf83f..00000000 --- a/_next/static/chunks/254-62fb25a4054de893.js +++ /dev/null @@ -1 +0,0 @@ -(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[254],{3095:function(e,t,n){"use strict";n.d(t,{Z:function(){return l}});var o=n(5893),i=n(2933),a=n(1132),s=n.n(a),r=n(5697),c=n.n(r),p=n(6261),u={4.6:{openapi:"3.0.3",info:{version:"4.6.0",title:"FDX V4.6",description:"## FDX compliance\n\nThe Core Exchange API specifications are a subset of the Financial Data Exchange (FDX) API specification, the usage thereof (or any part thereof) constitutes acceptance of the FDX API\nLicense Agreement, which can be found at https://financialdataexchange.org/. The FDX API specification is distributed exclusively by FDX. Modifications to eliminate required or\nconditional elements prescribed in the FDX API Certification Use Cases will render any implementations using said modifications non-conformant with the FDX API Certification Use Cases.\nPlease note that building the FDX-compliant Core Exchange API and permitting Plaid to call your build constitutes acceptance of\nthe FDX end user license agreement, which can be found at https://financialdataexchange.org/.\nThe full FDX API standard specification is distributed exclusively by FDX.\n\n## Download the specification\n\nTo view this specification and documentation as an OpenAPI YAML file, see [the public Core Exchange Github repository](https://github.com/plaid/core-exchange/tree/main/versions).\n\nThis specification contains the following endpoints:\n\n - `/customers/current`\n\n - `/accounts`\n\n - `/accounts/{accountId}`\n\n - `/accounts/{accountId}/payment-networks`\n\n - `/accounts/{accountId}/contact`\n\n - `/accounts/{accountId}/transactions`\n",contact:{name:"Plaid support",url:"https://plaid.com/data-connectivity-core-exchange/",email:"dataconnectivity@plaid.com"}},servers:[{url:"https://api.your-organization.com/fdx/v4",description:"Financial Data Exchange V4.6 Core API"}],tags:[{name:"Personal Information",description:"Search and view customer or customers"},{name:"Account Information",description:"Search and view customer accounts"},{name:"Account Transactions",description:"Search and view account transactions"},{name:"Payment Networks Information",description:"Search and view account payment networks"}],paths:{"/accounts":{get:{operationId:"searchForAccounts",tags:["Account Information"],summary:"List all accounts",description:"Search and view customer accounts",security:[{openIdConnect:["Account"]},{oauth2:["Account"]}],parameters:[{name:"offset",in:"query",description:"Plaid receives this value from your organization's latest response in a paginated response, and returns it to in a new request to get the next page. Your organization omits `nextOffset` in the response to indicate the last page.\n",schema:{type:"string",example:"qwer123454q2f"}},{name:"limit",in:"query",description:"Number of elements that the API consumer wishes to receive. Plaid has a default limit of 100 elements. If this value differs from your organization's limit for the number of items to send in one response, then pick the lower of the two different limits and use the lower limit to define the number of items you send on each page of a paginated response. Plaid then gets the next page by making a new request with the opaque `nextOffset` field that your organization returned in the latest response, until your organization omits `nextOffset` in the response to indicate the last page.\n",schema:{type:"integer"}}],responses:{200:{description:"Array of accounts (Deposit Account, Investment Account, Loan Account, Line of Credit Account, Annuity Account, or Insurance Account)",content:{"application/json":{schema:{$ref:"#/components/schemas/AccountDescriptor"},examples:{"example-1":{value:{page:{nextOffset:"25"},accounts:[{depositAccount:{accountId:"depositAccount0000001",accountType:"CHECKING",accountNumberDisplay:"5820",productName:"Checking",nickname:"Main Checking",status:"OPEN",currency:{currencyCode:"USD"}}},{loanAccount:{accountId:"loanAccount0000001",accountType:"LOAN",accountNumberDisplay:"4704",productName:"Loan",nickname:"Primary Loan",status:"OPEN",currency:{currencyCode:"USD"}}},{locAccount:{accountId:"locAccount0000001",accountType:"LINEOFCREDIT",accountNumberDisplay:"8200",productName:"Line of Credit",nickname:"First plaidypus LOC",status:"OPEN",currency:{currencyCode:"USD"}}},{investmentAccount:{accountId:"investmentAccount0000001",accountType:"TAXABLE",accountNumberDisplay:"1050",productName:"Brokerage Account",nickname:"First plaidypus Brokerage",status:"OPEN",currency:{currencyCode:"USD"}}}]}}}}}}}}},"/accounts/{accountId}":{get:{operationId:"getAccount",tags:["Account Information"],summary:"Get detailed information for a specific account",description:"Get account balances, liabilities, and other information. Plaid uses this endpoint to:\n\n\n\nSee the response schema below for a full list of possible parameters for each account type.\n",security:[{openIdConnect:["Account"]},{oauth2:["Account"]}],parameters:[{name:"accountId",in:"path",description:"Account identifier, found in the `GET /accounts` endpoint response. Plaid expects the ID to be a different value from the account number.\n",required:!0,schema:{type:"string"}}],responses:{200:{description:"The full details of an investment, loan, deposit, or line of credit account",content:{"application/json":{schema:{$ref:"#/components/schemas/AccountWithDetails"}}}}}}},"/accounts/{accountId}/contact":{get:{operationId:"getAccountContact",tags:["Personal Information"],description:"Get contact information on the account.\n\nPlaid links contact information to accounts, rather than to users. Plaid consumes multiple holders and their contact information for the account, but doesn't attempt to correlate holders to their respective contact information. For more information about Plaid's identity model, see [Plaid Identity API](https://plaid.com/docs/api/products/identity/).\n",summary:"Get an account's contact information",parameters:[{name:"accountId",in:"path",description:"Account identifier, found in the `GET /accounts` endpoint response. Plaid expects the ID to be a different value from the account number.\n",required:!0,schema:{type:"string"}}],security:[{openIdConnect:["Customer"]},{oauth2:["Customer"]}],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:["Payment Networks Information"],description:"Get payment networks supported by an account, for example ACH (Automated Clearing House). For more information about how Plaid uses this information, see the [Plaid Auth API](https://plaid.com/docs/api/products/auth/).\n",summary:"Get payment networks supported by the account",security:[{openIdConnect:["Account"]},{oauth2:["Account"]}],parameters:[{name:"accountId",in:"path",description:"Account identifier, found in the `GET /accounts` endpoint response. Plaid expects the ID to be a different value from the account number.",required:!0,schema:{type:"string"}},{name:"offset",in:"query",description:"Plaid receives this value from your organization's latest response in a paginated response, and returns it to in a new request to get the next page. Your organization omits `nextOffset` in the response to indicate the last page.\n",schema:{type:"string",example:"qwer123454q2f"}},{name:"limit",in:"query",description:"Number of elements that the API consumer wishes to receive. Plaid has a default limit of 100 elements. If this value differs from your organization's limit for the number of items to send in one response, then pick the lower of the two different limits and use the lower limit to define the number of items you send on each page of a paginated response. Plaid then gets the next page by making a new request with the opaque `nextOffset` field that your organization returned in the latest response, until your organization omits `nextOffset` in the response to indicate the last page.\n",schema:{type:"integer"}}],responses:{200:{description:"Information required to execute a payment transaction against this account",content:{"application/json":{schema:{properties:{page:{$ref:"#/components/schemas/PageMetadata"},paymentNetworks:{type:"array",items:{$ref:"#/components/schemas/AccountPaymentNetwork"}}},required:["paymentNetworks"]},examples:{"example-1":{page:{nextOffset:25},paymentNetworks:[{bankId:"010088889",identifier:"1111222233335820",type:"US_ACH",transferIn:!0,transferOut:!0}]}}}}}}}},"/accounts/{accountId}/transactions":{get:{operationId:"searchForAccountTransactions",tags:["Account Transactions"],description:"List all account transactions. Plaid always queries this endpoint using a `startTime` and an `endTime`, for example, `/accounts/{accountId}/transactions?startTime=2022-01-30&endTime=2022-05-30`, and expects the time filters to be based on the `postedTimestamp`.\n\nPlaid consumes data from this endpoint for the following account types only:\n\n",summary:"Search for account transactions",security:[{openIdConnect:["Transactions"]},{oauth2:["Transactions"]}],parameters:[{name:"accountId",in:"path",description:"Account identifier, found in the `GET /accounts` endpoint response. Plaid expects the ID to be a different value from the account number.",required:!0,schema:{type:"string"}},{name:"startTime",in:"query",description:"Start time for use in retrieval of elements (ISO 8601). For transactions, Plaid expects this to filter by the `postedTimestamp`.",schema:{type:"string"}},{name:"endTime",in:"query",description:"End time for use in retrieval of elements (ISO 8601). For transactions, Plaid expects this to filter by the `postedTimestamp`.",schema:{type:"string"}},{name:"offset",in:"query",description:"Plaid receives this value from your organization's latest response in a paginated response, and returns it to in a new request to get the next page. Your organization omits `nextOffset` in the response to indicate the last page.\n",schema:{type:"string",example:"qwer123454q2f"}},{name:"limit",in:"query",description:"Number of elements that the API consumer wishes to receive. Plaid has a default limit of 100 elements. If this value differs from your organization's limit for the number of items to send in one response, then pick the lower of the two different limits and use the lower limit to define the number of items you send on each page of a paginated response. Plaid then gets the next page by making a new request with the opaque `nextOffset` field that your organization returned in the latest response, until your organization omits `nextOffset` in the response to indicate the last page.\n",schema:{type:"integer"}}],responses:{200:{description:"Paginated collection of transactions. Plaid consumes the following transaction types: InvestmentTransaction, DepositTransaction, LoanTransaction, or LocTransaction\n",content:{"application/json":{schema:{$ref:"#/components/schemas/Transactions"},examples:{"example-1":{value:{page:{nextOffset:"2"},transactions:[{depositTransaction:{checkNumber:1234,payee:"ACME llc",transactionId:"depositTransaction000000001",postedTimestamp:"2022-04-06T00:00:00.000Z",transactionTimestamp:"2022-04-05T00:00:00.000Z",description:"check for latest ACME invoice",debitCreditMemo:"DEBIT",status:"PENDING",amount:400}},{depositTransaction:{transactionId:"depositTransaction000000002",postedTimestamp:"2022-04-07T00:00:00.000Z",transactionTimestamp:"2022-04-07T00:00:00.000Z",description:"reconciliation/adjustment of bank statement error",debitCreditMemo:"DEBIT",status:"POSTED",amount:.8}}]}}}}}}}}},"/customers/current":{get:{operationId:"getCustomerInfo",tags:["Personal Information"],description:"Get the ID of the customer within the authorization scope.\n**Note:**\n",summary:"Get current authenticated customer ID",security:[{openIdConnect:[]},{oauth2:[]}],responses:{200:{description:"Data describing current authenticated customer",content:{"application/json":{schema:{$ref:"#/components/schemas/CustomerWithId"},examples:{"example-1":{value:{customerId:"someLongTermUniqueIDString"}}}}}}}}}},components:{securitySchemes:{openIdConnect:{type:"openIdConnect",description:"This API uses an [OpenID Connect (OIDC) authentication flow](/core-exchange/authentication) and accepts the resulting [access token](/core-exchange/authentication#response-parameters) as a bearer token. For example, `curl -H 'Authorization: Bearer '`.\n",openIdConnectUrl:"https://www.your-organization.com/.well-known/openid-configuration"},oauth2:{type:"oauth2",description:"This API uses an [OAuth2.0 authorization code flow](https://auth0.com/docs/get-started/authentication-and-authorization-flow/authorization-code-flow) and accepts the resulting access token as a bearer token. For example, `curl -H 'Authorization: Bearer '`.\n",flows:{authorizationCode:{authorizationUrl:"https://www.your-organization.com/authorize",tokenUrl:"https://www.your-organization.com/token",scopes:{Account:"(optional) Read account data",Customer:"(optional) Read customer data",Transactions:"(optional) Read transaction data"}}}}},schemas:{PageMetadata:{title:"Page Metadata",description:"Contains opaque identifier, `nextoffset`, for paginated result sets. The `nextOffset` ID doesn't need to be numeric or have any specific pattern. In other words, your organization can implement this however you prefer. The presence of this offset indicates that there's at least one more page of data available. The absence of this offset indicates that there are no more pages of data left in this paginated array. The API consumer returns this in the `offset` parameter in a new request to get the next page in the response array.\n",type:"object",properties:{nextOffset:{type:"string",example:"qwer123454q2f",description:"Opaque offset identifier."}}},PaginatedArray:{title:"Paginated Array",description:"Base class for results that may be paginated",type:"object",properties:{page:{$ref:"#/components/schemas/PageMetadata"}}},Accounts:{title:"Accounts entity",description:"An optionally paginated array of accounts",type:"object",allOf:[{$ref:"#/components/schemas/PaginatedArray"},{type:"object",properties:{accounts:{type:"array",description:"An array of accounts. May include accounts of any of the following types: [deposit](#deposit-account), [investment](#investment-account), [line of credit](#line-of-credit-account), [loan](#loan-account)\n\n**Note:** Each object in the accounts array is expected to contain at least one account type.\n",minItems:1}},required:["accounts"]}]},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:{$ref:"#/components/schemas/String64",description:"State or province"},postalCode:{type:"string",maxLength:10,description:"Postal code"},country:{$ref:"#/components/schemas/Iso3166CountryCode",description:"Country code"}},required:["line1","city","country"]},CustomerWithId:{title:"Customer entity.",description:"Represents a customer. Plaid-specific schema created to hold one property, the `customerId` property of the FDX `Customer` schema.\n",type:"object",properties:{customerId:{$ref:"#/components/schemas/Identifier",description:"Long-term persistent identity of the customer. This identity must be unique within your organization. Plaid consumes this customer ID if your organization uses OAuth2 instead of OIDC to secure the API. Plaid expects your organization to issue the ID as a consistent, static, opaque, unique identifier for the user\n"}},required:["customerId"]},CustomerWithName:{title:"Customer entity",description:"Represents a customer. Plaid-specific schema created to hold one property, the `name` property of the FDX `Customer` schema.\n",type:"object",properties:{name:{$ref:"#/components/schemas/CustomerName"}},required:["name"]},CustomerName:{title:"Customer Name entity",description:"The name of an individual in their role as a customer. Plaid expects at least one populated name field. If any field is missing (for example, no first name), then you respond with an empty string for that field.\n",type:"object",allOf:[{$ref:"#/components/schemas/IndividualName"},{type:"object",properties:{prefix:{description:"Name prefix, e.g. Mr.",type:"string"}}}]},DateString:{title:"Date String",description:"ISO 8601 full-date in format 'YYYY-MM-DD' according to [IETF RFC3339](https://xml2rfc.tools.ietf.org/public/rfc/html/rfc3339.html#anchor14)",type:"string",format:"date",maxLength:10,example:"2021-07-15"},DeliveryAddress:{title:"Delivery Address",description:"A delivery address and its location type",type:"object",allOf:[{$ref:"#/components/schemas/Address"}]},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"}},required:["first","last"]},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,description:"Country calling codes defined by ITU-T recommendations E.123 and E.164"},number:{type:"string",maxLength:15,pattern:"\\d+",description:"Telephone subscriber number defined by ITU-T recommendation E.164"}},required:["number","type"]},AccountContact:{title:"Account Contact entity",description:"Details used to verify an account",type:"object",properties:{holders:{type:"array",items:{$ref:"#/components/schemas/AccountHolder"},minItems:1,description:"Owners of the account. Note that while the [FDX specification](https://financialdataexchange.org) enables associating holders and their contact information in the full `AccountHolder` schema, Plaid doesn't consume these associations. Instead, Plaid consumes limited information for each `AccountHolder` and doesn't associate contact information such as emails, addresses, or telephone numbers to account holders. For more information about Plaid's data model for account contact information, see [Identity](https://plaid.com/docs/api/products/identity/).\n",example:[{relationship:"SECONDARY",name:{first:"Ernest",middle:"Miller",last:"Hemingway",suffix:"IV"}},{relationship:"PRIMARY_JOINT",name:{first:"Maya",last:"Angelou",middle:"Annie"}}]},emails:{type:"array",items:{type:"string"},minItems:1,description:"Email addresses associated with the account.\n",example:["ernest.m.hemingway@domain.tld","m.angelou@domain.tld"]},addresses:{type:"array",items:{$ref:"#/components/schemas/DeliveryAddress"},minItems:1,description:"Physical mail addresses associated with the account.\n",example:[{line1:"1850 N Clark St",line2:"Apartment 103",city:"Chicago",region:"IL",postalCode:"60614",country:"US"},{line1:"2014 N Main St",city:"San Francisco",region:"CA",postalCode:"94105",country:"US"}]},telephones:{type:"array",items:{$ref:"#/components/schemas/TelephoneNumber"},minItems:1,description:"Telephone numbers associated with the account.\n",example:[{type:"HOME",country:"1",number:"3127771926"},{type:"CELL",country:"53",number:"45915607"},{type:"HOME",country:"1",number:"4157771926"}]}},required:["holders","emails","addresses","telephones"]},AccountDescriptor:{title:"Account Descriptor entity",description:"This descriptor provides minimal information about the account for use in lightweight arrays",type:"object",properties:{accountId:{description:"Long-term persistent identity of the account, though not an account number. This identity must be unique within your organization.\n",$ref:"#/components/schemas/Identifier"},accountNumberDisplay:{description:"Account display number for the end user's handle at the owning financial institution. Plaid expects that the last 4 digits of this masked number correspond to the last 4 digits of the account number.\n",type:"string",example:"4321"},productName:{type:"string",description:"Marketed product name for this account. Used in UIs to assist in account selection"},nickname:{description:"Name given by the user. Used in UIs to assist in account selection. Plaid recommends returning this only if the account permits user renaming.\n",type:"string"},status:{type:"string",description:"Account status",enum:["OPEN","CLOSED","PENDINGOPEN","PENDINGCLOSE","DELINQUENT","PAID","NEGATIVECURRENTBALANCE"]},currency:{$ref:"#/components/schemas/Currency",description:"Account currency"}},required:["accountId","productName","status","currency"]},AccountHolder:{title:"Account Holder entity",type:"object",allOf:[{$ref:"#/components/schemas/CustomerWithName"},{type:"object",properties:{relationship:{$ref:"#/components/schemas/AccountHolderRelationship",description:"Customer's relationship to the account"}}}]},AccountPaymentNetwork:{title:"Payment Network Supported by Account",description:"This provides details required to execute a transaction against the account within the payment network",type:"object",properties:{bankId:{type:"string",description:"Bank identifier used by the payment network ie. Routing Number"},identifier:{type:"string",description:"The number used to identify the account within the payment network."},type:{$ref:"#/components/schemas/PaymentNetworkType"},transferIn:{type:"boolean",description:"Can transfer funds to the account using this information. Plaid expect that this value represents the account's current ability to be credited through a payment network.\nPlaid recommends dynamically updating this value, for example to represent if the account is locked or not.\n\n**Note:** Both `transferIn` and `transferOut` must be `true` in order for the account to support ACH.\n"},transferOut:{type:"boolean",description:"Can transfer funds from the account using this information. Plaid expect that this value represents the account's current ability to be debited through a payment network.\nPlaid recommends dynamically updating this value, for example to represent if the account is locked or not.\n\n**Note:** Both `transferIn` and `transferOut` must be `true` in order for the account to support ACH.\n"}},required:["bankId","identifier","type","transferIn","transferOut"]},AccountWithDescriptor:{title:"Account With Descriptor entity",description:"This provides an instance of an account without full details",type:"object",anyOf:[{type:"object",title:"Deposit Account",properties:{depositAccount:{$ref:"#/components/schemas/DepositAccountDescriptor",description:"A deposit account. For example, a checking, savings or money market account.\nPlaid consumes more detailed information for `CHECKING` and `SAVINGS` accounts.\n\nThe `accountType` field for deposit accounts may be set to any of the following:\n\n\n"}},required:["depositAccount"],additionalProperties:!1},{type:"object",title:"Loan Account",properties:{loanAccount:{$ref:"#/components/schemas/LoanAccountDescriptor",description:"A loan account. For example, mortgage, student loan or auto loan.\nPlaid consumes more detailed information for `MORTGAGE` and `STUDENTLOAN` accounts.\n\nThe `accountType` field for loan accounts may be set to any of the following:\n\n\n"}},required:["loanAccount"],additionalProperties:!1},{type:"object",title:"Line of Credit Account",properties:{locAccount:{$ref:"#/components/schemas/LocAccountDescriptor",description:"A line-of-credit account. For example, a credit card or home equity line of credit.\nPlaid consumes more detailed information for `CREDITCARD` accounts.\n\nThe `accountType` field for line of credit accounts may be set to any of the following:\n\n\n"}},required:["locAccount"],additionalProperties:!1},{type:"object",title:"Investment Account",properties:{investmentAccount:{$ref:"#/components/schemas/InvestmentAccountDescriptor",description:"An investment account. For example, a 401K or IRA.\nPlaid consumes the same details for all investment accounts.\n\nThe `accountType` field for investment accounts may be set to any of the following:\n\n\n"}},required:["investmentAccount"],additionalProperties:!1},{type:"object",title:"Insurance Account",properties:{insuranceAccount:{$ref:"#/components/schemas/InsuranceAccountDescriptor",description:"An insurance account. For example, whole life insurance or short-term disability.\n\nThe `accountType` field for insurance accounts may be set to any of the following:\n\n\n"}},required:["insuranceAccount"],additionalProperties:!1},{type:"object",title:"Annuity Account",properties:{annuityAccount:{$ref:"#/components/schemas/AnnuityAccountDescriptor",description:"An annuity account. For example, a fixed or variable annuity account.\n\nThe `accountType` field for annuity accounts may be set to any of the following:\n\n\n"}},required:["annuityAccount"],additionalProperties:!1}]},AccountWithDetails:{title:"Account With Details entity",description:"An account with full details",type:"object",oneOf:[{type:"object",title:"Deposit Account",properties:{depositAccount:{$ref:"#/components/schemas/DepositAccount"}},required:["depositAccount"],additionalProperties:!1},{type:"object",title:"Investment Account",properties:{investmentAccount:{$ref:"#/components/schemas/InvestmentAccount"}},required:["investmentAccount"],additionalProperties:!1},{type:"object",title:"Loan Account",properties:{loanAccount:{$ref:"#/components/schemas/LoanAccount"}},required:["loanAccount"],additionalProperties:!1},{type:"object",title:"Line of Credit Account",properties:{locAccount:{$ref:"#/components/schemas/LocAccount"}},required:["locAccount"],additionalProperties:!1}]},AnnuityAccountDescriptor:{allOf:[{$ref:"#/components/schemas/AccountDescriptor"},{type:"object",properties:{accountType:{$ref:"#/components/schemas/AnnuityAccountType"}},required:["accountType"]}],"x-examples":[{annuityAccount:{accountId:"annuityAccount0000001",accountType:"FIXEDANNUITY",accountNumberDisplay:"53901",productName:"Fixed Annuity",nickname:"Fixed annuity 1",status:"OPEN",currency:{currencyCode:"USD"}}}]},Currency:{title:"Currency entity",description:"Represents an international currency.",type:"object",properties:{currencyCode:{$ref:"#/components/schemas/Iso4217Code",description:"ISO 4217 currency code"}},required:["currencyCode"]},DepositAccount:{allOf:[{$ref:"#/components/schemas/AccountDescriptor"},{type:"object",properties:{accountType:{$ref:"#/components/schemas/DepositAccountType"}},required:["accountType"]}]},DepositAccountDescriptor:{title:"Deposit Account entity",description:'Full details of a deposit account. Plaid consumes the same information for all types of deposit accounts.\nPlaid expects a decimal amount with two places (to represent fractional values of the base currency) for all monetary amounts. For example, `"currentBalance": 192.00`.\n\nThe `accountType` field for deposit accounts may be set to any of the [account types](#deposit-account-types) listed below.\n',type:"object",properties:{depositAccount:{$ref:"#/components/schemas/DepositAccount"}},required:["depositAccount"],"x-examples":[{depositAccount:{accountId:"depositAccount0000001",accountType:"CHECKING",accountNumberDisplay:"5820",productName:"Checking",nickname:"Main Checking",status:"OPEN",currency:{currencyCode:"USD"}}}]},DepositAccountFull:{title:"Deposit Account entity",description:'Full details of a deposit account. Plaid consumes the same information for all types of deposit accounts.\nPlaid expects a decimal amount with two places (to represent fractional values of the base currency) for all monetary amounts. For example, `"currentBalance": 192.00`.\n\nThe `accountType` field for deposit accounts may be set to any of the [account types](#deposit-account-types) listed below.\n',type:"object",properties:{depositAccount:{$ref:"#/components/schemas/DepositAccount"}},required:["depositAccount"],"x-examples":[{depositAccount:{accountId:"someLongTermUniqueIDString",accountNumberDisplay:"4321",productName:"string",nickname:"string",status:"CLOSED",currency:{currencyCode:"AED"},accountType:"CHECKING",currentBalance:0,availableBalance:0}}]},DepositTransaction:{title:"Deposit Transaction entity",description:"A transaction on a deposit account type",type:"object",allOf:[{$ref:"#/components/schemas/Transaction"},{type:"object",properties:{payee:{$ref:"#/components/schemas/String255",description:"Payee name"},checkNumber:{type:"integer",description:"Check number. Plaid expects this solely if the transaction involves a check.\n"}}}],"x-examples":[{transactionId:"depositTransaction000000001",transactionTimestamp:"2022-04-05T00:00:00.000Z",description:"check for latest ACME invoice",debitCreditMemo:"DEBIT",status:"PENDING",amount:400,payee:"Acme LLC",checkNumber:57448}]},Holding:{title:"Holding entity",description:"A holding in an investment account.\nPlaid maps the `holding` and the `investmentAccount` FDX models to its securities models, which hold universal information like the ticker symbol, and to its holdings models, which hold account-specific information like balances. For more information, see [Plaid investments](https://plaid.com/docs/investments/#securities-and-holdings).\n",allOf:[{type:"object",properties:{securityId:{description:"If you return the `securityId` for a holding, Plaid uses it to look up the closing price from NYSE Group Security Master. If you don't return `securityId` for a holding that uses security IDs (not recommended), Plaid uses the `unitPrice` as the closing price.\nThis field, along with `securityIdType` are **required** unless `symbol` is provided.\n**Note:** If `securityId` is provided, `securityIdType` is required.\n",type:"string"},securityIdType:{$ref:"#/components/schemas/SecurityIdType"},holdingName:{type:"string",description:"Holding name or security name"},holdingType:{$ref:"#/components/schemas/HoldingType"},holdingSubType:{$ref:"#/components/schemas/HoldingSubType",description:"MONEYMARKET, CASH"},symbol:{type:"string",description:"Ticker / Market symbol\nThis field is **required** unless both `securityId` and `securityIdType` are provided."},purchasedPrice:{type:"number",description:"Price of holding at the time of purchase. Plaid determines an approximate [cost basis](https://plaid.com/docs/api/products/investments/#investments-holdings-get-response-holdings-cost-basis) using the purchase price and the number of units. Plaid cannot take fees into account to determine the cost basis because the FDX holding schema doesn't include fees.\n"},currentUnitPrice:{type:"number",description:"Current unit price. Plaid uses this as the [institution_price](https://plaid.com/docs/api/products/investments/#investments-holdings-get-response-holdings-institution-price). Plaid falls back to using this as the [close price](https://plaid.com/docs/api/products/investments/#investments-holdings-get-response-securities-close-price) if you don't return `securityId` for holdings involving securities.\n"},currentUnitPriceDate:{$ref:"#/components/schemas/Timestamp",description:"Current unit price as of date\n\nISO 8601 date-time in format `YYYY-MM-DDThh:mm:ss.nnn[Z|[+|-]hh:mm]` according to [IETF RFC3339](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6)\n"},units:{type:"number",description:"Plaid requires this field for holdings and transactions involving securities.\nFor security-based actions other than stock splits, quantity.\nShares for stocks, mutual funds, and others. Face value for bonds.\nContracts for options.\n\n**Note:** This field is required if the transaction involves a security.\n"},marketValue:{type:"number",description:"Market value at the time of data retrieved"},faceValue:{type:"number",description:"Required for bonds. Face value at the time of data retrieved. If this isn't present, Plaid assumes the holding isn't a bond and falls back to `marketValue`.\n"},cashAccount:{type:"boolean",description:"If true, indicates that this holding is used to maintain proceeds from sales, dividends, and other cash postings to the investment account. If you don't set a value for `isCashEquivalent` in the `fiAttributes` array, then Plaid uses `cashAccount` in determining the [is_cash_equivalent](https://plaid.com/docs/api/products/investments/#investments-holdings-get-response-securities-is-cash-equivalent) status.\n"},currency:{$ref:"#/components/schemas/Currency",description:"Currency information if it is different from Account entity"},fiAttributes:{type:"array",description:"Array of financial institution-specific attributes. Plaid recommends including a value for [is_cash_equivalent](https://plaid.com/docs/api/products/investments/#investments-holdings-get-response-securities-is-cash-equivalent) property in this array. Plaid accepts `isCashEquivalent` as the attribute name and a string value of `true` or `false`. If you return a value for `isCashEquivalent`, then return the same value for `cashAccount` as a boolean.\n",items:{$ref:"#/components/schemas/FiAttribute"}}},required:["cashAccount","marketValue"]}]},InsuranceAccountDescriptor:{allOf:[{$ref:"#/components/schemas/AccountDescriptor"},{type:"object",properties:{accountType:{$ref:"#/components/schemas/InsuranceAccountType"}},required:["accountType"]}],"x-examples":[{insuranceAccount:{accountId:"insuranceAccount0000001",accountType:"LONGTERMDISABILITY",accountNumberDisplay:"5820",productName:"Long-term disability",nickname:"Long term",status:"OPEN",currency:{currencyCode:"USD"}}}]},InvestmentAccount:{allOf:[{$ref:"#/components/schemas/AccountDescriptor"},{type:"object",properties:{accountType:{$ref:"#/components/schemas/InvestmentAccountType"},availableCashBalance:{type:"number",description:"Cash balance across all sub-accounts. Plaid expects that this includes sweep funds.\n"},balanceAsOf:{description:"As-of date of balances.\n\nISO 8601 date-time in format `YYYY-MM-DDThh:mm:ss.nnn[Z|[+|-]hh:mm]` according to [IETF RFC3339](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6)\n",$ref:"#/components/schemas/Timestamp"},currentValue:{type:"number",description:"Total current value of all investments\n"},holdings:{type:"array",description:"Holdings in the investment account\nPlaid maps the `holding` and the `investmentAccount` FDX models to its securities models, which hold universal information like the ticker symbol, and to its holdings models, which hold account-specific information like balances. For more information, see [Plaid investments](https://plaid.com/docs/investments/#securities-and-holdings).\n",items:{$ref:"#/components/schemas/Holding"}}},required:["accountType"]}]},InvestmentAccountDescriptor:{description:"The type of investment account. For example, a 401K or IRA. Plaid consumes the same details for all investment accounts. The `accountType` field for investment accounts may be set to any of the [account types](#investment-account-types) listed below.\n",type:"object",properties:{investmentAccount:{$ref:"#/components/schemas/InvestmentAccount"}},required:["investmentAccount"],"x-examples":[{investmentAccount:{accountId:"investmentAccount0000001",accountType:"TAXABLE",accountNumberDisplay:"1050",productName:"Brokerage Account",nickname:"First plaidypus Brokerage",status:"OPEN",currency:{currencyCode:"USD"}}}]},InvestmentAccountFull:{allOf:[{$ref:"#/components/schemas/InvestmentAccount"},{type:"object",properties:{availableCashBalance:{type:"number",description:"Cash balance across all sub-accounts. Plaid expects that this includes sweep funds."},balanceAsOf:{description:"As-of date of balances.\n\nISO 8601 date-time in format `YYYY-MM-DDThh:mm:ss.nnn[Z|[+|-]hh:mm]` according to [IETF RFC3339](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6)\n",$ref:"#/components/schemas/Timestamp"},currentValue:{type:"number",description:"Total current value of all investments."},holdings:{type:"array",description:"Holdings in the investment account.\nPlaid maps the `holding` and the `investmentAccount` FDX models to its securities models, which hold universal information like the ticker symbol, and to its holdings models, which hold account-specific information like balances. For more information, see [Plaid investments](https://plaid.com/docs/investments/#securities-and-holdings).\n",items:{$ref:"#/components/schemas/Holding"}}},required:["availableCashBalance","currentValue"]},{"x-examples":[{investmentAccount:{accountId:"investmentAccount0000001",accountType:"TAXABLE",accountNumberDisplay:"1050",productName:"Brokerage Account",nickname:"First plaidypus Brokerage",status:"OPEN",currency:{currencyCode:"USD"},availableCashBalance:4302.39,balanceAsOf:null,currentValue:4302.39,holdings:[{securityId:"string",securityIdType:"CINS",holdingName:"string",holdingType:"ANNUITY",holdingSubType:"CASH",symbol:"MTSN",purchasedPrice:12.5,currentUnitPrice:34.2,currentUnitPriceDate:"2024-07-15",units:100,marketValue:3400,faceValue:3400,cashAccount:!0,currency:{currencyCode:"AED"},fiAttributes:[{name:"string",value:"string"}]}]}}]}]},InvestmentTransaction:{title:"Investment Transaction entity",description:"A transaction on an investment account.\nIn addition to the required fields in the base `Transaction` model, Plaid requires the following fields\nfor all transactions on an investment account:\n\n* `fees`\n* `transactionType`\n\nIf the transaction involves a security, Plaid additionally requires the following fields:\n\n* `unitPrice`\n* `units`\n* Either of the following:\n - `symbol`\n - `securityId` and `securityIdType`\n",type:"object",allOf:[{$ref:"#/components/schemas/Transaction"},{type:"object",properties:{transactionType:{$ref:"#/components/schemas/InvestmentTransactionType"},securityId:{type:"string",description:"If you return the `securityId` for a holding, Plaid uses it to look up the closing price from NYSE Group Security Master. If you don't return `securityId` for a holding that uses security IDs (not recommended), Plaid uses the `unitPrice` as the closing price.\nThis field, along with `securityIdType` are **required** unless `symbol` is provided.\n**Note:** If `securityId` is provided, `securityIdType` is required.\n"},securityIdType:{$ref:"#/components/schemas/SecurityIdType"},securityType:{$ref:"#/components/schemas/SecurityType",description:"STOCK, MUTUALFUND, DEBT, OPTION, SWEEP, OTHER, BOND"},symbol:{type:"string",description:"Ticker symbol\nThis field is **required** unless both `securityId` and `securityIdType` are provided."},commission:{type:"number",description:"Plaid expects that your organization includes a value for commission if the commission isn't included in `fees`.\n"},fees:{type:"number",description:"Fees applied to the trade. Plaid expects that the `fees` include the commission, unless your organization separately provides a value for `commission`.\n"},unitPrice:{type:"number",description:"Unit price. Plaid uses this as the [price](https://plaid.com/docs/api/products/investments/#investments-transactions-get-response-investment-transactions-price).\nPlaid falls back to using this as the [close price](https://plaid.com/docs/api/products/investments/#investments-transactions-get-response-securities-close-price)\nif you don't return `securityId` for transactions involving securities.\n\n**Note:** This field is required if the transaction involves a security.\n"},units:{type:"number",description:"Plaid requires this field for holdings and transactions involving securities.\nFor security-based actions other than stock splits, quantity.\nShares for stocks, mutual funds, and others. Face value for bonds.\nContracts for options.\n\n**Note:** This field is required if the transaction involves a security.\n"},unitType:{$ref:"#/components/schemas/UnitType",description:"SHARES, CURRENCY"},fiAttributes:{type:"array",description:"Array of financial institution-specific attributes. Plaid recommends including a value for [is_cash_equivalent](https://plaid.com/docs/api/products/investments/#investments-transactions-get-response-securities-is-cash-equivalent) property in this array. Plaid accepts `isCashEquivalent` as the attribute name and a string value of `true` or `false`.\n",items:{$ref:"#/components/schemas/FiAttribute"}}},required:["fees","transactionType"]}],"x-examples":[{transactionId:"investmentTransaction000000001",transactionTimestamp:"2022-04-05T00:00:00.000Z",description:"check for latest ACME invoice",debitCreditMemo:"DEBIT",status:"PENDING",amount:400,transactionType:"CHECK",securityId:"APW881",securityIdType:"CMC",securityType:"DEBT",symbol:"MSFT",commission:.1,unitPrice:15.3,units:1e3,unitType:"SHARES",fiAttributes:[{name:"Vanguard",value:80}]}]},LoanAccount:{title:"Loan Account entity",type:"object",allOf:[{$ref:"#/components/schemas/AccountDescriptor"},{type:"object",properties:{accountType:{$ref:"#/components/schemas/LoanAccountType"},accountNumber:{type:"string",example:"loanAccount0000001",description:"Full account number for the end user's handle for the account at the owning institution\nRequired for accountType 'MORTGAGE'\n"},principalBalance:{type:"number",example:580303.95,description:"Principal balance of loan"},escrowBalance:{type:"number",example:3400.61,description:"Escrow balance of loan"},originalPrincipal:{type:"number",example:650400,description:"Original principal of loan"},originatingDate:{$ref:"#/components/schemas/Timestamp",description:"Loan origination date\n\nISO 8601 date-time in format `YYYY-MM-DDThh:mm:ss.nnn[Z|[+|-]hh:mm]` according to [IETF RFC3339](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6)\n"},loanTerm:{type:"integer",example:360,description:"Term of loan in months"},nextPaymentAmount:{type:"number",example:2483.12,description:"Amount of next payment"},nextPaymentDate:{$ref:"#/components/schemas/Timestamp",description:"Date of next payment\n\nISO 8601 date-time in format `YYYY-MM-DDThh:mm:ss.nnn[Z|[+|-]hh:mm]` according to [IETF RFC3339](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6)\n"},lastPaymentAmount:{type:"number",example:2483.12,description:"Last payment amount"},lastPaymentDate:{$ref:"#/components/schemas/Timestamp",description:"Last payment date\n\nISO 8601 date-time in format `YYYY-MM-DDThh:mm:ss.nnn[Z|[+|-]hh:mm]` according to [IETF RFC3339](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6)\n"},maturityDate:{$ref:"#/components/schemas/Timestamp",description:"Maturity date\n\nISO 8601 date-time in format `YYYY-MM-DDThh:mm:ss.nnn[Z|[+|-]hh:mm]` according to [IETF RFC3339](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6)\n"},interestPaidYearToDate:{type:"number",description:"Interest paid year to date"},interestRate:{type:"number",example:.075,description:"The account's interest rate"},interestRateType:{$ref:"#/components/schemas/InterestRateType"}},required:["principalBalance","interestRate","interestRateType","accountType"]}]},LoanAccountDescriptor:{description:'Full details of a loan account. The `accountType` field for loan accounts may be set to any of the [account types](#loan-account-types) listed below.\n\nPlaid only consumes the `MORTGAGE` and `STUDENTLOAN` types for its [Liabilities API](https://plaid.com/docs/api/products/liabilities/). For other loan account types Plaid consumes account details and transactions.\nPlaid consumes all loan account information as returned in the `GET /accounts` endpoint, as well as the additional information listed below:\n\nRequired for all loan accounts:\n* `principalBalance`\n* `interestRate`\n* `interestRateType`\n\nOptional fields for `STUDENTLOAN` accounts:\n* `interestPaidYearToDate`\n* `lastPaymentAmount`\n* `lastPaymentDate`\n* `maturityDate`\n* `nextPaymentDate`\n* `originalPrincipal`\n* `originatingDate`\n\nRequired for `MORTGAGE` accounts:\n* `accountNumber`\n\nOptional fields for `MORTGAGE` accounts:\n* `escrowBalance`\n* `interestPaidYearToDate`\n* `lastPaymentAmount`\n* `lastPaymentDate`\n* `loanTerm`\n* `maturityDate`\n* `nextPaymentAmount`\n* `nextPaymentDate`\n* `originalPrincipal`\n* `originatingDate`\n\nPlaid expects a decimal amount with two places (to represent fractional values of the base currency) for all monetary amounts. For example, `"escrowBalance": 192.00`.\n',type:"object",properties:{loanAccount:{$ref:"#/components/schemas/LoanAccount"}},required:["loanAccount"],"x-examples":[{loanAccount:{accountId:"loanAccount0000001",accountType:"LOAN",accountNumberDisplay:"4704",productName:"Loan",nickname:"Primary Loan",status:"OPEN",currency:{currencyCode:"USD"}}}]},LoanAccountFull:{description:'Full details of a loan account. The `accountType` field for loan accounts may be set to any of the [account types](#loan-account-types) listed below.\n\nPlaid only consumes the `MORTGAGE` and `STUDENTLOAN` types for its [Liabilities API](https://plaid.com/docs/api/products/liabilities/). For other loan account types Plaid consumes account details and transactions.\nPlaid consumes all loan account information as returned in the `GET /accounts` endpoint, as well as the additional information listed below:\n\nRequired for all loan accounts:\n* `principalBalance`\n* `interestRate`\n* `interestRateType`\n\nOptional fields for `STUDENTLOAN` accounts:\n* `interestPaidYearToDate`\n* `lastPaymentAmount`\n* `lastPaymentDate`\n* `maturityDate`\n* `nextPaymentDate`\n* `originalPrincipal`\n* `originatingDate`\n\nRequired for `MORTGAGE` accounts:\n* `accountNumber`\n\nOptional fields for `MORTGAGE` accounts:\n* `escrowBalance`\n* `interestPaidYearToDate`\n* `lastPaymentAmount`\n* `lastPaymentDate`\n* `loanTerm`\n* `maturityDate`\n* `nextPaymentAmount`\n* `nextPaymentDate`\n* `originalPrincipal`\n* `originatingDate`\n\nPlaid expects a decimal amount with two places (to represent fractional values of the base currency) for all monetary amounts. For example, `"escrowBalance": 192.00`.\n',type:"object",properties:{loanAccount:{$ref:"#/components/schemas/LoanAccount"}},required:["loanAccount"],"x-examples":[{loanAccount:{accountId:"someLongTermUniqueIDString",accountNumberDisplay:"4321",productName:"string",nickname:"string",status:"CLOSED",currency:{currencyCode:"AED"},accountType:"AUTOLOAN",accountNumber:"string",principalBalance:0,escrowBalance:0,originalPrincipal:0,originatingDate:"2021-07-15",loanTerm:0,nextPaymentAmount:0,nextPaymentDate:"2021-07-15",lastPaymentAmount:0,lastPaymentDate:"2021-07-15",maturityDate:"2021-07-15",interestPaidYearToDate:0,interestRate:0,interestRateType:"FIXED"}}]},LoanTransaction:{title:"Loan Transaction entity",description:"A transaction on a loan account",type:"object",allOf:[{$ref:"#/components/schemas/Transaction"},{type:"object",properties:{transactionType:{$ref:"#/components/schemas/LoanTransactionType"}}}],"x-examples":[{transactionId:"loanTransaction000000001",transactionTimestamp:"2022-04-05T00:00:00.000Z",description:"latest ACME invoice",debitCreditMemo:"CREDIT",status:"PENDING",amount:400}]},LocAccount:{type:"object",allOf:[{$ref:"#/components/schemas/AccountDescriptor"},{type:"object",properties:{accountType:{$ref:"#/components/schemas/LocAccountType"},creditLine:{type:"number",description:"Credit limit"},availableCredit:{type:"number",description:"Available credit. Required for all accountTypes except for `CHARGE`"},nextPaymentAmount:{type:"number",description:"Amount of next payment"},nextPaymentDate:{$ref:"#/components/schemas/Timestamp",description:"Due date of next payment\n\nISO 8601 date-time in format `YYYY-MM-DDThh:mm:ss.nnn[Z|[+|-]hh:mm]` according to [IETF RFC3339](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6)\n"},principalBalance:{type:"number",description:"Principal balance"},currentBalance:{type:"number",description:"Current balance of the line of credit"},minimumPaymentAmount:{type:"number",description:"Minimum payment amount"},lastPaymentAmount:{type:"number",description:"Last payment amount"},lastPaymentDate:{$ref:"#/components/schemas/Timestamp",description:"Last payment date\n\nISO 8601 date-time in format `YYYY-MM-DDThh:mm:ss.nnn[Z|[+|-]hh:mm]` according to [IETF RFC3339](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6)\n"},pastDueAmount:{type:"number",description:"Amount owed that the account holder failed to pay on the due date"},lastStmtBalance:{type:"number",description:"Last statement balance"},lastStmtDate:{$ref:"#/components/schemas/Timestamp",description:"Last Statement Date\n\nISO 8601 date-time in format `YYYY-MM-DDThh:mm:ss.nnn[Z|[+|-]hh:mm]` according to [IETF RFC3339](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6)\n"},purchasesApr:{type:"number",description:"Purchases APR"},advancesApr:{type:"number",description:"Advances APR"}},required:["currentBalance","accountType"]}]},LocAccountDescriptor:{description:'Full details of a line of credit account. The `accountType` field for line of credit accounts may be set to any of the [account types](#loc-account-types) listed below.\n\nPlaid may consume all the parameters returned by the `GET /accounts` endpoint:\n\n* `availableCredit`\n* `creditLine`\n* `currentBalance`\n\nAdditionally, for the `CREDITCARD` accountType, Plaid consumes the previous information plus the following for its liabilities product:\n\n* `advancesApr`\n* `lastPaymentAmount`\n* `lastPaymentDate`\n* `lastStmtBalance`\n* `lastStmtDate`\n* `minimumPaymentAmount`\n* `nextPaymentDate`\n* `purchasesApr`\nPlaid expects a decimal amount with two places (to represent fractional values of the base currency) for all monetary amounts. For example, `"currentBalance": 192.00`.\n',type:"object",properties:{locAccount:{$ref:"#/components/schemas/LocAccount"}},required:["locAccount"],"x-examples":[{locAccount:{accountId:"loc_01_creditcard",accountNumberDisplay:"8200",productName:"First Plaidypus Credit Card",nickname:"my travel rewards card",status:"OPEN",currency:{currencyCode:"USD"},accountType:"CREDITCARD"}}]},LocAccountFull:{description:'Full details of a line of credit account. The `accountType` field for line of credit accounts may be set to any of the [account types](#loc-account-types) listed below.\n\nPlaid may consume all the parameters returned by the `GET /accounts` endpoint:\n\n* `availableCredit`\n* `creditLine`\n* `currentBalance`\n\nAdditionally, for the `CREDITCARD` accountType, Plaid consumes the previous information plus the following for its liabilities product:\n\n* `advancesApr`\n* `lastPaymentAmount`\n* `lastPaymentDate`\n* `lastStmtBalance`\n* `lastStmtDate`\n* `minimumPaymentAmount`\n* `nextPaymentDate`\n* `purchasesApr`\nPlaid expects a decimal amount with two places (to represent fractional values of the base currency) for all monetary amounts. For example, `"currentBalance": 192.00`.\n',type:"object",properties:{locAccount:{$ref:"#/components/schemas/LocAccount"}},required:["locAccount"],"x-examples":[{locAccount:{accountId:"loc_01_creditcard",accountNumberDisplay:"8200",productName:"First Plaidypus Credit Card",nickname:"my travel rewards card",status:"OPEN",currency:{currencyCode:"USD"},minimumPaymentAmount:100,lastPaymentAmount:400,lastPaymentDate:"2022-03-30",pastDueAmount:0,lastStmtBalance:400,lastStmtDate:"2022-03-25",purchasesApr:10.25,advancesApr:15.75,currentBalance:375,availableCredit:625,accountType:"CREDITCARD"}}]},LocTransaction:{title:"Line-Of-Credit Transaction entity",description:"A line-of-credit transaction",type:"object",allOf:[{$ref:"#/components/schemas/Transaction"},{type:"object",properties:{transactionType:{$ref:"#/components/schemas/LocTransactionType"},checkNumber:{type:"integer",description:"Check number"}}}],"x-examples":[{transactionId:"locTransaction000000001",transactionTimestamp:"2022-04-05T00:00:00.000Z",description:"credit for latest ACME invoice",debitCreditMemo:"DEBIT",status:"PENDING",amount:400}]},Transaction:{title:"Transaction",description:"Base entity for financial transactions. For monetary amounts, Plaid expects a decimal amount, with two places to represent fractional values of the base currency, for example `101.99`.\n",type:"object",properties:{transactionId:{description:"Long term persistent identity of the transaction (unique to account). Plaid expects that `status: PENDING` and `status: POSTED` transactions have different IDs.",$ref:"#/components/schemas/Identifier"},referenceTransactionId:{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",$ref:"#/components/schemas/Identifier"},postedTimestamp:{description:"The date and time that the transaction was posted to the account.\n\nThis property is **required** by Plaid when `status=POSTED`.\nPlaid expects this property to be omitted when `status=PENDING`\n\nISO 8601 date-time in format `YYYY-MM-DDThh:mm:ss.nnn[Z|[+|-]hh:mm]` according to [IETF RFC3339](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6)\n",$ref:"#/components/schemas/Timestamp"},transactionTimestamp:{description:"The date and time that the transaction was added to the server backend systems.\nISO 8601 date-time in format `YYYY-MM-DDThh:mm:ss.nnn[Z|[+|-]hh:mm]` according to [IETF RFC3339](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6)",$ref:"#/components/schemas/Timestamp"},description:{type:"string",description:"The description of the transaction"},debitCreditMemo:{$ref:"#/components/schemas/DebitCreditMemo"},category:{type:"string",description:"Transaction category, preferably MCC or SIC. Plaid expects your organization to provide MCC, if available and applicable.\n"},subCategory:{type:"string",description:"Transaction category detail"},status:{$ref:"#/components/schemas/TransactionStatus"},amount:{type:"number",description:"The amount of money in the account currency. The amount is an absolute value. Plaid relies on the `DebitCreditMemo` enum to determine the direction (and sign) of the transaction.\n"},foreignAmount:{type:"number",description:"The amount of money in the foreign currency. If this amount is specified, then Plaid expects that the `foreignCurrency` property is also set."},foreignCurrency:{$ref:"#/components/schemas/Iso4217Code",description:"The ISO 4217 code of the foreign currency"}},required:["debitCreditMemo","description","transactionId","transactionTimestamp","status","amount"]},Transactions:{title:"Transactions entity",description:"Optionally paginated array of transactions",type:"object",properties:{page:{$ref:"#/components/schemas/PageMetadata"},transactions:{description:"An array of transactions. The `transactionType` is dependent on the account type. Plaid consumes the following types of transactions: [investment](#investment-transaction), [deposit](#deposit-transaction), [loan](#loan-transaction), and [line of credit](#line-of-credit-transaction)\n\nPlaid expects your organization to return an empty array if this information isn't available.\n",type:"array",items:{oneOf:[{type:"object",title:"Deposit Transaction",properties:{depositTransaction:{$ref:"#/components/schemas/DepositTransaction"}},required:["depositTransaction"],additionalProperties:!1},{type:"object",title:"Investment Transaction",properties:{investmentTransaction:{$ref:"#/components/schemas/InvestmentTransaction",description:"A transaction on an investment account.\nIn addition to the required fields in the base `Transaction` model, Plaid requires the following fields\nfor all transactions on an investment account:\n\n* `fees`\n* `transactionType`\n\nIf the transaction involves a security, Plaid additionally requires the following fields:\n\n* `unitPrice`\n* `units`\n* Either of the following:\n - `symbol`\n - `securityId` and `securityIdType`\n"}},required:["investmentTransaction"],additionalProperties:!1},{type:"object",title:"Loan Transaction",properties:{loanTransaction:{$ref:"#/components/schemas/LoanTransaction"}},required:["loanTransaction"],additionalProperties:!1},{type:"object",title:"Line of Credit Transaction",properties:{locTransaction:{$ref:"#/components/schemas/LocTransaction"}},required:["locTransaction"],additionalProperties:!1}]}}},required:["transactions"],example:{page:{nextOffset:"qwer123454q2f"},transactions:[{depositTransaction:{transactionType:"CHECK",checkNumber:1234,payee:"ACME llc",transactionId:"depositTransaction000000001",postedTimestamp:"2022-04-06T00:00:00.000Z",transactionTimestamp:"2022-04-05T00:00:00.000Z",description:"check for latest ACME invoice",debitCreditMemo:"DEBIT",status:"PENDING",amount:400}},{depositTransaction:{transactionType:"ADJUSTMENT",transactionId:"depositTransaction000000002",postedTimestamp:"2022-04-07T00:00:00.000Z",transactionTimestamp:"2022-04-07T00:00:00.000Z",description:"reconciliation/adjustment of bank statement error",debitCreditMemo:"DEBIT",status:"POSTED",amount:.8}},{depositTransaction:{transactionType:"ATMDEPOSIT",transactionId:"depositTransaction000000003",postedTimestamp:"2022-04-08T00:00:00.000Z",transactionTimestamp:"2022-04-08T00:00:00.000Z",description:"ATM cash deposit location #1234",debitCreditMemo:"CREDIT",status:"POSTED",amount:101.8}}]}},Identifier:{title:"Identifier",description:"Value for a unique identifier",type:"string",maxLength:256,example:"someLongTermUniqueIDString"},Iso3166CountryCode:{title:"ISO 3166 Country Code",description:"ISO 3166 Codes for the representation of names of countries and their subdivisions",type:"string",enum:["AD","AE","AF","AG","AI","AL","AM","AN","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BM","BN","BO","BR","BS","BT","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CR","CS","CU","CV","CX","CY","CZ","DE","DJ","DK","DM","DO","DZ","EC","EE","EG","EH","ER","ES","ET","FI","FJ","FK","FM","FO","FR","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RU","RW","SA","SB","SC","SD","SE","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","ST","SV","SY","SZ","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TR","TT","TV","TW","TZ","UA","UG","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","YE","YT","ZA","ZM","ZW"]},Iso4217Code:{title:"ISO 4217 Code",description:"ISO 4217 Currency codes",type:"string",enum:["AED","AFN","ALL","AMD","ANG","AOA","ARS","AUD","AWG","AZN","BAM","BBD","BDT","BGN","BHD","BIF","BMD","BND","BOB","BOV","BRL","BSD","BTN","BWP","BZD","CAD","CDF","CHE","CHF","CHW","CLF","CLP","CNY","COP","COU","CRC","CUC","CUP","CVE","CZK","DJF","DKK","DOP","DZD","EGP","ERN","ETB","EUR","FJD","FKP","GBP","GEL","GHS","GIP","GMD","GNF","GTQ","GYD","HKD","HNL","HRK","HTG","HUF","IDR","ILS","INR","IQD","IRR","ISK","JMD","JOD","JPY","KES","KGS","KHR","KMF","KPW","KRW","KWD","KYD","KZT","LAK","LBP","LKR","LRD","LSL","LYD","MAD","MDL","MGA","MKD","MMK","MNT","MOP","MUR","MVR","MWK","MXN","MXV","MYR","MZN","NAD","NGN","NIO","NOK","NPR","NZD","OMR","PAB","PEN","PGK","PHP","PKR","PLN","PYG","QAR","RON","RSD","RUB","RWF","SAR","SBD","SCR","SDG","SEK","SGD","SHP","SLL","SOS","SRD","SSP","SVC","SYP","SZL","THB","TJS","TMT","TND","TOP","TRY","TTD","TWD","TZS","UAH","UGX","USD","USN","UYI","UYU","UZS","VND","VUV","WST","XAF","XAG","XAU","XBA","XBB","XBC","XBD","XCD","XDR","XOF","XPD","XPF","XPT","XSU","XTS","XUA","XXX","YER","ZAR","ZMW","ZWL"]},String255:{title:"String 255",description:"String of maximum length 255",type:"string",maxLength:255},String64:{title:"String 64",description:"String of maximum length 64",type:"string",maxLength:64},TelephoneNumberType:{title:"Telephone Number Type",description:"Purpose or type of telephone number",type:"string",enum:["HOME","BUSINESS","CELL","FAX"]},Timestamp:{title:"Timestamp",description:"ISO 8601 date-time in format `YYYY-MM-DDThh:mm:ss.nnn[Z|[+|-]hh:mm]` according to [IETF RFC3339](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6)",type:"string",format:"date-time",example:"2021-07-15T14:46:41.375Z"},AccountHolderRelationship:{title:"Account Holder Relationship",description:"Types of relationships between accounts and holders. Suggested values",type:"string",enum:["BUSINESS","FOR_BENEFIT_OF","FOR_BENEFIT_OF_PRIMARY","FOR_BENEFIT_OF_PRIMARY_JOINT_RESTRICTED","FOR_BENEFIT_OF_SECONDARY","FOR_BENEFIT_OF_SECONDARY_JOINT_RESTRICTED","FOR_BENEFIT_OF_SOLE_OWNER_RESTRICTED","POWER_OF_ATTORNEY","PRIMARY_JOINT_TENANTS","PRIMARY","PRIMARY_BORROWER","PRIMARY_JOINT","SECONDARY","SECONDARY_JOINT_TENANTS","SECONDARY_BORROWER","SECONDARY_JOINT","SOLE_OWNER","TRUSTEE","UNIFORM_TRANSFER_TO_MINOR"]},AnnuityAccountType:{description:"The type of an account. Plaid consumes basic balance account information from the `accounts/{accountId}` endpoint for a subset of the possible account types described in the FDX specification.\n",type:"string",example:"FIXEDANNUITY",enum:["ANNUITY","FIXEDANNUITY","VARIABLEANNUITY"]},DebitCreditMemo:{title:"DebitCreditMemo",description:"The posting type of a transaction. The transaction amount is an absolute value, and this parameter indicates the direction of the transaction. Plaid expects `DEBIT` or `CREDIT` for this enum. Plaid expects that your organization indicates the `MEMO` (i.e., pending) status using the `status` field in the transaction response rather than this field. If your organization sends `MEMO` in this `DebitCreditMemo` enum, Plaid handles this value the same as it handles `DEBIT`. * `DEBIT`: An amount leaves the account * `CREDIT`: An amount enters the account * `MEMO`: A pending transaction to be completed at the end of this day.\n",type:"string",enum:["CREDIT","DEBIT","MEMO"]},DepositAccountType:{description:"The type of an account. Plaid consumes basic balance account information from the `accounts/{accountId}` endpoint for a subset of the possible account types described in the FDX specification.\n",type:"string",example:"SAVINGS",enum:["CHECKING","SAVINGS","CD","COMMERCIALDEPOSIT","ESCROW","MONEYMARKET","OTHERDEPOSIT"]},FiAttribute:{title:"FI Attribute entity",description:"Financial Institution provider-specific attribute",type:"object",properties:{name:{type:"string",description:"The attribute's name"},value:{type:"string",description:"The attribute's value"}}},HoldingSubType:{title:"Holding SubType",description:"The subtype of an investment holding. Plaid expects you to return `OTHER` and set the `holdingSubType` to indicate cash-type holdings (CASH, MONEYMARKET).\n",type:"string",enum:["CASH","MONEYMARKET"]},HoldingType:{title:"Holding Type",description:"Plaid maps the holding type to the Plaid [security type](https://plaid.com/docs/api/products/investments/#investments-transactions-get-response-securities-type). Plaid expects you to return `OTHER` and set the `holdingSubType` to indicate cash-type holdings (CASH, MONEYMARKET).\n",type:"string",enum:["ANNUITY","BOND","CD","MUTUALFUND","OPTION","OTHER","STOCK"]},InterestRateType:{title:"Interest Rate Type",description:"Specifies whether an interest rate is fixed or variable. This information is helpful for personal financial planning and advising. For example, it affects the potential benefits of refinancing, and informs whether a mortgage payment is expected to change in the future",type:"string",enum:["FIXED","VARIABLE"]},InsuranceAccountType:{description:"The type of an account. Plaid consumes basic balance account information from the `accounts/{accountId}` endpoint for a subset of the possible account types described in the FDX specification.\n",type:"string",example:"WHOLELIFE",enum:["LONGTERMDISABILITY","SHORTTERMDISABILITY","UNIVERSALLIFE","WHOLELIFE"]},InvestmentAccountType:{description:"The type of an account. Plaid consumes basic balance account information from the `accounts/{accountId}` endpoint for a subset of the possible account types described in the FDX specification.\n",type:"string",example:"ROTH",enum:["401A","401K","403B","529","BROKERAGEPRODUCT","COMMERCIALINVESTMENT","COVERDELL","DIGITALASSET","DEFINEDBENEFIT","ESOP","GUARDIAN","INSTITUTIONALTRUST","IRA","KEOGH","NONQUALIFIEDPLAN","OTHERINVESTMENT","ROLLOVER","ROTH","SARSEP","TAXABLE","TDA","TRUST","TERM","UGMA","UTMA"]},InvestmentTransactionType:{title:"Investment Transaction Type",description:"The type of an investment transaction.\nPlaid maps these enums to Plaid [investment transaction types](https://plaid.com/docs/api/accounts/#investment-transaction-types-schema).\nPlaid doesn't map these enums to Plaid-specific transaction subtypes.\nPlaid maps these enums as follows:\n\n* ADJUSTMENT - fee\n* ATM - cash\n* CASH - cash\n* CHECK - cash\n* CLOSURE - Plaid suggests using SOLDTOCLOSE, PURCHASETOCLOSE, OPTIONEXERCISE or OPTIONEXPIRATION to indicate the specific type of closure, instead of using this enum.\n* CLOSUREOPT - Plaid suggests using SOLDTOCLOSE, PURCHASETOCLOSE, OPTIONEXERCISE or OPTIONEXPIRATION to indicate the specific type of closure, instead of using this enum.\n* CONTRIBUTION - buy (if transaction involves a security) or cash\n* DEP - cash\n* DEPOSIT - cash\n* DIRECTDEBIT - cash\n* DIRECTDEP - cash\n* DIV - cash\n* DIVIDEND - cash\n* DIVIDENDREINVEST - buy\n* EXPENSE - cash\n* FEE - fee\n* INCOME - cash\n* INTEREST - cash\n* INVEXPENSE - cash\n* JRNLFUND - transfer\n* JRNLSEC - transfer\n* MARGININTEREST - cash\n* OPTIONEXERCISE - transfer\n* OPTIONEXPIRATION - transfer\n* OTHER - cash - (unclassified)\n* PAYMENT - cash\n* POS - cash\n* PURCHASED - buy\n* PURCHASEDTOCOVER - buy\n* PURCHASETOCLOSE - buy\n* PURCHASETOOPEN - buy\n* REINVESTOFINCOME - buy\n* REPEATPMT - cash\n* RETURNOFCAPITAL - cash\n* SOLD - sell\n* SOLDTOCLOSE - sell\n* SOLDTOOPEN - sell\n* SPLIT - transfer\n* SRVCHG - fee\n* TRANSFER - transfer\n* XFER - transfer\n",type:"string",enum:["ADJUSTMENT","ATM","CASH","CHECK","CLOSURE","CLOSUREOPT","CONTRIBUTION","DEP","DEPOSIT","DIRECTDEBIT","DIRECTDEP","DIV","DIVIDEND","DIVIDENDREINVEST","EXPENSE","FEE","INCOME","INTEREST","INVEXPENSE","JRNLFUND","JRNLSEC","MARGININTEREST","OPTIONEXERCISE","OPTIONEXPIRATION","OTHER","PAYMENT","POS","PURCHASED","PURCHASEDTOCOVER","PURCHASETOCLOSE","PURCHASETOOPEN","REINVESTOFINCOME","REPEATPMT","RETURNOFCAPITAL","SOLD","SOLDTOCLOSE","SOLDTOOPEN","SPLIT","SRVCHG","TRANSFER","XFER"]},LoanAccountType:{description:"The type of an account. Plaid consumes basic balance account information from the `accounts/{accountId}` endpoint for a subset of the possible account types described in the FDX specification.\n",type:"string",example:"HOMEEQUITYLOAN",enum:["AUTOLOAN","COMMERCIALLOAN","HOMEEQUITYLOAN","INSTALLMENT","LOAN","MILITARYLOAN","MORTGAGE","PERSONALLOAN","SMBLOAN","STUDENTLOAN"]},LoanTransactionType:{title:"Loan Transaction Type",description:"The type of a loan transaction. Plaid passes through all loan transaction types.\n",type:"string",enum:["ADJUSTMENT","FEE","INTEREST","PAYMENT"]},LocAccountType:{description:"The type of an account. Plaid consumes basic balance account information from the `accounts/{accountId}` endpoint for a subset of the possible account types described in the FDX specification.\n",type:"string",example:"CREDITCARD",enum:["LINEOFCREDIT","CHARGE","COMMERCIALLINEOFCREDIT","CREDITCARD","HOMELINEOFCREDIT"]},LocTransactionType:{title:"Line-Of-Credit Transaction Type",description:"The type of a line of credit (LOC) transaction. Plaid passes through all LOC transaction types.\n",type:"string",enum:["ADJUSTMENT","CHECK","FEE","INTEREST","PAYMENT","WITHDRAWAL"]},PaymentNetworkType:{title:"Payment Network Type",description:"Suggested values for Payment Network Type. `US_` refers to the USA, and `CA_` refers to Canada.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
ValueDescription
US_ACHAutomated Clearing House, also called Fed ACH network (mostly small banks)
US_FEDWIREFedwire Funds Service.
US_CHIPSClearinghouse Interbank Payments System. Also called Clearing House ACH network (primarily big banks)
CA_ACSSAutomated Clearing House Settlement System
CA_LVTSLarge-Value Transfer System
\n",type:"string",enum:["US_ACH","US_FEDWIRE","US_CHIPS","CA_ACSS","CA_LVTS"]},SecurityIdType:{title:"Security ID Type",description:"Plaid consumes solely CUSIP, ISIN, and SEDOL.\nThis field, along with `securityId` are **required** unless `symbol` is provided.\n**Note:** If `securityIdType` is provided, `securityId` is required.\n",type:"string",enum:["CUSIP","ISIN","SEDOL","SICC","VALOR","WKN"]},SecurityType:{title:"Security Type",description:"The type of a security",type:"string",enum:["BOND","DEBT","MUTUALFUND","OPTION","OTHER","STOCK","SWEEP"]},TransactionStatus:{title:"Transaction Status",description:"The status of a transaction. Plaid consumes solely the `PENDING` and `POSTED` enums,\nand treats `MEMO` and `AUTHORIZATION` as if they were `PENDING`. Plaid expects that pending and posted transactions\nhave different `transactionIds`.\n* `AUTHORIZATION`\n* `MEMO` - A pending transaction to be completed at the end of this day\n* `PENDING` - A pending transaction\n* `POSTED` - A posted transaction\n",type:"string",enum:["AUTHORIZATION","MEMO","PENDING","POSTED"]},UnitType:{title:"Unit Type",description:"The units of an investment transaction",type:"string",enum:["CURRENCY","SHARES"]}}}},"5.0":{openapi:"3.0.3",info:{version:"5.0.0",title:"FDX V5.0",description:'## FDX compliance\n\nThe Core Exchange API specifications are a subset of the Financial Data Exchange (FDX) API specification, the usage thereof (or any part thereof) constitutes acceptance of the FDX API\nLicense Agreement, which can be found at https://financialdataexchange.org/. The FDX API specification is distributed exclusively by FDX. Modifications to eliminate required or\nconditional elements prescribed in the FDX API Certification Use Cases will render any implementations using said modifications non-conformant with the FDX API Certification Use Cases.\nPlease note that building the FDX-compliant Core Exchange API and permitting Plaid to call your build constitutes acceptance of\nthe FDX end user license agreement, which can be found at https://financialdataexchange.org/.\nThe full FDX API standard specification is distributed exclusively by FDX.\n\n## Download the specification\n\nTo view this specification and documentation as an OpenAPI YAML file, see [the public Core Exchange Github repository](https://github.com/plaid/core-exchange/tree/main/versions).\n\n## Endpoints\n\nThis specification contains the following endpoints:\n\n - `/customers/current`\n\n - `/accounts`\n\n - `/accounts/{accountId}`\n\n - `/accounts/{accountId}/payment-networks`\n\n - `/accounts/{accountId}/contact`\n\n - `/accounts/{accountId}/transactions`\n\n## Mock server\n\nSee the [mock server postman collection](/core-exchange/example) for Core Exchange v5.0.\n\n## Error responses\n\nAn 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.\nError responses must contain a `code` and `message`.\nSee the descriptions below:\n\n- `code`: The FDX error code: A long-term persistent identifier which can be used to trace error condition back to log information.\n (**Note:** This code may differ from the HTTP status code.)\n- `message`: End user displayable information which might help the customer diagnose an error\n\n### Example error\n\nThe following is an example response with an HTTP status code of 409.\n\n```\n{\n "code": 705,\n "message": "Account is closed"\n}\n```\n\nSee the Errors table in each endpoint description for more specific message examples.\n',contact:{name:"Plaid support",url:"https://plaid.com/data-connectivity-core-exchange/",email:"dataconnectivity@plaid.com"}},servers:[{url:"https://api.your-organization.com/fdx/v5",description:"Financial Data Exchange V5.0 Core API"}],tags:[{name:"Personal Information",description:"Search and view customer or customers"},{name:"Account Information",description:"Search and view customer accounts"},{name:"Account Transactions",description:"Search and view account transactions"},{name:"Payment Networks Information",description:"Search and view account payment networks"}],paths:{"/customers/current":{get:{operationId:"getCustomerInfo",tags:["Personal Information"],description:"Get the ID of the customer within the authorization scope.\n\n**Note:**\n\n\n",summary:"Get current authenticated customer ID",security:[{openIdConnect:[]},{oauth2:[]}],responses:{200:{description:"Data describing current authenticated customer",content:{"application/json":{schema:{$ref:"#/components/schemas/CustomerWithId"},examples:{"example-1":{value:{customerId:"someLongTermUniqueIDString"}}}}}}}}},"/accounts":{get:{operationId:"searchForAccounts",tags:["Account Information"],summary:"List all accounts",description:"Search and view customer accounts\n",security:[{openIdConnect:["Account"]},{oauth2:["Account"]}],parameters:[{$ref:"#/components/parameters/OffsetQuery"},{$ref:"#/components/parameters/LimitQuery"}],responses:{200:{description:"Array of accounts",content:{"application/json":{schema:{$ref:"#/components/schemas/Accounts"},examples:{"example-1":{value:{page:{nextOffset:"25"},accounts:[{depositAccount:{accountId:"depositAccount0000001",accountType:"CHECKING",accountNumberDisplay:"5820",productName:"Checking",nickname:"Main Checking",status:"OPEN",currency:{currencyCode:"USD"}}},{loanAccount:{accountId:"loanAccount0000001",accountType:"LOAN",accountNumberDisplay:"4704",productName:"Loan",nickname:"Primary Loan",status:"OPEN",currency:{currencyCode:"USD"}}},{locAccount:{accountId:"locAccount0000001",accountType:"LINEOFCREDIT",accountNumberDisplay:"8200",productName:"Line of Credit",nickname:"First plaidypus LOC",status:"OPEN",currency:{currencyCode:"USD"}}},{investmentAccount:{accountId:"investmentAccount0000001",accountType:"TAXABLE",accountNumberDisplay:"1050",productName:"Brokerage Account",nickname:"First plaidypus Brokerage",status:"OPEN",currency:{currencyCode:"USD"}}}]}}}}}}}}},"/accounts/{accountId}":{get:{operationId:"getAccount",tags:["Account Information"],summary:"Get account balances and liabilities",description:"Get account balances, liabilities, and other information. Plaid uses this endpoint to:\n\n\n\nSee the response schema below for a full list of possible parameters for each account type.\n",security:[{openIdConnect:["Account"]},{oauth2:["Account"]}],parameters:[{$ref:"#/components/parameters/AccountIdPath"}],responses:{200:{description:"The full details of an investment, loan, deposit, or line of credit account",content:{"application/json":{schema:{$ref:"#/components/schemas/AccountWithDetails"}}}}}}},"/accounts/{accountId}/contact":{get:{operationId:"getAccountContact",tags:["Personal Information"],description:"Get contact information on the account.\n\nPlaid links contact information to accounts, rather than to users. Plaid consumes multiple holders and their contact information for the account, but doesn't attempt to correlate holders to their respective contact information. For more information about Plaid's identity model, see [Plaid Identity API](https://plaid.com/docs/api/products/identity/).\n",summary:"Get an account's contact information",parameters:[{$ref:"#/components/parameters/AccountIdPath"}],security:[{openIdConnect:["Customer"]},{oauth2:["Customer"]}],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:["Payment Networks Information"],description:"Get payment networks supported by an account, for example ACH (Automated Clearing House). For more information about how Plaid uses this information, see the [Plaid Auth API](https://plaid.com/docs/api/products/auth/).\n",summary:"Get payment networks supported by the account",security:[{openIdConnect:["Account"]},{oauth2:["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:{properties:{page:{$ref:"#/components/schemas/PageMetadata"},paymentNetworks:{type:"array",items:{$ref:"#/components/schemas/AccountPaymentNetwork"}}},required:["paymentNetworks"]},examples:{"example-1":{page:{nextOffset:25},paymentNetworks:[{bankId:"010088889",identifier:"1111222233335820",type:"US_ACH",transferIn:!0,transferOut:!0}]}}}}}}}},"/accounts/{accountId}/transactions":{get:{operationId:"searchForAccountTransactions",tags:["Account Transactions"],description:"List all account transactions. Plaid always queries this endpoint a `startTime` and an `endTime`, for example, `/accounts/{accountId}/transactions?startTime=2022-01-30&endTime=2022-05-30`, and expects the time filters to be based on the `postedTimestamp`.\n\nPlaid consumes data from this endpoint for the following account types only:\n\n",summary:"List all account transactions",security:[{openIdConnect:["Transactions"]},{oauth2:["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. Plaid consumes the following transaction types: InvestmentTransaction, DepositTransaction, LoanTransaction, or LocTransaction\n",content:{"application/json":{schema:{$ref:"#/components/schemas/Transactions"},examples:{"example-1":{value:{page:{nextOffset:"25"},transactions:[{depositTransaction:{checkNumber:1234,payee:"ACME llc",transactionId:"depositTransaction000000001",postedTimestamp:"2022-04-06T00:00:00.000Z",transactionTimestamp:"2022-04-05T00:00:00.000Z",description:"check for latest ACME invoice",debitCreditMemo:"DEBIT",status:"PENDING",amount:400}},{depositTransaction:{transactionId:"depositTransaction000000002",postedTimestamp:"2022-04-07T00:00:00.000Z",transactionTimestamp:"2022-04-07T00:00:00.000Z",description:"reconciliation/adjustment of bank statement error",debitCreditMemo:"DEBIT",status:"POSTED",amount:.8}}]}}}}}}}}}},components:{securitySchemes:{openIdConnect:{type:"openIdConnect",description:"This API uses an [OpenID Connect (OIDC) authentication flow](/core-exchange/authentication) and accepts the resulting [access token](/core-exchange/authentication#response-parameters) as a bearer token. For example, `curl -H 'Authorization: Bearer '`.\n",openIdConnectUrl:"https://www.your-organization.com/.well-known/openid-configuration"},oauth2:{type:"oauth2",description:"This API uses an [OAuth2.0 authorization code flow](https://auth0.com/docs/get-started/authentication-and-authorization-flow/authorization-code-flow) and accepts the resulting access token as a bearer token. For example, `curl -H 'Authorization: Bearer '`.\n",flows:{authorizationCode:{authorizationUrl:"https://www.your-organization.com/authorize",tokenUrl:"https://www.your-organization.com/token",scopes:{Account:"(optional) Read account data",Customer:"(optional) Read customer data",Transactions:"(optional) Read transaction data"}}}}},parameters:{LimitQuery:{name:"limit",in:"query",description:"Number of elements that the API consumer wishes to receive. Plaid has a default limit of 100 elements. If this value differs from your organization's limit for the number of items to send in one response, then pick the lower of the two different limits and use the lower limit to define the number of items you send on each page of a paginated response. Plaid then gets the next page by making a new request with the opaque `nextOffset` field that your organization returned in the latest response, until your organization omits `nextOffset` in the response to indicate the last page.\n",schema:{type:"integer"}},OffsetQuery:{name:"offset",in:"query",description:"Plaid receives this value from your organization's latest response in a paginated response, and returns it to in a new request to get the next page. Your organization omits `nextOffset` in the response to indicate the last page.\n",schema:{type:"string",example:"qwer123454q2f"}},AccountIdPath:{name:"accountId",in:"path",description:"Account identifier, found in the `GET /accounts` endpoint response. Plaid expects the ID to be a different value from the account number.\n",required:!0,schema:{type:"string"}},EndTimeQuery:{name:"endTime",in:"query",description:"End time for use in retrieval of elements (ISO 8601). For transactions, Plaid expects this to filter by the `postedTimestamp`.",schema:{$ref:"#/components/schemas/DateString"}},StartTimeQuery:{name:"startTime",in:"query",description:"Start time for use in retrieval of elements (ISO 8601). For transactions, Plaid expects this to filter by the `postedTimestamp`.",schema:{$ref:"#/components/schemas/DateString"}}},schemas:{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"},region:{$ref:"#/components/schemas/String64",description:"State or province or territory."},postalCode:{type:"string",maxLength:16,description:"Postal code"},country:{$ref:"#/components/schemas/Iso3166CountryCode",description:"Country code"}},required:["line1","city","country"]},CustomerWithId:{title:"Customer entity.",description:"Represents a customer. Plaid-specific schema created to hold one property, the `customerId` property of the FDX `Customer` schema.\n",type:"object",properties:{customerId:{$ref:"#/components/schemas/Identifier",description:"Long-term persistent identity of the customer. This identity must be unique within your organization. Plaid consumes this customer ID if your organization uses OAuth2 instead of OIDC to secure the API. Plaid expects your organization to issue the ID as a consistent, static, opaque, unique identifier for the user\n"}},required:["customerId"]},CustomerWithName:{title:"Customer entity",description:"Represents a customer. Plaid-specific schema created to hold one property, the `name` property of the FDX `Customer` schema.\n",type:"object",properties:{name:{$ref:"#/components/schemas/CustomerName"}},required:["name"]},CustomerName:{title:"Customer Name entity",description:"The name of an individual in their role as a customer. Plaid expects at least one populated name field. If any field is missing (for example, no first name), then you respond with an empty string for that field.\n",type:"object",allOf:[{$ref:"#/components/schemas/IndividualName"},{type:"object",properties:{prefix:{description:"Name prefix, e.g. Mr.",type:"string"}}}]},DeliveryAddress:{title:"Delivery Address",description:"A delivery address and its location type",type:"object",allOf:[{$ref:"#/components/schemas/Address"}]},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"}},required:["first","last"]},PageMetadata:{title:"Page Metadata",description:"Contains opaque identifier, `nextoffset`, for paginated result sets. The `nextOffset` ID doesn't need to be numeric or have any specific pattern. In other words, your organization can implement this however you prefer. The presence of this offset indicates that there's at least one more page of data available. The absence of this offset indicates that there are no more pages of data left in this paginated array. The API consumer returns this in the `offset` parameter in a new request to get the next page in the response array.\n",type:"object",properties:{nextOffset:{type:"string",example:"qwer123454q2f",description:"Opaque offset identifier."}}},PaginatedArray:{title:"Paginated Array",description:"Base class for results that may be paginated",type:"object",properties:{page:{$ref:"#/components/schemas/PageMetadata"}}},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,description:"Country calling codes defined by ITU-T recommendations E.123 and E.164"},number:{type:"string",maxLength:15,pattern:"\\d+",description:"Telephone subscriber number defined by ITU-T recommendation E.164"}},required:["number","type"]},AccountContact:{title:"Account Contact entity",description:"Contact information for the account.",type:"object",properties:{holders:{type:"array",items:{$ref:"#/components/schemas/AccountHolder"},minItems:1,description:"Owners of the account. Note that while the [FDX specification](https://financialdataexchange.org) enables associating holders and their contact information in the full `AccountHolder` schema, Plaid doesn't consume these associations. Instead, Plaid consumes limited information for each `AccountHolder` and doesn't associate contact information such as emails, addresses, or telephone numbers to account holders. For more information about Plaid's data model for account contact information, see [Identity](https://plaid.com/docs/api/products/identity/).\n",example:[{relationship:"SECONDARY",name:{first:"Ernest",middle:"Miller",last:"Hemingway",suffix:"IV"}},{relationship:"PRIMARY_JOINT",name:{first:"Maya",last:"Angelou",middle:"Annie"}}]},emails:{type:"array",items:{type:"string"},minItems:1,description:"Email addresses associated with the account.\n",example:["ernest.m.hemingway@domain.tld","m.angelou@domain.tld"]},addresses:{type:"array",items:{$ref:"#/components/schemas/DeliveryAddress"},minItems:1,description:"Physical mail addresses associated with the account.\n",example:[{line1:"1850 N Clark St",line2:"Apartment 103",city:"Chicago",region:"IL",postalCode:"60614",country:"US"},{line1:"2014 N Main St",city:"San Francisco",region:"CA",postalCode:"94105",country:"US"}]},telephones:{type:"array",items:{$ref:"#/components/schemas/TelephoneNumber"},minItems:1,description:"Telephone numbers associated with the account.\n",example:[{type:"HOME",country:"1",number:"3127771926"},{type:"CELL",country:"53",number:"45915607"},{type:"HOME",country:"1",number:"4157771926"}]}},required:["holders","emails","addresses","telephones"]},AccountDescriptor:{title:"Account Descriptor entity",description:"This descriptor provides minimal information about the account for use in lightweight arrays",type:"object",properties:{accountId:{description:"Long-term persistent identity of the account, though not an account number. This identity must be unique within your organization.\n",$ref:"#/components/schemas/Identifier"},accountNumberDisplay:{description:"Account display number for the end user's handle at the owning financial institution. Plaid expects that the last 4 digits of this masked number correspond to the last 4 digits of the account number.\n",type:"string",example:"4321"},productName:{type:"string",description:"Marketed product name for this account. Used in UIs to assist in account selection"},nickname:{description:"Name given by the user. Used in UIs to assist in account selection. Plaid recommends returning this only if the account permits user renaming.\n",type:"string"},status:{$ref:"#/components/schemas/AccountStatus"},currency:{$ref:"#/components/schemas/Currency"}},required:["accountId","productName","status","currency"]},AccountHolder:{title:"Account Holder entity",type:"object",allOf:[{$ref:"#/components/schemas/CustomerWithName"},{type:"object",properties:{relationship:{$ref:"#/components/schemas/AccountHolderRelationship",description:"Customer's relationship to the account"}}}]},AccountPaymentNetwork:{title:"Payment Network Supported by Account",description:"This provides details required to execute a transaction against the account within the payment network",type:"object",properties:{bankId:{type:"string",description:"Bank identifier used by the payment network ie. Routing Number"},identifier:{type:"string",description:"The number used to identify the account within the payment network."},type:{$ref:"#/components/schemas/PaymentNetworkType"},transferIn:{type:"boolean",description:"Can transfer funds to the account using this information. Plaid expect that this value represents the account's current ability to be credited through a payment network.\nPlaid recommends dynamically updating this value, for example to represent if the account is locked or not.\n\n**Note:** Both `transferIn` and `transferOut` must be `true` in order for the account to support ACH.\n"},transferOut:{type:"boolean",description:"Can transfer funds from the account using this information. Plaid expect that this value represents the account's current ability to be debited through a payment network.\nPlaid recommends dynamically updating this value, for example to represent if the account is locked or not.\n\n**Note:** Both `transferIn` and `transferOut` must be `true` in order for the account to support ACH.\n"}},required:["bankId","identifier","type","transferIn","transferOut"]},AccountWithDetails:{title:"Account With Details entity",description:"An account with full details",type:"object",oneOf:[{type:"object",title:"Deposit Account",properties:{depositAccount:{$ref:"#/components/schemas/DepositAccount"}},required:["depositAccount"],additionalProperties:!1},{type:"object",title:"Investment Account",properties:{investmentAccount:{$ref:"#/components/schemas/InvestmentAccount"}},required:["investmentAccount"],additionalProperties:!1},{type:"object",title:"Loan Account",properties:{loanAccount:{$ref:"#/components/schemas/LoanAccount"}},required:["loanAccount"],additionalProperties:!1},{type:"object",title:"Line of Credit Account",properties:{locAccount:{$ref:"#/components/schemas/LocAccount"}},required:["locAccount"],additionalProperties:!1}]},AccountWithDescriptor:{title:"Account With Descriptor entity",description:"This provides an instance of an account without full details",type:"object",anyOf:[{type:"object",title:"Deposit Account",properties:{depositAccount:{$ref:"#/components/schemas/DepositAccountDescriptor",description:"A deposit account. For example, a checking, savings or money market account.\nPlaid consumes more detailed information for `CHECKING` and `SAVINGS` accounts.\n\nThe `accountType` field for deposit accounts may be set to any of the following:\n\n
    \n
  • `CHECKING`: A deposit account held at a financial institution that allows withdrawals and deposits.
  • \n
  • `SAVINGS`: An interest-bearing deposit account held at a bank or other financial institution.
  • \n
  • `CD`: A certificate of deposit (CD) is a product offered by banks and credit unions that provides an interest rate premium in exchange for the customer agreeing to leave a lump-sum deposit untouched for a predetermined period of time.
  • \n
  • `COMMERCIALDEPOSIT`: A deposit account for commercial customers, for example a business trust account.
  • \n
  • `ESCROW`: A contractual arrangement in which a third party (the stakeholder or escrow agent) receives and disburses money or property for the primary transacting parties, with the disbursement dependent on conditions agreed to by the transacting parties.
  • \n
  • `MONEYMARKET`: A deposit account that pays interest based on current interest rates in the money markets.
  • \n
  • `OTHERDEPOSIT`: Use when none of the listed enums apply.
  • \n
\n"}},required:["depositAccount"],additionalProperties:!1},{type:"object",title:"Loan Account",properties:{loanAccount:{$ref:"#/components/schemas/LoanAccountDescriptor",description:"A loan account. For example, mortgage, student loan or auto loan.\nPlaid consumes more detailed information for `MORTGAGE` and `STUDENTLOAN` accounts.\n\nThe `accountType` field for loan accounts may be set to any of the following:\n\n
    \n
  • `AUTOLOAN`: A type of loan used to finance a car purchase.
  • \n
  • `COMMERCIALLOAN`: A preset borrowing limit that can be used at any time.
  • \n
  • `HOMEEQUITYLOAN`: A type of loan in which the borrower uses the equity of his or her home as collateral.
  • \n
  • `INSTALLMENT`: A type of agreement or contract involving a loan that is repaid over time with a set number of scheduled payments.
  • \n
  • `LOAN`: The lending of money by one or more individuals, organizations, or other entities to other individuals, organizations etc.
  • \n
  • `MILITARYLOAN`: A military loan.
  • \n
  • `MORTGAGE`: A type of loan you can use to buy or refinance a home.
  • \n
  • `PERSONALLOAN`: A type of debt that is not protected by a guarantor, or collateralized by a lien on specific assets of the borrower.
  • \n
  • `SMBLOAN`: A small/medium business loan.
  • \n
  • `STUDENTLOAN`: A type of loan designed to help students pay for post-secondary education and the associated fees, such as tuition, books and supplies, and living expenses.
  • \n
\n"}},required:["loanAccount"],additionalProperties:!1},{type:"object",title:"Line of Credit Account",properties:{locAccount:{$ref:"#/components/schemas/LocAccountDescriptor",description:"A line-of-credit account. For example, a credit card or home equity line of credit.\nPlaid consumes more detailed information for `CREDITCARD` accounts.\n\nThe `accountType` field for line of credit accounts may be set to any of the following:\n\n
    \n
  • `LINEOFCREDIT`: A credit facility extended by a bank or other financial institution to a government, business or individual customer that enables the customer to draw on the facility when the customer needs funds.
  • \n
  • `CHARGE`: An account to which goods and services may be charged on credit.
  • \n
  • `COMMERCIALLINEOFCREDIT`: An account with a preset borrowing limit that can be used at any time.
  • \n
  • `CREDITCARD`: Allows cardholders to borrow funds with which to pay for goods and services with merchants that accept cards for payment.
  • \n
  • `HOMELINEOFCREDIT`: A loan in which the lender agrees to lend a maximum amount within an agreed period, where the collateral is the borrower's equity in their house.
  • \n
\n"}},required:["locAccount"],additionalProperties:!1},{type:"object",title:"Investment Account",properties:{investmentAccount:{$ref:"#/components/schemas/InvestmentAccountDescriptor",description:"An investment account. For example, a 401K or IRA.\nPlaid consumes the same details for all investment accounts.\n\nThe `accountType` field for investment accounts may be set to any of the following:\n\n
    \n
  • `401A`: An employer-sponsored money-purchase retirement plan that allows dollar or percentage-based contributions from the employer, the employee, or both.
  • \n
  • `401K`: An employer-sponsored defined-contribution pension account defined in subsection 401(k) of the Internal Revenue Code.
  • \n
  • `403B`: A U.S. tax-advantaged retirement savings plan available for public education organizations, some non-profit employers (only Internal Revenue Code 501(c)(3) organizations), cooperative hospital service organizations, and self-employed ministers in the United States.
  • \n
  • `529`: A tax-advantaged savings plan designed to help pay for education.
  • \n
  • `BROKERAGEPRODUCT`: Investment management offered by a licensed brokerage firm that places trades on behalf of the customer, utilizing any number of investment options.
  • \n
  • `COMMERCIALINVESTMENT`: Investment Account for Commercial Customers. e.g. Commercial Brokerage Account.
  • \n
  • `COVERDELL`: A trust or custodial account set up in the United States solely for paying qualified education expenses for the designated beneficiary of the account.
  • \n
  • `DIGITALASSET`: An account containing digital assets.
  • \n
  • `DEFINEDBENEFIT`: An employer-sponsored retirement plan where employee benefits are computed using a formula that considers several factors, such as length of employment and salary history.
  • \n
  • `ESOP`: An employee stock ownership plan (ESOP) is an employee benefit plan that gives workers ownership interest in the company.
  • \n
  • `GUARDIAN`: An account of a child in the parent's name, with legal title to the assets in the account, as well as all capital gains and tax liabilities produced from the account belonging to the parent.
  • \n
  • `INSTITUTIONALTRUST`: An institutional trust account.
  • \n
  • `IRA`: An individual retirement account (IRA) is a tax-advantaged account that individuals use to save and invest for retirement.
  • \n
  • `KEOGH`: A tax-deferred pension plan available to self-employed individuals or unincorporated businesses for retirement purposes.
  • \n
  • `NONQUALIFIEDPLAN`: A type of tax-deferred employer-sponsored retirement plan that falls outside of ERISA guidelines.
  • \n
  • `OTHERINVESTMENT`: Use when none of the listed enums apply.
  • \n
  • `ROLLOVER`: An account containing investments rolled over from an employee-sponsored account.
  • \n
  • `ROTH`: An individual retirement account that offers tax-free growth and tax-free withdrawals in retirement.
  • \n
  • `SARSEP`: A simplified employee pension (SEP) plan set up before 1997 that includes a salary reduction arrangement.
  • \n
  • `TAXABLE`: A taxable investment account.
  • \n
  • `TDA`: TreasuryDirect Account.
  • \n
  • `TRUST`: A type of financial account that is opened by an individual and managed by a designated trustee for the benefit of a third party in accordance with agreed-upon terms.
  • \n
  • `TERM`: Life insurance that provides coverage at a fixed rate of payments for a limited period of time.
  • \n
  • `UGMA`: Uniform Gifts to Minors Act account.
  • \n
  • `UTMA`: Uniform Transfers to Minors Act account.
  • \n
\n"}},required:["investmentAccount"],additionalProperties:!1},{type:"object",title:"Insurance Account",properties:{insuranceAccount:{$ref:"#/components/schemas/InsuranceAccountDescriptor",description:"An insurance account. For example, whole life insurance or short-term disability.\n\nThe `accountType` field for insurance accounts may be set to any of the following:\n\n
    \n
  • `LONGTERMDISABILITY`: Insurance that replaces a portion of the policyholder's income due to a disability for an extended period of time, usually more than a year.
  • \n
  • `SHORTTERMDISABILITY`: Insurance that replaces a portion of the policyholder's income due to a disability for a short period of time, usually less than a year.
  • \n
  • `UNIVERSALLIFE`: A type of a cash value life insurance where the excess of premium payments above the current cost of insurance is credited to the cash value of the policy, which in turn is credited each month with interest.
  • \n
  • `WHOLELIFE`: Life insurance which is guaranteed to remain in force for the insured's entire lifetime, provided required premiums are paid, or to the maturity date.
  • \n
\n"}},required:["insuranceAccount"],additionalProperties:!1},{type:"object",title:"Annuity Account",properties:{annuityAccount:{$ref:"#/components/schemas/AnnuityAccountDescriptor",description:"An annuity account. For example, a fixed or variable annuity account.\n\nThe `accountType` field for annuity accounts may be set to any of the following:\n\n
    \n
  • `ANNUITY`: A form of insurance or investment entitling the investor to a series of annual sums.
  • \n
  • `FIXEDANNUITY`: A type of insurance contract that promises to pay the buyer a specific, guaranteed interest rate on their contributions to the account.
  • \n
  • `VARIABLEANNUITY`: A type of insurance contract that promises to pay back the buyer based on the performance of an underlying portfolio of mutual funds selected by the buyer.
  • \n
\n"}},required:["annuityAccount"],additionalProperties:!1}]},Accounts:{title:"Accounts entity",description:"An optionally paginated array of accounts",type:"object",allOf:[{$ref:"#/components/schemas/PaginatedArray"},{type:"object",properties:{accounts:{type:"array",items:{$ref:"#/components/schemas/AccountWithDetails"},description:"An array of accounts. May include accounts of any of the following types: [deposit](#deposit-account), [investment](#investment-account), [line of credit](#line-of-credit-account), [loan](#loan-account)\n\n**Note:** Each object in the accounts array is expected to contain at least one account type.\n",minItems:1}},required:["accounts"]}]},AnnuityAccountDescriptor:{allOf:[{$ref:"#/components/schemas/AccountDescriptor"},{type:"object",properties:{accountType:{$ref:"#/components/schemas/AnnuityAccountType"}},required:["accountType"]}],"x-examples":[{annuityAccount:{accountId:"annuityAccount0000001",accountType:"FIXEDANNUITY",accountNumberDisplay:"53901",productName:"Fixed Annuity",nickname:"Fixed annuity 1",status:"OPEN",currency:{currencyCode:"USD"}}}]},Currency:{title:"Currency entity",description:"Represents an international currency.",type:"object",properties:{currencyCode:{$ref:"#/components/schemas/Iso4217Code",description:"ISO 4217 currency code"}},required:["currencyCode"]},DepositAccount:{allOf:[{$ref:"#/components/schemas/AccountDescriptor"},{type:"object",properties:{accountType:{$ref:"#/components/schemas/DepositAccountType"}},required:["accountType"]}]},DepositAccountDescriptor:{title:"Deposit Account entity",description:'Full details of a deposit account. Plaid consumes the same information for all types of deposit accounts.\nPlaid expects a decimal amount with two places (to represent fractional values of the base currency) for all monetary amounts. For example, `"currentBalance": 192.00`.\n\nThe `accountType` field for deposit accounts may be set to any of the [account types](#deposit-account-types) listed below.\n',type:"object",properties:{depositAccount:{$ref:"#/components/schemas/DepositAccount"}},required:["depositAccount"],"x-examples":[{depositAccount:{accountId:"depositAccount0000001",accountType:"CHECKING",accountNumberDisplay:"5820",productName:"Checking",nickname:"Main Checking",status:"OPEN",currency:{currencyCode:"USD"}}}]},DepositAccountFull:{title:"Deposit Account entity",description:'Full details of a deposit account. Plaid consumes the same information for all types of deposit accounts.\nPlaid expects a decimal amount with two places (to represent fractional values of the base currency) for all monetary amounts. For example, `"currentBalance": 192.00`.\n\nThe `accountType` field for deposit accounts may be set to any of the [account types](#deposit-account-types) listed below.\n',type:"object",properties:{depositAccount:{$ref:"#/components/schemas/DepositAccount"}},required:["depositAccount"],"x-examples":[{depositAccount:{accountId:"someLongTermUniqueIDString",accountNumberDisplay:"4321",productName:"string",nickname:"string",status:"CLOSED",currency:{currencyCode:"AED"},accountType:"CHECKING",currentBalance:0,availableBalance:0}}]},DepositTransaction:{title:"Deposit Transaction entity",description:"A transaction on a deposit account type",type:"object",allOf:[{$ref:"#/components/schemas/Transaction"},{type:"object",properties:{payee:{$ref:"#/components/schemas/String255",description:"Payee name"},checkNumber:{type:"integer",description:"Check number. Plaid expects this solely if the transaction involves a check.\n"}}}],"x-examples":[{transactionId:"depositTransaction000000001",transactionTimestamp:"2022-04-05T00:00:00.000Z",description:"check for latest ACME invoice",debitCreditMemo:"DEBIT",status:"PENDING",amount:400,payee:"Acme LLC",checkNumber:57448}]},Holding:{title:"Holding entity",description:"A holding in an investment account.\nPlaid maps the `holding` and the `investmentAccount` FDX models to its securities models, which hold universal information like the ticker symbol, and to its holdings models, which hold account-specific information like balances. For more information, see [Plaid investments](https://plaid.com/docs/investments/#securities-and-holdings).\n",allOf:[{type:"object",properties:{securityId:{description:"If you return the `securityId` for a holding, Plaid uses it to look up the closing price from NYSE Group Security Master. If you don't return `securityId` for a holding that uses security IDs (not recommended), Plaid uses the `unitPrice` as the closing price.\nThis field, along with `securityIdType` are **required** unless `symbol` is provided.\n**Note:** If `securityId` is provided, `securityIdType` is required.\n",type:"string"},securityIdType:{$ref:"#/components/schemas/SecurityIdType"},holdingName:{type:"string",description:"Holding name or security name"},holdingType:{$ref:"#/components/schemas/HoldingType"},holdingSubType:{$ref:"#/components/schemas/HoldingSubType",description:"MONEYMARKET, CASH"},symbol:{type:"string",description:"Ticker / Market symbol\nThis field is **required** unless both `securityId` and `securityIdType` are provided."},purchasedPrice:{type:"number",description:"Price of holding at the time of purchase. Plaid determines an approximate [cost basis](https://plaid.com/docs/api/products/investments/#investments-holdings-get-response-holdings-cost-basis) using the purchase price and the number of units. Plaid cannot take fees into account to determine the cost basis because the FDX holding schema doesn't include fees.\n"},currentUnitPrice:{type:"number",description:"Current unit price. Plaid uses this as the [institution_price](https://plaid.com/docs/api/products/investments/#investments-holdings-get-response-holdings-institution-price). Plaid falls back to using this as the [close price](https://plaid.com/docs/api/products/investments/#investments-holdings-get-response-securities-close-price) if you don't return `securityId` for holdings involving securities.\n"},currentUnitPriceDate:{$ref:"#/components/schemas/DateString",description:"Current unit price as of date"},units:{type:"number",description:"Plaid requires this field for holdings and transactions involving securities.\nFor security-based actions other than stock splits, quantity.\nShares for stocks, mutual funds, and others. Face value for bonds.\nContracts for options.\n\n**Note:** This field is required if the transaction involves a security.\n"},marketValue:{type:"number",description:"Market value at the time of data retrieved"},faceValue:{type:"number",description:"Required for bonds. Face value at the time of data retrieved. If this isn't present, Plaid assumes the holding isn't a bond and falls back to `marketValue`.\n"},cashAccount:{type:"boolean",description:"If true, indicates that this holding is used to maintain proceeds from sales, dividends, and other cash postings to the investment account. If you don't set a value for `isCashEquivalent` in the `fiAttributes` array, then Plaid uses `cashAccount` in determining the [is_cash_equivalent](https://plaid.com/docs/api/products/investments/#investments-holdings-get-response-securities-is-cash-equivalent) status.\n"},currency:{$ref:"#/components/schemas/Currency",description:"Currency information if it is different from Account entity."},fiAttributes:{type:"array",description:"Array of financial institution-specific attributes. Plaid recommends including a value for [is_cash_equivalent](https://plaid.com/docs/api/products/investments/#investments-holdings-get-response-securities-is-cash-equivalent) property in this array. Plaid accepts `isCashEquivalent` as the attribute name and a string value of `true` or `false`. If you return a value for `isCashEquivalent`, then return the same value for `cashAccount` as a boolean.\n",items:{$ref:"#/components/schemas/FiAttribute"}}},required:["cashAccount","marketValue"]}]},InsuranceAccountDescriptor:{allOf:[{$ref:"#/components/schemas/AccountDescriptor"},{type:"object",properties:{accountType:{$ref:"#/components/schemas/InsuranceAccountType"}},required:["accountType"]}],"x-examples":[{insuranceAccount:{accountId:"insuranceAccount0000001",accountType:"LONGTERMDISABILITY",accountNumberDisplay:"5820",productName:"Long-term disability",nickname:"Long term",status:"OPEN",currency:{currencyCode:"USD"}}}]},InvestmentAccount:{allOf:[{$ref:"#/components/schemas/AccountDescriptor"},{type:"object",properties:{accountType:{$ref:"#/components/schemas/InvestmentAccountType"}},required:["accountType"]}]},InvestmentAccountDescriptor:{description:"The type of investment account. For example, a 401K or IRA. Plaid consumes the same details for all investment accounts. The `accountType` field for investment accounts may be set to any of the [account types](#investment-account-types) listed below.\n",type:"object",properties:{investmentAccount:{$ref:"#/components/schemas/InvestmentAccount"}},required:["investmentAccount"],"x-examples":[{investmentAccount:{accountId:"investmentAccount0000001",accountType:"TAXABLE",accountNumberDisplay:"1050",productName:"Brokerage Account",nickname:"First plaidypus Brokerage",status:"OPEN",currency:{currencyCode:"USD"}}}]},InvestmentAccountFull:{allOf:[{$ref:"#/components/schemas/InvestmentAccount"},{type:"object",description:'Full details of an investment account. Plaid consumes all `InvestmentAccount` FDX fields for all types of investment accounts.\nIn the holdings array, Plaid consumes fields depending on their relevancy to the holding type. See the `holdings` array for more information.\nPlaid expects a decimal amount with two places (to represent fractional values of the base currency) for all monetary amounts. For example, `"currentBalance": 192.00`.\n',properties:{availableCashBalance:{type:"number",description:"Cash balance across all sub-accounts. Plaid expects that this includes sweep funds."},balanceAsOf:{description:"As-of date of balances.\n\nISO 8601 date-time in format `YYYY-MM-DDThh:mm:ss.nnn[Z|[+|-]hh:mm]` according to [IETF RFC3339](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6)\n",$ref:"#/components/schemas/Timestamp"},currentValue:{type:"number",description:"Total current value of all investments."},holdings:{type:"array",description:"Holdings in the investment account.\nPlaid maps the `holding` and the `investmentAccount` FDX models to its securities models, which hold universal information like the ticker symbol, and to its holdings models, which hold account-specific information like balances. For more information, see [Plaid investments](https://plaid.com/docs/investments/#securities-and-holdings).\n",items:{$ref:"#/components/schemas/Holding"}}},required:["availableCashBalance","currentValue"]},{"x-examples":[{investmentAccount:{accountId:"investmentAccount0000001",accountType:"TAXABLE",accountNumberDisplay:"1050",productName:"Brokerage Account",nickname:"First plaidypus Brokerage",status:"OPEN",currency:{currencyCode:"USD"},availableCashBalance:4302.39,balanceAsOf:null,currentValue:4302.39,holdings:[{securityId:"string",securityIdType:"CINS",holdingName:"string",holdingType:"ANNUITY",holdingSubType:"CASH",symbol:"MTSN",purchasedPrice:12.5,currentUnitPrice:34.2,currentUnitPriceDate:"2024-07-15",units:100,marketValue:3400,faceValue:3400,cashAccount:!0,currency:{currencyCode:"AED"},fiAttributes:[{name:"string",value:"string"}]}]}}]}]},InvestmentTransaction:{title:"Investment Transaction entity",description:"A transaction on an investment account.\nIn addition to the required fields in the base `Transaction` model, Plaid requires the following fields\nfor all transactions on an investment account:\n\n* `fees`\n* `transactionType`\n\nIf the transaction involves a security, Plaid additionally requires the following fields:\n\n* `unitPrice`\n* `units`\n* Either of the following:\n - `symbol`\n - `securityId` and `securityIdType`\n",type:"object",allOf:[{$ref:"#/components/schemas/Transaction"},{type:"object",properties:{transactionType:{$ref:"#/components/schemas/InvestmentTransactionType"},securityId:{type:"string",description:"If you return the `securityId` for a holding, Plaid uses it to look up the closing price from NYSE Group Security Master. If you don't return `securityId` for a holding that uses security IDs (not recommended), Plaid uses the `unitPrice` as the closing price.\nThis field, along with `securityIdType` are **required** unless `symbol` is provided.\n**Note:** If `securityId` is provided, `securityIdType` is required.\n"},securityIdType:{$ref:"#/components/schemas/SecurityIdType"},securityType:{$ref:"#/components/schemas/SecurityType",description:"STOCK, MUTUALFUND, DEBT, OPTION, SWEEP, OTHER, BOND"},symbol:{type:"string",description:"Ticker symbol\nThis field is **required** unless both `securityId` and `securityIdType` are provided."},commission:{type:"number",description:"Plaid expects that your organization includes a value for commission if the commission isn't included in `fees`.\n"},fees:{type:"number",description:"Fees applied to the trade. Plaid expects that the `fees` include the commission, unless your organization separately provides a value for `commission`.\n"},unitPrice:{type:"number",description:"Unit price. Plaid uses this as the [price](https://plaid.com/docs/api/products/investments/#investments-transactions-get-response-investment-transactions-price).\nPlaid falls back to using this as the [close price](https://plaid.com/docs/api/products/investments/#investments-transactions-get-response-securities-close-price)\nif you don't return `securityId` for transactions involving securities.\n\n**Note:** This field is required if the transaction involves a security.\n"},units:{type:"number",description:"Plaid requires this field for holdings and transactions involving securities.\nFor security-based actions other than stock splits, quantity.\nShares for stocks, mutual funds, and others. Face value for bonds.\nContracts for options.\n\n**Note:** This field is required if the transaction involves a security.\n"},unitType:{$ref:"#/components/schemas/UnitType",description:"SHARES, CURRENCY"},fiAttributes:{type:"array",description:"Array of financial institution-specific attributes. Plaid recommends including a value for [is_cash_equivalent](https://plaid.com/docs/api/products/investments/#investments-transactions-get-response-securities-is-cash-equivalent) property in this array. Plaid accepts `isCashEquivalent` as the attribute name and a string value of `true` or `false`.\n",items:{$ref:"#/components/schemas/FiAttribute"}}},required:["fees","transactionType"]}],"x-examples":[{transactionId:"investmentTransaction000000001",transactionTimestamp:"2022-04-05T00:00:00.000Z",description:"check for latest ACME invoice",debitCreditMemo:"DEBIT",status:"PENDING",amount:400,transactionType:"CHECK",securityId:"APW881",securityIdType:"CMC",securityType:"DEBT",symbol:"MSFT",commission:.1,unitPrice:15.3,units:1e3,unitType:"SHARES",fiAttributes:[{name:"Vanguard",value:80}]}]},LoanAccount:{title:"Loan Account entity",type:"object",allOf:[{$ref:"#/components/schemas/AccountDescriptor"},{type:"object",properties:{accountType:{$ref:"#/components/schemas/LoanAccountType"},accountNumber:{type:"string",example:"loanAccount0000001",description:"Full account number for the end user's handle for the account at the owning institution\nRequired for accountType 'MORTGAGE'\n"},principalBalance:{type:"number",example:580303.95,description:"Principal balance of loan"},escrowBalance:{type:"number",example:3400.61,description:"Escrow balance of loan"},originalPrincipal:{type:"number",example:650400,description:"Original principal of loan"},originatingDate:{$ref:"#/components/schemas/DateString",description:"Loan origination date"},loanTerm:{type:"integer",example:360,description:"Term of loan in months"},nextPaymentAmount:{type:"number",example:2483.12,description:"Amount of next payment"},nextPaymentDate:{$ref:"#/components/schemas/DateString",description:"Date of next payment"},lastPaymentAmount:{type:"number",example:2483.12,description:"Last payment amount"},lastPaymentDate:{$ref:"#/components/schemas/DateString",description:"Last payment date"},maturityDate:{$ref:"#/components/schemas/DateString",description:"Maturity date"},interestPaidYearToDate:{type:"number",description:"Interest paid year to date"},interestRate:{type:"number",example:.075,description:"The account's interest rate"},interestRateType:{$ref:"#/components/schemas/InterestRateType"}},required:["principalBalance","interestRate","interestRateType","accountType"]}]},LoanAccountDescriptor:{description:'Full details of a loan account. The `accountType` field for loan accounts may be set to any of the [account types](#loan-account-types) listed below.\n\nPlaid only consumes the `MORTGAGE` and `STUDENTLOAN` types for its [Liabilities API](https://plaid.com/docs/api/products/liabilities/). For other loan account types Plaid consumes account details and transactions.\nPlaid consumes all loan account information as returned in the `GET /accounts` endpoint, as well as the additional information listed below:\n\nRequired for all loan accounts:\n* `principalBalance`\n* `interestRate`\n* `interestRateType`\n\nOptional fields for `STUDENTLOAN` accounts:\n* `interestPaidYearToDate`\n* `lastPaymentAmount`\n* `lastPaymentDate`\n* `maturityDate`\n* `nextPaymentDate`\n* `originalPrincipal`\n* `originatingDate`\n\nRequired for `MORTGAGE` accounts:\n* `accountNumber`\n\nOptional fields for `MORTGAGE` accounts:\n* `escrowBalance`\n* `interestPaidYearToDate`\n* `lastPaymentAmount`\n* `lastPaymentDate`\n* `loanTerm`\n* `maturityDate`\n* `nextPaymentAmount`\n* `nextPaymentDate`\n* `originalPrincipal`\n* `originatingDate`\n\nPlaid expects a decimal amount with two places (to represent fractional values of the base currency) for all monetary amounts. For example, `"escrowBalance": 192.00`.\n',type:"object",properties:{loanAccount:{$ref:"#/components/schemas/LoanAccount"}},required:["loanAccount"],"x-examples":[{loanAccount:{accountId:"loanAccount0000001",accountType:"LOAN",accountNumberDisplay:"4704",productName:"Loan",nickname:"Primary Loan",status:"OPEN",currency:{currencyCode:"USD"}}}]},LoanAccountFull:{description:'Full details of a loan account. The `accountType` field for loan accounts may be set to any of the [account types](#loan-account-types) listed below.\n\nPlaid only consumes the `MORTGAGE` and `STUDENTLOAN` types for its [Liabilities API](https://plaid.com/docs/api/products/liabilities/). For other loan account types Plaid consumes account details and transactions.\nPlaid consumes all loan account information as returned in the `GET /accounts` endpoint, as well as the additional information listed below:\n\nRequired for all loan accounts:\n* `principalBalance`\n* `interestRate`\n* `interestRateType`\n\nOptional fields for `STUDENTLOAN` accounts:\n* `interestPaidYearToDate`\n* `lastPaymentAmount`\n* `lastPaymentDate`\n* `maturityDate`\n* `nextPaymentDate`\n* `originalPrincipal`\n* `originatingDate`\n\nRequired for `MORTGAGE` accounts:\n* `accountNumber`\n\nOptional fields for `MORTGAGE` accounts:\n* `escrowBalance`\n* `interestPaidYearToDate`\n* `lastPaymentAmount`\n* `lastPaymentDate`\n* `loanTerm`\n* `maturityDate`\n* `nextPaymentAmount`\n* `nextPaymentDate`\n* `originalPrincipal`\n* `originatingDate`\n\nPlaid expects a decimal amount with two places (to represent fractional values of the base currency) for all monetary amounts. For example, `"escrowBalance": 192.00`.\n',type:"object",properties:{loanAccount:{$ref:"#/components/schemas/LoanAccount"}},required:["loanAccount"],"x-examples":[{loanAccount:{accountId:"someLongTermUniqueIDString",accountNumberDisplay:"4321",productName:"string",nickname:"string",status:"CLOSED",currency:{currencyCode:"AED"},accountType:"AUTOLOAN",accountNumber:"string",principalBalance:0,escrowBalance:0,originalPrincipal:0,originatingDate:"2021-07-15",loanTerm:0,nextPaymentAmount:0,nextPaymentDate:"2021-07-15",lastPaymentAmount:0,lastPaymentDate:"2021-07-15",maturityDate:"2021-07-15",interestPaidYearToDate:0,interestRate:0,interestRateType:"FIXED"}}]},LoanTransaction:{title:"Loan Transaction entity",description:"A transaction on a loan account",type:"object",allOf:[{$ref:"#/components/schemas/Transaction"},{type:"object",properties:{transactionType:{$ref:"#/components/schemas/LoanTransactionType"}}}],"x-examples":[{transactionId:"loanTransaction000000001",transactionTimestamp:"2022-04-05T00:00:00.000Z",description:"latest ACME invoice",debitCreditMemo:"CREDIT",status:"PENDING",amount:400}]},LocAccount:{type:"object",allOf:[{$ref:"#/components/schemas/AccountDescriptor"},{type:"object",properties:{accountType:{$ref:"#/components/schemas/LocAccountType"},creditLine:{type:"number",description:"Credit limit"},availableCredit:{type:"number",description:"Available credit. Required for all accountTypes except for `CHARGE`"},nextPaymentAmount:{type:"number",description:"Amount of next payment"},nextPaymentDate:{$ref:"#/components/schemas/DateString",description:"Due date of next payment"},principalBalance:{type:"number",description:"Principal balance"},currentBalance:{type:"number",description:"Current balance of the line of credit"},minimumPaymentAmount:{type:"number",description:"Minimum payment amount"},lastPaymentAmount:{type:"number",description:"Last payment amount"},lastPaymentDate:{$ref:"#/components/schemas/DateString",description:"Last payment date"},pastDueAmount:{type:"number",description:"Amount owed that the account holder failed to pay on the due date"},lastStmtBalance:{type:"number",description:"Last statement balance"},lastStmtDate:{$ref:"#/components/schemas/DateString",description:"Last statement date"},purchasesApr:{type:"number",description:"Purchases APR"},advancesApr:{type:"number",description:"Advances APR"}},required:["currentBalance","accountType"]}]},LocAccountDescriptor:{description:'Full details of a line of credit account. The `accountType` field for line of credit accounts may be set to any of the [account types](#loc-account-types) listed below.\n\nPlaid may consume all the parameters returned by the `GET /accounts` endpoint:\n\n* `availableCredit`\n* `creditLine`\n* `currentBalance`\n\nAdditionally, for the `CREDITCARD` accountType, Plaid consumes the previous information plus the following for its liabilities product:\n\n* `advancesApr`\n* `lastPaymentAmount`\n* `lastPaymentDate`\n* `lastStmtBalance`\n* `lastStmtDate`\n* `minimumPaymentAmount`\n* `nextPaymentDate`\n* `purchasesApr`\nPlaid expects a decimal amount with two places (to represent fractional values of the base currency) for all monetary amounts. For example, `"currentBalance": 192.00`.\n',type:"object",properties:{locAccount:{$ref:"#/components/schemas/LocAccount"}},required:["locAccount"],"x-examples":[{locAccount:{accountId:"loc_01_creditcard",accountNumberDisplay:"8200",productName:"First Plaidypus Credit Card",nickname:"my travel rewards card",status:"OPEN",currency:{currencyCode:"USD"},accountType:"CREDITCARD"}}]},LocAccountFull:{description:'Full details of a line of credit account. The `accountType` field for line of credit accounts may be set to any of the [account types](#loc-account-types) listed below.\n\nPlaid may consume all the parameters returned by the `GET /accounts` endpoint:\n\n* `availableCredit`\n* `creditLine`\n* `currentBalance`\n\nAdditionally, for the `CREDITCARD` accountType, Plaid consumes the previous information plus the following for its liabilities product:\n\n* `advancesApr`\n* `lastPaymentAmount`\n* `lastPaymentDate`\n* `lastStmtBalance`\n* `lastStmtDate`\n* `minimumPaymentAmount`\n* `nextPaymentDate`\n* `purchasesApr`\nPlaid expects a decimal amount with two places (to represent fractional values of the base currency) for all monetary amounts. For example, `"currentBalance": 192.00`.\n',type:"object",properties:{locAccount:{$ref:"#/components/schemas/LocAccount"}},required:["locAccount"],"x-examples":[{locAccount:{accountId:"loc_01_creditcard",accountNumberDisplay:"8200",productName:"First Plaidypus Credit Card",nickname:"my travel rewards card",status:"OPEN",currency:{currencyCode:"USD"},minimumPaymentAmount:100,lastPaymentAmount:400,lastPaymentDate:"2022-03-30",pastDueAmount:0,lastStmtBalance:400,lastStmtDate:"2022-03-25",purchasesApr:10.25,advancesApr:15.75,currentBalance:375,availableCredit:625,accountType:"CREDITCARD"}}]},LocTransaction:{title:"Line-Of-Credit Transaction entity",description:"A line-of-credit transaction",type:"object",allOf:[{$ref:"#/components/schemas/Transaction"},{type:"object",properties:{transactionType:{$ref:"#/components/schemas/LocTransactionType"},checkNumber:{type:"integer",description:"Check number"}}}],"x-examples":[{transactionId:"locTransaction000000001",transactionTimestamp:"2022-04-05T00:00:00.000Z",description:"credit for latest ACME invoice",debitCreditMemo:"DEBIT",status:"PENDING",amount:400}]},Transaction:{title:"Transaction",description:"Base entity for financial transactions. For monetary amounts, Plaid expects a decimal amount, with two places to represent fractional values of the base currency, for example `101.99`.\n",type:"object",properties:{transactionId:{description:"Long term persistent identity of the transaction (unique to account). Plaid expects that `status: PENDING` and `status: POSTED` transactions have different IDs.",$ref:"#/components/schemas/Identifier"},referenceTransactionId:{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",$ref:"#/components/schemas/Identifier"},postedTimestamp:{description:"The date and time that the transaction was posted to the account.\n\nThis property is **required** by Plaid when `status=POSTED`.\nPlaid expects this property to be omitted when `status=PENDING`\n\nISO 8601 date-time in format `YYYY-MM-DDThh:mm:ss.nnn[Z|[+|-]hh:mm]` according to [IETF RFC3339](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6)\n",$ref:"#/components/schemas/Timestamp"},transactionTimestamp:{description:"The date and time that the transaction was added to the server backend systems. This acts as postedTimestamp when postedTimestamp is not present (pending transaction).\n\nISO 8601 date-time in format `YYYY-MM-DDThh:mm:ss.nnn[Z|[+|-]hh:mm]` according to [IETF RFC3339](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6)\n",$ref:"#/components/schemas/Timestamp"},description:{type:"string",description:"The description of the transaction"},debitCreditMemo:{$ref:"#/components/schemas/DebitCreditMemo"},category:{type:"string",description:"Transaction category, preferably MCC or SIC. Plaid expects your organization to provide MCC, if available and applicable.\n"},subCategory:{type:"string",description:"Transaction category detail"},status:{$ref:"#/components/schemas/TransactionStatus"},amount:{type:"number",description:"The amount of money in the account currency. The amount is an absolute value. Plaid relies on the `DebitCreditMemo` enum to determine the direction (and sign) of the transaction.\n"},foreignAmount:{type:"number",description:"The amount of money in the foreign currency. If this amount is specified, then Plaid expects that the `foreignCurrency` property is also set."},foreignCurrency:{$ref:"#/components/schemas/Iso4217Code",description:"The ISO 4217 code of the foreign currency"}},required:["debitCreditMemo","description","transactionId","transactionTimestamp","status","amount"]},Transactions:{title:"Transactions entity",description:"Optionally paginated array of transactions",type:"object",properties:{page:{$ref:"#/components/schemas/PageMetadata"},transactions:{description:"An array of transactions. The `transactionType` is dependent on the account type. Plaid consumes the following types of transactions: [investment](#investment-transaction), [deposit](#deposit-transaction), [loan](#loan-transaction), and [line of credit](#line-of-credit-transaction)\n\nPlaid expects your organization to return an empty array if this information isn't available.\n",type:"array",items:{oneOf:[{type:"object",title:"Deposit Transaction",properties:{depositTransaction:{$ref:"#/components/schemas/DepositTransaction"}},required:["depositTransaction"],additionalProperties:!1},{type:"object",title:"Investment Transaction",properties:{investmentTransaction:{$ref:"#/components/schemas/InvestmentTransaction",description:"A transaction on an investment account.\nIn addition to the required fields in the base `Transaction` model, Plaid requires the following fields\nfor all transactions on an investment account:\n\n* `fees`\n* `transactionType`\n\nIf the transaction involves a security, Plaid additionally requires the following fields:\n\n* `unitPrice`\n* `units`\n* Either of the following:\n - `symbol`\n - `securityId` and `securityIdType`\n"}},required:["investmentTransaction"],additionalProperties:!1},{type:"object",title:"Loan Transaction",properties:{loanTransaction:{$ref:"#/components/schemas/LoanTransaction"}},required:["loanTransaction"],additionalProperties:!1},{type:"object",title:"Line of Credit Transaction",properties:{locTransaction:{$ref:"#/components/schemas/LocTransaction"}},required:["locTransaction"],additionalProperties:!1}]}}},required:["transactions"],example:{page:{nextOffset:"qwer123454q2f"},transactions:[{depositTransaction:{transactionType:"CHECK",checkNumber:1234,payee:"ACME llc",transactionId:"depositTransaction000000001",postedTimestamp:"2022-04-06T00:00:00.000Z",transactionTimestamp:"2022-04-05T00:00:00.000Z",description:"check for latest ACME invoice",debitCreditMemo:"DEBIT",status:"PENDING",amount:400}},{depositTransaction:{transactionType:"ADJUSTMENT",transactionId:"depositTransaction000000002",postedTimestamp:"2022-04-07T00:00:00.000Z",transactionTimestamp:"2022-04-07T00:00:00.000Z",description:"reconciliation/adjustment of bank statement error",debitCreditMemo:"DEBIT",status:"POSTED",amount:.8}},{depositTransaction:{transactionType:"ATMDEPOSIT",transactionId:"depositTransaction000000003",postedTimestamp:"2022-04-08T00:00:00.000Z",transactionTimestamp:"2022-04-08T00:00:00.000Z",description:"ATM cash deposit location #1234",debitCreditMemo:"CREDIT",status:"POSTED",amount:101.8}}]}},AccountHolderRelationship:{title:"Account Holder Relationship",description:"Types of relationships between accounts and holders. Suggested values",type:"string",enum:["AUTHORIZED_USER","BUSINESS","FOR_BENEFIT_OF","FOR_BENEFIT_OF_PRIMARY","FOR_BENEFIT_OF_PRIMARY_JOINT_RESTRICTED","FOR_BENEFIT_OF_SECONDARY","FOR_BENEFIT_OF_SECONDARY_JOINT_RESTRICTED","FOR_BENEFIT_OF_SOLE_OWNER_RESTRICTED","POWER_OF_ATTORNEY","PRIMARY_JOINT_TENANTS","PRIMARY","PRIMARY_BORROWER","PRIMARY_JOINT","SECONDARY","SECONDARY_JOINT_TENANTS","SECONDARY_BORROWER","SECONDARY_JOINT","SOLE_OWNER","TRUSTEE","UNIFORM_TRANSFER_TO_MINOR"]},DateString:{title:"Date String",description:"ISO 8601 full-date in format 'YYYY-MM-DD' according to [IETF RFC3339](https://xml2rfc.tools.ietf.org/public/rfc/html/rfc3339.html#anchor14)",type:"string",format:"date",maxLength:10,example:"2021-07-15"},Identifier:{title:"Identifier",description:"Value for a unique identifier",type:"string",maxLength:256,example:"someLongTermUniqueIDString"},Iso3166CountryCode:{title:"ISO 3166 Country Code",description:"ISO 3166 Codes for the representation of names of countries and their subdivisions",type:"string",enum:["AD","AE","AF","AG","AI","AL","AM","AN","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BM","BN","BO","BR","BS","BT","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CR","CS","CU","CV","CX","CY","CZ","DE","DJ","DK","DM","DO","DZ","EC","EE","EG","EH","ER","ES","ET","FI","FJ","FK","FM","FO","FR","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RU","RW","SA","SB","SC","SD","SE","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","ST","SV","SY","SZ","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TR","TT","TV","TW","TZ","UA","UG","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","YE","YT","ZA","ZM","ZW"]},Iso4217Code:{title:"ISO 4217 Code",description:"ISO 4217 Currency codes",type:"string",enum:["AED","AFN","ALL","AMD","ANG","AOA","ARS","AUD","AWG","AZN","BAM","BBD","BDT","BGN","BHD","BIF","BMD","BND","BOB","BOV","BRL","BSD","BTN","BWP","BZD","CAD","CDF","CHE","CHF","CHW","CLF","CLP","CNY","COP","COU","CRC","CUC","CUP","CVE","CZK","DJF","DKK","DOP","DZD","EGP","ERN","ETB","EUR","FJD","FKP","GBP","GEL","GHS","GIP","GMD","GNF","GTQ","GYD","HKD","HNL","HRK","HTG","HUF","IDR","ILS","INR","IQD","IRR","ISK","JMD","JOD","JPY","KES","KGS","KHR","KMF","KPW","KRW","KWD","KYD","KZT","LAK","LBP","LKR","LRD","LSL","LYD","MAD","MDL","MGA","MKD","MMK","MNT","MOP","MUR","MVR","MWK","MXN","MXV","MYR","MZN","NAD","NGN","NIO","NOK","NPR","NZD","OMR","PAB","PEN","PGK","PHP","PKR","PLN","PYG","QAR","RON","RSD","RUB","RWF","SAR","SBD","SCR","SDG","SEK","SGD","SHP","SLL","SOS","SRD","SSP","SVC","SYP","SZL","THB","TJS","TMT","TND","TOP","TRY","TTD","TWD","TZS","UAH","UGX","USD","USN","UYI","UYU","UZS","VND","VUV","WST","XAF","XAG","XAU","XBA","XBB","XBC","XBD","XCD","XDR","XOF","XPD","XPF","XPT","XSU","XTS","XUA","XXX","YER","ZAR","ZMW","ZWL"]},String255:{title:"String 255",description:"String of maximum length 255",type:"string",maxLength:255},String64:{title:"String 64",description:"String of maximum length 64",type:"string",maxLength:64},TelephoneNumberType:{title:"Telephone Number Type",description:"Purpose or type of telephone number",type:"string",enum:["HOME","BUSINESS","CELL","FAX"]},Timestamp:{title:"Timestamp",description:"ISO 8601 date-time in format `YYYY-MM-DDThh:mm:ss.nnn[Z|[+|-]hh:mm]` according to [IETF RFC3339](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6)",type:"string",format:"date-time",example:"2021-07-15T14:46:41.375Z"},AccountStatus:{title:"Account Status",description:"The status of an account.",type:"string",enum:["CLOSED","DELINQUENT","NEGATIVECURRENTBALANCE","OPEN","PAID","PENDINGCLOSE","PENDINGOPEN","RESTRICTED"]},AnnuityAccountType:{description:"The type of an account. Plaid consumes basic balance account information from the `accounts/{accountId}` endpoint for a subset of the possible account types described in the FDX specification.\n",type:"string",example:"FIXEDANNUITY",enum:["ANNUITY","FIXEDANNUITY","VARIABLEANNUITY"]},DebitCreditMemo:{title:"DebitCreditMemo",description:"The posting type of a transaction. The transaction amount is an absolute value, and this parameter indicates the direction of the transaction. Plaid expects `DEBIT` or `CREDIT` for this enum. Plaid expects that your organization indicates the `MEMO` (i.e., pending) status using the `status` field in the transaction response rather than this field. If your organization sends `MEMO` in this `DebitCreditMemo` enum, Plaid handles this value the same as it handles `DEBIT`. * `DEBIT`: An amount leaves the account * `CREDIT`: An amount enters the account * `MEMO`: A pending transaction to be completed at the end of this day.\n",type:"string",enum:["CREDIT","DEBIT","MEMO"]},DepositAccountType:{description:"The type of an account. Plaid consumes basic balance account information from the `accounts/{accountId}` endpoint for a subset of the possible account types described in the FDX specification.\n",type:"string",example:"SAVINGS",enum:["CHECKING","SAVINGS","CD","COMMERCIALDEPOSIT","ESCROW","MONEYMARKET","OTHERDEPOSIT"]},FiAttribute:{title:"FI Attribute entity",description:"Financial Institution provider-specific attribute",type:"object",properties:{name:{type:"string",description:"The attribute's name"},value:{type:"string",description:"The attribute's value"}}},HoldingSubType:{title:"Holding SubType",description:"The subtype of an investment holding. Plaid expects you to return `OTHER` and set the `holdingSubType` to indicate cash-type holdings (CASH, MONEYMARKET).\n",type:"string",enum:["CASH","MONEYMARKET"]},HoldingType:{title:"Holding Type",description:"Plaid maps the holding type to the Plaid [security type](https://plaid.com/docs/api/products/investments/#investments-transactions-get-response-securities-type). Plaid expects you to return `OTHER` and set the `holdingSubType` to indicate cash-type holdings (CASH, MONEYMARKET).\n",type:"string",enum:["ANNUITY","BOND","CD","MUTUALFUND","OPTION","OTHER","STOCK"]},InsuranceAccountType:{description:"The type of an account. Plaid consumes basic balance account information from the `accounts/{accountId}` endpoint for a subset of the possible account types described in the FDX specification.\n",type:"string",example:"WHOLELIFE",enum:["LONGTERMDISABILITY","SHORTTERMDISABILITY","UNIVERSALLIFE","WHOLELIFE"]},InterestRateType:{title:"Interest Rate Type",description:"Specifies whether an interest rate is fixed or variable. This information is helpful for personal financial planning and advising. For example, it affects the potential benefits of refinancing, and informs whether a mortgage payment is expected to change in the future",type:"string",enum:["FIXED","VARIABLE"]},InvestmentAccountType:{description:"The type of an account. Plaid consumes basic balance account information from the `accounts/{accountId}` endpoint for a subset of the possible account types described in the FDX specification.\n",type:"string",example:"ROTH",enum:["401A","401K","403B","529","BROKERAGEPRODUCT","COMMERCIALINVESTMENT","COVERDELL","DIGITALASSET","DEFINEDBENEFIT","ESOP","GUARDIAN","INSTITUTIONALTRUST","IRA","KEOGH","NONQUALIFIEDPLAN","OTHERINVESTMENT","ROLLOVER","ROTH","SARSEP","TAXABLE","TDA","TRUST","TERM","UGMA","UTMA"]},InvestmentTransactionType:{title:"Investment Transaction Type",description:"The type of an investment transaction.\nPlaid maps these enums to Plaid [investment transaction types](https://plaid.com/docs/api/accounts/#investment-transaction-types-schema).\nPlaid doesn't map these enums to Plaid-specific transaction subtypes.\nPlaid maps these enums as follows:\n\n* ADJUSTMENT - fee\n* ATM - cash\n* CASH - cash\n* CHECK - cash\n* CLOSURE - Plaid suggests using SOLDTOCLOSE, PURCHASETOCLOSE, OPTIONEXERCISE or OPTIONEXPIRATION to indicate the specific type of closure, instead of using this enum.\n* CLOSUREOPT - Plaid suggests using SOLDTOCLOSE, PURCHASETOCLOSE, OPTIONEXERCISE or OPTIONEXPIRATION to indicate the specific type of closure, instead of using this enum.\n* CONTRIBUTION - buy (if transaction involves a security) or cash\n* DEP - cash\n* DEPOSIT - cash\n* DIRECTDEBIT - cash\n* DIRECTDEP - cash\n* DIV - cash\n* DIVIDEND - cash\n* DIVIDENDREINVEST - buy\n* EXPENSE - cash\n* FEE - fee\n* INCOME - cash\n* INTEREST - cash\n* INVEXPENSE - cash\n* JRNLFUND - transfer\n* JRNLSEC - transfer\n* MARGININTEREST - cash\n* OPTIONEXERCISE - transfer\n* OPTIONEXPIRATION - transfer\n* OTHER - cash - (unclassified)\n* PAYMENT - cash\n* POS - cash\n* PURCHASED - buy\n* PURCHASEDTOCOVER - buy\n* PURCHASETOCLOSE - buy\n* PURCHASETOOPEN - buy\n* REINVESTOFINCOME - buy\n* REPEATPMT - cash\n* RETURNOFCAPITAL - cash\n* SOLD - sell\n* SOLDTOCLOSE - sell\n* SOLDTOOPEN - sell\n* SPLIT - transfer\n* SRVCHG - fee\n* TRANSFER - transfer\n* XFER - transfer\n",type:"string",enum:["ADJUSTMENT","ATM","CASH","CHECK","CLOSURE","CLOSUREOPT","CONTRIBUTION","DEP","DEPOSIT","DIRECTDEBIT","DIRECTDEP","DIV","DIVIDEND","DIVIDENDREINVEST","EXPENSE","FEE","INCOME","INTEREST","INVEXPENSE","JRNLFUND","JRNLSEC","MARGININTEREST","OPTIONEXERCISE","OPTIONEXPIRATION","OTHER","PAYMENT","POS","PURCHASED","PURCHASEDTOCOVER","PURCHASETOCLOSE","PURCHASETOOPEN","REINVESTOFINCOME","REPEATPMT","RETURNOFCAPITAL","SOLD","SOLDTOCLOSE","SOLDTOOPEN","SPLIT","SRVCHG","TRANSFER","XFER"]},LoanAccountType:{description:"The type of an account. Plaid consumes basic balance account information from the `accounts/{accountId}` endpoint for a subset of the possible account types described in the FDX specification.\n",type:"string",example:"HOMEEQUITYLOAN",enum:["AUTOLOAN","COMMERCIALLOAN","HOMEEQUITYLOAN","INSTALLMENT","LOAN","MILITARYLOAN","MORTGAGE","PERSONALLOAN","SMBLOAN","STUDENTLOAN"]},LoanTransactionType:{title:"Loan Transaction Type",description:"The type of a loan transaction. Plaid passes through all loan transaction types.\n\n
    \n
  • `ADJUSTMENT`: Adjustment or correction.
  • \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
  • `LUMP_SUM_PAYMENT`: A single payment of money, as opposed to a series of payments made over time.
  • \n
  • `SKIP_PAYMENT`: Payment that satisfies deferral of a required payment.
  • \n
  • `DOUBLE_UP_PAYMENT`: Additional payment beyond the required payment to reduce the principal.
  • \n
  • `PAYOFF`: Payment that satisfies the terms of the mortgage loan and completely pays off the debt.
  • \n
\n",type:"string",enum:["ADJUSTMENT","FEE","INTEREST","PAYMENT","LUMP_SUM_PAYMENT","SKIP_PAYMENT","DOUBLE_UP_PAYMENT","PAYOFF"]},LocAccountType:{description:"The type of an account. Plaid consumes basic balance account information from the `accounts/{accountId}` endpoint for a subset of the possible account types described in the FDX specification.\n",type:"string",example:"CREDITCARD",enum:["LINEOFCREDIT","CHARGE","COMMERCIALLINEOFCREDIT","CREDITCARD","HOMELINEOFCREDIT"]},LocTransactionType:{title:"Line-Of-Credit Transaction Type",description:"The type of a line of credit (LOC) transaction. Plaid passes through all LOC transaction types.\n",type:"string",enum:["ADJUSTMENT","CHECK","FEE","INTEREST","PAYMENT","WITHDRAWAL"]},PaymentNetworkType:{title:"Payment Network Type",description:"Suggested values for Payment Network Type. `US_` refers to the USA, and `CA_` refers to Canada.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
ValueDescription
US_ACHAutomated Clearing House, also called Fed ACH network (mostly small banks)
US_FEDWIREFedwire Funds Service.
US_CHIPSClearinghouse Interbank Payments System. Also called Clearing House ACH network (primarily big banks)
CA_ACSSAutomated Clearing House Settlement System
CA_LVTSLarge-Value Transfer System
\n",type:"string",enum:["US_ACH","US_FEDWIRE","US_CHIPS","CA_ACSS","CA_LVTS"]},SecurityIdType:{title:"Security Id Type",description:"Plaid consumes solely CUSIP, ISIN, and SEDOL.\nThis field, along with `securityId` are **required** unless `symbol` is provided.\n**Note:** If `securityIdType` is provided, `securityId` is required.\n",type:"string",enum:["CUSIP","ISIN","SEDOL","SICC","VALOR","WKN"]},SecurityType:{title:"Security Type",description:"The type of a security",type:"string",enum:["BOND","DEBT","MUTUALFUND","OPTION","OTHER","STOCK","SWEEP"]},TransactionStatus:{title:"Transaction Status",description:"The status of a transaction. Plaid consumes solely the `PENDING` and `POSTED` enums,\nand treats `MEMO` and `AUTHORIZATION` as if they were `PENDING`. Plaid expects that pending and posted transactions\nhave different `transactionIds`.\n* `AUTHORIZATION`\n* `MEMO` - A pending transaction to be completed at the end of this day\n* `PENDING` - A pending transaction\n* `POSTED` - A posted transaction\n",type:"string",enum:["AUTHORIZATION","MEMO","PENDING","POSTED"]},UnitType:{title:"Unit Type",description:"The units of an investment transaction",type:"string",enum:["CURRENCY","SHARES"]}}}},5.1:{openapi:"3.0.3",info:{version:"5.1.0",title:"FDX V5.1",description:'## FDX compliance\n\nThe Core Exchange API specifications are a subset of the Financial Data Exchange (FDX) API specification, the usage thereof (or any part thereof) constitutes acceptance of the FDX API\nLicense Agreement, which can be found at https://financialdataexchange.org/. The FDX API specification is distributed exclusively by FDX. Modifications to eliminate required or\nconditional elements prescribed in the FDX API Certification Use Cases will render any implementations using said modifications non-conformant with the FDX API Certification Use Cases.\nPlease note that building the FDX-compliant Core Exchange API and permitting Plaid to call your build constitutes acceptance of\nthe FDX end user license agreement, which can be found at https://financialdataexchange.org/.\nThe full FDX API standard specification is distributed exclusively by FDX.\n\n## Download the specification\n\nTo view this specification and documentation as an OpenAPI YAML file, see [the public Core Exchange Github repository](https://github.com/plaid/core-exchange/tree/main/versions).\n\n## Endpoints\n\nThis specification contains the following endpoints:\n\n - `/customers/current`\n\n - `/accounts`\n\n - `/accounts/{accountId}`\n\n - `/accounts/{accountId}/payment-networks`\n\n - `/accounts/{accountId}/contact`\n\n - `/accounts/{accountId}/transactions`\n\n## Mock server\n\nSee the [mock server postman collection](/core-exchange/example) for Core Exchange v5.1.\n\n## Error responses\n\nAn 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.\nError responses must contain a `code` and `message`, and may optionally include a `debugMessage`.\nSee the descriptions below:\n\n- `code`: The FDX error code: A long-term persistent identifier which can be used to trace error condition back to log information.\n (**Note:** This code may differ from the HTTP status code.)\n- `message`: End user displayable information which might help the customer diagnose an error\n- `debugMessage`: Message used to debug the root cause of the error. Contents should not be used in consumer\'s business logic. Can change at any time and should only be used for consumer to communicate with the data provider about an issue. Provider can include an error GUID in message for their use\n\n### Example error\n\nThe following is an example response with an HTTP status code of 409.\n\n```\n{\n "code": 705,\n "message": "Account is closed",\n "debugMessage": "Operation is not supported by the closed account"\n}\n```\n\nSee the Errors table in each endpoint description for more specific message and debug message examples.\n',contact:{name:"Plaid support",url:"https://plaid.com/data-connectivity-core-exchange/",email:"dataconnectivity@plaid.com"}},servers:[{url:"https://api.your-organization.com/fdx/v5",description:"Financial Data Exchange V5.1 Core API"}],tags:[{name:"Personal Information",description:"Search and view customer or customers"},{name:"Account Information",description:"Search and view customer accounts"},{name:"Account Transactions",description:"Search and view account transactions"},{name:"Payment Networks Information",description:"Search and view account payment networks"}],paths:{"/customers/current":{get:{operationId:"getCustomerInfo",tags:["Personal Information"],description:"Get the ID of the customer within the authorization scope.\n\n**Note:**\n\n
    \n
  • If you use OIDC authentication (recommended) you do not need to implement this endpoint as Plaid identifies the customer using the OIDC `id_token` response.
  • \n
  • If you use OAuth2 authentication, Plaid uses this endpoint as an alternate method of customer identification.
  • \n
\n",summary:"Get current authenticated customer ID",security:[{openIdConnect:[]},{oauth2:[]}],responses:{200:{description:"Data describing current authenticated customer",content:{"application/json":{schema:{$ref:"#/components/schemas/CustomerWithId"},examples:{"example-1":{value:{customerId:"someLongTermUniqueIDString"}}}}}}}}},"/accounts":{get:{operationId:"searchForAccounts",tags:["Account Information"],summary:"List all accounts",description:"Search and view customer accounts\n",security:[{openIdConnect:["Account"]},{oauth2:["Account"]}],parameters:[{$ref:"#/components/parameters/OffsetQuery"},{$ref:"#/components/parameters/LimitQuery"}],responses:{200:{description:"Array of accounts",content:{"application/json":{schema:{$ref:"#/components/schemas/Accounts"},examples:{"example-1":{value:{page:{nextOffset:"25"},accounts:[{depositAccount:{accountId:"depositAccount0000001",accountType:"CHECKING",accountNumberDisplay:"5820",productName:"Checking",nickname:"Main Checking",status:"OPEN",currency:{currencyCode:"USD"}}},{loanAccount:{accountId:"loanAccount0000001",accountType:"LOAN",accountNumberDisplay:"4704",productName:"Loan",nickname:"Primary Loan",status:"OPEN",currency:{currencyCode:"USD"}}},{locAccount:{accountId:"locAccount0000001",accountType:"LINEOFCREDIT",accountNumberDisplay:"8200",productName:"Line of Credit",nickname:"First plaidypus LOC",status:"OPEN",currency:{currencyCode:"USD"}}},{investmentAccount:{accountId:"investmentAccount0000001",accountType:"TAXABLE",accountNumberDisplay:"1050",productName:"Brokerage Account",nickname:"First plaidypus Brokerage",status:"OPEN",currency:{currencyCode:"USD"}}}]}}}}}}}}},"/accounts/{accountId}":{get:{operationId:"getAccount",tags:["Account Information"],summary:"Get account balances and liabilities",description:"Get account balances, liabilities, and other information. Plaid uses this endpoint to:\n\n
    \n
  • Get account balances for deposit accounts. For example, `CHECKING` or `SAVINGS`. For more information about how Plaid uses this information, see [Plaid Balance API](https://plaid.com/docs/api/products/balance/).
  • \n
  • Get account liabilities for `STUDENTLOAN`, `MORTGAGE`, and `CREDITCARD` loan accounts. For more information about how Plaid uses this information, see [Plaid Liabilities API](https://plaid.com/docs/api/products/liabilities/).
  • \n
  • Get balances and holdings for investment accounts. For more information about how Plaid uses this information, see [Plaid Investments API](https://plaid.com/docs/investments/).
  • \n
\n\nSee the response schema below for a full list of possible parameters for each account type.\n",security:[{openIdConnect:["Account"]},{oauth2:["Account"]}],parameters:[{$ref:"#/components/parameters/AccountIdPath"}],responses:{200:{description:"The full details of an investment, loan, deposit, or line of credit account",content:{"application/json":{schema:{$ref:"#/components/schemas/AccountWithDetails"}}}}}}},"/accounts/{accountId}/contact":{get:{operationId:"getAccountContact",tags:["Personal Information"],description:"Get contact information on the account.\n\nPlaid links contact information to accounts, rather than to users. Plaid consumes multiple holders and their contact information for the account, but doesn't attempt to correlate holders to their respective contact information. For more information about Plaid's identity model, see [Plaid Identity API](https://plaid.com/docs/api/products/identity/).\n",summary:"Get an account's contact information",parameters:[{$ref:"#/components/parameters/AccountIdPath"}],security:[{openIdConnect:["Customer"]},{oauth2:["Customer"]}],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:["Payment Networks Information"],description:"Get payment networks supported by an account, for example ACH (Automated Clearing House). For more information about how Plaid uses this information, see the [Plaid Auth API](https://plaid.com/docs/api/products/auth/).\n",summary:"Get payment networks supported by the account",security:[{openIdConnect:["Account"]},{oauth2:["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:{properties:{page:{$ref:"#/components/schemas/PageMetadata"},paymentNetworks:{type:"array",items:{$ref:"#/components/schemas/AccountPaymentNetwork"}}},required:["paymentNetworks"]},examples:{"example-1":{page:{nextOffset:25},paymentNetworks:[{bankId:"010088889",identifier:"1111222233335820",type:"US_ACH",transferIn:!0,transferOut:!0}]}}}}}}}},"/accounts/{accountId}/transactions":{get:{operationId:"searchForAccountTransactions",tags:["Account Transactions"],description:"List all account transactions. Plaid always queries this endpoint a `startTime` and an `endTime`, for example, `/accounts/{accountId}/transactions?startTime=2022-01-30&endTime=2022-05-30`, and expects the time filters to be based on the `postedTimestamp`.\n\nPlaid consumes data from this endpoint for the following account types only:\n
    \n
  • Loan
  • \n
  • Investment
  • \n
  • Deposit
  • \n
  • Line of credit (LOC)
  • \n
\n",summary:"List all account transactions",security:[{openIdConnect:["Transactions"]},{oauth2:["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. Plaid consumes the following transaction types: InvestmentTransaction, DepositTransaction, LoanTransaction, or LocTransaction\n",content:{"application/json":{schema:{$ref:"#/components/schemas/Transactions"},examples:{"example-1":{value:{page:{nextOffset:"2"},transactions:[{depositTransaction:{checkNumber:1234,payee:"ACME llc",transactionId:"depositTransaction000000001",postedTimestamp:"2022-04-06T00:00:00.000Z",transactionTimestamp:"2022-04-05T00:00:00.000Z",description:"check for latest ACME invoice",debitCreditMemo:"DEBIT",status:"PENDING",amount:400}},{depositTransaction:{transactionId:"depositTransaction000000002",postedTimestamp:"2022-04-07T00:00:00.000Z",transactionTimestamp:"2022-04-07T00:00:00.000Z",description:"reconciliation/adjustment of bank statement error",debitCreditMemo:"DEBIT",status:"POSTED",amount:.8}}]}}}}}}}}}},components:{securitySchemes:{openIdConnect:{type:"openIdConnect",description:"This API uses an [OpenID Connect (OIDC) authentication flow](/core-exchange/authentication) and accepts the resulting [access token](/core-exchange/authentication#response-parameters) as a bearer token. For example, `curl -H 'Authorization: Bearer '`.\n",openIdConnectUrl:"https://www.your-organization.com/.well-known/openid-configuration"},oauth2:{type:"oauth2",description:"This API uses an [OAuth2.0 authorization code flow](https://auth0.com/docs/get-started/authentication-and-authorization-flow/authorization-code-flow) and accepts the resulting access token as a bearer token. For example, `curl -H 'Authorization: Bearer '`.\n",flows:{authorizationCode:{authorizationUrl:"https://www.your-organization.com/authorize",tokenUrl:"https://www.your-organization.com/token",scopes:{Account:"(optional) Read account data",Customer:"(optional) Read customer data",Transactions:"(optional) Read transaction data"}}}}},parameters:{LimitQuery:{name:"limit",in:"query",description:"Number of elements that the API consumer wishes to receive. Plaid has a default limit of 100 elements. If this value differs from your organization's limit for the number of items to send in one response, then pick the lower of the two different limits and use the lower limit to define the number of items you send on each page of a paginated response. Plaid then gets the next page by making a new request with the opaque `nextOffset` field that your organization returned in the latest response, until your organization omits `nextOffset` in the response to indicate the last page.\n",schema:{type:"integer"}},OffsetQuery:{name:"offset",in:"query",description:"Plaid receives this value from your organization's latest response in a paginated response, and returns it to in a new request to get the next page. Your organization omits `nextOffset` in the response to indicate the last page.\n",schema:{type:"string",example:"qwer123454q2f"}},AccountIdPath:{name:"accountId",in:"path",description:"Account identifier, found in the `GET /accounts` endpoint response. Plaid expects the ID to be a different value from the account number.\n",required:!0,schema:{type:"string"}},EndTimeQuery:{name:"endTime",in:"query",description:"End time for use in retrieval of elements (ISO 8601). For transactions, Plaid expects this to filter by the `postedTimestamp`.",schema:{$ref:"#/components/schemas/DateString"}},StartTimeQuery:{name:"startTime",in:"query",description:"Start time for use in retrieval of elements (ISO 8601). For transactions, Plaid expects this to filter by the `postedTimestamp`.",schema:{$ref:"#/components/schemas/DateString"}}},schemas:{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"},region:{$ref:"#/components/schemas/String64",description:"State or province or territory."},postalCode:{type:"string",maxLength:16,description:"Postal code"},country:{$ref:"#/components/schemas/Iso3166CountryCode",description:"Country code"}},required:["line1","city","country"]},CustomerWithId:{title:"Customer entity.",description:"Represents a customer. Plaid-specific schema created to hold one property, the `customerId` property of the FDX `Customer` schema.\n",type:"object",properties:{customerId:{$ref:"#/components/schemas/Identifier",description:"Long-term persistent identity of the customer. This identity must be unique within your organization. Plaid consumes this customer ID if your organization uses OAuth2 instead of OIDC to secure the API. Plaid expects your organization to issue the ID as a consistent, static, opaque, unique identifier for the user\n",example:[{customerId:"customer0000001"}]}},required:["customerId"]},CustomerWithName:{title:"Customer entity",description:"Represents a customer. Plaid-specific schema created to hold one property, the `name` property of the FDX `Customer` schema.\n",type:"object",properties:{name:{$ref:"#/components/schemas/CustomerName"}},required:["name"]},CustomerName:{title:"Customer Name entity",description:"The name of an individual in their role as a customer. Plaid expects at least one populated name field. If any field is missing (for example, no first name), then you respond with an empty string for that field.\n",type:"object",allOf:[{$ref:"#/components/schemas/IndividualName"},{type:"object",properties:{prefix:{description:"Name prefix, e.g. Mr.",type:"string"}}}]},DeliveryAddress:{title:"Delivery Address",description:"A delivery address and its location type",type:"object",allOf:[{$ref:"#/components/schemas/Address"}]},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"}},required:["first","last"]},PageMetadata:{title:"Page Metadata",description:"Contains opaque identifier, `nextoffset`, for paginated result sets. The `nextOffset` ID doesn't need to be numeric or have any specific pattern. In other words, your organization can implement this however you prefer. The presence of this offset indicates that there's at least one more page of data available. The absence of this offset indicates that there are no more pages of data left in this paginated array. The API consumer returns this in the `offset` parameter in a new request to get the next page in the response array.\n",type:"object",properties:{nextOffset:{type:"string",example:"qwer123454q2f",description:"Opaque offset identifier."}}},PaginatedArray:{title:"Paginated Array",description:"Base class for results that may be paginated",type:"object",properties:{page:{$ref:"#/components/schemas/PageMetadata"}}},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,description:"Country calling codes defined by ITU-T recommendations E.123 and E.164"},number:{type:"string",maxLength:15,pattern:"\\d+",description:"Telephone subscriber number defined by ITU-T recommendation E.164"}},required:["number","type"]},AccountContact:{title:"Account Contact entity",description:"Contact information for the account.",type:"object",properties:{holders:{type:"array",items:{$ref:"#/components/schemas/AccountHolder"},minItems:1,description:"Owners of the account. Note that while the [FDX specification](https://financialdataexchange.org) enables associating holders and their contact information in the full `AccountHolder` schema, Plaid doesn't consume these associations. Instead, Plaid consumes limited information for each `AccountHolder` and doesn't associate contact information such as emails, addresses, or telephone numbers to account holders. For more information about Plaid's data model for account contact information, see [Identity](https://plaid.com/docs/api/products/identity/).\n",example:[{relationship:"SECONDARY",name:{first:"Ernest",middle:"Miller",last:"Hemingway",suffix:"IV"}},{relationship:"PRIMARY_JOINT",name:{first:"Maya",last:"Angelou",middle:"Annie"}}]},emails:{type:"array",items:{type:"string"},minItems:1,description:"Email addresses associated with the account.\n",example:["ernest.m.hemingway@domain.tld","m.angelou@domain.tld"]},addresses:{type:"array",items:{$ref:"#/components/schemas/DeliveryAddress"},minItems:1,description:"Physical mail addresses associated with the account.\n",example:[{line1:"1850 N Clark St",line2:"Apartment 103",city:"Chicago",region:"IL",postalCode:"60614",country:"US"},{line1:"2014 N Main St",city:"San Francisco",region:"CA",postalCode:"94105",country:"US"}]},telephones:{type:"array",items:{$ref:"#/components/schemas/TelephoneNumber"},minItems:1,description:"Telephone numbers associated with the account.\n",example:[{type:"HOME",country:"1",number:"3127771926"},{type:"CELL",country:"53",number:"45915607"},{type:"HOME",country:"1",number:"4157771926"}]}},required:["holders","emails","addresses","telephones"]},AccountDescriptor:{title:"Account Descriptor entity",description:"This descriptor provides minimal information about the account for use in lightweight arrays",type:"object",properties:{accountId:{description:"Long-term persistent identity of the account, though not an account number. This identity must be unique within your organization.\n",$ref:"#/components/schemas/Identifier"},accountNumberDisplay:{description:"Account display number for the end user's handle at the owning financial institution. Plaid expects that the last 4 digits of this masked number correspond to the last 4 digits of the account number.\n",type:"string",example:"4321"},productName:{type:"string",description:"Marketed product name for this account. Used in UIs to assist in account selection"},nickname:{description:"Name given by the user. Used in UIs to assist in account selection. Plaid recommends returning this only if the account permits user renaming.\n",type:"string"},status:{$ref:"#/components/schemas/AccountStatus"},currency:{$ref:"#/components/schemas/Currency"}},required:["accountId","productName","status","currency"]},AccountHolder:{title:"Account Holder entity",type:"object",allOf:[{$ref:"#/components/schemas/CustomerWithName"},{type:"object",properties:{relationship:{$ref:"#/components/schemas/AccountHolderRelationship",description:"Customer's relationship to the account"}}}]},AccountPaymentNetwork:{title:"Payment Network Supported by Account",description:"This provides details required to execute a transaction against the account within the payment network",type:"object",properties:{bankId:{type:"string",description:"Bank identifier used by the payment network ie. Routing Number"},identifier:{type:"string",description:"The number used to identify the account within the payment network."},type:{$ref:"#/components/schemas/PaymentNetworkType"},transferIn:{type:"boolean",description:"Can transfer funds to the account using this information. Plaid expect that this value represents the account's current ability to be credited through a payment network.\nPlaid recommends dynamically updating this value, for example to represent if the account is locked or not.\n\n**Note:** Both `transferIn` and `transferOut` must be `true` in order for the account to support ACH.\n"},transferOut:{type:"boolean",description:"Can transfer funds from the account using this information. Plaid expect that this value represents the account's current ability to be debited through a payment network.\nPlaid recommends dynamically updating this value, for example to represent if the account is locked or not.\n\n**Note:** Both `transferIn` and `transferOut` must be `true` in order for the account to support ACH.\n"}},required:["bankId","identifier","type","transferIn","transferOut"]},AccountWithDetails:{title:"Account With Details entity",description:"An account with full details",type:"object",oneOf:[{type:"object",title:"Deposit Account",properties:{depositAccount:{$ref:"#/components/schemas/DepositAccount"}},required:["depositAccount"],additionalProperties:!1},{type:"object",title:"Investment Account",properties:{investmentAccount:{$ref:"#/components/schemas/InvestmentAccount"}},required:["investmentAccount"],additionalProperties:!1},{type:"object",title:"Loan Account",properties:{loanAccount:{$ref:"#/components/schemas/LoanAccount"}},required:["loanAccount"],additionalProperties:!1},{type:"object",title:"Line of Credit Account",properties:{locAccount:{$ref:"#/components/schemas/LocAccount"}},required:["locAccount"],additionalProperties:!1}]},AccountWithDescriptor:{title:"Account With Descriptor entity",description:"This provides an instance of an account without full details",type:"object",anyOf:[{type:"object",title:"Deposit Account",properties:{depositAccount:{$ref:"#/components/schemas/DepositAccountDescriptor",description:"A deposit account. For example, a checking, savings or money market account.\nPlaid consumes more detailed information for `CHECKING` and `SAVINGS` accounts.\n\nThe `accountType` field for deposit accounts may be set to any of the following:\n\n
    \n
  • `CHECKING`: A deposit account held at a financial institution that allows withdrawals and deposits.
  • \n
  • `SAVINGS`: An interest-bearing deposit account held at a bank or other financial institution.
  • \n
  • `CD`: A certificate of deposit (CD) is a product offered by banks and credit unions that provides an interest rate premium in exchange for the customer agreeing to leave a lump-sum deposit untouched for a predetermined period of time.
  • \n
  • `COMMERCIALDEPOSIT`: A deposit account for commercial customers, for example a business trust account.
  • \n
  • `ESCROW`: A contractual arrangement in which a third party (the stakeholder or escrow agent) receives and disburses money or property for the primary transacting parties, with the disbursement dependent on conditions agreed to by the transacting parties.
  • \n
  • `MONEYMARKET`: A deposit account that pays interest based on current interest rates in the money markets.
  • \n
  • `OTHERDEPOSIT`: Use when none of the listed enums apply.
  • \n
\n"}},required:["depositAccount"],additionalProperties:!1},{type:"object",title:"Loan Account",properties:{loanAccount:{$ref:"#/components/schemas/LoanAccountDescriptor",description:"A loan account. For example, mortgage, student loan or auto loan.\nPlaid consumes more detailed information for `MORTGAGE` and `STUDENTLOAN` accounts.\n\nThe `accountType` field for loan accounts may be set to any of the following:\n\n
    \n
  • `AUTOLOAN`: A type of loan used to finance a car purchase.
  • \n
  • `COMMERCIALLOAN`: A preset borrowing limit that can be used at any time.
  • \n
  • `HOMEEQUITYLOAN`: A type of loan in which the borrower uses the equity of his or her home as collateral.
  • \n
  • `INSTALLMENT`: A type of agreement or contract involving a loan that is repaid over time with a set number of scheduled payments.
  • \n
  • `LOAN`: The lending of money by one or more individuals, organizations, or other entities to other individuals, organizations etc.
  • \n
  • `MILITARYLOAN`: A military loan.
  • \n
  • `MORTGAGE`: A type of loan you can use to buy or refinance a home.
  • \n
  • `PERSONALLOAN`: A type of debt that is not protected by a guarantor, or collateralized by a lien on specific assets of the borrower.
  • \n
  • `SMBLOAN`: A small/medium business loan.
  • \n
  • `STUDENTLOAN`: A type of loan designed to help students pay for post-secondary education and the associated fees, such as tuition, books and supplies, and living expenses.
  • \n
\n"}},required:["loanAccount"],additionalProperties:!1},{type:"object",title:"Line of Credit Account",properties:{locAccount:{$ref:"#/components/schemas/LocAccountDescriptor",description:"A line-of-credit account. For example, a credit card or home equity line of credit.\nPlaid consumes more detailed information for `CREDITCARD` accounts.\n\nThe `accountType` field for line of credit accounts may be set to any of the following:\n\n
    \n
  • `LINEOFCREDIT`: A credit facility extended by a bank or other financial institution to a government, business or individual customer that enables the customer to draw on the facility when the customer needs funds.
  • \n
  • `CHARGE`: An account to which goods and services may be charged on credit.
  • \n
  • `COMMERCIALLINEOFCREDIT`: An account with a preset borrowing limit that can be used at any time.
  • \n
  • `CREDITCARD`: Allows cardholders to borrow funds with which to pay for goods and services with merchants that accept cards for payment.
  • \n
  • `HOMELINEOFCREDIT`: A loan in which the lender agrees to lend a maximum amount within an agreed period, where the collateral is the borrower's equity in their house.
  • \n
\n"}},required:["locAccount"],additionalProperties:!1},{type:"object",title:"Investment Account",properties:{investmentAccount:{$ref:"#/components/schemas/InvestmentAccountDescriptor",description:"An investment account. For example, a 401K or IRA.\nPlaid consumes the same details for all investment accounts.\n\nThe `accountType` field for investment accounts may be set to any of the following:\n\n
    \n
  • `401A`: An employer-sponsored money-purchase retirement plan that allows dollar or percentage-based contributions from the employer, the employee, or both.
  • \n
  • `401K`: An employer-sponsored defined-contribution pension account defined in subsection 401(k) of the Internal Revenue Code.
  • \n
  • `403B`: A U.S. tax-advantaged retirement savings plan available for public education organizations, some non-profit employers (only Internal Revenue Code 501(c)(3) organizations), cooperative hospital service organizations, and self-employed ministers in the United States.
  • \n
  • `529`: A tax-advantaged savings plan designed to help pay for education.
  • \n
  • `BROKERAGEPRODUCT`: Investment management offered by a licensed brokerage firm that places trades on behalf of the customer, utilizing any number of investment options.
  • \n
  • `COVERDELL`: A trust or custodial account set up in the United States solely for paying qualified education expenses for the designated beneficiary of the account.
  • \n
  • `DIGITALASSET`: An account containing digital assets.
  • \n
  • `DEFINEDBENEFIT`: An employer-sponsored retirement plan where employee benefits are computed using a formula that considers several factors, such as length of employment and salary history.
  • \n
  • `ESOP`: An employee stock ownership plan (ESOP) is an employee benefit plan that gives workers ownership interest in the company.
  • \n
  • `GUARDIAN`: An account of a child in the parent's name, with legal title to the assets in the account, as well as all capital gains and tax liabilities produced from the account belonging to the parent.
  • \n
  • `INSTITUTIONALTRUST`: An institutional trust account.
  • \n
  • `IRA`: An individual retirement account (IRA) is a tax-advantaged account that individuals use to save and invest for retirement.
  • \n
  • `KEOGH`: A tax-deferred pension plan available to self-employed individuals or unincorporated businesses for retirement purposes.
  • \n
  • `NONQUALIFIEDPLAN`: A type of tax-deferred employer-sponsored retirement plan that falls outside of ERISA guidelines.
  • \n
  • `OTHERINVESTMENT`: Use when none of the listed enums apply.
  • \n
  • `ROLLOVER`: An account containing investments rolled over from an employee-sponsored account.
  • \n
  • `ROTH`: An individual retirement account that offers tax-free growth and tax-free withdrawals in retirement.
  • \n
  • `SARSEP`: A simplified employee pension (SEP) plan set up before 1997 that includes a salary reduction arrangement.
  • \n
  • `TAXABLE`: A taxable investment account.
  • \n
  • `TDA`: TreasuryDirect Account.
  • \n
  • `TRUST`: A type of financial account that is opened by an individual and managed by a designated trustee for the benefit of a third party in accordance with agreed-upon terms.
  • \n
  • `TERM`: Life insurance that provides coverage at a fixed rate of payments for a limited period of time.
  • \n
  • `UGMA`: Uniform Gifts to Minors Act account.
  • \n
  • `UTMA`: Uniform Transfers to Minors Act account.
  • \n
\n"}},required:["investmentAccount"],additionalProperties:!1},{type:"object",title:"Insurance Account",properties:{insuranceAccount:{$ref:"#/components/schemas/InsuranceAccountDescriptor",description:"An insurance account. For example, whole life insurance or short-term disability.\n\nThe `accountType` field for insurance accounts may be set to any of the following:\n\n
    \n
  • `LONGTERMDISABILITY`: Insurance that replaces a portion of the policyholder's income due to a disability for an extended period of time, usually more than a year.
  • \n
  • `SHORTTERMDISABILITY`: Insurance that replaces a portion of the policyholder's income due to a disability for a short period of time, usually less than a year.
  • \n
  • `UNIVERSALLIFE`: A type of a cash value life insurance where the excess of premium payments above the current cost of insurance is credited to the cash value of the policy, which in turn is credited each month with interest.
  • \n
  • `WHOLELIFE`: Life insurance which is guaranteed to remain in force for the insured's entire lifetime, provided required premiums are paid, or to the maturity date.
  • \n
\n"}},required:["insuranceAccount"],additionalProperties:!1},{type:"object",title:"Annuity Account",properties:{annuityAccount:{$ref:"#/components/schemas/AnnuityAccountDescriptor",description:"An annuity account. For example, a fixed or variable annuity account.\n\nThe `accountType` field for annuity accounts may be set to any of the following:\n\n
    \n
  • `ANNUITY`: A form of insurance or investment entitling the investor to a series of annual sums.
  • \n
  • `FIXEDANNUITY`: A type of insurance contract that promises to pay the buyer a specific, guaranteed interest rate on their contributions to the account.
  • \n
  • `VARIABLEANNUITY`: A type of insurance contract that promises to pay back the buyer based on the performance of an underlying portfolio of mutual funds selected by the buyer.
  • \n
\n"}},required:["annuityAccount"],additionalProperties:!1}]},Accounts:{title:"Accounts entity",description:"An optionally paginated array of accounts",type:"object",allOf:[{$ref:"#/components/schemas/PaginatedArray"},{type:"object",properties:{accounts:{type:"array",items:{$ref:"#/components/schemas/AccountWithDetails"},description:"An array of accounts. May include accounts of any of the following types: [deposit](#deposit-account), [investment](#investment-account), [line of credit](#line-of-credit-account), [loan](#loan-account)\n\n**Note:** Each object in the accounts array is expected to contain at least one account type.\n",minItems:1}},required:["accounts"]}]},AnnuityAccountDescriptor:{allOf:[{$ref:"#/components/schemas/AccountDescriptor"},{type:"object",properties:{accountType:{$ref:"#/components/schemas/AnnuityAccountType"}},required:["accountType"]}],"x-examples":[{annuityAccount:{accountId:"annuityAccount0000001",accountType:"FIXEDANNUITY",accountNumberDisplay:"53901",productName:"Fixed Annuity",nickname:"Fixed annuity 1",status:"OPEN",currency:{currencyCode:"USD"}}}]},Currency:{title:"Currency entity",description:"Represents an international currency.",type:"object",properties:{currencyCode:{$ref:"#/components/schemas/Iso4217Code",description:"ISO 4217 currency code"}},required:["currencyCode"]},DepositAccount:{allOf:[{$ref:"#/components/schemas/AccountDescriptor"},{type:"object",properties:{accountType:{$ref:"#/components/schemas/DepositAccountType"}},required:["accountType"]}]},DepositAccountDescriptor:{title:"Deposit Account entity",description:'Full details of a deposit account. Plaid consumes the same information for all types of deposit accounts.\nPlaid expects a decimal amount with two places (to represent fractional values of the base currency) for all monetary amounts. For example, `"currentBalance": 192.00`.\n\nThe `accountType` field for deposit accounts may be set to any of the [account types](#deposit-account-types) listed below.\n',type:"object",properties:{depositAccount:{$ref:"#/components/schemas/DepositAccount"}},required:["depositAccount"],"x-examples":[{depositAccount:{accountId:"depositAccount0000001",accountType:"CHECKING",accountNumberDisplay:"5820",productName:"Checking",nickname:"Main Checking",status:"OPEN",currency:{currencyCode:"USD"}}}]},DepositAccountFull:{title:"Deposit Account entity",description:'Full details of a deposit account. Plaid consumes the same information for all types of deposit accounts.\nPlaid expects a decimal amount with two places (to represent fractional values of the base currency) for all monetary amounts. For example, `"currentBalance": 192.00`.\n\nThe `accountType` field for deposit accounts may be set to any of the [account types](#deposit-account-types) listed below.\n',type:"object",properties:{depositAccount:{$ref:"#/components/schemas/DepositAccount"}},required:["depositAccount"],"x-examples":[{depositAccount:{accountId:"someLongTermUniqueIDString",accountNumberDisplay:"4321",productName:"string",nickname:"string",status:"CLOSED",currency:{currencyCode:"AED"},accountType:"CHECKING",currentBalance:0,availableBalance:0}}]},DepositTransaction:{title:"Deposit Transaction entity",description:"A transaction on a deposit account type",type:"object",allOf:[{$ref:"#/components/schemas/Transaction"},{type:"object",properties:{payee:{$ref:"#/components/schemas/String255",description:"Payee name"},checkNumber:{type:"integer",description:"Check number. Plaid expects this solely if the transaction involves a check.\n"}}}],"x-examples":[{transactionId:"depositTransaction000000001",transactionTimestamp:"2022-04-05T00:00:00.000Z",description:"check for latest ACME invoice",debitCreditMemo:"DEBIT",status:"PENDING",amount:400,payee:"Acme LLC",checkNumber:57448}]},Holding:{title:"Holding entity",description:"A holding in an investment account.\nPlaid maps the `holding` and the `investmentAccount` FDX models to its securities models, which hold universal information like the ticker symbol, and to its holdings models, which hold account-specific information like balances. For more information, see [Plaid investments](https://plaid.com/docs/investments/#securities-and-holdings).\n",allOf:[{type:"object",properties:{securityId:{description:"If you return the `securityId` for a holding, Plaid uses it to look up the closing price from NYSE Group Security Master. If you don't return `securityId` for a holding that uses security IDs (not recommended), Plaid uses the `unitPrice` as the closing price.\nThis field, along with `securityIdType` are **required** unless `symbol` is provided.\n**Note:** If `securityId` is provided, `securityIdType` is required.\n",type:"string"},securityIdType:{$ref:"#/components/schemas/SecurityIdType"},holdingName:{type:"string",description:"Holding name or security name"},holdingType:{$ref:"#/components/schemas/HoldingType"},holdingSubType:{$ref:"#/components/schemas/HoldingSubType",description:"MONEYMARKET, CASH"},symbol:{type:"string",description:"Ticker / Market symbol\nThis field is **required** unless both `securityId` and `securityIdType` are provided."},purchasedPrice:{type:"number",description:"Price of holding at the time of purchase. Plaid determines an approximate [cost basis](https://plaid.com/docs/api/products/investments/#investments-holdings-get-response-holdings-cost-basis) using the purchase price and the number of units. Plaid cannot take fees into account to determine the cost basis because the FDX holding schema doesn't include fees.\n"},currentUnitPrice:{type:"number",description:"Current unit price. Plaid uses this as the [institution_price](https://plaid.com/docs/api/products/investments/#investments-holdings-get-response-holdings-institution-price). Plaid falls back to using this as the [close price](https://plaid.com/docs/api/products/investments/#investments-holdings-get-response-securities-close-price) if you don't return `securityId` for holdings involving securities.\n"},currentUnitPriceDate:{$ref:"#/components/schemas/DateString",description:"Current unit price as of date"},units:{type:"number",description:"Plaid requires this field for holdings and transactions involving securities.\nFor security-based actions other than stock splits, quantity.\nShares for stocks, mutual funds, and others. Face value for bonds.\nContracts for options.\n\n**Note:** This field is required if the transaction involves a security.\n"},marketValue:{type:"number",description:"Market value at the time of data retrieved"},faceValue:{type:"number",description:"Required for bonds. Face value at the time of data retrieved. If this isn't present, Plaid assumes the holding isn't a bond and falls back to `marketValue`.\n"},cashAccount:{type:"boolean",description:"If true, indicates that this holding is used to maintain proceeds from sales, dividends, and other cash postings to the investment account. If you don't set a value for `isCashEquivalent` in the `fiAttributes` array, then Plaid uses `cashAccount` in determining the [is_cash_equivalent](https://plaid.com/docs/api/products/investments/#investments-holdings-get-response-securities-is-cash-equivalent) status.\n"},currency:{$ref:"#/components/schemas/Currency",description:"Currency information if it is different from Account entity."},fiAttributes:{type:"array",description:"Array of financial institution-specific attributes. Plaid recommends including a value for [is_cash_equivalent](https://plaid.com/docs/api/products/investments/#investments-holdings-get-response-securities-is-cash-equivalent) property in this array. Plaid accepts `isCashEquivalent` as the attribute name and a string value of `true` or `false`. If you return a value for `isCashEquivalent`, then return the same value for `cashAccount` as a boolean.\n",items:{$ref:"#/components/schemas/FiAttribute"}}},required:["cashAccount","marketValue"]}]},InsuranceAccountDescriptor:{allOf:[{$ref:"#/components/schemas/AccountDescriptor"},{type:"object",properties:{accountType:{$ref:"#/components/schemas/InsuranceAccountType"}},required:["accountType"]}],"x-examples":[{insuranceAccount:{accountId:"insuranceAccount0000001",accountType:"LONGTERMDISABILITY",accountNumberDisplay:"5820",productName:"Long-term disability",nickname:"Long term",status:"OPEN",currency:{currencyCode:"USD"}}}]},InvestmentAccount:{allOf:[{$ref:"#/components/schemas/AccountDescriptor"},{type:"object",properties:{accountType:{$ref:"#/components/schemas/InvestmentAccountType"}},required:["accountType"]}]},InvestmentAccountDescriptor:{description:"The type of investment account. For example, a 401K or IRA. Plaid consumes the same details for all investment accounts. The `accountType` field for investment accounts may be set to any of the [account types](#investment-account-types) listed below.\n",type:"object",properties:{investmentAccount:{$ref:"#/components/schemas/InvestmentAccount"}},required:["investmentAccount"],"x-examples":[{investmentAccount:{accountId:"investmentAccount0000001",accountType:"TAXABLE",accountNumberDisplay:"1050",productName:"Brokerage Account",nickname:"First plaidypus Brokerage",status:"OPEN",currency:{currencyCode:"USD"}}}]},InvestmentAccountFull:{allOf:[{$ref:"#/components/schemas/InvestmentAccount"},{type:"object",properties:{availableCashBalance:{type:"number",description:"Cash balance across all sub-accounts. Plaid expects that this includes sweep funds."},balanceAsOf:{description:"As-of date of balances.\n\nISO 8601 date-time in format `YYYY-MM-DDThh:mm:ss.nnn[Z|[+|-]hh:mm]` according to [IETF RFC3339](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6)\n",$ref:"#/components/schemas/Timestamp"},currentValue:{type:"number",description:"Total current value of all investments."},holdings:{type:"array",description:"Holdings in the investment account.\nPlaid maps the `holding` and the `investmentAccount` FDX models to its securities models, which hold universal information like the ticker symbol, and to its holdings models, which hold account-specific information like balances. For more information, see [Plaid investments](https://plaid.com/docs/investments/#securities-and-holdings).\n",items:{$ref:"#/components/schemas/Holding"}}},required:["availableCashBalance","currentValue"]},{"x-examples":[{investmentAccount:{accountId:"investmentAccount0000001",accountType:"TAXABLE",accountNumberDisplay:"1050",productName:"Brokerage Account",nickname:"First plaidypus Brokerage",status:"OPEN",currency:{currencyCode:"USD"},availableCashBalance:4302.39,balanceAsOf:null,currentValue:4302.39,holdings:[{securityId:"string",securityIdType:"CINS",holdingName:"string",holdingType:"ANNUITY",holdingSubType:"CASH",symbol:"MTSN",purchasedPrice:12.5,currentUnitPrice:34.2,currentUnitPriceDate:"2024-07-15",units:100,marketValue:3400,faceValue:3400,cashAccount:!0,currency:{currencyCode:"AED"},fiAttributes:[{name:"string",value:"string"}]}]}}]}]},InvestmentTransaction:{title:"Investment Transaction entity",description:"A transaction on an investment account.\nIn addition to the required fields in the base `Transaction` model, Plaid requires the following fields\nfor all transactions on an investment account:\n\n* `fees`\n* `transactionType`\n\nIf the transaction involves a security, Plaid additionally requires the following fields:\n\n* `unitPrice`\n* `units`\n* Either of the following:\n - `symbol`\n - `securityId` and `securityIdType`\n",type:"object",allOf:[{$ref:"#/components/schemas/Transaction"},{type:"object",properties:{transactionType:{$ref:"#/components/schemas/InvestmentTransactionType"},securityId:{type:"string",description:"If you return the `securityId` for a holding, Plaid uses it to look up the closing price from NYSE Group Security Master. If you don't return `securityId` for a holding that uses security IDs (not recommended), Plaid uses the `unitPrice` as the closing price.\nThis field, along with `securityIdType` are **required** unless `symbol` is provided.\n**Note:** If `securityId` is provided, `securityIdType` is required.\n"},securityIdType:{$ref:"#/components/schemas/SecurityIdType"},securityType:{$ref:"#/components/schemas/SecurityType",description:"STOCK, MUTUALFUND, DEBT, OPTION, SWEEP, OTHER, BOND"},symbol:{type:"string",description:"Ticker symbol\nThis field is **required** unless both `securityId` and `securityIdType` are provided."},commission:{type:"number",description:"Plaid expects that your organization includes a value for commission if the commission isn't included in `fees`.\n"},fees:{type:"number",description:"Fees applied to the trade. Plaid expects that the `fees` include the commission, unless your organization separately provides a value for `commission`.\n"},unitPrice:{type:"number",description:"Unit price. Plaid uses this as the [price](https://plaid.com/docs/api/products/investments/#investments-transactions-get-response-investment-transactions-price).\nPlaid falls back to using this as the [close price](https://plaid.com/docs/api/products/investments/#investments-transactions-get-response-securities-close-price)\nif you don't return `securityId` for transactions involving securities.\n\n**Note:** This field is required if the transaction involves a security.\n"},units:{type:"number",description:"Plaid requires this field for holdings and transactions involving securities.\nFor security-based actions other than stock splits, quantity.\nShares for stocks, mutual funds, and others. Face value for bonds.\nContracts for options.\n\n**Note:** This field is required if the transaction involves a security.\n"},unitType:{$ref:"#/components/schemas/UnitType",description:"SHARES, CURRENCY"},fiAttributes:{type:"array",description:"Array of financial institution-specific attributes. Plaid recommends including a value for [is_cash_equivalent](https://plaid.com/docs/api/products/investments/#investments-transactions-get-response-securities-is-cash-equivalent) property in this array. Plaid accepts `isCashEquivalent` as the attribute name and a string value of `true` or `false`.\n",items:{$ref:"#/components/schemas/FiAttribute"}}},required:["fees","transactionType"]}],"x-examples":[{transactionId:"investmentTransaction000000001",transactionTimestamp:"2022-04-05T00:00:00.000Z",description:"check for latest ACME invoice",debitCreditMemo:"DEBIT",status:"PENDING",amount:400,transactionType:"CHECK",securityId:"APW881",securityIdType:"CMC",securityType:"DEBT",symbol:"MSFT",commission:.1,unitPrice:15.3,units:1e3,unitType:"SHARES",fiAttributes:[{name:"Vanguard",value:80}]}]},LoanAccount:{title:"Loan Account entity",type:"object",allOf:[{$ref:"#/components/schemas/AccountDescriptor"},{type:"object",properties:{accountType:{$ref:"#/components/schemas/LoanAccountType"},accountNumber:{type:"string",example:"loanAccount0000001",description:"Full account number for the end user's handle for the account at the owning institution\nRequired for accountType 'MORTGAGE'\n"},principalBalance:{type:"number",example:580303.95,description:"Principal balance of loan"},escrowBalance:{type:"number",example:3400.61,description:"Escrow balance of loan"},originalPrincipal:{type:"number",example:650400,description:"Original principal of loan"},originatingDate:{$ref:"#/components/schemas/DateString",description:"Loan origination date"},loanTerm:{type:"integer",example:360,description:"Term of loan in months"},nextPaymentAmount:{type:"number",example:2483.12,description:"Amount of next payment"},nextPaymentDate:{$ref:"#/components/schemas/DateString",description:"Date of next payment"},lastPaymentAmount:{type:"number",example:2483.12,description:"Last payment amount"},lastPaymentDate:{$ref:"#/components/schemas/DateString",description:"Last payment date"},maturityDate:{$ref:"#/components/schemas/DateString",description:"Maturity date"},interestPaidYearToDate:{type:"number",description:"Interest paid year to date"},interestRate:{type:"number",example:.075,description:"The account's interest rate"},interestRateType:{$ref:"#/components/schemas/InterestRateType"}},required:["principalBalance","interestRate","interestRateType","accountType"]}]},LoanAccountDescriptor:{description:'Full details of a loan account. The `accountType` field for loan accounts may be set to any of the [account types](#loan-account-types) listed below.\n\nPlaid only consumes the `MORTGAGE` and `STUDENTLOAN` types for its [Liabilities API](https://plaid.com/docs/api/products/liabilities/). For other loan account types Plaid consumes account details and transactions.\nPlaid consumes all loan account information as returned in the `GET /accounts` endpoint, as well as the additional information listed below:\n\nRequired for all loan accounts:\n* `principalBalance`\n* `interestRate`\n* `interestRateType`\n\nOptional fields for `STUDENTLOAN` accounts:\n* `interestPaidYearToDate`\n* `lastPaymentAmount`\n* `lastPaymentDate`\n* `maturityDate`\n* `nextPaymentDate`\n* `originalPrincipal`\n* `originatingDate`\n\nRequired for `MORTGAGE` accounts:\n* `accountNumber`\n\nOptional fields for `MORTGAGE` accounts:\n* `escrowBalance`\n* `interestPaidYearToDate`\n* `lastPaymentAmount`\n* `lastPaymentDate`\n* `loanTerm`\n* `maturityDate`\n* `nextPaymentAmount`\n* `nextPaymentDate`\n* `originalPrincipal`\n* `originatingDate`\n\nPlaid expects a decimal amount with two places (to represent fractional values of the base currency) for all monetary amounts. For example, `"escrowBalance": 192.00`.\n',type:"object",properties:{loanAccount:{$ref:"#/components/schemas/LoanAccount"}},required:["loanAccount"],"x-examples":[{loanAccount:{accountId:"loanAccount0000001",accountType:"LOAN",accountNumberDisplay:"4704",productName:"Loan",nickname:"Primary Loan",status:"OPEN",currency:{currencyCode:"USD"}}}]},LoanAccountFull:{description:'Full details of a loan account. The `accountType` field for loan accounts may be set to any of the [account types](#loan-account-types) listed below.\n\nPlaid only consumes the `MORTGAGE` and `STUDENTLOAN` types for its [Liabilities API](https://plaid.com/docs/api/products/liabilities/). For other loan account types Plaid consumes account details and transactions.\nPlaid consumes all loan account information as returned in the `GET /accounts` endpoint, as well as the additional information listed below:\n\nRequired for all loan accounts:\n* `principalBalance`\n* `interestRate`\n* `interestRateType`\n\nOptional fields for `STUDENTLOAN` accounts:\n* `interestPaidYearToDate`\n* `lastPaymentAmount`\n* `lastPaymentDate`\n* `maturityDate`\n* `nextPaymentDate`\n* `originalPrincipal`\n* `originatingDate`\n\nRequired for `MORTGAGE` accounts:\n* `accountNumber`\n\nOptional fields for `MORTGAGE` accounts:\n* `escrowBalance`\n* `interestPaidYearToDate`\n* `lastPaymentAmount`\n* `lastPaymentDate`\n* `loanTerm`\n* `maturityDate`\n* `nextPaymentAmount`\n* `nextPaymentDate`\n* `originalPrincipal`\n* `originatingDate`\n\nPlaid expects a decimal amount with two places (to represent fractional values of the base currency) for all monetary amounts. For example, `"escrowBalance": 192.00`.\n',type:"object",properties:{loanAccount:{$ref:"#/components/schemas/LoanAccount"}},required:["loanAccount"],"x-examples":[{loanAccount:{accountId:"someLongTermUniqueIDString",accountNumberDisplay:"4321",productName:"string",nickname:"string",status:"CLOSED",currency:{currencyCode:"AED"},accountType:"AUTOLOAN",accountNumber:"string",principalBalance:0,escrowBalance:0,originalPrincipal:0,originatingDate:"2021-07-15",loanTerm:0,nextPaymentAmount:0,nextPaymentDate:"2021-07-15",lastPaymentAmount:0,lastPaymentDate:"2021-07-15",maturityDate:"2021-07-15",interestPaidYearToDate:0,interestRate:0,interestRateType:"FIXED"}}]},LoanTransaction:{title:"Loan Transaction entity",description:"A transaction on a loan account",type:"object",allOf:[{$ref:"#/components/schemas/Transaction"},{type:"object",properties:{transactionType:{$ref:"#/components/schemas/LoanTransactionType"}}}],"x-examples":[{transactionId:"loanTransaction000000001",transactionTimestamp:"2022-04-05T00:00:00.000Z",description:"latest ACME invoice",debitCreditMemo:"CREDIT",status:"PENDING",amount:400}]},LocAccount:{type:"object",allOf:[{$ref:"#/components/schemas/AccountDescriptor"},{type:"object",properties:{accountType:{$ref:"#/components/schemas/LocAccountType"},creditLine:{type:"number",description:"Credit limit"},availableCredit:{type:"number",description:"Available credit. Required for all accountTypes except for `CHARGE`"},nextPaymentAmount:{type:"number",description:"Amount of next payment"},nextPaymentDate:{$ref:"#/components/schemas/DateString",description:"Due date of next payment"},principalBalance:{type:"number",description:"Principal balance"},currentBalance:{type:"number",description:"Current balance of the line of credit"},minimumPaymentAmount:{type:"number",description:"Minimum payment amount"},lastPaymentAmount:{type:"number",description:"Last payment amount"},lastPaymentDate:{$ref:"#/components/schemas/DateString",description:"Last payment date"},pastDueAmount:{type:"number",description:"Amount owed that the account holder failed to pay on the due date"},lastStmtBalance:{type:"number",description:"Last statement balance"},lastStmtDate:{$ref:"#/components/schemas/DateString",description:"Last statement date"},purchasesApr:{type:"number",description:"Purchases APR"},advancesApr:{type:"number",description:"Advances APR"}},required:["currentBalance","accountType"]}]},LocAccountDescriptor:{description:'Full details of a line of credit account. The `accountType` field for line of credit accounts may be set to any of the [account types](#loc-account-types) listed below.\n\nPlaid may consume all the parameters returned by the `GET /accounts` endpoint:\n\n* `availableCredit`\n* `creditLine`\n* `currentBalance`\n\nAdditionally, for the `CREDITCARD` accountType, Plaid consumes the previous information plus the following for its liabilities product:\n\n* `advancesApr`\n* `lastPaymentAmount`\n* `lastPaymentDate`\n* `lastStmtBalance`\n* `lastStmtDate`\n* `minimumPaymentAmount`\n* `nextPaymentDate`\n* `purchasesApr`\nPlaid expects a decimal amount with two places (to represent fractional values of the base currency) for all monetary amounts. For example, `"currentBalance": 192.00`.\n',type:"object",properties:{locAccount:{$ref:"#/components/schemas/LocAccount"}},required:["locAccount"],"x-examples":[{locAccount:{accountId:"loc_01_creditcard",accountNumberDisplay:"8200",productName:"First Plaidypus Credit Card",nickname:"my travel rewards card",status:"OPEN",currency:{currencyCode:"USD"},accountType:"CREDITCARD"}}]},LocAccountFull:{description:'Full details of a line of credit account. The `accountType` field for line of credit accounts may be set to any of the [account types](#loc-account-types) listed below.\n\nPlaid may consume all the parameters returned by the `GET /accounts` endpoint:\n\n* `availableCredit`\n* `creditLine`\n* `currentBalance`\n\nAdditionally, for the `CREDITCARD` accountType, Plaid consumes the previous information plus the following for its liabilities product:\n\n* `advancesApr`\n* `lastPaymentAmount`\n* `lastPaymentDate`\n* `lastStmtBalance`\n* `lastStmtDate`\n* `minimumPaymentAmount`\n* `nextPaymentDate`\n* `purchasesApr`\nPlaid expects a decimal amount with two places (to represent fractional values of the base currency) for all monetary amounts. For example, `"currentBalance": 192.00`.\n',type:"object",properties:{locAccount:{$ref:"#/components/schemas/LocAccount"}},required:["locAccount"],"x-examples":[{locAccount:{accountId:"loc_01_creditcard",accountNumberDisplay:"8200",productName:"First Plaidypus Credit Card",nickname:"my travel rewards card",status:"OPEN",currency:{currencyCode:"USD"},minimumPaymentAmount:100,lastPaymentAmount:400,lastPaymentDate:"2022-03-30",pastDueAmount:0,lastStmtBalance:400,lastStmtDate:"2022-03-25",purchasesApr:10.25,advancesApr:15.75,currentBalance:375,availableCredit:625,accountType:"CREDITCARD"}}]},LocTransaction:{title:"Line-Of-Credit Transaction entity",description:"A line-of-credit transaction",type:"object",allOf:[{$ref:"#/components/schemas/Transaction"},{type:"object",properties:{transactionType:{$ref:"#/components/schemas/LocTransactionType"},checkNumber:{type:"integer",description:"Check number"}}}],"x-examples":[{transactionId:"locTransaction000000001",transactionTimestamp:"2022-04-05T00:00:00.000Z",description:"credit for latest ACME invoice",debitCreditMemo:"DEBIT",status:"PENDING",amount:400}]},Transaction:{title:"Transaction",description:"Base entity for financial transactions. For monetary amounts, Plaid expects a decimal amount, with two places to represent fractional values of the base currency, for example `101.99`.\n",type:"object",properties:{transactionId:{description:"Long term persistent identity of the transaction (unique to account). Plaid expects that `status: PENDING` and `status: POSTED` transactions have different IDs.",$ref:"#/components/schemas/Identifier"},referenceTransactionId:{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",$ref:"#/components/schemas/Identifier"},postedTimestamp:{description:"The date and time that the transaction was posted to the account.\n\nThis property is **required** by Plaid when `status=POSTED`.\nPlaid expects this property to be omitted when `status=PENDING`\n\nISO 8601 date-time in format `YYYY-MM-DDThh:mm:ss.nnn[Z|[+|-]hh:mm]` according to [IETF RFC3339](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6)\n",$ref:"#/components/schemas/Timestamp"},transactionTimestamp:{description:"The date and time that the transaction was added to the server backend systems. This acts as postedTimestamp when postedTimestamp is not present (pending transaction).\n\nISO 8601 date-time in format `YYYY-MM-DDThh:mm:ss.nnn[Z|[+|-]hh:mm]` according to [IETF RFC3339](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6)\n",$ref:"#/components/schemas/Timestamp"},description:{type:"string",description:"The description of the transaction"},debitCreditMemo:{$ref:"#/components/schemas/DebitCreditMemo"},category:{type:"string",description:"Transaction category, preferably MCC or SIC. Plaid expects your organization to provide MCC, if available and applicable.\n"},subCategory:{type:"string",description:"Transaction category detail"},status:{$ref:"#/components/schemas/TransactionStatus"},amount:{type:"number",description:"The amount of money in the account currency. The amount is an absolute value. Plaid relies on the `DebitCreditMemo` enum to determine the direction (and sign) of the transaction.\n"},foreignAmount:{type:"number",description:"The amount of money in the foreign currency. If this amount is specified, then Plaid expects that the `foreignCurrency` property is also set."},foreignCurrency:{$ref:"#/components/schemas/Iso4217Code",description:"The ISO 4217 code of the foreign currency"}},required:["debitCreditMemo","description","transactionId","transactionTimestamp","status","amount"]},Transactions:{title:"Transactions entity",description:"Optionally paginated array of transactions",type:"object",properties:{page:{$ref:"#/components/schemas/PageMetadata"},transactions:{description:"An array of transactions. The `transactionType` is dependent on the account type. Plaid consumes the following types of transactions: [investment](#investment-transaction), [deposit](#deposit-transaction), [loan](#loan-transaction), and [line of credit](#line-of-credit-transaction)\n\nPlaid expects your organization to return an empty array if this information isn't available.\n",type:"array",items:{oneOf:[{type:"object",title:"Deposit Transaction",properties:{depositTransaction:{$ref:"#/components/schemas/DepositTransaction"}},required:["depositTransaction"],additionalProperties:!1},{type:"object",title:"Investment Transaction",properties:{investmentTransaction:{$ref:"#/components/schemas/InvestmentTransaction",description:"A transaction on an investment account.\nIn addition to the required fields in the base `Transaction` model, Plaid requires the following fields\nfor all transactions on an investment account:\n\n* `fees`\n* `transactionType`\n\nIf the transaction involves a security, Plaid additionally requires the following fields:\n\n* `unitPrice`\n* `units`\n* Either of the following:\n - `symbol`\n - `securityId` and `securityIdType`\n"}},required:["investmentTransaction"],additionalProperties:!1},{type:"object",title:"Loan Transaction",properties:{loanTransaction:{$ref:"#/components/schemas/LoanTransaction"}},required:["loanTransaction"],additionalProperties:!1},{type:"object",title:"Line of Credit Transaction",properties:{locTransaction:{$ref:"#/components/schemas/LocTransaction"}},required:["locTransaction"],additionalProperties:!1}]}}},required:["transactions"],example:{page:{nextOffset:"qwer123454q2f"},transactions:[{depositTransaction:{transactionType:"CHECK",checkNumber:1234,payee:"ACME llc",transactionId:"depositTransaction000000001",postedTimestamp:"2022-04-06T00:00:00.000Z",transactionTimestamp:"2022-04-05T00:00:00.000Z",description:"check for latest ACME invoice",debitCreditMemo:"DEBIT",status:"PENDING",amount:400}},{depositTransaction:{transactionType:"ADJUSTMENT",transactionId:"depositTransaction000000002",postedTimestamp:"2022-04-07T00:00:00.000Z",transactionTimestamp:"2022-04-07T00:00:00.000Z",description:"reconciliation/adjustment of bank statement error",debitCreditMemo:"DEBIT",status:"POSTED",amount:.8}},{depositTransaction:{transactionType:"ATMDEPOSIT",transactionId:"depositTransaction000000003",postedTimestamp:"2022-04-08T00:00:00.000Z",transactionTimestamp:"2022-04-08T00:00:00.000Z",description:"ATM cash deposit location #1234",debitCreditMemo:"CREDIT",status:"POSTED",amount:101.8}}]}},AccountHolderRelationship:{title:"Account Holder Relationship",description:"Types of relationships between accounts and holders. Suggested values",type:"string",enum:["AUTHORIZED_USER","BUSINESS","FOR_BENEFIT_OF","FOR_BENEFIT_OF_PRIMARY","FOR_BENEFIT_OF_PRIMARY_JOINT_RESTRICTED","FOR_BENEFIT_OF_SECONDARY","FOR_BENEFIT_OF_SECONDARY_JOINT_RESTRICTED","FOR_BENEFIT_OF_SOLE_OWNER_RESTRICTED","POWER_OF_ATTORNEY","PRIMARY_JOINT_TENANTS","PRIMARY","PRIMARY_BORROWER","PRIMARY_JOINT","SECONDARY","SECONDARY_JOINT_TENANTS","SECONDARY_BORROWER","SECONDARY_JOINT","SOLE_OWNER","TRUSTEE","UNIFORM_TRANSFER_TO_MINOR"]},DateString:{title:"Date String",description:"ISO 8601 full-date in format 'YYYY-MM-DD' according to [IETF RFC3339](https://xml2rfc.tools.ietf.org/public/rfc/html/rfc3339.html#anchor14)",type:"string",format:"date",maxLength:10,example:"2021-07-15"},Identifier:{title:"Identifier",description:"Value for a unique identifier",type:"string",maxLength:256,example:"someLongTermUniqueIDString"},Iso3166CountryCode:{title:"ISO 3166 Country Code",description:"ISO 3166 Codes for the representation of names of countries and their subdivisions",type:"string",enum:["AD","AE","AF","AG","AI","AL","AM","AN","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BM","BN","BO","BR","BS","BT","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CR","CS","CU","CV","CX","CY","CZ","DE","DJ","DK","DM","DO","DZ","EC","EE","EG","EH","ER","ES","ET","FI","FJ","FK","FM","FO","FR","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RU","RW","SA","SB","SC","SD","SE","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","ST","SV","SY","SZ","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TR","TT","TV","TW","TZ","UA","UG","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","YE","YT","ZA","ZM","ZW"]},Iso4217Code:{title:"ISO 4217 Code",description:"ISO 4217 Currency codes",type:"string",enum:["AED","AFN","ALL","AMD","ANG","AOA","ARS","AUD","AWG","AZN","BAM","BBD","BDT","BGN","BHD","BIF","BMD","BND","BOB","BOV","BRL","BSD","BTN","BWP","BZD","CAD","CDF","CHE","CHF","CHW","CLF","CLP","CNY","COP","COU","CRC","CUC","CUP","CVE","CZK","DJF","DKK","DOP","DZD","EGP","ERN","ETB","EUR","FJD","FKP","GBP","GEL","GHS","GIP","GMD","GNF","GTQ","GYD","HKD","HNL","HRK","HTG","HUF","IDR","ILS","INR","IQD","IRR","ISK","JMD","JOD","JPY","KES","KGS","KHR","KMF","KPW","KRW","KWD","KYD","KZT","LAK","LBP","LKR","LRD","LSL","LYD","MAD","MDL","MGA","MKD","MMK","MNT","MOP","MUR","MVR","MWK","MXN","MXV","MYR","MZN","NAD","NGN","NIO","NOK","NPR","NZD","OMR","PAB","PEN","PGK","PHP","PKR","PLN","PYG","QAR","RON","RSD","RUB","RWF","SAR","SBD","SCR","SDG","SEK","SGD","SHP","SLL","SOS","SRD","SSP","SVC","SYP","SZL","THB","TJS","TMT","TND","TOP","TRY","TTD","TWD","TZS","UAH","UGX","USD","USN","UYI","UYU","UZS","VND","VUV","WST","XAF","XAG","XAU","XBA","XBB","XBC","XBD","XCD","XDR","XOF","XPD","XPF","XPT","XSU","XTS","XUA","XXX","YER","ZAR","ZMW","ZWL"]},String255:{title:"String 255",description:"String of maximum length 255",type:"string",maxLength:255},String64:{title:"String 64",description:"String of maximum length 64",type:"string",maxLength:64},TelephoneNumberType:{title:"Telephone Number Type",description:"Purpose or type of telephone number",type:"string",enum:["HOME","BUSINESS","CELL","FAX"]},Timestamp:{title:"Timestamp",description:"ISO 8601 date-time in format `YYYY-MM-DDThh:mm:ss.nnn[Z|[+|-]hh:mm]` according to [IETF RFC3339](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6)",type:"string",format:"date-time",example:"2021-07-15T14:46:41.375Z"},AccountStatus:{title:"Account Status",description:"The status of an account.",type:"string",enum:["CLOSED","DELINQUENT","NEGATIVECURRENTBALANCE","OPEN","PAID","PENDINGCLOSE","PENDINGOPEN","RESTRICTED"]},AnnuityAccountType:{description:"The type of an account. Plaid consumes basic balance account information from the `accounts/{accountId}` endpoint for a subset of the possible account types described in the FDX specification.\n",type:"string",example:"FIXEDANNUITY",enum:["ANNUITY","FIXEDANNUITY","VARIABLEANNUITY"]},DebitCreditMemo:{title:"DebitCreditMemo",description:"The posting type of a transaction. The transaction amount is an absolute value, and this parameter indicates the direction of the transaction. Plaid expects `DEBIT` or `CREDIT` for this enum. Plaid expects that your organization indicates the `MEMO` (i.e., pending) status using the `status` field in the transaction response rather than this field. If your organization sends `MEMO` in this `DebitCreditMemo` enum, Plaid handles this value the same as it handles `DEBIT`. * `DEBIT`: An amount leaves the account * `CREDIT`: An amount enters the account * `MEMO`: A pending transaction to be completed at the end of this day.\n",type:"string",enum:["CREDIT","DEBIT","MEMO"]},DepositAccountType:{description:"The type of an account. Plaid consumes basic balance account information from the `accounts/{accountId}` endpoint for a subset of the possible account types described in the FDX specification.\n",type:"string",example:"SAVINGS",enum:["CHECKING","SAVINGS","CD","COMMERCIALDEPOSIT","ESCROW","MONEYMARKET","OTHERDEPOSIT"]},FiAttribute:{title:"FI Attribute entity",description:"Financial Institution provider-specific attribute",type:"object",properties:{name:{type:"string",description:"The attribute's name"},value:{type:"string",description:"The attribute's value"}}},HoldingSubType:{title:"Holding SubType",description:"The subtype of an investment holding. Plaid expects you to return `OTHER` and set the `holdingSubType` to indicate cash-type holdings (CASH, MONEYMARKET).\n",type:"string",enum:["CASH","MONEYMARKET"]},HoldingType:{title:"Holding Type",description:"Plaid maps the holding type to the Plaid [security type](https://plaid.com/docs/api/products/investments/#investments-transactions-get-response-securities-type). Plaid expects you to return `OTHER` and set the `holdingSubType` to indicate cash-type holdings (CASH, MONEYMARKET).\n",type:"string",enum:["ANNUITY","BOND","CD","DIGITALASSET","MUTUALFUND","OPTION","OTHER","STOCK"]},InsuranceAccountType:{description:"The type of an account. Plaid consumes basic balance account information from the `accounts/{accountId}` endpoint for a subset of the possible account types described in the FDX specification.\n",type:"string",example:"WHOLELIFE",enum:["LONGTERMDISABILITY","SHORTTERMDISABILITY","UNIVERSALLIFE","WHOLELIFE"]},InterestRateType:{title:"Interest Rate Type",description:"Specifies whether an interest rate is fixed or variable. This information is helpful for personal financial planning and advising. For example, it affects the potential benefits of refinancing, and informs whether a mortgage payment is expected to change in the future",type:"string",enum:["FIXED","VARIABLE"]},InvestmentAccountType:{description:"The type of an account. Plaid consumes basic balance account information from the `accounts/{accountId}` endpoint for a subset of the possible account types described in the FDX specification.\n",type:"string",example:"ROTH",enum:["401A","401K","403B","529","BROKERAGEPRODUCT","COMMERCIALINVESTMENT","COVERDELL","DIGITALASSET","DEFINEDBENEFIT","ESOP","GUARDIAN","INSTITUTIONALTRUST","IRA","KEOGH","NONQUALIFIEDPLAN","OTHERINVESTMENT","ROLLOVER","ROTH","SARSEP","TAXABLE","TDA","TRUST","TERM","UGMA","UTMA"]},InvestmentTransactionType:{title:"Investment Transaction Type",description:"The type of an investment transaction.\nPlaid maps these enums to Plaid [investment transaction types](https://plaid.com/docs/api/accounts/#investment-transaction-types-schema).\nPlaid doesn't map these enums to Plaid-specific transaction subtypes.\nPlaid maps these enums as follows:\n\n* ADJUSTMENT - fee\n* ATM - cash\n* CASH - cash\n* CHECK - cash\n* CLOSURE - Plaid suggests using SOLDTOCLOSE, PURCHASETOCLOSE, OPTIONEXERCISE or OPTIONEXPIRATION to indicate the specific type of closure, instead of using this enum.\n* CLOSUREOPT - Plaid suggests using SOLDTOCLOSE, PURCHASETOCLOSE, OPTIONEXERCISE or OPTIONEXPIRATION to indicate the specific type of closure, instead of using this enum.\n* CONTRIBUTION - buy (if transaction involves a security) or cash\n* DEP - cash\n* DEPOSIT - cash\n* DIRECTDEBIT - cash\n* DIRECTDEP - cash\n* DIV - cash\n* DIVIDEND - cash\n* DIVIDENDREINVEST - buy\n* EXPENSE - cash\n* FEE - fee\n* INCOME - cash\n* INTEREST - cash\n* INVEXPENSE - cash\n* JRNLFUND - transfer\n* JRNLSEC - transfer\n* MARGININTEREST - cash\n* OPTIONEXERCISE - transfer\n* OPTIONEXPIRATION - transfer\n* OTHER - cash - (unclassified)\n* PAYMENT - cash\n* POS - cash\n* PURCHASED - buy\n* PURCHASEDTOCOVER - buy\n* PURCHASETOCLOSE - buy\n* PURCHASETOOPEN - buy\n* REINVESTOFINCOME - buy\n* REPEATPMT - cash\n* RETURNOFCAPITAL - cash\n* SOLD - sell\n* SOLDTOCLOSE - sell\n* SOLDTOOPEN - sell\n* SPLIT - transfer\n* SRVCHG - fee\n* TRANSFER - transfer\n* XFER - transfer\n",type:"string",enum:["ADJUSTMENT","ATM","CASH","CHECK","CLOSURE","CLOSUREOPT","CONTRIBUTION","DEP","DEPOSIT","DIRECTDEBIT","DIRECTDEP","DIV","DIVIDEND","DIVIDENDREINVEST","EXPENSE","FEE","INCOME","INTEREST","INVEXPENSE","JRNLFUND","JRNLSEC","MARGININTEREST","OPTIONEXERCISE","OPTIONEXPIRATION","OTHER","PAYMENT","POS","PURCHASED","PURCHASEDTOCOVER","PURCHASETOCLOSE","PURCHASETOOPEN","REINVESTOFINCOME","REPEATPMT","RETURNOFCAPITAL","SOLD","SOLDTOCLOSE","SOLDTOOPEN","SPLIT","SRVCHG","TRANSFER","XFER"]},LoanAccountType:{description:"The type of an account. Plaid consumes basic balance account information from the `accounts/{accountId}` endpoint for a subset of the possible account types described in the FDX specification.\n",type:"string",example:"HOMEEQUITYLOAN",enum:["AUTOLOAN","COMMERCIALLOAN","HOMEEQUITYLOAN","INSTALLMENT","LOAN","MILITARYLOAN","MORTGAGE","PERSONALLOAN","SMBLOAN","STUDENTLOAN"]},LoanTransactionType:{title:"Loan Transaction Type",description:"The type of a loan transaction. Plaid passes through all loan transaction types.\n\n
    \n
  • `ADJUSTMENT`: Adjustment or correction.
  • \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
  • `LUMP_SUM_PAYMENT`: A single payment of money, as opposed to a series of payments made over time.
  • \n
  • `SKIP_PAYMENT`: Payment that satisfies deferral of a required payment.
  • \n
  • `DOUBLE_UP_PAYMENT`: Additional payment beyond the required payment to reduce the principal.
  • \n
  • `PAYOFF`: Payment that satisfies the terms of the mortgage loan and completely pays off the debt.
  • \n
\n",type:"string",enum:["ADJUSTMENT","FEE","INTEREST","PAYMENT","LUMP_SUM_PAYMENT","SKIP_PAYMENT","DOUBLE_UP_PAYMENT","PAYOFF"]},LocAccountType:{description:"The type of an account. Plaid consumes basic balance account information from the `accounts/{accountId}` endpoint for a subset of the possible account types described in the FDX specification.\n",type:"string",example:"CREDITCARD",enum:["LINEOFCREDIT","CHARGE","COMMERCIALLINEOFCREDIT","CREDITCARD","HOMELINEOFCREDIT"]},LocTransactionType:{title:"Line-Of-Credit Transaction Type",description:"The type of a line of credit (LOC) transaction. Plaid passes through all LOC transaction types.\n",type:"string",enum:["ADJUSTMENT","CHECK","FEE","INTEREST","PAYMENT","WITHDRAWAL"]},PaymentNetworkType:{title:"Payment Network Type",description:"Suggested values for Payment Network Type. `US_` refers to the USA, and `CA_` refers to Canada.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
ValueDescription
US_ACHAutomated Clearing House, also called Fed ACH network (mostly small banks)
US_FEDWIREFedwire Funds Service.
US_CHIPSClearinghouse Interbank Payments System. Also called Clearing House ACH network (primarily big banks)
CA_ACSSAutomated Clearing House Settlement System
CA_LVTSLarge-Value Transfer System
\n",type:"string",enum:["US_ACH","US_FEDWIRE","US_CHIPS","US_RTP","CA_ACSS","CA_LVTS"]},SecurityIdType:{title:"Security ID Type",description:"Plaid consumes solely CUSIP, ISIN, and SEDOL.\nThis field, along with `securityId` are **required** unless `symbol` is provided.\n**Note:** If `securityIdType` is provided, `securityId` is required.\n",type:"string",enum:["CUSIP","ISIN","SEDOL","SICC","VALOR","WKN"]},SecurityType:{title:"Security Type",description:"The type of a security",type:"string",enum:["BOND","DEBT","MUTUALFUND","DIGITALASSET","OPTION","OTHER","STOCK","SWEEP"]},TransactionStatus:{title:"Transaction Status",description:"The status of a transaction. Plaid consumes solely the `PENDING` and `POSTED` enums,\nand treats `MEMO` and `AUTHORIZATION` as if they were `PENDING`. Plaid expects that pending and posted transactions\nhave different `transactionIds`.\n* `AUTHORIZATION`\n* `MEMO` - A pending transaction to be completed at the end of this day\n* `PENDING` - A pending transaction\n* `POSTED` - A posted transaction\n",type:"string",enum:["AUTHORIZATION","MEMO","PENDING","POSTED"]},UnitType:{title:"Unit Type",description:"The units of an investment transaction",type:"string",enum:["CURRENCY","SHARES"]}}}},5.2:{openapi:"3.0.3",info:{version:"5.2.0",title:"FDX V5.2",description:'## FDX compliance\n\nThe Core Exchange API specifications are a subset of the Financial Data Exchange (FDX) API specification, the usage thereof (or any part thereof) constitutes acceptance of the FDX API\nLicense Agreement, which can be found at https://financialdataexchange.org/. The FDX API specification is distributed exclusively by FDX. Modifications to eliminate required or\nconditional elements prescribed in the FDX API Certification Use Cases will render any implementations using said modifications non-conformant with the FDX API Certification Use Cases.\nPlease note that building the FDX-compliant Core Exchange API and permitting Plaid to call your build constitutes acceptance of\nthe FDX end user license agreement, which can be found at https://financialdataexchange.org/.\nThe full FDX API standard specification is distributed exclusively by FDX.\n\n## Download the specification\n\nTo view this specification and documentation as an OpenAPI YAML file, see [the public Core Exchange Github repository](https://github.com/plaid/core-exchange/tree/main/versions).\n\n## Endpoints\n\nThis specification contains the following endpoints:\n\n - `/customers/current`\n\n - `/accounts`\n\n - `/accounts/{accountId}`\n\n - `/accounts/{accountId}/payment-networks`\n\n - `/accounts/{accountId}/statements`\n\n - `/accounts/{accountId}/statements/{statementId}`\n\n - `/accounts/{accountId}/contact`\n\n - `/accounts/{accountId}/transactions`\n\n## Mock server\n\nSee the [mock server postman collection](/core-exchange/example) for Core Exchange v5.2.\n\n## Error responses\n\nAn 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.\nError responses must contain a `code` and `message`, and may optionally include a `debugMessage`.\nSee the descriptions below:\n\n- `code`: The FDX error code: A long-term persistent identifier which can be used to trace error condition back to log information.\n (**Note:** This code may differ from the HTTP status code.)\n- `message`: End user displayable information which might help the customer diagnose an error\n- `debugMessage`: Message used to debug the root cause of the error. Contents should not be used in consumer\'s business logic. Can change at any time and should only be used for consumer to communicate with the data provider about an issue. Provider can include an error GUID in message for their use\n\n### Example error\n\nThe following is an example response with an HTTP status code of 409.\n\n```\n{\n "code": 705,\n "message": "Account is closed",\n "debugMessage": "Operation is not supported by the closed account"\n}\n```\n\nSee the Errors table in each endpoint description for more specific message and debug message examples.\n',contact:{name:"Plaid support",url:"https://plaid.com/data-connectivity-core-exchange/",email:"dataconnectivity@plaid.com"}},servers:[{url:"https://api.your-organization.com/fdx/v5",description:"Financial Data Exchange V5.2 Core API"}],tags:[{name:"Personal Information",description:"Search and view customer or customers"},{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:"Payment Networks Information",description:"Search and view account payment networks"}],paths:{"/customers/current":{get:{operationId:"getCustomerInfo",tags:["Personal Information"],description:"Get the ID of the customer within the authorization scope.\n\n**Note:**\n\n
    \n
  • If you use OIDC authentication (recommended) you do not need to implement this endpoint as Plaid identifies the customer using the OIDC `id_token` response.
  • \n
  • If you use OAuth2 authentication, Plaid uses this endpoint as an alternate method of customer identification.
  • \n
\n",summary:"Get current authenticated customer ID",security:[{openIdConnect:[]},{oauth2:[]}],responses:{200:{description:"Data describing current authenticated customer",content:{"application/json":{schema:{$ref:"#/components/schemas/CustomerWithId"},examples:{"example-1":{value:{customerId:"someLongTermUniqueIDString"}}}}}}}}},"/accounts":{get:{operationId:"searchForAccounts",tags:["Account Information"],summary:"List all accounts",description:"Search and view customer accounts\n",security:[{openIdConnect:["Account"]},{oauth2:["Account"]}],parameters:[{$ref:"#/components/parameters/OffsetQuery"},{$ref:"#/components/parameters/LimitQuery"}],responses:{200:{description:"Array of accounts",content:{"application/json":{schema:{$ref:"#/components/schemas/Accounts"},examples:{"example-1":{value:{page:{nextOffset:"25"},accounts:[{depositAccount:{accountId:"depositAccount0000001",accountType:"CHECKING",accountNumberDisplay:"5820",productName:"Checking",nickname:"Main Checking",status:"OPEN",currency:{currencyCode:"USD"}}},{loanAccount:{accountId:"loanAccount0000001",accountType:"LOAN",accountNumberDisplay:"4704",productName:"Loan",nickname:"Primary Loan",status:"OPEN",currency:{currencyCode:"USD"}}},{locAccount:{accountId:"locAccount0000001",accountType:"LINEOFCREDIT",accountNumberDisplay:"8200",productName:"Line of Credit",nickname:"First plaidypus LOC",status:"OPEN",currency:{currencyCode:"USD"}}},{investmentAccount:{accountId:"investmentAccount0000001",accountType:"TAXABLE",accountNumberDisplay:"1050",productName:"Brokerage Account",nickname:"First plaidypus Brokerage",status:"OPEN",currency:{currencyCode:"USD"}}}]}}}}}}}}},"/accounts/{accountId}":{get:{operationId:"getAccount",tags:["Account Information"],summary:"Get account balances and liabilities",description:"Get account balances, liabilities, and other information. Plaid uses this endpoint to:\n\n
    \n
  • Get account balances for deposit accounts. For example, `CHECKING` or `SAVINGS`. For more information about how Plaid uses this information, see [Plaid Balance API](https://plaid.com/docs/api/products/balance/).
  • \n
  • Get account liabilities for `STUDENTLOAN`, `MORTGAGE`, and `CREDITCARD` loan accounts. For more information about how Plaid uses this information, see [Plaid Liabilities API](https://plaid.com/docs/api/products/liabilities/).
  • \n
  • Get balances and holdings for investment accounts. For more information about how Plaid uses this information, see [Plaid Investments API](https://plaid.com/docs/investments/).
  • \n
\n\nSee the response schema below for a full list of possible parameters for each account type.\n",security:[{openIdConnect:["Account"]},{oauth2:["Account"]}],parameters:[{$ref:"#/components/parameters/AccountIdPath"}],responses:{200:{description:"The full details of an investment, loan, deposit, or line of credit account",content:{"application/json":{schema:{$ref:"#/components/schemas/AccountWithDetails"}}}}}}},"/accounts/{accountId}/contact":{get:{operationId:"getAccountContact",tags:["Personal Information"],description:"Get contact information on the account.\n\nPlaid links contact information to accounts, rather than to users. Plaid consumes multiple holders and their contact information for the account, but doesn't attempt to correlate holders to their respective contact information. For more information about Plaid's identity model, see [Plaid Identity API](https://plaid.com/docs/api/products/identity/).\n",summary:"Get an account's contact information",parameters:[{$ref:"#/components/parameters/AccountIdPath"}],security:[{openIdConnect:["Customer"]},{oauth2:["Customer"]}],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:["Payment Networks Information"],description:"Get payment networks supported by an account, for example ACH (Automated Clearing House). For more information about how Plaid uses this information, see the [Plaid Auth API](https://plaid.com/docs/api/products/auth/).\n",summary:"Get payment networks supported by the account",security:[{openIdConnect:["Account"]},{oauth2:["Account"]}],parameters:[{name:"accountId",in:"path",description:"Account identifier, found in the `GET /accounts` endpoint response.\nPlaid expects the ID to be a different value from the account number.\n\n**Note:** If the status of the `accountId` provided is `RESTRICTED`, you can send a 200 response with an empty body to indicate that no payment networks are available at this time.\n",required:!0,schema:{type:"string"}},{$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:{properties:{page:{$ref:"#/components/schemas/PageMetadata"},paymentNetworks:{type:"array",items:{$ref:"#/components/schemas/AccountPaymentNetwork"}}},required:["paymentNetworks"]},examples:{"example-1":{page:{nextOffset:25},paymentNetworks:[{bankId:"010088889",identifier:"1111222233335820",type:"US_ACH",transferIn:!0,transferOut:!0}]}}}}}}}},"/accounts/{accountId}/statements":{get:{operationId:"searchForAccountStatements",tags:["Account Statements"],description:"Get account statements.\n\nExample: `GET /accounts/{accountId}/statements?startTime=value1&endTime=value2`\n",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:{"example-1":{value:{page:{nextOffset:"2",total:3},statements:[{accountId:"10001",statementId:"20001",links:[{href:"/accounts/1111/statements?offSet=2&limit=10"}]}]}}}}}}}}},"/accounts/{accountId}/statements/{statementId}":{get:{operationId:"getAccountStatement",tags:["Account Statements"],description:"Get account statement PDF.\n",summary:"Get account statement",parameters:[{$ref:"#/components/parameters/AccountIdPath"},{$ref:"#/components/parameters/StatementIdPath"}],responses:{200:{description:"A pdf of an account statement",content:{"application/pdf":{schema:{$ref:"#/components/schemas/StatementPDF"}}}}}}},"/accounts/{accountId}/transactions":{get:{operationId:"searchForAccountTransactions",tags:["Account Transactions"],description:"List all account transactions. Plaid always queries this endpoint a `startTime` and an `endTime`, for example, `/accounts/{accountId}/transactions?startTime=2022-01-30&endTime=2022-05-30`, and expects the time filters to be based on the `postedTimestamp`.\n\nPlaid consumes data from this endpoint for the following account types only:\n
    \n
  • Loan
  • \n
  • Investment
  • \n
  • Deposit
  • \n
  • Line of credit (LOC)
  • \n
\n",summary:"List all account transactions",security:[{openIdConnect:["Transactions"]},{oauth2:["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. Plaid consumes the following transaction types: InvestmentTransaction, DepositTransaction, LoanTransaction, or LocTransaction\n",content:{"application/json":{schema:{$ref:"#/components/schemas/Transactions"},examples:{"example-1":{value:{page:{nextOffset:"2"},transactions:[{depositTransaction:{checkNumber:1234,payee:"ACME llc",transactionId:"depositTransaction000000001",postedTimestamp:"2022-04-06T00:00:00.000Z",transactionTimestamp:"2022-04-05T00:00:00.000Z",description:"check for latest ACME invoice",debitCreditMemo:"DEBIT",status:"PENDING",amount:400}},{depositTransaction:{transactionId:"depositTransaction000000002",postedTimestamp:"2022-04-07T00:00:00.000Z",transactionTimestamp:"2022-04-07T00:00:00.000Z",description:"reconciliation/adjustment of bank statement error",debitCreditMemo:"DEBIT",status:"POSTED",amount:.8}}]}}}}}}}}}},components:{securitySchemes:{openIdConnect:{type:"openIdConnect",description:"This API uses an [OpenID Connect (OIDC) authentication flow](/core-exchange/authentication) and accepts the resulting [access token](/core-exchange/authentication#response-parameters) as a bearer token. For example, `curl -H 'Authorization: Bearer '`.\n",openIdConnectUrl:"https://www.your-organization.com/.well-known/openid-configuration"},oauth2:{type:"oauth2",description:"This API uses an [OAuth2.0 authorization code flow](https://auth0.com/docs/get-started/authentication-and-authorization-flow/authorization-code-flow) and accepts the resulting access token as a bearer token. For example, `curl -H 'Authorization: Bearer '`.\n",flows:{authorizationCode:{authorizationUrl:"https://www.your-organization.com/authorize",tokenUrl:"https://www.your-organization.com/token",scopes:{Account:"(optional) Read account data",Customer:"(optional) Read customer data",Transactions:"(optional) Read transaction data"}}}}},parameters:{LimitQuery:{name:"limit",in:"query",description:"Number of elements that the API consumer wishes to receive. Plaid has a default limit of 100 elements. If this value differs from your organization's limit for the number of items to send in one response, then pick the lower of the two different limits and use the lower limit to define the number of items you send on each page of a paginated response. Plaid then gets the next page by making a new request with the opaque `nextOffset` field that your organization returned in the latest response, until your organization omits `nextOffset` in the response to indicate the last page.\n",schema:{type:"integer"}},OffsetQuery:{name:"offset",in:"query",description:"Plaid receives this value from your organization's latest response in a paginated response, and returns it to in a new request to get the next page. Your organization omits `nextOffset` in the response to indicate the last page.\n",schema:{type:"string",example:"qwer123454q2f"}},AccountIdPath:{name:"accountId",in:"path",description:"Account identifier, found in the `GET /accounts` endpoint response. Plaid expects the ID to be a different value from the account number.\n",required:!0,schema:{type:"string"}},StatementIdPath:{name:"statementId",in:"path",description:"Statement identifier, found in the `GET /accounts/{accountId}/statements` endpoint response.\n",required:!0,schema:{type:"string"}},EndTimeQuery:{name:"endTime",in:"query",description:"End time for use in retrieval of elements (ISO 8601). For transactions, Plaid expects this to filter by the `postedTimestamp`.",schema:{$ref:"#/components/schemas/DateString"}},StartTimeQuery:{name:"startTime",in:"query",description:"Start time for use in retrieval of elements (ISO 8601). For transactions, Plaid expects this to filter by the `postedTimestamp`.",schema:{$ref:"#/components/schemas/DateString"}}},schemas:{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"},region:{$ref:"#/components/schemas/String64",description:"State or province or territory."},postalCode:{type:"string",maxLength:16,description:"Postal code"},country:{$ref:"#/components/schemas/Iso3166CountryCode",description:"Country code"}},required:["line1","city","country"]},CustomerWithId:{title:"Customer entity.",description:"Represents a customer. Plaid-specific schema created to hold one property, the `customerId` property of the FDX `Customer` schema.\n",type:"object",properties:{customerId:{$ref:"#/components/schemas/Identifier",description:"Long-term persistent identity of the customer. This identity must be unique within your organization. Plaid consumes this customer ID if your organization uses OAuth2 instead of OIDC to secure the API. Plaid expects your organization to issue the ID as a consistent, static, opaque, unique identifier for the user\n",example:[{customerId:"customer0000001"}]}},required:["customerId"]},CustomerWithName:{title:"Customer entity",description:"Represents a customer. Plaid-specific schema created to hold one property, the `name` property of the FDX `Customer` schema.\n",type:"object",properties:{name:{$ref:"#/components/schemas/CustomerName"}},required:["name"]},CustomerName:{title:"Customer Name entity",description:"The name of an individual in their role as a customer. Plaid expects at least one populated name field. If any field is missing (for example, no first name), then you respond with an empty string for that field.\n",type:"object",allOf:[{$ref:"#/components/schemas/IndividualName"},{type:"object",properties:{prefix:{description:"Name prefix, e.g. Mr.",type:"string"}}}]},DeliveryAddress:{title:"Delivery Address",description:"A delivery address and its location type",type:"object",allOf:[{$ref:"#/components/schemas/Address"}]},HateoasLink:{title:"HATEOAS Link",description:"HATEOAS (Hypermedia As The Engine Of Application State) link",required:["href"],type:"object",properties:{href:{type:"string",format:"uri-reference",description:"The resource URL",example:"https://api.fi.com/fdx/v4/accounts/12345"},action:{description:"The HTTP method to use for the request",$ref:"#/components/schemas/HttpAction"},rel:{description:"The relation of this link to its containing entity, as defined by the [IETF RFC5988](https://datatracker.ietf.org/doc/html/rfc5988)",type:"string"},types:{type:"array",items:{$ref:"#/components/schemas/ContentTypes"},description:"The content-types that can be used in the Accept header. **Note:** Plaid currently only accepts the PDF (`application/pdf`) content type."}}},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"}},required:["first","last"]},PageMetadata:{title:"Page Metadata",description:"Contains opaque identifier, `nextoffset`, for paginated result sets. The `nextOffset` ID doesn't need to be numeric or have any specific pattern. In other words, your organization can implement this however you prefer. The presence of this offset indicates that there's at least one more page of data available. The absence of this offset indicates that there are no more pages of data left in this paginated array. The API consumer returns this in the `offset` parameter in a new request to get the next page in the response array.\n",type:"object",properties:{nextOffset:{type:"string",example:"qwer123454q2f",description:"Opaque offset identifier."}}},PaginatedArray:{title:"Paginated Array",description:"Base class for results that may be paginated",type:"object",properties:{page:{$ref:"#/components/schemas/PageMetadata"}}},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,description:"Country calling codes defined by ITU-T recommendations E.123 and E.164"},number:{type:"string",maxLength:15,pattern:"\\d+",description:"Telephone subscriber number defined by ITU-T recommendation E.164"}},required:["number","type"]},AccountContact:{title:"Account Contact entity",description:"Contact information for the account.",type:"object",properties:{holders:{type:"array",items:{$ref:"#/components/schemas/AccountHolder"},minItems:1,description:"Owners of the account. Note that while the [FDX specification](https://financialdataexchange.org) enables associating holders and their contact information in the full `AccountHolder` schema, Plaid doesn't consume these associations. Instead, Plaid consumes limited information for each `AccountHolder` and doesn't associate contact information such as emails, addresses, or telephone numbers to account holders. For more information about Plaid's data model for account contact information, see [Identity](https://plaid.com/docs/api/products/identity/).\n",example:[{relationship:"SECONDARY",name:{first:"Ernest",middle:"Miller",last:"Hemingway",suffix:"IV"}},{relationship:"PRIMARY_JOINT",name:{first:"Maya",last:"Angelou",middle:"Annie"}}]},emails:{type:"array",items:{type:"string"},minItems:1,description:"Email addresses associated with the account.\n",example:["ernest.m.hemingway@domain.tld","m.angelou@domain.tld"]},addresses:{type:"array",items:{$ref:"#/components/schemas/DeliveryAddress"},minItems:1,description:"Physical mail addresses associated with the account.\n",example:[{line1:"1850 N Clark St",line2:"Apartment 103",city:"Chicago",region:"IL",postalCode:"60614",country:"US"},{line1:"2014 N Main St",city:"San Francisco",region:"CA",postalCode:"94105",country:"US"}]},telephones:{type:"array",items:{$ref:"#/components/schemas/TelephoneNumber"},minItems:1,description:"Telephone numbers associated with the account.\n",example:[{type:"HOME",country:"1",number:"3127771926"},{type:"CELL",country:"53",number:"45915607"},{type:"HOME",country:"1",number:"4157771926"}]}},required:["holders","emails","addresses","telephones"]},AccountDescriptor:{title:"Account Descriptor entity",description:"This descriptor provides minimal information about the account for use in lightweight arrays",type:"object",properties:{accountId:{description:"Long-term persistent identity of the account, though not an account number. This identity must be unique within your organization.\n",$ref:"#/components/schemas/Identifier"},accountNumberDisplay:{description:"Account display number for the end user's handle at the owning financial institution. Plaid expects that the last 4 digits of this masked number correspond to the last 4 digits of the account number.\n",type:"string",example:"4321"},productName:{type:"string",description:"Marketed product name for this account. Used in UIs to assist in account selection"},nickname:{description:"Name given by the user. Used in UIs to assist in account selection. Plaid recommends returning this only if the account permits user renaming.\n",type:"string"},status:{$ref:"#/components/schemas/AccountStatus"},currency:{$ref:"#/components/schemas/Currency"}},required:["accountId","productName","status","currency"]},AnnuityAccountDescriptor:{allOf:[{$ref:"#/components/schemas/AccountDescriptor"},{type:"object",properties:{accountType:{$ref:"#/components/schemas/AnnuityAccountType"}},required:["accountType"]}],"x-examples":[{annuityAccount:{accountId:"annuityAccount0000001",accountType:"FIXEDANNUITY",accountNumberDisplay:"53901",productName:"Fixed Annuity",nickname:"Fixed annuity 1",status:"OPEN",currency:{currencyCode:"USD"}}}]},AccountHolder:{title:"Account Holder entity",type:"object",allOf:[{$ref:"#/components/schemas/CustomerWithName"},{type:"object",properties:{relationship:{$ref:"#/components/schemas/AccountHolderRelationship",description:"Customer's relationship to the account"}}}]},AccountPaymentNetwork:{title:"Payment Network Supported by Account",description:"This provides details required to execute a transaction against the account within the payment network",type:"object",properties:{bankId:{type:"string",description:"Bank identifier used by the payment network ie. Routing Number"},identifier:{type:"string",description:"The number used to identify the account within the payment network."},type:{$ref:"#/components/schemas/PaymentNetworkType"},transferIn:{type:"boolean",description:"Can transfer funds to the account using this information. Plaid expect that this value represents the account's current ability to be credited through a payment network.\nPlaid recommends dynamically updating this value, for example to represent if the account is locked or not.\n\n**Note:** Both `transferIn` and `transferOut` must be `true` in order for the account to support ACH.\n"},transferOut:{type:"boolean",description:"Can transfer funds from the account using this information. Plaid expect that this value represents the account's current ability to be debited through a payment network.\nPlaid recommends dynamically updating this value, for example to represent if the account is locked or not.\n\n**Note:** Both `transferIn` and `transferOut` must be `true` in order for the account to support ACH.\n"}},required:["bankId","identifier","type","transferIn","transferOut"]},AccountWithDetails:{title:"Account With Details entity",description:"An account with full details",type:"object",oneOf:[{type:"object",title:"Deposit Account",properties:{depositAccount:{$ref:"#/components/schemas/DepositAccount"}},required:["depositAccount"],additionalProperties:!1},{type:"object",title:"Investment Account",properties:{investmentAccount:{$ref:"#/components/schemas/InvestmentAccount"}},required:["investmentAccount"],additionalProperties:!1},{type:"object",title:"Loan Account",properties:{loanAccount:{$ref:"#/components/schemas/LoanAccount"}},required:["loanAccount"],additionalProperties:!1},{type:"object",title:"Line of Credit Account",properties:{locAccount:{$ref:"#/components/schemas/LocAccount"}},required:["locAccount"],additionalProperties:!1}]},AccountWithDescriptor:{title:"Account With Descriptor entity",description:"This provides an instance of an account without full details",type:"object",anyOf:[{type:"object",title:"Deposit Account",properties:{depositAccount:{$ref:"#/components/schemas/DepositAccountDescriptor",description:"A deposit account. For example, a checking, savings or money market account.\nPlaid consumes more detailed information for `CHECKING` and `SAVINGS` accounts.\n\nThe `accountType` field for deposit accounts may be set to any of the following:\n\n
    \n
  • `CHECKING`: A deposit account held at a financial institution that allows withdrawals and deposits.
  • \n
  • `SAVINGS`: An interest-bearing deposit account held at a bank or other financial institution.
  • \n
  • `CD`: A certificate of deposit (CD) is a product offered by banks and credit unions that provides an interest rate premium in exchange for the customer agreeing to leave a lump-sum deposit untouched for a predetermined period of time.
  • \n
  • `COMMERCIALDEPOSIT`: A deposit account for commercial customers, for example a business trust account.
  • \n
  • `ESCROW`: A contractual arrangement in which a third party (the stakeholder or escrow agent) receives and disburses money or property for the primary transacting parties, with the disbursement dependent on conditions agreed to by the transacting parties.
  • \n
  • `MONEYMARKET`: A deposit account that pays interest based on current interest rates in the money markets.
  • \n
  • `OTHERDEPOSIT`: Use when none of the listed enums apply.
  • \n
\n"}},required:["depositAccount"],additionalProperties:!1},{type:"object",title:"Loan Account",properties:{loanAccount:{$ref:"#/components/schemas/LoanAccountDescriptor",description:"A loan account. For example, mortgage, student loan or auto loan.\nPlaid consumes more detailed information for `MORTGAGE` and `STUDENTLOAN` accounts.\n\nThe `accountType` field for loan accounts may be set to any of the following:\n\n
    \n
  • `AUTOLOAN`: A type of loan used to finance a car purchase.
  • \n
  • `COMMERCIALLOAN`: A preset borrowing limit that can be used at any time.
  • \n
  • `HOMEEQUITYLOAN`: A type of loan in which the borrower uses the equity of his or her home as collateral.
  • \n
  • `INSTALLMENT`: A type of agreement or contract involving a loan that is repaid over time with a set number of scheduled payments.
  • \n
  • `LOAN`: The lending of money by one or more individuals, organizations, or other entities to other individuals, organizations etc.
  • \n
  • `MILITARYLOAN`: A military loan.
  • \n
  • `MORTGAGE`: A type of loan you can use to buy or refinance a home.
  • \n
  • `PERSONALLOAN`: A type of debt that is not protected by a guarantor, or collateralized by a lien on specific assets of the borrower.
  • \n
  • `SMBLOAN`: A small/medium business loan.
  • \n
  • `STUDENTLOAN`: A type of loan designed to help students pay for post-secondary education and the associated fees, such as tuition, books and supplies, and living expenses.
  • \n
\n"}},required:["loanAccount"],additionalProperties:!1},{type:"object",title:"Line of Credit Account",properties:{locAccount:{$ref:"#/components/schemas/LocAccountDescriptor",description:"A line-of-credit account. For example, a credit card or home equity line of credit.\nPlaid consumes more detailed information for `CREDITCARD` accounts.\n\nThe `accountType` field for line of credit accounts may be set to any of the following:\n\n
    \n
  • `LINEOFCREDIT`: A credit facility extended by a bank or other financial institution to a government, business or individual customer that enables the customer to draw on the facility when the customer needs funds.
  • \n
  • `CHARGE`: An account to which goods and services may be charged on credit.
  • \n
  • `COMMERCIALLINEOFCREDIT`: An account with a preset borrowing limit that can be used at any time.
  • \n
  • `CREDITCARD`: Allows cardholders to borrow funds with which to pay for goods and services with merchants that accept cards for payment.
  • \n
  • `HOMELINEOFCREDIT`: A loan in which the lender agrees to lend a maximum amount within an agreed period, where the collateral is the borrower's equity in their house.
  • \n
\n"}},required:["locAccount"],additionalProperties:!1},{type:"object",title:"Investment Account",properties:{investmentAccount:{$ref:"#/components/schemas/InvestmentAccountDescriptor",description:"An investment account. For example, a 401K or IRA.\nPlaid consumes the same details for all investment accounts.\n\nThe `accountType` field for investment accounts may be set to any of the following:\n\n
    \n
  • `401A`: An employer-sponsored money-purchase retirement plan that allows dollar or percentage-based contributions from the employer, the employee, or both.
  • \n
  • `401K`: An employer-sponsored defined-contribution pension account defined in subsection 401(k) of the Internal Revenue Code.
  • \n
  • `403B`: A U.S. tax-advantaged retirement savings plan available for public education organizations, some non-profit employers (only Internal Revenue Code 501(c)(3) organizations), cooperative hospital service organizations, and self-employed ministers in the United States.
  • \n
  • `529`: A tax-advantaged savings plan designed to help pay for education.
  • \n
  • `BROKERAGEPRODUCT`: Investment management offered by a licensed brokerage firm that places trades on behalf of the customer, utilizing any number of investment options.
  • \n
  • `COMMERCIALINVESTMENT`: Investment Account for Commercial Customers. e.g. Commercial Brokerage Account.
  • \n
  • `COVERDELL`: A trust or custodial account set up in the United States solely for paying qualified education expenses for the designated beneficiary of the account.
  • \n
  • `DIGITALASSET`: An account containing digital assets.
  • \n
  • `DEFINEDBENEFIT`: An employer-sponsored retirement plan where employee benefits are computed using a formula that considers several factors, such as length of employment and salary history.
  • \n
  • `ESOP`: An employee stock ownership plan (ESOP) is an employee benefit plan that gives workers ownership interest in the company.
  • \n
  • `GUARDIAN`: An account of a child in the parent's name, with legal title to the assets in the account, as well as all capital gains and tax liabilities produced from the account belonging to the parent.
  • \n
  • `INSTITUTIONALTRUST`: An institutional trust account.
  • \n
  • `IRA`: An individual retirement account (IRA) is a tax-advantaged account that individuals use to save and invest for retirement.
  • \n
  • `KEOGH`: A tax-deferred pension plan available to self-employed individuals or unincorporated businesses for retirement purposes.
  • \n
  • `NONQUALIFIEDPLAN`: A type of tax-deferred employer-sponsored retirement plan that falls outside of ERISA guidelines.
  • \n
  • `OTHERINVESTMENT`: Use when none of the listed enums apply.
  • \n
  • `ROLLOVER`: An account containing investments rolled over from an employee-sponsored account.
  • \n
  • `ROTH`: An individual retirement account that offers tax-free growth and tax-free withdrawals in retirement.
  • \n
  • `SARSEP`: A simplified employee pension (SEP) plan set up before 1997 that includes a salary reduction arrangement.
  • \n
  • `TAXABLE`: A taxable investment account.
  • \n
  • `TDA`: TreasuryDirect Account.
  • \n
  • `TRUST`: A type of financial account that is opened by an individual and managed by a designated trustee for the benefit of a third party in accordance with agreed-upon terms.
  • \n
  • `TERM`: Life insurance that provides coverage at a fixed rate of payments for a limited period of time.
  • \n
  • `UGMA`: Uniform Gifts to Minors Act account.
  • \n
  • `UTMA`: Uniform Transfers to Minors Act account.
  • \n
\n"}},required:["investmentAccount"],additionalProperties:!1},{type:"object",title:"Insurance Account",properties:{insuranceAccount:{$ref:"#/components/schemas/InsuranceAccountDescriptor",description:"An insurance account. For example, whole life insurance or short-term disability.\n\nThe `accountType` field for insurance accounts may be set to any of the following:\n\n
    \n
  • `LONGTERMDISABILITY`: Insurance that replaces a portion of the policyholder's income due to a disability for an extended period of time, usually more than a year.
  • \n
  • `SHORTTERMDISABILITY`: Insurance that replaces a portion of the policyholder's income due to a disability for a short period of time, usually less than a year.
  • \n
  • `UNIVERSALLIFE`: A type of a cash value life insurance where the excess of premium payments above the current cost of insurance is credited to the cash value of the policy, which in turn is credited each month with interest.
  • \n
  • `WHOLELIFE`: Life insurance which is guaranteed to remain in force for the insured's entire lifetime, provided required premiums are paid, or to the maturity date.
  • \n
\n"}},required:["insuranceAccount"],additionalProperties:!1},{type:"object",title:"Annuity Account",properties:{annuityAccount:{$ref:"#/components/schemas/AnnuityAccountDescriptor",description:"An annuity account. For example, a fixed or variable annuity account.\n\nThe `accountType` field for annuity accounts may be set to any of the following:\n\n
    \n
  • `ANNUITY`: A form of insurance or investment entitling the investor to a series of annual sums.
  • \n
  • `FIXEDANNUITY`: A type of insurance contract that promises to pay the buyer a specific, guaranteed interest rate on their contributions to the account.
  • \n
  • `VARIABLEANNUITY`: A type of insurance contract that promises to pay back the buyer based on the performance of an underlying portfolio of mutual funds selected by the buyer.
  • \n
\n"}},required:["annuityAccount"],additionalProperties:!1}]},Accounts:{title:"Accounts entity",description:"An optionally paginated array of accounts",type:"object",allOf:[{$ref:"#/components/schemas/PaginatedArray"},{type:"object",properties:{accounts:{type:"array",items:{$ref:"#/components/schemas/AccountWithDetails"},description:"An array of accounts. May include accounts of any of the following types: [deposit](#deposit-account), [investment](#investment-account), [line of credit](#line-of-credit-account), [loan](#loan-account)\n\n**Note:** Each object in the accounts array is expected to contain at least one account type.\n",minItems:1}},required:["accounts"]}]},Currency:{title:"Currency entity",description:"Represents an international currency.",type:"object",properties:{currencyCode:{$ref:"#/components/schemas/Iso4217Code",description:"ISO 4217 currency code"}},required:["currencyCode"]},DepositAccount:{allOf:[{$ref:"#/components/schemas/AccountDescriptor"},{type:"object",properties:{accountType:{$ref:"#/components/schemas/DepositAccountType"}},required:["accountType"]}]},DepositAccountDescriptor:{title:"Deposit Account entity",description:'Full details of a deposit account. Plaid consumes the same information for all types of deposit accounts.\nPlaid expects a decimal amount with two places (to represent fractional values of the base currency) for all monetary amounts. For example, `"currentBalance": 192.00`.\n\nThe `accountType` field for deposit accounts may be set to any of the [account types](#deposit-account-types) listed below.\n',type:"object",properties:{depositAccount:{$ref:"#/components/schemas/DepositAccount"}},required:["depositAccount"],"x-examples":[{depositAccount:{accountId:"depositAccount0000001",accountType:"CHECKING",accountNumberDisplay:"5820",productName:"Checking",nickname:"Main Checking",status:"OPEN",currency:{currencyCode:"USD"}}}]},DepositAccountFull:{title:"Deposit Account entity",description:'Full details of a deposit account. Plaid consumes the same information for all types of deposit accounts.\nPlaid expects a decimal amount with two places (to represent fractional values of the base currency) for all monetary amounts. For example, `"currentBalance": 192.00`.\n\nThe `accountType` field for deposit accounts may be set to any of the [account types](#deposit-account-types) listed below.\n',type:"object",properties:{depositAccount:{$ref:"#/components/schemas/DepositAccount"}},required:["depositAccount"],"x-examples":[{depositAccount:{accountId:"someLongTermUniqueIDString",accountNumberDisplay:"4321",productName:"string",nickname:"string",status:"CLOSED",currency:{currencyCode:"AED"},accountType:"CHECKING",currentBalance:0,availableBalance:0}}]},DepositTransaction:{title:"Deposit Transaction entity",description:"A transaction on a deposit account type",type:"object",allOf:[{$ref:"#/components/schemas/Transaction"},{type:"object",properties:{payee:{$ref:"#/components/schemas/String255",description:"Payee name"},checkNumber:{type:"integer",description:"Check number. Plaid expects this solely if the transaction involves a check.\n"}}}],"x-examples":[{transactionId:"depositTransaction000000001",transactionTimestamp:"2022-04-05T00:00:00.000Z",description:"check for latest ACME invoice",debitCreditMemo:"DEBIT",status:"PENDING",amount:400,payee:"Acme LLC",checkNumber:57448}]},Holding:{title:"Holding entity",description:"A holding in an investment account.\nPlaid maps the `holding` and the `investmentAccount` FDX models to its securities models, which hold universal information like the ticker symbol, and to its holdings models, which hold account-specific information like balances. For more information, see [Plaid investments](https://plaid.com/docs/investments/#securities-and-holdings).\n",allOf:[{type:"object",properties:{securityId:{description:"If you return the `securityId` for a holding, Plaid uses it to look up the closing price from NYSE Group Security Master. If you don't return `securityId` for a holding that uses security IDs (not recommended), Plaid uses the `unitPrice` as the closing price.\nThis field, along with `securityIdType` are **required** unless `symbol` is provided.\n**Note:** If `securityId` is provided, `securityIdType` is required.\n",type:"string"},securityIdType:{$ref:"#/components/schemas/SecurityIdType"},holdingName:{type:"string",description:"Holding name or security name"},holdingType:{$ref:"#/components/schemas/HoldingType"},holdingSubType:{$ref:"#/components/schemas/HoldingSubType",description:"MONEYMARKET, CASH"},symbol:{type:"string",description:"Ticker / Market symbol\nThis field is **required** unless both `securityId` and `securityIdType` are provided."},purchasedPrice:{type:"number",description:"Price of holding at the time of purchase. Plaid determines an approximate [cost basis](https://plaid.com/docs/api/products/investments/#investments-holdings-get-response-holdings-cost-basis) using the purchase price and the number of units. Plaid cannot take fees into account to determine the cost basis because the FDX holding schema doesn't include fees.\n"},currentUnitPrice:{type:"number",description:"Current unit price. Plaid uses this as the [institution_price](https://plaid.com/docs/api/products/investments/#investments-holdings-get-response-holdings-institution-price). Plaid falls back to using this as the [close price](https://plaid.com/docs/api/products/investments/#investments-holdings-get-response-securities-close-price) if you don't return `securityId` for holdings involving securities.\n"},currentUnitPriceDate:{$ref:"#/components/schemas/DateString",description:"Current unit price as of date"},units:{type:"number",description:"Plaid requires this field for holdings and transactions involving securities.\nFor security-based actions other than stock splits, quantity.\nShares for stocks, mutual funds, and others. Face value for bonds.\nContracts for options.\n\n**Note:** This field is required if the transaction involves a security.\n"},marketValue:{type:"number",description:"Market value at the time of data retrieved"},faceValue:{type:"number",description:"Required for bonds. Face value at the time of data retrieved. If this isn't present, Plaid assumes the holding isn't a bond and falls back to `marketValue`.\n"},cashAccount:{type:"boolean",description:"If true, indicates that this holding is used to maintain proceeds from sales, dividends, and other cash postings to the investment account. If you don't set a value for `isCashEquivalent` in the `fiAttributes` array, then Plaid uses `cashAccount` in determining the [is_cash_equivalent](https://plaid.com/docs/api/products/investments/#investments-holdings-get-response-securities-is-cash-equivalent) status.\n"},currency:{$ref:"#/components/schemas/Currency",description:"Currency information if it is different from Account entity."},fiAttributes:{type:"array",description:"Array of financial institution-specific attributes. Plaid recommends including a value for [is_cash_equivalent](https://plaid.com/docs/api/products/investments/#investments-holdings-get-response-securities-is-cash-equivalent) property in this array. Plaid accepts `isCashEquivalent` as the attribute name and a string value of `true` or `false`. If you return a value for `isCashEquivalent`, then return the same value for `cashAccount` as a boolean.\n",items:{$ref:"#/components/schemas/FiAttribute"}}},required:["cashAccount","marketValue"]}]},InsuranceAccountDescriptor:{allOf:[{$ref:"#/components/schemas/AccountDescriptor"},{type:"object",properties:{accountType:{$ref:"#/components/schemas/InsuranceAccountType"}},required:["accountType"]}],"x-examples":[{insuranceAccount:{accountId:"insuranceAccount0000001",accountType:"LONGTERMDISABILITY",accountNumberDisplay:"5820",productName:"Long-term disability",nickname:"Long term",status:"OPEN",currency:{currencyCode:"USD"}}}]},InvestmentAccount:{allOf:[{$ref:"#/components/schemas/AccountDescriptor"},{type:"object",properties:{accountType:{$ref:"#/components/schemas/InvestmentAccountType"}},required:["accountType"]}]},InvestmentAccountDescriptor:{description:"The type of investment account. For example, a 401K or IRA. Plaid consumes the same details for all investment accounts. The `accountType` field for investment accounts may be set to any of the [account types](#investment-account-types) listed below.\n",type:"object",properties:{investmentAccount:{$ref:"#/components/schemas/InvestmentAccount"}},required:["investmentAccount"],"x-examples":[{investmentAccount:{accountId:"investmentAccount0000001",accountType:"TAXABLE",accountNumberDisplay:"1050",productName:"Brokerage Account",nickname:"First plaidypus Brokerage",status:"OPEN",currency:{currencyCode:"USD"}}}]},InvestmentAccountFull:{allOf:[{$ref:"#/components/schemas/InvestmentAccount"},{type:"object",properties:{availableCashBalance:{type:"number",description:"Cash balance across all sub-accounts. Plaid expects that this includes sweep funds."},balanceAsOf:{description:"As-of date of balances.\n\nISO 8601 date-time in format `YYYY-MM-DDThh:mm:ss.nnn[Z|[+|-]hh:mm]` according to [IETF RFC3339](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6)\n",$ref:"#/components/schemas/Timestamp"},currentValue:{type:"number",description:"Total current value of all investments."},holdings:{type:"array",description:"Holdings in the investment account.\nPlaid maps the `holding` and the `investmentAccount` FDX models to its securities models, which hold universal information like the ticker symbol, and to its holdings models, which hold account-specific information like balances. For more information, see [Plaid investments](https://plaid.com/docs/investments/#securities-and-holdings).\n",items:{$ref:"#/components/schemas/Holding"}}},required:["availableCashBalance","currentValue"]},{"x-examples":[{investmentAccount:{accountId:"investmentAccount0000001",accountType:"TAXABLE",accountNumberDisplay:"1050",productName:"Brokerage Account",nickname:"First plaidypus Brokerage",status:"OPEN",currency:{currencyCode:"USD"},availableCashBalance:4302.39,balanceAsOf:null,currentValue:4302.39,holdings:[{securityId:"string",securityIdType:"CINS",holdingName:"string",holdingType:"ANNUITY",holdingSubType:"CASH",symbol:"MTSN",purchasedPrice:12.5,currentUnitPrice:34.2,currentUnitPriceDate:"2024-07-15",units:100,marketValue:3400,faceValue:3400,cashAccount:!0,currency:{currencyCode:"AED"},fiAttributes:[{name:"string",value:"string"}]}]}}]}]},InvestmentTransaction:{title:"Investment Transaction entity",description:"A transaction on an investment account.\nIn addition to the required fields in the base `Transaction` model, Plaid requires the following fields\nfor all transactions on an investment account:\n\n* `fees`\n* `transactionType`\n\nIf the transaction involves a security, Plaid additionally requires the following fields:\n\n* `unitPrice`\n* `units`\n* Either of the following:\n - `symbol`\n - `securityId` and `securityIdType`\n",type:"object",allOf:[{$ref:"#/components/schemas/Transaction"},{type:"object",properties:{transactionType:{$ref:"#/components/schemas/InvestmentTransactionType"},securityId:{type:"string",description:"If you return the `securityId` for a holding, Plaid uses it to look up the closing price from NYSE Group Security Master. If you don't return `securityId` for a holding that uses security IDs (not recommended), Plaid uses the `unitPrice` as the closing price.\nThis field, along with `securityIdType` are **required** unless `symbol` is provided.\n**Note:** If `securityId` is provided, `securityIdType` is required.\n"},securityIdType:{$ref:"#/components/schemas/SecurityIdType"},securityType:{$ref:"#/components/schemas/SecurityType",description:"STOCK, MUTUALFUND, DEBT, OPTION, SWEEP, OTHER, BOND"},symbol:{type:"string",description:"Ticker symbol.\n\nThis field is **required** unless both `securityId` and `securityIdType` are provided.\n"},commission:{type:"number",description:"Plaid expects that your organization includes a value for commission if the commission isn't included in `fees`.\n"},fees:{type:"number",description:"Fees applied to the trade. Plaid expects that the `fees` include the commission, unless your organization separately provides a value for `commission`.\n"},unitPrice:{type:"number",description:"Unit price. Plaid uses this as the [price](https://plaid.com/docs/api/products/investments/#investments-transactions-get-response-investment-transactions-price).\nPlaid falls back to using this as the [close price](https://plaid.com/docs/api/products/investments/#investments-transactions-get-response-securities-close-price)\nif you don't return `securityId` for transactions involving securities.\n\n**Note:** This field is required if the transaction involves a security.\n"},units:{type:"number",description:"Plaid requires this field for holdings and transactions involving securities.\nFor security-based actions other than stock splits, quantity.\nShares for stocks, mutual funds, and others. Face value for bonds.\nContracts for options.\n\n**Note:** This field is required if the transaction involves a security.\n"},unitType:{$ref:"#/components/schemas/UnitType",description:"SHARES, CURRENCY"},fiAttributes:{type:"array",description:"Array of financial institution-specific attributes. Plaid recommends including a value for [is_cash_equivalent](https://plaid.com/docs/api/products/investments/#investments-transactions-get-response-securities-is-cash-equivalent) property in this array. Plaid accepts `isCashEquivalent` as the attribute name and a string value of `true` or `false`.\n",items:{$ref:"#/components/schemas/FiAttribute"}}},required:["fees","transactionType"]}],"x-examples":[{transactionId:"investmentTransaction000000001",transactionTimestamp:"2022-04-05T00:00:00.000Z",description:"latest ACME investment invoice",debitCreditMemo:"DEBIT",status:"PENDING",amount:400,securityId:"APW881",securityIdType:"CMC",securityType:"DEBT",symbol:"MSFT",commission:.1,unitPrice:15.3,units:1e3,unitType:"SHARES",fiAttributes:[{name:"Vanguard",value:80}]}]},LoanAccount:{title:"Loan Account entity",type:"object",allOf:[{$ref:"#/components/schemas/AccountDescriptor"},{type:"object",properties:{accountType:{$ref:"#/components/schemas/LoanAccountType"},accountNumber:{type:"string",example:"loanAccount0000001",description:"Full account number for the end user's handle for the account at the owning institution\nRequired for accountType 'MORTGAGE'\n"},principalBalance:{type:"number",example:580303.95,description:"Principal balance of loan"},escrowBalance:{type:"number",example:3400.61,description:"Escrow balance of loan"},originalPrincipal:{type:"number",example:650400,description:"Original principal of loan"},originatingDate:{$ref:"#/components/schemas/DateString",description:"Loan origination date"},loanTerm:{type:"integer",example:360,description:"Term of loan in months"},nextPaymentAmount:{type:"number",example:2483.12,description:"Amount of next payment"},nextPaymentDate:{$ref:"#/components/schemas/DateString",description:"Date of next payment"},lastPaymentAmount:{type:"number",example:2483.12,description:"Last payment amount"},lastPaymentDate:{$ref:"#/components/schemas/DateString",description:"Last payment date"},maturityDate:{$ref:"#/components/schemas/DateString",description:"Maturity date"},interestPaidYearToDate:{type:"number",description:"Interest paid year to date"},interestRate:{type:"number",example:.075,description:"The account's interest rate"},interestRateType:{$ref:"#/components/schemas/InterestRateType"}},required:["principalBalance","interestRate","interestRateType","accountType"]}]},LoanAccountDescriptor:{description:'Full details of a loan account. The `accountType` field for loan accounts may be set to any of the [account types](#loan-account-types) listed below.\n\nPlaid only consumes the `MORTGAGE` and `STUDENTLOAN` types for its [Liabilities API](https://plaid.com/docs/api/products/liabilities/). For other loan account types Plaid consumes account details and transactions.\nPlaid consumes all loan account information as returned in the `GET /accounts` endpoint, as well as the additional information listed below:\n\nRequired for all loan accounts:\n* `principalBalance`\n* `interestRate`\n* `interestRateType`\n\nOptional fields for `STUDENTLOAN` accounts:\n* `interestPaidYearToDate`\n* `lastPaymentAmount`\n* `lastPaymentDate`\n* `maturityDate`\n* `nextPaymentDate`\n* `originalPrincipal`\n* `originatingDate`\n\nRequired for `MORTGAGE` accounts:\n* `accountNumber`\n\nOptional fields for `MORTGAGE` accounts:\n* `escrowBalance`\n* `interestPaidYearToDate`\n* `lastPaymentAmount`\n* `lastPaymentDate`\n* `loanTerm`\n* `maturityDate`\n* `nextPaymentAmount`\n* `nextPaymentDate`\n* `originalPrincipal`\n* `originatingDate`\n\nPlaid expects a decimal amount with two places (to represent fractional values of the base currency) for all monetary amounts. For example, `"escrowBalance": 192.00`.\n',type:"object",properties:{loanAccount:{$ref:"#/components/schemas/LoanAccount"}},required:["loanAccount"],"x-examples":[{loanAccount:{accountId:"loanAccount0000001",accountType:"LOAN",accountNumberDisplay:"4704",productName:"Loan",nickname:"Primary Loan",status:"OPEN",currency:{currencyCode:"USD"}}}]},LoanAccountFull:{description:'Full details of a loan account. The `accountType` field for loan accounts may be set to any of the [account types](#loan-account-types) listed below.\n\nPlaid only consumes the `MORTGAGE` and `STUDENTLOAN` types for its [Liabilities API](https://plaid.com/docs/api/products/liabilities/). For other loan account types Plaid consumes account details and transactions.\nPlaid consumes all loan account information as returned in the `GET /accounts` endpoint, as well as the additional information listed below:\n\nRequired for all loan accounts:\n* `principalBalance`\n* `interestRate`\n* `interestRateType`\n\nOptional fields for `STUDENTLOAN` accounts:\n* `interestPaidYearToDate`\n* `lastPaymentAmount`\n* `lastPaymentDate`\n* `maturityDate`\n* `nextPaymentDate`\n* `originalPrincipal`\n* `originatingDate`\n\nRequired for `MORTGAGE` accounts:\n* `accountNumber`\n\nOptional fields for `MORTGAGE` accounts:\n* `escrowBalance`\n* `interestPaidYearToDate`\n* `lastPaymentAmount`\n* `lastPaymentDate`\n* `loanTerm`\n* `maturityDate`\n* `nextPaymentAmount`\n* `nextPaymentDate`\n* `originalPrincipal`\n* `originatingDate`\n\nPlaid expects a decimal amount with two places (to represent fractional values of the base currency) for all monetary amounts. For example, `"escrowBalance": 192.00`.\n',type:"object",properties:{loanAccount:{$ref:"#/components/schemas/LoanAccount"}},required:["loanAccount"],"x-examples":[{loanAccount:{accountId:"someLongTermUniqueIDString",accountNumberDisplay:"4321",productName:"string",nickname:"string",status:"CLOSED",currency:{currencyCode:"AED"},accountType:"AUTOLOAN",accountNumber:"string",principalBalance:0,escrowBalance:0,originalPrincipal:0,originatingDate:"2021-07-15",loanTerm:0,nextPaymentAmount:0,nextPaymentDate:"2021-07-15",lastPaymentAmount:0,lastPaymentDate:"2021-07-15",maturityDate:"2021-07-15",interestPaidYearToDate:0,interestRate:0,interestRateType:"FIXED"}}]},LoanTransaction:{title:"Loan Transaction entity",description:"A transaction on a loan account",type:"object",allOf:[{$ref:"#/components/schemas/Transaction"},{type:"object",properties:{transactionType:{$ref:"#/components/schemas/LoanTransactionType"}}}],"x-examples":[{transactionId:"loanTransaction000000001",transactionTimestamp:"2022-04-05T00:00:00.000Z",description:"latest ACME invoice",debitCreditMemo:"CREDIT",status:"PENDING",amount:400}]},LocAccount:{type:"object",allOf:[{$ref:"#/components/schemas/AccountDescriptor"},{type:"object",properties:{accountType:{$ref:"#/components/schemas/LocAccountType"},creditLine:{type:"number",description:"Credit limit"},availableCredit:{type:"number",description:"Available credit. Required for all accountTypes except for `CHARGE`"},nextPaymentAmount:{type:"number",description:"Amount of next payment"},nextPaymentDate:{$ref:"#/components/schemas/DateString",description:"Due date of next payment"},principalBalance:{type:"number",description:"Principal balance"},currentBalance:{type:"number",description:"Current balance of the line of credit"},minimumPaymentAmount:{type:"number",description:"Minimum payment amount"},lastPaymentAmount:{type:"number",description:"Last payment amount"},lastPaymentDate:{$ref:"#/components/schemas/DateString",description:"Last payment date"},pastDueAmount:{type:"number",description:"Amount owed that the account holder failed to pay on the due date"},lastStmtBalance:{type:"number",description:"Last statement balance"},lastStmtDate:{$ref:"#/components/schemas/DateString",description:"Last statement date"},purchasesApr:{type:"number",description:"Purchases APR"},advancesApr:{type:"number",description:"Advances APR"}},required:["currentBalance","accountType"]}]},LocAccountDescriptor:{description:'Full details of a line of credit account. The `accountType` field for line of credit accounts may be set to any of the [account types](#loc-account-types) listed below.\n\nPlaid may consume all the parameters returned by the `GET /accounts` endpoint:\n\n* `availableCredit`\n* `creditLine`\n* `currentBalance`\n\nAdditionally, for the `CREDITCARD` accountType, Plaid consumes the previous information plus the following for its liabilities product:\n\n* `advancesApr`\n* `lastPaymentAmount`\n* `lastPaymentDate`\n* `lastStmtBalance`\n* `lastStmtDate`\n* `minimumPaymentAmount`\n* `nextPaymentDate`\n* `purchasesApr`\nPlaid expects a decimal amount with two places (to represent fractional values of the base currency) for all monetary amounts. For example, `"currentBalance": 192.00`.\n',type:"object",properties:{locAccount:{$ref:"#/components/schemas/LocAccount"}},required:["locAccount"],"x-examples":[{locAccount:{accountId:"loc_01_creditcard",accountNumberDisplay:"8200",productName:"First Plaidypus Credit Card",nickname:"my travel rewards card",status:"OPEN",currency:{currencyCode:"USD"},accountType:"CREDITCARD"}}]},LocAccountFull:{description:'Full details of a line of credit account. The `accountType` field for line of credit accounts may be set to any of the [account types](#loc-account-types) listed below.\n\nPlaid may consume all the parameters returned by the `GET /accounts` endpoint:\n\n* `availableCredit`\n* `creditLine`\n* `currentBalance`\n\nAdditionally, for the `CREDITCARD` accountType, Plaid consumes the previous information plus the following for its liabilities product:\n\n* `advancesApr`\n* `lastPaymentAmount`\n* `lastPaymentDate`\n* `lastStmtBalance`\n* `lastStmtDate`\n* `minimumPaymentAmount`\n* `nextPaymentDate`\n* `purchasesApr`\nPlaid expects a decimal amount with two places (to represent fractional values of the base currency) for all monetary amounts. For example, `"currentBalance": 192.00`.\n',type:"object",properties:{locAccount:{$ref:"#/components/schemas/LocAccount"}},required:["locAccount"],"x-examples":[{locAccount:{accountId:"loc_01_creditcard",accountNumberDisplay:"8200",productName:"First Plaidypus Credit Card",nickname:"my travel rewards card",status:"OPEN",currency:{currencyCode:"USD"},minimumPaymentAmount:100,lastPaymentAmount:400,lastPaymentDate:"2022-03-30",pastDueAmount:0,lastStmtBalance:400,lastStmtDate:"2022-03-25",purchasesApr:10.25,advancesApr:15.75,currentBalance:375,availableCredit:625,accountType:"CREDITCARD"}}]},LocTransaction:{title:"Line-Of-Credit Transaction entity",description:"A line-of-credit transaction",type:"object",allOf:[{$ref:"#/components/schemas/Transaction"},{type:"object",properties:{transactionType:{$ref:"#/components/schemas/LocTransactionType"},checkNumber:{type:"integer",description:"Check number"}}}],"x-examples":[{transactionId:"locTransaction000000001",transactionTimestamp:"2022-04-05T00:00:00.000Z",description:"credit for latest ACME invoice",debitCreditMemo:"DEBIT",status:"PENDING",amount:400}]},Statement:{title:"Statement entity",description:"An account statement",type:"object",properties:{accountId:{$ref:"#/components/schemas/Identifier",description:"Corresponds to `accountId` in Account entity"},statementId:{$ref:"#/components/schemas/Identifier",description:"Long-term persistent identity of the statement"},statementDate:{$ref:"#/components/schemas/DateString",description:"Date of the statement"},description:{type:"string",description:"Description of the statement"},links:{$ref:"#/components/schemas/HateoasLinks",description:"The HATEOAS links to retrieve this account statement, or to invoke other APIs.\n\n**Note:** Plaid only accepts one link object in this array.\n"},status:{description:"Availability status of statement",type:"string"}}},Statements:{title:"An array of statements",description:"A paginated array of account statements",type:"object",allOf:[{$ref:"#/components/schemas/PaginatedArray"},{type:"object",properties:{statements:{type:"array",description:"An array of statements, each with its own HATEOAS link to retrieve the account statement",items:{$ref:"#/components/schemas/Statement"}}},required:["statements"]}]},StatementPDF:{title:"Statement PDF",description:"An account statement PDF",type:"string",format:"binary"},Transaction:{title:"Transaction",description:"Base entity for financial transactions. For monetary amounts, Plaid expects a decimal amount, with two places to represent fractional values of the base currency, for example `101.99`.\n",type:"object",properties:{transactionId:{description:"Long term persistent identity of the transaction (unique to account). Plaid expects that `status: PENDING` and `status: POSTED` transactions have different IDs.",$ref:"#/components/schemas/Identifier"},referenceTransactionId:{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",$ref:"#/components/schemas/Identifier"},postedTimestamp:{description:"The date and time that the transaction was posted to the account.\n\nThis property is **required** by Plaid when `status=POSTED`.\nPlaid expects this property to be omitted when `status=PENDING`\n\nISO 8601 date-time in format `YYYY-MM-DDThh:mm:ss.nnn[Z|[+|-]hh:mm]` according to [IETF RFC3339](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6)\n",$ref:"#/components/schemas/Timestamp"},transactionTimestamp:{description:"The date and time that the transaction was added to the server backend systems. This acts as postedTimestamp when postedTimestamp is not present (pending transaction).\n\nISO 8601 date-time in format `YYYY-MM-DDThh:mm:ss.nnn[Z|[+|-]hh:mm]` according to [IETF RFC3339](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6)\n",$ref:"#/components/schemas/Timestamp"},description:{type:"string",description:"The description of the transaction"},debitCreditMemo:{$ref:"#/components/schemas/DebitCreditMemo"},category:{type:"string",description:"Transaction category, preferably MCC or SIC. Plaid expects your organization to provide MCC, if available and applicable.\n"},subCategory:{type:"string",description:"Transaction category detail"},status:{$ref:"#/components/schemas/TransactionStatus"},amount:{type:"number",description:"The amount of money in the account currency. The amount is an absolute value. Plaid relies on the `DebitCreditMemo` enum to determine the direction (and sign) of the transaction.\n"},foreignAmount:{type:"number",description:"The amount of money in the foreign currency. If this amount is specified, then Plaid expects that the `foreignCurrency` property is also set."},foreignCurrency:{$ref:"#/components/schemas/Iso4217Code",description:"The ISO 4217 code of the foreign currency"}},required:["debitCreditMemo","description","transactionId","transactionTimestamp","status","amount"]},Transactions:{title:"Transactions entity",description:"Optionally paginated array of transactions",type:"object",properties:{page:{$ref:"#/components/schemas/PageMetadata"},transactions:{description:"An array of transactions. The `transactionType` is dependent on the account type. Plaid consumes the following types of transactions: [investment](#investment-transaction), [deposit](#deposit-transaction), [loan](#loan-transaction), and [line of credit](#line-of-credit-transaction)\n\nPlaid expects your organization to return an empty array if this information isn't available.\n",type:"array",items:{oneOf:[{type:"object",title:"Deposit Transaction",properties:{depositTransaction:{$ref:"#/components/schemas/DepositTransaction"}},required:["depositTransaction"],additionalProperties:!1},{type:"object",title:"Investment Transaction",properties:{investmentTransaction:{$ref:"#/components/schemas/InvestmentTransaction",description:"A transaction on an investment account.\nIn addition to the required fields in the base `Transaction` model, Plaid requires the following fields\nfor all transactions on an investment account:\n\n* `fees`\n* `transactionType`\n\nIf the transaction involves a security, Plaid additionally requires the following fields:\n\n* `unitPrice`\n* `units`\n* Either of the following:\n - `symbol`\n - `securityId` and `securityIdType`\n"}},required:["investmentTransaction"],additionalProperties:!1},{type:"object",title:"Loan Transaction",properties:{loanTransaction:{$ref:"#/components/schemas/LoanTransaction"}},required:["loanTransaction"],additionalProperties:!1},{type:"object",title:"Line of Credit Transaction",properties:{locTransaction:{$ref:"#/components/schemas/LocTransaction"}},required:["locTransaction"],additionalProperties:!1}]}}},required:["transactions"],example:{page:{nextOffset:"qwer123454q2f"},transactions:[{depositTransaction:{transactionType:"CHECK",checkNumber:1234,payee:"ACME llc",transactionId:"depositTransaction000000001",postedTimestamp:"2022-04-06T00:00:00.000Z",transactionTimestamp:"2022-04-05T00:00:00.000Z",description:"check for latest ACME invoice",debitCreditMemo:"DEBIT",status:"PENDING",amount:400}},{depositTransaction:{transactionType:"ADJUSTMENT",transactionId:"depositTransaction000000002",postedTimestamp:"2022-04-07T00:00:00.000Z",transactionTimestamp:"2022-04-07T00:00:00.000Z",description:"reconciliation/adjustment of bank statement error",debitCreditMemo:"DEBIT",status:"POSTED",amount:.8}},{depositTransaction:{transactionType:"ATMDEPOSIT",transactionId:"depositTransaction000000003",postedTimestamp:"2022-04-08T00:00:00.000Z",transactionTimestamp:"2022-04-08T00:00:00.000Z",description:"ATM cash deposit location #1234",debitCreditMemo:"CREDIT",status:"POSTED",amount:101.8}}]}},AccountHolderRelationship:{title:"Account Holder Relationship",description:"Types of relationships between accounts and holders. Suggested values",type:"string",enum:["AUTHORIZED_USER","BUSINESS","FOR_BENEFIT_OF","FOR_BENEFIT_OF_PRIMARY","FOR_BENEFIT_OF_PRIMARY_JOINT_RESTRICTED","FOR_BENEFIT_OF_SECONDARY","FOR_BENEFIT_OF_SECONDARY_JOINT_RESTRICTED","FOR_BENEFIT_OF_SOLE_OWNER_RESTRICTED","POWER_OF_ATTORNEY","PRIMARY_JOINT_TENANTS","PRIMARY","PRIMARY_BORROWER","PRIMARY_JOINT","SECONDARY","SECONDARY_JOINT_TENANTS","SECONDARY_BORROWER","SECONDARY_JOINT","SOLE_OWNER","TRUSTEE","UNIFORM_TRANSFER_TO_MINOR"]},ContentTypes:{title:"Content Types",description:"Types of document formats. (Suggested values)",type:"string",enum:["application/pdf","image/gif","image/jpeg","image/tiff","image/png","application/json"]},DateString:{title:"Date String",description:"ISO 8601 full-date in format 'YYYY-MM-DD' according to [IETF RFC3339](https://xml2rfc.tools.ietf.org/public/rfc/html/rfc3339.html#anchor14)",type:"string",format:"date",maxLength:10,example:"2021-07-15"},HateoasLinks:{title:"HATEOAS links array",description:"An array of HATEOAS links",type:"array",items:{$ref:"#/components/schemas/HateoasLink"}},HttpAction:{title:"HTTP action type",description:"The HTTP method to use for requests",type:"string",enum:["GET","POST","PATCH","DELETE","PUT"]},Identifier:{title:"Identifier",description:"Value for a unique identifier",type:"string",maxLength:256,example:"someLongTermUniqueIDString"},Iso3166CountryCode:{title:"ISO 3166 Country Code",description:"ISO 3166 Codes for the representation of names of countries and their subdivisions",type:"string",enum:["AD","AE","AF","AG","AI","AL","AM","AN","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BM","BN","BO","BR","BS","BT","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CR","CS","CU","CV","CX","CY","CZ","DE","DJ","DK","DM","DO","DZ","EC","EE","EG","EH","ER","ES","ET","FI","FJ","FK","FM","FO","FR","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RU","RW","SA","SB","SC","SD","SE","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","ST","SV","SY","SZ","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TR","TT","TV","TW","TZ","UA","UG","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","YE","YT","ZA","ZM","ZW"]},Iso4217Code:{title:"ISO 4217 Code",description:"ISO 4217 Currency codes",type:"string",enum:["AED","AFN","ALL","AMD","ANG","AOA","ARS","AUD","AWG","AZN","BAM","BBD","BDT","BGN","BHD","BIF","BMD","BND","BOB","BOV","BRL","BSD","BTN","BWP","BZD","CAD","CDF","CHE","CHF","CHW","CLF","CLP","CNY","COP","COU","CRC","CUC","CUP","CVE","CZK","DJF","DKK","DOP","DZD","EGP","ERN","ETB","EUR","FJD","FKP","GBP","GEL","GHS","GIP","GMD","GNF","GTQ","GYD","HKD","HNL","HRK","HTG","HUF","IDR","ILS","INR","IQD","IRR","ISK","JMD","JOD","JPY","KES","KGS","KHR","KMF","KPW","KRW","KWD","KYD","KZT","LAK","LBP","LKR","LRD","LSL","LYD","MAD","MDL","MGA","MKD","MMK","MNT","MOP","MUR","MVR","MWK","MXN","MXV","MYR","MZN","NAD","NGN","NIO","NOK","NPR","NZD","OMR","PAB","PEN","PGK","PHP","PKR","PLN","PYG","QAR","RON","RSD","RUB","RWF","SAR","SBD","SCR","SDG","SEK","SGD","SHP","SLL","SOS","SRD","SSP","SVC","SYP","SZL","THB","TJS","TMT","TND","TOP","TRY","TTD","TWD","TZS","UAH","UGX","USD","USN","UYI","UYU","UZS","VND","VUV","WST","XAF","XAG","XAU","XBA","XBB","XBC","XBD","XCD","XDR","XOF","XPD","XPF","XPT","XSU","XTS","XUA","XXX","YER","ZAR","ZMW","ZWL"]},String255:{title:"String 255",description:"String of maximum length 255",type:"string",maxLength:255},String64:{title:"String 64",description:"String of maximum length 64",type:"string",maxLength:64},TelephoneNumberType:{title:"Telephone Number Type",description:"Purpose or type of telephone number",type:"string",enum:["HOME","BUSINESS","CELL","FAX"]},Timestamp:{title:"Timestamp",description:"ISO 8601 date-time in format `YYYY-MM-DDThh:mm:ss.nnn[Z|[+|-]hh:mm]` according to [IETF RFC3339](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6)",type:"string",format:"date-time",example:"2021-07-15T14:46:41.375Z"},AccountStatus:{title:"Account Status",description:"The status of an account.\n",type:"string",enum:["CLOSED","DELINQUENT","NEGATIVECURRENTBALANCE","OPEN","PAID","PENDINGCLOSE","PENDINGOPEN","RESTRICTED"]},AnnuityAccountType:{description:"The type of an account. Plaid consumes basic balance account information from the `accounts/{accountId}` endpoint for a subset of the possible account types described in the FDX specification.\n",type:"string",example:"FIXEDANNUITY",enum:["ANNUITY","FIXEDANNUITY","VARIABLEANNUITY"]},DepositAccountType:{description:"The type of an account. Plaid consumes basic balance account information from the `accounts/{accountId}` endpoint for a subset of the possible account types described in the FDX specification.\n",type:"string",example:"SAVINGS",enum:["CHECKING","SAVINGS","CD","COMMERCIALDEPOSIT","ESCROW","MONEYMARKET","OTHERDEPOSIT"]},InvestmentAccountType:{description:"The type of an account. Plaid consumes basic balance account information from the `accounts/{accountId}` endpoint for a subset of the possible account types described in the FDX specification.\n",type:"string",example:"ROTH",enum:["401A","401K","403B","529","BROKERAGEPRODUCT","COMMERCIALINVESTMENT","COVERDELL","DIGITALASSET","DEFINEDBENEFIT","ESOP","GUARDIAN","INSTITUTIONALTRUST","IRA","KEOGH","NONQUALIFIEDPLAN","OTHERINVESTMENT","ROLLOVER","ROTH","SARSEP","TAXABLE","TDA","TRUST","TERM","UGMA","UTMA"]},InsuranceAccountType:{description:"The type of an account. Plaid consumes basic balance account information from the `accounts/{accountId}` endpoint for a subset of the possible account types described in the FDX specification.\n",type:"string",example:"WHOLELIFE",enum:["LONGTERMDISABILITY","SHORTTERMDISABILITY","UNIVERSALLIFE","WHOLELIFE"]},DebitCreditMemo:{title:"DebitCreditMemo",description:"The posting type of a transaction. The transaction amount is an absolute value, and this parameter indicates the direction of the transaction. Plaid expects `DEBIT` or `CREDIT` for this enum. Plaid expects that your organization indicates the `MEMO` (i.e., pending) status using the `status` field in the transaction response rather than this field. If your organization sends `MEMO` in this `DebitCreditMemo` enum, Plaid handles this value the same as it handles `DEBIT`. * `DEBIT`: An amount leaves the account * `CREDIT`: An amount enters the account * `MEMO`: A pending transaction to be completed at the end of this day.\n",type:"string",enum:["CREDIT","DEBIT","MEMO"]},FiAttribute:{title:"FI Attribute entity",description:"Financial Institution provider-specific attribute",type:"object",properties:{name:{type:"string",description:"The attribute's name"},value:{type:"string",description:"The attribute's value"}}},HoldingSubType:{title:"Holding SubType",description:"The subtype of an investment holding. Plaid expects you to return `OTHER` and set the `holdingSubType` to indicate cash-type holdings (CASH, MONEYMARKET).\n",type:"string",enum:["CASH","MONEYMARKET"]},HoldingType:{title:"Holding Type",description:"Plaid maps the holding type to the Plaid [security type](https://plaid.com/docs/api/products/investments/#investments-transactions-get-response-securities-type). Plaid expects you to return `OTHER` and set the `holdingSubType` to indicate cash-type holdings (CASH, MONEYMARKET).\n",type:"string",enum:["ANNUITY","BOND","CD","DIGITALASSET","MUTUALFUND","OPTION","OTHER","STOCK"]},InterestRateType:{title:"Interest Rate Type",description:"Specifies whether an interest rate is fixed or variable. This information is helpful for personal financial planning and advising. For example, it affects the potential benefits of refinancing, and informs whether a mortgage payment is expected to change in the future",type:"string",enum:["FIXED","VARIABLE"]},InvestmentTransactionType:{title:"Investment Transaction Type",description:"The type of an investment transaction.\nPlaid maps these enums to Plaid [investment transaction types](https://plaid.com/docs/api/accounts/#investment-transaction-types-schema).\nPlaid doesn't map these enums to Plaid-specific transaction subtypes.\nPlaid maps these enums as follows:\n\n* ADJUSTMENT - fee\n* ATM - cash\n* CASH - cash\n* CHECK - cash\n* CLOSURE - Plaid suggests using SOLDTOCLOSE, PURCHASETOCLOSE, OPTIONEXERCISE or OPTIONEXPIRATION to indicate the specific type of closure, instead of using this enum.\n* CLOSUREOPT - Plaid suggests using SOLDTOCLOSE, PURCHASETOCLOSE, OPTIONEXERCISE or OPTIONEXPIRATION to indicate the specific type of closure, instead of using this enum.\n* CONTRIBUTION - buy (if transaction involves a security) or cash\n* DEP - cash\n* DEPOSIT - cash\n* DIRECTDEBIT - cash\n* DIRECTDEP - cash\n* DIV - cash\n* DIVIDEND - cash\n* DIVIDENDREINVEST - buy\n* EXPENSE - cash\n* FEE - fee\n* INCOME - cash\n* INTEREST - cash\n* INVEXPENSE - cash\n* JRNLFUND - transfer\n* JRNLSEC - transfer\n* MARGININTEREST - cash\n* OPTIONEXERCISE - transfer\n* OPTIONEXPIRATION - transfer\n* OTHER - cash - (unclassified)\n* PAYMENT - cash\n* POS - cash\n* PURCHASED - buy\n* PURCHASEDTOCOVER - buy\n* PURCHASETOCLOSE - buy\n* PURCHASETOOPEN - buy\n* REINVESTOFINCOME - buy\n* REPEATPMT - cash\n* RETURNOFCAPITAL - cash\n* SOLD - sell\n* SOLDTOCLOSE - sell\n* SOLDTOOPEN - sell\n* SPLIT - transfer\n* SRVCHG - fee\n* TRANSFER - transfer\n* XFER - transfer\n",type:"string",enum:["ADJUSTMENT","ATM","CASH","CHECK","CLOSURE","CLOSUREOPT","CONTRIBUTION","DEP","DEPOSIT","DIRECTDEBIT","DIRECTDEP","DIV","DIVIDEND","DIVIDENDREINVEST","EXPENSE","FEE","INCOME","INTEREST","INVEXPENSE","JRNLFUND","JRNLSEC","MARGININTEREST","OPTIONEXERCISE","OPTIONEXPIRATION","OTHER","PAYMENT","POS","PURCHASED","PURCHASEDTOCOVER","PURCHASETOCLOSE","PURCHASETOOPEN","REINVESTOFINCOME","REPEATPMT","RETURNOFCAPITAL","SOLD","SOLDTOCLOSE","SOLDTOOPEN","SPLIT","SRVCHG","TRANSFER","XFER"]},LoanAccountType:{description:"The type of an account. Plaid consumes basic balance account information from the `accounts/{accountId}` endpoint for a subset of the possible account types described in the FDX specification.\n",type:"string",example:"HOMEEQUITYLOAN",enum:["AUTOLOAN","COMMERCIALLOAN","HOMEEQUITYLOAN","INSTALLMENT","LOAN","MILITARYLOAN","MORTGAGE","PERSONALLOAN","SMBLOAN","STUDENTLOAN"]},LoanTransactionType:{title:"Loan Transaction Type",description:"The type of a loan transaction. Plaid passes through all loan transaction types.\n\n
    \n
  • `ADJUSTMENT`: Adjustment or correction.
  • \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
  • `LUMP_SUM_PAYMENT`: A single payment of money, as opposed to a series of payments made over time.
  • \n
  • `SKIP_PAYMENT`: Payment that satisfies deferral of a required payment.
  • \n
  • `DOUBLE_UP_PAYMENT`: Additional payment beyond the required payment to reduce the principal.
  • \n
  • `PAYOFF`: Payment that satisfies the terms of the mortgage loan and completely pays off the debt.
  • \n
\n",type:"string",enum:["ADJUSTMENT","FEE","INTEREST","PAYMENT","LUMP_SUM_PAYMENT","SKIP_PAYMENT","DOUBLE_UP_PAYMENT","PAYOFF"]},LocAccountType:{description:"The type of an account. Plaid consumes basic balance account information from the `accounts/{accountId}` endpoint for a subset of the possible account types described in the FDX specification.\n",type:"string",example:"CREDITCARD",enum:["LINEOFCREDIT","CHARGE","COMMERCIALLINEOFCREDIT","CREDITCARD","HOMELINEOFCREDIT"]},LocTransactionType:{title:"Line-Of-Credit Transaction Type",description:"The type of a line of credit (LOC) transaction. Plaid passes through all LOC transaction types.\n",type:"string",enum:["ADJUSTMENT","CHECK","FEE","INTEREST","PAYMENT","WITHDRAWAL"]},PaymentNetworkType:{title:"Payment Network Type",description:"Suggested values for Payment Network Type. `US_` refers to the USA, and `CA_` refers to Canada.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
ValueDescription
US_ACHAutomated Clearing House, also called Fed ACH network (mostly small banks)
US_FEDWIREFedwire Funds Service.
US_CHIPSClearinghouse Interbank Payments System. Also called Clearing House ACH network (primarily big banks)
CA_ACSSAutomated Clearing House Settlement System
CA_LVTSLarge-Value Transfer System
\n",type:"string",enum:["US_ACH","US_FEDWIRE","US_CHIPS","US_RTP","CA_ACSS","CA_LVTS"]},SecurityIdType:{title:"Security ID Type",description:"Plaid consumes solely CUSIP, ISIN, and SEDOL.\nThis field, along with `securityId` are **required** unless `symbol` is provided.\n**Note:** If `securityIdType` is provided, `securityId` is required.\n",type:"string",enum:["CUSIP","ISIN","SEDOL","SICC","VALOR","WKN"]},SecurityType:{title:"Security Type",description:"The type of a security",type:"string",enum:["BOND","DEBT","DIGITALASSET","MUTUALFUND","OPTION","OTHER","STOCK","SWEEP"]},TransactionStatus:{title:"Transaction Status",description:"The status of a transaction. Plaid consumes solely the `PENDING` and `POSTED` enums,\nand treats `MEMO` and `AUTHORIZATION` as if they were `PENDING`. Plaid expects that pending and posted transactions\nhave different `transactionIds`.\n* `AUTHORIZATION`\n* `MEMO` - A pending transaction to be completed at the end of this day\n* `PENDING` - A pending transaction\n* `POSTED` - A posted transaction\n",type:"string",enum:["AUTHORIZATION","MEMO","PENDING","POSTED"]},UnitType:{title:"Unit Type",description:"The units of an investment transaction",type:"string",enum:["CURRENCY","SHARES"]}}}},5.3:{openapi:"3.0.3",info:{version:"5.3.2",title:"FDX V5.3",description:"## FDX compliance\n\nThe Core Exchange API specifications are a subset of the Financial Data Exchange (FDX) API specification, the usage thereof (or any part thereof) constitutes acceptance of the FDX API\nLicense Agreement, which can be found at https://financialdataexchange.org/. The FDX API specification is distributed exclusively by FDX. Modifications to eliminate required or\nconditional elements prescribed in the FDX API Certification Use Cases will render any implementations using said modifications non-conformant with the FDX API Certification Use Cases.\nPlease note that building the FDX-compliant Core Exchange API and permitting Plaid to call your build constitutes acceptance of\nthe FDX end user license agreement, which can be found at https://financialdataexchange.org/.\nThe full FDX API standard specification is distributed exclusively by FDX.\n\n## Download the specification\n\nTo view this specification and documentation as an OpenAPI YAML file, see [the public Core Exchange Github repository](https://github.com/plaid/core-exchange/tree/main/versions).\n",contact:{name:"Plaid support",url:"https://plaid.com/data-connectivity-core-exchange/",email:"dataconnectivity@plaid.com"}},servers:[{url:"https://api.your-organization.com/fdx/v5",description:"Financial Data Exchange V5.2 Core API"}],tags:[{name:"Personal Information",description:"Search and view customer or customers"},{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:"Payment Networks Information",description:"Search and view account payment networks"}],paths:{"/customers/current":{get:{operationId:"getCustomerInfo",tags:["Personal Information"],description:"Get the ID of the customer within the authorization scope.\n\n**Note:**\n\n
    \n
  • If you use OIDC authentication (recommended) you do not need to implement this endpoint as Plaid identifies the customer using the OIDC `id_token` response.
  • \n
  • If you use OAuth2 authentication, Plaid uses this endpoint as an alternate method of customer identification.
  • \n
\n",summary:"Get current authenticated customer ID",security:[{openIdConnect:[]},{oauth2:[]}],responses:{200:{description:"Data describing current authenticated customer",content:{"application/json":{schema:{$ref:"#/components/schemas/CustomerWithId"},examples:{"example-1":{value:{customerId:"someLongTermUniqueIDString"}}}}}}}}},"/accounts":{get:{operationId:"searchForAccounts",tags:["Account Information"],summary:"List all accounts",description:"Search and view customer accounts\n",security:[{openIdConnect:["Account"]},{oauth2:["Account"]}],parameters:[{$ref:"#/components/parameters/OffsetQuery"},{$ref:"#/components/parameters/LimitQuery"}],responses:{200:{description:"Array of accounts",content:{"application/json":{schema:{$ref:"#/components/schemas/Accounts"},examples:{"example-1":{value:{page:{nextOffset:25},accounts:[{depositAccount:{accountId:"depositAccount0000001",accountType:"CHECKING",accountNumberDisplay:"5820",productName:"Checking",nickname:"Main Checking",status:"OPEN",currency:{currencyCode:"USD"}}},{loanAccount:{accountId:"loanAccount0000001",accountType:"LOAN",accountNumberDisplay:"4704",productName:"Loan",nickname:"Primary Loan",status:"OPEN",currency:{currencyCode:"USD"}}},{locAccount:{accountId:"locAccount0000001",accountType:"LINEOFCREDIT",accountNumberDisplay:"8200",productName:"Line of Credit",nickname:"First plaidypus LOC",status:"OPEN",currency:{currencyCode:"USD"}}},{investmentAccount:{accountId:"investmentAccount0000001",accountType:"TAXABLE",accountNumberDisplay:"1050",productName:"Brokerage Account",nickname:"First plaidypus Brokerage",status:"OPEN",currency:{currencyCode:"USD"}}}]}}}}}}}}},"/accounts/{accountId}":{get:{operationId:"getAccount",tags:["Account Information"],summary:"Get account balances and liabilities",description:"Get account balances, liabilities, and other information. Plaid uses this endpoint to:\n\n
    \n
  • Get account balances for deposit accounts. For example, `CHECKING` or `SAVINGS`. For more information about how Plaid uses this information, see [Plaid Balance API](https://plaid.com/docs/api/products/balance/).
  • \n
  • Get account liabilities for `STUDENTLOAN`, `MORTGAGE`, and `CREDITCARD` loan accounts. For more information about how Plaid uses this information, see [Plaid Liabilities API](https://plaid.com/docs/api/products/liabilities/).
  • \n
  • Get balances and holdings for investment accounts. For more information about how Plaid uses this information, see [Plaid Investments API](https://plaid.com/docs/investments/).
  • \n
\n\nSee the response schema below for a full list of possible parameters for each account type.\n",security:[{openIdConnect:["Account"]},{oauth2:["Account"]}],parameters:[{$ref:"#/components/parameters/AccountIdPath"}],responses:{200:{description:"The full details of an investment, loan, deposit, or line of credit account",content:{"application/json":{schema:{$ref:"#/components/schemas/AccountWithDetails"}}}}}}},"/accounts/{accountId}/contact":{get:{operationId:"getAccountContact",tags:["Personal Information"],description:"Get contact information on the account.\n\nPlaid links contact information to accounts, rather than to users. Plaid consumes multiple holders and their contact information for the account, but doesn't attempt to correlate holders to their respective contact information. For more information about Plaid's identity model, see [Plaid Identity API](https://plaid.com/docs/api/products/identity/).\n",summary:"Get an account's contact information",parameters:[{$ref:"#/components/parameters/AccountIdPath"}],security:[{openIdConnect:["Customer"]},{oauth2:["Customer"]}],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:["Payment Networks Information"],description:"Get payment networks supported by an account, for example ACH (Automated Clearing House). For more information about how Plaid uses this information, see the [Plaid Auth API](https://plaid.com/docs/api/products/auth/).\n",summary:"Get payment networks supported by the account",security:[{openIdConnect:["Account"]},{oauth2:["Account"]}],parameters:[{name:"accountId",in:"path",description:"Account identifier, found in the `GET /accounts` endpoint response.\nPlaid expects the ID to be a different value from the account number.\n\n**Note:** If the status of the `accountId` provided is `RESTRICTED`, you can send a 200 response with an empty body to indicate that no payment networks are available at this time.\n",required:!0,schema:{type:"string"}},{$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:{properties:{page:{$ref:"#/components/schemas/PageMetadata"},paymentNetworks:{type:"array",items:{$ref:"#/components/schemas/AccountPaymentNetwork"}}},required:["paymentNetworks"]},examples:{"example-1":{page:{nextOffset:25},paymentNetworks:[{bankId:"010088889",identifier:"1111222233335820",type:"US_ACH",transferIn:!0,transferOut:!0}]}}}}}}}},"/accounts/{accountId}/statements":{get:{operationId:"searchForAccountStatements",tags:["Account Statements"],description:"Get account statements.\n\nExample: `GET /accounts/{accountId}/statements?startTime=value1&endTime=value2`\n",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:{"example-1":{value:{page:{nextOffset:"2",total:3},statements:[{accountId:"10001",statementId:"20001",links:[{href:"/accounts/1111/statements?offSet=2&limit=10"}]}]}}}}}}}}},"/accounts/{accountId}/statements/{statementId}":{get:{operationId:"getAccountStatement",tags:["Account Statements"],description:"Get account statement PDF.\n",summary:"Get account statement",parameters:[{$ref:"#/components/parameters/AccountIdPath"},{$ref:"#/components/parameters/StatementIdPath"}],responses:{200:{description:"A pdf of an account statement",content:{"application/pdf":{schema:{$ref:"#/components/schemas/StatementPDF"}}}}}}},"/accounts/{accountId}/transactions":{get:{operationId:"searchForAccountTransactions",tags:["Account Transactions"],description:"List all account transactions. Plaid always queries this endpoint a `startTime` and an `endTime`, for example, `/accounts/{accountId}/transactions?startTime=2022-01-30&endTime=2022-05-30`, and expects the time filters to be based on the `postedTimestamp`.\n\nPlaid consumes data from this endpoint for the following account types only:\n
    \n
  • Loan
  • \n
  • Investment
  • \n
  • Deposit
  • \n
  • Line of credit (LOC)
  • \n
\n",summary:"List all account transactions",security:[{openIdConnect:["Transactions"]},{oauth2:["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. Plaid consumes the following transaction types: InvestmentTransaction, DepositTransaction, LoanTransaction, or LocTransaction\n",content:{"application/json":{schema:{$ref:"#/components/schemas/Transactions"},examples:{"example-1":{value:{page:{nextOffset:"2"},transactions:[{depositTransaction:{checkNumber:1234,payee:"ACME llc",transactionId:"depositTransaction000000001",postedTimestamp:"2022-04-06T00:00:00.000Z",transactionTimestamp:"2022-04-05T00:00:00.000Z",description:"check for latest ACME invoice",debitCreditMemo:"DEBIT",status:"PENDING",amount:400}},{depositTransaction:{transactionId:"depositTransaction000000002",postedTimestamp:"2022-04-07T00:00:00.000Z",transactionTimestamp:"2022-04-07T00:00:00.000Z",description:"reconciliation/adjustment of bank statement error",debitCreditMemo:"DEBIT",status:"POSTED",amount:.8}}]}}}}}}}}}},components:{securitySchemes:{openIdConnect:{type:"openIdConnect",description:"This API uses an [OpenID Connect (OIDC) authentication flow](/core-exchange/authentication) and accepts the resulting [access token](/core-exchange/authentication#response-parameters) as a bearer token. For example, `curl -H 'Authorization: Bearer '`.\n",openIdConnectUrl:"https://www.your-organization.com/.well-known/openid-configuration"},oauth2:{type:"oauth2",description:"This API uses an [OAuth2.0 authorization code flow](https://auth0.com/docs/get-started/authentication-and-authorization-flow/authorization-code-flow) and accepts the resulting access token as a bearer token. For example, `curl -H 'Authorization: Bearer '`.\n",flows:{authorizationCode:{authorizationUrl:"https://www.your-organization.com/authorize",tokenUrl:"https://www.your-organization.com/token",scopes:{Account:"(optional) Read account data",Customer:"(optional) Read customer data",Transactions:"(optional) Read transaction data"}}}}},parameters:{LimitQuery:{name:"limit",in:"query",description:"Number of elements that the API consumer wishes to receive. Plaid has a default limit of 100 elements. If this value differs from your organization's limit for the number of items to send in one response, then pick the lower of the two different limits and use the lower limit to define the number of items you send on each page of a paginated response. Plaid then gets the next page by making a new request with the opaque `nextOffset` field that your organization returned in the latest response, until your organization omits `nextOffset` in the response to indicate the last page.\n",schema:{type:"integer"}},OffsetQuery:{name:"offset",in:"query",description:"Plaid receives this value from your organization's latest response in a paginated response, and returns it to in a new request to get the next page. Your organization omits `nextOffset` in the response to indicate the last page.\n",schema:{type:"string",example:"qwer123454q2f"}},AccountIdPath:{name:"accountId",in:"path",description:"Account identifier, found in the `GET /accounts` endpoint response. Plaid expects the ID to be a different value from the account number.\n",required:!0,schema:{type:"string"}},StatementIdPath:{name:"statementId",in:"path",description:"Statement identifier, found in the `GET /accounts/{accountId}/statements` endpoint response.\n",required:!0,schema:{type:"string"}},EndTimeQuery:{name:"endTime",in:"query",description:"End time for use in retrieval of elements (ISO 8601). For transactions, Plaid expects this to filter by the `postedTimestamp`.",schema:{$ref:"#/components/schemas/DateString"}},StartTimeQuery:{name:"startTime",in:"query",description:"Start time for use in retrieval of elements (ISO 8601). For transactions, Plaid expects this to filter by the `postedTimestamp`.",schema:{$ref:"#/components/schemas/DateString"}}},schemas:{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"},region:{$ref:"#/components/schemas/String64",description:"State or province or territory."},postalCode:{type:"string",maxLength:16,description:"Postal code"},country:{$ref:"#/components/schemas/Iso3166CountryCode",description:"Country code"}},required:["line1","city","country"]},CustomerWithId:{title:"Customer entity.",description:"Represents a customer. Plaid-specific schema created to hold one property, the `customerId` property of the FDX `Customer` schema.\n",type:"object",properties:{customerId:{$ref:"#/components/schemas/Identifier",description:"Long-term persistent identity of the customer. This identity must be unique within your organization. Plaid consumes this customer ID if your organization uses OAuth2 instead of OIDC to secure the API. Plaid expects your organization to issue the ID as a consistent, static, opaque, unique identifier for the user\n",example:[{customerId:"customer0000001"}]}},required:["customerId"]},CustomerWithName:{title:"Customer entity",description:"Represents a customer. Plaid-specific schema created to hold one property, the `name` property of the FDX `Customer` schema.\n",type:"object",properties:{name:{$ref:"#/components/schemas/CustomerName"}},required:["name"]},CustomerName:{title:"Customer Name entity",description:"The name of an individual in their role as a customer. Plaid expects at least one populated name field. If any field is missing (for example, no first name), then you respond with an empty string for that field.\n",type:"object",allOf:[{$ref:"#/components/schemas/IndividualName"},{type:"object",properties:{prefix:{description:"Name prefix, e.g. Mr.",type:"string"}}}]},DeliveryAddress:{title:"Delivery Address",description:"A delivery address and its location type",type:"object",allOf:[{$ref:"#/components/schemas/Address"}]},HateoasLink:{title:"HATEOAS Link",description:"HATEOAS (Hypermedia As The Engine Of Application State) link",required:["href"],type:"object",properties:{href:{type:"string",format:"uri-reference",description:"The resource URL",example:"https://api.fi.com/fdx/v4/accounts/12345"},action:{description:"The HTTP method to use for the request",$ref:"#/components/schemas/HttpAction"},rel:{description:"The relation of this link to its containing entity, as defined by the [IETF RFC5988](https://datatracker.ietf.org/doc/html/rfc5988)",type:"string"},types:{type:"array",items:{$ref:"#/components/schemas/ContentTypes"},description:"The content-types that can be used in the Accept header. **Note:** Plaid currently only accepts the PDF (`application/pdf`) content type."}}},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"}},required:["first","last"]},PageMetadata:{title:"Page Metadata",description:"Contains opaque identifier, `nextoffset`, for paginated result sets. The `nextOffset` ID doesn't need to be numeric or have any specific pattern. In other words, your organization can implement this however you prefer. The presence of this offset indicates that there's at least one more page of data available. The absence of this offset indicates that there are no more pages of data left in this paginated array. The API consumer returns this in the `offset` parameter in a new request to get the next page in the response array.\n",type:"object",properties:{nextOffset:{type:"string",description:"Opaque offset identifier."}},example:{nextOffset:"02"}},PaginatedArray:{title:"Paginated Array",description:"Base class for results that may be paginated",type:"object",properties:{page:{$ref:"#/components/schemas/PageMetadata"}}},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,description:"Country calling codes defined by ITU-T recommendations E.123 and E.164"},number:{type:"string",maxLength:15,pattern:"\\d+",description:"Telephone subscriber number defined by ITU-T recommendation E.164"}},required:["number","type"]},AccountContact:{title:"Account Contact entity",description:"Contact information for the account.",type:"object",properties:{holders:{type:"array",items:{$ref:"#/components/schemas/AccountHolder"},minItems:1,description:"Owners of the account. Note that while the [FDX specification](https://financialdataexchange.org) enables associating holders and their contact information in the full `AccountHolder` schema, Plaid doesn't consume these associations. Instead, Plaid consumes limited information for each `AccountHolder` and doesn't associate contact information such as emails, addresses, or telephone numbers to account holders. For more information about Plaid's data model for account contact information, see [Identity](https://plaid.com/docs/api/products/identity/).\n",example:[{relationship:"SECONDARY",name:{first:"Ernest",middle:"Miller",last:"Hemingway",suffix:"IV"}},{relationship:"PRIMARY_JOINT",name:{first:"Maya",last:"Angelou",middle:"Annie"}}]},emails:{type:"array",items:{type:"string"},minItems:1,description:"Email addresses associated with the account.\n",example:["ernest.m.hemingway@domain.tld","m.angelou@domain.tld"]},addresses:{type:"array",items:{$ref:"#/components/schemas/DeliveryAddress"},minItems:1,description:"Physical mail addresses associated with the account.\n",example:[{line1:"1850 N Clark St",line2:"Apartment 103",city:"Chicago",region:"IL",postalCode:"60614",country:"US"},{line1:"2014 N Main St",city:"San Francisco",region:"CA",postalCode:"94105",country:"US"}]},telephones:{type:"array",items:{$ref:"#/components/schemas/TelephoneNumber"},minItems:1,description:"Telephone numbers associated with the account.\n",example:[{type:"HOME",country:"1",number:"3127771926"},{type:"CELL",country:"53",number:"45915607"},{type:"HOME",country:"1",number:"4157771926"}]}},required:["holders","emails","addresses","telephones"]},AccountDescriptor:{title:"Account Descriptor entity",description:"This descriptor provides minimal information about the account for use in lightweight arrays.\n\n**Note:** This object may contain fewer fields than the full account object.\n",type:"object",properties:{accountId:{description:"Long-term persistent identity of the account, though not an account number. This identity must be unique within your organization.\n",$ref:"#/components/schemas/Identifier"},accountNumberDisplay:{description:"Account display number for the end user's handle at the owning financial institution. Plaid expects that the last 4 digits of this masked number correspond to the last 4 digits of the account number.\n",type:"string",example:"4321"},productName:{type:"string",description:"Marketed product name for this account. Used in UIs to assist in account selection",example:"College Checking"},nickname:{description:"Name given by the user. Used in UIs to assist in account selection. Plaid recommends returning this only if the account permits user renaming.\n",type:"string",example:"Main Checking"},status:{$ref:"#/components/schemas/AccountStatus"},currency:{$ref:"#/components/schemas/Currency"}},required:["accountId","productName","status","currency"]},AnnuityAccount:{allOf:[{$ref:"#/components/schemas/AccountDescriptor"},{type:"object",properties:{accountType:{$ref:"#/components/schemas/AnnuityAccountType"}},required:["accountType"]}]},AnnuityAccountDescriptor:{description:"The type of annuity account. For example, fixed or variable. The `accountType` field for annuity accounts may be set to any of the [account types](#annuity-account-types) listed below.\n",type:"object",properties:{annuityAccount:{$ref:"#/components/schemas/AnnuityAccount"}},required:["annuityAccount"],"x-examples":[{annuityAccount:{accountId:"annuityAccount0000001",accountType:"FIXEDANNUITY",accountNumberDisplay:"53901",productName:"Fixed Annuity",nickname:"Fixed annuity 1",status:"OPEN",currency:{currencyCode:"USD"}}}]},AccountHolder:{title:"Account Holder entity",type:"object",allOf:[{$ref:"#/components/schemas/CustomerWithName"},{type:"object",properties:{relationship:{$ref:"#/components/schemas/AccountHolderRelationship",description:"Customer's relationship to the account"}}}]},AccountPaymentNetwork:{title:"Payment Network Supported by Account",description:"This provides details required to execute a transaction against the account within the payment network",type:"object",properties:{bankId:{type:"string",description:"Bank identifier used by the payment network ie. Routing Number"},identifier:{type:"string",description:"The number used to identify the account within the payment network."},type:{$ref:"#/components/schemas/PaymentNetworkType"},transferIn:{type:"boolean",description:"Can transfer funds to the account using this information. Plaid expect that this value represents the account's current ability to be credited through a payment network.\nPlaid recommends dynamically updating this value, for example to represent if the account is locked or not.\n\n**Note:** Both `transferIn` and `transferOut` must be `true` in order for the account to support ACH.\n"},transferOut:{type:"boolean",description:"Can transfer funds from the account using this information. Plaid expect that this value represents the account's current ability to be debited through a payment network.\nPlaid recommends dynamically updating this value, for example to represent if the account is locked or not.\n\n**Note:** Both `transferIn` and `transferOut` must be `true` in order for the account to support ACH.\n"}},required:["bankId","identifier","type","transferIn","transferOut"]},AccountWithDetails:{title:"Account With Details entity",description:"An account with full details",type:"object",oneOf:[{type:"object",title:"Deposit Account",properties:{depositAccount:{$ref:"#/components/schemas/DepositAccount"}},required:["depositAccount"],additionalProperties:!1},{type:"object",title:"Investment Account",properties:{investmentAccount:{$ref:"#/components/schemas/InvestmentAccount"}},required:["investmentAccount"],additionalProperties:!1},{type:"object",title:"Loan Account",properties:{loanAccount:{$ref:"#/components/schemas/LoanAccount"}},required:["loanAccount"],additionalProperties:!1},{type:"object",title:"Line of Credit Account",properties:{locAccount:{$ref:"#/components/schemas/LocAccount"}},required:["locAccount"],additionalProperties:!1}]},AccountWithDescriptor:{title:"Account With Descriptor entity",description:"This provides an instance of an account without full details",type:"object",oneOf:[{type:"object",title:"Deposit Account",properties:{depositAccount:{$ref:"#/components/schemas/DepositAccount",description:"A deposit account. For example, a checking, savings or money market account.\nPlaid consumes more detailed information for `CHECKING` and `SAVINGS` accounts.\n\nThe `accountType` field for commercial accounts may be set to any of the following:\n\n\n
    \n
  • `CHECKING`: A deposit account held at a financial institution that allows withdrawals and deposits.
  • \n
  • `SAVINGS`: An interest-bearing deposit account held at a bank or other financial institution.
  • \n
  • `CD`: A certificate of deposit (CD) is a product offered by banks and credit unions that provides an interest rate premium in exchange for the customer agreeing to leave a lump-sum deposit untouched for a predetermined period of time.
  • \n
  • `COMMERCIALDEPOSIT`: A deposit account for commercial customers, for example a business trust account.
  • \n
  • `ESCROW`: A contractual arrangement in which a third party (the stakeholder or escrow agent) receives and disburses money or property for the primary transacting parties, with the disbursement dependent on conditions agreed to by the transacting parties.
  • \n
  • `MONEYMARKET`: A deposit account that pays interest based on current interest rates in the money markets.
  • \n
  • `OTHERDEPOSIT`: Use when none of the listed enums apply.
  • \n
\n"}},required:["depositAccount"],additionalProperties:!1},{type:"object",title:"Loan Account",properties:{loanAccount:{$ref:"#/components/schemas/LoanAccount",description:"A loan account. For example, mortgage, student loan or auto loan. Plaid consumes more detailed information for `MORTGAGE` and `STUDENTLOAN` accounts. The `accountType` field for loan accounts may be set to any of the following:\n\n\n
    \n
  • `AUTOLOAN`: A type of loan used to finance a car purchase.
  • \n
  • `COMMERCIALLOAN`: A preset borrowing limit that can be used at any time.
  • \n
  • `HOMEEQUITYLOAN`: A type of loan in which the borrower uses the equity of his or her home as collateral.
  • \n
  • `INSTALLMENT`: A type of agreement or contract involving a loan that is repaid over time with a set number of scheduled payments.
  • \n
  • `LOAN`: The lending of money by one or more individuals, organizations, or other entities to other individuals, organizations etc.
  • \n
  • `MILITARYLOAN`: A military loan.
  • \n
  • `MORTGAGE`: A type of loan you can use to buy or refinance a home.
  • \n
  • `PERSONALLOAN`: A type of debt that is not protected by a guarantor, or collateralized by a lien on specific assets of the borrower.
  • \n
  • `SMBLOAN`: A small/medium business loan.
  • \n
  • `STUDENTLOAN`: A type of loan designed to help students pay for post-secondary education and the associated fees, such as tuition, books and supplies, and living expenses.
  • \n
\n"}},required:["loanAccount"],additionalProperties:!1},{type:"object",title:"Line of Credit Account",properties:{locAccount:{$ref:"#/components/schemas/LocAccount",description:"A line-of-credit account. For example, a credit card or home equity line of credit. Plaid consumes more detailed information for `CREDITCARD` accounts. The `accountType` field for line of credit accounts may be set to any of the following:\n\n\n
    \n
  • `LINEOFCREDIT`: A credit facility extended by a bank or other financial institution to a government, business or individual customer that enables the customer to draw on the facility when the customer needs funds.
  • \n
  • `CHARGE`: An account to which goods and services may be charged on credit.
  • \n
  • `COMMERCIALLINEOFCREDIT`: An account with a preset borrowing limit that can be used at any time.
  • \n
  • `CREDITCARD`: Allows cardholders to borrow funds with which to pay for goods and services with merchants that accept cards for payment.
  • \n
  • `HOMELINEOFCREDIT`: A loan in which the lender agrees to lend a maximum amount within an agreed period, where the collateral is the borrower's equity in their house.
  • \n
\n"}},required:["locAccount"],additionalProperties:!1},{type:"object",title:"Investment Account",properties:{investmentAccount:{$ref:"#/components/schemas/InvestmentAccount",description:"An investment account. For example, a 401K or IRA. Plaid consumes the same details for all investment accounts. The `accountType` field for investment accounts may be set to any of the following:\n\n\n
    \n
  • `401A`: An employer-sponsored money-purchase retirement plan that allows dollar or percentage-based contributions from the employer, the employee, or both.
  • \n
  • `401K`: An employer-sponsored defined-contribution pension account defined in subsection 401(k) of the Internal Revenue Code.
  • \n
  • `403B`: A U.S. tax-advantaged retirement savings plan available for public education organizations, some non-profit employers (only Internal Revenue Code 501(c)(3) organizations), cooperative hospital service organizations, and self-employed ministers in the United States.
  • \n
  • `529`: A tax-advantaged savings plan designed to help pay for education.
  • \n
  • `BROKERAGEPRODUCT`: Investment management offered by a licensed brokerage firm that places trades on behalf of the customer, utilizing any number of investment options.
  • \n
  • `COVERDELL`: A trust or custodial account set up in the United States solely for paying qualified education expenses for the designated beneficiary of the account.
  • \n
  • `DIGITALASSET`: An account containing digital assets.
  • \n
  • `DEFINEDBENEFIT`: An employer-sponsored retirement plan where employee benefits are computed using a formula that considers several factors, such as length of employment and salary history.
  • \n
  • `ESOP`: An employee stock ownership plan (ESOP) is an employee benefit plan that gives workers ownership interest in the company.
  • \n
  • `GUARDIAN`: An account of a child in the parent's name, with legal title to the assets in the account, as well as all capital gains and tax liabilities produced from the account belonging to the parent.
  • \n
  • `INSTITUTIONALTRUST`: An institutional trust account.
  • \n
  • `IRA`: An individual retirement account (IRA) is a tax-advantaged account that individuals use to save and invest for retirement.
  • \n
  • `KEOGH`: A tax-deferred pension plan available to self-employed individuals or unincorporated businesses for retirement purposes.
  • \n
  • `NONQUALIFIEDPLAN`: A type of tax-deferred employer-sponsored retirement plan that falls outside of ERISA guidelines.
  • \n
  • `OTHERINVESTMENT`: Use when none of the listed enums apply.
  • \n
  • `ROLLOVER`: An account containing investments rolled over from an employee-sponsored account.
  • \n
  • `ROTH`: An individual retirement account that offers tax-free growth and tax-free withdrawals in retirement.
  • \n
  • `SARSEP`: A simplified employee pension (SEP) plan set up before 1997 that includes a salary reduction arrangement.
  • \n
  • `TAXABLE`: A taxable investment account.
  • \n
  • `TDA`: TreasuryDirect Account.
  • \n
  • `TRUST`: A type of financial account that is opened by an individual and managed by a designated trustee for the benefit of a third party in accordance with agreed-upon terms.
  • \n
  • `TERM`: Life insurance that provides coverage at a fixed rate of payments for a limited period of time.
  • \n
  • `UGMA`: Uniform Gifts to Minors Act account.
  • \n
  • `UTMA`: Uniform Transfers to Minors Act account.
  • \n
\n"}},required:["investmentAccount"],additionalProperties:!1},{type:"object",title:"Insurance Account",properties:{insuranceAccount:{$ref:"#/components/schemas/InsuranceAccount",description:"An insurance account. For example, whole life insurance or short-term disability. The `accountType` field for insurance accounts may be set to any of the following:\n\n\n
    \n
  • `LONGTERMDISABILITY`: Insurance that replaces a portion of the policyholder's income due to a disability for an extended period of time, usually more than a year.
  • \n
  • `SHORTTERMDISABILITY`: Insurance that replaces a portion of the policyholder's income due to a disability for a short period of time, usually less than a year.
  • \n
  • `UNIVERSALLIFE`: A type of a cash value life insurance where the excess of premium payments above the current cost of insurance is credited to the cash value of the policy, which in turn is credited each month with interest.
  • \n
  • `WHOLELIFE`: Life insurance which is guaranteed to remain in force for the insured's entire lifetime, provided required premiums are paid, or to the maturity date.
  • \n
\n"}},required:["insuranceAccount"],additionalProperties:!1},{type:"object",title:"Annuity Account",properties:{annuityAccount:{$ref:"#/components/schemas/AnnuityAccount",description:"An annuity account. For example, a fixed or variable annuity account. The `accountType` field for annuity accounts may be set to any of the following:\n\n\n
    \n
  • `ANNUITY`: A form of insurance or investment entitling the investor to a series of annual sums.
  • \n
  • `FIXEDANNUITY`: A type of insurance contract that promises to pay the buyer a specific, guaranteed interest rate on their contributions to the account.
  • \n
  • `VARIABLEANNUITY`: A type of insurance contract that promises to pay back the buyer based on the performance of an underlying portfolio of mutual funds selected by the buyer.
  • \n
\n"}},required:["annuityAccount"],additionalProperties:!1},{type:"object",title:"Commercial Account",properties:{commercialAccount:{$ref:"#/components/schemas/CommercialAccount",description:"A commercial account. For example, a business deposit account. The `accountType` field for deposit accounts may be set to any of the following:\n\n\n
    \n
  • `COMMERCIALDEPOSIT`: A deposit account for commercial customers, for example a business trust account.
  • \n
  • `COMMERCIALLOAN`: A preset borrowing limit that can be used at any time.
  • \n
  • `COMMERCIALLINEOFCREDIT`: An account with a preset borrowing limit that can be used at any time.
  • \n
  • `COMMERCIALINVESTMENT`: Investment Account for Commercial Customers. e.g. Commercial Brokerage Account.
  • \n
\n"}},required:["commercialAccount"],additionalProperties:!1}]},Accounts:{title:"Accounts entity",description:"An optionally paginated array of accounts",type:"object",allOf:[{$ref:"#/components/schemas/PaginatedArray"},{type:"object",properties:{accounts:{type:"array",items:{$ref:"#/components/schemas/AccountWithDetails"},description:"An array of accounts. May include accounts of any of the following types: [deposit](#deposit-account), [investment](#investment-account), [line of credit](#line-of-credit-account), [loan](#loan-account)\n\n**Note:** Each object in the accounts array is expected to contain at least one account type.\n",minItems:1}},required:["accounts"]}]},CommercialAccount:{allOf:[{$ref:"#/components/schemas/AccountDescriptor"},{type:"object",properties:{accountType:{$ref:"#/components/schemas/CommercialAccountType"}},required:["accountType"]}]},CommercialAccountDescriptor:{description:"A commercial account. For example, a business deposit account. The `accountType` field for commercial accounts may be set to any of the [account types](#commercial-account-types) listed below.\n",type:"object",properties:{commercialAccount:{$ref:"#/components/schemas/CommercialAccount"}},required:["commercialAccount"],"x-examples":[{commercialAccount:{accountId:"commercialAccount0000001",accountType:"COMMERCIALLOAN",accountNumberDisplay:"230014",productName:"Commercial Loan",nickname:"Loan 1",status:"OPEN",currency:{currencyCode:"USD"}}}]},Currency:{title:"Currency entity",description:"Represents an international currency.",type:"object",properties:{currencyCode:{$ref:"#/components/schemas/Iso4217Code",description:"ISO 4217 currency code"}},example:{currencyCode:"USD"},required:["currencyCode"]},DepositAccount:{allOf:[{$ref:"#/components/schemas/AccountDescriptor"},{type:"object",properties:{accountType:{$ref:"#/components/schemas/DepositAccountType"}},required:["accountType"]}]},DepositAccountDescriptor:{title:"Deposit Account entity",description:'Full details of a deposit account. Plaid consumes the same information for all types of deposit accounts.\nPlaid expects a decimal amount with two places (to represent fractional values of the base currency) for all monetary amounts. For example, `"currentBalance": 192.00`.\n\nThe `accountType` field for deposit accounts may be set to any of the [account types](#deposit-account-types) listed below.\n',type:"object",properties:{depositAccount:{$ref:"#/components/schemas/DepositAccount"}},required:["depositAccount"],"x-examples":[{depositAccount:{accountId:"depositAccount0000001",accountType:"CHECKING",accountNumberDisplay:"5820",productName:"Checking",nickname:"Main Checking",status:"OPEN",currency:{currencyCode:"USD"}}}]},DepositAccountFull:{title:"Deposit Account entity",description:'Full details of a deposit account. Plaid consumes the same information for all types of deposit accounts.\nPlaid expects a decimal amount with two places (to represent fractional values of the base currency) for all monetary amounts. For example, `"currentBalance": 192.00`.\n\nThe `accountType` field for deposit accounts may be set to any of the [account types](#deposit-account-types) listed below.\n',type:"object",properties:{depositAccount:{$ref:"#/components/schemas/DepositAccount"}},required:["depositAccount"],"x-examples":[{depositAccount:{accountId:"someLongTermUniqueIDString",accountNumberDisplay:"4321",productName:"string",nickname:"string",status:"CLOSED",currency:{currencyCode:"AED"},accountType:"CHECKING",currentBalance:0,availableBalance:0}}]},DepositTransaction:{title:"Deposit Transaction entity",description:"A transaction on a deposit account type",type:"object",allOf:[{$ref:"#/components/schemas/Transaction"},{type:"object",properties:{payee:{$ref:"#/components/schemas/String255",description:"Payee name"},checkNumber:{type:"integer",description:"Check number. Plaid expects this solely if the transaction involves a check.\n"}}}],"x-examples":[{transactionId:"depositTransaction000000001",transactionTimestamp:"2022-04-05T00:00:00.000Z",description:"check for latest ACME invoice",debitCreditMemo:"DEBIT",status:"PENDING",amount:400,payee:"Acme LLC",checkNumber:57448}]},Holding:{title:"Holding entity",description:"A holding in an investment account.\nPlaid maps the `holding` and the `investmentAccount` FDX models to its securities models, which hold universal information like the ticker symbol, and to its holdings models, which hold account-specific information like balances. For more information, see [Plaid investments](https://plaid.com/docs/investments/#securities-and-holdings).\n",allOf:[{type:"object",properties:{securityId:{description:"If you return the `securityId` for a holding, Plaid uses it to look up the closing price from NYSE Group Security Master. If you don't return `securityId` for a holding that uses security IDs (not recommended), Plaid uses the `unitPrice` as the closing price.\nThis field, along with `securityIdType` are **required** unless `symbol` is provided.\n**Note:** If `securityId` is provided, `securityIdType` is required.\n",type:"string"},securityIdType:{$ref:"#/components/schemas/SecurityIdType"},holdingName:{type:"string",description:"Holding name or security name"},holdingType:{$ref:"#/components/schemas/HoldingType"},holdingSubType:{$ref:"#/components/schemas/HoldingSubType",description:"MONEYMARKET, CASH"},symbol:{type:"string",description:"Ticker / Market symbol\nThis field is **required** unless both `securityId` and `securityIdType` are provided."},purchasedPrice:{type:"number",description:"Price of holding at the time of purchase. Plaid determines an approximate [cost basis](https://plaid.com/docs/api/products/investments/#investments-holdings-get-response-holdings-cost-basis) using the purchase price and the number of units. Plaid cannot take fees into account to determine the cost basis because the FDX holding schema doesn't include fees.\n"},currentUnitPrice:{type:"number",description:"Current unit price. Plaid uses this as the [institution_price](https://plaid.com/docs/api/products/investments/#investments-holdings-get-response-holdings-institution-price). Plaid falls back to using this as the [close price](https://plaid.com/docs/api/products/investments/#investments-holdings-get-response-securities-close-price) if you don't return `securityId` for holdings involving securities.\n"},currentUnitPriceDate:{$ref:"#/components/schemas/DateString",description:"Current unit price as of date"},units:{type:"number",description:"Plaid requires this field for holdings and transactions involving securities.\nFor security-based actions other than stock splits, quantity.\nShares for stocks, mutual funds, and others. Face value for bonds.\nContracts for options.\n\n**Note:** This field is required if the transaction involves a security.\n"},marketValue:{type:"number",description:"Market value at the time of data retrieved"},faceValue:{type:"number",description:"Required for bonds. Face value at the time of data retrieved. If this isn't present, Plaid assumes the holding isn't a bond and falls back to `marketValue`.\n"},cashAccount:{type:"boolean",description:"If true, indicates that this holding is used to maintain proceeds from sales, dividends, and other cash postings to the investment account. If you don't set a value for `isCashEquivalent` in the `fiAttributes` array, then Plaid uses `cashAccount` in determining the [is_cash_equivalent](https://plaid.com/docs/api/products/investments/#investments-holdings-get-response-securities-is-cash-equivalent) status.\n"},currency:{$ref:"#/components/schemas/Currency",description:"Currency information if it is different from Account entity."},fiAttributes:{type:"array",description:"Array of financial institution-specific attributes. Plaid recommends including a value for [is_cash_equivalent](https://plaid.com/docs/api/products/investments/#investments-holdings-get-response-securities-is-cash-equivalent) property in this array. Plaid accepts `isCashEquivalent` as the attribute name and a string value of `true` or `false`. If you return a value for `isCashEquivalent`, then return the same value for `cashAccount` as a boolean.\n",items:{$ref:"#/components/schemas/FiAttribute"}}},required:["cashAccount","marketValue"]}]},InsuranceAccount:{allOf:[{$ref:"#/components/schemas/AccountDescriptor"},{type:"object",properties:{accountType:{$ref:"#/components/schemas/InsuranceAccountType"}},required:["accountType"]}]},InsuranceAccountDescriptor:{allOf:[{$ref:"#/components/schemas/AccountDescriptor"},{type:"object",properties:{accountType:{$ref:"#/components/schemas/InsuranceAccountType"}},required:["accountType"]}],"x-examples":[{insuranceAccount:{accountId:"insuranceAccount0000001",accountType:"LONGTERMDISABILITY",accountNumberDisplay:"5820",productName:"Long-term disability",nickname:"Long term",status:"OPEN",currency:{currencyCode:"USD"}}}]},InvestmentAccount:{allOf:[{$ref:"#/components/schemas/AccountDescriptor"},{type:"object",properties:{accountType:{$ref:"#/components/schemas/InvestmentAccountType"}},required:["accountType"]}]},InvestmentAccountDescriptor:{description:"The type of investment account. For example, a 401K or IRA. Plaid consumes the same details for all investment accounts. The `accountType` field for investment accounts may be set to any of the [account types](#investment-account-types) listed below.\n",type:"object",properties:{investmentAccount:{$ref:"#/components/schemas/InvestmentAccount"}},required:["investmentAccount"],"x-examples":[{investmentAccount:{accountId:"investmentAccount0000001",accountType:"TAXABLE",accountNumberDisplay:"1050",productName:"Brokerage Account",nickname:"First plaidypus Brokerage",status:"OPEN",currency:{currencyCode:"USD"}}}]},InvestmentAccountFull:{allOf:[{$ref:"#/components/schemas/InvestmentAccount"},{type:"object",properties:{availableCashBalance:{type:"number",description:"Cash balance across all sub-accounts. Plaid expects that this includes sweep funds."},balanceAsOf:{description:"As-of date of balances.\n\nISO 8601 date-time in format `YYYY-MM-DDThh:mm:ss.nnn[Z|[+|-]hh:mm]` according to [IETF RFC3339](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6)\n",$ref:"#/components/schemas/Timestamp"},currentValue:{type:"number",description:"Total current value of all investments."},holdings:{type:"array",description:"Holdings in the investment account.\nPlaid maps the `holding` and the `investmentAccount` FDX models to its securities models, which hold universal information like the ticker symbol, and to its holdings models, which hold account-specific information like balances. For more information, see [Plaid investments](https://plaid.com/docs/investments/#securities-and-holdings).\n",items:{$ref:"#/components/schemas/Holding"}}},required:["availableCashBalance","currentValue"]},{"x-examples":[{investmentAccount:{accountId:"investmentAccount0000001",accountType:"TAXABLE",accountNumberDisplay:"1050",productName:"Brokerage Account",nickname:"First plaidypus Brokerage",status:"OPEN",currency:{currencyCode:"USD"},availableCashBalance:4302.39,balanceAsOf:null,currentValue:4302.39,holdings:[{securityId:"string",securityIdType:"CINS",holdingName:"string",holdingType:"ANNUITY",holdingSubType:"CASH",symbol:"MTSN",purchasedPrice:12.5,currentUnitPrice:34.2,currentUnitPriceDate:"2024-07-15",units:100,marketValue:3400,faceValue:3400,cashAccount:!0,currency:{currencyCode:"AED"},fiAttributes:[{name:"string",value:"string"}]}]}}]}]},InvestmentTransaction:{title:"Investment Transaction entity",description:"A transaction on an investment account.\nIn addition to the required fields in the base `Transaction` model, Plaid requires the following fields\nfor all transactions on an investment account:\n\n* `fees`\n* `transactionType`\n\nIf the transaction involves a security, Plaid additionally requires the following fields:\n\n* `unitPrice`\n* `units`\n* Either of the following:\n - `symbol`\n - `securityId` and `securityIdType`\n",type:"object",allOf:[{$ref:"#/components/schemas/Transaction"},{type:"object",properties:{transactionType:{$ref:"#/components/schemas/InvestmentTransactionType"},securityId:{type:"string",description:"If you return the `securityId` for a holding, Plaid uses it to look up the closing price from NYSE Group Security Master. If you don't return `securityId` for a holding that uses security IDs (not recommended), Plaid uses the `unitPrice` as the closing price.\nThis field, along with `securityIdType` are **required** unless `symbol` is provided.\n**Note:** If `securityId` is provided, `securityIdType` is required.\n"},securityIdType:{$ref:"#/components/schemas/SecurityIdType"},securityType:{$ref:"#/components/schemas/SecurityType",description:"STOCK, MUTUALFUND, DEBT, OPTION, SWEEP, OTHER, BOND"},symbol:{type:"string",description:"Ticker symbol.\n\nThis field is **required** unless both `securityId` and `securityIdType` are provided.\n"},commission:{type:"number",description:"Plaid expects that your organization includes a value for commission if the commission isn't included in `fees`.\n"},fees:{type:"number",description:"Fees applied to the trade. Plaid expects that the `fees` include the commission, unless your organization separately provides a value for `commission`.\n"},unitPrice:{type:"number",description:"Unit price. Plaid uses this as the [price](https://plaid.com/docs/api/products/investments/#investments-transactions-get-response-investment-transactions-price).\nPlaid falls back to using this as the [close price](https://plaid.com/docs/api/products/investments/#investments-transactions-get-response-securities-close-price)\nif you don't return `securityId` for transactions involving securities.\n\n**Note:** This field is required if the transaction involves a security.\n"},units:{type:"number",description:"Plaid requires this field for holdings and transactions involving securities.\nFor security-based actions other than stock splits, quantity.\nShares for stocks, mutual funds, and others. Face value for bonds.\nContracts for options.\n\n**Note:** This field is required if the transaction involves a security.\n"},unitType:{$ref:"#/components/schemas/UnitType",description:"SHARES, CURRENCY"},fiAttributes:{type:"array",description:"Array of financial institution-specific attributes. Plaid recommends including a value for [is_cash_equivalent](https://plaid.com/docs/api/products/investments/#investments-transactions-get-response-securities-is-cash-equivalent) property in this array. Plaid accepts `isCashEquivalent` as the attribute name and a string value of `true` or `false`.\n",items:{$ref:"#/components/schemas/FiAttribute"}}},required:["fees","transactionType"]}],"x-examples":[{transactionId:"depositTransaction000000001",transactionTimestamp:"2022-04-05T00:00:00.000Z",description:"check for latest ACME invoice",debitCreditMemo:"DEBIT",status:"PENDING",amount:400,transactionType:"CHECK",securityId:"APW881",securityIdType:"CMC",securityType:"DEBT",symbol:"MSFT",commission:.1,unitPrice:15.3,units:1e3,unitType:"SHARES",fiAttributes:[{name:"Vanguard",value:80}]}]},LoanAccount:{title:"Loan Account entity",type:"object",allOf:[{$ref:"#/components/schemas/AccountDescriptor"},{type:"object",properties:{accountType:{$ref:"#/components/schemas/LoanAccountType"},accountNumber:{type:"string",example:"loanAccount0000001",description:"Full account number for the end user's handle for the account at the owning institution\nRequired for accountType 'MORTGAGE'\n"},principalBalance:{type:"number",example:580303.95,description:"Principal balance of loan"},escrowBalance:{type:"number",example:3400.61,description:"Escrow balance of loan"},originalPrincipal:{type:"number",example:650400,description:"Original principal of loan"},originatingDate:{$ref:"#/components/schemas/DateString",description:"Loan origination date"},loanTerm:{type:"integer",example:360,description:"Term of loan in months"},nextPaymentAmount:{type:"number",example:2483.12,description:"Amount of next payment"},nextPaymentDate:{$ref:"#/components/schemas/DateString",description:"Date of next payment"},lastPaymentAmount:{type:"number",example:2483.12,description:"Last payment amount"},lastPaymentDate:{$ref:"#/components/schemas/DateString",description:"Last payment date"},maturityDate:{$ref:"#/components/schemas/DateString",description:"Maturity date"},interestPaidYearToDate:{type:"number",description:"Interest paid year to date"},interestRate:{type:"number",example:.075,description:"The account's interest rate"},interestRateType:{$ref:"#/components/schemas/InterestRateType"}},required:["principalBalance","interestRate","interestRateType","accountType"]}]},LoanAccountDescriptor:{description:'Full details of a loan account. The `accountType` field for loan accounts may be set to any of the [account types](#loan-account-types) listed below.\n\nPlaid only consumes the `MORTGAGE` and `STUDENTLOAN` types for its [Liabilities API](https://plaid.com/docs/api/products/liabilities/). For other loan account types Plaid consumes account details and transactions.\nPlaid consumes all loan account information as returned in the `GET /accounts` endpoint, as well as the additional information listed below:\n\nRequired for all loan accounts:\n* `principalBalance`\n* `interestRate`\n* `interestRateType`\n\nOptional fields for `STUDENTLOAN` accounts:\n* `interestPaidYearToDate`\n* `lastPaymentAmount`\n* `lastPaymentDate`\n* `maturityDate`\n* `nextPaymentDate`\n* `originalPrincipal`\n* `originatingDate`\n\nRequired for `MORTGAGE` accounts:\n* `accountNumber`\n\nOptional fields for `MORTGAGE` accounts:\n* `escrowBalance`\n* `interestPaidYearToDate`\n* `lastPaymentAmount`\n* `lastPaymentDate`\n* `loanTerm`\n* `maturityDate`\n* `nextPaymentAmount`\n* `nextPaymentDate`\n* `originalPrincipal`\n* `originatingDate`\n\nPlaid expects a decimal amount with two places (to represent fractional values of the base currency) for all monetary amounts. For example, `"escrowBalance": 192.00`.\n',type:"object",properties:{loanAccount:{$ref:"#/components/schemas/LoanAccount"}},required:["loanAccount"],"x-examples":[{loanAccount:{accountId:"loanAccount0000001",accountType:"LOAN",accountNumberDisplay:"4704",productName:"Loan",nickname:"Primary Loan",status:"OPEN",currency:{currencyCode:"USD"}}}]},LoanAccountFull:{description:'Full details of a loan account. The `accountType` field for loan accounts may be set to any of the [account types](#loan-account-types) listed below.\n\nPlaid only consumes the `MORTGAGE` and `STUDENTLOAN` types for its [Liabilities API](https://plaid.com/docs/api/products/liabilities/). For other loan account types Plaid consumes account details and transactions.\nPlaid consumes all loan account information as returned in the `GET /accounts` endpoint, as well as the additional information listed below:\n\nRequired for all loan accounts:\n* `principalBalance`\n* `interestRate`\n* `interestRateType`\n\nOptional fields for `STUDENTLOAN` accounts:\n* `interestPaidYearToDate`\n* `lastPaymentAmount`\n* `lastPaymentDate`\n* `maturityDate`\n* `nextPaymentDate`\n* `originalPrincipal`\n* `originatingDate`\n\nRequired for `MORTGAGE` accounts:\n* `accountNumber`\n\nOptional fields for `MORTGAGE` accounts:\n* `escrowBalance`\n* `interestPaidYearToDate`\n* `lastPaymentAmount`\n* `lastPaymentDate`\n* `loanTerm`\n* `maturityDate`\n* `nextPaymentAmount`\n* `nextPaymentDate`\n* `originalPrincipal`\n* `originatingDate`\n\nPlaid expects a decimal amount with two places (to represent fractional values of the base currency) for all monetary amounts. For example, `"escrowBalance": 192.00`.\n',type:"object",properties:{loanAccount:{$ref:"#/components/schemas/LoanAccount"}},required:["loanAccount"],"x-examples":[{loanAccount:{accountId:"someLongTermUniqueIDString",accountNumberDisplay:"4321",productName:"string",nickname:"string",status:"CLOSED",currency:{currencyCode:"AED"},accountType:"AUTOLOAN",accountNumber:"string",principalBalance:0,escrowBalance:0,originalPrincipal:0,originatingDate:"2021-07-15",loanTerm:0,nextPaymentAmount:0,nextPaymentDate:"2021-07-15",lastPaymentAmount:0,lastPaymentDate:"2021-07-15",maturityDate:"2021-07-15",interestPaidYearToDate:0,interestRate:0,interestRateType:"FIXED"}}]},LoanTransaction:{title:"Loan Transaction entity",description:"A transaction on a loan account",type:"object",allOf:[{$ref:"#/components/schemas/Transaction"},{type:"object",properties:{transactionType:{$ref:"#/components/schemas/LoanTransactionType"}}}],"x-examples":[{transactionId:"loanTransaction000000001",transactionTimestamp:"2022-04-05T00:00:00.000Z",description:"latest ACME invoice",debitCreditMemo:"CREDIT",status:"PENDING",amount:400}]},LocAccount:{type:"object",allOf:[{$ref:"#/components/schemas/AccountDescriptor"},{type:"object",properties:{accountType:{$ref:"#/components/schemas/LocAccountType"},creditLine:{type:"number",description:"Credit limit"},availableCredit:{type:"number",description:"Available credit. Required for all accountTypes except for `CHARGE`"},nextPaymentAmount:{type:"number",description:"Amount of next payment"},nextPaymentDate:{$ref:"#/components/schemas/DateString",description:"Due date of next payment"},principalBalance:{type:"number",description:"Principal balance"},currentBalance:{type:"number",description:"Current balance of the line of credit"},minimumPaymentAmount:{type:"number",description:"Minimum payment amount"},lastPaymentAmount:{type:"number",description:"Last payment amount"},lastPaymentDate:{$ref:"#/components/schemas/DateString",description:"Last payment date"},pastDueAmount:{type:"number",description:"Amount owed that the account holder failed to pay on the due date"},lastStmtBalance:{type:"number",description:"Last statement balance"},lastStmtDate:{$ref:"#/components/schemas/DateString",description:"Last statement date"},purchasesApr:{type:"number",description:"Purchases APR"},advancesApr:{type:"number",description:"Advances APR"}},required:["currentBalance","accountType"]}]},LocAccountDescriptor:{description:'Full details of a line of credit account. The `accountType` field for line of credit accounts may be set to any of the [account types](#loc-account-types) listed below.\n\nPlaid may consume all the parameters returned by the `GET /accounts` endpoint:\n\n* `availableCredit`\n* `creditLine`\n* `currentBalance`\n\nAdditionally, for the `CREDITCARD` accountType, Plaid consumes the previous information plus the following for its liabilities product:\n\n* `advancesApr`\n* `lastPaymentAmount`\n* `lastPaymentDate`\n* `lastStmtBalance`\n* `lastStmtDate`\n* `minimumPaymentAmount`\n* `nextPaymentDate`\n* `purchasesApr`\nPlaid expects a decimal amount with two places (to represent fractional values of the base currency) for all monetary amounts. For example, `"currentBalance": 192.00`.\n',type:"object",properties:{locAccount:{$ref:"#/components/schemas/LocAccount"}},required:["locAccount"],"x-examples":[{locAccount:{accountId:"loc_01_creditcard",accountNumberDisplay:"8200",productName:"First Plaidypus Credit Card",nickname:"my travel rewards card",status:"OPEN",currency:{currencyCode:"USD"},accountType:"CREDITCARD"}}]},LocAccountFull:{description:'Full details of a line of credit account. The `accountType` field for line of credit accounts may be set to any of the [account types](#loc-account-types) listed below.\n\nPlaid may consume all the parameters returned by the `GET /accounts` endpoint:\n\n* `availableCredit`\n* `creditLine`\n* `currentBalance`\n\nAdditionally, for the `CREDITCARD` accountType, Plaid consumes the previous information plus the following for its liabilities product:\n\n* `advancesApr`\n* `lastPaymentAmount`\n* `lastPaymentDate`\n* `lastStmtBalance`\n* `lastStmtDate`\n* `minimumPaymentAmount`\n* `nextPaymentDate`\n* `purchasesApr`\nPlaid expects a decimal amount with two places (to represent fractional values of the base currency) for all monetary amounts. For example, `"currentBalance": 192.00`.\n',type:"object",properties:{locAccount:{$ref:"#/components/schemas/LocAccount"}},required:["locAccount"],"x-examples":[{locAccount:{accountId:"loc_01_creditcard",accountNumberDisplay:"8200",productName:"First Plaidypus Credit Card",nickname:"my travel rewards card",status:"OPEN",currency:{currencyCode:"USD"},minimumPaymentAmount:100,lastPaymentAmount:400,lastPaymentDate:"2022-03-30",pastDueAmount:0,lastStmtBalance:400,lastStmtDate:"2022-03-25",purchasesApr:10.25,advancesApr:15.75,currentBalance:375,availableCredit:625,accountType:"CREDITCARD"}}]},LocTransaction:{title:"Line-Of-Credit Transaction entity",description:"A line-of-credit transaction",type:"object",allOf:[{$ref:"#/components/schemas/Transaction"},{type:"object",properties:{transactionType:{$ref:"#/components/schemas/LocTransactionType"},checkNumber:{type:"integer",description:"Check number"}}}],"x-examples":[{transactionId:"locTransaction000000001",transactionTimestamp:"2022-04-05T00:00:00.000Z",description:"credit for latest ACME invoice",debitCreditMemo:"DEBIT",status:"PENDING",amount:400}]},Statement:{title:"Statement entity",description:"An account statement",type:"object",properties:{accountId:{$ref:"#/components/schemas/Identifier",description:"Corresponds to `accountId` in Account entity"},statementId:{$ref:"#/components/schemas/Identifier",description:"Long-term persistent identity of the statement"},statementDate:{$ref:"#/components/schemas/DateString",description:"Date of the statement"},description:{type:"string",description:"Description of the statement"},links:{$ref:"#/components/schemas/HateoasLinks",description:"The HATEOAS links to retrieve this account statement, or to invoke other APIs.\n\n**Note:** Plaid only accepts one link object in this array.\n"},status:{description:"Availability status of statement",type:"string"}}},Statements:{title:"An array of statements",description:"A paginated array of account statements",type:"object",allOf:[{$ref:"#/components/schemas/PaginatedArray"},{type:"object",properties:{statements:{type:"array",description:"An array of statements, each with its own HATEOAS link to retrieve the account statement",items:{$ref:"#/components/schemas/Statement"}}},required:["statements"]}]},StatementPDF:{title:"Statement PDF",description:"An account statement PDF",type:"string",format:"binary"},Transaction:{title:"Transaction",description:"Base entity for financial transactions. For monetary amounts, Plaid expects a decimal amount, with two places to represent fractional values of the base currency, for example `101.99`.\n",type:"object",properties:{transactionId:{description:"Long term persistent identity of the transaction (unique to account). Plaid expects that `status: PENDING` and `status: POSTED` transactions have different IDs.",$ref:"#/components/schemas/Identifier"},referenceTransactionId:{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",$ref:"#/components/schemas/Identifier"},postedTimestamp:{description:"The date and time that the transaction was posted to the account.\n\nThis property is **required** by Plaid when `status=POSTED`.\nPlaid expects this property to be omitted when `status=PENDING`\n\nISO 8601 date-time in format `YYYY-MM-DDThh:mm:ss.nnn[Z|[+|-]hh:mm]` according to [IETF RFC3339](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6)\n",$ref:"#/components/schemas/Timestamp"},transactionTimestamp:{description:"The date and time that the transaction was added to the server backend systems. This acts as postedTimestamp when postedTimestamp is not present (pending transaction).\n\nISO 8601 date-time in format `YYYY-MM-DDThh:mm:ss.nnn[Z|[+|-]hh:mm]` according to [IETF RFC3339](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6)\n",$ref:"#/components/schemas/Timestamp"},description:{type:"string",description:"The description of the transaction"},debitCreditMemo:{$ref:"#/components/schemas/DebitCreditMemo"},category:{type:"string",description:"Transaction category, preferably MCC or SIC. Plaid expects your organization to provide MCC, if available and applicable.\n"},subCategory:{type:"string",description:"Transaction category detail"},status:{$ref:"#/components/schemas/TransactionStatus"},amount:{type:"number",description:"The amount of money in the account currency. The amount is an absolute value. Plaid relies on the `DebitCreditMemo` enum to determine the direction (and sign) of the transaction.\n"},foreignAmount:{type:"number",description:"The amount of money in the foreign currency. If this amount is specified, then Plaid expects that the `foreignCurrency` property is also set."},foreignCurrency:{$ref:"#/components/schemas/Iso4217Code",description:"The ISO 4217 code of the foreign currency"}},required:["debitCreditMemo","description","transactionId","transactionTimestamp","status","amount"]},Transactions:{title:"Transactions entity",description:"Optionally paginated array of transactions",type:"object",properties:{page:{$ref:"#/components/schemas/PageMetadata"},transactions:{description:"An array of transactions. The `transactionType` is dependent on the account type. Plaid consumes the following types of transactions: [investment](#investment-transaction), [deposit](#deposit-transaction), [loan](#loan-transaction), and [line of credit](#line-of-credit-transaction)\n\nPlaid expects your organization to return an empty array if this information isn't available.\n",type:"array",items:{oneOf:[{type:"object",title:"Deposit Transaction",properties:{depositTransaction:{$ref:"#/components/schemas/DepositTransaction"}},required:["depositTransaction"],additionalProperties:!1},{type:"object",title:"Investment Transaction",properties:{investmentTransaction:{$ref:"#/components/schemas/InvestmentTransaction",description:"A transaction on an investment account.\nIn addition to the required fields in the base `Transaction` model, Plaid requires the following fields\nfor all transactions on an investment account:\n\n* `fees`\n* `transactionType`\n\nIf the transaction involves a security, Plaid additionally requires the following fields:\n\n* `unitPrice`\n* `units`\n* Either of the following:\n - `symbol`\n - `securityId` and `securityIdType`\n"}},required:["investmentTransaction"],additionalProperties:!1},{type:"object",title:"Loan Transaction",properties:{loanTransaction:{$ref:"#/components/schemas/LoanTransaction"}},required:["loanTransaction"],additionalProperties:!1},{type:"object",title:"Line of Credit Transaction",properties:{locTransaction:{$ref:"#/components/schemas/LocTransaction"}},required:["locTransaction"],additionalProperties:!1}]}}},required:["transactions"]},AccountHolderRelationship:{title:"Account Holder Relationship",description:"Types of relationships between accounts and holders. Suggested values",type:"string",enum:["AUTHORIZED_USER","BUSINESS","FOR_BENEFIT_OF","FOR_BENEFIT_OF_PRIMARY","FOR_BENEFIT_OF_PRIMARY_JOINT_RESTRICTED","FOR_BENEFIT_OF_SECONDARY","FOR_BENEFIT_OF_SECONDARY_JOINT_RESTRICTED","FOR_BENEFIT_OF_SOLE_OWNER_RESTRICTED","POWER_OF_ATTORNEY","PRIMARY_JOINT_TENANTS","PRIMARY","PRIMARY_BORROWER","PRIMARY_JOINT","SECONDARY","SECONDARY_JOINT_TENANTS","SECONDARY_BORROWER","SECONDARY_JOINT","SOLE_OWNER","TRUSTEE","UNIFORM_TRANSFER_TO_MINOR"]},ContentTypes:{title:"Content Types",description:"Types of document formats. (Suggested values)",type:"string",enum:["application/pdf","image/gif","image/jpeg","image/tiff","image/png","application/json"]},DateString:{title:"Date String",description:"ISO 8601 full-date in format 'YYYY-MM-DD' according to [IETF RFC3339](https://xml2rfc.tools.ietf.org/public/rfc/html/rfc3339.html#anchor14)",type:"string",format:"date",maxLength:10,example:"2021-07-15"},HateoasLinks:{title:"HATEOAS links array",description:"An array of HATEOAS links",type:"array",items:{$ref:"#/components/schemas/HateoasLink"}},HttpAction:{title:"HTTP action type",description:"The HTTP method to use for requests",type:"string",enum:["GET","POST","PATCH","DELETE","PUT"]},Identifier:{title:"Identifier",description:"Value for a unique identifier",type:"string",maxLength:256,example:"someLongTermUniqueIDString"},Iso3166CountryCode:{title:"ISO 3166 Country Code",description:"ISO 3166-1 alpha-2 codes as of April 5, 2023, from officially assigned Country Codes on [ISO Online Browsing Platform](https://www.iso.org/obp/ui/). Change log is at [ISO 3166 Maintenance Agency](https://www.iso.org/fr/committee/48750.html?t=3V3rukDb61p05Wd6ojyTRvE0S3Yg_fZgUjrLjHWcd9-mDmTKHOGjbX3nEJ3SqHar&view=documents#section-isodocuments-top)\n",type:"string",enum:["AD","AE","AF","AG","AI","AL","AM","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CR","CU","CV","CW","CX","CY","CZ","DE","DJ","DK","DM","DO","DZ","EC","EE","EG","EH","ER","ES","ET","FI","FJ","FK","FM","FO","FR","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SV","SX","SY","SZ","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TR","TT","TV","TW","TZ","UA","UG","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","YE","YT","ZA","ZM","ZW"]},Iso4217Code:{title:"ISO 4217 Code",description:"Currency, fund and precious metal codes as of Jan. 1, 2023 per [ISO 4217 Currency Code Maintenance](https://www.six-group.com/en/products-services/financial-information/data-standards.html)\n",type:"string",enum:["AED","AFN","ALL","AMD","ANG","AOA","ARS","AUD","AWG","AZN","BAM","BBD","BDT","BGN","BHD","BIF","BMD","BND","BOB","BOV","BRL","BSD","BTN","BWP","BYN","BZD","CAD","CDF","CHE","CHF","CHW","CLF","CLP","CNY","COP","COU","CRC","CUC","CUP","CVE","CZK","DJF","DKK","DOP","DZD","EGP","ERN","ETB","EUR","FJD","FKP","GBP","GEL","GHS","GIP","GMD","GNF","GTQ","GYD","HKD","HNL","HTG","HUF","IDR","ILS","INR","IQD","IRR","ISK","JMD","JOD","JPY","KES","KGS","KHR","KMF","KPW","KRW","KWD","KYD","KZT","LAK","LBP","LKR","LRD","LSL","LYD","MAD","MDL","MGA","MKD","MMK","MNT","MOP","MRU","MUR","MVR","MWK","MXN","MXV","MYR","MZN","NAD","NGN","NIO","NOK","NPR","NZD","OMR","PAB","PEN","PGK","PHP","PKR","PLN","PYG","QAR","RON","RSD","RUB","RWF","SAR","SBD","SCR","SDG","SEK","SGD","SHP","SLE","SLL","SOS","SRD","SSP","STN","SVC","SYP","SZL","THB","TJS","TMT","TND","TOP","TRY","TTD","TWD","TZS","UAH","UGX","USD","USN","UYI","UYU","UYW","UZS","VED","VES","VND","VUV","WST","XAF","XAG","XAU","XBA","XBB","XBC","XBD","XCD","XDR","XOF","XPD","XPF","XPT","XSU","XTS","XUA","XXX","YER","ZAR","ZMW","ZWL"]},String255:{title:"String 255",description:"String of maximum length 255",type:"string",maxLength:255},String64:{title:"String 64",description:"String of maximum length 64",type:"string",maxLength:64},TelephoneNumberType:{title:"Telephone Number Type",description:"Purpose or type of telephone number",type:"string",enum:["HOME","BUSINESS","CELL","FAX"]},Timestamp:{title:"Timestamp",description:"ISO 8601 date-time in format `YYYY-MM-DDThh:mm:ss.nnn[Z|[+|-]hh:mm]` according to [IETF RFC3339](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6)",type:"string",format:"date-time",example:"2021-07-15T14:46:41.375Z"},AccountStatus:{title:"Account Status",description:"The status of an account.\n",type:"string",example:"OPEN",enum:["CLOSED","DELINQUENT","NEGATIVECURRENTBALANCE","OPEN","PAID","PENDINGCLOSE","PENDINGOPEN","RESTRICTED"]},AnnuityAccountType:{description:"The type of an account. Plaid consumes basic balance account information from the `accounts/{accountId}` endpoint for a subset of the possible account types described in the FDX specification.\n",type:"string",example:"FIXEDANNUITY",enum:["ANNUITY","FIXEDANNUITY","VARIABLEANNUITY"]},CommercialAccountType:{description:"The type of an account. Plaid consumes basic balance account information from the `accounts/{accountId}` endpoint for a subset of the possible account types described in the FDX specification.\n",type:"string",example:"COMMERCIALLOAN",enum:["COMMERCIALDEPOSIT","COMMERCIALINVESTMENT","COMMERCIALLOAN","COMMERCIALLINEOFCREDIT"]},DepositAccountType:{description:"The type of an account. Plaid consumes basic balance account information from the `accounts/{accountId}` endpoint for a subset of the possible account types described in the FDX specification.\n",type:"string",example:"SAVINGS",enum:["CHECKING","SAVINGS","CD","ESCROW","MONEYMARKET","OTHERDEPOSIT"]},InvestmentAccountType:{description:"The type of an account. Plaid consumes basic balance account information from the `accounts/{accountId}` endpoint for a subset of the possible account types described in the FDX specification.\n",type:"string",example:"ROTH",enum:["401A","401K","403B","529","BROKERAGEPRODUCT","COVERDELL","DIGITALASSET","DEFINEDBENEFIT","ESOP","GUARDIAN","INSTITUTIONALTRUST","IRA","KEOGH","NONQUALIFIEDPLAN","OTHERINVESTMENT","ROLLOVER","ROTH","SARSEP","TAXABLE","TDA","TRUST","TERM","UGMA","UTMA"]},InsuranceAccountType:{description:"The type of an account. Plaid consumes basic balance account information from the `accounts/{accountId}` endpoint for a subset of the possible account types described in the FDX specification.\n",type:"string",example:"WHOLELIFE",enum:["LONGTERMDISABILITY","SHORTTERMDISABILITY","UNIVERSALLIFE","WHOLELIFE"]},DebitCreditMemo:{title:"DebitCreditMemo",description:"The posting type of a transaction. The transaction amount is an absolute value, and this parameter indicates the direction of the transaction. Plaid expects `DEBIT` or `CREDIT` for this enum. Plaid expects that your organization indicates the `MEMO` (i.e., pending) status using the `status` field in the transaction response rather than this field. If your organization sends `MEMO` in this `DebitCreditMemo` enum, Plaid handles this value the same as it handles `DEBIT`. * `DEBIT`: An amount leaves the account * `CREDIT`: An amount enters the account * `MEMO`: A pending transaction to be completed at the end of this day.\n",type:"string",enum:["CREDIT","DEBIT","MEMO"]},FiAttribute:{title:"FI Attribute entity",description:"Financial Institution provider-specific attribute",type:"object",properties:{name:{type:"string",description:"The attribute's name"},value:{type:"string",description:"The attribute's value"}}},HoldingSubType:{title:"Holding SubType",description:"The subtype of an investment holding. Plaid expects you to return `OTHER` and set the `holdingSubType` to indicate cash-type holdings (CASH, MONEYMARKET).\n",type:"string",enum:["CASH","MONEYMARKET"]},HoldingType:{title:"Holding Type",description:"Plaid maps the holding type to the Plaid [security type](https://plaid.com/docs/api/products/investments/#investments-transactions-get-response-securities-type). Plaid expects you to return `OTHER` and set the `holdingSubType` to indicate cash-type holdings (CASH, MONEYMARKET).\n",type:"string",enum:["ANNUITY","BOND","CD","DIGITALASSET","MUTUALFUND","OPTION","OTHER","STOCK"]},InterestRateType:{title:"Interest Rate Type",description:"Specifies whether an interest rate is fixed or variable. This information is helpful for personal financial planning and advising. For example, it affects the potential benefits of refinancing, and informs whether a mortgage payment is expected to change in the future",type:"string",enum:["FIXED","VARIABLE"]},InvestmentTransactionType:{title:"Investment Transaction Type",description:"The type of an investment transaction.\nPlaid maps these enums to Plaid [investment transaction types](https://plaid.com/docs/api/accounts/#investment-transaction-types-schema).\nPlaid doesn't map these enums to Plaid-specific transaction subtypes.\nPlaid maps these enums as follows:\n\n* ADJUSTMENT - fee\n* ATM - cash\n* CASH - cash\n* CHECK - cash\n* CLOSURE - Plaid suggests using SOLDTOCLOSE, PURCHASETOCLOSE, OPTIONEXERCISE or OPTIONEXPIRATION to indicate the specific type of closure, instead of using this enum.\n* CLOSUREOPT - Plaid suggests using SOLDTOCLOSE, PURCHASETOCLOSE, OPTIONEXERCISE or OPTIONEXPIRATION to indicate the specific type of closure, instead of using this enum.\n* CONTRIBUTION - buy (if transaction involves a security) or cash\n* DEP - cash\n* DEPOSIT - cash\n* DIRECTDEBIT - cash\n* DIRECTDEP - cash\n* DIV - cash\n* DIVIDEND - cash\n* DIVIDENDREINVEST - buy\n* EXPENSE - cash\n* FEE - fee\n* INCOME - cash\n* INTEREST - cash\n* INVEXPENSE - cash\n* JRNLFUND - transfer\n* JRNLSEC - transfer\n* MARGININTEREST - cash\n* OPTIONEXERCISE - transfer\n* OPTIONEXPIRATION - transfer\n* OTHER - cash - (unclassified)\n* PAYMENT - cash\n* POS - cash\n* PURCHASED - buy\n* PURCHASEDTOCOVER - buy\n* PURCHASETOCLOSE - buy\n* PURCHASETOOPEN - buy\n* REINVESTOFINCOME - buy\n* REPEATPMT - cash\n* RETURNOFCAPITAL - cash\n* SOLD - sell\n* SOLDTOCLOSE - sell\n* SOLDTOOPEN - sell\n* SPLIT - transfer\n* SRVCHG - fee\n* TRANSFER - transfer\n* XFER - transfer\n",type:"string",enum:["ADJUSTMENT","ATM","CASH","CHECK","CLOSURE","CLOSUREOPT","CONTRIBUTION","DEP","DEPOSIT","DIRECTDEBIT","DIRECTDEP","DIV","DIVIDEND","DIVIDENDREINVEST","EXPENSE","FEE","INCOME","INTEREST","INVEXPENSE","JRNLFUND","JRNLSEC","MARGININTEREST","OPTIONEXERCISE","OPTIONEXPIRATION","OTHER","PAYMENT","POS","PURCHASED","PURCHASEDTOCOVER","PURCHASETOCLOSE","PURCHASETOOPEN","REINVESTOFINCOME","REPEATPMT","RETURNOFCAPITAL","SOLD","SOLDTOCLOSE","SOLDTOOPEN","SPLIT","SRVCHG","TRANSFER","XFER"]},LoanAccountType:{description:"The type of an account. Plaid consumes basic balance account information from the `accounts/{accountId}` endpoint for a subset of the possible account types described in the FDX specification.\n",type:"string",example:"HOMEEQUITYLOAN",enum:["AUTOLOAN","HOMEEQUITYLOAN","INSTALLMENT","LOAN","MILITARYLOAN","MORTGAGE","PERSONALLOAN","SMBLOAN","STUDENTLOAN"]},LoanTransactionType:{title:"Loan Transaction Type",description:"The type of a loan transaction. Plaid passes through all loan transaction types.\n
    \n
  • `ADJUSTMENT`: Adjustment or correction.
  • \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
  • `LUMP_SUM_PAYMENT`: A single payment of money, as opposed to a series of payments made over time.
  • \n
  • `SKIP_PAYMENT`: Payment that satisfies deferral of a required payment.
  • \n
  • `DOUBLE_UP_PAYMENT`: Additional payment beyond the required payment to reduce the principal.
  • \n
  • `PAYOFF`: Payment that satisfies the terms of the mortgage loan and completely pays off the debt.
  • \n
\n",type:"string",enum:["ADJUSTMENT","FEE","INTEREST","PAYMENT","LUMP_SUM_PAYMENT","SKIP_PAYMENT","DOUBLE_UP_PAYMENT","PAYOFF"]},LocAccountType:{description:"The type of an account. Plaid consumes basic balance account information from the `accounts/{accountId}` endpoint for a subset of the possible account types described in the FDX specification.\n",type:"string",example:"CREDITCARD",enum:["LINEOFCREDIT","CHARGE","CREDITCARD","HOMELINEOFCREDIT"]},LocTransactionType:{title:"Line-Of-Credit Transaction Type",description:"The type of a line of credit (LOC) transaction. Plaid passes through all LOC transaction types.\n",type:"string",enum:["ADJUSTMENT","CHECK","FEE","INTEREST","PAYMENT","WITHDRAWAL","PURCHASE"]},PaymentNetworkType:{title:"Payment Network Type",description:"Suggested values for Payment Network Type. `US_` refers to the USA, and `CA_` refers to Canada.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
ValueDescription
CA_ACSSAutomated Clearing House Settlement System
CA_LVTSLarge-Value Transfer System
US_ACHAutomated Clearing House, also called Fed ACH network (mostly small banks)
US_CHIPSClearinghouse Interbank Payments System. Also called Clearing House ACH network (primarily big banks)
US_FEDWIREFedwire Funds Service.
US_RTPUS Real Time Payments System.
\n",type:"string",enum:["US_ACH","US_FEDWIRE","US_CHIPS","US_RTP","CA_ACSS","CA_LVTS"]},SecurityIdType:{title:"Security ID Type",description:"Plaid consumes solely CUSIP, ISIN, and SEDOL.\nThis field, along with `securityId` are **required** unless `symbol` is provided.\n**Note:** If `securityIdType` is provided, `securityId` is required.\n",type:"string",enum:["CINS","CMC","CME","CUSIP","ISIN","ITSA","NASDAQ","SEDOL","SICC","VALOR","WKN"]},SecurityType:{title:"Security Type",description:"The type of a security",type:"string",enum:["BOND","DEBT","DIGITALASSET","MUTUALFUND","OPTION","OTHER","STOCK","SWEEP"]},TransactionStatus:{title:"Transaction Status",description:"The status of a transaction. Plaid consumes solely the `PENDING` and `POSTED` enums,\nand treats `MEMO` and `AUTHORIZATION` as if they were `PENDING`. Plaid expects that pending and posted transactions\nhave different `transactionIds`.\n* `AUTHORIZATION`\n* `MEMO` - A pending transaction to be completed at the end of this day\n* `PENDING` - A pending transaction\n* `POSTED` - A posted transaction\n",type:"string",enum:["AUTHORIZATION","MEMO","PENDING","POSTED"]},UnitType:{title:"Unit Type",description:"The units of an investment transaction",type:"string",enum:["CURRENCY","SHARES"]},AccountClosed:{title:"705: Account is Closed",allOf:[{$ref:"#/components/schemas/Error"},{"x-examples":[{code:705,message:"Account is closed",debugMessage:"Operation is not supported by the closed account"}]}]},AccountNotFound:{title:"701: Account Not Found",allOf:[{$ref:"#/components/schemas/Error"},{"x-examples":[{code:701,message:"Account not found",debugMessage:"Account with ID not found"}]}]},AccountTypeNotSupported:{title:"704: Account Type Not Supported",allOf:[{$ref:"#/components/schemas/Error"},{"x-examples":[{code:704,message:"Account type not supported",debugMessage:"Request made for investment, loans, taxes, statements and other functions that we currently do not support."}]}]},CustomerNotFound:{title:"601: Customer Not Found",allOf:[{$ref:"#/components/schemas/Error"},{"x-examples":[{code:601,message:"Customer not found",debugMessage:"Customer with ID not found."}]}]},CustomerNotAuthorized:{title:"602: Customer Not Authorized",description:"Authenticated customer does not have the authorization to perform this action. (HTTP status code 401)",allOf:[{$ref:"#/components/schemas/Error"},{"x-examples":[{code:602,message:"Customer not authorized",debugMessage:"Authenticated customer does not have the authorization to perform this action."}]}]},Error:{title:"Error",description:"An error entity which can be used at the API level for error responses\nor at the account level to indicate a problem specific to a particular\naccount\n\n**Note:** The HTTP error code may differ from the FDX error code in the response body\n",type:"object",required:["code","message"],properties:{code:{type:"string",description:"The FDX error code: A 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"},debugMessage:{type:"string",description:"Message used to debug the root cause of the error. Contents should not be used in consumer's business logic. Can change at any time and should only be used for consumer to communicate with the data provider about an issue. Provider can include an error GUID in message for their use."}}},InternalServerError:{title:"500: Internal Server Error",allOf:[{$ref:"#/components/schemas/Error"},{"x-examples":[{code:500,message:"Internal server error",debugMessage:"Provider custom developer-level error details for troubleshooting"}]}]},SubsystemUnavailable:{title:"501: Subsystem Unavailable",allOf:[{$ref:"#/components/schemas/Error"},{"x-examples":[{code:501,message:"Version not supported or not implemented",debugMessage:"Provider custom developer-level error details for troubleshooting"}]}]},ScheduledMaintenance:{title:"503: Scheduled Maintenance",allOf:[{$ref:"#/components/schemas/Error"},{"x-examples":[{code:503,message:"Scheduled maintenance",debugMessage:"System is down for maintenance. Retry-After HTTP header may be used to communicate estimated time of recovery."}]}]}}}},"6.0":{openapi:"3.0.3",info:{version:"6.0.0",title:"FDX V6.0.0",description:'## FDX compliance\n\nThe Core Exchange API specifications are a subset of the Financial Data Exchange (FDX) API specification, the usage thereof (or any part thereof) constitutes acceptance of the FDX API\nLicense Agreement, which can be found at https://financialdataexchange.org/. The FDX API specification is distributed exclusively by FDX. Modifications to eliminate required or\nconditional elements prescribed in the FDX API Certification Use Cases will render any implementations using said modifications non-conformant with the FDX API Certification Use Cases.\nPlease note that building the FDX-compliant Core Exchange API and permitting Plaid to call your build constitutes acceptance of\nthe FDX end user license agreement, which can be found at https://financialdataexchange.org/.\nThe full FDX API standard specification is distributed exclusively by FDX.\n\n## Download the specification\n\nTo view this specification and documentation as an OpenAPI YAML file, see [the public Core Exchange Github repository](https://github.com/plaid/core-exchange/tree/main/versions).\n\n## Endpoints\n\nThis specification contains the following endpoints:\n\n - `/customers/current`\n\n - `/accounts`\n\n - `/accounts/{accountId}`\n\n - `/accounts/{accountId}/payment-networks`\n\n - `/accounts/{accountId}/asset-transfer-networks`\n\n - `/accounts/{accountId}/statements`\n\n - `/accounts/{accountId}/statements/{statementId}`\n\n - `/accounts/{accountId}/contact`\n\n - `/accounts/{accountId}/transactions`\n\n## Error responses\n\nAn 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.\nError responses must contain a `code` and `message`, and may optionally include a `debugMessage`.\nSee the descriptions below:\n\n- `code`: The FDX error code: A long-term persistent identifier which can be used to trace error condition back to log information.\n (**Note:** This code may differ from the HTTP status code.)\n- `message`: End user displayable information which might help the customer diagnose an error\n- `debugMessage`: Message used to debug the root cause of the error. Contents should not be used in consumer\'s business logic. Can change at any time and should only be used for consumer to communicate with the data provider about an issue. Provider can include an error GUID in message for their use\n\n### Example error\n\nThe following is an example response with an HTTP status code of 409.\n\n```\n{\n "code": 705,\n "message": "Account is closed",\n "debugMessage": "Operation is not supported by the closed account"\n}\n```\n\nSee the Errors table in each endpoint description for more specific message and debug message examples.\n',contact:{name:"Plaid support",url:"https://plaid.com/data-connectivity-core-exchange/",email:"dataconnectivity@plaid.com"}},servers:[{url:"https://api.your-organization.com/fdx/v6",description:"Financial Data Exchange V6.0 Core API"}],tags:[{name:"Personal Information",description:"Search and view customer or customers"},{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:"Payment Networks Information",description:"Search and view account payment networks"}],paths:{"/customers/current":{get:{operationId:"getCustomerInfo",tags:["Personal Information"],description:"Get the ID of the customer within the authorization scope.\n\n**Note:**\n\n
    \n
  • If you use OIDC authentication (recommended) you do not need to implement this endpoint as Plaid identifies the customer using the OIDC `id_token` response.
  • \n
  • If you use OAuth2 authentication, Plaid uses this endpoint as an alternate method of customer identification.
  • \n
\n",summary:"Get current authenticated customer ID",security:[{openIdConnect:[]},{oauth2:[]}],responses:{200:{description:"Data describing current authenticated customer",content:{"application/json":{schema:{$ref:"#/components/schemas/CustomerWithId"},examples:{"example-1":{value:{customerId:"someLongTermUniqueIDString"}}}}}}}}},"/accounts":{get:{operationId:"searchForAccounts",tags:["Account Information"],summary:"List all accounts",description:"Search and view customer accounts\n",security:[{openIdConnect:["Account"]},{oauth2:["Account"]}],parameters:[{$ref:"#/components/parameters/OffsetQuery"},{$ref:"#/components/parameters/LimitQuery"}],responses:{200:{description:"Array of accounts",content:{"application/json":{schema:{$ref:"#/components/schemas/Accounts"},examples:{"example-1":{value:{page:{nextOffset:25},accounts:[{accountCategory:"DEPOSIT_ACCOUNT",accountId:"depositAccount0000001",accountType:"CHECKING",accountNumberDisplay:"5820",productName:"Checking",nickname:"Main Checking",status:"OPEN",currency:{currencyCode:"USD"}},{accountCategory:"LOAN_ACCOUNT",accountId:"loanAccount0000001",accountType:"LOAN",accountNumberDisplay:"4704",productName:"Loan",nickname:"Primary Loan",status:"OPEN",currency:{currencyCode:"USD"}},{accountCategory:"LOC_ACCOUNT",accountId:"locAccount0000001",accountType:"LINEOFCREDIT",accountNumberDisplay:"8200",productName:"Line of Credit",nickname:"First plaidypus LOC",status:"OPEN",currency:{currencyCode:"USD"}},{accountCategory:"INVESTMENT_ACCOUNT",accountId:"investmentAccount0000001",accountType:"TAXABLE",accountNumberDisplay:"1050",productName:"Brokerage Account",nickname:"First plaidypus Brokerage",status:"OPEN",currency:{currencyCode:"USD"}}]}}}}}}}}},"/accounts/{accountId}":{get:{operationId:"getAccount",tags:["Account Information"],summary:"Get account balances and liabilities",description:"Get account balances, liabilities, and other information. Plaid uses this endpoint to:\n\n
    \n
  • Get account balances for deposit accounts. For example, `CHECKING` or `SAVINGS`. For more information about how Plaid uses this information, see [Plaid Balance API](https://plaid.com/docs/api/products/balance/).
  • \n
  • Get account liabilities for `STUDENTLOAN`, `MORTGAGE`, and `CREDITCARD` loan accounts. For more information about how Plaid uses this information, see [Plaid Liabilities API](https://plaid.com/docs/api/products/liabilities/).
  • \n
  • Get balances and holdings for investment accounts. For more information about how Plaid uses this information, see [Plaid Investments API](https://plaid.com/docs/investments/).
  • \n
\n\nSee the response schema below for a full list of possible parameters for each account type.\n",security:[{openIdConnect:["Account"]},{oauth2:["Account"]}],parameters:[{$ref:"#/components/parameters/AccountIdPath"}],responses:{200:{description:"The full details of an investment, loan, deposit, or line of credit account",content:{"application/json":{schema:{$ref:"#/components/schemas/AccountWithDetails"}}}}}}},"/accounts/{accountId}/contact":{get:{operationId:"getAccountContact",tags:["Personal Information"],description:"Get contact information on the account.\n\nPlaid links contact information to accounts, rather than to users. Plaid consumes multiple holders and their contact information for the account, but doesn't attempt to correlate holders to their respective contact information. For more information about Plaid's identity model, see [Plaid Identity API](https://plaid.com/docs/api/products/identity/).\n",summary:"Get an account's contact information",parameters:[{$ref:"#/components/parameters/AccountIdPath"}],security:[{openIdConnect:["Customer"]},{oauth2:["Customer"]}],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:["Payment Networks Information"],description:"Get payment networks supported by an account, for example ACH (Automated Clearing House). For more information about how Plaid uses this information, see the [Plaid Auth API](https://plaid.com/docs/api/products/auth/).\n",summary:"Get payment networks supported by the account",security:[{openIdConnect:["Account"]},{oauth2:["Account"]}],parameters:[{name:"accountId",in:"path",description:"Account identifier, found in the `GET /accounts` endpoint response.\nPlaid expects the ID to be a different value from the account number.\n\n**Note:** If the status of the `accountId` provided is `RESTRICTED`, you can send a 200 response with an empty body to indicate that no payment networks are available at this time.\n",required:!0,schema:{type:"string"}},{$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:{"example-1":{value:{page:{nextOffset:25},paymentNetworks:[{bankId:"010088889",identifier:"1111222233335820",type:"US_ACH",transferIn:!0,transferOut:!0}]}}}}}}}}},"/accounts/{accountId}/asset-transfer-networks":{get:{operationId:"getAccountAssetTransferNetworks",tags:["Payment Networks Information"],description:"Get asset transfer networks support by an account, for example ACATS (Automated Customer Account Transfer Service) For more information about how Plaid uses this information, see the [Plaid Auth API](https://plaid.com/docs/api/products/auth/).\n\n**Errors:**\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
HTTP status codeFDX error codeExample messageExample debug message
401602Customer not authorizedAuthenticated customer does not have the authorization to perform this action
404701Account not foundAn account with the provided account ID could not be found
409705Account is closedOperation is not supported by the closed account
500500Internal server errorProvider custom developer-level error details for troubleshooting
500501Subsystem unavailableA system required to process the request was not available. Request was not processed
503503Scheduled maintenanceSystem is down for maintenance. Retry-After HTTP header may be used to communicate estimated time of recovery
\n",summary:"Get asset transfer details for this account",parameters:[{name:"accountId",in:"path",description:"Account identifier, found in the `GET /accounts` endpoint response.\nPlaid expects the ID to be a different value from the account number.\n\n**Note:** If the status of the `accountId` provided is `RESTRICTED`, you can send a 200 response with an empty body to indicate that no payment networks are available at this time.\n",required:!0,schema:{type:"string"}},{$ref:"#/components/parameters/OffsetQuery"},{$ref:"#/components/parameters/LimitQuery"}],responses:{200:{description:"Information required to facilitate asset transfer from this account",content:{"application/json":{schema:{$ref:"#/components/schemas/AssetTransferNetworkList"}}}}}}},"/accounts/{accountId}/statements":{get:{operationId:"searchForAccountStatements",tags:["Account Statements"],description:"Get account statements.\n\nExample: `GET /accounts/{accountId}/statements?startTime=value1&endTime=value2`\n",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:{"example-1":{value:{page:{nextOffset:"2",total:3},statements:[{accountId:"10001",statementId:"20001",links:[{href:"/accounts/1111/statements?offSet=2&limit=10"}]}]}}}}}}}}},"/accounts/{accountId}/statements/{statementId}":{get:{operationId:"getAccountStatement",tags:["Account Statements"],description:"Get account statement PDF.\n",summary:"Get account statement",parameters:[{$ref:"#/components/parameters/AccountIdPath"},{$ref:"#/components/parameters/StatementIdPath"}],responses:{200:{description:"A PDF of an account statement",content:{"application/pdf":{schema:{$ref:"#/components/schemas/StatementPDF"}}}}}}},"/accounts/{accountId}/transactions":{get:{operationId:"searchForAccountTransactions",tags:["Account Transactions"],description:"List all account transactions. Plaid always queries this endpoint a `startTime` and an `endTime`, for example, `/accounts/{accountId}/transactions?startTime=2022-01-30&endTime=2022-05-30`, and expects the time filters to be based on the `postedTimestamp`.\n\nPlaid consumes data from this endpoint for the following account types only:\n
    \n
  • Loan
  • \n
  • Investment
  • \n
  • Deposit
  • \n
  • Line of credit (LOC)
  • \n
\n",summary:"List all account transactions",security:[{openIdConnect:["Transactions"]},{oauth2:["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. Plaid consumes the following transaction types: InvestmentTransaction, DepositTransaction, LoanTransaction, or LocTransaction\n",content:{"application/json":{schema:{$ref:"#/components/schemas/Transactions"},examples:{"example-1":{value:{page:{nextOffset:"2"},transactions:[{accountCategory:"DEPOSIT_ACCOUNT",checkNumber:1234,payee:"ACME llc",transactionId:"depositTransaction000000001",postedTimestamp:"2022-04-06T00:00:00.000Z",transactionTimestamp:"2022-04-05T00:00:00.000Z",description:"check for latest ACME invoice",debitCreditMemo:"DEBIT",status:"PENDING",amount:400},{accountCategory:"DEPOSIT_ACCOUNT",transactionId:"depositTransaction000000002",postedTimestamp:"2022-04-07T00:00:00.000Z",transactionTimestamp:"2022-04-07T00:00:00.000Z",description:"reconciliation/adjustment of bank statement error",debitCreditMemo:"DEBIT",status:"POSTED",amount:.8}]}}}}}}}}}},components:{securitySchemes:{openIdConnect:{type:"openIdConnect",description:"This API uses an [OpenID Connect (OIDC) authentication flow](/core-exchange/authentication) and accepts the resulting [access token](/core-exchange/authentication#response-parameters) as a bearer token. For example, `curl -H 'Authorization: Bearer '`.\n",openIdConnectUrl:"https://www.your-organization.com/.well-known/openid-configuration"},oauth2:{type:"oauth2",description:"This API uses an [OAuth2.0 authorization code flow](https://auth0.com/docs/get-started/authentication-and-authorization-flow/authorization-code-flow) and accepts the resulting access token as a bearer token. For example, `curl -H 'Authorization: Bearer '`.\n",flows:{authorizationCode:{authorizationUrl:"https://www.your-organization.com/authorize",tokenUrl:"https://www.your-organization.com/token",scopes:{Account:"(optional) Read account data",Customer:"(optional) Read customer data",Transactions:"(optional) Read transaction data"}}}}},parameters:{LimitQuery:{name:"limit",in:"query",description:"Number of elements that the API consumer wishes to receive. Plaid has a default limit of 100 elements. If this value differs from your organization's limit for the number of items to send in one response, then pick the lower of the two different limits and use the lower limit to define the number of items you send on each page of a paginated response. Plaid then gets the next page by making a new request with the opaque `nextOffset` field that your organization returned in the latest response, until your organization omits `nextOffset` in the response to indicate the last page.\n",schema:{type:"integer"}},OffsetQuery:{name:"offset",in:"query",description:"Plaid receives this value from your organization's latest response in a paginated response, and returns it to in a new request to get the next page. Your organization omits `nextOffset` in the response to indicate the last page.\n",schema:{type:"string",example:"qwer123454q2f"}},AccountIdPath:{name:"accountId",in:"path",description:"Account identifier, found in the `GET /accounts` endpoint response. Plaid expects the ID to be a different value from the account number.\n",required:!0,schema:{type:"string"}},StatementIdPath:{name:"statementId",in:"path",description:"Statement identifier, found in the `GET /accounts/{accountId}/statements` endpoint response.\n",required:!0,schema:{type:"string"}},EndTimeQuery:{name:"endTime",in:"query",description:"End time for use in retrieval of elements (ISO 8601). For transactions, Plaid expects this to filter by the `postedTimestamp`.",schema:{$ref:"#/components/schemas/DateString"}},StartTimeQuery:{name:"startTime",in:"query",description:"Start time for use in retrieval of elements (ISO 8601). For transactions, Plaid expects this to filter by the `postedTimestamp`.",schema:{$ref:"#/components/schemas/DateString"}}},schemas:{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"},region:{$ref:"#/components/schemas/String64",description:"State or province or territory."},postalCode:{type:"string",maxLength:16,description:"Postal code"},country:{$ref:"#/components/schemas/Iso3166CountryCode",description:"Country code"}},required:["line1","city","country"]},AssetTransferType:{title:"Asset Transfer Type",description:"The possible values for type of asset transfer",type:"string",enum:["CA_ATON","US_ACATS","US_DTC"]},AssetTransferNetwork:{title:"Asset Transfer Network",description:"Information required to facilitate asset transfer from this account",type:"object",properties:{identifier:{type:"string",description:"The number used to identify the account within the asset transfer network. If identifierType is ACCOUNT_NUMBER, this is the account number; if identifierType is TOKENIZED_ACCOUNT_NUMBER, this is a tokenized account number"},identifierType:{description:"Type of identifier",$ref:"#/components/schemas/PaymentNetworkIdentifierType"},institutionName:{description:"The name of the institution holding the account",type:"string"},institutionId:{description:"Institution identifier used by the asset transfer network ie. the Depository Trust and Clearing Corporation code for the institution holding the account",type:"string"},type:{description:"Type of asset transfer",$ref:"#/components/schemas/AssetTransferType"},jointAccount:{description:"Whether this account has joint owners",type:"boolean"}},required:["identifier","institutionId","type"]},AssetTransferNetworkList:{title:"Asset Transfer Network List",description:"An array of asset transfer network details for this account",type:"object",properties:{assetTransferNetworks:{description:"Array of asset transfer networks",type:"array",items:{$ref:"#/components/schemas/AssetTransferNetwork"}}}},CustomerWithId:{title:"Customer entity.",description:"Represents a customer. Plaid-specific schema created to hold one property, the `customerId` property of the FDX `Customer` schema.\n",type:"object",properties:{customerId:{$ref:"#/components/schemas/Identifier",description:"Long-term persistent identity of the customer. This identity must be unique within your organization. Plaid consumes this customer ID if your organization uses OAuth2 instead of OIDC to secure the API. Plaid expects your organization to issue the ID as a consistent, static, opaque, unique identifier for the user\n",example:[{customerId:"customer0000001"}]}},required:["customerId"]},CustomerWithName:{title:"Customer entity",description:"Represents a customer. Plaid-specific schema created to hold one property, the `name` property of the FDX `Customer` schema.\n",type:"object",properties:{name:{$ref:"#/components/schemas/CustomerName"}},required:["name"]},CustomerName:{title:"Customer Name entity",description:"The name of an individual in their role as a customer. Plaid expects at least one populated name field. If any field is missing (for example, no first name), then you respond with an empty string for that field.\n",type:"object",allOf:[{$ref:"#/components/schemas/IndividualName"},{type:"object",properties:{prefix:{description:"Name prefix, e.g. Mr.",type:"string"}}}]},DeliveryAddress:{title:"Delivery Address",description:"A delivery address and its location type",type:"object",allOf:[{$ref:"#/components/schemas/Address"}]},HateoasLink:{title:"HATEOAS Link",description:"HATEOAS (Hypermedia As The Engine Of Application State) link",required:["href"],type:"object",properties:{href:{type:"string",format:"uri-reference",description:"The resource URL",example:"https://api.fi.com/fdx/v4/accounts/12345"},action:{description:"The HTTP method to use for the request",$ref:"#/components/schemas/HttpAction"},rel:{description:"The relation of this link to its containing entity, as defined by the [IETF RFC5988](https://datatracker.ietf.org/doc/html/rfc5988)",type:"string"},types:{type:"array",items:{$ref:"#/components/schemas/ContentTypes"},description:"The content-types that can be used in the Accept header. **Note:** Plaid currently only accepts the PDF (`application/pdf`) content type."}}},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"}},required:["first","last"]},PageMetadata:{title:"Page Metadata",description:"Contains opaque identifier, `nextoffset`, for paginated result sets. The `nextOffset` ID doesn't need to be numeric or have any specific pattern. In other words, your organization can implement this however you prefer. The presence of this offset indicates that there's at least one more page of data available. The absence of this offset indicates that there are no more pages of data left in this paginated array. The API consumer returns this in the `offset` parameter in a new request to get the next page in the response array.\n",type:"object",properties:{nextOffset:{type:"string",example:"qwer123454q2f",description:"Opaque offset identifier."}}},PaginatedArray:{title:"Paginated Array",description:"Base class for results that may be paginated",type:"object",properties:{page:{$ref:"#/components/schemas/PageMetadata"}}},PaymentNetworkIdentifierType:{title:"Payment Network Identifier Type",description:"Suggested values for Payment Initiation Identifier Type",type:"string",enum:["ACCOUNT_NUMBER","TOKENIZED_ACCOUNT_NUMBER"]},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,description:"Country calling codes defined by ITU-T recommendations E.123 and E.164"},number:{type:"string",maxLength:15,pattern:"\\d+",description:"Telephone subscriber number defined by ITU-T recommendation E.164"}},required:["number","type"]},AccountContact:{title:"Account Contact entity",description:"Contact information for the account.",type:"object",properties:{holders:{type:"array",items:{$ref:"#/components/schemas/AccountHolder"},minItems:1,description:"Owners of the account. Note that while the [FDX specification](https://financialdataexchange.org) enables associating holders and their contact information in the full `AccountHolder` schema, Plaid doesn't consume these associations. Instead, Plaid consumes limited information for each `AccountHolder` and doesn't associate contact information such as emails, addresses, or telephone numbers to account holders. For more information about Plaid's data model for account contact information, see [Identity](https://plaid.com/docs/api/products/identity/).\n",example:[{relationship:"SECONDARY",name:{first:"Ernest",middle:"Miller",last:"Hemingway",suffix:"IV"}},{relationship:"PRIMARY_JOINT",name:{first:"Maya",last:"Angelou",middle:"Annie"}}]},emails:{type:"array",items:{type:"string"},minItems:1,description:"Email addresses associated with the account.\n",example:["ernest.m.hemingway@domain.tld","m.angelou@domain.tld"]},addresses:{type:"array",items:{$ref:"#/components/schemas/DeliveryAddress"},minItems:1,description:"Physical mail addresses associated with the account.\n",example:[{line1:"1850 N Clark St",line2:"Apartment 103",city:"Chicago",region:"IL",postalCode:"60614",country:"US"},{line1:"2014 N Main St",city:"San Francisco",region:"CA",postalCode:"94105",country:"US"}]},telephones:{type:"array",items:{$ref:"#/components/schemas/TelephoneNumber"},minItems:1,description:"Telephone numbers associated with the account.\n",example:[{type:"HOME",country:"1",number:"3127771926"},{type:"CELL",country:"53",number:"45915607"},{type:"HOME",country:"1",number:"4157771926"}]}},required:["holders","emails","addresses","telephones"]},AccountDescriptor:{title:"Account Descriptor entity",description:"This descriptor provides minimal information about the account for use in lightweight arrays.\n\n**Note:** This object may contain fewer fields than the full account object.\n",type:"object",discriminator:{propertyName:"accountCategory"},properties:{accountCategory:{$ref:"#/components/schemas/AccountCategory",description:"The entity type of the account of this Transaction"},accountId:{description:"Long-term persistent identity of the account, though not an account number. This identity must be unique within your organization.\n",$ref:"#/components/schemas/Identifier"},accountNumberDisplay:{description:"Account display number for the end user's handle at the owning financial institution. Plaid expects that the last 4 digits of this masked number correspond to the last 4 digits of the account number.\n",type:"string",example:"4321"},productName:{type:"string",description:"Marketed product name for this account. Used in UIs to assist in account selection"},nickname:{description:"Name given by the user. Used in UIs to assist in account selection. Plaid recommends returning this only if the account permits user renaming.\n",type:"string"},status:{$ref:"#/components/schemas/AccountStatus"},currency:{$ref:"#/components/schemas/Currency"}},required:["accountCategory","accountId","productName","status","currency"]},AnnuityAccount:{allOf:[{$ref:"#/components/schemas/AccountDescriptor"},{type:"object",properties:{accountType:{$ref:"#/components/schemas/AnnuityAccountType"}},required:["accountType"]}]},AnnuityAccountDescriptor:{allOf:[{$ref:"#/components/schemas/AnnuityAccount"},{"x-examples":[{accountCategory:"ANNUITY_ACCOUNT",accountId:"annuityAccount0000001",accountNumberDisplay:"53901",productName:"Fixed Annuity",nickname:"Fixed annuity 1",status:"OPEN",currency:{currencyCode:"USD"},accountType:"FIXEDANNUITY"}]}]},AccountHolder:{title:"Account Holder entity",type:"object",allOf:[{$ref:"#/components/schemas/CustomerWithName"},{type:"object",properties:{relationship:{$ref:"#/components/schemas/AccountHolderRelationship",description:"Customer's relationship to the account"}}}]},AccountPaymentNetwork:{title:"Payment Network Supported by Account",description:"This provides details required to execute a transaction against the account within the payment network",type:"object",properties:{bankId:{type:"string",description:"Bank identifier used by the payment network ie. Routing Number"},identifier:{type:"string",description:"The number used to identify the account within the payment network."},type:{$ref:"#/components/schemas/PaymentNetworkType"},transferIn:{type:"boolean",description:"Can transfer funds to the account using this information. Plaid expect that this value represents the account's current ability to be credited through a payment network.\nPlaid recommends dynamically updating this value, for example to represent if the account is locked or not.\n\n**Note:** Both `transferIn` and `transferOut` must be `true` in order for the account to support ACH.\n"},transferOut:{type:"boolean",description:"Can transfer funds from the account using this information. Plaid expect that this value represents the account's current ability to be debited through a payment network.\nPlaid recommends dynamically updating this value, for example to represent if the account is locked or not.\n\n**Note:** Both `transferIn` and `transferOut` must be `true` in order for the account to support ACH.\n"}},required:["bankId","identifier","type","transferIn","transferOut"]},AccountPaymentNetworkList:{title:"List payment networks for account",description:"An optionally paginated array of payment networks supported by the account",type:"object",allOf:[{$ref:"#/components/schemas/PaginatedArray"},{type:"object",properties:{paymentNetworks:{type:"array",items:{$ref:"#/components/schemas/AccountPaymentNetwork"},minItems:1,description:"Array of payment networks. Not all deposit accounts support ACH transfers. For example, a prepaid debit card account doesn't support ACH.\n",example:[{bankId:"010088889",identifier:"1111222233335820",type:"US_ACH",transferIn:!0,transferOut:!0}]}},required:["paymentNetworks"]}]},AccountWithDetails:{title:"Account With Details entity",description:"An account with full details",type:"object",discriminator:{propertyName:"accountCategory",mapping:{DEPOSIT_ACCOUNT:"#/components/schemas/DepositAccount",INVESTMENT_ACCOUNT:"#/components/schemas/InvestmentAccount",LOAN_ACCOUNT:"#/components/schemas/LoanAccount",LOC_ACCOUNT:"#/components/schemas/LineOfCreditAccount"}},oneOf:[{$ref:"#/components/schemas/DepositAccount"},{$ref:"#/components/schemas/InvestmentAccount"},{$ref:"#/components/schemas/LoanAccount"},{$ref:"#/components/schemas/LineOfCreditAccount"}]},AccountWithDescriptor:{title:"Account With Descriptor entity",description:"This provides an instance of an account without full details",type:"object",discriminator:{propertyName:"accountCategory",mapping:{ANNUITY_ACCOUNT:"#/components/schemas/AnnuityAccountDescriptor",COMMERCIAL_ACCOUNT:"#/components/schemas/CommercialAccountDescriptor",DEPOSIT_ACCOUNT:"#/components/schemas/DepositAccountDescriptor",INSURANCE_ACCOUNT:"#/components/schemas/InsuranceAccountDescriptor",INVESTMENT_ACCOUNT:"#/components/schemas/InvestmentAccountDescriptor",LOAN_ACCOUNT:"#/components/schemas/LoanAccountDescriptor",LOC_ACCOUNT:"#/components/schemas/LineOfCreditAccountDescriptor"}},oneOf:[{$ref:"#/components/schemas/AnnuityAccountDescriptor"},{$ref:"#/components/schemas/CommercialAccountDescriptor"},{$ref:"#/components/schemas/DepositAccountDescriptor"},{$ref:"#/components/schemas/InsuranceAccountDescriptor"},{$ref:"#/components/schemas/InvestmentAccountDescriptor"},{$ref:"#/components/schemas/LoanAccountDescriptor"},{$ref:"#/components/schemas/LineOfCreditAccountDescriptor"}]},Accounts:{title:"Accounts entity",description:"An optionally paginated array of accounts",type:"object",allOf:[{$ref:"#/components/schemas/PaginatedArray"},{type:"object",properties:{accounts:{type:"array",items:{$ref:"#/components/schemas/AccountWithDetails"},description:"An array of accounts. May include accounts of any of the following types: [deposit](#deposit-account), [investment](#investment-account), [line of credit](#line-of-credit-account), [loan](#loan-account)\n\n**Note:** Each object in the accounts array is expected to contain at least one account type.\n",minItems:1}},required:["accounts"]}]},CommercialAccount:{allOf:[{$ref:"#/components/schemas/AccountDescriptor"},{type:"object",properties:{accountType:{$ref:"#/components/schemas/CommercialAccountType"}},required:["accountType"]}]},CommercialAccountDescriptor:{allOf:[{$ref:"#/components/schemas/CommercialAccount"},{"x-examples":[{accountCategory:"COMMERCIAL_ACCOUNT",accountId:"commercialAccount0000001",accountType:"COMMERCIALLOAN",accountNumberDisplay:"230014",productName:"Commercial Loan",nickname:"Loan 1",status:"OPEN",currency:{currencyCode:"USD"}}]}]},Currency:{title:"Currency entity",description:"Represents an international currency.",type:"object",properties:{currencyCode:{$ref:"#/components/schemas/Iso4217Code",description:"ISO 4217 currency code"}},required:["currencyCode"]},DepositAccount:{allOf:[{$ref:"#/components/schemas/AccountDescriptor"},{type:"object",properties:{accountType:{$ref:"#/components/schemas/DepositAccountType"}},required:["accountType"]}]},DepositAccountDescriptor:{allOf:[{$ref:"#/components/schemas/DepositAccount"},{"x-examples":[{accountCategory:"DEPOSIT_ACCOUNT",accountId:"depositAccount0000001",accountType:"CHECKING",accountNumberDisplay:"5820",productName:"Checking",nickname:"Main Checking",status:"OPEN",currency:{currencyCode:"USD"}}]}]},DepositAccountFull:{allOf:[{$ref:"#/components/schemas/DepositAccount"},{type:"object",description:'Full details of a deposit account. Plaid consumes the same information for all types of deposit accounts.\nPlaid expects a decimal amount with two places (to represent fractional values of the base currency) for all monetary amounts. For example, `"currentBalance": 192.00`.\n\nThe `accountType` field for deposit accounts may be set to any of the [account types](#deposit-account-types) listed below.\n',properties:{currentBalance:{type:"number",description:"The total amount of money in the account (sum of all posted/cleared transactions, not including pending transactions). For Plaid's full definition, see the [Transactions](https://plaid.com/docs/api/products/transactions/#transactions-get-response-accounts-balances-current).\n"},availableBalance:{type:"number",description:"The money in the account available to spend (sum of all transactions, plus or minus pending transactions). For Plaid's full definition, see [Transactions](https://plaid.com/docs/api/products/transactions/#transactions-get-response-accounts-balances-available).\n"}},required:["currentBalance","availableBalance","accountType"]},{"x-examples":[{accountCategory:"DEPOSIT_ACCOUNT",accountId:"someLongTermUniqueIDString",accountNumberDisplay:"4321",productName:"string",nickname:"string",status:"CLOSED",currency:{currencyCode:"AED"},accountType:"CHECKING",currentBalance:0,availableBalance:0}]}]},DepositTransaction:{title:"Deposit Transaction entity",description:"A transaction on a deposit account type",type:"object",allOf:[{$ref:"#/components/schemas/Transaction"},{type:"object",properties:{accountCategory:{type:"string",enum:["DEPOSIT_ACCOUNT"]},payee:{$ref:"#/components/schemas/String255",description:"Payee name"},checkNumber:{type:"integer",description:"Check number. Plaid expects this solely if the transaction involves a check.\n"}},required:["accountCategory"]}],"x-examples":[{transactionId:"depositTransaction000000001",transactionTimestamp:"2022-04-05T00:00:00.000Z",description:"check for latest ACME invoice",debitCreditMemo:"DEBIT",status:"PENDING",amount:400,payee:"Acme LLC",checkNumber:57448}]},Holding:{title:"Holding entity",description:"A holding in an investment account.\nPlaid maps the `holding` and the `investmentAccount` FDX models to its securities models, which hold universal information like the ticker symbol, and to its holdings models, which hold account-specific information like balances. For more information, see [Plaid investments](https://plaid.com/docs/investments/#securities-and-holdings).\n",allOf:[{type:"object",properties:{securityIds:{description:"Unique identifiers for the security",type:"array",items:{$ref:"#/components/schemas/SecurityId"}},holdingName:{type:"string",description:"Holding name or security name"},holdingType:{$ref:"#/components/schemas/HoldingType"},holdingSubType:{$ref:"#/components/schemas/HoldingSubType",description:"MONEYMARKET, CASH"},symbol:{type:"string",description:"Ticker / Market symbol\nThis field is **required** unless both `securityId` and `securityIdType` are provided."},purchasedPrice:{type:"number",description:"Price of holding at the time of purchase. Plaid determines an approximate [cost basis](https://plaid.com/docs/api/products/investments/#investments-holdings-get-response-holdings-cost-basis) using the purchase price and the number of units. Plaid cannot take fees into account to determine the cost basis because the FDX holding schema doesn't include fees.\n"},currentUnitPrice:{type:"number",description:"Current unit price. Plaid uses this as the [institution_price](https://plaid.com/docs/api/products/investments/#investments-holdings-get-response-holdings-institution-price). Plaid falls back to using this as the [close price](https://plaid.com/docs/api/products/investments/#investments-holdings-get-response-securities-close-price) if you don't return `securityId` for holdings involving securities.\n"},currentUnitPriceDate:{$ref:"#/components/schemas/DateString",description:"Current unit price as of date"},units:{type:"number",description:"Plaid requires this field for holdings and transactions involving securities.\nFor security-based actions other than stock splits, quantity.\nShares for stocks, mutual funds, and others. Face value for bonds.\nContracts for options.\n\n**Note:** This field is required if the transaction involves a security.\n"},marketValue:{type:"number",description:"Market value at the time of data retrieved"},faceValue:{type:"number",description:"Required for bonds. Face value at the time of data retrieved. If this isn't present, Plaid assumes the holding isn't a bond and falls back to `marketValue`.\n"},cashAccount:{type:"boolean",description:"If true, indicates that this holding is used to maintain proceeds from sales, dividends, and other cash postings to the investment account. If you don't set a value for `isCashEquivalent` in the `fiAttributes` array, then Plaid uses `cashAccount` in determining the [is_cash_equivalent](https://plaid.com/docs/api/products/investments/#investments-holdings-get-response-securities-is-cash-equivalent) status.\n"},currency:{$ref:"#/components/schemas/Currency",description:"Currency information if it is different from Account entity."},fiAttributes:{type:"array",description:"Array of financial institution-specific attributes. Plaid recommends including a value for [is_cash_equivalent](https://plaid.com/docs/api/products/investments/#investments-holdings-get-response-securities-is-cash-equivalent) property in this array. Plaid accepts `isCashEquivalent` as the attribute name and a string value of `true` or `false`. If you return a value for `isCashEquivalent`, then return the same value for `cashAccount` as a boolean.\n",items:{$ref:"#/components/schemas/FiAttribute"}}},required:["cashAccount","marketValue"]}]},InsuranceAccount:{allOf:[{$ref:"#/components/schemas/AccountDescriptor"},{type:"object",properties:{accountType:{$ref:"#/components/schemas/InsuranceAccountType"}},required:["accountType"]}]},InsuranceAccountDescriptor:{allOf:[{$ref:"#/components/schemas/InsuranceAccount"},{"x-examples":[{accountCategory:"INSURANCE_ACCOUNT",accountId:"insuranceAccount0000001",accountType:"LONGTERMDISABILITY",accountNumberDisplay:"5820",productName:"Long-term disability",nickname:"Long term",status:"OPEN",currency:{currencyCode:"USD"}}]}]},InvestmentAccount:{allOf:[{$ref:"#/components/schemas/AccountDescriptor"},{type:"object",properties:{accountType:{$ref:"#/components/schemas/InvestmentAccountType"}},required:["accountType"]}]},InvestmentAccountDescriptor:{allOf:[{$ref:"#/components/schemas/InvestmentAccount"},{"x-examples":[{accountCategory:"INVESTMENT_ACCOUNT",accountId:"investmentAccount0000001",accountType:"TAXABLE",accountNumberDisplay:"1050",productName:"Brokerage Account",nickname:"First plaidypus Brokerage",status:"OPEN",currency:{currencyCode:"USD"}}]}]},InvestmentAccountFull:{allOf:[{$ref:"#/components/schemas/InvestmentAccount"},{type:"object",properties:{availableCashBalance:{type:"number",description:"Cash balance across all sub-accounts. Plaid expects that this includes sweep funds."},balanceAsOf:{description:"As-of date of balances.\n\nISO 8601 date-time in format `YYYY-MM-DDThh:mm:ss.nnn[Z|[+|-]hh:mm]` according to [IETF RFC3339](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6)\n",$ref:"#/components/schemas/Timestamp"},currentValue:{type:"number",description:"Total current value of all investments."},holdings:{type:"array",description:"Holdings in the investment account.\nPlaid maps the `holding` and the `investmentAccount` FDX models to its securities models, which hold universal information like the ticker symbol, and to its holdings models, which hold account-specific information like balances. For more information, see [Plaid investments](https://plaid.com/docs/investments/#securities-and-holdings).\n",items:{$ref:"#/components/schemas/Holding"}}},required:["availableCashBalance","currentValue"]},{"x-examples":[{accountCategory:"INVESTMENT_ACCOUNT",accountId:"investmentAccount0000001",accountType:"TAXABLE",accountNumberDisplay:"1050",productName:"Brokerage Account",nickname:"First plaidypus Brokerage",status:"OPEN",currency:{currencyCode:"USD"},availableCashBalance:4302.39,balanceAsOf:null,currentValue:4302.39,holdings:[{securityId:"string",securityIdType:"CINS",holdingName:"string",holdingType:"ANNUITY",holdingSubType:"CASH",symbol:"MTSN",purchasedPrice:12.5,currentUnitPrice:34.2,currentUnitPriceDate:"2024-07-15",units:100,marketValue:3400,faceValue:3400,cashAccount:!0,currency:{currencyCode:"AED"},fiAttributes:[{name:"string",value:"string"}]}]}]}]},InvestmentTransaction:{title:"Investment Transaction entity",description:"A transaction on an investment account.\nIn addition to the required fields in the base `Transaction` model, Plaid requires the following fields\nfor all transactions on an investment account:\n\n* `fees`\n* `transactionType`\n\nIf the transaction involves a security, Plaid additionally requires the following fields:\n\n* `unitPrice`\n* `units`\n* Either of the following:\n - `symbol`\n - `securityId` and `securityIdType`\n",type:"object",allOf:[{$ref:"#/components/schemas/Transaction"},{type:"object",properties:{accountCategory:{type:"string",enum:["INVESTMENT_ACCOUNT"]},transactionType:{$ref:"#/components/schemas/InvestmentTransactionType"},securityId:{type:"string",description:"If you return the `securityId` for a holding, Plaid uses it to look up the closing price from NYSE Group Security Master. If you don't return `securityId` for a holding that uses security IDs (not recommended), Plaid uses the `unitPrice` as the closing price.\nThis field, along with `securityIdType` are **required** unless `symbol` is provided.\n**Note:** If `securityId` is provided, `securityIdType` is required.\n"},securityIdType:{$ref:"#/components/schemas/SecurityIdType"},securityType:{$ref:"#/components/schemas/SecurityType",description:"STOCK, MUTUALFUND, DEBT, OPTION, SWEEP, OTHER, BOND"},symbol:{type:"string",description:"Ticker symbol.\n\nThis field is **required** unless both `securityId` and `securityIdType` are provided.\n"},commission:{type:"number",description:"Plaid expects that your organization includes a value for commission if the commission isn't included in `fees`.\n"},fees:{type:"number",description:"Fees applied to the trade. Plaid expects that the `fees` include the commission, unless your organization separately provides a value for `commission`.\n"},unitPrice:{type:"number",description:"Unit price. Plaid uses this as the [price](https://plaid.com/docs/api/products/investments/#investments-transactions-get-response-investment-transactions-price).\nPlaid falls back to using this as the [close price](https://plaid.com/docs/api/products/investments/#investments-transactions-get-response-securities-close-price)\nif you don't return `securityId` for transactions involving securities.\n\n**Note:** This field is required if the transaction involves a security.\n"},units:{type:"number",description:"Plaid requires this field for holdings and transactions involving securities.\nFor security-based actions other than stock splits, quantity.\nShares for stocks, mutual funds, and others. Face value for bonds.\nContracts for options.\n\n**Note:** This field is required if the transaction involves a security.\n"},unitType:{$ref:"#/components/schemas/UnitType",description:"SHARES, CURRENCY"},fiAttributes:{type:"array",description:"Array of financial institution-specific attributes. Plaid recommends including a value for [is_cash_equivalent](https://plaid.com/docs/api/products/investments/#investments-transactions-get-response-securities-is-cash-equivalent) property in this array. Plaid accepts `isCashEquivalent` as the attribute name and a string value of `true` or `false`.\n",items:{$ref:"#/components/schemas/FiAttribute"}}},required:["fees","transactionType","accountCategory"]}],"x-examples":[{transactionId:"investmentTransaction000000001",transactionTimestamp:"2022-04-05T00:00:00.000Z",description:"check for latest ACME invoice",debitCreditMemo:"DEBIT",status:"PENDING",amount:400,transactionType:"CHECK",securityId:"APW881",securityIdType:"CMC",securityType:"DEBT",symbol:"MSFT",commission:.1,unitPrice:15.3,units:1e3,unitType:"SHARES",fiAttributes:[{name:"Vanguard",value:80}]}]},LoanAccount:{description:'Full details of a loan account. The `accountType` field for loan accounts may be set to any of the [account types](#loan-account-types) listed below.\n\nPlaid only consumes the `MORTGAGE` and `STUDENTLOAN` types for its [Liabilities API](https://plaid.com/docs/api/products/liabilities/). For other loan account types Plaid consumes account details and transactions.\nPlaid consumes all loan account information as returned in the `GET /accounts` endpoint, as well as the additional information listed below:\n\nRequired for all loan accounts:\n* `principalBalance`\n* `interestRate`\n* `interestRateType`\n\nOptional fields for `STUDENTLOAN` accounts:\n* `interestPaidYearToDate`\n* `lastPaymentAmount`\n* `lastPaymentDate`\n* `maturityDate`\n* `nextPaymentDate`\n* `originalPrincipal`\n* `originatingDate`\n\nRequired for `MORTGAGE` accounts:\n* `accountNumber`\n\nOptional fields for `MORTGAGE` accounts:\n* `escrowBalance`\n* `interestPaidYearToDate`\n* `lastPaymentAmount`\n* `lastPaymentDate`\n* `loanTerm`\n* `maturityDate`\n* `nextPaymentAmount`\n* `nextPaymentDate`\n* `originalPrincipal`\n* `originatingDate`\n\nPlaid expects a decimal amount with two places (to represent fractional values of the base currency) for all monetary amounts. For example, `"escrowBalance": 192.00`.\n',allOf:[{$ref:"#/components/schemas/AccountDescriptor"},{type:"object",properties:{accountType:{$ref:"#/components/schemas/LoanAccountType"}},required:["accountType"]}]},LoanAccountDescriptor:{allOf:[{$ref:"#/components/schemas/LoanAccount"},{"x-examples":[{accountCategory:"LOAN_ACCOUNT",accountId:"loanAccount0000001",accountType:"LOAN",accountNumberDisplay:"4704",productName:"Loan",nickname:"Primary Loan",status:"OPEN",currency:{currencyCode:"USD"}}]}]},LoanAccountFull:{allOf:[{$ref:"#/components/schemas/LoanAccount"},{type:"object",description:'Full details of a loan account. The `accountType` field for loan accounts may be set to any of the [account types](#loan-account-types) listed below.\n\nPlaid only consumes the `MORTGAGE` and `STUDENTLOAN` types for its [Liabilities API](https://plaid.com/docs/api/products/liabilities/). For other loan account types Plaid consumes account details and transactions.\nPlaid consumes all loan account information as returned in the `GET /accounts` endpoint, as well as the additional information listed below:\n\nRequired for all loan accounts:\n* `principalBalance`\n* `interestRate`\n* `interestRateType`\n\nOptional fields for `STUDENTLOAN` accounts:\n* `interestPaidYearToDate`\n* `lastPaymentAmount`\n* `lastPaymentDate`\n* `maturityDate`\n* `nextPaymentDate`\n* `originalPrincipal`\n* `originatingDate`\n\nRequired for `MORTGAGE` accounts:\n* `accountNumber`\n\nOptional fields for `MORTGAGE` accounts:\n* `escrowBalance`\n* `interestPaidYearToDate`\n* `lastPaymentAmount`\n* `lastPaymentDate`\n* `loanTerm`\n* `maturityDate`\n* `nextPaymentAmount`\n* `nextPaymentDate`\n* `originalPrincipal`\n* `originatingDate`\n\nPlaid expects a decimal amount with two places (to represent fractional values of the base currency) for all monetary amounts. For example, `"escrowBalance": 192.00`.\n',properties:{accountNumber:{type:"string",description:"Full account number for the end user's handle for the account at the owning institution\nRequired for accountType 'MORTGAGE'\n"},principalBalance:{type:"number",description:"Principal balance of loan"},escrowBalance:{type:"number",description:"Escrow balance of loan"},originalPrincipal:{type:"number",description:"Original principal of loan"},originatingDate:{$ref:"#/components/schemas/DateString",description:"Loan origination date"},loanTerm:{type:"integer",description:"Term of loan in months"},nextPaymentAmount:{type:"number",description:"Amount of next payment"},nextPaymentDate:{$ref:"#/components/schemas/DateString",description:"Date of next payment"},lastPaymentAmount:{type:"number",description:"Last payment amount"},lastPaymentDate:{$ref:"#/components/schemas/DateString",description:"Last payment date"},maturityDate:{$ref:"#/components/schemas/DateString",description:"Maturity date"},interestPaidYearToDate:{type:"number",description:"Interest paid year to date"},interestRate:{type:"number",description:"The account's interest rate"},interestRateType:{$ref:"#/components/schemas/InterestRateType"}},required:["principalBalance","interestRate","interestRateType","accountType"]},{"x-examples":[{accountCategory:"LOAN_ACCOUNT",accountId:"someLongTermUniqueIDString",accountNumberDisplay:"4321",productName:"string",nickname:"string",status:"CLOSED",currency:{currencyCode:"AED"},accountType:"AUTOLOAN",accountNumber:"string",principalBalance:0,escrowBalance:0,originalPrincipal:0,originatingDate:"2021-07-15",loanTerm:0,nextPaymentAmount:0,nextPaymentDate:"2021-07-15",lastPaymentAmount:0,lastPaymentDate:"2021-07-15",maturityDate:"2021-07-15",interestPaidYearToDate:0,interestRate:0,interestRateType:"FIXED"}]}]},LoanTransaction:{title:"Loan Transaction entity",description:"A transaction on a loan account",type:"object",allOf:[{$ref:"#/components/schemas/Transaction"},{type:"object",properties:{accountCategory:{type:"string",enum:["LOAN_ACCOUNT"]},transactionType:{$ref:"#/components/schemas/LoanTransactionType"}},required:["accountCategory"]}],"x-examples":[{transactionId:"loanTransaction000000001",transactionTimestamp:"2022-04-05T00:00:00.000Z",description:"latest ACME invoice",debitCreditMemo:"CREDIT",status:"PENDING",amount:400}]},LineOfCreditAccount:{description:'Full details of a line of credit account. The `accountType` field for line of credit accounts may be set to any of the [account types](#loc-account-types) listed below.\n\nPlaid may consume all the parameters returned by the `GET /accounts` endpoint:\n\n* `availableCredit`\n* `creditLine`\n* `currentBalance`\n\nAdditionally, for the `CREDITCARD` accountType, Plaid consumes the previous information plus the following for its liabilities product:\n\n* `advancesApr`\n* `lastPaymentAmount`\n* `lastPaymentDate`\n* `lastStmtBalance`\n* `lastStmtDate`\n* `minimumPaymentAmount`\n* `nextPaymentDate`\n* `purchasesApr`\nPlaid expects a decimal amount with two places (to represent fractional values of the base currency) for all monetary amounts. For example, `"currentBalance": 192.00`.\n',allOf:[{$ref:"#/components/schemas/AccountDescriptor"},{type:"object",properties:{accountType:{$ref:"#/components/schemas/LineOfCreditAccountType"}},required:["accountType"]}]},LineOfCreditAccountDescriptor:{allOf:[{$ref:"#/components/schemas/LineOfCreditAccount"},{"x-examples":[{accountCategory:"LOC_ACCOUNT",accountId:"loc_01_creditcard",accountNumberDisplay:"8200",productName:"First Plaidypus Credit Card",nickname:"my travel rewards card",status:"OPEN",currency:{currencyCode:"USD"},accountType:"CREDITCARD"}]}]},LineOfCreditAccountFull:{allOf:[{$ref:"#/components/schemas/LineOfCreditAccount"},{type:"object",description:'Full details of a line of credit account. The `accountType` field for line of credit accounts may be set to any of the [account types](#loc-account-types) listed below.\n\nPlaid may consume all the parameters returned by the `GET /accounts` endpoint:\n\n* `availableCredit`\n* `creditLine`\n* `currentBalance`\n\nAdditionally, for the `CREDITCARD` accountType, Plaid consumes the previous information plus the following for its liabilities product:\n\n* `advancesApr`\n* `lastPaymentAmount`\n* `lastPaymentDate`\n* `lastStmtBalance`\n* `lastStmtDate`\n* `minimumPaymentAmount`\n* `nextPaymentDate`\n* `purchasesApr`\nPlaid expects a decimal amount with two places (to represent fractional values of the base currency) for all monetary amounts. For example, `"currentBalance": 192.00`.\n',properties:{creditLine:{type:"number",description:"Credit limit"},availableCredit:{type:"number",description:"Available credit. Required for all accountTypes except for `CHARGE`"},nextPaymentAmount:{type:"number",description:"Amount of next payment"},nextPaymentDate:{$ref:"#/components/schemas/DateString",description:"Due date of next payment"},principalBalance:{type:"number",description:"Principal balance"},currentBalance:{type:"number",description:"Current balance of the line of credit"},minimumPaymentAmount:{type:"number",description:"Minimum payment amount"},lastPaymentAmount:{type:"number",description:"Last payment amount"},lastPaymentDate:{$ref:"#/components/schemas/DateString",description:"Last payment date"},pastDueAmount:{type:"number",description:"Amount owed that the account holder failed to pay on the due date"},lastStmtBalance:{type:"number",description:"Last statement balance"},lastStmtDate:{$ref:"#/components/schemas/DateString",description:"Last statement date"},purchasesApr:{type:"number",description:"Purchases APR"},advancesApr:{type:"number",description:"Advances APR"}},required:["currentBalance","accountType"]},{"x-examples":[{accountCategory:"LOC_ACCOUNT",accountId:"loc_01_creditcard",accountNumberDisplay:"8200",productName:"First Plaidypus Credit Card",nickname:"my travel rewards card",status:"OPEN",currency:{currencyCode:"USD"},minimumPaymentAmount:100,lastPaymentAmount:400,lastPaymentDate:"2022-03-30",pastDueAmount:0,lastStmtBalance:400,lastStmtDate:"2022-03-25",purchasesApr:10.25,advancesApr:15.75,currentBalance:375,availableCredit:625,accountType:"CREDITCARD"}]}]},LineOfCreditTransaction:{title:"Line-Of-Credit Transaction entity",description:"A line-of-credit transaction",type:"object",allOf:[{$ref:"#/components/schemas/Transaction"},{type:"object",properties:{accountCategory:{type:"string",enum:["LOC_ACCOUNT"]},transactionType:{$ref:"#/components/schemas/LineOfCreditTransactionType"},checkNumber:{type:"integer",description:"Check number"}},required:["accountCategory"]}],"x-examples":[{transactionId:"locTransaction000000001",transactionTimestamp:"2022-04-05T00:00:00.000Z",description:"credit for latest ACME invoice",debitCreditMemo:"DEBIT",status:"PENDING",amount:400}]},Statement:{title:"Statement entity",description:"An account statement",type:"object",properties:{accountId:{$ref:"#/components/schemas/Identifier",description:"Corresponds to `accountId` in Account entity"},statementId:{$ref:"#/components/schemas/Identifier",description:"Long-term persistent identity of the statement"},statementDate:{$ref:"#/components/schemas/DateString",description:"Date of the statement"},description:{type:"string",description:"Description of the statement"},links:{$ref:"#/components/schemas/HateoasLinks",description:"The HATEOAS links to retrieve this account statement, or to invoke other APIs.\n\n**Note:** Plaid only accepts one link object in this array.\n"},status:{description:"Availability status of statement",type:"string"}}},Statements:{title:"An array of statements",description:"A paginated array of account statements",type:"object",allOf:[{$ref:"#/components/schemas/PaginatedArray"},{type:"object",properties:{statements:{type:"array",description:"An array of statements, each with its own HATEOAS link to retrieve the account statement",items:{$ref:"#/components/schemas/Statement"}}},required:["statements"]}]},StatementPDF:{title:"Statement PDF",description:"An account statement PDF",type:"string",format:"binary"},Transaction:{title:"Transaction",description:"Base entity for financial transactions. For monetary amounts, Plaid expects a decimal amount, with two places to represent fractional values of the base currency, for example `101.99`.\n",type:"object",discriminator:{propertyName:"accountCategory"},properties:{accountCategory:{$ref:"#/components/schemas/AccountCategory",description:"The entity type of the account of this Transaction"},transactionId:{description:"Long term persistent identity of the transaction (unique to account). Plaid expects that `status: PENDING` and `status: POSTED` transactions have different IDs.",$ref:"#/components/schemas/Identifier"},referenceTransactionId:{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",$ref:"#/components/schemas/Identifier"},postedTimestamp:{description:"The date and time that the transaction was posted to the account.\n\nThis property is **required** by Plaid when `status=POSTED`.\nPlaid expects this property to be omitted when `status=PENDING`\n\nISO 8601 date-time in format `YYYY-MM-DDThh:mm:ss.nnn[Z|[+|-]hh:mm]` according to [IETF RFC3339](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6)\n",$ref:"#/components/schemas/Timestamp"},transactionTimestamp:{description:"The date and time that the transaction was added to the server backend systems. This acts as postedTimestamp when postedTimestamp is not present (pending transaction).\n\nISO 8601 date-time in format `YYYY-MM-DDThh:mm:ss.nnn[Z|[+|-]hh:mm]` according to [IETF RFC3339](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6)\n",$ref:"#/components/schemas/Timestamp"},description:{type:"string",description:"The description of the transaction"},debitCreditMemo:{$ref:"#/components/schemas/DebitCreditMemo"},category:{type:"string",description:"Transaction category, preferably MCC or SIC. Plaid expects your organization to provide MCC, if available and applicable.\n"},subCategory:{type:"string",description:"Transaction category detail"},status:{$ref:"#/components/schemas/TransactionStatus"},amount:{type:"number",description:"The amount of money in the account currency. The amount is an absolute value. Plaid relies on the `DebitCreditMemo` enum to determine the direction (and sign) of the transaction.\n"},foreignAmount:{type:"number",description:"The amount of money in the foreign currency. If this amount is specified, then Plaid expects that the `foreignCurrency` property is also set."},foreignCurrency:{$ref:"#/components/schemas/Iso4217Code",description:"The ISO 4217 code of the foreign currency"}},required:["accountCategory","debitCreditMemo","description","transactionId","transactionTimestamp","status","amount"]},Transactions:{title:"Transactions entity",description:"Optionally paginated array of transactions",type:"object",allOf:[{$ref:"#/components/schemas/PaginatedArray"},{type:"object",properties:{transactions:{description:"An array of transactions with entity type dependent on the account type ([deposit](#deposit-transaction), [investment](#investment-transaction), [line of credit](#line-of-credit-transaction) or [loan](#loan-transaction))",type:"array",items:{discriminator:{propertyName:"accountCategory",mapping:{DEPOSIT_ACCOUNT:"#/components/schemas/DepositTransaction",INVESTMENT_ACCOUNT:"#/components/schemas/InvestmentTransaction",LOAN_ACCOUNT:"#/components/schemas/LoanTransaction",LOC_ACCOUNT:"#/components/schemas/LineOfCreditTransaction"}},oneOf:[{$ref:"#/components/schemas/DepositTransaction"},{$ref:"#/components/schemas/InvestmentTransaction"},{$ref:"#/components/schemas/LineOfCreditTransaction"},{$ref:"#/components/schemas/LoanTransaction"}]}}},required:["transactions"]}]},AccountCategory:{title:"Account Category type",description:"The category of account. For example, annuity, commercial, deposit, insurance, investment, loan, or line of credit.",type:"string",enum:["ANNUITY_ACCOUNT","COMMERCIAL_ACCOUNT","DEPOSIT_ACCOUNT","INSURANCE_ACCOUNT","INVESTMENT_ACCOUNT","LOAN_ACCOUNT","LOC_ACCOUNT"]},AccountHolderRelationship:{title:"Account Holder Relationship",description:"Types of relationships between accounts and holders. Suggested values",type:"string",enum:["AUTHORIZED_USER","BUSINESS","FOR_BENEFIT_OF","FOR_BENEFIT_OF_PRIMARY","FOR_BENEFIT_OF_PRIMARY_JOINT_RESTRICTED","FOR_BENEFIT_OF_SECONDARY","FOR_BENEFIT_OF_SECONDARY_JOINT_RESTRICTED","FOR_BENEFIT_OF_SOLE_OWNER_RESTRICTED","POWER_OF_ATTORNEY","PRIMARY","PRIMARY_BORROWER","PRIMARY_JOINT","PRIMARY_JOINT_TENANTS","SECONDARY","SECONDARY_BORROWER","SECONDARY_JOINT","SECONDARY_JOINT_TENANTS","SOLE_OWNER","TRUSTEE","UNIFORM_TRANSFER_TO_MINOR"]},ContentTypes:{title:"Content Types",description:"Types of document formats. (Suggested values)",type:"string",enum:["application/pdf","image/gif","image/jpeg","image/tiff","image/png","application/json"]},DateString:{title:"Date String",description:"ISO 8601 full-date in format 'YYYY-MM-DD' according to [IETF RFC3339](https://xml2rfc.tools.ietf.org/public/rfc/html/rfc3339.html#anchor14)",type:"string",format:"date",maxLength:10,example:"2021-07-15"},HateoasLinks:{title:"HATEOAS links array",description:"An array of HATEOAS links",type:"array",items:{$ref:"#/components/schemas/HateoasLink"}},HttpAction:{title:"HTTP action type",description:"The HTTP method to use for requests",type:"string",enum:["GET","POST","PATCH","DELETE","PUT"]},Identifier:{title:"Identifier",description:"Value for a unique identifier",type:"string",maxLength:256,example:"someLongTermUniqueIDString"},Iso3166CountryCode:{title:"ISO 3166 Country Code",description:"ISO 3166-1 alpha-2 codes as of April 5, 2023, from officially assigned Country Codes on [ISO Online Browsing Platform](https://www.iso.org/obp/ui/). Change log is at [ISO 3166 Maintenance Agency](https://www.iso.org/fr/committee/48750.html?t=3V3rukDb61p05Wd6ojyTRvE0S3Yg_fZgUjrLjHWcd9-mDmTKHOGjbX3nEJ3SqHar&view=documents#section-isodocuments-top)\n",type:"string",enum:["AD","AE","AF","AG","AI","AL","AM","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CR","CU","CV","CW","CX","CY","CZ","DE","DJ","DK","DM","DO","DZ","EC","EE","EG","EH","ER","ES","ET","FI","FJ","FK","FM","FO","FR","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SV","SX","SY","SZ","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TR","TT","TV","TW","TZ","UA","UG","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","YE","YT","ZA","ZM","ZW"]},Iso4217Code:{title:"ISO 4217 Code",description:"Currency, fund and precious metal codes as of Jan. 1, 2023 per [ISO 4217 Currency Code Maintenance](https://www.six-group.com/en/products-services/financial-information/data-standards.html)\n",type:"string",enum:["AED","AFN","ALL","AMD","ANG","AOA","ARS","AUD","AWG","AZN","BAM","BBD","BDT","BGN","BHD","BIF","BMD","BND","BOB","BOV","BRL","BSD","BTN","BWP","BYN","BZD","CAD","CDF","CHE","CHF","CHW","CLF","CLP","CNY","COP","COU","CRC","CUC","CUP","CVE","CZK","DJF","DKK","DOP","DZD","EGP","ERN","ETB","EUR","FJD","FKP","GBP","GEL","GHS","GIP","GMD","GNF","GTQ","GYD","HKD","HNL","HTG","HUF","IDR","ILS","INR","IQD","IRR","ISK","JMD","JOD","JPY","KES","KGS","KHR","KMF","KPW","KRW","KWD","KYD","KZT","LAK","LBP","LKR","LRD","LSL","LYD","MAD","MDL","MGA","MKD","MMK","MNT","MOP","MRU","MUR","MVR","MWK","MXN","MXV","MYR","MZN","NAD","NGN","NIO","NOK","NPR","NZD","OMR","PAB","PEN","PGK","PHP","PKR","PLN","PYG","QAR","RON","RSD","RUB","RWF","SAR","SBD","SCR","SDG","SEK","SGD","SHP","SLE","SLL","SOS","SRD","SSP","STN","SVC","SYP","SZL","THB","TJS","TMT","TND","TOP","TRY","TTD","TWD","TZS","UAH","UGX","USD","USN","UYI","UYU","UYW","UZS","VED","VES","VND","VUV","WST","XAF","XAG","XAU","XBA","XBB","XBC","XBD","XCD","XDR","XOF","XPD","XPF","XPT","XSU","XTS","XUA","XXX","YER","ZAR","ZMW","ZWL"]},String255:{title:"String 255",description:"String of maximum length 255",type:"string",maxLength:255},String64:{title:"String 64",description:"String of maximum length 64",type:"string",maxLength:64},TelephoneNumberType:{title:"Telephone Number Type",description:"Purpose or type of telephone number",type:"string",enum:["HOME","BUSINESS","CELL","FAX"]},Timestamp:{title:"Timestamp",description:"ISO 8601 date-time in format `YYYY-MM-DDThh:mm:ss.nnn[Z|[+|-]hh:mm]` according to [IETF RFC3339](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6)",type:"string",format:"date-time",example:"2021-07-15T14:46:41.375Z"},AccountStatus:{title:"Account Status",description:"The status of an account.\n",type:"string",enum:["CLOSED","DELINQUENT","NEGATIVECURRENTBALANCE","OPEN","PAID","PENDINGCLOSE","PENDINGOPEN","RESTRICTED"]},AnnuityAccountType:{description:"The type of an account. Plaid consumes basic balance account information from the `accounts/{accountId}` endpoint for a subset of the possible account types described in the FDX specification.\n",type:"string",enum:["ANNUITY","FIXEDANNUITY","VARIABLEANNUITY"]},CommercialAccountType:{description:"The type of an account. Plaid consumes basic balance account information from the `accounts/{accountId}` endpoint for a subset of the possible account types described in the FDX specification.\n",type:"string",enum:["COMMERCIALDEPOSIT","COMMERCIALINVESTMENT","COMMERCIALLOAN","COMMERCIALLINEOFCREDIT"]},DepositAccountType:{description:"The type of an account. Plaid consumes basic balance account information from the `accounts/{accountId}` endpoint for a subset of the possible account types described in the FDX specification.\n",type:"string",enum:["CHECKING","SAVINGS","CD","ESCROW","MONEYMARKET","OTHERDEPOSIT"]},InvestmentAccountType:{description:"The type of an account. Plaid consumes basic balance account information from the `accounts/{accountId}` endpoint for a subset of the possible account types described in the FDX specification.\n",type:"string",enum:["401A","401K","403B","529","BROKERAGEPRODUCT","COVERDELL","DIGITALASSET","DEFINEDBENEFIT","ESOP","GUARDIAN","INSTITUTIONALTRUST","IRA","KEOGH","NONQUALIFIEDPLAN","OTHERINVESTMENT","ROLLOVER","ROTH","SARSEP","TAXABLE","TDA","TRUST","TERM","UGMA","UTMA"]},InsuranceAccountType:{description:"The type of an account. Plaid consumes basic balance account information from the `accounts/{accountId}` endpoint for a subset of the possible account types described in the FDX specification.\n",type:"string",enum:["LONGTERMDISABILITY","SHORTTERMDISABILITY","UNIVERSALLIFE","WHOLELIFE"]},DebitCreditMemo:{title:"DebitCreditMemo",description:"The posting type of a transaction. The transaction amount is an absolute value, and this parameter indicates the direction of the transaction. Plaid expects `DEBIT` or `CREDIT` for this enum. Plaid expects that your organization indicates the `MEMO` (i.e., pending) status using the `status` field in the transaction response rather than this field. If your organization sends `MEMO` in this `DebitCreditMemo` enum, Plaid handles this value the same as it handles `DEBIT`. * `DEBIT`: An amount leaves the account * `CREDIT`: An amount enters the account * `MEMO`: A pending transaction to be completed at the end of this day.\n",type:"string",enum:["CREDIT","DEBIT","MEMO"]},FiAttribute:{title:"FI Attribute entity",description:"Financial Institution provider-specific attribute",type:"object",properties:{name:{type:"string",description:"The attribute's name"},value:{type:"string",description:"The attribute's value"}}},HoldingSubType:{title:"Holding SubType",description:"The subtype of an investment holding. Plaid expects you to return `OTHER` and set the `holdingSubType` to indicate cash-type holdings (CASH, MONEYMARKET).\n",type:"string",enum:["CASH","MONEYMARKET"]},HoldingType:{title:"Holding Type",description:"Plaid maps the holding type to the Plaid [security type](https://plaid.com/docs/api/products/investments/#investments-transactions-get-response-securities-type). Plaid expects you to return `OTHER` and set the `holdingSubType` to indicate cash-type holdings (CASH, MONEYMARKET).\n",type:"string",enum:["ANNUITY","BOND","CD","DIGITALASSET","MUTUALFUND","OPTION","OTHER","STOCK"]},InterestRateType:{title:"Interest Rate Type",description:"Specifies whether an interest rate is fixed or variable. This information is helpful for personal financial planning and advising. For example, it affects the potential benefits of refinancing, and informs whether a mortgage payment is expected to change in the future",type:"string",enum:["FIXED","VARIABLE"]},InvestmentTransactionType:{title:"Investment Transaction Type",description:"The type of an investment transaction.\nPlaid maps these enums to Plaid [investment transaction types](https://plaid.com/docs/api/accounts/#investment-transaction-types-schema).\nPlaid doesn't map these enums to Plaid-specific transaction subtypes.\nPlaid maps these enums as follows:\n\n* ADJUSTMENT - fee\n* ATM - cash\n* CASH - cash\n* CHECK - cash\n* CLOSURE - Plaid suggests using SOLDTOCLOSE, PURCHASETOCLOSE, OPTIONEXERCISE or OPTIONEXPIRATION to indicate the specific type of closure, instead of using this enum.\n* CLOSUREOPT - Plaid suggests using SOLDTOCLOSE, PURCHASETOCLOSE, OPTIONEXERCISE or OPTIONEXPIRATION to indicate the specific type of closure, instead of using this enum.\n* CONTRIBUTION - buy (if transaction involves a security) or cash\n* DEP - cash\n* DEPOSIT - cash\n* DIRECTDEBIT - cash\n* DIRECTDEP - cash\n* DIV - cash\n* DIVIDEND - cash\n* DIVIDENDREINVEST - buy\n* EXPENSE - cash\n* FEE - fee\n* INCOME - cash\n* INTEREST - cash\n* INVEXPENSE - cash\n* JRNLFUND - transfer\n* JRNLSEC - transfer\n* MARGININTEREST - cash\n* OPTIONEXERCISE - transfer\n* OPTIONEXPIRATION - transfer\n* OTHER - cash - (unclassified)\n* PAYMENT - cash\n* POS - cash\n* PURCHASED - buy\n* PURCHASEDTOCOVER - buy\n* PURCHASETOCLOSE - buy\n* PURCHASETOOPEN - buy\n* REINVESTOFINCOME - buy\n* REPEATPMT - cash\n* RETURNOFCAPITAL - cash\n* SOLD - sell\n* SOLDTOCLOSE - sell\n* SOLDTOOPEN - sell\n* SPLIT - transfer\n* SRVCHG - fee\n* TRANSFER - transfer\n* XFER - transfer\n",type:"string",enum:["ADJUSTMENT","ATM","CASH","CHECK","CLOSURE","CLOSUREOPT","CONTRIBUTION","DEP","DEPOSIT","DIRECTDEBIT","DIRECTDEP","DIV","DIVIDEND","DIVIDENDREINVEST","EXPENSE","FEE","INCOME","INTEREST","INVEXPENSE","JRNLFUND","JRNLSEC","MARGININTEREST","OPTIONEXERCISE","OPTIONEXPIRATION","OTHER","PAYMENT","POS","PURCHASED","PURCHASEDTOCOVER","PURCHASETOCLOSE","PURCHASETOOPEN","REINVESTOFINCOME","REPEATPMT","RETURNOFCAPITAL","SOLD","SOLDTOCLOSE","SOLDTOOPEN","SPLIT","SRVCHG","TRANSFER","XFER"]},LoanAccountType:{description:"The type of an account. Plaid consumes basic balance account information from the `accounts/{accountId}` endpoint for a subset of the possible account types described in the FDX specification.\n",type:"string",enum:["AUTOLOAN","HOMEEQUITYLOAN","INSTALLMENT","LOAN","MILITARYLOAN","MORTGAGE","PERSONALLOAN","SMBLOAN","STUDENTLOAN"]},LoanTransactionType:{title:"Loan Transaction Type",description:"The type of a loan transaction. Plaid passes through all loan transaction types.\n* `ADJUSTMENT`: Adjustment or correction.
\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* `LUMP_SUM_PAYMENT`: A single payment of money, as opposed to a series of payments made over time.
\n* `SKIP_PAYMENT`: Payment that satisfies deferral of a required payment.
\n* `DOUBLE_UP_PAYMENT`: Additional payment beyond the required payment to reduce the principal.
\n* `PAYOFF`: Payment that satisfies the terms of the mortgage loan and completely pays off the debt.
\n",type:"string",enum:["ADJUSTMENT","FEE","INTEREST","PAYMENT","LUMP_SUM_PAYMENT","SKIP_PAYMENT","DOUBLE_UP_PAYMENT","PAYOFF"]},LineOfCreditAccountType:{description:"The type of an account. Plaid consumes basic balance account information from the `accounts/{accountId}` endpoint for a subset of the possible account types described in the FDX specification.\n",type:"string",enum:["LINEOFCREDIT","CHARGE","CREDITCARD","HOMELINEOFCREDIT"]},LineOfCreditTransactionType:{title:"Line-Of-Credit Transaction Type",description:"The type of a line of credit (LOC) transaction. Plaid passes through all LOC transaction types.\n",type:"string",enum:["ADJUSTMENT","CHECK","FEE","INTEREST","PAYMENT","WITHDRAWAL","PURCHASE"]},PaymentNetworkType:{title:"Payment Network Type",description:"Suggested values for Payment Network Type. `US_` refers to the USA, and `CA_` refers to Canada.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
ValueDescription
CA_ACSSAutomated Clearing House Settlement System
CA_LVTSLarge-Value Transfer System
US_ACHAutomated Clearing House, also called Fed ACH network (mostly small banks)
US_CHIPSClearinghouse Interbank Payments System. Also called Clearing House ACH network (primarily big banks)
US_FEDNOWFederal Reserve Instant Payment System.
US_FEDWIREFedwire Funds Service.
US_RTPUS Real Time Payments System.
\n",type:"string",enum:["CA_ACSS","CA_LVTS","US_ACH","US_CHIPS","US_FEDNOW","US_FEDWIRE","US_RTP"]},SecurityId:{title:"Security ID entity",description:"Unique identifier for a security",type:"object",properties:{id:{$ref:"#/components/schemas/Identifier",description:"Security identifier"},idType:{$ref:"#/components/schemas/SecurityIdType",description:"Plaid consumes solely CUSIP, ISIN, and SEDOL."}},required:["id","idType"]},SecurityIdType:{title:"Security ID Type",description:"Plaid consumes solely CUSIP, ISIN, and SEDOL.\nThis field, along with `securityId` are **required** unless `symbol` is provided.\n**Note:** If `securityIdType` is provided, `securityId` is required.\n",type:"string",enum:["CINS","CMC","CME","CUSIP","ISIN","ITSA","NASDAQ","SEDOL","SICC","VALOR","WKN"]},SecurityType:{title:"Security Type",description:"The type of a security",type:"string",enum:["BOND","DEBT","DIGITALASSET","MUTUALFUND","OPTION","OTHER","STOCK","SWEEP"]},TransactionStatus:{title:"Transaction Status",description:"The status of a transaction. Plaid consumes solely the `PENDING` and `POSTED` enums,\nand treats `MEMO` and `AUTHORIZATION` as if they were `PENDING`. Plaid expects that pending and posted transactions\nhave different `transactionIds`.\n* `AUTHORIZATION`\n* `MEMO` - A pending transaction to be completed at the end of this day\n* `PENDING` - A pending transaction\n* `POSTED` - A posted transaction\n",type:"string",enum:["AUTHORIZATION","MEMO","PENDING","POSTED"]},UnitType:{title:"Unit Type",description:"The units of an investment transaction",type:"string",enum:["CURRENCY","SHARES"]},AccountClosed:{title:"705: Account is Closed",allOf:[{$ref:"#/components/schemas/Error"},{example:{code:705,message:"Account is closed",debugMessage:"Operation is not supported by the closed account"}}]},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",required:["code","message"],properties:{code:{type:"string",description:"The FDX error code: A 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"},debugMessage:{type:"string",description:"Message used to debug the root cause of the error. Contents should not be used in consumer's business logic. Can change at any time and should only be used for consumer to communicate with the data provider about an issue. Provider can include an error GUID in message for their use."}}},ConsentRequest:{title:"Consent Request entity",description:"Details of request to create new consent grant. This schema is to be used in POST request to Data Provider\u2019s 'POST /par' endpoint using the Pushed Authorization Request (PAR) method",type:"object",properties:{durationType:{description:"The type of duration of the consent",$ref:"#/components/schemas/ConsentDurationType"},durationPeriod:{description:"The consent duration in days from day of original grant",$ref:"#/components/schemas/ConsentDurationPeriod"},lookbackPeriod:{description:"Period, in days, for which historical data may be requested; measured from request time, not grant time",$ref:"#/components/schemas/LookbackPeriod"},resources:{description:"The requested resource entities",type:"array",items:{$ref:"#/components/schemas/ConsentRequestedResource"}}}},ConsentDurationType:{title:"Consent Duration Type",description:"Duration of the Consent Grant, per FDX UX Guidelines v1.0 (pp 18 - 20)",type:"string",enum:["ONE_TIME","PERSISTENT","TIME_BOUND"]},ConsentDurationPeriod:{title:"Consent Duration Period",description:"Consent duration, in days, from day of original grant",type:"integer"},LookbackPeriod:{title:"Lookback Period",description:"Period, in days, for which historical data may be requested; period is measured from request time, not grant time",type:"integer"},ConsentRequestedResource:{title:"Consent Requested Resource entity",description:"Details of requested resource and data clusters",type:"object",properties:{resourceType:{description:"Type of resource permission requested",$ref:"#/components/schemas/ConsentResourceType"},dataClusters:{description:"Names of clusters of data elements requested",type:"array",items:{$ref:"#/components/schemas/DataCluster"},minItems:1}},required:["resourceType","dataClusters"]},ConsentResourceType:{title:"Consent Resource Type",description:"Resource for which data may be permissioned; can be extended to support additional types of resources",type:"string",enum:["ACCOUNT","CUSTOMER","DOCUMENT"]},DataCluster:{title:"Data Cluster",description:"Name of permissioned Data Cluster. For Data Cluster definitions refer to the Consent Components > Data Clusters section of the User Experience Guidelines document included in the FDX API",type:"string",enum:["ACCOUNT_BASIC","ACCOUNT_DETAILED","ACCOUNT_PAYMENTS","CUSTOMER_CONTACT","CUSTOMER_PERSONAL","INVESTMENTS","STATEMENTS","TRANSACTIONS"]}}}}},d=function(e){return(0,o.jsx)("div",{className:"no-top-margin",children:(0,o.jsx)("div",{className:"api-container",children:(0,o.jsx)(s(),{full:!0,children:(0,o.jsx)(i.RedocStandalone,{spec:u[e.version],options:{nativeScrollbars:!0,hideDownloadButton:!0,disableSearch:!0,theme:{sidebar:{width:"0px"}}},onLoaded:function(){var e=window.location.hash;""!==e&&p.OK.scrollTo(e.slice(1),{offset:-100})}})})})})};d.propTypes={version:c().oneOf(["4.6","5.0","5.1","5.2","5.3","6.0"])};var l=d},4033:function(e,t,n){"use strict";n.d(t,{Z:function(){return u}});var o,i,a=n(5893),s=n(1071),r=n(7294);function c(){return c=Object.assign||function(e){for(var t=1;t\n
  • Get account balances for deposit accounts. For example, `CHECKING` or `SAVINGS`. For more information about how Plaid uses this information, see [Plaid Balance API](https://plaid.com/docs/api/products/balance/).
  • \n
  • Get account liabilities for `STUDENTLOAN`, `MORTGAGE`, and `CREDITCARD` loan accounts. For more information about how Plaid uses this information, see [Plaid Liabilities API](https://plaid.com/docs/api/products/liabilities/).
  • \n
  • Get balances and holdings for investment accounts. For more information about how Plaid uses this information, see [Plaid Investments API](https://plaid.com/docs/investments/).
  • \n\n\nSee the response schema below for a full list of possible parameters for each account type.\n",security:[{openIdConnect:["Account"]},{oauth2:["Account"]}],parameters:[{name:"accountId",in:"path",description:"Account identifier, found in the `GET /accounts` endpoint response. Plaid expects the ID to be a different value from the account number.\n",required:!0,schema:{type:"string"}}],responses:{200:{description:"The full details of an investment, loan, deposit, or line of credit account",content:{"application/json":{schema:{$ref:"#/components/schemas/AccountWithDetails"}}}}}}},"/accounts/{accountId}/contact":{get:{operationId:"getAccountContact",tags:["Personal Information"],description:"Get contact information on the account.\n\nPlaid links contact information to accounts, rather than to users. Plaid consumes multiple holders and their contact information for the account, but doesn't attempt to correlate holders to their respective contact information. For more information about Plaid's identity model, see [Plaid Identity API](https://plaid.com/docs/api/products/identity/).\n",summary:"Get an account's contact information",parameters:[{name:"accountId",in:"path",description:"Account identifier, found in the `GET /accounts` endpoint response. Plaid expects the ID to be a different value from the account number.\n",required:!0,schema:{type:"string"}}],security:[{openIdConnect:["Customer"]},{oauth2:["Customer"]}],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:["Payment Networks Information"],description:"Get payment networks supported by an account, for example ACH (Automated Clearing House). For more information about how Plaid uses this information, see the [Plaid Auth API](https://plaid.com/docs/api/products/auth/).\n",summary:"Get payment networks supported by the account",security:[{openIdConnect:["Account"]},{oauth2:["Account"]}],parameters:[{name:"accountId",in:"path",description:"Account identifier, found in the `GET /accounts` endpoint response. Plaid expects the ID to be a different value from the account number.",required:!0,schema:{type:"string"}},{name:"offset",in:"query",description:"Plaid receives this value from your organization's latest response in a paginated response, and returns it to in a new request to get the next page. Your organization omits `nextOffset` in the response to indicate the last page.\n",schema:{type:"string",example:"qwer123454q2f"}},{name:"limit",in:"query",description:"Number of elements that the API consumer wishes to receive. Plaid has a default limit of 100 elements. If this value differs from your organization's limit for the number of items to send in one response, then pick the lower of the two different limits and use the lower limit to define the number of items you send on each page of a paginated response. Plaid then gets the next page by making a new request with the opaque `nextOffset` field that your organization returned in the latest response, until your organization omits `nextOffset` in the response to indicate the last page.\n",schema:{type:"integer"}}],responses:{200:{description:"Information required to execute a payment transaction against this account",content:{"application/json":{schema:{properties:{page:{$ref:"#/components/schemas/PageMetadata"},paymentNetworks:{type:"array",items:{$ref:"#/components/schemas/AccountPaymentNetwork"}}},required:["paymentNetworks"]},examples:{"example-1":{page:{nextOffset:25},paymentNetworks:[{bankId:"010088889",identifier:"1111222233335820",type:"US_ACH",transferIn:!0,transferOut:!0}]}}}}}}}},"/accounts/{accountId}/transactions":{get:{operationId:"searchForAccountTransactions",tags:["Account Transactions"],description:"List all account transactions. Plaid always queries this endpoint using a `startTime` and an `endTime`, for example, `/accounts/{accountId}/transactions?startTime=2022-01-30&endTime=2022-05-30`, and expects the time filters to be based on the `postedTimestamp`.\n\nPlaid consumes data from this endpoint for the following account types only:\n
      \n
    • Loan
    • \n
    • Investment
    • \n
    • Deposit
    • \n
    • Line of credit (LOC)
    • \n
    \n",summary:"Search for account transactions",security:[{openIdConnect:["Transactions"]},{oauth2:["Transactions"]}],parameters:[{name:"accountId",in:"path",description:"Account identifier, found in the `GET /accounts` endpoint response. Plaid expects the ID to be a different value from the account number.",required:!0,schema:{type:"string"}},{name:"startTime",in:"query",description:"Start time for use in retrieval of elements (ISO 8601). For transactions, Plaid expects this to filter by the `postedTimestamp`.",schema:{type:"string"}},{name:"endTime",in:"query",description:"End time for use in retrieval of elements (ISO 8601). For transactions, Plaid expects this to filter by the `postedTimestamp`.",schema:{type:"string"}},{name:"offset",in:"query",description:"Plaid receives this value from your organization's latest response in a paginated response, and returns it to in a new request to get the next page. Your organization omits `nextOffset` in the response to indicate the last page.\n",schema:{type:"string",example:"qwer123454q2f"}},{name:"limit",in:"query",description:"Number of elements that the API consumer wishes to receive. Plaid has a default limit of 100 elements. If this value differs from your organization's limit for the number of items to send in one response, then pick the lower of the two different limits and use the lower limit to define the number of items you send on each page of a paginated response. Plaid then gets the next page by making a new request with the opaque `nextOffset` field that your organization returned in the latest response, until your organization omits `nextOffset` in the response to indicate the last page.\n",schema:{type:"integer"}}],responses:{200:{description:"Paginated collection of transactions. Plaid consumes the following transaction types: InvestmentTransaction, DepositTransaction, LoanTransaction, or LocTransaction\n",content:{"application/json":{schema:{$ref:"#/components/schemas/Transactions"},examples:{"example-1":{value:{page:{nextOffset:"2"},transactions:[{depositTransaction:{checkNumber:1234,payee:"ACME llc",transactionId:"depositTransaction000000001",postedTimestamp:"2022-04-06T00:00:00.000Z",transactionTimestamp:"2022-04-05T00:00:00.000Z",description:"check for latest ACME invoice",debitCreditMemo:"DEBIT",status:"PENDING",amount:400}},{depositTransaction:{transactionId:"depositTransaction000000002",postedTimestamp:"2022-04-07T00:00:00.000Z",transactionTimestamp:"2022-04-07T00:00:00.000Z",description:"reconciliation/adjustment of bank statement error",debitCreditMemo:"DEBIT",status:"POSTED",amount:.8}}]}}}}}}}}},"/customers/current":{get:{operationId:"getCustomerInfo",tags:["Personal Information"],description:"Get the ID of the customer within the authorization scope.\n**Note:**\n
      \n
    • If you use OIDC authentication (recommended) you do not need to implement this endpoint as Plaid identifies the customer using the OIDC `id_token` response.
    • \n
    • If you use OAuth2 authentication, Plaid uses this endpoint as an alternate method of customer identification.
    • \n
    ",summary:"Get current authenticated customer ID",security:[{openIdConnect:[]},{oauth2:[]}],responses:{200:{description:"Data describing current authenticated customer",content:{"application/json":{schema:{$ref:"#/components/schemas/CustomerWithId"},examples:{"example-1":{value:{customerId:"someLongTermUniqueIDString"}}}}}}}}}},components:{securitySchemes:{openIdConnect:{type:"openIdConnect",description:"This API uses an [OpenID Connect (OIDC) authentication flow](/core-exchange/authentication) and accepts the resulting [access token](/core-exchange/authentication#response-parameters) as a bearer token. For example, `curl -H 'Authorization: Bearer '`.\n",openIdConnectUrl:"https://www.your-organization.com/.well-known/openid-configuration"},oauth2:{type:"oauth2",description:"This API uses an [OAuth2.0 authorization code flow](https://auth0.com/docs/get-started/authentication-and-authorization-flow/authorization-code-flow) and accepts the resulting access token as a bearer token. For example, `curl -H 'Authorization: Bearer '`.\n",flows:{authorizationCode:{authorizationUrl:"https://www.your-organization.com/authorize",tokenUrl:"https://www.your-organization.com/token",scopes:{Account:"(optional) Read account data",Customer:"(optional) Read customer data",Transactions:"(optional) Read transaction data"}}}}},schemas:{PageMetadata:{title:"Page Metadata",description:"Contains opaque identifier, `nextoffset`, for paginated result sets. The `nextOffset` ID doesn't need to be numeric or have any specific pattern. In other words, your organization can implement this however you prefer. The presence of this offset indicates that there's at least one more page of data available. The absence of this offset indicates that there are no more pages of data left in this paginated array. The API consumer returns this in the `offset` parameter in a new request to get the next page in the response array.\n",type:"object",properties:{nextOffset:{type:"string",example:"qwer123454q2f",description:"Opaque offset identifier."}}},PaginatedArray:{title:"Paginated Array",description:"Base class for results that may be paginated",type:"object",properties:{page:{$ref:"#/components/schemas/PageMetadata"}}},Accounts:{title:"Accounts entity",description:"An optionally paginated array of accounts",type:"object",allOf:[{$ref:"#/components/schemas/PaginatedArray"},{type:"object",properties:{accounts:{type:"array",description:"An array of accounts. May include accounts of any of the following types: [deposit](#deposit-account), [investment](#investment-account), [line of credit](#line-of-credit-account), [loan](#loan-account)\n\n**Note:** Each object in the accounts array is expected to contain at least one account type.\n",minItems:1}},required:["accounts"]}]},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:{$ref:"#/components/schemas/String64",description:"State or province"},postalCode:{type:"string",maxLength:10,description:"Postal code"},country:{$ref:"#/components/schemas/Iso3166CountryCode",description:"Country code"}},required:["line1","city","country"]},CustomerWithId:{title:"Customer entity.",description:"Represents a customer. Plaid-specific schema created to hold one property, the `customerId` property of the FDX `Customer` schema.\n",type:"object",properties:{customerId:{$ref:"#/components/schemas/Identifier",description:"Long-term persistent identity of the customer. This identity must be unique within your organization. Plaid consumes this customer ID if your organization uses OAuth2 instead of OIDC to secure the API. Plaid expects your organization to issue the ID as a consistent, static, opaque, unique identifier for the user\n"}},required:["customerId"]},CustomerWithName:{title:"Customer entity",description:"Represents a customer. Plaid-specific schema created to hold one property, the `name` property of the FDX `Customer` schema.\n",type:"object",properties:{name:{$ref:"#/components/schemas/CustomerName"}},required:["name"]},CustomerName:{title:"Customer Name entity",description:"The name of an individual in their role as a customer. Plaid expects at least one populated name field. If any field is missing (for example, no first name), then you respond with an empty string for that field.\n",type:"object",allOf:[{$ref:"#/components/schemas/IndividualName"},{type:"object",properties:{prefix:{description:"Name prefix, e.g. Mr.",type:"string"}}}]},DateString:{title:"Date String",description:"ISO 8601 full-date in format 'YYYY-MM-DD' according to [IETF RFC3339](https://xml2rfc.tools.ietf.org/public/rfc/html/rfc3339.html#anchor14)",type:"string",format:"date",maxLength:10,example:"2021-07-15"},DeliveryAddress:{title:"Delivery Address",description:"A delivery address and its location type",type:"object",allOf:[{$ref:"#/components/schemas/Address"}]},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"}},required:["first","last"]},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,description:"Country calling codes defined by ITU-T recommendations E.123 and E.164"},number:{type:"string",maxLength:15,pattern:"\\d+",description:"Telephone subscriber number defined by ITU-T recommendation E.164"}},required:["number","type"]},AccountContact:{title:"Account Contact entity",description:"Details used to verify an account",type:"object",properties:{holders:{type:"array",items:{$ref:"#/components/schemas/AccountHolder"},minItems:1,description:"Owners of the account. Note that while the [FDX specification](https://financialdataexchange.org) enables associating holders and their contact information in the full `AccountHolder` schema, Plaid doesn't consume these associations. Instead, Plaid consumes limited information for each `AccountHolder` and doesn't associate contact information such as emails, addresses, or telephone numbers to account holders. For more information about Plaid's data model for account contact information, see [Identity](https://plaid.com/docs/api/products/identity/).\n",example:[{relationship:"SECONDARY",name:{first:"Ernest",middle:"Miller",last:"Hemingway",suffix:"IV"}},{relationship:"PRIMARY_JOINT",name:{first:"Maya",last:"Angelou",middle:"Annie"}}]},emails:{type:"array",items:{type:"string"},minItems:1,description:"Email addresses associated with the account.\n",example:["ernest.m.hemingway@domain.tld","m.angelou@domain.tld"]},addresses:{type:"array",items:{$ref:"#/components/schemas/DeliveryAddress"},minItems:1,description:"Physical mail addresses associated with the account.\n",example:[{line1:"1850 N Clark St",line2:"Apartment 103",city:"Chicago",region:"IL",postalCode:"60614",country:"US"},{line1:"2014 N Main St",city:"San Francisco",region:"CA",postalCode:"94105",country:"US"}]},telephones:{type:"array",items:{$ref:"#/components/schemas/TelephoneNumber"},minItems:1,description:"Telephone numbers associated with the account.\n",example:[{type:"HOME",country:"1",number:"3127771926"},{type:"CELL",country:"53",number:"45915607"},{type:"HOME",country:"1",number:"4157771926"}]}},required:["holders","emails","addresses","telephones"]},AccountDescriptor:{title:"Account Descriptor entity",description:"This descriptor provides minimal information about the account for use in lightweight arrays",type:"object",properties:{accountId:{description:"Long-term persistent identity of the account, though not an account number. This identity must be unique within your organization.\n",$ref:"#/components/schemas/Identifier"},accountNumberDisplay:{description:"Account display number for the end user's handle at the owning financial institution. Plaid expects that the last 4 digits of this masked number correspond to the last 4 digits of the account number.\n",type:"string",example:"4321"},productName:{type:"string",description:"Marketed product name for this account. Used in UIs to assist in account selection"},nickname:{description:"Name given by the user. Used in UIs to assist in account selection. Plaid recommends returning this only if the account permits user renaming.\n",type:"string"},status:{type:"string",description:"Account status",enum:["OPEN","CLOSED","PENDINGOPEN","PENDINGCLOSE","DELINQUENT","PAID","NEGATIVECURRENTBALANCE"]},currency:{$ref:"#/components/schemas/Currency",description:"Account currency"}},required:["accountId","productName","status","currency"]},AccountHolder:{title:"Account Holder entity",type:"object",allOf:[{$ref:"#/components/schemas/CustomerWithName"},{type:"object",properties:{relationship:{$ref:"#/components/schemas/AccountHolderRelationship",description:"Customer's relationship to the account"}}}]},AccountPaymentNetwork:{title:"Payment Network Supported by Account",description:"This provides details required to execute a transaction against the account within the payment network",type:"object",properties:{bankId:{type:"string",description:"Bank identifier used by the payment network ie. Routing Number"},identifier:{type:"string",description:"The number used to identify the account within the payment network."},type:{$ref:"#/components/schemas/PaymentNetworkType"},transferIn:{type:"boolean",description:"Can transfer funds to the account using this information. Plaid expect that this value represents the account's current ability to be credited through a payment network.\nPlaid recommends dynamically updating this value, for example to represent if the account is locked or not.\n\n**Note:** Both `transferIn` and `transferOut` must be `true` in order for the account to support ACH.\n"},transferOut:{type:"boolean",description:"Can transfer funds from the account using this information. Plaid expect that this value represents the account's current ability to be debited through a payment network.\nPlaid recommends dynamically updating this value, for example to represent if the account is locked or not.\n\n**Note:** Both `transferIn` and `transferOut` must be `true` in order for the account to support ACH.\n"}},required:["bankId","identifier","type","transferIn","transferOut"]},AccountWithDescriptor:{title:"Account With Descriptor entity",description:"This provides an instance of an account without full details",type:"object",anyOf:[{type:"object",title:"Deposit Account",properties:{depositAccount:{$ref:"#/components/schemas/DepositAccountDescriptor",description:"A deposit account. For example, a checking, savings or money market account.\nPlaid consumes more detailed information for `CHECKING` and `SAVINGS` accounts.\n\nThe `accountType` field for deposit accounts may be set to any of the following:\n\n
      \n
    • `CHECKING`: A deposit account held at a financial institution that allows withdrawals and deposits.
    • \n
    • `SAVINGS`: An interest-bearing deposit account held at a bank or other financial institution.
    • \n
    • `CD`: A certificate of deposit (CD) is a product offered by banks and credit unions that provides an interest rate premium in exchange for the customer agreeing to leave a lump-sum deposit untouched for a predetermined period of time.
    • \n
    • `COMMERCIALDEPOSIT`: A deposit account for commercial customers, for example a business trust account.
    • \n
    • `ESCROW`: A contractual arrangement in which a third party (the stakeholder or escrow agent) receives and disburses money or property for the primary transacting parties, with the disbursement dependent on conditions agreed to by the transacting parties.
    • \n
    • `MONEYMARKET`: A deposit account that pays interest based on current interest rates in the money markets.
    • \n
    • `OTHERDEPOSIT`: Use when none of the listed enums apply.
    • \n
    \n"}},required:["depositAccount"],additionalProperties:!1},{type:"object",title:"Loan Account",properties:{loanAccount:{$ref:"#/components/schemas/LoanAccountDescriptor",description:"A loan account. For example, mortgage, student loan or auto loan.\nPlaid consumes more detailed information for `MORTGAGE` and `STUDENTLOAN` accounts.\n\nThe `accountType` field for loan accounts may be set to any of the following:\n\n
      \n
    • AUTOLOAN: A type of loan used to finance a car purchase.
    • \n
    • `COMMERCIALLOAN`: A preset borrowing limit that can be used at any time.
    • \n
    • `HOMEEQUITYLOAN`: A type of loan in which the borrower uses the equity of his or her home as collateral.
    • \n
    • `INSTALLMENT`: A type of agreement or contract involving a loan that is repaid over time with a set number of scheduled payments.
    • \n
    • `LOAN`: The lending of money by one or more individuals, organizations, or other entities to other individuals, organizations etc.
    • \n
    • `MILITARYLOAN`: A military loan.
    • \n
    • `MORTGAGE`: A type of loan you can use to buy or refinance a home.
    • \n
    • `PERSONALLOAN`: A type of debt that is not protected by a guarantor, or collateralized by a lien on specific assets of the borrower.
    • \n
    • `SMBLOAN`: A small/medium business loan.
    • \n
    • `STUDENTLOAN`: A type of loan designed to help students pay for post-secondary education and the associated fees, such as tuition, books and supplies, and living expenses.
    • \n
    \n"}},required:["loanAccount"],additionalProperties:!1},{type:"object",title:"Line of Credit Account",properties:{locAccount:{$ref:"#/components/schemas/LocAccountDescriptor",description:"A line-of-credit account. For example, a credit card or home equity line of credit.\nPlaid consumes more detailed information for `CREDITCARD` accounts.\n\nThe `accountType` field for line of credit accounts may be set to any of the following:\n\n
      \n
    • `LINEOFCREDIT`: A credit facility extended by a bank or other financial institution to a government, business or individual customer that enables the customer to draw on the facility when the customer needs funds.
    • \n
    • `CHARGE`: An account to which goods and services may be charged on credit.
    • \n
    • `COMMERCIALLINEOFCREDIT`: An account with a preset borrowing limit that can be used at any time.
    • \n
    • `CREDITCARD`: Allows cardholders to borrow funds with which to pay for goods and services with merchants that accept cards for payment.
    • \n
    • `HOMELINEOFCREDIT`: A loan in which the lender agrees to lend a maximum amount within an agreed period, where the collateral is the borrower's equity in their house.
    • \n
    \n"}},required:["locAccount"],additionalProperties:!1},{type:"object",title:"Investment Account",properties:{investmentAccount:{$ref:"#/components/schemas/InvestmentAccountDescriptor",description:"An investment account. For example, a 401K or IRA.\nPlaid consumes the same details for all investment accounts.\n\nThe `accountType` field for investment accounts may be set to any of the following:\n\n
      \n
    • `401A`: An employer-sponsored money-purchase retirement plan that allows dollar or percentage-based contributions from the employer, the employee, or both.
    • \n
    • `401K`: An employer-sponsored defined-contribution pension account defined in subsection 401(k) of the Internal Revenue Code.
    • \n
    • `403B`: A U.S. tax-advantaged retirement savings plan available for public education organizations, some non-profit employers (only Internal Revenue Code 501(c)(3) organizations), cooperative hospital service organizations, and self-employed ministers in the United States.
    • \n
    • `529`: A tax-advantaged savings plan designed to help pay for education.
    • \n
    • `BROKERAGEPRODUCT`: Investment management offered by a licensed brokerage firm that places trades on behalf of the customer, utilizing any number of investment options.
    • \n
    • `COMMERCIALINVESTMENT`: Investment Account for Commercial Customers. e.g. Commercial Brokerage Account.
    • \n
    • `COVERDELL`: A trust or custodial account set up in the United States solely for paying qualified education expenses for the designated beneficiary of the account.
    • \n
    • `DIGITALASSET`: An account containing digital assets.
    • \n
    • `DEFINEDBENEFIT`: An employer-sponsored retirement plan where employee benefits are computed using a formula that considers several factors, such as length of employment and salary history.
    • \n
    • `GUARDIAN`: An account of a child in the parent's name, with legal title to the assets in the account, as well as all capital gains and tax liabilities produced from the account belonging to the parent.
    • \n
    • `INSTITUTIONALTRUST`: An institutional trust account.
    • \n
    • `IRA`: An individual retirement account (IRA) is a tax-advantaged account that individuals use to save and invest for retirement.
    • \n
    • `KEOGH`: A tax-deferred pension plan available to self-employed individuals or unincorporated businesses for retirement purposes.
    • \n
    • `NONQUALIFIEDPLAN`: A type of tax-deferred employer-sponsored retirement plan that falls outside of ERISA guidelines.
    • \n
    • `OTHERINVESTMENT`: Use when none of the listed enums apply.
    • \n
    • `ROLLOVER`: An account containing investments rolled over from an employee-sponsored account.
    • \n
    • `ROTH`: An individual retirement account that offers tax-free growth and tax-free withdrawals in retirement.
    • \n
    • `SARSEP`: A simplified employee pension (SEP) plan set up before 1997 that includes a salary reduction arrangement.
    • \n
    • `TAXABLE`: A taxable investment account.
    • \n
    • `TDA`: TreasuryDirect Account.
    • \n
    • `TRUST`: A type of financial account that is opened by an individual and managed by a designated trustee for the benefit of a third party in accordance with agreed-upon terms.
    • \n
    • `TERM`: Life insurance that provides coverage at a fixed rate of payments for a limited period of time.
    • \n
    • `UGMA`: Uniform Gifts to Minors Act account.
    • \n
    • `UTMA`: Uniform Transfers to Minors Act account.
    • \n
    \n"}},required:["investmentAccount"],additionalProperties:!1},{type:"object",title:"Insurance Account",properties:{insuranceAccount:{$ref:"#/components/schemas/InsuranceAccountDescriptor",description:"An insurance account. For example, whole life insurance or short-term disability.\n\nThe `accountType` field for insurance accounts may be set to any of the following:\n\n
      \n
    • `LONGTERMDISABILITY`: Insurance that replaces a portion of the policyholder's income due to a disability for an extended period of time, usually more than a year.
    • \n
    • `SHORTTERMDISABILITY`: Insurance that replaces a portion of the policyholder's income due to a disability for a short period of time, usually less than a year.
    • \n
    • `UNIVERSALLIFE`: A type of a cash value life insurance where the excess of premium payments above the current cost of insurance is credited to the cash value of the policy, which in turn is credited each month with interest.
    • \n
    • `WHOLELIFE`: Life insurance which is guaranteed to remain in force for the insured's entire lifetime, provided required premiums are paid, or to the maturity date.
    • \n
    \n"}},required:["insuranceAccount"],additionalProperties:!1},{type:"object",title:"Annuity Account",properties:{annuityAccount:{$ref:"#/components/schemas/AnnuityAccountDescriptor",description:"An annuity account. For example, a fixed or variable annuity account.\n\nThe `accountType` field for annuity accounts may be set to any of the following:\n\n
      \n
    • `ANNUITY`: A form of insurance or investment entitling the investor to a series of annual sums.
    • \n
    • `FIXEDANNUITY`: A type of insurance contract that promises to pay the buyer a specific, guaranteed interest rate on their contributions to the account.
    • \n
    • `VARIABLEANNUITY`: A type of insurance contract that promises to pay back the buyer based on the performance of an underlying portfolio of mutual funds selected by the buyer.
    • \n
    \n"}},required:["annuityAccount"],additionalProperties:!1}]},AccountWithDetails:{title:"Account With Details entity",description:"An account with full details",type:"object",oneOf:[{type:"object",title:"Deposit Account",properties:{depositAccount:{$ref:"#/components/schemas/DepositAccountFull"}},required:["depositAccount"],additionalProperties:!1},{type:"object",title:"Investment Account",properties:{investmentAccount:{$ref:"#/components/schemas/InvestmentAccountFull"}},required:["investmentAccount"],additionalProperties:!1},{type:"object",title:"Loan Account",properties:{loanAccount:{$ref:"#/components/schemas/LoanAccountFull"}},required:["loanAccount"],additionalProperties:!1},{type:"object",title:"Line of Credit Account",properties:{locAccount:{$ref:"#/components/schemas/LocAccountFull"}},required:["locAccount"],additionalProperties:!1}]},AnnuityAccountDescriptor:{allOf:[{$ref:"#/components/schemas/AccountDescriptor"},{type:"object",properties:{accountType:{$ref:"#/components/schemas/AnnuityAccountType"}},required:["accountType"]}],"x-examples":[{annuityAccount:{accountId:"annuityAccount0000001",accountType:"FIXEDANNUITY",accountNumberDisplay:"53901",productName:"Fixed Annuity",nickname:"Fixed annuity 1",status:"OPEN",currency:{currencyCode:"USD"}}}]},Currency:{title:"Currency entity",description:"Represents an international currency.",type:"object",properties:{currencyCode:{$ref:"#/components/schemas/Iso4217Code",description:"ISO 4217 currency code"}},required:["currencyCode"]},DepositAccount:{allOf:[{$ref:"#/components/schemas/AccountDescriptor"},{type:"object",properties:{accountType:{$ref:"#/components/schemas/DepositAccountType"}},required:["accountType"]}]},DepositAccountDescriptor:{title:"Deposit Account entity",description:'Full details of a deposit account. Plaid consumes the same information for all types of deposit accounts.\nPlaid expects a decimal amount with two places (to represent fractional values of the base currency) for all monetary amounts. For example, `"currentBalance": 192.00`.\n\nThe `accountType` field for deposit accounts may be set to any of the [account types](#deposit-account-types) listed below.\n',type:"object",properties:{depositAccount:{$ref:"#/components/schemas/DepositAccount"}},required:["depositAccount"],"x-examples":[{depositAccount:{accountId:"depositAccount0000001",accountType:"CHECKING",accountNumberDisplay:"5820",productName:"Checking",nickname:"Main Checking",status:"OPEN",currency:{currencyCode:"USD"}}}]},DepositAccountFull:{title:"Deposit Account entity",description:'Full details of a deposit account. Plaid consumes the same information for all types of deposit accounts.\nPlaid expects a decimal amount with two places (to represent fractional values of the base currency) for all monetary amounts. For example, `"currentBalance": 192.00`.\n\nThe `accountType` field for deposit accounts may be set to any of the [account types](#deposit-account-types) listed below.\n',type:"object",properties:{depositAccount:{allOf:[{$ref:"#/components/schemas/DepositAccount"},{type:"object",properties:{currentBalance:{type:"number",description:"Current balance of the deposit account"},availableBalance:{type:"number",description:"Available balance of the deposit account"}},required:["currentBalance","availableBalance"]}]}},required:["depositAccount"],"x-examples":[{depositAccount:{accountId:"someLongTermUniqueIDString",accountNumberDisplay:"4321",productName:"string",nickname:"string",status:"CLOSED",currency:{currencyCode:"AED"},accountType:"CHECKING",currentBalance:0,availableBalance:0}}]},DepositTransaction:{title:"Deposit Transaction entity",description:"A transaction on a deposit account type",type:"object",allOf:[{$ref:"#/components/schemas/Transaction"},{type:"object",properties:{payee:{$ref:"#/components/schemas/String255",description:"Payee name"},checkNumber:{type:"integer",description:"Check number. Plaid expects this solely if the transaction involves a check.\n"}}}],"x-examples":[{transactionId:"depositTransaction000000001",transactionTimestamp:"2022-04-05T00:00:00.000Z",description:"check for latest ACME invoice",debitCreditMemo:"DEBIT",status:"PENDING",amount:400,payee:"Acme LLC",checkNumber:57448}]},Holding:{title:"Holding entity",description:"A holding in an investment account.\nPlaid maps the `holding` and the `investmentAccount` FDX models to its securities models, which hold universal information like the ticker symbol, and to its holdings models, which hold account-specific information like balances. For more information, see [Plaid investments](https://plaid.com/docs/investments/#securities-and-holdings).\n",allOf:[{type:"object",properties:{securityId:{description:"If you return the `securityId` for a holding, Plaid uses it to look up the closing price from NYSE Group Security Master. If you don't return `securityId` for a holding that uses security IDs (not recommended), Plaid uses the `unitPrice` as the closing price.\nThis field, along with `securityIdType` are **required** unless `symbol` is provided.\n**Note:** If `securityId` is provided, `securityIdType` is required.\n",type:"string"},securityIdType:{$ref:"#/components/schemas/SecurityIdType"},holdingName:{type:"string",description:"Holding name or security name"},holdingType:{$ref:"#/components/schemas/HoldingType"},holdingSubType:{$ref:"#/components/schemas/HoldingSubType",description:"MONEYMARKET, CASH"},symbol:{type:"string",description:"Ticker / Market symbol\nThis field is **required** unless both `securityId` and `securityIdType` are provided."},purchasedPrice:{type:"number",description:"Price of holding at the time of purchase. Plaid determines an approximate [cost basis](https://plaid.com/docs/api/products/investments/#investments-holdings-get-response-holdings-cost-basis) using the purchase price and the number of units. Plaid cannot take fees into account to determine the cost basis because the FDX holding schema doesn't include fees.\n"},currentUnitPrice:{type:"number",description:"Current unit price. Plaid uses this as the [institution_price](https://plaid.com/docs/api/products/investments/#investments-holdings-get-response-holdings-institution-price). Plaid falls back to using this as the [close price](https://plaid.com/docs/api/products/investments/#investments-holdings-get-response-securities-close-price) if you don't return `securityId` for holdings involving securities.\n"},currentUnitPriceDate:{$ref:"#/components/schemas/Timestamp",description:"Current unit price as of date\n\nISO 8601 date-time in format `YYYY-MM-DDThh:mm:ss.nnn[Z|[+|-]hh:mm]` according to [IETF RFC3339](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6)\n"},units:{type:"number",description:"Plaid requires this field for holdings and transactions involving securities.\nFor security-based actions other than stock splits, quantity.\nShares for stocks, mutual funds, and others. Face value for bonds.\nContracts for options.\n\n**Note:** This field is required if the transaction involves a security.\n"},marketValue:{type:"number",description:"Market value at the time of data retrieved"},faceValue:{type:"number",description:"Required for bonds. Face value at the time of data retrieved. If this isn't present, Plaid assumes the holding isn't a bond and falls back to `marketValue`.\n"},cashAccount:{type:"boolean",description:"If true, indicates that this holding is used to maintain proceeds from sales, dividends, and other cash postings to the investment account. If you don't set a value for `isCashEquivalent` in the `fiAttributes` array, then Plaid uses `cashAccount` in determining the [is_cash_equivalent](https://plaid.com/docs/api/products/investments/#investments-holdings-get-response-securities-is-cash-equivalent) status.\n"},currency:{$ref:"#/components/schemas/Currency",description:"Currency information if it is different from Account entity"},fiAttributes:{type:"array",description:"Array of financial institution-specific attributes. Plaid recommends including a value for [is_cash_equivalent](https://plaid.com/docs/api/products/investments/#investments-holdings-get-response-securities-is-cash-equivalent) property in this array. Plaid accepts `isCashEquivalent` as the attribute name and a string value of `true` or `false`. If you return a value for `isCashEquivalent`, then return the same value for `cashAccount` as a boolean.\n",items:{$ref:"#/components/schemas/FiAttribute"}}},required:["cashAccount","marketValue"]}]},InsuranceAccountDescriptor:{allOf:[{$ref:"#/components/schemas/AccountDescriptor"},{type:"object",properties:{accountType:{$ref:"#/components/schemas/InsuranceAccountType"}},required:["accountType"]}],"x-examples":[{insuranceAccount:{accountId:"insuranceAccount0000001",accountType:"LONGTERMDISABILITY",accountNumberDisplay:"5820",productName:"Long-term disability",nickname:"Long term",status:"OPEN",currency:{currencyCode:"USD"}}}]},InvestmentAccount:{allOf:[{$ref:"#/components/schemas/AccountDescriptor"},{type:"object",properties:{accountType:{$ref:"#/components/schemas/InvestmentAccountType"}},required:["accountType"]}]},InvestmentAccountDescriptor:{description:"The type of investment account. For example, a 401K or IRA. Plaid consumes the same details for all investment accounts. The `accountType` field for investment accounts may be set to any of the [account types](#investment-account-types) listed below.\n",type:"object",properties:{investmentAccount:{$ref:"#/components/schemas/InvestmentAccount"}},required:["investmentAccount"],"x-examples":[{investmentAccount:{accountId:"investmentAccount0000001",accountType:"TAXABLE",accountNumberDisplay:"1050",productName:"Brokerage Account",nickname:"First plaidypus Brokerage",status:"OPEN",currency:{currencyCode:"USD"}}}]},InvestmentAccountFull:{description:"The type of investment account. For example, a 401K or IRA. Plaid consumes the same details for all investment accounts. The `accountType` field for investment accounts may be set to any of the [account types](#investment-account-types) listed below.\n",type:"object",properties:{investmentAccount:{allOf:[{$ref:"#/components/schemas/InvestmentAccount"},{type:"object",properties:{availableCashBalance:{type:"number",description:"Cash balance across all sub-accounts. Plaid expects that this includes sweep funds."},balanceAsOf:{description:"As-of date of balances.\n\nISO 8601 date-time in format `YYYY-MM-DDThh:mm:ss.nnn[Z|[+|-]hh:mm]` according to [IETF RFC3339](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6)\n",$ref:"#/components/schemas/Timestamp"},currentValue:{type:"number",description:"Total current value of all investments."},holdings:{type:"array",description:"Holdings in the investment account.\nPlaid maps the `holding` and the `investmentAccount` FDX models to its securities models, which hold universal information like the ticker symbol, and to its holdings models, which hold account-specific information like balances. For more information, see [Plaid investments](https://plaid.com/docs/investments/#securities-and-holdings).\n",items:{$ref:"#/components/schemas/Holding"}}},required:["availableCashBalance","currentValue"]}]}},"x-examples":[{investmentAccount:{accountId:"investmentAccount0000001",accountType:"TAXABLE",accountNumberDisplay:"1050",productName:"Brokerage Account",nickname:"First plaidypus Brokerage",status:"OPEN",currency:{currencyCode:"USD"},availableCashBalance:4302.39,balanceAsOf:null,currentValue:4302.39,holdings:[{securityId:"string",securityIdType:"CINS",holdingName:"string",holdingType:"ANNUITY",holdingSubType:"CASH",symbol:"MTSN",purchasedPrice:12.5,currentUnitPrice:34.2,currentUnitPriceDate:"2024-07-15",units:100,marketValue:3400,faceValue:3400,cashAccount:!0,currency:{currencyCode:"AED"},fiAttributes:[{name:"string",value:"string"}]}]}}]},InvestmentTransaction:{title:"Investment Transaction entity",description:"A transaction on an investment account.\nIn addition to the required fields in the base `Transaction` model, Plaid requires the following fields\nfor all transactions on an investment account:\n\n* `fees`\n* `transactionType`\n\nIf the transaction involves a security, Plaid additionally requires the following fields:\n\n* `unitPrice`\n* `units`\n* Either of the following:\n - `symbol`\n - `securityId` and `securityIdType`\n",type:"object",allOf:[{$ref:"#/components/schemas/Transaction"},{type:"object",properties:{transactionType:{$ref:"#/components/schemas/InvestmentTransactionType"},securityId:{type:"string",description:"If you return the `securityId` for a holding, Plaid uses it to look up the closing price from NYSE Group Security Master. If you don't return `securityId` for a holding that uses security IDs (not recommended), Plaid uses the `unitPrice` as the closing price.\nThis field, along with `securityIdType` are **required** unless `symbol` is provided.\n**Note:** If `securityId` is provided, `securityIdType` is required.\n"},securityIdType:{$ref:"#/components/schemas/SecurityIdType"},securityType:{$ref:"#/components/schemas/SecurityType",description:"STOCK, MUTUALFUND, DEBT, OPTION, SWEEP, OTHER, BOND"},symbol:{type:"string",description:"Ticker symbol\nThis field is **required** unless both `securityId` and `securityIdType` are provided."},commission:{type:"number",description:"Plaid expects that your organization includes a value for commission if the commission isn't included in `fees`.\n"},fees:{type:"number",description:"Fees applied to the trade. Plaid expects that the `fees` include the commission, unless your organization separately provides a value for `commission`.\n"},unitPrice:{type:"number",description:"Unit price. Plaid uses this as the [price](https://plaid.com/docs/api/products/investments/#investments-transactions-get-response-investment-transactions-price).\nPlaid falls back to using this as the [close price](https://plaid.com/docs/api/products/investments/#investments-transactions-get-response-securities-close-price)\nif you don't return `securityId` for transactions involving securities.\n\n**Note:** This field is required if the transaction involves a security.\n"},units:{type:"number",description:"Plaid requires this field for holdings and transactions involving securities.\nFor security-based actions other than stock splits, quantity.\nShares for stocks, mutual funds, and others. Face value for bonds.\nContracts for options.\n\n**Note:** This field is required if the transaction involves a security.\n"},unitType:{$ref:"#/components/schemas/UnitType",description:"SHARES, CURRENCY"},fiAttributes:{type:"array",description:"Array of financial institution-specific attributes. Plaid recommends including a value for [is_cash_equivalent](https://plaid.com/docs/api/products/investments/#investments-transactions-get-response-securities-is-cash-equivalent) property in this array. Plaid accepts `isCashEquivalent` as the attribute name and a string value of `true` or `false`.\n",items:{$ref:"#/components/schemas/FiAttribute"}}},required:["fees","transactionType"]}],"x-examples":[{transactionId:"investmentTransaction000000001",transactionTimestamp:"2022-04-05T00:00:00.000Z",description:"check for latest ACME invoice",debitCreditMemo:"DEBIT",status:"PENDING",amount:400,transactionType:"CHECK",securityId:"APW881",securityIdType:"CMC",securityType:"DEBT",symbol:"MSFT",commission:.1,unitPrice:15.3,units:1e3,unitType:"SHARES",fiAttributes:[{name:"Vanguard",value:80}]}]},LoanAccount:{title:"Loan Account entity",type:"object",allOf:[{$ref:"#/components/schemas/AccountDescriptor"},{type:"object",properties:{accountType:{$ref:"#/components/schemas/LoanAccountType"},accountNumber:{type:"string",example:"loanAccount0000001",description:"Full account number for the end user's handle for the account at the owning institution\nRequired for accountType 'MORTGAGE'\n"},principalBalance:{type:"number",example:580303.95,description:"Principal balance of loan"},escrowBalance:{type:"number",example:3400.61,description:"Escrow balance of loan"},originalPrincipal:{type:"number",example:650400,description:"Original principal of loan"},originatingDate:{$ref:"#/components/schemas/Timestamp",description:"Loan origination date\n\nISO 8601 date-time in format `YYYY-MM-DDThh:mm:ss.nnn[Z|[+|-]hh:mm]` according to [IETF RFC3339](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6)\n"},loanTerm:{type:"integer",example:360,description:"Term of loan in months"},nextPaymentAmount:{type:"number",example:2483.12,description:"Amount of next payment"},nextPaymentDate:{$ref:"#/components/schemas/Timestamp",description:"Date of next payment\n\nISO 8601 date-time in format `YYYY-MM-DDThh:mm:ss.nnn[Z|[+|-]hh:mm]` according to [IETF RFC3339](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6)\n"},lastPaymentAmount:{type:"number",example:2483.12,description:"Last payment amount"},lastPaymentDate:{$ref:"#/components/schemas/Timestamp",description:"Last payment date\n\nISO 8601 date-time in format `YYYY-MM-DDThh:mm:ss.nnn[Z|[+|-]hh:mm]` according to [IETF RFC3339](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6)\n"},maturityDate:{$ref:"#/components/schemas/Timestamp",description:"Maturity date\n\nISO 8601 date-time in format `YYYY-MM-DDThh:mm:ss.nnn[Z|[+|-]hh:mm]` according to [IETF RFC3339](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6)\n"},interestPaidYearToDate:{type:"number",description:"Interest paid year to date"},interestRate:{type:"number",example:.075,description:"The account's interest rate"},interestRateType:{$ref:"#/components/schemas/InterestRateType"}},required:["principalBalance","interestRate","interestRateType","accountType"]}]},LoanAccountDescriptor:{description:'Full details of a loan account. The `accountType` field for loan accounts may be set to any of the [account types](#loan-account-types) listed below.\n\nPlaid only consumes the `MORTGAGE` and `STUDENTLOAN` types for its [Liabilities API](https://plaid.com/docs/api/products/liabilities/). For other loan account types Plaid consumes account details and transactions.\nPlaid consumes all loan account information as returned in the `GET /accounts` endpoint, as well as the additional information listed below:\n\nRequired for all loan accounts:\n* `principalBalance`\n* `interestRate`\n* `interestRateType`\n\nOptional fields for `STUDENTLOAN` accounts:\n* `interestPaidYearToDate`\n* `lastPaymentAmount`\n* `lastPaymentDate`\n* `maturityDate`\n* `nextPaymentDate`\n* `originalPrincipal`\n* `originatingDate`\n\nRequired for `MORTGAGE` accounts:\n* `accountNumber`\n\nOptional fields for `MORTGAGE` accounts:\n* `escrowBalance`\n* `interestPaidYearToDate`\n* `lastPaymentAmount`\n* `lastPaymentDate`\n* `loanTerm`\n* `maturityDate`\n* `nextPaymentAmount`\n* `nextPaymentDate`\n* `originalPrincipal`\n* `originatingDate`\n\nPlaid expects a decimal amount with two places (to represent fractional values of the base currency) for all monetary amounts. For example, `"escrowBalance": 192.00`.\n',type:"object",properties:{loanAccount:{$ref:"#/components/schemas/LoanAccount"}},required:["loanAccount"],"x-examples":[{loanAccount:{accountId:"loanAccount0000001",accountType:"LOAN",accountNumberDisplay:"4704",productName:"Loan",nickname:"Primary Loan",status:"OPEN",currency:{currencyCode:"USD"}}}]},LoanAccountFull:{description:'Full details of a loan account. The `accountType` field for loan accounts may be set to any of the [account types](#loan-account-types) listed below.\n\nPlaid only consumes the `MORTGAGE` and `STUDENTLOAN` types for its [Liabilities API](https://plaid.com/docs/api/products/liabilities/). For other loan account types Plaid consumes account details and transactions.\nPlaid consumes all loan account information as returned in the `GET /accounts` endpoint, as well as the additional information listed below:\n\nRequired for all loan accounts:\n* `principalBalance`\n* `interestRate`\n* `interestRateType`\n\nOptional fields for `STUDENTLOAN` accounts:\n* `interestPaidYearToDate`\n* `lastPaymentAmount`\n* `lastPaymentDate`\n* `maturityDate`\n* `nextPaymentDate`\n* `originalPrincipal`\n* `originatingDate`\n\nRequired for `MORTGAGE` accounts:\n* `accountNumber`\n\nOptional fields for `MORTGAGE` accounts:\n* `escrowBalance`\n* `interestPaidYearToDate`\n* `lastPaymentAmount`\n* `lastPaymentDate`\n* `loanTerm`\n* `maturityDate`\n* `nextPaymentAmount`\n* `nextPaymentDate`\n* `originalPrincipal`\n* `originatingDate`\n\nPlaid expects a decimal amount with two places (to represent fractional values of the base currency) for all monetary amounts. For example, `"escrowBalance": 192.00`.\n',type:"object",properties:{loanAccount:{$ref:"#/components/schemas/LoanAccount"}},required:["loanAccount"],"x-examples":[{loanAccount:{accountId:"someLongTermUniqueIDString",accountNumberDisplay:"4321",productName:"string",nickname:"string",status:"CLOSED",currency:{currencyCode:"AED"},accountType:"AUTOLOAN",accountNumber:"string",principalBalance:0,escrowBalance:0,originalPrincipal:0,originatingDate:"2021-07-15",loanTerm:0,nextPaymentAmount:0,nextPaymentDate:"2021-07-15",lastPaymentAmount:0,lastPaymentDate:"2021-07-15",maturityDate:"2021-07-15",interestPaidYearToDate:0,interestRate:0,interestRateType:"FIXED"}}]},LoanTransaction:{title:"Loan Transaction entity",description:"A transaction on a loan account",type:"object",allOf:[{$ref:"#/components/schemas/Transaction"},{type:"object",properties:{transactionType:{$ref:"#/components/schemas/LoanTransactionType"}}}],"x-examples":[{transactionId:"loanTransaction000000001",transactionTimestamp:"2022-04-05T00:00:00.000Z",description:"latest ACME invoice",debitCreditMemo:"CREDIT",status:"PENDING",amount:400}]},LocAccount:{type:"object",allOf:[{$ref:"#/components/schemas/AccountDescriptor"},{type:"object",properties:{accountType:{$ref:"#/components/schemas/LocAccountType"},creditLine:{type:"number",description:"Credit limit"},availableCredit:{type:"number",description:"Available credit. Required for all accountTypes except for `CHARGE`"},nextPaymentAmount:{type:"number",description:"Amount of next payment"},nextPaymentDate:{$ref:"#/components/schemas/Timestamp",description:"Due date of next payment\n\nISO 8601 date-time in format `YYYY-MM-DDThh:mm:ss.nnn[Z|[+|-]hh:mm]` according to [IETF RFC3339](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6)\n"},principalBalance:{type:"number",description:"Principal balance"},currentBalance:{type:"number",description:"Current balance of the line of credit"},minimumPaymentAmount:{type:"number",description:"Minimum payment amount"},lastPaymentAmount:{type:"number",description:"Last payment amount"},lastPaymentDate:{$ref:"#/components/schemas/Timestamp",description:"Last payment date\n\nISO 8601 date-time in format `YYYY-MM-DDThh:mm:ss.nnn[Z|[+|-]hh:mm]` according to [IETF RFC3339](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6)\n"},pastDueAmount:{type:"number",description:"Amount owed that the account holder failed to pay on the due date"},lastStmtBalance:{type:"number",description:"Last statement balance"},lastStmtDate:{$ref:"#/components/schemas/Timestamp",description:"Last Statement Date\n\nISO 8601 date-time in format `YYYY-MM-DDThh:mm:ss.nnn[Z|[+|-]hh:mm]` according to [IETF RFC3339](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6)\n"},purchasesApr:{type:"number",description:"Purchases APR"},advancesApr:{type:"number",description:"Advances APR"}},required:["currentBalance","accountType"]}]},LocAccountDescriptor:{description:'Full details of a line of credit account. The `accountType` field for line of credit accounts may be set to any of the [account types](#loc-account-types) listed below.\n\nPlaid may consume all the parameters returned by the `GET /accounts` endpoint:\n\n* `availableCredit`\n* `creditLine`\n* `currentBalance`\n\nAdditionally, for the `CREDITCARD` accountType, Plaid consumes the previous information plus the following for its liabilities product:\n\n* `advancesApr`\n* `lastPaymentAmount`\n* `lastPaymentDate`\n* `lastStmtBalance`\n* `lastStmtDate`\n* `minimumPaymentAmount`\n* `nextPaymentDate`\n* `purchasesApr`\nPlaid expects a decimal amount with two places (to represent fractional values of the base currency) for all monetary amounts. For example, `"currentBalance": 192.00`.\n',type:"object",properties:{locAccount:{$ref:"#/components/schemas/LocAccount"}},required:["locAccount"],"x-examples":[{locAccount:{accountId:"loc_01_creditcard",accountNumberDisplay:"8200",productName:"First Plaidypus Credit Card",nickname:"my travel rewards card",status:"OPEN",currency:{currencyCode:"USD"},accountType:"CREDITCARD"}}]},LocAccountFull:{description:'Full details of a line of credit account. The `accountType` field for line of credit accounts may be set to any of the [account types](#loc-account-types) listed below.\n\nPlaid may consume all the parameters returned by the `GET /accounts` endpoint:\n\n* `availableCredit`\n* `creditLine`\n* `currentBalance`\n\nAdditionally, for the `CREDITCARD` accountType, Plaid consumes the previous information plus the following for its liabilities product:\n\n* `advancesApr`\n* `lastPaymentAmount`\n* `lastPaymentDate`\n* `lastStmtBalance`\n* `lastStmtDate`\n* `minimumPaymentAmount`\n* `nextPaymentDate`\n* `purchasesApr`\nPlaid expects a decimal amount with two places (to represent fractional values of the base currency) for all monetary amounts. For example, `"currentBalance": 192.00`.\n',type:"object",properties:{locAccount:{$ref:"#/components/schemas/LocAccount"}},required:["locAccount"],"x-examples":[{locAccount:{accountId:"loc_01_creditcard",accountNumberDisplay:"8200",productName:"First Plaidypus Credit Card",nickname:"my travel rewards card",status:"OPEN",currency:{currencyCode:"USD"},minimumPaymentAmount:100,lastPaymentAmount:400,lastPaymentDate:"2022-03-30",pastDueAmount:0,lastStmtBalance:400,lastStmtDate:"2022-03-25",purchasesApr:10.25,advancesApr:15.75,currentBalance:375,availableCredit:625,accountType:"CREDITCARD"}}]},LocTransaction:{title:"Line-Of-Credit Transaction entity",description:"A line-of-credit transaction",type:"object",allOf:[{$ref:"#/components/schemas/Transaction"},{type:"object",properties:{transactionType:{$ref:"#/components/schemas/LocTransactionType"},checkNumber:{type:"integer",description:"Check number"}}}],"x-examples":[{transactionId:"locTransaction000000001",transactionTimestamp:"2022-04-05T00:00:00.000Z",description:"credit for latest ACME invoice",debitCreditMemo:"DEBIT",status:"PENDING",amount:400}]},Transaction:{title:"Transaction",description:"Base entity for financial transactions. For monetary amounts, Plaid expects a decimal amount, with two places to represent fractional values of the base currency, for example `101.99`.\n",type:"object",properties:{transactionId:{description:"Long term persistent identity of the transaction (unique to account). Plaid expects that `status: PENDING` and `status: POSTED` transactions have different IDs.",$ref:"#/components/schemas/Identifier"},referenceTransactionId:{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",$ref:"#/components/schemas/Identifier"},postedTimestamp:{description:"The date and time that the transaction was posted to the account.\n\nThis property is **required** by Plaid when `status=POSTED`.\nPlaid expects this property to be omitted when `status=PENDING`\n\nISO 8601 date-time in format `YYYY-MM-DDThh:mm:ss.nnn[Z|[+|-]hh:mm]` according to [IETF RFC3339](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6)\n",$ref:"#/components/schemas/Timestamp"},transactionTimestamp:{description:"The date and time that the transaction was added to the server backend systems.\nISO 8601 date-time in format `YYYY-MM-DDThh:mm:ss.nnn[Z|[+|-]hh:mm]` according to [IETF RFC3339](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6)",$ref:"#/components/schemas/Timestamp"},description:{type:"string",description:"The description of the transaction"},debitCreditMemo:{$ref:"#/components/schemas/DebitCreditMemo"},category:{type:"string",description:"Transaction category, preferably MCC or SIC. Plaid expects your organization to provide MCC, if available and applicable.\n"},subCategory:{type:"string",description:"Transaction category detail"},status:{$ref:"#/components/schemas/TransactionStatus"},amount:{type:"number",description:"The amount of money in the account currency. The amount is an absolute value. Plaid relies on the `DebitCreditMemo` enum to determine the direction (and sign) of the transaction.\n"},foreignAmount:{type:"number",description:"The amount of money in the foreign currency. If this amount is specified, then Plaid expects that the `foreignCurrency` property is also set."},foreignCurrency:{$ref:"#/components/schemas/Iso4217Code",description:"The ISO 4217 code of the foreign currency"}},required:["debitCreditMemo","description","transactionId","transactionTimestamp","status","amount"]},Transactions:{title:"Transactions entity",description:"Optionally paginated array of transactions",type:"object",properties:{page:{$ref:"#/components/schemas/PageMetadata"},transactions:{description:"An array of transactions. The `transactionType` is dependent on the account type. Plaid consumes the following types of transactions: [investment](#investment-transaction), [deposit](#deposit-transaction), [loan](#loan-transaction), and [line of credit](#line-of-credit-transaction)\n\nPlaid expects your organization to return an empty array if this information isn't available.\n",type:"array",items:{oneOf:[{type:"object",title:"Deposit Transaction",properties:{depositTransaction:{$ref:"#/components/schemas/DepositTransaction"}},required:["depositTransaction"],additionalProperties:!1},{type:"object",title:"Investment Transaction",properties:{investmentTransaction:{$ref:"#/components/schemas/InvestmentTransaction",description:"A transaction on an investment account.\nIn addition to the required fields in the base `Transaction` model, Plaid requires the following fields\nfor all transactions on an investment account:\n\n* `fees`\n* `transactionType`\n\nIf the transaction involves a security, Plaid additionally requires the following fields:\n\n* `unitPrice`\n* `units`\n* Either of the following:\n - `symbol`\n - `securityId` and `securityIdType`\n"}},required:["investmentTransaction"],additionalProperties:!1},{type:"object",title:"Loan Transaction",properties:{loanTransaction:{$ref:"#/components/schemas/LoanTransaction"}},required:["loanTransaction"],additionalProperties:!1},{type:"object",title:"Line of Credit Transaction",properties:{locTransaction:{$ref:"#/components/schemas/LocTransaction"}},required:["locTransaction"],additionalProperties:!1}]}}},required:["transactions"],example:{page:{nextOffset:"qwer123454q2f"},transactions:[{depositTransaction:{transactionType:"CHECK",checkNumber:1234,payee:"ACME llc",transactionId:"depositTransaction000000001",postedTimestamp:"2022-04-06T00:00:00.000Z",transactionTimestamp:"2022-04-05T00:00:00.000Z",description:"check for latest ACME invoice",debitCreditMemo:"DEBIT",status:"PENDING",amount:400}},{depositTransaction:{transactionType:"ADJUSTMENT",transactionId:"depositTransaction000000002",postedTimestamp:"2022-04-07T00:00:00.000Z",transactionTimestamp:"2022-04-07T00:00:00.000Z",description:"reconciliation/adjustment of bank statement error",debitCreditMemo:"DEBIT",status:"POSTED",amount:.8}},{depositTransaction:{transactionType:"ATMDEPOSIT",transactionId:"depositTransaction000000003",postedTimestamp:"2022-04-08T00:00:00.000Z",transactionTimestamp:"2022-04-08T00:00:00.000Z",description:"ATM cash deposit location #1234",debitCreditMemo:"CREDIT",status:"POSTED",amount:101.8}}]}},Identifier:{title:"Identifier",description:"Value for a unique identifier",type:"string",maxLength:256,example:"someLongTermUniqueIDString"},Iso3166CountryCode:{title:"ISO 3166 Country Code",description:"ISO 3166 Codes for the representation of names of countries and their subdivisions",type:"string",enum:["AD","AE","AF","AG","AI","AL","AM","AN","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BM","BN","BO","BR","BS","BT","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CR","CS","CU","CV","CX","CY","CZ","DE","DJ","DK","DM","DO","DZ","EC","EE","EG","EH","ER","ES","ET","FI","FJ","FK","FM","FO","FR","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RU","RW","SA","SB","SC","SD","SE","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","ST","SV","SY","SZ","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TR","TT","TV","TW","TZ","UA","UG","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","YE","YT","ZA","ZM","ZW"]},Iso4217Code:{title:"ISO 4217 Code",description:"ISO 4217 Currency codes",type:"string",enum:["AED","AFN","ALL","AMD","ANG","AOA","ARS","AUD","AWG","AZN","BAM","BBD","BDT","BGN","BHD","BIF","BMD","BND","BOB","BOV","BRL","BSD","BTN","BWP","BZD","CAD","CDF","CHE","CHF","CHW","CLF","CLP","CNY","COP","COU","CRC","CUC","CUP","CVE","CZK","DJF","DKK","DOP","DZD","EGP","ERN","ETB","EUR","FJD","FKP","GBP","GEL","GHS","GIP","GMD","GNF","GTQ","GYD","HKD","HNL","HRK","HTG","HUF","IDR","ILS","INR","IQD","IRR","ISK","JMD","JOD","JPY","KES","KGS","KHR","KMF","KPW","KRW","KWD","KYD","KZT","LAK","LBP","LKR","LRD","LSL","LYD","MAD","MDL","MGA","MKD","MMK","MNT","MOP","MUR","MVR","MWK","MXN","MXV","MYR","MZN","NAD","NGN","NIO","NOK","NPR","NZD","OMR","PAB","PEN","PGK","PHP","PKR","PLN","PYG","QAR","RON","RSD","RUB","RWF","SAR","SBD","SCR","SDG","SEK","SGD","SHP","SLL","SOS","SRD","SSP","SVC","SYP","SZL","THB","TJS","TMT","TND","TOP","TRY","TTD","TWD","TZS","UAH","UGX","USD","USN","UYI","UYU","UZS","VND","VUV","WST","XAF","XAG","XAU","XBA","XBB","XBC","XBD","XCD","XDR","XOF","XPD","XPF","XPT","XSU","XTS","XUA","XXX","YER","ZAR","ZMW","ZWL"]},String255:{title:"String 255",description:"String of maximum length 255",type:"string",maxLength:255},String64:{title:"String 64",description:"String of maximum length 64",type:"string",maxLength:64},TelephoneNumberType:{title:"Telephone Number Type",description:"Purpose or type of telephone number",type:"string",enum:["HOME","BUSINESS","CELL","FAX"]},Timestamp:{title:"Timestamp",description:"ISO 8601 date-time in format `YYYY-MM-DDThh:mm:ss.nnn[Z|[+|-]hh:mm]` according to [IETF RFC3339](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6)",type:"string",format:"date-time",example:"2021-07-15T14:46:41.375Z"},AccountHolderRelationship:{title:"Account Holder Relationship",description:"Types of relationships between accounts and holders. Suggested values",type:"string",enum:["BUSINESS","FOR_BENEFIT_OF","FOR_BENEFIT_OF_PRIMARY","FOR_BENEFIT_OF_PRIMARY_JOINT_RESTRICTED","FOR_BENEFIT_OF_SECONDARY","FOR_BENEFIT_OF_SECONDARY_JOINT_RESTRICTED","FOR_BENEFIT_OF_SOLE_OWNER_RESTRICTED","POWER_OF_ATTORNEY","PRIMARY_JOINT_TENANTS","PRIMARY","PRIMARY_BORROWER","PRIMARY_JOINT","SECONDARY","SECONDARY_JOINT_TENANTS","SECONDARY_BORROWER","SECONDARY_JOINT","SOLE_OWNER","TRUSTEE","UNIFORM_TRANSFER_TO_MINOR"]},AnnuityAccountType:{description:"The type of an account. Plaid consumes basic balance account information from the `accounts/{accountId}` endpoint for a subset of the possible account types described in the FDX specification.\n",type:"string",example:"FIXEDANNUITY",enum:["ANNUITY","FIXEDANNUITY","VARIABLEANNUITY"]},DebitCreditMemo:{title:"DebitCreditMemo",description:"The posting type of a transaction. The transaction amount is an absolute value, and this parameter indicates the direction of the transaction. Plaid expects `DEBIT` or `CREDIT` for this enum. Plaid expects that your organization indicates the `MEMO` (i.e., pending) status using the `status` field in the transaction response rather than this field. If your organization sends `MEMO` in this `DebitCreditMemo` enum, Plaid handles this value the same as it handles `DEBIT`. * `DEBIT`: An amount leaves the account * `CREDIT`: An amount enters the account * `MEMO`: A pending transaction to be completed at the end of this day.\n",type:"string",enum:["CREDIT","DEBIT","MEMO"]},DepositAccountType:{description:"The type of an account. Plaid consumes basic balance account information from the `accounts/{accountId}` endpoint for a subset of the possible account types described in the FDX specification.\n",type:"string",example:"SAVINGS",enum:["CHECKING","SAVINGS","CD","COMMERCIALDEPOSIT","ESCROW","MONEYMARKET","OTHERDEPOSIT"]},FiAttribute:{title:"FI Attribute entity",description:"Financial Institution provider-specific attribute",type:"object",properties:{name:{type:"string",description:"The attribute's name"},value:{type:"string",description:"The attribute's value"}}},HoldingSubType:{title:"Holding SubType",description:"The subtype of an investment holding. Plaid expects you to return `OTHER` and set the `holdingSubType` to indicate cash-type holdings (CASH, MONEYMARKET).\n",type:"string",enum:["CASH","MONEYMARKET"]},HoldingType:{title:"Holding Type",description:"Plaid maps the holding type to the Plaid [security type](https://plaid.com/docs/api/products/investments/#investments-transactions-get-response-securities-type). Plaid expects you to return `OTHER` and set the `holdingSubType` to indicate cash-type holdings (CASH, MONEYMARKET).\n",type:"string",enum:["ANNUITY","BOND","CD","MUTUALFUND","OPTION","OTHER","STOCK"]},InterestRateType:{title:"Interest Rate Type",description:"Specifies whether an interest rate is fixed or variable. This information is helpful for personal financial planning and advising. For example, it affects the potential benefits of refinancing, and informs whether a mortgage payment is expected to change in the future",type:"string",enum:["FIXED","VARIABLE"]},InsuranceAccountType:{description:"The type of an account. Plaid consumes basic balance account information from the `accounts/{accountId}` endpoint for a subset of the possible account types described in the FDX specification.\n",type:"string",example:"WHOLELIFE",enum:["LONGTERMDISABILITY","SHORTTERMDISABILITY","UNIVERSALLIFE","WHOLELIFE"]},InvestmentAccountType:{description:"The type of an account. Plaid consumes basic balance account information from the `accounts/{accountId}` endpoint for a subset of the possible account types described in the FDX specification.\n",type:"string",example:"ROTH",enum:["401A","401K","403B","529","BROKERAGEPRODUCT","COMMERCIALINVESTMENT","COVERDELL","DIGITALASSET","DEFINEDBENEFIT","ESOP","GUARDIAN","INSTITUTIONALTRUST","IRA","KEOGH","NONQUALIFIEDPLAN","OTHERINVESTMENT","ROLLOVER","ROTH","SARSEP","TAXABLE","TDA","TRUST","TERM","UGMA","UTMA"]},InvestmentTransactionType:{title:"Investment Transaction Type",description:"The type of an investment transaction.\nPlaid maps these enums to Plaid [investment transaction types](https://plaid.com/docs/api/accounts/#investment-transaction-types-schema).\nPlaid doesn't map these enums to Plaid-specific transaction subtypes.\nPlaid maps these enums as follows:\n\n* ADJUSTMENT - fee\n* ATM - cash\n* CASH - cash\n* CHECK - cash\n* CLOSURE - Plaid suggests using SOLDTOCLOSE, PURCHASETOCLOSE, OPTIONEXERCISE or OPTIONEXPIRATION to indicate the specific type of closure, instead of using this enum.\n* CLOSUREOPT - Plaid suggests using SOLDTOCLOSE, PURCHASETOCLOSE, OPTIONEXERCISE or OPTIONEXPIRATION to indicate the specific type of closure, instead of using this enum.\n* CONTRIBUTION - buy (if transaction involves a security) or cash\n* DEP - cash\n* DEPOSIT - cash\n* DIRECTDEBIT - cash\n* DIRECTDEP - cash\n* DIV - cash\n* DIVIDEND - cash\n* DIVIDENDREINVEST - buy\n* EXPENSE - cash\n* FEE - fee\n* INCOME - cash\n* INTEREST - cash\n* INVEXPENSE - cash\n* JRNLFUND - transfer\n* JRNLSEC - transfer\n* MARGININTEREST - cash\n* OPTIONEXERCISE - transfer\n* OPTIONEXPIRATION - transfer\n* OTHER - cash - (unclassified)\n* PAYMENT - cash\n* POS - cash\n* PURCHASED - buy\n* PURCHASEDTOCOVER - buy\n* PURCHASETOCLOSE - buy\n* PURCHASETOOPEN - buy\n* REINVESTOFINCOME - buy\n* REPEATPMT - cash\n* RETURNOFCAPITAL - cash\n* SOLD - sell\n* SOLDTOCLOSE - sell\n* SOLDTOOPEN - sell\n* SPLIT - transfer\n* SRVCHG - fee\n* TRANSFER - transfer\n* XFER - transfer\n",type:"string",enum:["ADJUSTMENT","ATM","CASH","CHECK","CLOSURE","CLOSUREOPT","CONTRIBUTION","DEP","DEPOSIT","DIRECTDEBIT","DIRECTDEP","DIV","DIVIDEND","DIVIDENDREINVEST","EXPENSE","FEE","INCOME","INTEREST","INVEXPENSE","JRNLFUND","JRNLSEC","MARGININTEREST","OPTIONEXERCISE","OPTIONEXPIRATION","OTHER","PAYMENT","POS","PURCHASED","PURCHASEDTOCOVER","PURCHASETOCLOSE","PURCHASETOOPEN","REINVESTOFINCOME","REPEATPMT","RETURNOFCAPITAL","SOLD","SOLDTOCLOSE","SOLDTOOPEN","SPLIT","SRVCHG","TRANSFER","XFER"]},LoanAccountType:{description:"The type of an account. Plaid consumes basic balance account information from the `accounts/{accountId}` endpoint for a subset of the possible account types described in the FDX specification.\n",type:"string",example:"HOMEEQUITYLOAN",enum:["AUTOLOAN","COMMERCIALLOAN","HOMEEQUITYLOAN","INSTALLMENT","LOAN","MILITARYLOAN","MORTGAGE","PERSONALLOAN","SMBLOAN","STUDENTLOAN"]},LoanTransactionType:{title:"Loan Transaction Type",description:"The type of a loan transaction. Plaid passes through all loan transaction types.\n",type:"string",enum:["ADJUSTMENT","FEE","INTEREST","PAYMENT"]},LocAccountType:{description:"The type of an account. Plaid consumes basic balance account information from the `accounts/{accountId}` endpoint for a subset of the possible account types described in the FDX specification.\n",type:"string",example:"CREDITCARD",enum:["LINEOFCREDIT","CHARGE","COMMERCIALLINEOFCREDIT","CREDITCARD","HOMELINEOFCREDIT"]},LocTransactionType:{title:"Line-Of-Credit Transaction Type",description:"The type of a line of credit (LOC) transaction. Plaid passes through all LOC transaction types.\n",type:"string",enum:["ADJUSTMENT","CHECK","FEE","INTEREST","PAYMENT","WITHDRAWAL"]},PaymentNetworkType:{title:"Payment Network Type",description:"Suggested values for Payment Network Type. `US_` refers to the USA, and `CA_` refers to Canada.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
    ValueDescription
    US_ACHAutomated Clearing House, also called Fed ACH network (mostly small banks)
    US_FEDWIREFedwire Funds Service.
    US_CHIPSClearinghouse Interbank Payments System. Also called Clearing House ACH network (primarily big banks)
    CA_ACSSAutomated Clearing House Settlement System
    CA_LVTSLarge-Value Transfer System
    \n",type:"string",enum:["US_ACH","US_FEDWIRE","US_CHIPS","CA_ACSS","CA_LVTS"]},SecurityIdType:{title:"Security ID Type",description:"Plaid consumes solely CUSIP, ISIN, and SEDOL.\nThis field, along with `securityId` are **required** unless `symbol` is provided.\n**Note:** If `securityIdType` is provided, `securityId` is required.\n",type:"string",enum:["CUSIP","ISIN","SEDOL","SICC","VALOR","WKN"]},SecurityType:{title:"Security Type",description:"The type of a security",type:"string",enum:["BOND","DEBT","MUTUALFUND","OPTION","OTHER","STOCK","SWEEP"]},TransactionStatus:{title:"Transaction Status",description:"The status of a transaction. Plaid consumes solely the `PENDING` and `POSTED` enums,\nand treats `MEMO` and `AUTHORIZATION` as if they were `PENDING`. Plaid expects that pending and posted transactions\nhave different `transactionIds`.\n* `AUTHORIZATION`\n* `MEMO` - A pending transaction to be completed at the end of this day\n* `PENDING` - A pending transaction\n* `POSTED` - A posted transaction\n",type:"string",enum:["AUTHORIZATION","MEMO","PENDING","POSTED"]},UnitType:{title:"Unit Type",description:"The units of an investment transaction",type:"string",enum:["CURRENCY","SHARES"]}}}},"5.0":{openapi:"3.0.3",info:{version:"5.0.0",title:"FDX V5.0",description:'## FDX compliance\n\nThe Core Exchange API specifications are a subset of the Financial Data Exchange (FDX) API specification, the usage thereof (or any part thereof) constitutes acceptance of the FDX API\nLicense Agreement, which can be found at https://financialdataexchange.org/. The FDX API specification is distributed exclusively by FDX. Modifications to eliminate required or\nconditional elements prescribed in the FDX API Certification Use Cases will render any implementations using said modifications non-conformant with the FDX API Certification Use Cases.\nPlease note that building the FDX-compliant Core Exchange API and permitting Plaid to call your build constitutes acceptance of\nthe FDX end user license agreement, which can be found at https://financialdataexchange.org/.\nThe full FDX API standard specification is distributed exclusively by FDX.\n\n## Download the specification\n\nTo view this specification and documentation as an OpenAPI YAML file, see [the public Core Exchange Github repository](https://github.com/plaid/core-exchange/tree/main/versions).\n\n## Endpoints\n\nThis specification contains the following endpoints:\n\n - `/customers/current`\n\n - `/accounts`\n\n - `/accounts/{accountId}`\n\n - `/accounts/{accountId}/payment-networks`\n\n - `/accounts/{accountId}/contact`\n\n - `/accounts/{accountId}/transactions`\n\n## Mock server\n\nSee the [mock server postman collection](/core-exchange/example) for Core Exchange v5.0.\n\n## Error responses\n\nAn 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.\nError responses must contain a `code` and `message`.\nSee the descriptions below:\n\n- `code`: The FDX error code: A long-term persistent identifier which can be used to trace error condition back to log information.\n (**Note:** This code may differ from the HTTP status code.)\n- `message`: End user displayable information which might help the customer diagnose an error\n\n### Example error\n\nThe following is an example response with an HTTP status code of 409.\n\n```\n{\n "code": 705,\n "message": "Account is closed"\n}\n```\n\nSee the Errors table in each endpoint description for more specific message examples.\n',contact:{name:"Plaid support",url:"https://plaid.com/data-connectivity-core-exchange/",email:"dataconnectivity@plaid.com"}},servers:[{url:"https://api.your-organization.com/fdx/v5",description:"Financial Data Exchange V5.0 Core API"}],tags:[{name:"Personal Information",description:"Search and view customer or customers"},{name:"Account Information",description:"Search and view customer accounts"},{name:"Account Transactions",description:"Search and view account transactions"},{name:"Payment Networks Information",description:"Search and view account payment networks"}],paths:{"/customers/current":{get:{operationId:"getCustomerInfo",tags:["Personal Information"],description:"Get the ID of the customer within the authorization scope.\n\n**Note:**\n\n
      \n
    • If you use OIDC authentication (recommended) you do not need to implement this endpoint as Plaid identifies the customer using the OIDC `id_token` response.
    • \n
    • If you use OAuth2 authentication, Plaid uses this endpoint as an alternate method of customer identification.
    • \n
    \n",summary:"Get current authenticated customer ID",security:[{openIdConnect:[]},{oauth2:[]}],responses:{200:{description:"Data describing current authenticated customer",content:{"application/json":{schema:{$ref:"#/components/schemas/CustomerWithId"},examples:{"example-1":{value:{customerId:"someLongTermUniqueIDString"}}}}}}}}},"/accounts":{get:{operationId:"searchForAccounts",tags:["Account Information"],summary:"List all accounts",description:"Search and view customer accounts\n",security:[{openIdConnect:["Account"]},{oauth2:["Account"]}],parameters:[{$ref:"#/components/parameters/OffsetQuery"},{$ref:"#/components/parameters/LimitQuery"}],responses:{200:{description:"Array of accounts",content:{"application/json":{schema:{$ref:"#/components/schemas/Accounts"},examples:{"example-1":{value:{page:{nextOffset:"25"},accounts:[{depositAccount:{accountId:"depositAccount0000001",accountType:"CHECKING",accountNumberDisplay:"5820",productName:"Checking",nickname:"Main Checking",status:"OPEN",currency:{currencyCode:"USD"}}},{loanAccount:{accountId:"loanAccount0000001",accountType:"LOAN",accountNumberDisplay:"4704",productName:"Loan",nickname:"Primary Loan",status:"OPEN",currency:{currencyCode:"USD"}}},{locAccount:{accountId:"locAccount0000001",accountType:"LINEOFCREDIT",accountNumberDisplay:"8200",productName:"Line of Credit",nickname:"First plaidypus LOC",status:"OPEN",currency:{currencyCode:"USD"}}},{investmentAccount:{accountId:"investmentAccount0000001",accountType:"TAXABLE",accountNumberDisplay:"1050",productName:"Brokerage Account",nickname:"First plaidypus Brokerage",status:"OPEN",currency:{currencyCode:"USD"}}}]}}}}}}}}},"/accounts/{accountId}":{get:{operationId:"getAccount",tags:["Account Information"],summary:"Get account balances and liabilities",description:"Get account balances, liabilities, and other information. Plaid uses this endpoint to:\n\n
      \n
    • Get account balances for deposit accounts. For example, `CHECKING` or `SAVINGS`. For more information about how Plaid uses this information, see [Plaid Balance API](https://plaid.com/docs/api/products/balance/).
    • \n
    • Get account liabilities for `STUDENTLOAN`, `MORTGAGE`, and `CREDITCARD` loan accounts. For more information about how Plaid uses this information, see [Plaid Liabilities API](https://plaid.com/docs/api/products/liabilities/).
    • \n
    • Get balances and holdings for investment accounts. For more information about how Plaid uses this information, see [Plaid Investments API](https://plaid.com/docs/investments/).
    • \n
    \n\nSee the response schema below for a full list of possible parameters for each account type.\n",security:[{openIdConnect:["Account"]},{oauth2:["Account"]}],parameters:[{$ref:"#/components/parameters/AccountIdPath"}],responses:{200:{description:"The full details of an investment, loan, deposit, or line of credit account",content:{"application/json":{schema:{$ref:"#/components/schemas/AccountWithDetails"}}}}}}},"/accounts/{accountId}/contact":{get:{operationId:"getAccountContact",tags:["Personal Information"],description:"Get contact information on the account.\n\nPlaid links contact information to accounts, rather than to users. Plaid consumes multiple holders and their contact information for the account, but doesn't attempt to correlate holders to their respective contact information. For more information about Plaid's identity model, see [Plaid Identity API](https://plaid.com/docs/api/products/identity/).\n",summary:"Get an account's contact information",parameters:[{$ref:"#/components/parameters/AccountIdPath"}],security:[{openIdConnect:["Customer"]},{oauth2:["Customer"]}],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:["Payment Networks Information"],description:"Get payment networks supported by an account, for example ACH (Automated Clearing House). For more information about how Plaid uses this information, see the [Plaid Auth API](https://plaid.com/docs/api/products/auth/).\n",summary:"Get payment networks supported by the account",security:[{openIdConnect:["Account"]},{oauth2:["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:{properties:{page:{$ref:"#/components/schemas/PageMetadata"},paymentNetworks:{type:"array",items:{$ref:"#/components/schemas/AccountPaymentNetwork"}}},required:["paymentNetworks"]},examples:{"example-1":{page:{nextOffset:25},paymentNetworks:[{bankId:"010088889",identifier:"1111222233335820",type:"US_ACH",transferIn:!0,transferOut:!0}]}}}}}}}},"/accounts/{accountId}/transactions":{get:{operationId:"searchForAccountTransactions",tags:["Account Transactions"],description:"List all account transactions. Plaid always queries this endpoint a `startTime` and an `endTime`, for example, `/accounts/{accountId}/transactions?startTime=2022-01-30&endTime=2022-05-30`, and expects the time filters to be based on the `postedTimestamp`.\n\nPlaid consumes data from this endpoint for the following account types only:\n
      \n
    • Loan
    • \n
    • Investment
    • \n
    • Deposit
    • \n
    • Line of credit (LOC)
    • \n
    \n",summary:"List all account transactions",security:[{openIdConnect:["Transactions"]},{oauth2:["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. Plaid consumes the following transaction types: InvestmentTransaction, DepositTransaction, LoanTransaction, or LocTransaction\n",content:{"application/json":{schema:{$ref:"#/components/schemas/Transactions"},examples:{"example-1":{value:{page:{nextOffset:"25"},transactions:[{depositTransaction:{checkNumber:1234,payee:"ACME llc",transactionId:"depositTransaction000000001",postedTimestamp:"2022-04-06T00:00:00.000Z",transactionTimestamp:"2022-04-05T00:00:00.000Z",description:"check for latest ACME invoice",debitCreditMemo:"DEBIT",status:"PENDING",amount:400}},{depositTransaction:{transactionId:"depositTransaction000000002",postedTimestamp:"2022-04-07T00:00:00.000Z",transactionTimestamp:"2022-04-07T00:00:00.000Z",description:"reconciliation/adjustment of bank statement error",debitCreditMemo:"DEBIT",status:"POSTED",amount:.8}}]}}}}}}}}}},components:{securitySchemes:{openIdConnect:{type:"openIdConnect",description:"This API uses an [OpenID Connect (OIDC) authentication flow](/core-exchange/authentication) and accepts the resulting [access token](/core-exchange/authentication#response-parameters) as a bearer token. For example, `curl -H 'Authorization: Bearer '`.\n",openIdConnectUrl:"https://www.your-organization.com/.well-known/openid-configuration"},oauth2:{type:"oauth2",description:"This API uses an [OAuth2.0 authorization code flow](https://auth0.com/docs/get-started/authentication-and-authorization-flow/authorization-code-flow) and accepts the resulting access token as a bearer token. For example, `curl -H 'Authorization: Bearer '`.\n",flows:{authorizationCode:{authorizationUrl:"https://www.your-organization.com/authorize",tokenUrl:"https://www.your-organization.com/token",scopes:{Account:"(optional) Read account data",Customer:"(optional) Read customer data",Transactions:"(optional) Read transaction data"}}}}},parameters:{LimitQuery:{name:"limit",in:"query",description:"Number of elements that the API consumer wishes to receive. Plaid has a default limit of 100 elements. If this value differs from your organization's limit for the number of items to send in one response, then pick the lower of the two different limits and use the lower limit to define the number of items you send on each page of a paginated response. Plaid then gets the next page by making a new request with the opaque `nextOffset` field that your organization returned in the latest response, until your organization omits `nextOffset` in the response to indicate the last page.\n",schema:{type:"integer"}},OffsetQuery:{name:"offset",in:"query",description:"Plaid receives this value from your organization's latest response in a paginated response, and returns it to in a new request to get the next page. Your organization omits `nextOffset` in the response to indicate the last page.\n",schema:{type:"string",example:"qwer123454q2f"}},AccountIdPath:{name:"accountId",in:"path",description:"Account identifier, found in the `GET /accounts` endpoint response. Plaid expects the ID to be a different value from the account number.\n",required:!0,schema:{type:"string"}},EndTimeQuery:{name:"endTime",in:"query",description:"End time for use in retrieval of elements (ISO 8601). For transactions, Plaid expects this to filter by the `postedTimestamp`.",schema:{$ref:"#/components/schemas/DateString"}},StartTimeQuery:{name:"startTime",in:"query",description:"Start time for use in retrieval of elements (ISO 8601). For transactions, Plaid expects this to filter by the `postedTimestamp`.",schema:{$ref:"#/components/schemas/DateString"}}},schemas:{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"},region:{$ref:"#/components/schemas/String64",description:"State or province or territory."},postalCode:{type:"string",maxLength:16,description:"Postal code"},country:{$ref:"#/components/schemas/Iso3166CountryCode",description:"Country code"}},required:["line1","city","country"]},CustomerWithId:{title:"Customer entity.",description:"Represents a customer. Plaid-specific schema created to hold one property, the `customerId` property of the FDX `Customer` schema.\n",type:"object",properties:{customerId:{$ref:"#/components/schemas/Identifier",description:"Long-term persistent identity of the customer. This identity must be unique within your organization. Plaid consumes this customer ID if your organization uses OAuth2 instead of OIDC to secure the API. Plaid expects your organization to issue the ID as a consistent, static, opaque, unique identifier for the user\n"}},required:["customerId"]},CustomerWithName:{title:"Customer entity",description:"Represents a customer. Plaid-specific schema created to hold one property, the `name` property of the FDX `Customer` schema.\n",type:"object",properties:{name:{$ref:"#/components/schemas/CustomerName"}},required:["name"]},CustomerName:{title:"Customer Name entity",description:"The name of an individual in their role as a customer. Plaid expects at least one populated name field. If any field is missing (for example, no first name), then you respond with an empty string for that field.\n",type:"object",allOf:[{$ref:"#/components/schemas/IndividualName"},{type:"object",properties:{prefix:{description:"Name prefix, e.g. Mr.",type:"string"}}}]},DeliveryAddress:{title:"Delivery Address",description:"A delivery address and its location type",type:"object",allOf:[{$ref:"#/components/schemas/Address"}]},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"}},required:["first","last"]},PageMetadata:{title:"Page Metadata",description:"Contains opaque identifier, `nextoffset`, for paginated result sets. The `nextOffset` ID doesn't need to be numeric or have any specific pattern. In other words, your organization can implement this however you prefer. The presence of this offset indicates that there's at least one more page of data available. The absence of this offset indicates that there are no more pages of data left in this paginated array. The API consumer returns this in the `offset` parameter in a new request to get the next page in the response array.\n",type:"object",properties:{nextOffset:{type:"string",example:"qwer123454q2f",description:"Opaque offset identifier."}}},PaginatedArray:{title:"Paginated Array",description:"Base class for results that may be paginated",type:"object",properties:{page:{$ref:"#/components/schemas/PageMetadata"}}},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,description:"Country calling codes defined by ITU-T recommendations E.123 and E.164"},number:{type:"string",maxLength:15,pattern:"\\d+",description:"Telephone subscriber number defined by ITU-T recommendation E.164"}},required:["number","type"]},AccountContact:{title:"Account Contact entity",description:"Contact information for the account.",type:"object",properties:{holders:{type:"array",items:{$ref:"#/components/schemas/AccountHolder"},minItems:1,description:"Owners of the account. Note that while the [FDX specification](https://financialdataexchange.org) enables associating holders and their contact information in the full `AccountHolder` schema, Plaid doesn't consume these associations. Instead, Plaid consumes limited information for each `AccountHolder` and doesn't associate contact information such as emails, addresses, or telephone numbers to account holders. For more information about Plaid's data model for account contact information, see [Identity](https://plaid.com/docs/api/products/identity/).\n",example:[{relationship:"SECONDARY",name:{first:"Ernest",middle:"Miller",last:"Hemingway",suffix:"IV"}},{relationship:"PRIMARY_JOINT",name:{first:"Maya",last:"Angelou",middle:"Annie"}}]},emails:{type:"array",items:{type:"string"},minItems:1,description:"Email addresses associated with the account.\n",example:["ernest.m.hemingway@domain.tld","m.angelou@domain.tld"]},addresses:{type:"array",items:{$ref:"#/components/schemas/DeliveryAddress"},minItems:1,description:"Physical mail addresses associated with the account.\n",example:[{line1:"1850 N Clark St",line2:"Apartment 103",city:"Chicago",region:"IL",postalCode:"60614",country:"US"},{line1:"2014 N Main St",city:"San Francisco",region:"CA",postalCode:"94105",country:"US"}]},telephones:{type:"array",items:{$ref:"#/components/schemas/TelephoneNumber"},minItems:1,description:"Telephone numbers associated with the account.\n",example:[{type:"HOME",country:"1",number:"3127771926"},{type:"CELL",country:"53",number:"45915607"},{type:"HOME",country:"1",number:"4157771926"}]}},required:["holders","emails","addresses","telephones"]},AccountDescriptor:{title:"Account Descriptor entity",description:"This descriptor provides minimal information about the account for use in lightweight arrays",type:"object",properties:{accountId:{description:"Long-term persistent identity of the account, though not an account number. This identity must be unique within your organization.\n",$ref:"#/components/schemas/Identifier"},accountNumberDisplay:{description:"Account display number for the end user's handle at the owning financial institution. Plaid expects that the last 4 digits of this masked number correspond to the last 4 digits of the account number.\n",type:"string",example:"4321"},productName:{type:"string",description:"Marketed product name for this account. Used in UIs to assist in account selection"},nickname:{description:"Name given by the user. Used in UIs to assist in account selection. Plaid recommends returning this only if the account permits user renaming.\n",type:"string"},status:{$ref:"#/components/schemas/AccountStatus"},currency:{$ref:"#/components/schemas/Currency"}},required:["accountId","productName","status","currency"]},AccountHolder:{title:"Account Holder entity",type:"object",allOf:[{$ref:"#/components/schemas/CustomerWithName"},{type:"object",properties:{relationship:{$ref:"#/components/schemas/AccountHolderRelationship",description:"Customer's relationship to the account"}}}]},AccountPaymentNetwork:{title:"Payment Network Supported by Account",description:"This provides details required to execute a transaction against the account within the payment network",type:"object",properties:{bankId:{type:"string",description:"Bank identifier used by the payment network ie. Routing Number"},identifier:{type:"string",description:"The number used to identify the account within the payment network."},type:{$ref:"#/components/schemas/PaymentNetworkType"},transferIn:{type:"boolean",description:"Can transfer funds to the account using this information. Plaid expect that this value represents the account's current ability to be credited through a payment network.\nPlaid recommends dynamically updating this value, for example to represent if the account is locked or not.\n\n**Note:** Both `transferIn` and `transferOut` must be `true` in order for the account to support ACH.\n"},transferOut:{type:"boolean",description:"Can transfer funds from the account using this information. Plaid expect that this value represents the account's current ability to be debited through a payment network.\nPlaid recommends dynamically updating this value, for example to represent if the account is locked or not.\n\n**Note:** Both `transferIn` and `transferOut` must be `true` in order for the account to support ACH.\n"}},required:["bankId","identifier","type","transferIn","transferOut"]},AccountWithDetails:{title:"Account With Details entity",description:"An account with full details",type:"object",oneOf:[{type:"object",title:"Deposit Account",properties:{depositAccount:{$ref:"#/components/schemas/DepositAccountFull"}},required:["depositAccount"],additionalProperties:!1},{type:"object",title:"Investment Account",properties:{investmentAccount:{$ref:"#/components/schemas/InvestmentAccountFull"}},required:["investmentAccount"],additionalProperties:!1},{type:"object",title:"Loan Account",properties:{loanAccount:{$ref:"#/components/schemas/LoanAccountFull"}},required:["loanAccount"],additionalProperties:!1},{type:"object",title:"Line of Credit Account",properties:{locAccount:{$ref:"#/components/schemas/LocAccountFull"}},required:["locAccount"],additionalProperties:!1}]},AccountWithDescriptor:{title:"Account With Descriptor entity",description:"This provides an instance of an account without full details",type:"object",anyOf:[{type:"object",title:"Deposit Account",properties:{depositAccount:{$ref:"#/components/schemas/DepositAccountDescriptor",description:"A deposit account. For example, a checking, savings or money market account.\nPlaid consumes more detailed information for `CHECKING` and `SAVINGS` accounts.\n\nThe `accountType` field for deposit accounts may be set to any of the following:\n\n
      \n
    • `CHECKING`: A deposit account held at a financial institution that allows withdrawals and deposits.
    • \n
    • `SAVINGS`: An interest-bearing deposit account held at a bank or other financial institution.
    • \n
    • `CD`: A certificate of deposit (CD) is a product offered by banks and credit unions that provides an interest rate premium in exchange for the customer agreeing to leave a lump-sum deposit untouched for a predetermined period of time.
    • \n
    • `COMMERCIALDEPOSIT`: A deposit account for commercial customers, for example a business trust account.
    • \n
    • `ESCROW`: A contractual arrangement in which a third party (the stakeholder or escrow agent) receives and disburses money or property for the primary transacting parties, with the disbursement dependent on conditions agreed to by the transacting parties.
    • \n
    • `MONEYMARKET`: A deposit account that pays interest based on current interest rates in the money markets.
    • \n
    • `OTHERDEPOSIT`: Use when none of the listed enums apply.
    • \n
    \n"}},required:["depositAccount"],additionalProperties:!1},{type:"object",title:"Loan Account",properties:{loanAccount:{$ref:"#/components/schemas/LoanAccountDescriptor",description:"A loan account. For example, mortgage, student loan or auto loan.\nPlaid consumes more detailed information for `MORTGAGE` and `STUDENTLOAN` accounts.\n\nThe `accountType` field for loan accounts may be set to any of the following:\n\n
      \n
    • `AUTOLOAN`: A type of loan used to finance a car purchase.
    • \n
    • `COMMERCIALLOAN`: A preset borrowing limit that can be used at any time.
    • \n
    • `HOMEEQUITYLOAN`: A type of loan in which the borrower uses the equity of his or her home as collateral.
    • \n
    • `INSTALLMENT`: A type of agreement or contract involving a loan that is repaid over time with a set number of scheduled payments.
    • \n
    • `LOAN`: The lending of money by one or more individuals, organizations, or other entities to other individuals, organizations etc.
    • \n
    • `MILITARYLOAN`: A military loan.
    • \n
    • `MORTGAGE`: A type of loan you can use to buy or refinance a home.
    • \n
    • `PERSONALLOAN`: A type of debt that is not protected by a guarantor, or collateralized by a lien on specific assets of the borrower.
    • \n
    • `SMBLOAN`: A small/medium business loan.
    • \n
    • `STUDENTLOAN`: A type of loan designed to help students pay for post-secondary education and the associated fees, such as tuition, books and supplies, and living expenses.
    • \n
    \n"}},required:["loanAccount"],additionalProperties:!1},{type:"object",title:"Line of Credit Account",properties:{locAccount:{$ref:"#/components/schemas/LocAccountDescriptor",description:"A line-of-credit account. For example, a credit card or home equity line of credit.\nPlaid consumes more detailed information for `CREDITCARD` accounts.\n\nThe `accountType` field for line of credit accounts may be set to any of the following:\n\n
      \n
    • `LINEOFCREDIT`: A credit facility extended by a bank or other financial institution to a government, business or individual customer that enables the customer to draw on the facility when the customer needs funds.
    • \n
    • `CHARGE`: An account to which goods and services may be charged on credit.
    • \n
    • `COMMERCIALLINEOFCREDIT`: An account with a preset borrowing limit that can be used at any time.
    • \n
    • `CREDITCARD`: Allows cardholders to borrow funds with which to pay for goods and services with merchants that accept cards for payment.
    • \n
    • `HOMELINEOFCREDIT`: A loan in which the lender agrees to lend a maximum amount within an agreed period, where the collateral is the borrower's equity in their house.
    • \n
    \n"}},required:["locAccount"],additionalProperties:!1},{type:"object",title:"Investment Account",properties:{investmentAccount:{$ref:"#/components/schemas/InvestmentAccountDescriptor",description:"An investment account. For example, a 401K or IRA.\nPlaid consumes the same details for all investment accounts.\n\nThe `accountType` field for investment accounts may be set to any of the following:\n\n
      \n
    • `401A`: An employer-sponsored money-purchase retirement plan that allows dollar or percentage-based contributions from the employer, the employee, or both.
    • \n
    • `401K`: An employer-sponsored defined-contribution pension account defined in subsection 401(k) of the Internal Revenue Code.
    • \n
    • `403B`: A U.S. tax-advantaged retirement savings plan available for public education organizations, some non-profit employers (only Internal Revenue Code 501(c)(3) organizations), cooperative hospital service organizations, and self-employed ministers in the United States.
    • \n
    • `529`: A tax-advantaged savings plan designed to help pay for education.
    • \n
    • `BROKERAGEPRODUCT`: Investment management offered by a licensed brokerage firm that places trades on behalf of the customer, utilizing any number of investment options.
    • \n
    • `COMMERCIALINVESTMENT`: Investment Account for Commercial Customers. e.g. Commercial Brokerage Account.
    • \n
    • `COVERDELL`: A trust or custodial account set up in the United States solely for paying qualified education expenses for the designated beneficiary of the account.
    • \n
    • `DIGITALASSET`: An account containing digital assets.
    • \n
    • `DEFINEDBENEFIT`: An employer-sponsored retirement plan where employee benefits are computed using a formula that considers several factors, such as length of employment and salary history.
    • \n
    • `ESOP`: An employee stock ownership plan (ESOP) is an employee benefit plan that gives workers ownership interest in the company.
    • \n
    • `GUARDIAN`: An account of a child in the parent's name, with legal title to the assets in the account, as well as all capital gains and tax liabilities produced from the account belonging to the parent.
    • \n
    • `INSTITUTIONALTRUST`: An institutional trust account.
    • \n
    • `IRA`: An individual retirement account (IRA) is a tax-advantaged account that individuals use to save and invest for retirement.
    • \n
    • `KEOGH`: A tax-deferred pension plan available to self-employed individuals or unincorporated businesses for retirement purposes.
    • \n
    • `NONQUALIFIEDPLAN`: A type of tax-deferred employer-sponsored retirement plan that falls outside of ERISA guidelines.
    • \n
    • `OTHERINVESTMENT`: Use when none of the listed enums apply.
    • \n
    • `ROLLOVER`: An account containing investments rolled over from an employee-sponsored account.
    • \n
    • `ROTH`: An individual retirement account that offers tax-free growth and tax-free withdrawals in retirement.
    • \n
    • `SARSEP`: A simplified employee pension (SEP) plan set up before 1997 that includes a salary reduction arrangement.
    • \n
    • `TAXABLE`: A taxable investment account.
    • \n
    • `TDA`: TreasuryDirect Account.
    • \n
    • `TRUST`: A type of financial account that is opened by an individual and managed by a designated trustee for the benefit of a third party in accordance with agreed-upon terms.
    • \n
    • `TERM`: Life insurance that provides coverage at a fixed rate of payments for a limited period of time.
    • \n
    • `UGMA`: Uniform Gifts to Minors Act account.
    • \n
    • `UTMA`: Uniform Transfers to Minors Act account.
    • \n
    \n"}},required:["investmentAccount"],additionalProperties:!1},{type:"object",title:"Insurance Account",properties:{insuranceAccount:{$ref:"#/components/schemas/InsuranceAccountDescriptor",description:"An insurance account. For example, whole life insurance or short-term disability.\n\nThe `accountType` field for insurance accounts may be set to any of the following:\n\n
      \n
    • `LONGTERMDISABILITY`: Insurance that replaces a portion of the policyholder's income due to a disability for an extended period of time, usually more than a year.
    • \n
    • `SHORTTERMDISABILITY`: Insurance that replaces a portion of the policyholder's income due to a disability for a short period of time, usually less than a year.
    • \n
    • `UNIVERSALLIFE`: A type of a cash value life insurance where the excess of premium payments above the current cost of insurance is credited to the cash value of the policy, which in turn is credited each month with interest.
    • \n
    • `WHOLELIFE`: Life insurance which is guaranteed to remain in force for the insured's entire lifetime, provided required premiums are paid, or to the maturity date.
    • \n
    \n"}},required:["insuranceAccount"],additionalProperties:!1},{type:"object",title:"Annuity Account",properties:{annuityAccount:{$ref:"#/components/schemas/AnnuityAccountDescriptor",description:"An annuity account. For example, a fixed or variable annuity account.\n\nThe `accountType` field for annuity accounts may be set to any of the following:\n\n
      \n
    • `ANNUITY`: A form of insurance or investment entitling the investor to a series of annual sums.
    • \n
    • `FIXEDANNUITY`: A type of insurance contract that promises to pay the buyer a specific, guaranteed interest rate on their contributions to the account.
    • \n
    • `VARIABLEANNUITY`: A type of insurance contract that promises to pay back the buyer based on the performance of an underlying portfolio of mutual funds selected by the buyer.
    • \n
    \n"}},required:["annuityAccount"],additionalProperties:!1}]},Accounts:{title:"Accounts entity",description:"An optionally paginated array of accounts",type:"object",allOf:[{$ref:"#/components/schemas/PaginatedArray"},{type:"object",properties:{accounts:{type:"array",items:{$ref:"#/components/schemas/AccountWithDetails"},description:"An array of accounts. May include accounts of any of the following types: [deposit](#deposit-account), [investment](#investment-account), [line of credit](#line-of-credit-account), [loan](#loan-account)\n\n**Note:** Each object in the accounts array is expected to contain at least one account type.\n",minItems:1}},required:["accounts"]}]},AnnuityAccountDescriptor:{allOf:[{$ref:"#/components/schemas/AccountDescriptor"},{type:"object",properties:{accountType:{$ref:"#/components/schemas/AnnuityAccountType"}},required:["accountType"]}],"x-examples":[{annuityAccount:{accountId:"annuityAccount0000001",accountType:"FIXEDANNUITY",accountNumberDisplay:"53901",productName:"Fixed Annuity",nickname:"Fixed annuity 1",status:"OPEN",currency:{currencyCode:"USD"}}}]},Currency:{title:"Currency entity",description:"Represents an international currency.",type:"object",properties:{currencyCode:{$ref:"#/components/schemas/Iso4217Code",description:"ISO 4217 currency code"}},required:["currencyCode"]},DepositAccount:{allOf:[{$ref:"#/components/schemas/AccountDescriptor"},{type:"object",properties:{accountType:{$ref:"#/components/schemas/DepositAccountType"}},required:["accountType"]}]},DepositAccountDescriptor:{title:"Deposit Account entity",description:'Full details of a deposit account. Plaid consumes the same information for all types of deposit accounts.\nPlaid expects a decimal amount with two places (to represent fractional values of the base currency) for all monetary amounts. For example, `"currentBalance": 192.00`.\n\nThe `accountType` field for deposit accounts may be set to any of the [account types](#deposit-account-types) listed below.\n',type:"object",properties:{depositAccount:{$ref:"#/components/schemas/DepositAccount"}},required:["depositAccount"],"x-examples":[{depositAccount:{accountId:"depositAccount0000001",accountType:"CHECKING",accountNumberDisplay:"5820",productName:"Checking",nickname:"Main Checking",status:"OPEN",currency:{currencyCode:"USD"}}}]},DepositAccountFull:{title:"Deposit Account entity",description:'Full details of a deposit account. Plaid consumes the same information for all types of deposit accounts.\nPlaid expects a decimal amount with two places (to represent fractional values of the base currency) for all monetary amounts. For example, `"currentBalance": 192.00`.\n\nThe `accountType` field for deposit accounts may be set to any of the [account types](#deposit-account-types) listed below.\n',type:"object",properties:{depositAccount:{allOf:[{$ref:"#/components/schemas/DepositAccount"},{type:"object",properties:{currentBalance:{type:"number",description:"Current balance of the deposit account"},availableBalance:{type:"number",description:"Available balance of the deposit account"}},required:["currentBalance","availableBalance"]}]}},required:["depositAccount"],"x-examples":[{depositAccount:{accountId:"someLongTermUniqueIDString",accountNumberDisplay:"4321",productName:"string",nickname:"string",status:"CLOSED",currency:{currencyCode:"AED"},accountType:"CHECKING",currentBalance:0,availableBalance:0}}]},DepositTransaction:{title:"Deposit Transaction entity",description:"A transaction on a deposit account type",type:"object",allOf:[{$ref:"#/components/schemas/Transaction"},{type:"object",properties:{payee:{$ref:"#/components/schemas/String255",description:"Payee name"},checkNumber:{type:"integer",description:"Check number. Plaid expects this solely if the transaction involves a check.\n"}}}],"x-examples":[{transactionId:"depositTransaction000000001",transactionTimestamp:"2022-04-05T00:00:00.000Z",description:"check for latest ACME invoice",debitCreditMemo:"DEBIT",status:"PENDING",amount:400,payee:"Acme LLC",checkNumber:57448}]},Holding:{title:"Holding entity",description:"A holding in an investment account.\nPlaid maps the `holding` and the `investmentAccount` FDX models to its securities models, which hold universal information like the ticker symbol, and to its holdings models, which hold account-specific information like balances. For more information, see [Plaid investments](https://plaid.com/docs/investments/#securities-and-holdings).\n",allOf:[{type:"object",properties:{securityId:{description:"If you return the `securityId` for a holding, Plaid uses it to look up the closing price from NYSE Group Security Master. If you don't return `securityId` for a holding that uses security IDs (not recommended), Plaid uses the `unitPrice` as the closing price.\nThis field, along with `securityIdType` are **required** unless `symbol` is provided.\n**Note:** If `securityId` is provided, `securityIdType` is required.\n",type:"string"},securityIdType:{$ref:"#/components/schemas/SecurityIdType"},holdingName:{type:"string",description:"Holding name or security name"},holdingType:{$ref:"#/components/schemas/HoldingType"},holdingSubType:{$ref:"#/components/schemas/HoldingSubType",description:"MONEYMARKET, CASH"},symbol:{type:"string",description:"Ticker / Market symbol\nThis field is **required** unless both `securityId` and `securityIdType` are provided."},purchasedPrice:{type:"number",description:"Price of holding at the time of purchase. Plaid determines an approximate [cost basis](https://plaid.com/docs/api/products/investments/#investments-holdings-get-response-holdings-cost-basis) using the purchase price and the number of units. Plaid cannot take fees into account to determine the cost basis because the FDX holding schema doesn't include fees.\n"},currentUnitPrice:{type:"number",description:"Current unit price. Plaid uses this as the [institution_price](https://plaid.com/docs/api/products/investments/#investments-holdings-get-response-holdings-institution-price). Plaid falls back to using this as the [close price](https://plaid.com/docs/api/products/investments/#investments-holdings-get-response-securities-close-price) if you don't return `securityId` for holdings involving securities.\n"},currentUnitPriceDate:{$ref:"#/components/schemas/DateString",description:"Current unit price as of date"},units:{type:"number",description:"Plaid requires this field for holdings and transactions involving securities.\nFor security-based actions other than stock splits, quantity.\nShares for stocks, mutual funds, and others. Face value for bonds.\nContracts for options.\n\n**Note:** This field is required if the transaction involves a security.\n"},marketValue:{type:"number",description:"Market value at the time of data retrieved"},faceValue:{type:"number",description:"Required for bonds. Face value at the time of data retrieved. If this isn't present, Plaid assumes the holding isn't a bond and falls back to `marketValue`.\n"},cashAccount:{type:"boolean",description:"If true, indicates that this holding is used to maintain proceeds from sales, dividends, and other cash postings to the investment account. If you don't set a value for `isCashEquivalent` in the `fiAttributes` array, then Plaid uses `cashAccount` in determining the [is_cash_equivalent](https://plaid.com/docs/api/products/investments/#investments-holdings-get-response-securities-is-cash-equivalent) status.\n"},currency:{$ref:"#/components/schemas/Currency",description:"Currency information if it is different from Account entity."},fiAttributes:{type:"array",description:"Array of financial institution-specific attributes. Plaid recommends including a value for [is_cash_equivalent](https://plaid.com/docs/api/products/investments/#investments-holdings-get-response-securities-is-cash-equivalent) property in this array. Plaid accepts `isCashEquivalent` as the attribute name and a string value of `true` or `false`. If you return a value for `isCashEquivalent`, then return the same value for `cashAccount` as a boolean.\n",items:{$ref:"#/components/schemas/FiAttribute"}}},required:["cashAccount","marketValue"]}]},InsuranceAccountDescriptor:{allOf:[{$ref:"#/components/schemas/AccountDescriptor"},{type:"object",properties:{accountType:{$ref:"#/components/schemas/InsuranceAccountType"}},required:["accountType"]}],"x-examples":[{insuranceAccount:{accountId:"insuranceAccount0000001",accountType:"LONGTERMDISABILITY",accountNumberDisplay:"5820",productName:"Long-term disability",nickname:"Long term",status:"OPEN",currency:{currencyCode:"USD"}}}]},InvestmentAccount:{allOf:[{$ref:"#/components/schemas/AccountDescriptor"},{type:"object",properties:{accountType:{$ref:"#/components/schemas/InvestmentAccountType"}},required:["accountType"]}]},InvestmentAccountDescriptor:{description:"The type of investment account. For example, a 401K or IRA. Plaid consumes the same details for all investment accounts. The `accountType` field for investment accounts may be set to any of the [account types](#investment-account-types) listed below.\n",type:"object",properties:{investmentAccount:{$ref:"#/components/schemas/InvestmentAccount"}},required:["investmentAccount"],"x-examples":[{investmentAccount:{accountId:"investmentAccount0000001",accountType:"TAXABLE",accountNumberDisplay:"1050",productName:"Brokerage Account",nickname:"First plaidypus Brokerage",status:"OPEN",currency:{currencyCode:"USD"}}}]},InvestmentAccountFull:{description:"The type of investment account. For example, a 401K or IRA. Plaid consumes the same details for all investment accounts. The `accountType` field for investment accounts may be set to any of the [account types](#investment-account-types) listed below.\n",type:"object",properties:{investmentAccount:{allOf:[{$ref:"#/components/schemas/InvestmentAccount"},{type:"object",description:'Full details of an investment account. Plaid consumes all `InvestmentAccount` FDX fields for all types of investment accounts.\nIn the holdings array, Plaid consumes fields depending on their relevancy to the holding type. See the `holdings` array for more information.\nPlaid expects a decimal amount with two places (to represent fractional values of the base currency) for all monetary amounts. For example, `"currentBalance": 192.00`.\n',properties:{availableCashBalance:{type:"number",description:"Cash balance across all sub-accounts. Plaid expects that this includes sweep funds."},balanceAsOf:{description:"As-of date of balances.\n\nISO 8601 date-time in format `YYYY-MM-DDThh:mm:ss.nnn[Z|[+|-]hh:mm]` according to [IETF RFC3339](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6)\n",$ref:"#/components/schemas/Timestamp"},currentValue:{type:"number",description:"Total current value of all investments."},holdings:{type:"array",description:"Holdings in the investment account.\nPlaid maps the `holding` and the `investmentAccount` FDX models to its securities models, which hold universal information like the ticker symbol, and to its holdings models, which hold account-specific information like balances. For more information, see [Plaid investments](https://plaid.com/docs/investments/#securities-and-holdings).\n",items:{$ref:"#/components/schemas/Holding"}}},required:["availableCashBalance","currentValue"]}]}},"x-examples":[{investmentAccount:{accountId:"investmentAccount0000001",accountType:"TAXABLE",accountNumberDisplay:"1050",productName:"Brokerage Account",nickname:"First plaidypus Brokerage",status:"OPEN",currency:{currencyCode:"USD"},availableCashBalance:4302.39,balanceAsOf:null,currentValue:4302.39,holdings:[{securityId:"string",securityIdType:"CINS",holdingName:"string",holdingType:"ANNUITY",holdingSubType:"CASH",symbol:"MTSN",purchasedPrice:12.5,currentUnitPrice:34.2,currentUnitPriceDate:"2024-07-15",units:100,marketValue:3400,faceValue:3400,cashAccount:!0,currency:{currencyCode:"AED"},fiAttributes:[{name:"string",value:"string"}]}]}}]},InvestmentTransaction:{title:"Investment Transaction entity",description:"A transaction on an investment account.\nIn addition to the required fields in the base `Transaction` model, Plaid requires the following fields\nfor all transactions on an investment account:\n\n* `fees`\n* `transactionType`\n\nIf the transaction involves a security, Plaid additionally requires the following fields:\n\n* `unitPrice`\n* `units`\n* Either of the following:\n - `symbol`\n - `securityId` and `securityIdType`\n",type:"object",allOf:[{$ref:"#/components/schemas/Transaction"},{type:"object",properties:{transactionType:{$ref:"#/components/schemas/InvestmentTransactionType"},securityId:{type:"string",description:"If you return the `securityId` for a holding, Plaid uses it to look up the closing price from NYSE Group Security Master. If you don't return `securityId` for a holding that uses security IDs (not recommended), Plaid uses the `unitPrice` as the closing price.\nThis field, along with `securityIdType` are **required** unless `symbol` is provided.\n**Note:** If `securityId` is provided, `securityIdType` is required.\n"},securityIdType:{$ref:"#/components/schemas/SecurityIdType"},securityType:{$ref:"#/components/schemas/SecurityType",description:"STOCK, MUTUALFUND, DEBT, OPTION, SWEEP, OTHER, BOND"},symbol:{type:"string",description:"Ticker symbol\nThis field is **required** unless both `securityId` and `securityIdType` are provided."},commission:{type:"number",description:"Plaid expects that your organization includes a value for commission if the commission isn't included in `fees`.\n"},fees:{type:"number",description:"Fees applied to the trade. Plaid expects that the `fees` include the commission, unless your organization separately provides a value for `commission`.\n"},unitPrice:{type:"number",description:"Unit price. Plaid uses this as the [price](https://plaid.com/docs/api/products/investments/#investments-transactions-get-response-investment-transactions-price).\nPlaid falls back to using this as the [close price](https://plaid.com/docs/api/products/investments/#investments-transactions-get-response-securities-close-price)\nif you don't return `securityId` for transactions involving securities.\n\n**Note:** This field is required if the transaction involves a security.\n"},units:{type:"number",description:"Plaid requires this field for holdings and transactions involving securities.\nFor security-based actions other than stock splits, quantity.\nShares for stocks, mutual funds, and others. Face value for bonds.\nContracts for options.\n\n**Note:** This field is required if the transaction involves a security.\n"},unitType:{$ref:"#/components/schemas/UnitType",description:"SHARES, CURRENCY"},fiAttributes:{type:"array",description:"Array of financial institution-specific attributes. Plaid recommends including a value for [is_cash_equivalent](https://plaid.com/docs/api/products/investments/#investments-transactions-get-response-securities-is-cash-equivalent) property in this array. Plaid accepts `isCashEquivalent` as the attribute name and a string value of `true` or `false`.\n",items:{$ref:"#/components/schemas/FiAttribute"}}},required:["fees","transactionType"]}],"x-examples":[{transactionId:"investmentTransaction000000001",transactionTimestamp:"2022-04-05T00:00:00.000Z",description:"check for latest ACME invoice",debitCreditMemo:"DEBIT",status:"PENDING",amount:400,transactionType:"CHECK",securityId:"APW881",securityIdType:"CMC",securityType:"DEBT",symbol:"MSFT",commission:.1,unitPrice:15.3,units:1e3,unitType:"SHARES",fiAttributes:[{name:"Vanguard",value:80}]}]},LoanAccount:{title:"Loan Account entity",type:"object",allOf:[{$ref:"#/components/schemas/AccountDescriptor"},{type:"object",properties:{accountType:{$ref:"#/components/schemas/LoanAccountType"},accountNumber:{type:"string",example:"loanAccount0000001",description:"Full account number for the end user's handle for the account at the owning institution\nRequired for accountType 'MORTGAGE'\n"},principalBalance:{type:"number",example:580303.95,description:"Principal balance of loan"},escrowBalance:{type:"number",example:3400.61,description:"Escrow balance of loan"},originalPrincipal:{type:"number",example:650400,description:"Original principal of loan"},originatingDate:{$ref:"#/components/schemas/DateString",description:"Loan origination date"},loanTerm:{type:"integer",example:360,description:"Term of loan in months"},nextPaymentAmount:{type:"number",example:2483.12,description:"Amount of next payment"},nextPaymentDate:{$ref:"#/components/schemas/DateString",description:"Date of next payment"},lastPaymentAmount:{type:"number",example:2483.12,description:"Last payment amount"},lastPaymentDate:{$ref:"#/components/schemas/DateString",description:"Last payment date"},maturityDate:{$ref:"#/components/schemas/DateString",description:"Maturity date"},interestPaidYearToDate:{type:"number",description:"Interest paid year to date"},interestRate:{type:"number",example:.075,description:"The account's interest rate"},interestRateType:{$ref:"#/components/schemas/InterestRateType"}},required:["principalBalance","interestRate","interestRateType","accountType"]}]},LoanAccountDescriptor:{description:'Full details of a loan account. The `accountType` field for loan accounts may be set to any of the [account types](#loan-account-types) listed below.\n\nPlaid only consumes the `MORTGAGE` and `STUDENTLOAN` types for its [Liabilities API](https://plaid.com/docs/api/products/liabilities/). For other loan account types Plaid consumes account details and transactions.\nPlaid consumes all loan account information as returned in the `GET /accounts` endpoint, as well as the additional information listed below:\n\nRequired for all loan accounts:\n* `principalBalance`\n* `interestRate`\n* `interestRateType`\n\nOptional fields for `STUDENTLOAN` accounts:\n* `interestPaidYearToDate`\n* `lastPaymentAmount`\n* `lastPaymentDate`\n* `maturityDate`\n* `nextPaymentDate`\n* `originalPrincipal`\n* `originatingDate`\n\nRequired for `MORTGAGE` accounts:\n* `accountNumber`\n\nOptional fields for `MORTGAGE` accounts:\n* `escrowBalance`\n* `interestPaidYearToDate`\n* `lastPaymentAmount`\n* `lastPaymentDate`\n* `loanTerm`\n* `maturityDate`\n* `nextPaymentAmount`\n* `nextPaymentDate`\n* `originalPrincipal`\n* `originatingDate`\n\nPlaid expects a decimal amount with two places (to represent fractional values of the base currency) for all monetary amounts. For example, `"escrowBalance": 192.00`.\n',type:"object",properties:{loanAccount:{$ref:"#/components/schemas/LoanAccount"}},required:["loanAccount"],"x-examples":[{loanAccount:{accountId:"loanAccount0000001",accountType:"LOAN",accountNumberDisplay:"4704",productName:"Loan",nickname:"Primary Loan",status:"OPEN",currency:{currencyCode:"USD"}}}]},LoanAccountFull:{description:'Full details of a loan account. The `accountType` field for loan accounts may be set to any of the [account types](#loan-account-types) listed below.\n\nPlaid only consumes the `MORTGAGE` and `STUDENTLOAN` types for its [Liabilities API](https://plaid.com/docs/api/products/liabilities/). For other loan account types Plaid consumes account details and transactions.\nPlaid consumes all loan account information as returned in the `GET /accounts` endpoint, as well as the additional information listed below:\n\nRequired for all loan accounts:\n* `principalBalance`\n* `interestRate`\n* `interestRateType`\n\nOptional fields for `STUDENTLOAN` accounts:\n* `interestPaidYearToDate`\n* `lastPaymentAmount`\n* `lastPaymentDate`\n* `maturityDate`\n* `nextPaymentDate`\n* `originalPrincipal`\n* `originatingDate`\n\nRequired for `MORTGAGE` accounts:\n* `accountNumber`\n\nOptional fields for `MORTGAGE` accounts:\n* `escrowBalance`\n* `interestPaidYearToDate`\n* `lastPaymentAmount`\n* `lastPaymentDate`\n* `loanTerm`\n* `maturityDate`\n* `nextPaymentAmount`\n* `nextPaymentDate`\n* `originalPrincipal`\n* `originatingDate`\n\nPlaid expects a decimal amount with two places (to represent fractional values of the base currency) for all monetary amounts. For example, `"escrowBalance": 192.00`.\n',type:"object",properties:{loanAccount:{$ref:"#/components/schemas/LoanAccount"}},required:["loanAccount"],"x-examples":[{loanAccount:{accountId:"someLongTermUniqueIDString",accountNumberDisplay:"4321",productName:"string",nickname:"string",status:"CLOSED",currency:{currencyCode:"AED"},accountType:"AUTOLOAN",accountNumber:"string",principalBalance:0,escrowBalance:0,originalPrincipal:0,originatingDate:"2021-07-15",loanTerm:0,nextPaymentAmount:0,nextPaymentDate:"2021-07-15",lastPaymentAmount:0,lastPaymentDate:"2021-07-15",maturityDate:"2021-07-15",interestPaidYearToDate:0,interestRate:0,interestRateType:"FIXED"}}]},LoanTransaction:{title:"Loan Transaction entity",description:"A transaction on a loan account",type:"object",allOf:[{$ref:"#/components/schemas/Transaction"},{type:"object",properties:{transactionType:{$ref:"#/components/schemas/LoanTransactionType"}}}],"x-examples":[{transactionId:"loanTransaction000000001",transactionTimestamp:"2022-04-05T00:00:00.000Z",description:"latest ACME invoice",debitCreditMemo:"CREDIT",status:"PENDING",amount:400}]},LocAccount:{type:"object",allOf:[{$ref:"#/components/schemas/AccountDescriptor"},{type:"object",properties:{accountType:{$ref:"#/components/schemas/LocAccountType"},creditLine:{type:"number",description:"Credit limit"},availableCredit:{type:"number",description:"Available credit. Required for all accountTypes except for `CHARGE`"},nextPaymentAmount:{type:"number",description:"Amount of next payment"},nextPaymentDate:{$ref:"#/components/schemas/DateString",description:"Due date of next payment"},principalBalance:{type:"number",description:"Principal balance"},currentBalance:{type:"number",description:"Current balance of the line of credit"},minimumPaymentAmount:{type:"number",description:"Minimum payment amount"},lastPaymentAmount:{type:"number",description:"Last payment amount"},lastPaymentDate:{$ref:"#/components/schemas/DateString",description:"Last payment date"},pastDueAmount:{type:"number",description:"Amount owed that the account holder failed to pay on the due date"},lastStmtBalance:{type:"number",description:"Last statement balance"},lastStmtDate:{$ref:"#/components/schemas/DateString",description:"Last statement date"},purchasesApr:{type:"number",description:"Purchases APR"},advancesApr:{type:"number",description:"Advances APR"}},required:["currentBalance","accountType"]}]},LocAccountDescriptor:{description:'Full details of a line of credit account. The `accountType` field for line of credit accounts may be set to any of the [account types](#loc-account-types) listed below.\n\nPlaid may consume all the parameters returned by the `GET /accounts` endpoint:\n\n* `availableCredit`\n* `creditLine`\n* `currentBalance`\n\nAdditionally, for the `CREDITCARD` accountType, Plaid consumes the previous information plus the following for its liabilities product:\n\n* `advancesApr`\n* `lastPaymentAmount`\n* `lastPaymentDate`\n* `lastStmtBalance`\n* `lastStmtDate`\n* `minimumPaymentAmount`\n* `nextPaymentDate`\n* `purchasesApr`\nPlaid expects a decimal amount with two places (to represent fractional values of the base currency) for all monetary amounts. For example, `"currentBalance": 192.00`.\n',type:"object",properties:{locAccount:{$ref:"#/components/schemas/LocAccount"}},required:["locAccount"],"x-examples":[{locAccount:{accountId:"loc_01_creditcard",accountNumberDisplay:"8200",productName:"First Plaidypus Credit Card",nickname:"my travel rewards card",status:"OPEN",currency:{currencyCode:"USD"},accountType:"CREDITCARD"}}]},LocAccountFull:{description:'Full details of a line of credit account. The `accountType` field for line of credit accounts may be set to any of the [account types](#loc-account-types) listed below.\n\nPlaid may consume all the parameters returned by the `GET /accounts` endpoint:\n\n* `availableCredit`\n* `creditLine`\n* `currentBalance`\n\nAdditionally, for the `CREDITCARD` accountType, Plaid consumes the previous information plus the following for its liabilities product:\n\n* `advancesApr`\n* `lastPaymentAmount`\n* `lastPaymentDate`\n* `lastStmtBalance`\n* `lastStmtDate`\n* `minimumPaymentAmount`\n* `nextPaymentDate`\n* `purchasesApr`\nPlaid expects a decimal amount with two places (to represent fractional values of the base currency) for all monetary amounts. For example, `"currentBalance": 192.00`.\n',type:"object",properties:{locAccount:{$ref:"#/components/schemas/LocAccount"}},required:["locAccount"],"x-examples":[{locAccount:{accountId:"loc_01_creditcard",accountNumberDisplay:"8200",productName:"First Plaidypus Credit Card",nickname:"my travel rewards card",status:"OPEN",currency:{currencyCode:"USD"},minimumPaymentAmount:100,lastPaymentAmount:400,lastPaymentDate:"2022-03-30",pastDueAmount:0,lastStmtBalance:400,lastStmtDate:"2022-03-25",purchasesApr:10.25,advancesApr:15.75,currentBalance:375,availableCredit:625,accountType:"CREDITCARD"}}]},LocTransaction:{title:"Line-Of-Credit Transaction entity",description:"A line-of-credit transaction",type:"object",allOf:[{$ref:"#/components/schemas/Transaction"},{type:"object",properties:{transactionType:{$ref:"#/components/schemas/LocTransactionType"},checkNumber:{type:"integer",description:"Check number"}}}],"x-examples":[{transactionId:"locTransaction000000001",transactionTimestamp:"2022-04-05T00:00:00.000Z",description:"credit for latest ACME invoice",debitCreditMemo:"DEBIT",status:"PENDING",amount:400}]},Transaction:{title:"Transaction",description:"Base entity for financial transactions. For monetary amounts, Plaid expects a decimal amount, with two places to represent fractional values of the base currency, for example `101.99`.\n",type:"object",properties:{transactionId:{description:"Long term persistent identity of the transaction (unique to account). Plaid expects that `status: PENDING` and `status: POSTED` transactions have different IDs.",$ref:"#/components/schemas/Identifier"},referenceTransactionId:{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",$ref:"#/components/schemas/Identifier"},postedTimestamp:{description:"The date and time that the transaction was posted to the account.\n\nThis property is **required** by Plaid when `status=POSTED`.\nPlaid expects this property to be omitted when `status=PENDING`\n\nISO 8601 date-time in format `YYYY-MM-DDThh:mm:ss.nnn[Z|[+|-]hh:mm]` according to [IETF RFC3339](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6)\n",$ref:"#/components/schemas/Timestamp"},transactionTimestamp:{description:"The date and time that the transaction was added to the server backend systems. This acts as postedTimestamp when postedTimestamp is not present (pending transaction).\n\nISO 8601 date-time in format `YYYY-MM-DDThh:mm:ss.nnn[Z|[+|-]hh:mm]` according to [IETF RFC3339](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6)\n",$ref:"#/components/schemas/Timestamp"},description:{type:"string",description:"The description of the transaction"},debitCreditMemo:{$ref:"#/components/schemas/DebitCreditMemo"},category:{type:"string",description:"Transaction category, preferably MCC or SIC. Plaid expects your organization to provide MCC, if available and applicable.\n"},subCategory:{type:"string",description:"Transaction category detail"},status:{$ref:"#/components/schemas/TransactionStatus"},amount:{type:"number",description:"The amount of money in the account currency. The amount is an absolute value. Plaid relies on the `DebitCreditMemo` enum to determine the direction (and sign) of the transaction.\n"},foreignAmount:{type:"number",description:"The amount of money in the foreign currency. If this amount is specified, then Plaid expects that the `foreignCurrency` property is also set."},foreignCurrency:{$ref:"#/components/schemas/Iso4217Code",description:"The ISO 4217 code of the foreign currency"}},required:["debitCreditMemo","description","transactionId","transactionTimestamp","status","amount"]},Transactions:{title:"Transactions entity",description:"Optionally paginated array of transactions",type:"object",properties:{page:{$ref:"#/components/schemas/PageMetadata"},transactions:{description:"An array of transactions. The `transactionType` is dependent on the account type. Plaid consumes the following types of transactions: [investment](#investment-transaction), [deposit](#deposit-transaction), [loan](#loan-transaction), and [line of credit](#line-of-credit-transaction)\n\nPlaid expects your organization to return an empty array if this information isn't available.\n",type:"array",items:{oneOf:[{type:"object",title:"Deposit Transaction",properties:{depositTransaction:{$ref:"#/components/schemas/DepositTransaction"}},required:["depositTransaction"],additionalProperties:!1},{type:"object",title:"Investment Transaction",properties:{investmentTransaction:{$ref:"#/components/schemas/InvestmentTransaction",description:"A transaction on an investment account.\nIn addition to the required fields in the base `Transaction` model, Plaid requires the following fields\nfor all transactions on an investment account:\n\n* `fees`\n* `transactionType`\n\nIf the transaction involves a security, Plaid additionally requires the following fields:\n\n* `unitPrice`\n* `units`\n* Either of the following:\n - `symbol`\n - `securityId` and `securityIdType`\n"}},required:["investmentTransaction"],additionalProperties:!1},{type:"object",title:"Loan Transaction",properties:{loanTransaction:{$ref:"#/components/schemas/LoanTransaction"}},required:["loanTransaction"],additionalProperties:!1},{type:"object",title:"Line of Credit Transaction",properties:{locTransaction:{$ref:"#/components/schemas/LocTransaction"}},required:["locTransaction"],additionalProperties:!1}]}}},required:["transactions"],example:{page:{nextOffset:"qwer123454q2f"},transactions:[{depositTransaction:{transactionType:"CHECK",checkNumber:1234,payee:"ACME llc",transactionId:"depositTransaction000000001",postedTimestamp:"2022-04-06T00:00:00.000Z",transactionTimestamp:"2022-04-05T00:00:00.000Z",description:"check for latest ACME invoice",debitCreditMemo:"DEBIT",status:"PENDING",amount:400}},{depositTransaction:{transactionType:"ADJUSTMENT",transactionId:"depositTransaction000000002",postedTimestamp:"2022-04-07T00:00:00.000Z",transactionTimestamp:"2022-04-07T00:00:00.000Z",description:"reconciliation/adjustment of bank statement error",debitCreditMemo:"DEBIT",status:"POSTED",amount:.8}},{depositTransaction:{transactionType:"ATMDEPOSIT",transactionId:"depositTransaction000000003",postedTimestamp:"2022-04-08T00:00:00.000Z",transactionTimestamp:"2022-04-08T00:00:00.000Z",description:"ATM cash deposit location #1234",debitCreditMemo:"CREDIT",status:"POSTED",amount:101.8}}]}},AccountHolderRelationship:{title:"Account Holder Relationship",description:"Types of relationships between accounts and holders. Suggested values",type:"string",enum:["AUTHORIZED_USER","BUSINESS","FOR_BENEFIT_OF","FOR_BENEFIT_OF_PRIMARY","FOR_BENEFIT_OF_PRIMARY_JOINT_RESTRICTED","FOR_BENEFIT_OF_SECONDARY","FOR_BENEFIT_OF_SECONDARY_JOINT_RESTRICTED","FOR_BENEFIT_OF_SOLE_OWNER_RESTRICTED","POWER_OF_ATTORNEY","PRIMARY_JOINT_TENANTS","PRIMARY","PRIMARY_BORROWER","PRIMARY_JOINT","SECONDARY","SECONDARY_JOINT_TENANTS","SECONDARY_BORROWER","SECONDARY_JOINT","SOLE_OWNER","TRUSTEE","UNIFORM_TRANSFER_TO_MINOR"]},DateString:{title:"Date String",description:"ISO 8601 full-date in format 'YYYY-MM-DD' according to [IETF RFC3339](https://xml2rfc.tools.ietf.org/public/rfc/html/rfc3339.html#anchor14)",type:"string",format:"date",maxLength:10,example:"2021-07-15"},Identifier:{title:"Identifier",description:"Value for a unique identifier",type:"string",maxLength:256,example:"someLongTermUniqueIDString"},Iso3166CountryCode:{title:"ISO 3166 Country Code",description:"ISO 3166 Codes for the representation of names of countries and their subdivisions",type:"string",enum:["AD","AE","AF","AG","AI","AL","AM","AN","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BM","BN","BO","BR","BS","BT","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CR","CS","CU","CV","CX","CY","CZ","DE","DJ","DK","DM","DO","DZ","EC","EE","EG","EH","ER","ES","ET","FI","FJ","FK","FM","FO","FR","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RU","RW","SA","SB","SC","SD","SE","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","ST","SV","SY","SZ","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TR","TT","TV","TW","TZ","UA","UG","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","YE","YT","ZA","ZM","ZW"]},Iso4217Code:{title:"ISO 4217 Code",description:"ISO 4217 Currency codes",type:"string",enum:["AED","AFN","ALL","AMD","ANG","AOA","ARS","AUD","AWG","AZN","BAM","BBD","BDT","BGN","BHD","BIF","BMD","BND","BOB","BOV","BRL","BSD","BTN","BWP","BZD","CAD","CDF","CHE","CHF","CHW","CLF","CLP","CNY","COP","COU","CRC","CUC","CUP","CVE","CZK","DJF","DKK","DOP","DZD","EGP","ERN","ETB","EUR","FJD","FKP","GBP","GEL","GHS","GIP","GMD","GNF","GTQ","GYD","HKD","HNL","HRK","HTG","HUF","IDR","ILS","INR","IQD","IRR","ISK","JMD","JOD","JPY","KES","KGS","KHR","KMF","KPW","KRW","KWD","KYD","KZT","LAK","LBP","LKR","LRD","LSL","LYD","MAD","MDL","MGA","MKD","MMK","MNT","MOP","MUR","MVR","MWK","MXN","MXV","MYR","MZN","NAD","NGN","NIO","NOK","NPR","NZD","OMR","PAB","PEN","PGK","PHP","PKR","PLN","PYG","QAR","RON","RSD","RUB","RWF","SAR","SBD","SCR","SDG","SEK","SGD","SHP","SLL","SOS","SRD","SSP","SVC","SYP","SZL","THB","TJS","TMT","TND","TOP","TRY","TTD","TWD","TZS","UAH","UGX","USD","USN","UYI","UYU","UZS","VND","VUV","WST","XAF","XAG","XAU","XBA","XBB","XBC","XBD","XCD","XDR","XOF","XPD","XPF","XPT","XSU","XTS","XUA","XXX","YER","ZAR","ZMW","ZWL"]},String255:{title:"String 255",description:"String of maximum length 255",type:"string",maxLength:255},String64:{title:"String 64",description:"String of maximum length 64",type:"string",maxLength:64},TelephoneNumberType:{title:"Telephone Number Type",description:"Purpose or type of telephone number",type:"string",enum:["HOME","BUSINESS","CELL","FAX"]},Timestamp:{title:"Timestamp",description:"ISO 8601 date-time in format `YYYY-MM-DDThh:mm:ss.nnn[Z|[+|-]hh:mm]` according to [IETF RFC3339](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6)",type:"string",format:"date-time",example:"2021-07-15T14:46:41.375Z"},AccountStatus:{title:"Account Status",description:"The status of an account.",type:"string",enum:["CLOSED","DELINQUENT","NEGATIVECURRENTBALANCE","OPEN","PAID","PENDINGCLOSE","PENDINGOPEN","RESTRICTED"]},AnnuityAccountType:{description:"The type of an account. Plaid consumes basic balance account information from the `accounts/{accountId}` endpoint for a subset of the possible account types described in the FDX specification.\n",type:"string",example:"FIXEDANNUITY",enum:["ANNUITY","FIXEDANNUITY","VARIABLEANNUITY"]},DebitCreditMemo:{title:"DebitCreditMemo",description:"The posting type of a transaction. The transaction amount is an absolute value, and this parameter indicates the direction of the transaction. Plaid expects `DEBIT` or `CREDIT` for this enum. Plaid expects that your organization indicates the `MEMO` (i.e., pending) status using the `status` field in the transaction response rather than this field. If your organization sends `MEMO` in this `DebitCreditMemo` enum, Plaid handles this value the same as it handles `DEBIT`. * `DEBIT`: An amount leaves the account * `CREDIT`: An amount enters the account * `MEMO`: A pending transaction to be completed at the end of this day.\n",type:"string",enum:["CREDIT","DEBIT","MEMO"]},DepositAccountType:{description:"The type of an account. Plaid consumes basic balance account information from the `accounts/{accountId}` endpoint for a subset of the possible account types described in the FDX specification.\n",type:"string",example:"SAVINGS",enum:["CHECKING","SAVINGS","CD","COMMERCIALDEPOSIT","ESCROW","MONEYMARKET","OTHERDEPOSIT"]},FiAttribute:{title:"FI Attribute entity",description:"Financial Institution provider-specific attribute",type:"object",properties:{name:{type:"string",description:"The attribute's name"},value:{type:"string",description:"The attribute's value"}}},HoldingSubType:{title:"Holding SubType",description:"The subtype of an investment holding. Plaid expects you to return `OTHER` and set the `holdingSubType` to indicate cash-type holdings (CASH, MONEYMARKET).\n",type:"string",enum:["CASH","MONEYMARKET"]},HoldingType:{title:"Holding Type",description:"Plaid maps the holding type to the Plaid [security type](https://plaid.com/docs/api/products/investments/#investments-transactions-get-response-securities-type). Plaid expects you to return `OTHER` and set the `holdingSubType` to indicate cash-type holdings (CASH, MONEYMARKET).\n",type:"string",enum:["ANNUITY","BOND","CD","MUTUALFUND","OPTION","OTHER","STOCK"]},InsuranceAccountType:{description:"The type of an account. Plaid consumes basic balance account information from the `accounts/{accountId}` endpoint for a subset of the possible account types described in the FDX specification.\n",type:"string",example:"WHOLELIFE",enum:["LONGTERMDISABILITY","SHORTTERMDISABILITY","UNIVERSALLIFE","WHOLELIFE"]},InterestRateType:{title:"Interest Rate Type",description:"Specifies whether an interest rate is fixed or variable. This information is helpful for personal financial planning and advising. For example, it affects the potential benefits of refinancing, and informs whether a mortgage payment is expected to change in the future",type:"string",enum:["FIXED","VARIABLE"]},InvestmentAccountType:{description:"The type of an account. Plaid consumes basic balance account information from the `accounts/{accountId}` endpoint for a subset of the possible account types described in the FDX specification.\n",type:"string",example:"ROTH",enum:["401A","401K","403B","529","BROKERAGEPRODUCT","COMMERCIALINVESTMENT","COVERDELL","DIGITALASSET","DEFINEDBENEFIT","ESOP","GUARDIAN","INSTITUTIONALTRUST","IRA","KEOGH","NONQUALIFIEDPLAN","OTHERINVESTMENT","ROLLOVER","ROTH","SARSEP","TAXABLE","TDA","TRUST","TERM","UGMA","UTMA"]},InvestmentTransactionType:{title:"Investment Transaction Type",description:"The type of an investment transaction.\nPlaid maps these enums to Plaid [investment transaction types](https://plaid.com/docs/api/accounts/#investment-transaction-types-schema).\nPlaid doesn't map these enums to Plaid-specific transaction subtypes.\nPlaid maps these enums as follows:\n\n* ADJUSTMENT - fee\n* ATM - cash\n* CASH - cash\n* CHECK - cash\n* CLOSURE - Plaid suggests using SOLDTOCLOSE, PURCHASETOCLOSE, OPTIONEXERCISE or OPTIONEXPIRATION to indicate the specific type of closure, instead of using this enum.\n* CLOSUREOPT - Plaid suggests using SOLDTOCLOSE, PURCHASETOCLOSE, OPTIONEXERCISE or OPTIONEXPIRATION to indicate the specific type of closure, instead of using this enum.\n* CONTRIBUTION - buy (if transaction involves a security) or cash\n* DEP - cash\n* DEPOSIT - cash\n* DIRECTDEBIT - cash\n* DIRECTDEP - cash\n* DIV - cash\n* DIVIDEND - cash\n* DIVIDENDREINVEST - buy\n* EXPENSE - cash\n* FEE - fee\n* INCOME - cash\n* INTEREST - cash\n* INVEXPENSE - cash\n* JRNLFUND - transfer\n* JRNLSEC - transfer\n* MARGININTEREST - cash\n* OPTIONEXERCISE - transfer\n* OPTIONEXPIRATION - transfer\n* OTHER - cash - (unclassified)\n* PAYMENT - cash\n* POS - cash\n* PURCHASED - buy\n* PURCHASEDTOCOVER - buy\n* PURCHASETOCLOSE - buy\n* PURCHASETOOPEN - buy\n* REINVESTOFINCOME - buy\n* REPEATPMT - cash\n* RETURNOFCAPITAL - cash\n* SOLD - sell\n* SOLDTOCLOSE - sell\n* SOLDTOOPEN - sell\n* SPLIT - transfer\n* SRVCHG - fee\n* TRANSFER - transfer\n* XFER - transfer\n",type:"string",enum:["ADJUSTMENT","ATM","CASH","CHECK","CLOSURE","CLOSUREOPT","CONTRIBUTION","DEP","DEPOSIT","DIRECTDEBIT","DIRECTDEP","DIV","DIVIDEND","DIVIDENDREINVEST","EXPENSE","FEE","INCOME","INTEREST","INVEXPENSE","JRNLFUND","JRNLSEC","MARGININTEREST","OPTIONEXERCISE","OPTIONEXPIRATION","OTHER","PAYMENT","POS","PURCHASED","PURCHASEDTOCOVER","PURCHASETOCLOSE","PURCHASETOOPEN","REINVESTOFINCOME","REPEATPMT","RETURNOFCAPITAL","SOLD","SOLDTOCLOSE","SOLDTOOPEN","SPLIT","SRVCHG","TRANSFER","XFER"]},LoanAccountType:{description:"The type of an account. Plaid consumes basic balance account information from the `accounts/{accountId}` endpoint for a subset of the possible account types described in the FDX specification.\n",type:"string",example:"HOMEEQUITYLOAN",enum:["AUTOLOAN","COMMERCIALLOAN","HOMEEQUITYLOAN","INSTALLMENT","LOAN","MILITARYLOAN","MORTGAGE","PERSONALLOAN","SMBLOAN","STUDENTLOAN"]},LoanTransactionType:{title:"Loan Transaction Type",description:"The type of a loan transaction. Plaid passes through all loan transaction types.\n\n
      \n
    • `ADJUSTMENT`: Adjustment or correction.
    • \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
    • `LUMP_SUM_PAYMENT`: A single payment of money, as opposed to a series of payments made over time.
    • \n
    • `SKIP_PAYMENT`: Payment that satisfies deferral of a required payment.
    • \n
    • `DOUBLE_UP_PAYMENT`: Additional payment beyond the required payment to reduce the principal.
    • \n
    • `PAYOFF`: Payment that satisfies the terms of the mortgage loan and completely pays off the debt.
    • \n
    \n",type:"string",enum:["ADJUSTMENT","FEE","INTEREST","PAYMENT","LUMP_SUM_PAYMENT","SKIP_PAYMENT","DOUBLE_UP_PAYMENT","PAYOFF"]},LocAccountType:{description:"The type of an account. Plaid consumes basic balance account information from the `accounts/{accountId}` endpoint for a subset of the possible account types described in the FDX specification.\n",type:"string",example:"CREDITCARD",enum:["LINEOFCREDIT","CHARGE","COMMERCIALLINEOFCREDIT","CREDITCARD","HOMELINEOFCREDIT"]},LocTransactionType:{title:"Line-Of-Credit Transaction Type",description:"The type of a line of credit (LOC) transaction. Plaid passes through all LOC transaction types.\n",type:"string",enum:["ADJUSTMENT","CHECK","FEE","INTEREST","PAYMENT","WITHDRAWAL"]},PaymentNetworkType:{title:"Payment Network Type",description:"Suggested values for Payment Network Type. `US_` refers to the USA, and `CA_` refers to Canada.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
    ValueDescription
    US_ACHAutomated Clearing House, also called Fed ACH network (mostly small banks)
    US_FEDWIREFedwire Funds Service.
    US_CHIPSClearinghouse Interbank Payments System. Also called Clearing House ACH network (primarily big banks)
    CA_ACSSAutomated Clearing House Settlement System
    CA_LVTSLarge-Value Transfer System
    \n",type:"string",enum:["US_ACH","US_FEDWIRE","US_CHIPS","CA_ACSS","CA_LVTS"]},SecurityIdType:{title:"Security Id Type",description:"Plaid consumes solely CUSIP, ISIN, and SEDOL.\nThis field, along with `securityId` are **required** unless `symbol` is provided.\n**Note:** If `securityIdType` is provided, `securityId` is required.\n",type:"string",enum:["CUSIP","ISIN","SEDOL","SICC","VALOR","WKN"]},SecurityType:{title:"Security Type",description:"The type of a security",type:"string",enum:["BOND","DEBT","MUTUALFUND","OPTION","OTHER","STOCK","SWEEP"]},TransactionStatus:{title:"Transaction Status",description:"The status of a transaction. Plaid consumes solely the `PENDING` and `POSTED` enums,\nand treats `MEMO` and `AUTHORIZATION` as if they were `PENDING`. Plaid expects that pending and posted transactions\nhave different `transactionIds`.\n* `AUTHORIZATION`\n* `MEMO` - A pending transaction to be completed at the end of this day\n* `PENDING` - A pending transaction\n* `POSTED` - A posted transaction\n",type:"string",enum:["AUTHORIZATION","MEMO","PENDING","POSTED"]},UnitType:{title:"Unit Type",description:"The units of an investment transaction",type:"string",enum:["CURRENCY","SHARES"]}}}},5.1:{openapi:"3.0.3",info:{version:"5.1.0",title:"FDX V5.1",description:'## FDX compliance\n\nThe Core Exchange API specifications are a subset of the Financial Data Exchange (FDX) API specification, the usage thereof (or any part thereof) constitutes acceptance of the FDX API\nLicense Agreement, which can be found at https://financialdataexchange.org/. The FDX API specification is distributed exclusively by FDX. Modifications to eliminate required or\nconditional elements prescribed in the FDX API Certification Use Cases will render any implementations using said modifications non-conformant with the FDX API Certification Use Cases.\nPlease note that building the FDX-compliant Core Exchange API and permitting Plaid to call your build constitutes acceptance of\nthe FDX end user license agreement, which can be found at https://financialdataexchange.org/.\nThe full FDX API standard specification is distributed exclusively by FDX.\n\n## Download the specification\n\nTo view this specification and documentation as an OpenAPI YAML file, see [the public Core Exchange Github repository](https://github.com/plaid/core-exchange/tree/main/versions).\n\n## Endpoints\n\nThis specification contains the following endpoints:\n\n - `/customers/current`\n\n - `/accounts`\n\n - `/accounts/{accountId}`\n\n - `/accounts/{accountId}/payment-networks`\n\n - `/accounts/{accountId}/contact`\n\n - `/accounts/{accountId}/transactions`\n\n## Mock server\n\nSee the [mock server postman collection](/core-exchange/example) for Core Exchange v5.1.\n\n## Error responses\n\nAn 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.\nError responses must contain a `code` and `message`, and may optionally include a `debugMessage`.\nSee the descriptions below:\n\n- `code`: The FDX error code: A long-term persistent identifier which can be used to trace error condition back to log information.\n (**Note:** This code may differ from the HTTP status code.)\n- `message`: End user displayable information which might help the customer diagnose an error\n- `debugMessage`: Message used to debug the root cause of the error. Contents should not be used in consumer\'s business logic. Can change at any time and should only be used for consumer to communicate with the data provider about an issue. Provider can include an error GUID in message for their use\n\n### Example error\n\nThe following is an example response with an HTTP status code of 409.\n\n```\n{\n "code": 705,\n "message": "Account is closed",\n "debugMessage": "Operation is not supported by the closed account"\n}\n```\n\nSee the Errors table in each endpoint description for more specific message and debug message examples.\n',contact:{name:"Plaid support",url:"https://plaid.com/data-connectivity-core-exchange/",email:"dataconnectivity@plaid.com"}},servers:[{url:"https://api.your-organization.com/fdx/v5",description:"Financial Data Exchange V5.1 Core API"}],tags:[{name:"Personal Information",description:"Search and view customer or customers"},{name:"Account Information",description:"Search and view customer accounts"},{name:"Account Transactions",description:"Search and view account transactions"},{name:"Payment Networks Information",description:"Search and view account payment networks"}],paths:{"/customers/current":{get:{operationId:"getCustomerInfo",tags:["Personal Information"],description:"Get the ID of the customer within the authorization scope.\n\n**Note:**\n\n
      \n
    • If you use OIDC authentication (recommended) you do not need to implement this endpoint as Plaid identifies the customer using the OIDC `id_token` response.
    • \n
    • If you use OAuth2 authentication, Plaid uses this endpoint as an alternate method of customer identification.
    • \n
    \n",summary:"Get current authenticated customer ID",security:[{openIdConnect:[]},{oauth2:[]}],responses:{200:{description:"Data describing current authenticated customer",content:{"application/json":{schema:{$ref:"#/components/schemas/CustomerWithId"},examples:{"example-1":{value:{customerId:"someLongTermUniqueIDString"}}}}}}}}},"/accounts":{get:{operationId:"searchForAccounts",tags:["Account Information"],summary:"List all accounts",description:"Search and view customer accounts\n",security:[{openIdConnect:["Account"]},{oauth2:["Account"]}],parameters:[{$ref:"#/components/parameters/OffsetQuery"},{$ref:"#/components/parameters/LimitQuery"}],responses:{200:{description:"Array of accounts",content:{"application/json":{schema:{$ref:"#/components/schemas/Accounts"},examples:{"example-1":{value:{page:{nextOffset:"25"},accounts:[{depositAccount:{accountId:"depositAccount0000001",accountType:"CHECKING",accountNumberDisplay:"5820",productName:"Checking",nickname:"Main Checking",status:"OPEN",currency:{currencyCode:"USD"}}},{loanAccount:{accountId:"loanAccount0000001",accountType:"LOAN",accountNumberDisplay:"4704",productName:"Loan",nickname:"Primary Loan",status:"OPEN",currency:{currencyCode:"USD"}}},{locAccount:{accountId:"locAccount0000001",accountType:"LINEOFCREDIT",accountNumberDisplay:"8200",productName:"Line of Credit",nickname:"First plaidypus LOC",status:"OPEN",currency:{currencyCode:"USD"}}},{investmentAccount:{accountId:"investmentAccount0000001",accountType:"TAXABLE",accountNumberDisplay:"1050",productName:"Brokerage Account",nickname:"First plaidypus Brokerage",status:"OPEN",currency:{currencyCode:"USD"}}}]}}}}}}}}},"/accounts/{accountId}":{get:{operationId:"getAccount",tags:["Account Information"],summary:"Get account balances and liabilities",description:"Get account balances, liabilities, and other information. Plaid uses this endpoint to:\n\n
      \n
    • Get account balances for deposit accounts. For example, `CHECKING` or `SAVINGS`. For more information about how Plaid uses this information, see [Plaid Balance API](https://plaid.com/docs/api/products/balance/).
    • \n
    • Get account liabilities for `STUDENTLOAN`, `MORTGAGE`, and `CREDITCARD` loan accounts. For more information about how Plaid uses this information, see [Plaid Liabilities API](https://plaid.com/docs/api/products/liabilities/).
    • \n
    • Get balances and holdings for investment accounts. For more information about how Plaid uses this information, see [Plaid Investments API](https://plaid.com/docs/investments/).
    • \n
    \n\nSee the response schema below for a full list of possible parameters for each account type.\n",security:[{openIdConnect:["Account"]},{oauth2:["Account"]}],parameters:[{$ref:"#/components/parameters/AccountIdPath"}],responses:{200:{description:"The full details of an investment, loan, deposit, or line of credit account",content:{"application/json":{schema:{$ref:"#/components/schemas/AccountWithDetails"}}}}}}},"/accounts/{accountId}/contact":{get:{operationId:"getAccountContact",tags:["Personal Information"],description:"Get contact information on the account.\n\nPlaid links contact information to accounts, rather than to users. Plaid consumes multiple holders and their contact information for the account, but doesn't attempt to correlate holders to their respective contact information. For more information about Plaid's identity model, see [Plaid Identity API](https://plaid.com/docs/api/products/identity/).\n",summary:"Get an account's contact information",parameters:[{$ref:"#/components/parameters/AccountIdPath"}],security:[{openIdConnect:["Customer"]},{oauth2:["Customer"]}],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:["Payment Networks Information"],description:"Get payment networks supported by an account, for example ACH (Automated Clearing House). For more information about how Plaid uses this information, see the [Plaid Auth API](https://plaid.com/docs/api/products/auth/).\n",summary:"Get payment networks supported by the account",security:[{openIdConnect:["Account"]},{oauth2:["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:{properties:{page:{$ref:"#/components/schemas/PageMetadata"},paymentNetworks:{type:"array",items:{$ref:"#/components/schemas/AccountPaymentNetwork"}}},required:["paymentNetworks"]},examples:{"example-1":{page:{nextOffset:25},paymentNetworks:[{bankId:"010088889",identifier:"1111222233335820",type:"US_ACH",transferIn:!0,transferOut:!0}]}}}}}}}},"/accounts/{accountId}/transactions":{get:{operationId:"searchForAccountTransactions",tags:["Account Transactions"],description:"List all account transactions. Plaid always queries this endpoint a `startTime` and an `endTime`, for example, `/accounts/{accountId}/transactions?startTime=2022-01-30&endTime=2022-05-30`, and expects the time filters to be based on the `postedTimestamp`.\n\nPlaid consumes data from this endpoint for the following account types only:\n
      \n
    • Loan
    • \n
    • Investment
    • \n
    • Deposit
    • \n
    • Line of credit (LOC)
    • \n
    \n",summary:"List all account transactions",security:[{openIdConnect:["Transactions"]},{oauth2:["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. Plaid consumes the following transaction types: InvestmentTransaction, DepositTransaction, LoanTransaction, or LocTransaction\n",content:{"application/json":{schema:{$ref:"#/components/schemas/Transactions"},examples:{"example-1":{value:{page:{nextOffset:"2"},transactions:[{depositTransaction:{checkNumber:1234,payee:"ACME llc",transactionId:"depositTransaction000000001",postedTimestamp:"2022-04-06T00:00:00.000Z",transactionTimestamp:"2022-04-05T00:00:00.000Z",description:"check for latest ACME invoice",debitCreditMemo:"DEBIT",status:"PENDING",amount:400}},{depositTransaction:{transactionId:"depositTransaction000000002",postedTimestamp:"2022-04-07T00:00:00.000Z",transactionTimestamp:"2022-04-07T00:00:00.000Z",description:"reconciliation/adjustment of bank statement error",debitCreditMemo:"DEBIT",status:"POSTED",amount:.8}}]}}}}}}}}}},components:{securitySchemes:{openIdConnect:{type:"openIdConnect",description:"This API uses an [OpenID Connect (OIDC) authentication flow](/core-exchange/authentication) and accepts the resulting [access token](/core-exchange/authentication#response-parameters) as a bearer token. For example, `curl -H 'Authorization: Bearer '`.\n",openIdConnectUrl:"https://www.your-organization.com/.well-known/openid-configuration"},oauth2:{type:"oauth2",description:"This API uses an [OAuth2.0 authorization code flow](https://auth0.com/docs/get-started/authentication-and-authorization-flow/authorization-code-flow) and accepts the resulting access token as a bearer token. For example, `curl -H 'Authorization: Bearer '`.\n",flows:{authorizationCode:{authorizationUrl:"https://www.your-organization.com/authorize",tokenUrl:"https://www.your-organization.com/token",scopes:{Account:"(optional) Read account data",Customer:"(optional) Read customer data",Transactions:"(optional) Read transaction data"}}}}},parameters:{LimitQuery:{name:"limit",in:"query",description:"Number of elements that the API consumer wishes to receive. Plaid has a default limit of 100 elements. If this value differs from your organization's limit for the number of items to send in one response, then pick the lower of the two different limits and use the lower limit to define the number of items you send on each page of a paginated response. Plaid then gets the next page by making a new request with the opaque `nextOffset` field that your organization returned in the latest response, until your organization omits `nextOffset` in the response to indicate the last page.\n",schema:{type:"integer"}},OffsetQuery:{name:"offset",in:"query",description:"Plaid receives this value from your organization's latest response in a paginated response, and returns it to in a new request to get the next page. Your organization omits `nextOffset` in the response to indicate the last page.\n",schema:{type:"string",example:"qwer123454q2f"}},AccountIdPath:{name:"accountId",in:"path",description:"Account identifier, found in the `GET /accounts` endpoint response. Plaid expects the ID to be a different value from the account number.\n",required:!0,schema:{type:"string"}},EndTimeQuery:{name:"endTime",in:"query",description:"End time for use in retrieval of elements (ISO 8601). For transactions, Plaid expects this to filter by the `postedTimestamp`.",schema:{$ref:"#/components/schemas/DateString"}},StartTimeQuery:{name:"startTime",in:"query",description:"Start time for use in retrieval of elements (ISO 8601). For transactions, Plaid expects this to filter by the `postedTimestamp`.",schema:{$ref:"#/components/schemas/DateString"}}},schemas:{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"},region:{$ref:"#/components/schemas/String64",description:"State or province or territory."},postalCode:{type:"string",maxLength:16,description:"Postal code"},country:{$ref:"#/components/schemas/Iso3166CountryCode",description:"Country code"}},required:["line1","city","country"]},CustomerWithId:{title:"Customer entity.",description:"Represents a customer. Plaid-specific schema created to hold one property, the `customerId` property of the FDX `Customer` schema.\n",type:"object",properties:{customerId:{$ref:"#/components/schemas/Identifier",description:"Long-term persistent identity of the customer. This identity must be unique within your organization. Plaid consumes this customer ID if your organization uses OAuth2 instead of OIDC to secure the API. Plaid expects your organization to issue the ID as a consistent, static, opaque, unique identifier for the user\n",example:[{customerId:"customer0000001"}]}},required:["customerId"]},CustomerWithName:{title:"Customer entity",description:"Represents a customer. Plaid-specific schema created to hold one property, the `name` property of the FDX `Customer` schema.\n",type:"object",properties:{name:{$ref:"#/components/schemas/CustomerName"}},required:["name"]},CustomerName:{title:"Customer Name entity",description:"The name of an individual in their role as a customer. Plaid expects at least one populated name field. If any field is missing (for example, no first name), then you respond with an empty string for that field.\n",type:"object",allOf:[{$ref:"#/components/schemas/IndividualName"},{type:"object",properties:{prefix:{description:"Name prefix, e.g. Mr.",type:"string"}}}]},DeliveryAddress:{title:"Delivery Address",description:"A delivery address and its location type",type:"object",allOf:[{$ref:"#/components/schemas/Address"}]},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"}},required:["first","last"]},PageMetadata:{title:"Page Metadata",description:"Contains opaque identifier, `nextoffset`, for paginated result sets. The `nextOffset` ID doesn't need to be numeric or have any specific pattern. In other words, your organization can implement this however you prefer. The presence of this offset indicates that there's at least one more page of data available. The absence of this offset indicates that there are no more pages of data left in this paginated array. The API consumer returns this in the `offset` parameter in a new request to get the next page in the response array.\n",type:"object",properties:{nextOffset:{type:"string",example:"qwer123454q2f",description:"Opaque offset identifier."}}},PaginatedArray:{title:"Paginated Array",description:"Base class for results that may be paginated",type:"object",properties:{page:{$ref:"#/components/schemas/PageMetadata"}}},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,description:"Country calling codes defined by ITU-T recommendations E.123 and E.164"},number:{type:"string",maxLength:15,pattern:"\\d+",description:"Telephone subscriber number defined by ITU-T recommendation E.164"}},required:["number","type"]},AccountContact:{title:"Account Contact entity",description:"Contact information for the account.",type:"object",properties:{holders:{type:"array",items:{$ref:"#/components/schemas/AccountHolder"},minItems:1,description:"Owners of the account. Note that while the [FDX specification](https://financialdataexchange.org) enables associating holders and their contact information in the full `AccountHolder` schema, Plaid doesn't consume these associations. Instead, Plaid consumes limited information for each `AccountHolder` and doesn't associate contact information such as emails, addresses, or telephone numbers to account holders. For more information about Plaid's data model for account contact information, see [Identity](https://plaid.com/docs/api/products/identity/).\n",example:[{relationship:"SECONDARY",name:{first:"Ernest",middle:"Miller",last:"Hemingway",suffix:"IV"}},{relationship:"PRIMARY_JOINT",name:{first:"Maya",last:"Angelou",middle:"Annie"}}]},emails:{type:"array",items:{type:"string"},minItems:1,description:"Email addresses associated with the account.\n",example:["ernest.m.hemingway@domain.tld","m.angelou@domain.tld"]},addresses:{type:"array",items:{$ref:"#/components/schemas/DeliveryAddress"},minItems:1,description:"Physical mail addresses associated with the account.\n",example:[{line1:"1850 N Clark St",line2:"Apartment 103",city:"Chicago",region:"IL",postalCode:"60614",country:"US"},{line1:"2014 N Main St",city:"San Francisco",region:"CA",postalCode:"94105",country:"US"}]},telephones:{type:"array",items:{$ref:"#/components/schemas/TelephoneNumber"},minItems:1,description:"Telephone numbers associated with the account.\n",example:[{type:"HOME",country:"1",number:"3127771926"},{type:"CELL",country:"53",number:"45915607"},{type:"HOME",country:"1",number:"4157771926"}]}},required:["holders","emails","addresses","telephones"]},AccountDescriptor:{title:"Account Descriptor entity",description:"This descriptor provides minimal information about the account for use in lightweight arrays",type:"object",properties:{accountId:{description:"Long-term persistent identity of the account, though not an account number. This identity must be unique within your organization.\n",$ref:"#/components/schemas/Identifier"},accountNumberDisplay:{description:"Account display number for the end user's handle at the owning financial institution. Plaid expects that the last 4 digits of this masked number correspond to the last 4 digits of the account number.\n",type:"string",example:"4321"},productName:{type:"string",description:"Marketed product name for this account. Used in UIs to assist in account selection"},nickname:{description:"Name given by the user. Used in UIs to assist in account selection. Plaid recommends returning this only if the account permits user renaming.\n",type:"string"},status:{$ref:"#/components/schemas/AccountStatus"},currency:{$ref:"#/components/schemas/Currency"}},required:["accountId","productName","status","currency"]},AccountHolder:{title:"Account Holder entity",type:"object",allOf:[{$ref:"#/components/schemas/CustomerWithName"},{type:"object",properties:{relationship:{$ref:"#/components/schemas/AccountHolderRelationship",description:"Customer's relationship to the account"}}}]},AccountPaymentNetwork:{title:"Payment Network Supported by Account",description:"This provides details required to execute a transaction against the account within the payment network",type:"object",properties:{bankId:{type:"string",description:"Bank identifier used by the payment network ie. Routing Number"},identifier:{type:"string",description:"The number used to identify the account within the payment network."},type:{$ref:"#/components/schemas/PaymentNetworkType"},transferIn:{type:"boolean",description:"Can transfer funds to the account using this information. Plaid expect that this value represents the account's current ability to be credited through a payment network.\nPlaid recommends dynamically updating this value, for example to represent if the account is locked or not.\n\n**Note:** Both `transferIn` and `transferOut` must be `true` in order for the account to support ACH.\n"},transferOut:{type:"boolean",description:"Can transfer funds from the account using this information. Plaid expect that this value represents the account's current ability to be debited through a payment network.\nPlaid recommends dynamically updating this value, for example to represent if the account is locked or not.\n\n**Note:** Both `transferIn` and `transferOut` must be `true` in order for the account to support ACH.\n"}},required:["bankId","identifier","type","transferIn","transferOut"]},AccountWithDetails:{title:"Account With Details entity",description:"An account with full details",type:"object",oneOf:[{type:"object",title:"Deposit Account",properties:{depositAccount:{$ref:"#/components/schemas/DepositAccountFull"}},required:["depositAccount"],additionalProperties:!1},{type:"object",title:"Investment Account",properties:{investmentAccount:{$ref:"#/components/schemas/InvestmentAccountFull"}},required:["investmentAccount"],additionalProperties:!1},{type:"object",title:"Loan Account",properties:{loanAccount:{$ref:"#/components/schemas/LoanAccountFull"}},required:["loanAccount"],additionalProperties:!1},{type:"object",title:"Line of Credit Account",properties:{locAccount:{$ref:"#/components/schemas/LocAccountFull"}},required:["locAccount"],additionalProperties:!1}]},AccountWithDescriptor:{title:"Account With Descriptor entity",description:"This provides an instance of an account without full details",type:"object",anyOf:[{type:"object",title:"Deposit Account",properties:{depositAccount:{$ref:"#/components/schemas/DepositAccountDescriptor",description:"A deposit account. For example, a checking, savings or money market account.\nPlaid consumes more detailed information for `CHECKING` and `SAVINGS` accounts.\n\nThe `accountType` field for deposit accounts may be set to any of the following:\n\n
      \n
    • `CHECKING`: A deposit account held at a financial institution that allows withdrawals and deposits.
    • \n
    • `SAVINGS`: An interest-bearing deposit account held at a bank or other financial institution.
    • \n
    • `CD`: A certificate of deposit (CD) is a product offered by banks and credit unions that provides an interest rate premium in exchange for the customer agreeing to leave a lump-sum deposit untouched for a predetermined period of time.
    • \n
    • `COMMERCIALDEPOSIT`: A deposit account for commercial customers, for example a business trust account.
    • \n
    • `ESCROW`: A contractual arrangement in which a third party (the stakeholder or escrow agent) receives and disburses money or property for the primary transacting parties, with the disbursement dependent on conditions agreed to by the transacting parties.
    • \n
    • `MONEYMARKET`: A deposit account that pays interest based on current interest rates in the money markets.
    • \n
    • `OTHERDEPOSIT`: Use when none of the listed enums apply.
    • \n
    \n"}},required:["depositAccount"],additionalProperties:!1},{type:"object",title:"Loan Account",properties:{loanAccount:{$ref:"#/components/schemas/LoanAccountDescriptor",description:"A loan account. For example, mortgage, student loan or auto loan.\nPlaid consumes more detailed information for `MORTGAGE` and `STUDENTLOAN` accounts.\n\nThe `accountType` field for loan accounts may be set to any of the following:\n\n
      \n
    • `AUTOLOAN`: A type of loan used to finance a car purchase.
    • \n
    • `COMMERCIALLOAN`: A preset borrowing limit that can be used at any time.
    • \n
    • `HOMEEQUITYLOAN`: A type of loan in which the borrower uses the equity of his or her home as collateral.
    • \n
    • `INSTALLMENT`: A type of agreement or contract involving a loan that is repaid over time with a set number of scheduled payments.
    • \n
    • `LOAN`: The lending of money by one or more individuals, organizations, or other entities to other individuals, organizations etc.
    • \n
    • `MILITARYLOAN`: A military loan.
    • \n
    • `MORTGAGE`: A type of loan you can use to buy or refinance a home.
    • \n
    • `PERSONALLOAN`: A type of debt that is not protected by a guarantor, or collateralized by a lien on specific assets of the borrower.
    • \n
    • `SMBLOAN`: A small/medium business loan.
    • \n
    • `STUDENTLOAN`: A type of loan designed to help students pay for post-secondary education and the associated fees, such as tuition, books and supplies, and living expenses.
    • \n
    \n"}},required:["loanAccount"],additionalProperties:!1},{type:"object",title:"Line of Credit Account",properties:{locAccount:{$ref:"#/components/schemas/LocAccountDescriptor",description:"A line-of-credit account. For example, a credit card or home equity line of credit.\nPlaid consumes more detailed information for `CREDITCARD` accounts.\n\nThe `accountType` field for line of credit accounts may be set to any of the following:\n\n
      \n
    • `LINEOFCREDIT`: A credit facility extended by a bank or other financial institution to a government, business or individual customer that enables the customer to draw on the facility when the customer needs funds.
    • \n
    • `CHARGE`: An account to which goods and services may be charged on credit.
    • \n
    • `COMMERCIALLINEOFCREDIT`: An account with a preset borrowing limit that can be used at any time.
    • \n
    • `CREDITCARD`: Allows cardholders to borrow funds with which to pay for goods and services with merchants that accept cards for payment.
    • \n
    • `HOMELINEOFCREDIT`: A loan in which the lender agrees to lend a maximum amount within an agreed period, where the collateral is the borrower's equity in their house.
    • \n
    \n"}},required:["locAccount"],additionalProperties:!1},{type:"object",title:"Investment Account",properties:{investmentAccount:{$ref:"#/components/schemas/InvestmentAccountDescriptor",description:"An investment account. For example, a 401K or IRA.\nPlaid consumes the same details for all investment accounts.\n\nThe `accountType` field for investment accounts may be set to any of the following:\n\n
      \n
    • `401A`: An employer-sponsored money-purchase retirement plan that allows dollar or percentage-based contributions from the employer, the employee, or both.
    • \n
    • `401K`: An employer-sponsored defined-contribution pension account defined in subsection 401(k) of the Internal Revenue Code.
    • \n
    • `403B`: A U.S. tax-advantaged retirement savings plan available for public education organizations, some non-profit employers (only Internal Revenue Code 501(c)(3) organizations), cooperative hospital service organizations, and self-employed ministers in the United States.
    • \n
    • `529`: A tax-advantaged savings plan designed to help pay for education.
    • \n
    • `BROKERAGEPRODUCT`: Investment management offered by a licensed brokerage firm that places trades on behalf of the customer, utilizing any number of investment options.
    • \n
    • `COVERDELL`: A trust or custodial account set up in the United States solely for paying qualified education expenses for the designated beneficiary of the account.
    • \n
    • `DIGITALASSET`: An account containing digital assets.
    • \n
    • `DEFINEDBENEFIT`: An employer-sponsored retirement plan where employee benefits are computed using a formula that considers several factors, such as length of employment and salary history.
    • \n
    • `ESOP`: An employee stock ownership plan (ESOP) is an employee benefit plan that gives workers ownership interest in the company.
    • \n
    • `GUARDIAN`: An account of a child in the parent's name, with legal title to the assets in the account, as well as all capital gains and tax liabilities produced from the account belonging to the parent.
    • \n
    • `INSTITUTIONALTRUST`: An institutional trust account.
    • \n
    • `IRA`: An individual retirement account (IRA) is a tax-advantaged account that individuals use to save and invest for retirement.
    • \n
    • `KEOGH`: A tax-deferred pension plan available to self-employed individuals or unincorporated businesses for retirement purposes.
    • \n
    • `NONQUALIFIEDPLAN`: A type of tax-deferred employer-sponsored retirement plan that falls outside of ERISA guidelines.
    • \n
    • `OTHERINVESTMENT`: Use when none of the listed enums apply.
    • \n
    • `ROLLOVER`: An account containing investments rolled over from an employee-sponsored account.
    • \n
    • `ROTH`: An individual retirement account that offers tax-free growth and tax-free withdrawals in retirement.
    • \n
    • `SARSEP`: A simplified employee pension (SEP) plan set up before 1997 that includes a salary reduction arrangement.
    • \n
    • `TAXABLE`: A taxable investment account.
    • \n
    • `TDA`: TreasuryDirect Account.
    • \n
    • `TRUST`: A type of financial account that is opened by an individual and managed by a designated trustee for the benefit of a third party in accordance with agreed-upon terms.
    • \n
    • `TERM`: Life insurance that provides coverage at a fixed rate of payments for a limited period of time.
    • \n
    • `UGMA`: Uniform Gifts to Minors Act account.
    • \n
    • `UTMA`: Uniform Transfers to Minors Act account.
    • \n
    \n"}},required:["investmentAccount"],additionalProperties:!1},{type:"object",title:"Insurance Account",properties:{insuranceAccount:{$ref:"#/components/schemas/InsuranceAccountDescriptor",description:"An insurance account. For example, whole life insurance or short-term disability.\n\nThe `accountType` field for insurance accounts may be set to any of the following:\n\n
      \n
    • `LONGTERMDISABILITY`: Insurance that replaces a portion of the policyholder's income due to a disability for an extended period of time, usually more than a year.
    • \n
    • `SHORTTERMDISABILITY`: Insurance that replaces a portion of the policyholder's income due to a disability for a short period of time, usually less than a year.
    • \n
    • `UNIVERSALLIFE`: A type of a cash value life insurance where the excess of premium payments above the current cost of insurance is credited to the cash value of the policy, which in turn is credited each month with interest.
    • \n
    • `WHOLELIFE`: Life insurance which is guaranteed to remain in force for the insured's entire lifetime, provided required premiums are paid, or to the maturity date.
    • \n
    \n"}},required:["insuranceAccount"],additionalProperties:!1},{type:"object",title:"Annuity Account",properties:{annuityAccount:{$ref:"#/components/schemas/AnnuityAccountDescriptor",description:"An annuity account. For example, a fixed or variable annuity account.\n\nThe `accountType` field for annuity accounts may be set to any of the following:\n\n
      \n
    • `ANNUITY`: A form of insurance or investment entitling the investor to a series of annual sums.
    • \n
    • `FIXEDANNUITY`: A type of insurance contract that promises to pay the buyer a specific, guaranteed interest rate on their contributions to the account.
    • \n
    • `VARIABLEANNUITY`: A type of insurance contract that promises to pay back the buyer based on the performance of an underlying portfolio of mutual funds selected by the buyer.
    • \n
    \n"}},required:["annuityAccount"],additionalProperties:!1}]},Accounts:{title:"Accounts entity",description:"An optionally paginated array of accounts",type:"object",allOf:[{$ref:"#/components/schemas/PaginatedArray"},{type:"object",properties:{accounts:{type:"array",items:{$ref:"#/components/schemas/AccountWithDetails"},description:"An array of accounts. May include accounts of any of the following types: [deposit](#deposit-account), [investment](#investment-account), [line of credit](#line-of-credit-account), [loan](#loan-account)\n\n**Note:** Each object in the accounts array is expected to contain at least one account type.\n",minItems:1}},required:["accounts"]}]},AnnuityAccountDescriptor:{allOf:[{$ref:"#/components/schemas/AccountDescriptor"},{type:"object",properties:{accountType:{$ref:"#/components/schemas/AnnuityAccountType"}},required:["accountType"]}],"x-examples":[{annuityAccount:{accountId:"annuityAccount0000001",accountType:"FIXEDANNUITY",accountNumberDisplay:"53901",productName:"Fixed Annuity",nickname:"Fixed annuity 1",status:"OPEN",currency:{currencyCode:"USD"}}}]},Currency:{title:"Currency entity",description:"Represents an international currency.",type:"object",properties:{currencyCode:{$ref:"#/components/schemas/Iso4217Code",description:"ISO 4217 currency code"}},required:["currencyCode"]},DepositAccount:{allOf:[{$ref:"#/components/schemas/AccountDescriptor"},{type:"object",properties:{accountType:{$ref:"#/components/schemas/DepositAccountType"}},required:["accountType"]}]},DepositAccountDescriptor:{title:"Deposit Account entity",description:'Full details of a deposit account. Plaid consumes the same information for all types of deposit accounts.\nPlaid expects a decimal amount with two places (to represent fractional values of the base currency) for all monetary amounts. For example, `"currentBalance": 192.00`.\n\nThe `accountType` field for deposit accounts may be set to any of the [account types](#deposit-account-types) listed below.\n',type:"object",properties:{depositAccount:{$ref:"#/components/schemas/DepositAccount"}},required:["depositAccount"],"x-examples":[{depositAccount:{accountId:"depositAccount0000001",accountType:"CHECKING",accountNumberDisplay:"5820",productName:"Checking",nickname:"Main Checking",status:"OPEN",currency:{currencyCode:"USD"}}}]},DepositAccountFull:{title:"Deposit Account entity",description:'Full details of a deposit account. Plaid consumes the same information for all types of deposit accounts.\nPlaid expects a decimal amount with two places (to represent fractional values of the base currency) for all monetary amounts. For example, `"currentBalance": 192.00`.\n\nThe `accountType` field for deposit accounts may be set to any of the [account types](#deposit-account-types) listed below.\n',type:"object",properties:{depositAccount:{allOf:[{$ref:"#/components/schemas/DepositAccount"},{type:"object",properties:{currentBalance:{type:"number",description:"Current balance of the deposit account"},availableBalance:{type:"number",description:"Available balance of the deposit account"}},required:["currentBalance","availableBalance"]}]}},required:["depositAccount"],"x-examples":[{depositAccount:{accountId:"someLongTermUniqueIDString",accountNumberDisplay:"4321",productName:"string",nickname:"string",status:"CLOSED",currency:{currencyCode:"AED"},accountType:"CHECKING",currentBalance:0,availableBalance:0}}]},DepositTransaction:{title:"Deposit Transaction entity",description:"A transaction on a deposit account type",type:"object",allOf:[{$ref:"#/components/schemas/Transaction"},{type:"object",properties:{payee:{$ref:"#/components/schemas/String255",description:"Payee name"},checkNumber:{type:"integer",description:"Check number. Plaid expects this solely if the transaction involves a check.\n"}}}],"x-examples":[{transactionId:"depositTransaction000000001",transactionTimestamp:"2022-04-05T00:00:00.000Z",description:"check for latest ACME invoice",debitCreditMemo:"DEBIT",status:"PENDING",amount:400,payee:"Acme LLC",checkNumber:57448}]},Holding:{title:"Holding entity",description:"A holding in an investment account.\nPlaid maps the `holding` and the `investmentAccount` FDX models to its securities models, which hold universal information like the ticker symbol, and to its holdings models, which hold account-specific information like balances. For more information, see [Plaid investments](https://plaid.com/docs/investments/#securities-and-holdings).\n",allOf:[{type:"object",properties:{securityId:{description:"If you return the `securityId` for a holding, Plaid uses it to look up the closing price from NYSE Group Security Master. If you don't return `securityId` for a holding that uses security IDs (not recommended), Plaid uses the `unitPrice` as the closing price.\nThis field, along with `securityIdType` are **required** unless `symbol` is provided.\n**Note:** If `securityId` is provided, `securityIdType` is required.\n",type:"string"},securityIdType:{$ref:"#/components/schemas/SecurityIdType"},holdingName:{type:"string",description:"Holding name or security name"},holdingType:{$ref:"#/components/schemas/HoldingType"},holdingSubType:{$ref:"#/components/schemas/HoldingSubType",description:"MONEYMARKET, CASH"},symbol:{type:"string",description:"Ticker / Market symbol\nThis field is **required** unless both `securityId` and `securityIdType` are provided."},purchasedPrice:{type:"number",description:"Price of holding at the time of purchase. Plaid determines an approximate [cost basis](https://plaid.com/docs/api/products/investments/#investments-holdings-get-response-holdings-cost-basis) using the purchase price and the number of units. Plaid cannot take fees into account to determine the cost basis because the FDX holding schema doesn't include fees.\n"},currentUnitPrice:{type:"number",description:"Current unit price. Plaid uses this as the [institution_price](https://plaid.com/docs/api/products/investments/#investments-holdings-get-response-holdings-institution-price). Plaid falls back to using this as the [close price](https://plaid.com/docs/api/products/investments/#investments-holdings-get-response-securities-close-price) if you don't return `securityId` for holdings involving securities.\n"},currentUnitPriceDate:{$ref:"#/components/schemas/DateString",description:"Current unit price as of date"},units:{type:"number",description:"Plaid requires this field for holdings and transactions involving securities.\nFor security-based actions other than stock splits, quantity.\nShares for stocks, mutual funds, and others. Face value for bonds.\nContracts for options.\n\n**Note:** This field is required if the transaction involves a security.\n"},marketValue:{type:"number",description:"Market value at the time of data retrieved"},faceValue:{type:"number",description:"Required for bonds. Face value at the time of data retrieved. If this isn't present, Plaid assumes the holding isn't a bond and falls back to `marketValue`.\n"},cashAccount:{type:"boolean",description:"If true, indicates that this holding is used to maintain proceeds from sales, dividends, and other cash postings to the investment account. If you don't set a value for `isCashEquivalent` in the `fiAttributes` array, then Plaid uses `cashAccount` in determining the [is_cash_equivalent](https://plaid.com/docs/api/products/investments/#investments-holdings-get-response-securities-is-cash-equivalent) status.\n"},currency:{$ref:"#/components/schemas/Currency",description:"Currency information if it is different from Account entity."},fiAttributes:{type:"array",description:"Array of financial institution-specific attributes. Plaid recommends including a value for [is_cash_equivalent](https://plaid.com/docs/api/products/investments/#investments-holdings-get-response-securities-is-cash-equivalent) property in this array. Plaid accepts `isCashEquivalent` as the attribute name and a string value of `true` or `false`. If you return a value for `isCashEquivalent`, then return the same value for `cashAccount` as a boolean.\n",items:{$ref:"#/components/schemas/FiAttribute"}}},required:["cashAccount","marketValue"]}]},InsuranceAccountDescriptor:{allOf:[{$ref:"#/components/schemas/AccountDescriptor"},{type:"object",properties:{accountType:{$ref:"#/components/schemas/InsuranceAccountType"}},required:["accountType"]}],"x-examples":[{insuranceAccount:{accountId:"insuranceAccount0000001",accountType:"LONGTERMDISABILITY",accountNumberDisplay:"5820",productName:"Long-term disability",nickname:"Long term",status:"OPEN",currency:{currencyCode:"USD"}}}]},InvestmentAccount:{allOf:[{$ref:"#/components/schemas/AccountDescriptor"},{type:"object",properties:{accountType:{$ref:"#/components/schemas/InvestmentAccountType"}},required:["accountType"]}]},InvestmentAccountDescriptor:{description:"The type of investment account. For example, a 401K or IRA. Plaid consumes the same details for all investment accounts. The `accountType` field for investment accounts may be set to any of the [account types](#investment-account-types) listed below.\n",type:"object",properties:{investmentAccount:{$ref:"#/components/schemas/InvestmentAccount"}},required:["investmentAccount"],"x-examples":[{investmentAccount:{accountId:"investmentAccount0000001",accountType:"TAXABLE",accountNumberDisplay:"1050",productName:"Brokerage Account",nickname:"First plaidypus Brokerage",status:"OPEN",currency:{currencyCode:"USD"}}}]},InvestmentAccountFull:{description:"The type of investment account. For example, a 401K or IRA. Plaid consumes the same details for all investment accounts. The `accountType` field for investment accounts may be set to any of the [account types](#investment-account-types) listed below.\n",type:"object",properties:{investmentAccount:{allOf:[{$ref:"#/components/schemas/InvestmentAccount"},{type:"object",properties:{availableCashBalance:{type:"number",description:"Cash balance across all sub-accounts. Plaid expects that this includes sweep funds."},balanceAsOf:{description:"As-of date of balances.\n\nISO 8601 date-time in format `YYYY-MM-DDThh:mm:ss.nnn[Z|[+|-]hh:mm]` according to [IETF RFC3339](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6)\n",$ref:"#/components/schemas/Timestamp"},currentValue:{type:"number",description:"Total current value of all investments."},holdings:{type:"array",description:"Holdings in the investment account.\nPlaid maps the `holding` and the `investmentAccount` FDX models to its securities models, which hold universal information like the ticker symbol, and to its holdings models, which hold account-specific information like balances. For more information, see [Plaid investments](https://plaid.com/docs/investments/#securities-and-holdings).\n",items:{$ref:"#/components/schemas/Holding"}}},required:["availableCashBalance","currentValue"]}]}},"x-examples":[{investmentAccount:{accountId:"investmentAccount0000001",accountType:"TAXABLE",accountNumberDisplay:"1050",productName:"Brokerage Account",nickname:"First plaidypus Brokerage",status:"OPEN",currency:{currencyCode:"USD"},availableCashBalance:4302.39,balanceAsOf:null,currentValue:4302.39,holdings:[{securityId:"string",securityIdType:"CINS",holdingName:"string",holdingType:"ANNUITY",holdingSubType:"CASH",symbol:"MTSN",purchasedPrice:12.5,currentUnitPrice:34.2,currentUnitPriceDate:"2024-07-15",units:100,marketValue:3400,faceValue:3400,cashAccount:!0,currency:{currencyCode:"AED"},fiAttributes:[{name:"string",value:"string"}]}]}}]},InvestmentTransaction:{title:"Investment Transaction entity",description:"A transaction on an investment account.\nIn addition to the required fields in the base `Transaction` model, Plaid requires the following fields\nfor all transactions on an investment account:\n\n* `fees`\n* `transactionType`\n\nIf the transaction involves a security, Plaid additionally requires the following fields:\n\n* `unitPrice`\n* `units`\n* Either of the following:\n - `symbol`\n - `securityId` and `securityIdType`\n",type:"object",allOf:[{$ref:"#/components/schemas/Transaction"},{type:"object",properties:{transactionType:{$ref:"#/components/schemas/InvestmentTransactionType"},securityId:{type:"string",description:"If you return the `securityId` for a holding, Plaid uses it to look up the closing price from NYSE Group Security Master. If you don't return `securityId` for a holding that uses security IDs (not recommended), Plaid uses the `unitPrice` as the closing price.\nThis field, along with `securityIdType` are **required** unless `symbol` is provided.\n**Note:** If `securityId` is provided, `securityIdType` is required.\n"},securityIdType:{$ref:"#/components/schemas/SecurityIdType"},securityType:{$ref:"#/components/schemas/SecurityType",description:"STOCK, MUTUALFUND, DEBT, OPTION, SWEEP, OTHER, BOND"},symbol:{type:"string",description:"Ticker symbol\nThis field is **required** unless both `securityId` and `securityIdType` are provided."},commission:{type:"number",description:"Plaid expects that your organization includes a value for commission if the commission isn't included in `fees`.\n"},fees:{type:"number",description:"Fees applied to the trade. Plaid expects that the `fees` include the commission, unless your organization separately provides a value for `commission`.\n"},unitPrice:{type:"number",description:"Unit price. Plaid uses this as the [price](https://plaid.com/docs/api/products/investments/#investments-transactions-get-response-investment-transactions-price).\nPlaid falls back to using this as the [close price](https://plaid.com/docs/api/products/investments/#investments-transactions-get-response-securities-close-price)\nif you don't return `securityId` for transactions involving securities.\n\n**Note:** This field is required if the transaction involves a security.\n"},units:{type:"number",description:"Plaid requires this field for holdings and transactions involving securities.\nFor security-based actions other than stock splits, quantity.\nShares for stocks, mutual funds, and others. Face value for bonds.\nContracts for options.\n\n**Note:** This field is required if the transaction involves a security.\n"},unitType:{$ref:"#/components/schemas/UnitType",description:"SHARES, CURRENCY"},fiAttributes:{type:"array",description:"Array of financial institution-specific attributes. Plaid recommends including a value for [is_cash_equivalent](https://plaid.com/docs/api/products/investments/#investments-transactions-get-response-securities-is-cash-equivalent) property in this array. Plaid accepts `isCashEquivalent` as the attribute name and a string value of `true` or `false`.\n",items:{$ref:"#/components/schemas/FiAttribute"}}},required:["fees","transactionType"]}],"x-examples":[{transactionId:"investmentTransaction000000001",transactionTimestamp:"2022-04-05T00:00:00.000Z",description:"check for latest ACME invoice",debitCreditMemo:"DEBIT",status:"PENDING",amount:400,transactionType:"CHECK",securityId:"APW881",securityIdType:"CMC",securityType:"DEBT",symbol:"MSFT",commission:.1,unitPrice:15.3,units:1e3,unitType:"SHARES",fiAttributes:[{name:"Vanguard",value:80}]}]},LoanAccount:{title:"Loan Account entity",type:"object",allOf:[{$ref:"#/components/schemas/AccountDescriptor"},{type:"object",properties:{accountType:{$ref:"#/components/schemas/LoanAccountType"},accountNumber:{type:"string",example:"loanAccount0000001",description:"Full account number for the end user's handle for the account at the owning institution\nRequired for accountType 'MORTGAGE'\n"},principalBalance:{type:"number",example:580303.95,description:"Principal balance of loan"},escrowBalance:{type:"number",example:3400.61,description:"Escrow balance of loan"},originalPrincipal:{type:"number",example:650400,description:"Original principal of loan"},originatingDate:{$ref:"#/components/schemas/DateString",description:"Loan origination date"},loanTerm:{type:"integer",example:360,description:"Term of loan in months"},nextPaymentAmount:{type:"number",example:2483.12,description:"Amount of next payment"},nextPaymentDate:{$ref:"#/components/schemas/DateString",description:"Date of next payment"},lastPaymentAmount:{type:"number",example:2483.12,description:"Last payment amount"},lastPaymentDate:{$ref:"#/components/schemas/DateString",description:"Last payment date"},maturityDate:{$ref:"#/components/schemas/DateString",description:"Maturity date"},interestPaidYearToDate:{type:"number",description:"Interest paid year to date"},interestRate:{type:"number",example:.075,description:"The account's interest rate"},interestRateType:{$ref:"#/components/schemas/InterestRateType"}},required:["principalBalance","interestRate","interestRateType","accountType"]}]},LoanAccountDescriptor:{description:'Full details of a loan account. The `accountType` field for loan accounts may be set to any of the [account types](#loan-account-types) listed below.\n\nPlaid only consumes the `MORTGAGE` and `STUDENTLOAN` types for its [Liabilities API](https://plaid.com/docs/api/products/liabilities/). For other loan account types Plaid consumes account details and transactions.\nPlaid consumes all loan account information as returned in the `GET /accounts` endpoint, as well as the additional information listed below:\n\nRequired for all loan accounts:\n* `principalBalance`\n* `interestRate`\n* `interestRateType`\n\nOptional fields for `STUDENTLOAN` accounts:\n* `interestPaidYearToDate`\n* `lastPaymentAmount`\n* `lastPaymentDate`\n* `maturityDate`\n* `nextPaymentDate`\n* `originalPrincipal`\n* `originatingDate`\n\nRequired for `MORTGAGE` accounts:\n* `accountNumber`\n\nOptional fields for `MORTGAGE` accounts:\n* `escrowBalance`\n* `interestPaidYearToDate`\n* `lastPaymentAmount`\n* `lastPaymentDate`\n* `loanTerm`\n* `maturityDate`\n* `nextPaymentAmount`\n* `nextPaymentDate`\n* `originalPrincipal`\n* `originatingDate`\n\nPlaid expects a decimal amount with two places (to represent fractional values of the base currency) for all monetary amounts. For example, `"escrowBalance": 192.00`.\n',type:"object",properties:{loanAccount:{$ref:"#/components/schemas/LoanAccount"}},required:["loanAccount"],"x-examples":[{loanAccount:{accountId:"loanAccount0000001",accountType:"LOAN",accountNumberDisplay:"4704",productName:"Loan",nickname:"Primary Loan",status:"OPEN",currency:{currencyCode:"USD"}}}]},LoanAccountFull:{description:'Full details of a loan account. The `accountType` field for loan accounts may be set to any of the [account types](#loan-account-types) listed below.\n\nPlaid only consumes the `MORTGAGE` and `STUDENTLOAN` types for its [Liabilities API](https://plaid.com/docs/api/products/liabilities/). For other loan account types Plaid consumes account details and transactions.\nPlaid consumes all loan account information as returned in the `GET /accounts` endpoint, as well as the additional information listed below:\n\nRequired for all loan accounts:\n* `principalBalance`\n* `interestRate`\n* `interestRateType`\n\nOptional fields for `STUDENTLOAN` accounts:\n* `interestPaidYearToDate`\n* `lastPaymentAmount`\n* `lastPaymentDate`\n* `maturityDate`\n* `nextPaymentDate`\n* `originalPrincipal`\n* `originatingDate`\n\nRequired for `MORTGAGE` accounts:\n* `accountNumber`\n\nOptional fields for `MORTGAGE` accounts:\n* `escrowBalance`\n* `interestPaidYearToDate`\n* `lastPaymentAmount`\n* `lastPaymentDate`\n* `loanTerm`\n* `maturityDate`\n* `nextPaymentAmount`\n* `nextPaymentDate`\n* `originalPrincipal`\n* `originatingDate`\n\nPlaid expects a decimal amount with two places (to represent fractional values of the base currency) for all monetary amounts. For example, `"escrowBalance": 192.00`.\n',type:"object",properties:{loanAccount:{$ref:"#/components/schemas/LoanAccount"}},required:["loanAccount"],"x-examples":[{loanAccount:{accountId:"someLongTermUniqueIDString",accountNumberDisplay:"4321",productName:"string",nickname:"string",status:"CLOSED",currency:{currencyCode:"AED"},accountType:"AUTOLOAN",accountNumber:"string",principalBalance:0,escrowBalance:0,originalPrincipal:0,originatingDate:"2021-07-15",loanTerm:0,nextPaymentAmount:0,nextPaymentDate:"2021-07-15",lastPaymentAmount:0,lastPaymentDate:"2021-07-15",maturityDate:"2021-07-15",interestPaidYearToDate:0,interestRate:0,interestRateType:"FIXED"}}]},LoanTransaction:{title:"Loan Transaction entity",description:"A transaction on a loan account",type:"object",allOf:[{$ref:"#/components/schemas/Transaction"},{type:"object",properties:{transactionType:{$ref:"#/components/schemas/LoanTransactionType"}}}],"x-examples":[{transactionId:"loanTransaction000000001",transactionTimestamp:"2022-04-05T00:00:00.000Z",description:"latest ACME invoice",debitCreditMemo:"CREDIT",status:"PENDING",amount:400}]},LocAccount:{type:"object",allOf:[{$ref:"#/components/schemas/AccountDescriptor"},{type:"object",properties:{accountType:{$ref:"#/components/schemas/LocAccountType"},creditLine:{type:"number",description:"Credit limit"},availableCredit:{type:"number",description:"Available credit. Required for all accountTypes except for `CHARGE`"},nextPaymentAmount:{type:"number",description:"Amount of next payment"},nextPaymentDate:{$ref:"#/components/schemas/DateString",description:"Due date of next payment"},principalBalance:{type:"number",description:"Principal balance"},currentBalance:{type:"number",description:"Current balance of the line of credit"},minimumPaymentAmount:{type:"number",description:"Minimum payment amount"},lastPaymentAmount:{type:"number",description:"Last payment amount"},lastPaymentDate:{$ref:"#/components/schemas/DateString",description:"Last payment date"},pastDueAmount:{type:"number",description:"Amount owed that the account holder failed to pay on the due date"},lastStmtBalance:{type:"number",description:"Last statement balance"},lastStmtDate:{$ref:"#/components/schemas/DateString",description:"Last statement date"},purchasesApr:{type:"number",description:"Purchases APR"},advancesApr:{type:"number",description:"Advances APR"}},required:["currentBalance","accountType"]}]},LocAccountDescriptor:{description:'Full details of a line of credit account. The `accountType` field for line of credit accounts may be set to any of the [account types](#loc-account-types) listed below.\n\nPlaid may consume all the parameters returned by the `GET /accounts` endpoint:\n\n* `availableCredit`\n* `creditLine`\n* `currentBalance`\n\nAdditionally, for the `CREDITCARD` accountType, Plaid consumes the previous information plus the following for its liabilities product:\n\n* `advancesApr`\n* `lastPaymentAmount`\n* `lastPaymentDate`\n* `lastStmtBalance`\n* `lastStmtDate`\n* `minimumPaymentAmount`\n* `nextPaymentDate`\n* `purchasesApr`\nPlaid expects a decimal amount with two places (to represent fractional values of the base currency) for all monetary amounts. For example, `"currentBalance": 192.00`.\n',type:"object",properties:{locAccount:{$ref:"#/components/schemas/LocAccount"}},required:["locAccount"],"x-examples":[{locAccount:{accountId:"loc_01_creditcard",accountNumberDisplay:"8200",productName:"First Plaidypus Credit Card",nickname:"my travel rewards card",status:"OPEN",currency:{currencyCode:"USD"},accountType:"CREDITCARD"}}]},LocAccountFull:{description:'Full details of a line of credit account. The `accountType` field for line of credit accounts may be set to any of the [account types](#loc-account-types) listed below.\n\nPlaid may consume all the parameters returned by the `GET /accounts` endpoint:\n\n* `availableCredit`\n* `creditLine`\n* `currentBalance`\n\nAdditionally, for the `CREDITCARD` accountType, Plaid consumes the previous information plus the following for its liabilities product:\n\n* `advancesApr`\n* `lastPaymentAmount`\n* `lastPaymentDate`\n* `lastStmtBalance`\n* `lastStmtDate`\n* `minimumPaymentAmount`\n* `nextPaymentDate`\n* `purchasesApr`\nPlaid expects a decimal amount with two places (to represent fractional values of the base currency) for all monetary amounts. For example, `"currentBalance": 192.00`.\n',type:"object",properties:{locAccount:{$ref:"#/components/schemas/LocAccount"}},required:["locAccount"],"x-examples":[{locAccount:{accountId:"loc_01_creditcard",accountNumberDisplay:"8200",productName:"First Plaidypus Credit Card",nickname:"my travel rewards card",status:"OPEN",currency:{currencyCode:"USD"},minimumPaymentAmount:100,lastPaymentAmount:400,lastPaymentDate:"2022-03-30",pastDueAmount:0,lastStmtBalance:400,lastStmtDate:"2022-03-25",purchasesApr:10.25,advancesApr:15.75,currentBalance:375,availableCredit:625,accountType:"CREDITCARD"}}]},LocTransaction:{title:"Line-Of-Credit Transaction entity",description:"A line-of-credit transaction",type:"object",allOf:[{$ref:"#/components/schemas/Transaction"},{type:"object",properties:{transactionType:{$ref:"#/components/schemas/LocTransactionType"},checkNumber:{type:"integer",description:"Check number"}}}],"x-examples":[{transactionId:"locTransaction000000001",transactionTimestamp:"2022-04-05T00:00:00.000Z",description:"credit for latest ACME invoice",debitCreditMemo:"DEBIT",status:"PENDING",amount:400}]},Transaction:{title:"Transaction",description:"Base entity for financial transactions. For monetary amounts, Plaid expects a decimal amount, with two places to represent fractional values of the base currency, for example `101.99`.\n",type:"object",properties:{transactionId:{description:"Long term persistent identity of the transaction (unique to account). Plaid expects that `status: PENDING` and `status: POSTED` transactions have different IDs.",$ref:"#/components/schemas/Identifier"},referenceTransactionId:{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",$ref:"#/components/schemas/Identifier"},postedTimestamp:{description:"The date and time that the transaction was posted to the account.\n\nThis property is **required** by Plaid when `status=POSTED`.\nPlaid expects this property to be omitted when `status=PENDING`\n\nISO 8601 date-time in format `YYYY-MM-DDThh:mm:ss.nnn[Z|[+|-]hh:mm]` according to [IETF RFC3339](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6)\n",$ref:"#/components/schemas/Timestamp"},transactionTimestamp:{description:"The date and time that the transaction was added to the server backend systems. This acts as postedTimestamp when postedTimestamp is not present (pending transaction).\n\nISO 8601 date-time in format `YYYY-MM-DDThh:mm:ss.nnn[Z|[+|-]hh:mm]` according to [IETF RFC3339](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6)\n",$ref:"#/components/schemas/Timestamp"},description:{type:"string",description:"The description of the transaction"},debitCreditMemo:{$ref:"#/components/schemas/DebitCreditMemo"},category:{type:"string",description:"Transaction category, preferably MCC or SIC. Plaid expects your organization to provide MCC, if available and applicable.\n"},subCategory:{type:"string",description:"Transaction category detail"},status:{$ref:"#/components/schemas/TransactionStatus"},amount:{type:"number",description:"The amount of money in the account currency. The amount is an absolute value. Plaid relies on the `DebitCreditMemo` enum to determine the direction (and sign) of the transaction.\n"},foreignAmount:{type:"number",description:"The amount of money in the foreign currency. If this amount is specified, then Plaid expects that the `foreignCurrency` property is also set."},foreignCurrency:{$ref:"#/components/schemas/Iso4217Code",description:"The ISO 4217 code of the foreign currency"}},required:["debitCreditMemo","description","transactionId","transactionTimestamp","status","amount"]},Transactions:{title:"Transactions entity",description:"Optionally paginated array of transactions",type:"object",properties:{page:{$ref:"#/components/schemas/PageMetadata"},transactions:{description:"An array of transactions. The `transactionType` is dependent on the account type. Plaid consumes the following types of transactions: [investment](#investment-transaction), [deposit](#deposit-transaction), [loan](#loan-transaction), and [line of credit](#line-of-credit-transaction)\n\nPlaid expects your organization to return an empty array if this information isn't available.\n",type:"array",items:{oneOf:[{type:"object",title:"Deposit Transaction",properties:{depositTransaction:{$ref:"#/components/schemas/DepositTransaction"}},required:["depositTransaction"],additionalProperties:!1},{type:"object",title:"Investment Transaction",properties:{investmentTransaction:{$ref:"#/components/schemas/InvestmentTransaction",description:"A transaction on an investment account.\nIn addition to the required fields in the base `Transaction` model, Plaid requires the following fields\nfor all transactions on an investment account:\n\n* `fees`\n* `transactionType`\n\nIf the transaction involves a security, Plaid additionally requires the following fields:\n\n* `unitPrice`\n* `units`\n* Either of the following:\n - `symbol`\n - `securityId` and `securityIdType`\n"}},required:["investmentTransaction"],additionalProperties:!1},{type:"object",title:"Loan Transaction",properties:{loanTransaction:{$ref:"#/components/schemas/LoanTransaction"}},required:["loanTransaction"],additionalProperties:!1},{type:"object",title:"Line of Credit Transaction",properties:{locTransaction:{$ref:"#/components/schemas/LocTransaction"}},required:["locTransaction"],additionalProperties:!1}]}}},required:["transactions"],example:{page:{nextOffset:"qwer123454q2f"},transactions:[{depositTransaction:{transactionType:"CHECK",checkNumber:1234,payee:"ACME llc",transactionId:"depositTransaction000000001",postedTimestamp:"2022-04-06T00:00:00.000Z",transactionTimestamp:"2022-04-05T00:00:00.000Z",description:"check for latest ACME invoice",debitCreditMemo:"DEBIT",status:"PENDING",amount:400}},{depositTransaction:{transactionType:"ADJUSTMENT",transactionId:"depositTransaction000000002",postedTimestamp:"2022-04-07T00:00:00.000Z",transactionTimestamp:"2022-04-07T00:00:00.000Z",description:"reconciliation/adjustment of bank statement error",debitCreditMemo:"DEBIT",status:"POSTED",amount:.8}},{depositTransaction:{transactionType:"ATMDEPOSIT",transactionId:"depositTransaction000000003",postedTimestamp:"2022-04-08T00:00:00.000Z",transactionTimestamp:"2022-04-08T00:00:00.000Z",description:"ATM cash deposit location #1234",debitCreditMemo:"CREDIT",status:"POSTED",amount:101.8}}]}},AccountHolderRelationship:{title:"Account Holder Relationship",description:"Types of relationships between accounts and holders. Suggested values",type:"string",enum:["AUTHORIZED_USER","BUSINESS","FOR_BENEFIT_OF","FOR_BENEFIT_OF_PRIMARY","FOR_BENEFIT_OF_PRIMARY_JOINT_RESTRICTED","FOR_BENEFIT_OF_SECONDARY","FOR_BENEFIT_OF_SECONDARY_JOINT_RESTRICTED","FOR_BENEFIT_OF_SOLE_OWNER_RESTRICTED","POWER_OF_ATTORNEY","PRIMARY_JOINT_TENANTS","PRIMARY","PRIMARY_BORROWER","PRIMARY_JOINT","SECONDARY","SECONDARY_JOINT_TENANTS","SECONDARY_BORROWER","SECONDARY_JOINT","SOLE_OWNER","TRUSTEE","UNIFORM_TRANSFER_TO_MINOR"]},DateString:{title:"Date String",description:"ISO 8601 full-date in format 'YYYY-MM-DD' according to [IETF RFC3339](https://xml2rfc.tools.ietf.org/public/rfc/html/rfc3339.html#anchor14)",type:"string",format:"date",maxLength:10,example:"2021-07-15"},Identifier:{title:"Identifier",description:"Value for a unique identifier",type:"string",maxLength:256,example:"someLongTermUniqueIDString"},Iso3166CountryCode:{title:"ISO 3166 Country Code",description:"ISO 3166 Codes for the representation of names of countries and their subdivisions",type:"string",enum:["AD","AE","AF","AG","AI","AL","AM","AN","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BM","BN","BO","BR","BS","BT","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CR","CS","CU","CV","CX","CY","CZ","DE","DJ","DK","DM","DO","DZ","EC","EE","EG","EH","ER","ES","ET","FI","FJ","FK","FM","FO","FR","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RU","RW","SA","SB","SC","SD","SE","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","ST","SV","SY","SZ","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TR","TT","TV","TW","TZ","UA","UG","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","YE","YT","ZA","ZM","ZW"]},Iso4217Code:{title:"ISO 4217 Code",description:"ISO 4217 Currency codes",type:"string",enum:["AED","AFN","ALL","AMD","ANG","AOA","ARS","AUD","AWG","AZN","BAM","BBD","BDT","BGN","BHD","BIF","BMD","BND","BOB","BOV","BRL","BSD","BTN","BWP","BZD","CAD","CDF","CHE","CHF","CHW","CLF","CLP","CNY","COP","COU","CRC","CUC","CUP","CVE","CZK","DJF","DKK","DOP","DZD","EGP","ERN","ETB","EUR","FJD","FKP","GBP","GEL","GHS","GIP","GMD","GNF","GTQ","GYD","HKD","HNL","HRK","HTG","HUF","IDR","ILS","INR","IQD","IRR","ISK","JMD","JOD","JPY","KES","KGS","KHR","KMF","KPW","KRW","KWD","KYD","KZT","LAK","LBP","LKR","LRD","LSL","LYD","MAD","MDL","MGA","MKD","MMK","MNT","MOP","MUR","MVR","MWK","MXN","MXV","MYR","MZN","NAD","NGN","NIO","NOK","NPR","NZD","OMR","PAB","PEN","PGK","PHP","PKR","PLN","PYG","QAR","RON","RSD","RUB","RWF","SAR","SBD","SCR","SDG","SEK","SGD","SHP","SLL","SOS","SRD","SSP","SVC","SYP","SZL","THB","TJS","TMT","TND","TOP","TRY","TTD","TWD","TZS","UAH","UGX","USD","USN","UYI","UYU","UZS","VND","VUV","WST","XAF","XAG","XAU","XBA","XBB","XBC","XBD","XCD","XDR","XOF","XPD","XPF","XPT","XSU","XTS","XUA","XXX","YER","ZAR","ZMW","ZWL"]},String255:{title:"String 255",description:"String of maximum length 255",type:"string",maxLength:255},String64:{title:"String 64",description:"String of maximum length 64",type:"string",maxLength:64},TelephoneNumberType:{title:"Telephone Number Type",description:"Purpose or type of telephone number",type:"string",enum:["HOME","BUSINESS","CELL","FAX"]},Timestamp:{title:"Timestamp",description:"ISO 8601 date-time in format `YYYY-MM-DDThh:mm:ss.nnn[Z|[+|-]hh:mm]` according to [IETF RFC3339](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6)",type:"string",format:"date-time",example:"2021-07-15T14:46:41.375Z"},AccountStatus:{title:"Account Status",description:"The status of an account.",type:"string",enum:["CLOSED","DELINQUENT","NEGATIVECURRENTBALANCE","OPEN","PAID","PENDINGCLOSE","PENDINGOPEN","RESTRICTED"]},AnnuityAccountType:{description:"The type of an account. Plaid consumes basic balance account information from the `accounts/{accountId}` endpoint for a subset of the possible account types described in the FDX specification.\n",type:"string",example:"FIXEDANNUITY",enum:["ANNUITY","FIXEDANNUITY","VARIABLEANNUITY"]},DebitCreditMemo:{title:"DebitCreditMemo",description:"The posting type of a transaction. The transaction amount is an absolute value, and this parameter indicates the direction of the transaction. Plaid expects `DEBIT` or `CREDIT` for this enum. Plaid expects that your organization indicates the `MEMO` (i.e., pending) status using the `status` field in the transaction response rather than this field. If your organization sends `MEMO` in this `DebitCreditMemo` enum, Plaid handles this value the same as it handles `DEBIT`. * `DEBIT`: An amount leaves the account * `CREDIT`: An amount enters the account * `MEMO`: A pending transaction to be completed at the end of this day.\n",type:"string",enum:["CREDIT","DEBIT","MEMO"]},DepositAccountType:{description:"The type of an account. Plaid consumes basic balance account information from the `accounts/{accountId}` endpoint for a subset of the possible account types described in the FDX specification.\n",type:"string",example:"SAVINGS",enum:["CHECKING","SAVINGS","CD","COMMERCIALDEPOSIT","ESCROW","MONEYMARKET","OTHERDEPOSIT"]},FiAttribute:{title:"FI Attribute entity",description:"Financial Institution provider-specific attribute",type:"object",properties:{name:{type:"string",description:"The attribute's name"},value:{type:"string",description:"The attribute's value"}}},HoldingSubType:{title:"Holding SubType",description:"The subtype of an investment holding. Plaid expects you to return `OTHER` and set the `holdingSubType` to indicate cash-type holdings (CASH, MONEYMARKET).\n",type:"string",enum:["CASH","MONEYMARKET"]},HoldingType:{title:"Holding Type",description:"Plaid maps the holding type to the Plaid [security type](https://plaid.com/docs/api/products/investments/#investments-transactions-get-response-securities-type). Plaid expects you to return `OTHER` and set the `holdingSubType` to indicate cash-type holdings (CASH, MONEYMARKET).\n",type:"string",enum:["ANNUITY","BOND","CD","DIGITALASSET","MUTUALFUND","OPTION","OTHER","STOCK"]},InsuranceAccountType:{description:"The type of an account. Plaid consumes basic balance account information from the `accounts/{accountId}` endpoint for a subset of the possible account types described in the FDX specification.\n",type:"string",example:"WHOLELIFE",enum:["LONGTERMDISABILITY","SHORTTERMDISABILITY","UNIVERSALLIFE","WHOLELIFE"]},InterestRateType:{title:"Interest Rate Type",description:"Specifies whether an interest rate is fixed or variable. This information is helpful for personal financial planning and advising. For example, it affects the potential benefits of refinancing, and informs whether a mortgage payment is expected to change in the future",type:"string",enum:["FIXED","VARIABLE"]},InvestmentAccountType:{description:"The type of an account. Plaid consumes basic balance account information from the `accounts/{accountId}` endpoint for a subset of the possible account types described in the FDX specification.\n",type:"string",example:"ROTH",enum:["401A","401K","403B","529","BROKERAGEPRODUCT","COMMERCIALINVESTMENT","COVERDELL","DIGITALASSET","DEFINEDBENEFIT","ESOP","GUARDIAN","INSTITUTIONALTRUST","IRA","KEOGH","NONQUALIFIEDPLAN","OTHERINVESTMENT","ROLLOVER","ROTH","SARSEP","TAXABLE","TDA","TRUST","TERM","UGMA","UTMA"]},InvestmentTransactionType:{title:"Investment Transaction Type",description:"The type of an investment transaction.\nPlaid maps these enums to Plaid [investment transaction types](https://plaid.com/docs/api/accounts/#investment-transaction-types-schema).\nPlaid doesn't map these enums to Plaid-specific transaction subtypes.\nPlaid maps these enums as follows:\n\n* ADJUSTMENT - fee\n* ATM - cash\n* CASH - cash\n* CHECK - cash\n* CLOSURE - Plaid suggests using SOLDTOCLOSE, PURCHASETOCLOSE, OPTIONEXERCISE or OPTIONEXPIRATION to indicate the specific type of closure, instead of using this enum.\n* CLOSUREOPT - Plaid suggests using SOLDTOCLOSE, PURCHASETOCLOSE, OPTIONEXERCISE or OPTIONEXPIRATION to indicate the specific type of closure, instead of using this enum.\n* CONTRIBUTION - buy (if transaction involves a security) or cash\n* DEP - cash\n* DEPOSIT - cash\n* DIRECTDEBIT - cash\n* DIRECTDEP - cash\n* DIV - cash\n* DIVIDEND - cash\n* DIVIDENDREINVEST - buy\n* EXPENSE - cash\n* FEE - fee\n* INCOME - cash\n* INTEREST - cash\n* INVEXPENSE - cash\n* JRNLFUND - transfer\n* JRNLSEC - transfer\n* MARGININTEREST - cash\n* OPTIONEXERCISE - transfer\n* OPTIONEXPIRATION - transfer\n* OTHER - cash - (unclassified)\n* PAYMENT - cash\n* POS - cash\n* PURCHASED - buy\n* PURCHASEDTOCOVER - buy\n* PURCHASETOCLOSE - buy\n* PURCHASETOOPEN - buy\n* REINVESTOFINCOME - buy\n* REPEATPMT - cash\n* RETURNOFCAPITAL - cash\n* SOLD - sell\n* SOLDTOCLOSE - sell\n* SOLDTOOPEN - sell\n* SPLIT - transfer\n* SRVCHG - fee\n* TRANSFER - transfer\n* XFER - transfer\n",type:"string",enum:["ADJUSTMENT","ATM","CASH","CHECK","CLOSURE","CLOSUREOPT","CONTRIBUTION","DEP","DEPOSIT","DIRECTDEBIT","DIRECTDEP","DIV","DIVIDEND","DIVIDENDREINVEST","EXPENSE","FEE","INCOME","INTEREST","INVEXPENSE","JRNLFUND","JRNLSEC","MARGININTEREST","OPTIONEXERCISE","OPTIONEXPIRATION","OTHER","PAYMENT","POS","PURCHASED","PURCHASEDTOCOVER","PURCHASETOCLOSE","PURCHASETOOPEN","REINVESTOFINCOME","REPEATPMT","RETURNOFCAPITAL","SOLD","SOLDTOCLOSE","SOLDTOOPEN","SPLIT","SRVCHG","TRANSFER","XFER"]},LoanAccountType:{description:"The type of an account. Plaid consumes basic balance account information from the `accounts/{accountId}` endpoint for a subset of the possible account types described in the FDX specification.\n",type:"string",example:"HOMEEQUITYLOAN",enum:["AUTOLOAN","COMMERCIALLOAN","HOMEEQUITYLOAN","INSTALLMENT","LOAN","MILITARYLOAN","MORTGAGE","PERSONALLOAN","SMBLOAN","STUDENTLOAN"]},LoanTransactionType:{title:"Loan Transaction Type",description:"The type of a loan transaction. Plaid passes through all loan transaction types.\n\n
      \n
    • `ADJUSTMENT`: Adjustment or correction.
    • \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
    • `LUMP_SUM_PAYMENT`: A single payment of money, as opposed to a series of payments made over time.
    • \n
    • `SKIP_PAYMENT`: Payment that satisfies deferral of a required payment.
    • \n
    • `DOUBLE_UP_PAYMENT`: Additional payment beyond the required payment to reduce the principal.
    • \n
    • `PAYOFF`: Payment that satisfies the terms of the mortgage loan and completely pays off the debt.
    • \n
    \n",type:"string",enum:["ADJUSTMENT","FEE","INTEREST","PAYMENT","LUMP_SUM_PAYMENT","SKIP_PAYMENT","DOUBLE_UP_PAYMENT","PAYOFF"]},LocAccountType:{description:"The type of an account. Plaid consumes basic balance account information from the `accounts/{accountId}` endpoint for a subset of the possible account types described in the FDX specification.\n",type:"string",example:"CREDITCARD",enum:["LINEOFCREDIT","CHARGE","COMMERCIALLINEOFCREDIT","CREDITCARD","HOMELINEOFCREDIT"]},LocTransactionType:{title:"Line-Of-Credit Transaction Type",description:"The type of a line of credit (LOC) transaction. Plaid passes through all LOC transaction types.\n",type:"string",enum:["ADJUSTMENT","CHECK","FEE","INTEREST","PAYMENT","WITHDRAWAL"]},PaymentNetworkType:{title:"Payment Network Type",description:"Suggested values for Payment Network Type. `US_` refers to the USA, and `CA_` refers to Canada.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
    ValueDescription
    US_ACHAutomated Clearing House, also called Fed ACH network (mostly small banks)
    US_FEDWIREFedwire Funds Service.
    US_CHIPSClearinghouse Interbank Payments System. Also called Clearing House ACH network (primarily big banks)
    CA_ACSSAutomated Clearing House Settlement System
    CA_LVTSLarge-Value Transfer System
    \n",type:"string",enum:["US_ACH","US_FEDWIRE","US_CHIPS","US_RTP","CA_ACSS","CA_LVTS"]},SecurityIdType:{title:"Security ID Type",description:"Plaid consumes solely CUSIP, ISIN, and SEDOL.\nThis field, along with `securityId` are **required** unless `symbol` is provided.\n**Note:** If `securityIdType` is provided, `securityId` is required.\n",type:"string",enum:["CUSIP","ISIN","SEDOL","SICC","VALOR","WKN"]},SecurityType:{title:"Security Type",description:"The type of a security",type:"string",enum:["BOND","DEBT","MUTUALFUND","DIGITALASSET","OPTION","OTHER","STOCK","SWEEP"]},TransactionStatus:{title:"Transaction Status",description:"The status of a transaction. Plaid consumes solely the `PENDING` and `POSTED` enums,\nand treats `MEMO` and `AUTHORIZATION` as if they were `PENDING`. Plaid expects that pending and posted transactions\nhave different `transactionIds`.\n* `AUTHORIZATION`\n* `MEMO` - A pending transaction to be completed at the end of this day\n* `PENDING` - A pending transaction\n* `POSTED` - A posted transaction\n",type:"string",enum:["AUTHORIZATION","MEMO","PENDING","POSTED"]},UnitType:{title:"Unit Type",description:"The units of an investment transaction",type:"string",enum:["CURRENCY","SHARES"]}}}},5.2:{openapi:"3.0.3",info:{version:"5.2.0",title:"FDX V5.2",description:'## FDX compliance\n\nThe Core Exchange API specifications are a subset of the Financial Data Exchange (FDX) API specification, the usage thereof (or any part thereof) constitutes acceptance of the FDX API\nLicense Agreement, which can be found at https://financialdataexchange.org/. The FDX API specification is distributed exclusively by FDX. Modifications to eliminate required or\nconditional elements prescribed in the FDX API Certification Use Cases will render any implementations using said modifications non-conformant with the FDX API Certification Use Cases.\nPlease note that building the FDX-compliant Core Exchange API and permitting Plaid to call your build constitutes acceptance of\nthe FDX end user license agreement, which can be found at https://financialdataexchange.org/.\nThe full FDX API standard specification is distributed exclusively by FDX.\n\n## Download the specification\n\nTo view this specification and documentation as an OpenAPI YAML file, see [the public Core Exchange Github repository](https://github.com/plaid/core-exchange/tree/main/versions).\n\n## Endpoints\n\nThis specification contains the following endpoints:\n\n - `/customers/current`\n\n - `/accounts`\n\n - `/accounts/{accountId}`\n\n - `/accounts/{accountId}/payment-networks`\n\n - `/accounts/{accountId}/statements`\n\n - `/accounts/{accountId}/statements/{statementId}`\n\n - `/accounts/{accountId}/contact`\n\n - `/accounts/{accountId}/transactions`\n\n## Mock server\n\nSee the [mock server postman collection](/core-exchange/example) for Core Exchange v5.2.\n\n## Error responses\n\nAn 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.\nError responses must contain a `code` and `message`, and may optionally include a `debugMessage`.\nSee the descriptions below:\n\n- `code`: The FDX error code: A long-term persistent identifier which can be used to trace error condition back to log information.\n (**Note:** This code may differ from the HTTP status code.)\n- `message`: End user displayable information which might help the customer diagnose an error\n- `debugMessage`: Message used to debug the root cause of the error. Contents should not be used in consumer\'s business logic. Can change at any time and should only be used for consumer to communicate with the data provider about an issue. Provider can include an error GUID in message for their use\n\n### Example error\n\nThe following is an example response with an HTTP status code of 409.\n\n```\n{\n "code": 705,\n "message": "Account is closed",\n "debugMessage": "Operation is not supported by the closed account"\n}\n```\n\nSee the Errors table in each endpoint description for more specific message and debug message examples.\n',contact:{name:"Plaid support",url:"https://plaid.com/data-connectivity-core-exchange/",email:"dataconnectivity@plaid.com"}},servers:[{url:"https://api.your-organization.com/fdx/v5",description:"Financial Data Exchange V5.2 Core API"}],tags:[{name:"Personal Information",description:"Search and view customer or customers"},{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:"Payment Networks Information",description:"Search and view account payment networks"}],paths:{"/customers/current":{get:{operationId:"getCustomerInfo",tags:["Personal Information"],description:"Get the ID of the customer within the authorization scope.\n\n**Note:**\n\n
      \n
    • If you use OIDC authentication (recommended) you do not need to implement this endpoint as Plaid identifies the customer using the OIDC `id_token` response.
    • \n
    • If you use OAuth2 authentication, Plaid uses this endpoint as an alternate method of customer identification.
    • \n
    \n",summary:"Get current authenticated customer ID",security:[{openIdConnect:[]},{oauth2:[]}],responses:{200:{description:"Data describing current authenticated customer",content:{"application/json":{schema:{$ref:"#/components/schemas/CustomerWithId"},examples:{"example-1":{value:{customerId:"someLongTermUniqueIDString"}}}}}}}}},"/accounts":{get:{operationId:"searchForAccounts",tags:["Account Information"],summary:"List all accounts",description:"Search and view customer accounts\n",security:[{openIdConnect:["Account"]},{oauth2:["Account"]}],parameters:[{$ref:"#/components/parameters/OffsetQuery"},{$ref:"#/components/parameters/LimitQuery"}],responses:{200:{description:"Array of accounts",content:{"application/json":{schema:{$ref:"#/components/schemas/Accounts"},examples:{"example-1":{value:{page:{nextOffset:"25"},accounts:[{depositAccount:{accountId:"depositAccount0000001",accountType:"CHECKING",accountNumberDisplay:"5820",productName:"Checking",nickname:"Main Checking",status:"OPEN",currency:{currencyCode:"USD"}}},{loanAccount:{accountId:"loanAccount0000001",accountType:"LOAN",accountNumberDisplay:"4704",productName:"Loan",nickname:"Primary Loan",status:"OPEN",currency:{currencyCode:"USD"}}},{locAccount:{accountId:"locAccount0000001",accountType:"LINEOFCREDIT",accountNumberDisplay:"8200",productName:"Line of Credit",nickname:"First plaidypus LOC",status:"OPEN",currency:{currencyCode:"USD"}}},{investmentAccount:{accountId:"investmentAccount0000001",accountType:"TAXABLE",accountNumberDisplay:"1050",productName:"Brokerage Account",nickname:"First plaidypus Brokerage",status:"OPEN",currency:{currencyCode:"USD"}}}]}}}}}}}}},"/accounts/{accountId}":{get:{operationId:"getAccount",tags:["Account Information"],summary:"Get account balances and liabilities",description:"Get account balances, liabilities, and other information. Plaid uses this endpoint to:\n\n
      \n
    • Get account balances for deposit accounts. For example, `CHECKING` or `SAVINGS`. For more information about how Plaid uses this information, see [Plaid Balance API](https://plaid.com/docs/api/products/balance/).
    • \n
    • Get account liabilities for `STUDENTLOAN`, `MORTGAGE`, and `CREDITCARD` loan accounts. For more information about how Plaid uses this information, see [Plaid Liabilities API](https://plaid.com/docs/api/products/liabilities/).
    • \n
    • Get balances and holdings for investment accounts. For more information about how Plaid uses this information, see [Plaid Investments API](https://plaid.com/docs/investments/).
    • \n
    \n\nSee the response schema below for a full list of possible parameters for each account type.\n",security:[{openIdConnect:["Account"]},{oauth2:["Account"]}],parameters:[{$ref:"#/components/parameters/AccountIdPath"}],responses:{200:{description:"The full details of an investment, loan, deposit, or line of credit account",content:{"application/json":{schema:{$ref:"#/components/schemas/AccountWithDetails"}}}}}}},"/accounts/{accountId}/contact":{get:{operationId:"getAccountContact",tags:["Personal Information"],description:"Get contact information on the account.\n\nPlaid links contact information to accounts, rather than to users. Plaid consumes multiple holders and their contact information for the account, but doesn't attempt to correlate holders to their respective contact information. For more information about Plaid's identity model, see [Plaid Identity API](https://plaid.com/docs/api/products/identity/).\n",summary:"Get an account's contact information",parameters:[{$ref:"#/components/parameters/AccountIdPath"}],security:[{openIdConnect:["Customer"]},{oauth2:["Customer"]}],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:["Payment Networks Information"],description:"Get payment networks supported by an account, for example ACH (Automated Clearing House). For more information about how Plaid uses this information, see the [Plaid Auth API](https://plaid.com/docs/api/products/auth/).\n",summary:"Get payment networks supported by the account",security:[{openIdConnect:["Account"]},{oauth2:["Account"]}],parameters:[{name:"accountId",in:"path",description:"Account identifier, found in the `GET /accounts` endpoint response.\nPlaid expects the ID to be a different value from the account number.\n\n**Note:** If the status of the `accountId` provided is `RESTRICTED`, you can send a 200 response with an empty body to indicate that no payment networks are available at this time.\n",required:!0,schema:{type:"string"}},{$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:{properties:{page:{$ref:"#/components/schemas/PageMetadata"},paymentNetworks:{type:"array",items:{$ref:"#/components/schemas/AccountPaymentNetwork"}}},required:["paymentNetworks"]},examples:{"example-1":{page:{nextOffset:25},paymentNetworks:[{bankId:"010088889",identifier:"1111222233335820",type:"US_ACH",transferIn:!0,transferOut:!0}]}}}}}}}},"/accounts/{accountId}/statements":{get:{operationId:"searchForAccountStatements",tags:["Account Statements"],description:"Get account statements.\n\nExample: `GET /accounts/{accountId}/statements?startTime=value1&endTime=value2`\n",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:{"example-1":{value:{page:{nextOffset:"2",total:3},statements:[{accountId:"10001",statementId:"20001",links:[{href:"/accounts/1111/statements?offSet=2&limit=10"}]}]}}}}}}}}},"/accounts/{accountId}/statements/{statementId}":{get:{operationId:"getAccountStatement",tags:["Account Statements"],description:"Get account statement PDF.\n",summary:"Get account statement",parameters:[{$ref:"#/components/parameters/AccountIdPath"},{$ref:"#/components/parameters/StatementIdPath"}],responses:{200:{description:"A pdf of an account statement",content:{"application/pdf":{schema:{$ref:"#/components/schemas/StatementPDF"}}}}}}},"/accounts/{accountId}/transactions":{get:{operationId:"searchForAccountTransactions",tags:["Account Transactions"],description:"List all account transactions. Plaid always queries this endpoint a `startTime` and an `endTime`, for example, `/accounts/{accountId}/transactions?startTime=2022-01-30&endTime=2022-05-30`, and expects the time filters to be based on the `postedTimestamp`.\n\nPlaid consumes data from this endpoint for the following account types only:\n
      \n
    • Loan
    • \n
    • Investment
    • \n
    • Deposit
    • \n
    • Line of credit (LOC)
    • \n
    \n",summary:"List all account transactions",security:[{openIdConnect:["Transactions"]},{oauth2:["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. Plaid consumes the following transaction types: InvestmentTransaction, DepositTransaction, LoanTransaction, or LocTransaction\n",content:{"application/json":{schema:{$ref:"#/components/schemas/Transactions"},examples:{"example-1":{value:{page:{nextOffset:"2"},transactions:[{depositTransaction:{checkNumber:1234,payee:"ACME llc",transactionId:"depositTransaction000000001",postedTimestamp:"2022-04-06T00:00:00.000Z",transactionTimestamp:"2022-04-05T00:00:00.000Z",description:"check for latest ACME invoice",debitCreditMemo:"DEBIT",status:"PENDING",amount:400}},{depositTransaction:{transactionId:"depositTransaction000000002",postedTimestamp:"2022-04-07T00:00:00.000Z",transactionTimestamp:"2022-04-07T00:00:00.000Z",description:"reconciliation/adjustment of bank statement error",debitCreditMemo:"DEBIT",status:"POSTED",amount:.8}}]}}}}}}}}}},components:{securitySchemes:{openIdConnect:{type:"openIdConnect",description:"This API uses an [OpenID Connect (OIDC) authentication flow](/core-exchange/authentication) and accepts the resulting [access token](/core-exchange/authentication#response-parameters) as a bearer token. For example, `curl -H 'Authorization: Bearer '`.\n",openIdConnectUrl:"https://www.your-organization.com/.well-known/openid-configuration"},oauth2:{type:"oauth2",description:"This API uses an [OAuth2.0 authorization code flow](https://auth0.com/docs/get-started/authentication-and-authorization-flow/authorization-code-flow) and accepts the resulting access token as a bearer token. For example, `curl -H 'Authorization: Bearer '`.\n",flows:{authorizationCode:{authorizationUrl:"https://www.your-organization.com/authorize",tokenUrl:"https://www.your-organization.com/token",scopes:{Account:"(optional) Read account data",Customer:"(optional) Read customer data",Transactions:"(optional) Read transaction data"}}}}},parameters:{LimitQuery:{name:"limit",in:"query",description:"Number of elements that the API consumer wishes to receive. Plaid has a default limit of 100 elements. If this value differs from your organization's limit for the number of items to send in one response, then pick the lower of the two different limits and use the lower limit to define the number of items you send on each page of a paginated response. Plaid then gets the next page by making a new request with the opaque `nextOffset` field that your organization returned in the latest response, until your organization omits `nextOffset` in the response to indicate the last page.\n",schema:{type:"integer"}},OffsetQuery:{name:"offset",in:"query",description:"Plaid receives this value from your organization's latest response in a paginated response, and returns it to in a new request to get the next page. Your organization omits `nextOffset` in the response to indicate the last page.\n",schema:{type:"string",example:"qwer123454q2f"}},AccountIdPath:{name:"accountId",in:"path",description:"Account identifier, found in the `GET /accounts` endpoint response. Plaid expects the ID to be a different value from the account number.\n",required:!0,schema:{type:"string"}},StatementIdPath:{name:"statementId",in:"path",description:"Statement identifier, found in the `GET /accounts/{accountId}/statements` endpoint response.\n",required:!0,schema:{type:"string"}},EndTimeQuery:{name:"endTime",in:"query",description:"End time for use in retrieval of elements (ISO 8601). For transactions, Plaid expects this to filter by the `postedTimestamp`.",schema:{$ref:"#/components/schemas/DateString"}},StartTimeQuery:{name:"startTime",in:"query",description:"Start time for use in retrieval of elements (ISO 8601). For transactions, Plaid expects this to filter by the `postedTimestamp`.",schema:{$ref:"#/components/schemas/DateString"}}},schemas:{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"},region:{$ref:"#/components/schemas/String64",description:"State or province or territory."},postalCode:{type:"string",maxLength:16,description:"Postal code"},country:{$ref:"#/components/schemas/Iso3166CountryCode",description:"Country code"}},required:["line1","city","country"]},CustomerWithId:{title:"Customer entity.",description:"Represents a customer. Plaid-specific schema created to hold one property, the `customerId` property of the FDX `Customer` schema.\n",type:"object",properties:{customerId:{$ref:"#/components/schemas/Identifier",description:"Long-term persistent identity of the customer. This identity must be unique within your organization. Plaid consumes this customer ID if your organization uses OAuth2 instead of OIDC to secure the API. Plaid expects your organization to issue the ID as a consistent, static, opaque, unique identifier for the user\n",example:[{customerId:"customer0000001"}]}},required:["customerId"]},CustomerWithName:{title:"Customer entity",description:"Represents a customer. Plaid-specific schema created to hold one property, the `name` property of the FDX `Customer` schema.\n",type:"object",properties:{name:{$ref:"#/components/schemas/CustomerName"}},required:["name"]},CustomerName:{title:"Customer Name entity",description:"The name of an individual in their role as a customer. Plaid expects at least one populated name field. If any field is missing (for example, no first name), then you respond with an empty string for that field.\n",type:"object",allOf:[{$ref:"#/components/schemas/IndividualName"},{type:"object",properties:{prefix:{description:"Name prefix, e.g. Mr.",type:"string"}}}]},DeliveryAddress:{title:"Delivery Address",description:"A delivery address and its location type",type:"object",allOf:[{$ref:"#/components/schemas/Address"}]},HateoasLink:{title:"HATEOAS Link",description:"HATEOAS (Hypermedia As The Engine Of Application State) link",required:["href"],type:"object",properties:{href:{type:"string",format:"uri-reference",description:"The resource URL",example:"https://api.fi.com/fdx/v4/accounts/12345"},action:{description:"The HTTP method to use for the request",$ref:"#/components/schemas/HttpAction"},rel:{description:"The relation of this link to its containing entity, as defined by the [IETF RFC5988](https://datatracker.ietf.org/doc/html/rfc5988)",type:"string"},types:{type:"array",items:{$ref:"#/components/schemas/ContentTypes"},description:"The content-types that can be used in the Accept header. **Note:** Plaid currently only accepts the PDF (`application/pdf`) content type."}}},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"}},required:["first","last"]},PageMetadata:{title:"Page Metadata",description:"Contains opaque identifier, `nextoffset`, for paginated result sets. The `nextOffset` ID doesn't need to be numeric or have any specific pattern. In other words, your organization can implement this however you prefer. The presence of this offset indicates that there's at least one more page of data available. The absence of this offset indicates that there are no more pages of data left in this paginated array. The API consumer returns this in the `offset` parameter in a new request to get the next page in the response array.\n",type:"object",properties:{nextOffset:{type:"string",example:"qwer123454q2f",description:"Opaque offset identifier."}}},PaginatedArray:{title:"Paginated Array",description:"Base class for results that may be paginated",type:"object",properties:{page:{$ref:"#/components/schemas/PageMetadata"}}},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,description:"Country calling codes defined by ITU-T recommendations E.123 and E.164"},number:{type:"string",maxLength:15,pattern:"\\d+",description:"Telephone subscriber number defined by ITU-T recommendation E.164"}},required:["number","type"]},AccountContact:{title:"Account Contact entity",description:"Contact information for the account.",type:"object",properties:{holders:{type:"array",items:{$ref:"#/components/schemas/AccountHolder"},minItems:1,description:"Owners of the account. Note that while the [FDX specification](https://financialdataexchange.org) enables associating holders and their contact information in the full `AccountHolder` schema, Plaid doesn't consume these associations. Instead, Plaid consumes limited information for each `AccountHolder` and doesn't associate contact information such as emails, addresses, or telephone numbers to account holders. For more information about Plaid's data model for account contact information, see [Identity](https://plaid.com/docs/api/products/identity/).\n",example:[{relationship:"SECONDARY",name:{first:"Ernest",middle:"Miller",last:"Hemingway",suffix:"IV"}},{relationship:"PRIMARY_JOINT",name:{first:"Maya",last:"Angelou",middle:"Annie"}}]},emails:{type:"array",items:{type:"string"},minItems:1,description:"Email addresses associated with the account.\n",example:["ernest.m.hemingway@domain.tld","m.angelou@domain.tld"]},addresses:{type:"array",items:{$ref:"#/components/schemas/DeliveryAddress"},minItems:1,description:"Physical mail addresses associated with the account.\n",example:[{line1:"1850 N Clark St",line2:"Apartment 103",city:"Chicago",region:"IL",postalCode:"60614",country:"US"},{line1:"2014 N Main St",city:"San Francisco",region:"CA",postalCode:"94105",country:"US"}]},telephones:{type:"array",items:{$ref:"#/components/schemas/TelephoneNumber"},minItems:1,description:"Telephone numbers associated with the account.\n",example:[{type:"HOME",country:"1",number:"3127771926"},{type:"CELL",country:"53",number:"45915607"},{type:"HOME",country:"1",number:"4157771926"}]}},required:["holders","emails","addresses","telephones"]},AccountDescriptor:{title:"Account Descriptor entity",description:"This descriptor provides minimal information about the account for use in lightweight arrays",type:"object",properties:{accountId:{description:"Long-term persistent identity of the account, though not an account number. This identity must be unique within your organization.\n",$ref:"#/components/schemas/Identifier"},accountNumberDisplay:{description:"Account display number for the end user's handle at the owning financial institution. Plaid expects that the last 4 digits of this masked number correspond to the last 4 digits of the account number.\n",type:"string",example:"4321"},productName:{type:"string",description:"Marketed product name for this account. Used in UIs to assist in account selection"},nickname:{description:"Name given by the user. Used in UIs to assist in account selection. Plaid recommends returning this only if the account permits user renaming.\n",type:"string"},status:{$ref:"#/components/schemas/AccountStatus"},currency:{$ref:"#/components/schemas/Currency"}},required:["accountId","productName","status","currency"]},AnnuityAccountDescriptor:{allOf:[{$ref:"#/components/schemas/AccountDescriptor"},{type:"object",properties:{accountType:{$ref:"#/components/schemas/AnnuityAccountType"}},required:["accountType"]}],"x-examples":[{annuityAccount:{accountId:"annuityAccount0000001",accountType:"FIXEDANNUITY",accountNumberDisplay:"53901",productName:"Fixed Annuity",nickname:"Fixed annuity 1",status:"OPEN",currency:{currencyCode:"USD"}}}]},AccountHolder:{title:"Account Holder entity",type:"object",allOf:[{$ref:"#/components/schemas/CustomerWithName"},{type:"object",properties:{relationship:{$ref:"#/components/schemas/AccountHolderRelationship",description:"Customer's relationship to the account"}}}]},AccountPaymentNetwork:{title:"Payment Network Supported by Account",description:"This provides details required to execute a transaction against the account within the payment network",type:"object",properties:{bankId:{type:"string",description:"Bank identifier used by the payment network ie. Routing Number"},identifier:{type:"string",description:"The number used to identify the account within the payment network."},type:{$ref:"#/components/schemas/PaymentNetworkType"},transferIn:{type:"boolean",description:"Can transfer funds to the account using this information. Plaid expect that this value represents the account's current ability to be credited through a payment network.\nPlaid recommends dynamically updating this value, for example to represent if the account is locked or not.\n\n**Note:** Both `transferIn` and `transferOut` must be `true` in order for the account to support ACH.\n"},transferOut:{type:"boolean",description:"Can transfer funds from the account using this information. Plaid expect that this value represents the account's current ability to be debited through a payment network.\nPlaid recommends dynamically updating this value, for example to represent if the account is locked or not.\n\n**Note:** Both `transferIn` and `transferOut` must be `true` in order for the account to support ACH.\n"}},required:["bankId","identifier","type","transferIn","transferOut"]},AccountWithDetails:{title:"Account With Details entity",description:"An account with full details",type:"object",oneOf:[{type:"object",title:"Deposit Account",properties:{depositAccount:{$ref:"#/components/schemas/DepositAccount"}},required:["depositAccount"],additionalProperties:!1},{type:"object",title:"Investment Account",properties:{investmentAccount:{$ref:"#/components/schemas/InvestmentAccount"}},required:["investmentAccount"],additionalProperties:!1},{type:"object",title:"Loan Account",properties:{loanAccount:{$ref:"#/components/schemas/LoanAccount"}},required:["loanAccount"],additionalProperties:!1},{type:"object",title:"Line of Credit Account",properties:{locAccount:{$ref:"#/components/schemas/LocAccountFull"}},required:["locAccount"],additionalProperties:!1}]},AccountWithDescriptor:{title:"Account With Descriptor entity",description:"This provides an instance of an account without full details",type:"object",anyOf:[{type:"object",title:"Deposit Account",properties:{depositAccount:{$ref:"#/components/schemas/DepositAccountDescriptor",description:"A deposit account. For example, a checking, savings or money market account.\nPlaid consumes more detailed information for `CHECKING` and `SAVINGS` accounts.\n\nThe `accountType` field for deposit accounts may be set to any of the following:\n\n
      \n
    • `CHECKING`: A deposit account held at a financial institution that allows withdrawals and deposits.
    • \n
    • `SAVINGS`: An interest-bearing deposit account held at a bank or other financial institution.
    • \n
    • `CD`: A certificate of deposit (CD) is a product offered by banks and credit unions that provides an interest rate premium in exchange for the customer agreeing to leave a lump-sum deposit untouched for a predetermined period of time.
    • \n
    • `COMMERCIALDEPOSIT`: A deposit account for commercial customers, for example a business trust account.
    • \n
    • `ESCROW`: A contractual arrangement in which a third party (the stakeholder or escrow agent) receives and disburses money or property for the primary transacting parties, with the disbursement dependent on conditions agreed to by the transacting parties.
    • \n
    • `MONEYMARKET`: A deposit account that pays interest based on current interest rates in the money markets.
    • \n
    • `OTHERDEPOSIT`: Use when none of the listed enums apply.
    • \n
    \n"}},required:["depositAccount"],additionalProperties:!1},{type:"object",title:"Loan Account",properties:{loanAccount:{$ref:"#/components/schemas/LoanAccountDescriptor",description:"A loan account. For example, mortgage, student loan or auto loan.\nPlaid consumes more detailed information for `MORTGAGE` and `STUDENTLOAN` accounts.\n\nThe `accountType` field for loan accounts may be set to any of the following:\n\n
      \n
    • `AUTOLOAN`: A type of loan used to finance a car purchase.
    • \n
    • `COMMERCIALLOAN`: A preset borrowing limit that can be used at any time.
    • \n
    • `HOMEEQUITYLOAN`: A type of loan in which the borrower uses the equity of his or her home as collateral.
    • \n
    • `INSTALLMENT`: A type of agreement or contract involving a loan that is repaid over time with a set number of scheduled payments.
    • \n
    • `LOAN`: The lending of money by one or more individuals, organizations, or other entities to other individuals, organizations etc.
    • \n
    • `MILITARYLOAN`: A military loan.
    • \n
    • `MORTGAGE`: A type of loan you can use to buy or refinance a home.
    • \n
    • `PERSONALLOAN`: A type of debt that is not protected by a guarantor, or collateralized by a lien on specific assets of the borrower.
    • \n
    • `SMBLOAN`: A small/medium business loan.
    • \n
    • `STUDENTLOAN`: A type of loan designed to help students pay for post-secondary education and the associated fees, such as tuition, books and supplies, and living expenses.
    • \n
    \n"}},required:["loanAccount"],additionalProperties:!1},{type:"object",title:"Line of Credit Account",properties:{locAccount:{$ref:"#/components/schemas/LocAccountDescriptor",description:"A line-of-credit account. For example, a credit card or home equity line of credit.\nPlaid consumes more detailed information for `CREDITCARD` accounts.\n\nThe `accountType` field for line of credit accounts may be set to any of the following:\n\n
      \n
    • `LINEOFCREDIT`: A credit facility extended by a bank or other financial institution to a government, business or individual customer that enables the customer to draw on the facility when the customer needs funds.
    • \n
    • `CHARGE`: An account to which goods and services may be charged on credit.
    • \n
    • `COMMERCIALLINEOFCREDIT`: An account with a preset borrowing limit that can be used at any time.
    • \n
    • `CREDITCARD`: Allows cardholders to borrow funds with which to pay for goods and services with merchants that accept cards for payment.
    • \n
    • `HOMELINEOFCREDIT`: A loan in which the lender agrees to lend a maximum amount within an agreed period, where the collateral is the borrower's equity in their house.
    • \n
    \n"}},required:["locAccount"],additionalProperties:!1},{type:"object",title:"Investment Account",properties:{investmentAccount:{$ref:"#/components/schemas/InvestmentAccountDescriptor",description:"An investment account. For example, a 401K or IRA.\nPlaid consumes the same details for all investment accounts.\n\nThe `accountType` field for investment accounts may be set to any of the following:\n\n
      \n
    • `401A`: An employer-sponsored money-purchase retirement plan that allows dollar or percentage-based contributions from the employer, the employee, or both.
    • \n
    • `401K`: An employer-sponsored defined-contribution pension account defined in subsection 401(k) of the Internal Revenue Code.
    • \n
    • `403B`: A U.S. tax-advantaged retirement savings plan available for public education organizations, some non-profit employers (only Internal Revenue Code 501(c)(3) organizations), cooperative hospital service organizations, and self-employed ministers in the United States.
    • \n
    • `529`: A tax-advantaged savings plan designed to help pay for education.
    • \n
    • `BROKERAGEPRODUCT`: Investment management offered by a licensed brokerage firm that places trades on behalf of the customer, utilizing any number of investment options.
    • \n
    • `COMMERCIALINVESTMENT`: Investment Account for Commercial Customers. e.g. Commercial Brokerage Account.
    • \n
    • `COVERDELL`: A trust or custodial account set up in the United States solely for paying qualified education expenses for the designated beneficiary of the account.
    • \n
    • `DIGITALASSET`: An account containing digital assets.
    • \n
    • `DEFINEDBENEFIT`: An employer-sponsored retirement plan where employee benefits are computed using a formula that considers several factors, such as length of employment and salary history.
    • \n
    • `ESOP`: An employee stock ownership plan (ESOP) is an employee benefit plan that gives workers ownership interest in the company.
    • \n
    • `GUARDIAN`: An account of a child in the parent's name, with legal title to the assets in the account, as well as all capital gains and tax liabilities produced from the account belonging to the parent.
    • \n
    • `INSTITUTIONALTRUST`: An institutional trust account.
    • \n
    • `IRA`: An individual retirement account (IRA) is a tax-advantaged account that individuals use to save and invest for retirement.
    • \n
    • `KEOGH`: A tax-deferred pension plan available to self-employed individuals or unincorporated businesses for retirement purposes.
    • \n
    • `NONQUALIFIEDPLAN`: A type of tax-deferred employer-sponsored retirement plan that falls outside of ERISA guidelines.
    • \n
    • `OTHERINVESTMENT`: Use when none of the listed enums apply.
    • \n
    • `ROLLOVER`: An account containing investments rolled over from an employee-sponsored account.
    • \n
    • `ROTH`: An individual retirement account that offers tax-free growth and tax-free withdrawals in retirement.
    • \n
    • `SARSEP`: A simplified employee pension (SEP) plan set up before 1997 that includes a salary reduction arrangement.
    • \n
    • `TAXABLE`: A taxable investment account.
    • \n
    • `TDA`: TreasuryDirect Account.
    • \n
    • `TRUST`: A type of financial account that is opened by an individual and managed by a designated trustee for the benefit of a third party in accordance with agreed-upon terms.
    • \n
    • `TERM`: Life insurance that provides coverage at a fixed rate of payments for a limited period of time.
    • \n
    • `UGMA`: Uniform Gifts to Minors Act account.
    • \n
    • `UTMA`: Uniform Transfers to Minors Act account.
    • \n
    \n"}},required:["investmentAccount"],additionalProperties:!1},{type:"object",title:"Insurance Account",properties:{insuranceAccount:{$ref:"#/components/schemas/InsuranceAccountDescriptor",description:"An insurance account. For example, whole life insurance or short-term disability.\n\nThe `accountType` field for insurance accounts may be set to any of the following:\n\n
      \n
    • `LONGTERMDISABILITY`: Insurance that replaces a portion of the policyholder's income due to a disability for an extended period of time, usually more than a year.
    • \n
    • `SHORTTERMDISABILITY`: Insurance that replaces a portion of the policyholder's income due to a disability for a short period of time, usually less than a year.
    • \n
    • `UNIVERSALLIFE`: A type of a cash value life insurance where the excess of premium payments above the current cost of insurance is credited to the cash value of the policy, which in turn is credited each month with interest.
    • \n
    • `WHOLELIFE`: Life insurance which is guaranteed to remain in force for the insured's entire lifetime, provided required premiums are paid, or to the maturity date.
    • \n
    \n"}},required:["insuranceAccount"],additionalProperties:!1},{type:"object",title:"Annuity Account",properties:{annuityAccount:{$ref:"#/components/schemas/AnnuityAccountDescriptor",description:"An annuity account. For example, a fixed or variable annuity account.\n\nThe `accountType` field for annuity accounts may be set to any of the following:\n\n
      \n
    • `ANNUITY`: A form of insurance or investment entitling the investor to a series of annual sums.
    • \n
    • `FIXEDANNUITY`: A type of insurance contract that promises to pay the buyer a specific, guaranteed interest rate on their contributions to the account.
    • \n
    • `VARIABLEANNUITY`: A type of insurance contract that promises to pay back the buyer based on the performance of an underlying portfolio of mutual funds selected by the buyer.
    • \n
    \n"}},required:["annuityAccount"],additionalProperties:!1}]},Accounts:{title:"Accounts entity",description:"An optionally paginated array of accounts",type:"object",allOf:[{$ref:"#/components/schemas/PaginatedArray"},{type:"object",properties:{accounts:{type:"array",items:{$ref:"#/components/schemas/AccountWithDetails"},description:"An array of accounts. May include accounts of any of the following types: [deposit](#deposit-account), [investment](#investment-account), [line of credit](#line-of-credit-account), [loan](#loan-account)\n\n**Note:** Each object in the accounts array is expected to contain at least one account type.\n",minItems:1}},required:["accounts"]}]},Currency:{title:"Currency entity",description:"Represents an international currency.",type:"object",properties:{currencyCode:{$ref:"#/components/schemas/Iso4217Code",description:"ISO 4217 currency code"}},required:["currencyCode"]},DepositAccount:{allOf:[{$ref:"#/components/schemas/AccountDescriptor"},{type:"object",properties:{accountType:{$ref:"#/components/schemas/DepositAccountType"}},required:["accountType"]}]},DepositAccountDescriptor:{title:"Deposit Account entity",description:'Full details of a deposit account. Plaid consumes the same information for all types of deposit accounts.\nPlaid expects a decimal amount with two places (to represent fractional values of the base currency) for all monetary amounts. For example, `"currentBalance": 192.00`.\n\nThe `accountType` field for deposit accounts may be set to any of the [account types](#deposit-account-types) listed below.\n',type:"object",properties:{depositAccount:{$ref:"#/components/schemas/DepositAccount"}},required:["depositAccount"],"x-examples":[{depositAccount:{accountId:"depositAccount0000001",accountType:"CHECKING",accountNumberDisplay:"5820",productName:"Checking",nickname:"Main Checking",status:"OPEN",currency:{currencyCode:"USD"}}}]},DepositAccountFull:{title:"Deposit Account entity",description:'Full details of a deposit account. Plaid consumes the same information for all types of deposit accounts.\nPlaid expects a decimal amount with two places (to represent fractional values of the base currency) for all monetary amounts. For example, `"currentBalance": 192.00`.\n\nThe `accountType` field for deposit accounts may be set to any of the [account types](#deposit-account-types) listed below.\n',type:"object",properties:{depositAccount:{allOf:[{$ref:"#/components/schemas/DepositAccount"},{type:"object",properties:{currentBalance:{type:"number",description:"Current balance of the deposit account"},availableBalance:{type:"number",description:"Available balance of the deposit account"}},required:["currentBalance","availableBalance"]}]}},required:["depositAccount"],"x-examples":[{depositAccount:{accountId:"someLongTermUniqueIDString",accountNumberDisplay:"4321",productName:"string",nickname:"string",status:"CLOSED",currency:{currencyCode:"AED"},accountType:"CHECKING",currentBalance:0,availableBalance:0}}]},DepositTransaction:{title:"Deposit Transaction entity",description:"A transaction on a deposit account type",type:"object",allOf:[{$ref:"#/components/schemas/Transaction"},{type:"object",properties:{payee:{$ref:"#/components/schemas/String255",description:"Payee name"},checkNumber:{type:"integer",description:"Check number. Plaid expects this solely if the transaction involves a check.\n"}}}],"x-examples":[{transactionId:"depositTransaction000000001",transactionTimestamp:"2022-04-05T00:00:00.000Z",description:"check for latest ACME invoice",debitCreditMemo:"DEBIT",status:"PENDING",amount:400,payee:"Acme LLC",checkNumber:57448}]},Holding:{title:"Holding entity",description:"A holding in an investment account.\nPlaid maps the `holding` and the `investmentAccount` FDX models to its securities models, which hold universal information like the ticker symbol, and to its holdings models, which hold account-specific information like balances. For more information, see [Plaid investments](https://plaid.com/docs/investments/#securities-and-holdings).\n",allOf:[{type:"object",properties:{securityId:{description:"If you return the `securityId` for a holding, Plaid uses it to look up the closing price from NYSE Group Security Master. If you don't return `securityId` for a holding that uses security IDs (not recommended), Plaid uses the `unitPrice` as the closing price.\nThis field, along with `securityIdType` are **required** unless `symbol` is provided.\n**Note:** If `securityId` is provided, `securityIdType` is required.\n",type:"string"},securityIdType:{$ref:"#/components/schemas/SecurityIdType"},holdingName:{type:"string",description:"Holding name or security name"},holdingType:{$ref:"#/components/schemas/HoldingType"},holdingSubType:{$ref:"#/components/schemas/HoldingSubType",description:"MONEYMARKET, CASH"},symbol:{type:"string",description:"Ticker / Market symbol\nThis field is **required** unless both `securityId` and `securityIdType` are provided."},purchasedPrice:{type:"number",description:"Price of holding at the time of purchase. Plaid determines an approximate [cost basis](https://plaid.com/docs/api/products/investments/#investments-holdings-get-response-holdings-cost-basis) using the purchase price and the number of units. Plaid cannot take fees into account to determine the cost basis because the FDX holding schema doesn't include fees.\n"},currentUnitPrice:{type:"number",description:"Current unit price. Plaid uses this as the [institution_price](https://plaid.com/docs/api/products/investments/#investments-holdings-get-response-holdings-institution-price). Plaid falls back to using this as the [close price](https://plaid.com/docs/api/products/investments/#investments-holdings-get-response-securities-close-price) if you don't return `securityId` for holdings involving securities.\n"},currentUnitPriceDate:{$ref:"#/components/schemas/DateString",description:"Current unit price as of date"},units:{type:"number",description:"Plaid requires this field for holdings and transactions involving securities.\nFor security-based actions other than stock splits, quantity.\nShares for stocks, mutual funds, and others. Face value for bonds.\nContracts for options.\n\n**Note:** This field is required if the transaction involves a security.\n"},marketValue:{type:"number",description:"Market value at the time of data retrieved"},faceValue:{type:"number",description:"Required for bonds. Face value at the time of data retrieved. If this isn't present, Plaid assumes the holding isn't a bond and falls back to `marketValue`.\n"},cashAccount:{type:"boolean",description:"If true, indicates that this holding is used to maintain proceeds from sales, dividends, and other cash postings to the investment account. If you don't set a value for `isCashEquivalent` in the `fiAttributes` array, then Plaid uses `cashAccount` in determining the [is_cash_equivalent](https://plaid.com/docs/api/products/investments/#investments-holdings-get-response-securities-is-cash-equivalent) status.\n"},currency:{$ref:"#/components/schemas/Currency",description:"Currency information if it is different from Account entity."},fiAttributes:{type:"array",description:"Array of financial institution-specific attributes. Plaid recommends including a value for [is_cash_equivalent](https://plaid.com/docs/api/products/investments/#investments-holdings-get-response-securities-is-cash-equivalent) property in this array. Plaid accepts `isCashEquivalent` as the attribute name and a string value of `true` or `false`. If you return a value for `isCashEquivalent`, then return the same value for `cashAccount` as a boolean.\n",items:{$ref:"#/components/schemas/FiAttribute"}}},required:["cashAccount","marketValue"]}]},InsuranceAccountDescriptor:{allOf:[{$ref:"#/components/schemas/AccountDescriptor"},{type:"object",properties:{accountType:{$ref:"#/components/schemas/InsuranceAccountType"}},required:["accountType"]}],"x-examples":[{insuranceAccount:{accountId:"insuranceAccount0000001",accountType:"LONGTERMDISABILITY",accountNumberDisplay:"5820",productName:"Long-term disability",nickname:"Long term",status:"OPEN",currency:{currencyCode:"USD"}}}]},InvestmentAccount:{allOf:[{$ref:"#/components/schemas/AccountDescriptor"},{type:"object",properties:{accountType:{$ref:"#/components/schemas/InvestmentAccountType"}},required:["accountType"]}]},InvestmentAccountDescriptor:{description:"The type of investment account. For example, a 401K or IRA. Plaid consumes the same details for all investment accounts. The `accountType` field for investment accounts may be set to any of the [account types](#investment-account-types) listed below.\n",type:"object",properties:{investmentAccount:{$ref:"#/components/schemas/InvestmentAccount"}},required:["investmentAccount"],"x-examples":[{investmentAccount:{accountId:"investmentAccount0000001",accountType:"TAXABLE",accountNumberDisplay:"1050",productName:"Brokerage Account",nickname:"First plaidypus Brokerage",status:"OPEN",currency:{currencyCode:"USD"}}}]},InvestmentAccountFull:{description:"The type of investment account. For example, a 401K or IRA. Plaid consumes the same details for all investment accounts. The `accountType` field for investment accounts may be set to any of the [account types](#investment-account-types) listed below.\n",type:"object",properties:{investmentAccount:{allOf:[{$ref:"#/components/schemas/InvestmentAccount"},{type:"object",properties:{availableCashBalance:{type:"number",description:"Cash balance across all sub-accounts. Plaid expects that this includes sweep funds."},balanceAsOf:{description:"As-of date of balances.\n\nISO 8601 date-time in format `YYYY-MM-DDThh:mm:ss.nnn[Z|[+|-]hh:mm]` according to [IETF RFC3339](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6)\n",$ref:"#/components/schemas/Timestamp"},currentValue:{type:"number",description:"Total current value of all investments."},holdings:{type:"array",description:"Holdings in the investment account.\nPlaid maps the `holding` and the `investmentAccount` FDX models to its securities models, which hold universal information like the ticker symbol, and to its holdings models, which hold account-specific information like balances. For more information, see [Plaid investments](https://plaid.com/docs/investments/#securities-and-holdings).\n",items:{$ref:"#/components/schemas/Holding"}}},required:["availableCashBalance","currentValue"]}]},"x-examples":[{investmentAccount:{accountId:"investmentAccount0000001",accountType:"TAXABLE",accountNumberDisplay:"1050",productName:"Brokerage Account",nickname:"First plaidypus Brokerage",status:"OPEN",currency:{currencyCode:"USD"},availableCashBalance:4302.39,balanceAsOf:null,currentValue:4302.39,holdings:[{securityId:"string",securityIdType:"CINS",holdingName:"string",holdingType:"ANNUITY",holdingSubType:"CASH",symbol:"MTSN",purchasedPrice:12.5,currentUnitPrice:34.2,currentUnitPriceDate:"2024-07-15",units:100,marketValue:3400,faceValue:3400,cashAccount:!0,currency:{currencyCode:"AED"},fiAttributes:[{name:"string",value:"string"}]}]}}]}},InvestmentTransaction:{title:"Investment Transaction entity",description:"A transaction on an investment account.\nIn addition to the required fields in the base `Transaction` model, Plaid requires the following fields\nfor all transactions on an investment account:\n\n* `fees`\n* `transactionType`\n\nIf the transaction involves a security, Plaid additionally requires the following fields:\n\n* `unitPrice`\n* `units`\n* Either of the following:\n - `symbol`\n - `securityId` and `securityIdType`\n",type:"object",allOf:[{$ref:"#/components/schemas/Transaction"},{type:"object",properties:{transactionType:{$ref:"#/components/schemas/InvestmentTransactionType"},securityId:{type:"string",description:"If you return the `securityId` for a holding, Plaid uses it to look up the closing price from NYSE Group Security Master. If you don't return `securityId` for a holding that uses security IDs (not recommended), Plaid uses the `unitPrice` as the closing price.\nThis field, along with `securityIdType` are **required** unless `symbol` is provided.\n**Note:** If `securityId` is provided, `securityIdType` is required.\n"},securityIdType:{$ref:"#/components/schemas/SecurityIdType"},securityType:{$ref:"#/components/schemas/SecurityType",description:"STOCK, MUTUALFUND, DEBT, OPTION, SWEEP, OTHER, BOND"},symbol:{type:"string",description:"Ticker symbol.\n\nThis field is **required** unless both `securityId` and `securityIdType` are provided.\n"},commission:{type:"number",description:"Plaid expects that your organization includes a value for commission if the commission isn't included in `fees`.\n"},fees:{type:"number",description:"Fees applied to the trade. Plaid expects that the `fees` include the commission, unless your organization separately provides a value for `commission`.\n"},unitPrice:{type:"number",description:"Unit price. Plaid uses this as the [price](https://plaid.com/docs/api/products/investments/#investments-transactions-get-response-investment-transactions-price).\nPlaid falls back to using this as the [close price](https://plaid.com/docs/api/products/investments/#investments-transactions-get-response-securities-close-price)\nif you don't return `securityId` for transactions involving securities.\n\n**Note:** This field is required if the transaction involves a security.\n"},units:{type:"number",description:"Plaid requires this field for holdings and transactions involving securities.\nFor security-based actions other than stock splits, quantity.\nShares for stocks, mutual funds, and others. Face value for bonds.\nContracts for options.\n\n**Note:** This field is required if the transaction involves a security.\n"},unitType:{$ref:"#/components/schemas/UnitType",description:"SHARES, CURRENCY"},fiAttributes:{type:"array",description:"Array of financial institution-specific attributes. Plaid recommends including a value for [is_cash_equivalent](https://plaid.com/docs/api/products/investments/#investments-transactions-get-response-securities-is-cash-equivalent) property in this array. Plaid accepts `isCashEquivalent` as the attribute name and a string value of `true` or `false`.\n",items:{$ref:"#/components/schemas/FiAttribute"}}},required:["fees","transactionType"]}],"x-examples":[{transactionId:"investmentTransaction000000001",transactionTimestamp:"2022-04-05T00:00:00.000Z",description:"latest ACME investment invoice",debitCreditMemo:"DEBIT",status:"PENDING",amount:400,securityId:"APW881",securityIdType:"CMC",securityType:"DEBT",symbol:"MSFT",commission:.1,unitPrice:15.3,units:1e3,unitType:"SHARES",fiAttributes:[{name:"Vanguard",value:80}]}]},LoanAccount:{title:"Loan Account entity",type:"object",allOf:[{$ref:"#/components/schemas/AccountDescriptor"},{type:"object",properties:{accountType:{$ref:"#/components/schemas/LoanAccountType"},accountNumber:{type:"string",example:"loanAccount0000001",description:"Full account number for the end user's handle for the account at the owning institution\nRequired for accountType 'MORTGAGE'\n"},principalBalance:{type:"number",example:580303.95,description:"Principal balance of loan"},escrowBalance:{type:"number",example:3400.61,description:"Escrow balance of loan"},originalPrincipal:{type:"number",example:650400,description:"Original principal of loan"},originatingDate:{$ref:"#/components/schemas/DateString",description:"Loan origination date"},loanTerm:{type:"integer",example:360,description:"Term of loan in months"},nextPaymentAmount:{type:"number",example:2483.12,description:"Amount of next payment"},nextPaymentDate:{$ref:"#/components/schemas/DateString",description:"Date of next payment"},lastPaymentAmount:{type:"number",example:2483.12,description:"Last payment amount"},lastPaymentDate:{$ref:"#/components/schemas/DateString",description:"Last payment date"},maturityDate:{$ref:"#/components/schemas/DateString",description:"Maturity date"},interestPaidYearToDate:{type:"number",description:"Interest paid year to date"},interestRate:{type:"number",example:.075,description:"The account's interest rate"},interestRateType:{$ref:"#/components/schemas/InterestRateType"}},required:["principalBalance","interestRate","interestRateType","accountType"]}]},LoanAccountDescriptor:{description:'Full details of a loan account. The `accountType` field for loan accounts may be set to any of the [account types](#loan-account-types) listed below.\n\nPlaid only consumes the `MORTGAGE` and `STUDENTLOAN` types for its [Liabilities API](https://plaid.com/docs/api/products/liabilities/). For other loan account types Plaid consumes account details and transactions.\nPlaid consumes all loan account information as returned in the `GET /accounts` endpoint, as well as the additional information listed below:\n\nRequired for all loan accounts:\n* `principalBalance`\n* `interestRate`\n* `interestRateType`\n\nOptional fields for `STUDENTLOAN` accounts:\n* `interestPaidYearToDate`\n* `lastPaymentAmount`\n* `lastPaymentDate`\n* `maturityDate`\n* `nextPaymentDate`\n* `originalPrincipal`\n* `originatingDate`\n\nRequired for `MORTGAGE` accounts:\n* `accountNumber`\n\nOptional fields for `MORTGAGE` accounts:\n* `escrowBalance`\n* `interestPaidYearToDate`\n* `lastPaymentAmount`\n* `lastPaymentDate`\n* `loanTerm`\n* `maturityDate`\n* `nextPaymentAmount`\n* `nextPaymentDate`\n* `originalPrincipal`\n* `originatingDate`\n\nPlaid expects a decimal amount with two places (to represent fractional values of the base currency) for all monetary amounts. For example, `"escrowBalance": 192.00`.\n',type:"object",properties:{loanAccount:{$ref:"#/components/schemas/LoanAccount"}},required:["loanAccount"],"x-examples":[{loanAccount:{accountId:"loanAccount0000001",accountType:"LOAN",accountNumberDisplay:"4704",productName:"Loan",nickname:"Primary Loan",status:"OPEN",currency:{currencyCode:"USD"}}}]},LoanAccountFull:{description:'Full details of a loan account. The `accountType` field for loan accounts may be set to any of the [account types](#loan-account-types) listed below.\n\nPlaid only consumes the `MORTGAGE` and `STUDENTLOAN` types for its [Liabilities API](https://plaid.com/docs/api/products/liabilities/). For other loan account types Plaid consumes account details and transactions.\nPlaid consumes all loan account information as returned in the `GET /accounts` endpoint, as well as the additional information listed below:\n\nRequired for all loan accounts:\n* `principalBalance`\n* `interestRate`\n* `interestRateType`\n\nOptional fields for `STUDENTLOAN` accounts:\n* `interestPaidYearToDate`\n* `lastPaymentAmount`\n* `lastPaymentDate`\n* `maturityDate`\n* `nextPaymentDate`\n* `originalPrincipal`\n* `originatingDate`\n\nRequired for `MORTGAGE` accounts:\n* `accountNumber`\n\nOptional fields for `MORTGAGE` accounts:\n* `escrowBalance`\n* `interestPaidYearToDate`\n* `lastPaymentAmount`\n* `lastPaymentDate`\n* `loanTerm`\n* `maturityDate`\n* `nextPaymentAmount`\n* `nextPaymentDate`\n* `originalPrincipal`\n* `originatingDate`\n\nPlaid expects a decimal amount with two places (to represent fractional values of the base currency) for all monetary amounts. For example, `"escrowBalance": 192.00`.\n',type:"object",properties:{loanAccount:{$ref:"#/components/schemas/LoanAccount"}},required:["loanAccount"],"x-examples":[{loanAccount:{accountId:"someLongTermUniqueIDString",accountNumberDisplay:"4321",productName:"string",nickname:"string",status:"CLOSED",currency:{currencyCode:"AED"},accountType:"AUTOLOAN",accountNumber:"string",principalBalance:0,escrowBalance:0,originalPrincipal:0,originatingDate:"2021-07-15",loanTerm:0,nextPaymentAmount:0,nextPaymentDate:"2021-07-15",lastPaymentAmount:0,lastPaymentDate:"2021-07-15",maturityDate:"2021-07-15",interestPaidYearToDate:0,interestRate:0,interestRateType:"FIXED"}}]},LoanTransaction:{title:"Loan Transaction entity",description:"A transaction on a loan account",type:"object",allOf:[{$ref:"#/components/schemas/Transaction"},{type:"object",properties:{transactionType:{$ref:"#/components/schemas/LoanTransactionType"}}}],"x-examples":[{transactionId:"loanTransaction000000001",transactionTimestamp:"2022-04-05T00:00:00.000Z",description:"latest ACME invoice",debitCreditMemo:"CREDIT",status:"PENDING",amount:400}]},LocAccount:{type:"object",allOf:[{$ref:"#/components/schemas/AccountDescriptor"},{type:"object",properties:{accountType:{$ref:"#/components/schemas/LocAccountType"},creditLine:{type:"number",description:"Credit limit"},availableCredit:{type:"number",description:"Available credit. Required for all accountTypes except for `CHARGE`"},nextPaymentAmount:{type:"number",description:"Amount of next payment"},nextPaymentDate:{$ref:"#/components/schemas/DateString",description:"Due date of next payment"},principalBalance:{type:"number",description:"Principal balance"},currentBalance:{type:"number",description:"Current balance of the line of credit"},minimumPaymentAmount:{type:"number",description:"Minimum payment amount"},lastPaymentAmount:{type:"number",description:"Last payment amount"},lastPaymentDate:{$ref:"#/components/schemas/DateString",description:"Last payment date"},pastDueAmount:{type:"number",description:"Amount owed that the account holder failed to pay on the due date"},lastStmtBalance:{type:"number",description:"Last statement balance"},lastStmtDate:{$ref:"#/components/schemas/DateString",description:"Last statement date"},purchasesApr:{type:"number",description:"Purchases APR"},advancesApr:{type:"number",description:"Advances APR"}},required:["currentBalance","accountType"]}]},LocAccountDescriptor:{description:'Full details of a line of credit account. The `accountType` field for line of credit accounts may be set to any of the [account types](#loc-account-types) listed below.\n\nPlaid may consume all the parameters returned by the `GET /accounts` endpoint:\n\n* `availableCredit`\n* `creditLine`\n* `currentBalance`\n\nAdditionally, for the `CREDITCARD` accountType, Plaid consumes the previous information plus the following for its liabilities product:\n\n* `advancesApr`\n* `lastPaymentAmount`\n* `lastPaymentDate`\n* `lastStmtBalance`\n* `lastStmtDate`\n* `minimumPaymentAmount`\n* `nextPaymentDate`\n* `purchasesApr`\nPlaid expects a decimal amount with two places (to represent fractional values of the base currency) for all monetary amounts. For example, `"currentBalance": 192.00`.\n',type:"object",properties:{locAccount:{$ref:"#/components/schemas/LocAccount"}},required:["locAccount"],"x-examples":[{locAccount:{accountId:"loc_01_creditcard",accountNumberDisplay:"8200",productName:"First Plaidypus Credit Card",nickname:"my travel rewards card",status:"OPEN",currency:{currencyCode:"USD"},accountType:"CREDITCARD"}}]},LocAccountFull:{description:'Full details of a line of credit account. The `accountType` field for line of credit accounts may be set to any of the [account types](#loc-account-types) listed below.\n\nPlaid may consume all the parameters returned by the `GET /accounts` endpoint:\n\n* `availableCredit`\n* `creditLine`\n* `currentBalance`\n\nAdditionally, for the `CREDITCARD` accountType, Plaid consumes the previous information plus the following for its liabilities product:\n\n* `advancesApr`\n* `lastPaymentAmount`\n* `lastPaymentDate`\n* `lastStmtBalance`\n* `lastStmtDate`\n* `minimumPaymentAmount`\n* `nextPaymentDate`\n* `purchasesApr`\nPlaid expects a decimal amount with two places (to represent fractional values of the base currency) for all monetary amounts. For example, `"currentBalance": 192.00`.\n',type:"object",properties:{locAccount:{$ref:"#/components/schemas/LocAccount"}},required:["locAccount"],"x-examples":[{locAccount:{accountId:"loc_01_creditcard",accountNumberDisplay:"8200",productName:"First Plaidypus Credit Card",nickname:"my travel rewards card",status:"OPEN",currency:{currencyCode:"USD"},minimumPaymentAmount:100,lastPaymentAmount:400,lastPaymentDate:"2022-03-30",pastDueAmount:0,lastStmtBalance:400,lastStmtDate:"2022-03-25",purchasesApr:10.25,advancesApr:15.75,currentBalance:375,availableCredit:625,accountType:"CREDITCARD"}}]},LocTransaction:{title:"Line-Of-Credit Transaction entity",description:"A line-of-credit transaction",type:"object",allOf:[{$ref:"#/components/schemas/Transaction"},{type:"object",properties:{transactionType:{$ref:"#/components/schemas/LocTransactionType"},checkNumber:{type:"integer",description:"Check number"}}}],"x-examples":[{transactionId:"locTransaction000000001",transactionTimestamp:"2022-04-05T00:00:00.000Z",description:"credit for latest ACME invoice",debitCreditMemo:"DEBIT",status:"PENDING",amount:400}]},Statement:{title:"Statement entity",description:"An account statement",type:"object",properties:{accountId:{$ref:"#/components/schemas/Identifier",description:"Corresponds to `accountId` in Account entity"},statementId:{$ref:"#/components/schemas/Identifier",description:"Long-term persistent identity of the statement"},statementDate:{$ref:"#/components/schemas/DateString",description:"Date of the statement"},description:{type:"string",description:"Description of the statement"},links:{$ref:"#/components/schemas/HateoasLinks",description:"The HATEOAS links to retrieve this account statement, or to invoke other APIs.\n\n**Note:** Plaid only accepts one link object in this array.\n"},status:{description:"Availability status of statement",type:"string"}}},Statements:{title:"An array of statements",description:"A paginated array of account statements",type:"object",allOf:[{$ref:"#/components/schemas/PaginatedArray"},{type:"object",properties:{statements:{type:"array",description:"An array of statements, each with its own HATEOAS link to retrieve the account statement",items:{$ref:"#/components/schemas/Statement"}}},required:["statements"]}]},StatementPDF:{title:"Statement PDF",description:"An account statement PDF",type:"string",format:"binary"},Transaction:{title:"Transaction",description:"Base entity for financial transactions. For monetary amounts, Plaid expects a decimal amount, with two places to represent fractional values of the base currency, for example `101.99`.\n",type:"object",properties:{transactionId:{description:"Long term persistent identity of the transaction (unique to account). Plaid expects that `status: PENDING` and `status: POSTED` transactions have different IDs.",$ref:"#/components/schemas/Identifier"},referenceTransactionId:{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",$ref:"#/components/schemas/Identifier"},postedTimestamp:{description:"The date and time that the transaction was posted to the account.\n\nThis property is **required** by Plaid when `status=POSTED`.\nPlaid expects this property to be omitted when `status=PENDING`\n\nISO 8601 date-time in format `YYYY-MM-DDThh:mm:ss.nnn[Z|[+|-]hh:mm]` according to [IETF RFC3339](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6)\n",$ref:"#/components/schemas/Timestamp"},transactionTimestamp:{description:"The date and time that the transaction was added to the server backend systems. This acts as postedTimestamp when postedTimestamp is not present (pending transaction).\n\nISO 8601 date-time in format `YYYY-MM-DDThh:mm:ss.nnn[Z|[+|-]hh:mm]` according to [IETF RFC3339](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6)\n",$ref:"#/components/schemas/Timestamp"},description:{type:"string",description:"The description of the transaction"},debitCreditMemo:{$ref:"#/components/schemas/DebitCreditMemo"},category:{type:"string",description:"Transaction category, preferably MCC or SIC. Plaid expects your organization to provide MCC, if available and applicable.\n"},subCategory:{type:"string",description:"Transaction category detail"},status:{$ref:"#/components/schemas/TransactionStatus"},amount:{type:"number",description:"The amount of money in the account currency. The amount is an absolute value. Plaid relies on the `DebitCreditMemo` enum to determine the direction (and sign) of the transaction.\n"},foreignAmount:{type:"number",description:"The amount of money in the foreign currency. If this amount is specified, then Plaid expects that the `foreignCurrency` property is also set."},foreignCurrency:{$ref:"#/components/schemas/Iso4217Code",description:"The ISO 4217 code of the foreign currency"}},required:["debitCreditMemo","description","transactionId","transactionTimestamp","status","amount"]},Transactions:{title:"Transactions entity",description:"Optionally paginated array of transactions",type:"object",properties:{page:{$ref:"#/components/schemas/PageMetadata"},transactions:{description:"An array of transactions. The `transactionType` is dependent on the account type. Plaid consumes the following types of transactions: [investment](#investment-transaction), [deposit](#deposit-transaction), [loan](#loan-transaction), and [line of credit](#line-of-credit-transaction)\n\nPlaid expects your organization to return an empty array if this information isn't available.\n",type:"array",items:{oneOf:[{type:"object",title:"Deposit Transaction",properties:{depositTransaction:{$ref:"#/components/schemas/DepositTransaction"}},required:["depositTransaction"],additionalProperties:!1},{type:"object",title:"Investment Transaction",properties:{investmentTransaction:{$ref:"#/components/schemas/InvestmentTransaction",description:"A transaction on an investment account.\nIn addition to the required fields in the base `Transaction` model, Plaid requires the following fields\nfor all transactions on an investment account:\n\n* `fees`\n* `transactionType`\n\nIf the transaction involves a security, Plaid additionally requires the following fields:\n\n* `unitPrice`\n* `units`\n* Either of the following:\n - `symbol`\n - `securityId` and `securityIdType`\n"}},required:["investmentTransaction"],additionalProperties:!1},{type:"object",title:"Loan Transaction",properties:{loanTransaction:{$ref:"#/components/schemas/LoanTransaction"}},required:["loanTransaction"],additionalProperties:!1},{type:"object",title:"Line of Credit Transaction",properties:{locTransaction:{$ref:"#/components/schemas/LocTransaction"}},required:["locTransaction"],additionalProperties:!1}]}}},required:["transactions"],example:{page:{nextOffset:"qwer123454q2f"},transactions:[{depositTransaction:{transactionType:"CHECK",checkNumber:1234,payee:"ACME llc",transactionId:"depositTransaction000000001",postedTimestamp:"2022-04-06T00:00:00.000Z",transactionTimestamp:"2022-04-05T00:00:00.000Z",description:"check for latest ACME invoice",debitCreditMemo:"DEBIT",status:"PENDING",amount:400}},{depositTransaction:{transactionType:"ADJUSTMENT",transactionId:"depositTransaction000000002",postedTimestamp:"2022-04-07T00:00:00.000Z",transactionTimestamp:"2022-04-07T00:00:00.000Z",description:"reconciliation/adjustment of bank statement error",debitCreditMemo:"DEBIT",status:"POSTED",amount:.8}},{depositTransaction:{transactionType:"ATMDEPOSIT",transactionId:"depositTransaction000000003",postedTimestamp:"2022-04-08T00:00:00.000Z",transactionTimestamp:"2022-04-08T00:00:00.000Z",description:"ATM cash deposit location #1234",debitCreditMemo:"CREDIT",status:"POSTED",amount:101.8}}]}},AccountHolderRelationship:{title:"Account Holder Relationship",description:"Types of relationships between accounts and holders. Suggested values",type:"string",enum:["AUTHORIZED_USER","BUSINESS","FOR_BENEFIT_OF","FOR_BENEFIT_OF_PRIMARY","FOR_BENEFIT_OF_PRIMARY_JOINT_RESTRICTED","FOR_BENEFIT_OF_SECONDARY","FOR_BENEFIT_OF_SECONDARY_JOINT_RESTRICTED","FOR_BENEFIT_OF_SOLE_OWNER_RESTRICTED","POWER_OF_ATTORNEY","PRIMARY_JOINT_TENANTS","PRIMARY","PRIMARY_BORROWER","PRIMARY_JOINT","SECONDARY","SECONDARY_JOINT_TENANTS","SECONDARY_BORROWER","SECONDARY_JOINT","SOLE_OWNER","TRUSTEE","UNIFORM_TRANSFER_TO_MINOR"]},ContentTypes:{title:"Content Types",description:"Types of document formats. (Suggested values)",type:"string",enum:["application/pdf","image/gif","image/jpeg","image/tiff","image/png","application/json"]},DateString:{title:"Date String",description:"ISO 8601 full-date in format 'YYYY-MM-DD' according to [IETF RFC3339](https://xml2rfc.tools.ietf.org/public/rfc/html/rfc3339.html#anchor14)",type:"string",format:"date",maxLength:10,example:"2021-07-15"},HateoasLinks:{title:"HATEOAS links array",description:"An array of HATEOAS links",type:"array",items:{$ref:"#/components/schemas/HateoasLink"}},HttpAction:{title:"HTTP action type",description:"The HTTP method to use for requests",type:"string",enum:["GET","POST","PATCH","DELETE","PUT"]},Identifier:{title:"Identifier",description:"Value for a unique identifier",type:"string",maxLength:256,example:"someLongTermUniqueIDString"},Iso3166CountryCode:{title:"ISO 3166 Country Code",description:"ISO 3166 Codes for the representation of names of countries and their subdivisions",type:"string",enum:["AD","AE","AF","AG","AI","AL","AM","AN","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BM","BN","BO","BR","BS","BT","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CR","CS","CU","CV","CX","CY","CZ","DE","DJ","DK","DM","DO","DZ","EC","EE","EG","EH","ER","ES","ET","FI","FJ","FK","FM","FO","FR","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RU","RW","SA","SB","SC","SD","SE","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","ST","SV","SY","SZ","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TR","TT","TV","TW","TZ","UA","UG","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","YE","YT","ZA","ZM","ZW"]},Iso4217Code:{title:"ISO 4217 Code",description:"ISO 4217 Currency codes",type:"string",enum:["AED","AFN","ALL","AMD","ANG","AOA","ARS","AUD","AWG","AZN","BAM","BBD","BDT","BGN","BHD","BIF","BMD","BND","BOB","BOV","BRL","BSD","BTN","BWP","BZD","CAD","CDF","CHE","CHF","CHW","CLF","CLP","CNY","COP","COU","CRC","CUC","CUP","CVE","CZK","DJF","DKK","DOP","DZD","EGP","ERN","ETB","EUR","FJD","FKP","GBP","GEL","GHS","GIP","GMD","GNF","GTQ","GYD","HKD","HNL","HRK","HTG","HUF","IDR","ILS","INR","IQD","IRR","ISK","JMD","JOD","JPY","KES","KGS","KHR","KMF","KPW","KRW","KWD","KYD","KZT","LAK","LBP","LKR","LRD","LSL","LYD","MAD","MDL","MGA","MKD","MMK","MNT","MOP","MUR","MVR","MWK","MXN","MXV","MYR","MZN","NAD","NGN","NIO","NOK","NPR","NZD","OMR","PAB","PEN","PGK","PHP","PKR","PLN","PYG","QAR","RON","RSD","RUB","RWF","SAR","SBD","SCR","SDG","SEK","SGD","SHP","SLL","SOS","SRD","SSP","SVC","SYP","SZL","THB","TJS","TMT","TND","TOP","TRY","TTD","TWD","TZS","UAH","UGX","USD","USN","UYI","UYU","UZS","VND","VUV","WST","XAF","XAG","XAU","XBA","XBB","XBC","XBD","XCD","XDR","XOF","XPD","XPF","XPT","XSU","XTS","XUA","XXX","YER","ZAR","ZMW","ZWL"]},String255:{title:"String 255",description:"String of maximum length 255",type:"string",maxLength:255},String64:{title:"String 64",description:"String of maximum length 64",type:"string",maxLength:64},TelephoneNumberType:{title:"Telephone Number Type",description:"Purpose or type of telephone number",type:"string",enum:["HOME","BUSINESS","CELL","FAX"]},Timestamp:{title:"Timestamp",description:"ISO 8601 date-time in format `YYYY-MM-DDThh:mm:ss.nnn[Z|[+|-]hh:mm]` according to [IETF RFC3339](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6)",type:"string",format:"date-time",example:"2021-07-15T14:46:41.375Z"},AccountStatus:{title:"Account Status",description:"The status of an account.\n",type:"string",enum:["CLOSED","DELINQUENT","NEGATIVECURRENTBALANCE","OPEN","PAID","PENDINGCLOSE","PENDINGOPEN","RESTRICTED"]},AnnuityAccountType:{description:"The type of an account. Plaid consumes basic balance account information from the `accounts/{accountId}` endpoint for a subset of the possible account types described in the FDX specification.\n",type:"string",example:"FIXEDANNUITY",enum:["ANNUITY","FIXEDANNUITY","VARIABLEANNUITY"]},DepositAccountType:{description:"The type of an account. Plaid consumes basic balance account information from the `accounts/{accountId}` endpoint for a subset of the possible account types described in the FDX specification.\n",type:"string",example:"SAVINGS",enum:["CHECKING","SAVINGS","CD","COMMERCIALDEPOSIT","ESCROW","MONEYMARKET","OTHERDEPOSIT"]},InvestmentAccountType:{description:"The type of an account. Plaid consumes basic balance account information from the `accounts/{accountId}` endpoint for a subset of the possible account types described in the FDX specification.\n",type:"string",example:"ROTH",enum:["401A","401K","403B","529","BROKERAGEPRODUCT","COMMERCIALINVESTMENT","COVERDELL","DIGITALASSET","DEFINEDBENEFIT","ESOP","GUARDIAN","INSTITUTIONALTRUST","IRA","KEOGH","NONQUALIFIEDPLAN","OTHERINVESTMENT","ROLLOVER","ROTH","SARSEP","TAXABLE","TDA","TRUST","TERM","UGMA","UTMA"]},InsuranceAccountType:{description:"The type of an account. Plaid consumes basic balance account information from the `accounts/{accountId}` endpoint for a subset of the possible account types described in the FDX specification.\n",type:"string",example:"WHOLELIFE",enum:["LONGTERMDISABILITY","SHORTTERMDISABILITY","UNIVERSALLIFE","WHOLELIFE"]},DebitCreditMemo:{title:"DebitCreditMemo",description:"The posting type of a transaction. The transaction amount is an absolute value, and this parameter indicates the direction of the transaction. Plaid expects `DEBIT` or `CREDIT` for this enum. Plaid expects that your organization indicates the `MEMO` (i.e., pending) status using the `status` field in the transaction response rather than this field. If your organization sends `MEMO` in this `DebitCreditMemo` enum, Plaid handles this value the same as it handles `DEBIT`. * `DEBIT`: An amount leaves the account * `CREDIT`: An amount enters the account * `MEMO`: A pending transaction to be completed at the end of this day.\n",type:"string",enum:["CREDIT","DEBIT","MEMO"]},FiAttribute:{title:"FI Attribute entity",description:"Financial Institution provider-specific attribute",type:"object",properties:{name:{type:"string",description:"The attribute's name"},value:{type:"string",description:"The attribute's value"}}},HoldingSubType:{title:"Holding SubType",description:"The subtype of an investment holding. Plaid expects you to return `OTHER` and set the `holdingSubType` to indicate cash-type holdings (CASH, MONEYMARKET).\n",type:"string",enum:["CASH","MONEYMARKET"]},HoldingType:{title:"Holding Type",description:"Plaid maps the holding type to the Plaid [security type](https://plaid.com/docs/api/products/investments/#investments-transactions-get-response-securities-type). Plaid expects you to return `OTHER` and set the `holdingSubType` to indicate cash-type holdings (CASH, MONEYMARKET).\n",type:"string",enum:["ANNUITY","BOND","CD","DIGITALASSET","MUTUALFUND","OPTION","OTHER","STOCK"]},InterestRateType:{title:"Interest Rate Type",description:"Specifies whether an interest rate is fixed or variable. This information is helpful for personal financial planning and advising. For example, it affects the potential benefits of refinancing, and informs whether a mortgage payment is expected to change in the future",type:"string",enum:["FIXED","VARIABLE"]},InvestmentTransactionType:{title:"Investment Transaction Type",description:"The type of an investment transaction.\nPlaid maps these enums to Plaid [investment transaction types](https://plaid.com/docs/api/accounts/#investment-transaction-types-schema).\nPlaid doesn't map these enums to Plaid-specific transaction subtypes.\nPlaid maps these enums as follows:\n\n* ADJUSTMENT - fee\n* ATM - cash\n* CASH - cash\n* CHECK - cash\n* CLOSURE - Plaid suggests using SOLDTOCLOSE, PURCHASETOCLOSE, OPTIONEXERCISE or OPTIONEXPIRATION to indicate the specific type of closure, instead of using this enum.\n* CLOSUREOPT - Plaid suggests using SOLDTOCLOSE, PURCHASETOCLOSE, OPTIONEXERCISE or OPTIONEXPIRATION to indicate the specific type of closure, instead of using this enum.\n* CONTRIBUTION - buy (if transaction involves a security) or cash\n* DEP - cash\n* DEPOSIT - cash\n* DIRECTDEBIT - cash\n* DIRECTDEP - cash\n* DIV - cash\n* DIVIDEND - cash\n* DIVIDENDREINVEST - buy\n* EXPENSE - cash\n* FEE - fee\n* INCOME - cash\n* INTEREST - cash\n* INVEXPENSE - cash\n* JRNLFUND - transfer\n* JRNLSEC - transfer\n* MARGININTEREST - cash\n* OPTIONEXERCISE - transfer\n* OPTIONEXPIRATION - transfer\n* OTHER - cash - (unclassified)\n* PAYMENT - cash\n* POS - cash\n* PURCHASED - buy\n* PURCHASEDTOCOVER - buy\n* PURCHASETOCLOSE - buy\n* PURCHASETOOPEN - buy\n* REINVESTOFINCOME - buy\n* REPEATPMT - cash\n* RETURNOFCAPITAL - cash\n* SOLD - sell\n* SOLDTOCLOSE - sell\n* SOLDTOOPEN - sell\n* SPLIT - transfer\n* SRVCHG - fee\n* TRANSFER - transfer\n* XFER - transfer\n",type:"string",enum:["ADJUSTMENT","ATM","CASH","CHECK","CLOSURE","CLOSUREOPT","CONTRIBUTION","DEP","DEPOSIT","DIRECTDEBIT","DIRECTDEP","DIV","DIVIDEND","DIVIDENDREINVEST","EXPENSE","FEE","INCOME","INTEREST","INVEXPENSE","JRNLFUND","JRNLSEC","MARGININTEREST","OPTIONEXERCISE","OPTIONEXPIRATION","OTHER","PAYMENT","POS","PURCHASED","PURCHASEDTOCOVER","PURCHASETOCLOSE","PURCHASETOOPEN","REINVESTOFINCOME","REPEATPMT","RETURNOFCAPITAL","SOLD","SOLDTOCLOSE","SOLDTOOPEN","SPLIT","SRVCHG","TRANSFER","XFER"]},LoanAccountType:{description:"The type of an account. Plaid consumes basic balance account information from the `accounts/{accountId}` endpoint for a subset of the possible account types described in the FDX specification.\n",type:"string",example:"HOMEEQUITYLOAN",enum:["AUTOLOAN","COMMERCIALLOAN","HOMEEQUITYLOAN","INSTALLMENT","LOAN","MILITARYLOAN","MORTGAGE","PERSONALLOAN","SMBLOAN","STUDENTLOAN"]},LoanTransactionType:{title:"Loan Transaction Type",description:"The type of a loan transaction. Plaid passes through all loan transaction types.\n\n
      \n
    • `ADJUSTMENT`: Adjustment or correction.
    • \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
    • `LUMP_SUM_PAYMENT`: A single payment of money, as opposed to a series of payments made over time.
    • \n
    • `SKIP_PAYMENT`: Payment that satisfies deferral of a required payment.
    • \n
    • `DOUBLE_UP_PAYMENT`: Additional payment beyond the required payment to reduce the principal.
    • \n
    • `PAYOFF`: Payment that satisfies the terms of the mortgage loan and completely pays off the debt.
    • \n
    \n",type:"string",enum:["ADJUSTMENT","FEE","INTEREST","PAYMENT","LUMP_SUM_PAYMENT","SKIP_PAYMENT","DOUBLE_UP_PAYMENT","PAYOFF"]},LocAccountType:{description:"The type of an account. Plaid consumes basic balance account information from the `accounts/{accountId}` endpoint for a subset of the possible account types described in the FDX specification.\n",type:"string",example:"CREDITCARD",enum:["LINEOFCREDIT","CHARGE","COMMERCIALLINEOFCREDIT","CREDITCARD","HOMELINEOFCREDIT"]},LocTransactionType:{title:"Line-Of-Credit Transaction Type",description:"The type of a line of credit (LOC) transaction. Plaid passes through all LOC transaction types.\n",type:"string",enum:["ADJUSTMENT","CHECK","FEE","INTEREST","PAYMENT","WITHDRAWAL"]},PaymentNetworkType:{title:"Payment Network Type",description:"Suggested values for Payment Network Type. `US_` refers to the USA, and `CA_` refers to Canada.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
    ValueDescription
    US_ACHAutomated Clearing House, also called Fed ACH network (mostly small banks)
    US_FEDWIREFedwire Funds Service.
    US_CHIPSClearinghouse Interbank Payments System. Also called Clearing House ACH network (primarily big banks)
    CA_ACSSAutomated Clearing House Settlement System
    CA_LVTSLarge-Value Transfer System
    \n",type:"string",enum:["US_ACH","US_FEDWIRE","US_CHIPS","US_RTP","CA_ACSS","CA_LVTS"]},SecurityIdType:{title:"Security ID Type",description:"Plaid consumes solely CUSIP, ISIN, and SEDOL.\nThis field, along with `securityId` are **required** unless `symbol` is provided.\n**Note:** If `securityIdType` is provided, `securityId` is required.\n",type:"string",enum:["CUSIP","ISIN","SEDOL","SICC","VALOR","WKN"]},SecurityType:{title:"Security Type",description:"The type of a security",type:"string",enum:["BOND","DEBT","DIGITALASSET","MUTUALFUND","OPTION","OTHER","STOCK","SWEEP"]},TransactionStatus:{title:"Transaction Status",description:"The status of a transaction. Plaid consumes solely the `PENDING` and `POSTED` enums,\nand treats `MEMO` and `AUTHORIZATION` as if they were `PENDING`. Plaid expects that pending and posted transactions\nhave different `transactionIds`.\n* `AUTHORIZATION`\n* `MEMO` - A pending transaction to be completed at the end of this day\n* `PENDING` - A pending transaction\n* `POSTED` - A posted transaction\n",type:"string",enum:["AUTHORIZATION","MEMO","PENDING","POSTED"]},UnitType:{title:"Unit Type",description:"The units of an investment transaction",type:"string",enum:["CURRENCY","SHARES"]}}}},5.3:{openapi:"3.0.3",info:{version:"5.3.2",title:"FDX V5.3",description:"## FDX compliance\n\nThe Core Exchange API specifications are a subset of the Financial Data Exchange (FDX) API specification, the usage thereof (or any part thereof) constitutes acceptance of the FDX API\nLicense Agreement, which can be found at https://financialdataexchange.org/. The FDX API specification is distributed exclusively by FDX. Modifications to eliminate required or\nconditional elements prescribed in the FDX API Certification Use Cases will render any implementations using said modifications non-conformant with the FDX API Certification Use Cases.\nPlease note that building the FDX-compliant Core Exchange API and permitting Plaid to call your build constitutes acceptance of\nthe FDX end user license agreement, which can be found at https://financialdataexchange.org/.\nThe full FDX API standard specification is distributed exclusively by FDX.\n\n## Download the specification\n\nTo view this specification and documentation as an OpenAPI YAML file, see [the public Core Exchange Github repository](https://github.com/plaid/core-exchange/tree/main/versions).\n",contact:{name:"Plaid support",url:"https://plaid.com/data-connectivity-core-exchange/",email:"dataconnectivity@plaid.com"}},servers:[{url:"https://api.your-organization.com/fdx/v5",description:"Financial Data Exchange V5.2 Core API"}],tags:[{name:"Personal Information",description:"Search and view customer or customers"},{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:"Payment Networks Information",description:"Search and view account payment networks"}],paths:{"/customers/current":{get:{operationId:"getCustomerInfo",tags:["Personal Information"],description:"Get the ID of the customer within the authorization scope.\n\n**Note:**\n\n
      \n
    • If you use OIDC authentication (recommended) you do not need to implement this endpoint as Plaid identifies the customer using the OIDC `id_token` response.
    • \n
    • If you use OAuth2 authentication, Plaid uses this endpoint as an alternate method of customer identification.
    • \n
    \n",summary:"Get current authenticated customer ID",security:[{openIdConnect:[]},{oauth2:[]}],responses:{200:{description:"Data describing current authenticated customer",content:{"application/json":{schema:{$ref:"#/components/schemas/CustomerWithId"},examples:{"example-1":{value:{customerId:"someLongTermUniqueIDString"}}}}}}}}},"/accounts":{get:{operationId:"searchForAccounts",tags:["Account Information"],summary:"List all accounts",description:"Search and view customer accounts\n",security:[{openIdConnect:["Account"]},{oauth2:["Account"]}],parameters:[{$ref:"#/components/parameters/OffsetQuery"},{$ref:"#/components/parameters/LimitQuery"}],responses:{200:{description:"Array of accounts",content:{"application/json":{schema:{$ref:"#/components/schemas/Accounts"},examples:{"example-1":{value:{page:{nextOffset:25},accounts:[{depositAccount:{accountId:"depositAccount0000001",accountType:"CHECKING",accountNumberDisplay:"5820",productName:"Checking",nickname:"Main Checking",status:"OPEN",currency:{currencyCode:"USD"}}},{loanAccount:{accountId:"loanAccount0000001",accountType:"LOAN",accountNumberDisplay:"4704",productName:"Loan",nickname:"Primary Loan",status:"OPEN",currency:{currencyCode:"USD"}}},{locAccount:{accountId:"locAccount0000001",accountType:"LINEOFCREDIT",accountNumberDisplay:"8200",productName:"Line of Credit",nickname:"First plaidypus LOC",status:"OPEN",currency:{currencyCode:"USD"}}},{investmentAccount:{accountId:"investmentAccount0000001",accountType:"TAXABLE",accountNumberDisplay:"1050",productName:"Brokerage Account",nickname:"First plaidypus Brokerage",status:"OPEN",currency:{currencyCode:"USD"}}}]}}}}}}}}},"/accounts/{accountId}":{get:{operationId:"getAccount",tags:["Account Information"],summary:"Get account balances and liabilities",description:"Get account balances, liabilities, and other information. Plaid uses this endpoint to:\n\n
      \n
    • Get account balances for deposit accounts. For example, `CHECKING` or `SAVINGS`. For more information about how Plaid uses this information, see [Plaid Balance API](https://plaid.com/docs/api/products/balance/).
    • \n
    • Get account liabilities for `STUDENTLOAN`, `MORTGAGE`, and `CREDITCARD` loan accounts. For more information about how Plaid uses this information, see [Plaid Liabilities API](https://plaid.com/docs/api/products/liabilities/).
    • \n
    • Get balances and holdings for investment accounts. For more information about how Plaid uses this information, see [Plaid Investments API](https://plaid.com/docs/investments/).
    • \n
    \n\nSee the response schema below for a full list of possible parameters for each account type.\n",security:[{openIdConnect:["Account"]},{oauth2:["Account"]}],parameters:[{$ref:"#/components/parameters/AccountIdPath"}],responses:{200:{description:"The full details of an investment, loan, deposit, or line of credit account",content:{"application/json":{schema:{$ref:"#/components/schemas/AccountWithDetails"}}}}}}},"/accounts/{accountId}/contact":{get:{operationId:"getAccountContact",tags:["Personal Information"],description:"Get contact information on the account.\n\nPlaid links contact information to accounts, rather than to users. Plaid consumes multiple holders and their contact information for the account, but doesn't attempt to correlate holders to their respective contact information. For more information about Plaid's identity model, see [Plaid Identity API](https://plaid.com/docs/api/products/identity/).\n",summary:"Get an account's contact information",parameters:[{$ref:"#/components/parameters/AccountIdPath"}],security:[{openIdConnect:["Customer"]},{oauth2:["Customer"]}],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:["Payment Networks Information"],description:"Get payment networks supported by an account, for example ACH (Automated Clearing House). For more information about how Plaid uses this information, see the [Plaid Auth API](https://plaid.com/docs/api/products/auth/).\n",summary:"Get payment networks supported by the account",security:[{openIdConnect:["Account"]},{oauth2:["Account"]}],parameters:[{name:"accountId",in:"path",description:"Account identifier, found in the `GET /accounts` endpoint response.\nPlaid expects the ID to be a different value from the account number.\n\n**Note:** If the status of the `accountId` provided is `RESTRICTED`, you can send a 200 response with an empty body to indicate that no payment networks are available at this time.\n",required:!0,schema:{type:"string"}},{$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:{properties:{page:{$ref:"#/components/schemas/PageMetadata"},paymentNetworks:{type:"array",items:{$ref:"#/components/schemas/AccountPaymentNetwork"}}},required:["paymentNetworks"]},examples:{"example-1":{page:{nextOffset:25},paymentNetworks:[{bankId:"010088889",identifier:"1111222233335820",type:"US_ACH",transferIn:!0,transferOut:!0}]}}}}}}}},"/accounts/{accountId}/statements":{get:{operationId:"searchForAccountStatements",tags:["Account Statements"],description:"Get account statements.\n\nExample: `GET /accounts/{accountId}/statements?startTime=value1&endTime=value2`\n",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:{"example-1":{value:{page:{nextOffset:"2",total:3},statements:[{accountId:"10001",statementId:"20001",links:[{href:"/accounts/1111/statements?offSet=2&limit=10"}]}]}}}}}}}}},"/accounts/{accountId}/statements/{statementId}":{get:{operationId:"getAccountStatement",tags:["Account Statements"],description:"Get account statement PDF.\n",summary:"Get account statement",parameters:[{$ref:"#/components/parameters/AccountIdPath"},{$ref:"#/components/parameters/StatementIdPath"}],responses:{200:{description:"A pdf of an account statement",content:{"application/pdf":{schema:{$ref:"#/components/schemas/StatementPDF"}}}}}}},"/accounts/{accountId}/transactions":{get:{operationId:"searchForAccountTransactions",tags:["Account Transactions"],description:"List all account transactions. Plaid always queries this endpoint a `startTime` and an `endTime`, for example, `/accounts/{accountId}/transactions?startTime=2022-01-30&endTime=2022-05-30`, and expects the time filters to be based on the `postedTimestamp`.\n\nPlaid consumes data from this endpoint for the following account types only:\n
      \n
    • Loan
    • \n
    • Investment
    • \n
    • Deposit
    • \n
    • Line of credit (LOC)
    • \n
    \n",summary:"List all account transactions",security:[{openIdConnect:["Transactions"]},{oauth2:["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. Plaid consumes the following transaction types: InvestmentTransaction, DepositTransaction, LoanTransaction, or LocTransaction\n",content:{"application/json":{schema:{$ref:"#/components/schemas/Transactions"},examples:{"example-1":{value:{page:{nextOffset:"2"},transactions:[{depositTransaction:{checkNumber:1234,payee:"ACME llc",transactionId:"depositTransaction000000001",postedTimestamp:"2022-04-06T00:00:00.000Z",transactionTimestamp:"2022-04-05T00:00:00.000Z",description:"check for latest ACME invoice",debitCreditMemo:"DEBIT",status:"PENDING",amount:400}},{depositTransaction:{transactionId:"depositTransaction000000002",postedTimestamp:"2022-04-07T00:00:00.000Z",transactionTimestamp:"2022-04-07T00:00:00.000Z",description:"reconciliation/adjustment of bank statement error",debitCreditMemo:"DEBIT",status:"POSTED",amount:.8}}]}}}}}}}}}},components:{securitySchemes:{openIdConnect:{type:"openIdConnect",description:"This API uses an [OpenID Connect (OIDC) authentication flow](/core-exchange/authentication) and accepts the resulting [access token](/core-exchange/authentication#response-parameters) as a bearer token. For example, `curl -H 'Authorization: Bearer '`.\n",openIdConnectUrl:"https://www.your-organization.com/.well-known/openid-configuration"},oauth2:{type:"oauth2",description:"This API uses an [OAuth2.0 authorization code flow](https://auth0.com/docs/get-started/authentication-and-authorization-flow/authorization-code-flow) and accepts the resulting access token as a bearer token. For example, `curl -H 'Authorization: Bearer '`.\n",flows:{authorizationCode:{authorizationUrl:"https://www.your-organization.com/authorize",tokenUrl:"https://www.your-organization.com/token",scopes:{Account:"(optional) Read account data",Customer:"(optional) Read customer data",Transactions:"(optional) Read transaction data"}}}}},parameters:{LimitQuery:{name:"limit",in:"query",description:"Number of elements that the API consumer wishes to receive. Plaid has a default limit of 100 elements. If this value differs from your organization's limit for the number of items to send in one response, then pick the lower of the two different limits and use the lower limit to define the number of items you send on each page of a paginated response. Plaid then gets the next page by making a new request with the opaque `nextOffset` field that your organization returned in the latest response, until your organization omits `nextOffset` in the response to indicate the last page.\n",schema:{type:"integer"}},OffsetQuery:{name:"offset",in:"query",description:"Plaid receives this value from your organization's latest response in a paginated response, and returns it to in a new request to get the next page. Your organization omits `nextOffset` in the response to indicate the last page.\n",schema:{type:"string",example:"qwer123454q2f"}},AccountIdPath:{name:"accountId",in:"path",description:"Account identifier, found in the `GET /accounts` endpoint response. Plaid expects the ID to be a different value from the account number.\n",required:!0,schema:{type:"string"}},StatementIdPath:{name:"statementId",in:"path",description:"Statement identifier, found in the `GET /accounts/{accountId}/statements` endpoint response.\n",required:!0,schema:{type:"string"}},EndTimeQuery:{name:"endTime",in:"query",description:"End time for use in retrieval of elements (ISO 8601). For transactions, Plaid expects this to filter by the `postedTimestamp`.",schema:{$ref:"#/components/schemas/DateString"}},StartTimeQuery:{name:"startTime",in:"query",description:"Start time for use in retrieval of elements (ISO 8601). For transactions, Plaid expects this to filter by the `postedTimestamp`.",schema:{$ref:"#/components/schemas/DateString"}}},schemas:{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"},region:{$ref:"#/components/schemas/String64",description:"State or province or territory."},postalCode:{type:"string",maxLength:16,description:"Postal code"},country:{$ref:"#/components/schemas/Iso3166CountryCode",description:"Country code"}},required:["line1","city","country"]},CustomerWithId:{title:"Customer entity.",description:"Represents a customer. Plaid-specific schema created to hold one property, the `customerId` property of the FDX `Customer` schema.\n",type:"object",properties:{customerId:{$ref:"#/components/schemas/Identifier",description:"Long-term persistent identity of the customer. This identity must be unique within your organization. Plaid consumes this customer ID if your organization uses OAuth2 instead of OIDC to secure the API. Plaid expects your organization to issue the ID as a consistent, static, opaque, unique identifier for the user\n",example:[{customerId:"customer0000001"}]}},required:["customerId"]},CustomerWithName:{title:"Customer entity",description:"Represents a customer. Plaid-specific schema created to hold one property, the `name` property of the FDX `Customer` schema.\n",type:"object",properties:{name:{$ref:"#/components/schemas/CustomerName"}},required:["name"]},CustomerName:{title:"Customer Name entity",description:"The name of an individual in their role as a customer. Plaid expects at least one populated name field. If any field is missing (for example, no first name), then you respond with an empty string for that field.\n",type:"object",allOf:[{$ref:"#/components/schemas/IndividualName"},{type:"object",properties:{prefix:{description:"Name prefix, e.g. Mr.",type:"string"}}}]},DeliveryAddress:{title:"Delivery Address",description:"A delivery address and its location type",type:"object",allOf:[{$ref:"#/components/schemas/Address"}]},HateoasLink:{title:"HATEOAS Link",description:"HATEOAS (Hypermedia As The Engine Of Application State) link",required:["href"],type:"object",properties:{href:{type:"string",format:"uri-reference",description:"The resource URL",example:"https://api.fi.com/fdx/v4/accounts/12345"},action:{description:"The HTTP method to use for the request",$ref:"#/components/schemas/HttpAction"},rel:{description:"The relation of this link to its containing entity, as defined by the [IETF RFC5988](https://datatracker.ietf.org/doc/html/rfc5988)",type:"string"},types:{type:"array",items:{$ref:"#/components/schemas/ContentTypes"},description:"The content-types that can be used in the Accept header. **Note:** Plaid currently only accepts the PDF (`application/pdf`) content type."}}},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"}},required:["first","last"]},PageMetadata:{title:"Page Metadata",description:"Contains opaque identifier, `nextoffset`, for paginated result sets. The `nextOffset` ID doesn't need to be numeric or have any specific pattern. In other words, your organization can implement this however you prefer. The presence of this offset indicates that there's at least one more page of data available. The absence of this offset indicates that there are no more pages of data left in this paginated array. The API consumer returns this in the `offset` parameter in a new request to get the next page in the response array.\n",type:"object",properties:{nextOffset:{type:"string",description:"Opaque offset identifier."}},example:{nextOffset:"02"}},PaginatedArray:{title:"Paginated Array",description:"Base class for results that may be paginated",type:"object",properties:{page:{$ref:"#/components/schemas/PageMetadata"}}},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,description:"Country calling codes defined by ITU-T recommendations E.123 and E.164"},number:{type:"string",maxLength:15,pattern:"\\d+",description:"Telephone subscriber number defined by ITU-T recommendation E.164"}},required:["number","type"]},AccountContact:{title:"Account Contact entity",description:"Contact information for the account.",type:"object",properties:{holders:{type:"array",items:{$ref:"#/components/schemas/AccountHolder"},minItems:1,description:"Owners of the account. Note that while the [FDX specification](https://financialdataexchange.org) enables associating holders and their contact information in the full `AccountHolder` schema, Plaid doesn't consume these associations. Instead, Plaid consumes limited information for each `AccountHolder` and doesn't associate contact information such as emails, addresses, or telephone numbers to account holders. For more information about Plaid's data model for account contact information, see [Identity](https://plaid.com/docs/api/products/identity/).\n",example:[{relationship:"SECONDARY",name:{first:"Ernest",middle:"Miller",last:"Hemingway",suffix:"IV"}},{relationship:"PRIMARY_JOINT",name:{first:"Maya",last:"Angelou",middle:"Annie"}}]},emails:{type:"array",items:{type:"string"},minItems:1,description:"Email addresses associated with the account.\n",example:["ernest.m.hemingway@domain.tld","m.angelou@domain.tld"]},addresses:{type:"array",items:{$ref:"#/components/schemas/DeliveryAddress"},minItems:1,description:"Physical mail addresses associated with the account.\n",example:[{line1:"1850 N Clark St",line2:"Apartment 103",city:"Chicago",region:"IL",postalCode:"60614",country:"US"},{line1:"2014 N Main St",city:"San Francisco",region:"CA",postalCode:"94105",country:"US"}]},telephones:{type:"array",items:{$ref:"#/components/schemas/TelephoneNumber"},minItems:1,description:"Telephone numbers associated with the account.\n",example:[{type:"HOME",country:"1",number:"3127771926"},{type:"CELL",country:"53",number:"45915607"},{type:"HOME",country:"1",number:"4157771926"}]}},required:["holders","emails","addresses","telephones"]},AccountDescriptor:{title:"Account Descriptor entity",description:"This descriptor provides minimal information about the account for use in lightweight arrays.\n\n**Note:** This object may contain fewer fields than the full account object.\n",type:"object",properties:{accountId:{description:"Long-term persistent identity of the account, though not an account number. This identity must be unique within your organization.\n",$ref:"#/components/schemas/Identifier"},accountNumberDisplay:{description:"Account display number for the end user's handle at the owning financial institution. Plaid expects that the last 4 digits of this masked number correspond to the last 4 digits of the account number.\n",type:"string",example:"4321"},productName:{type:"string",description:"Marketed product name for this account. Used in UIs to assist in account selection",example:"College Checking"},nickname:{description:"Name given by the user. Used in UIs to assist in account selection. Plaid recommends returning this only if the account permits user renaming.\n",type:"string",example:"Main Checking"},status:{$ref:"#/components/schemas/AccountStatus"},currency:{$ref:"#/components/schemas/Currency"}},required:["accountId","productName","status","currency"]},AnnuityAccount:{allOf:[{$ref:"#/components/schemas/AccountDescriptor"},{type:"object",properties:{accountType:{$ref:"#/components/schemas/AnnuityAccountType"}},required:["accountType"]}]},AnnuityAccountDescriptor:{description:"The type of annuity account. For example, fixed or variable. The `accountType` field for annuity accounts may be set to any of the [account types](#annuity-account-types) listed below.\n",type:"object",properties:{annuityAccount:{$ref:"#/components/schemas/AnnuityAccount"}},required:["annuityAccount"],"x-examples":[{annuityAccount:{accountId:"annuityAccount0000001",accountType:"FIXEDANNUITY",accountNumberDisplay:"53901",productName:"Fixed Annuity",nickname:"Fixed annuity 1",status:"OPEN",currency:{currencyCode:"USD"}}}]},AccountHolder:{title:"Account Holder entity",type:"object",allOf:[{$ref:"#/components/schemas/CustomerWithName"},{type:"object",properties:{relationship:{$ref:"#/components/schemas/AccountHolderRelationship",description:"Customer's relationship to the account"}}}]},AccountPaymentNetwork:{title:"Payment Network Supported by Account",description:"This provides details required to execute a transaction against the account within the payment network",type:"object",properties:{bankId:{type:"string",description:"Bank identifier used by the payment network ie. Routing Number"},identifier:{type:"string",description:"The number used to identify the account within the payment network."},type:{$ref:"#/components/schemas/PaymentNetworkType"},transferIn:{type:"boolean",description:"Can transfer funds to the account using this information. Plaid expect that this value represents the account's current ability to be credited through a payment network.\nPlaid recommends dynamically updating this value, for example to represent if the account is locked or not.\n\n**Note:** Both `transferIn` and `transferOut` must be `true` in order for the account to support ACH.\n"},transferOut:{type:"boolean",description:"Can transfer funds from the account using this information. Plaid expect that this value represents the account's current ability to be debited through a payment network.\nPlaid recommends dynamically updating this value, for example to represent if the account is locked or not.\n\n**Note:** Both `transferIn` and `transferOut` must be `true` in order for the account to support ACH.\n"}},required:["bankId","identifier","type","transferIn","transferOut"]},AccountWithDetails:{title:"Account With Details entity",description:"An account with full details",type:"object",oneOf:[{type:"object",title:"Deposit Account",properties:{depositAccount:{$ref:"#/components/schemas/DepositAccountFull"}},required:["depositAccount"],additionalProperties:!1},{type:"object",title:"Investment Account",properties:{investmentAccount:{$ref:"#/components/schemas/InvestmentAccountFull"}},required:["investmentAccount"],additionalProperties:!1},{type:"object",title:"Loan Account",properties:{loanAccount:{$ref:"#/components/schemas/LoanAccountFull"}},required:["loanAccount"],additionalProperties:!1},{type:"object",title:"Line of Credit Account",properties:{locAccount:{$ref:"#/components/schemas/LocAccountFull"}},required:["locAccount"],additionalProperties:!1}]},AccountWithDescriptor:{title:"Account With Descriptor entity",description:"This provides an instance of an account without full details",type:"object",oneOf:[{type:"object",title:"Deposit Account",properties:{depositAccount:{$ref:"#/components/schemas/DepositAccount",description:"A deposit account. For example, a checking, savings or money market account.\nPlaid consumes more detailed information for `CHECKING` and `SAVINGS` accounts.\n\nThe `accountType` field for commercial accounts may be set to any of the following:\n\n\n
      \n
    • `CHECKING`: A deposit account held at a financial institution that allows withdrawals and deposits.
    • \n
    • `SAVINGS`: An interest-bearing deposit account held at a bank or other financial institution.
    • \n
    • `CD`: A certificate of deposit (CD) is a product offered by banks and credit unions that provides an interest rate premium in exchange for the customer agreeing to leave a lump-sum deposit untouched for a predetermined period of time.
    • \n
    • `COMMERCIALDEPOSIT`: A deposit account for commercial customers, for example a business trust account.
    • \n
    • `ESCROW`: A contractual arrangement in which a third party (the stakeholder or escrow agent) receives and disburses money or property for the primary transacting parties, with the disbursement dependent on conditions agreed to by the transacting parties.
    • \n
    • `MONEYMARKET`: A deposit account that pays interest based on current interest rates in the money markets.
    • \n
    • `OTHERDEPOSIT`: Use when none of the listed enums apply.
    • \n
    \n"}},required:["depositAccount"],additionalProperties:!1},{type:"object",title:"Loan Account",properties:{loanAccount:{$ref:"#/components/schemas/LoanAccount",description:"A loan account. For example, mortgage, student loan or auto loan. Plaid consumes more detailed information for `MORTGAGE` and `STUDENTLOAN` accounts. The `accountType` field for loan accounts may be set to any of the following:\n\n\n
      \n
    • `AUTOLOAN`: A type of loan used to finance a car purchase.
    • \n
    • `COMMERCIALLOAN`: A preset borrowing limit that can be used at any time.
    • \n
    • `HOMEEQUITYLOAN`: A type of loan in which the borrower uses the equity of his or her home as collateral.
    • \n
    • `INSTALLMENT`: A type of agreement or contract involving a loan that is repaid over time with a set number of scheduled payments.
    • \n
    • `LOAN`: The lending of money by one or more individuals, organizations, or other entities to other individuals, organizations etc.
    • \n
    • `MILITARYLOAN`: A military loan.
    • \n
    • `MORTGAGE`: A type of loan you can use to buy or refinance a home.
    • \n
    • `PERSONALLOAN`: A type of debt that is not protected by a guarantor, or collateralized by a lien on specific assets of the borrower.
    • \n
    • `SMBLOAN`: A small/medium business loan.
    • \n
    • `STUDENTLOAN`: A type of loan designed to help students pay for post-secondary education and the associated fees, such as tuition, books and supplies, and living expenses.
    • \n
    \n"}},required:["loanAccount"],additionalProperties:!1},{type:"object",title:"Line of Credit Account",properties:{locAccount:{$ref:"#/components/schemas/LocAccount",description:"A line-of-credit account. For example, a credit card or home equity line of credit. Plaid consumes more detailed information for `CREDITCARD` accounts. The `accountType` field for line of credit accounts may be set to any of the following:\n\n\n
      \n
    • `LINEOFCREDIT`: A credit facility extended by a bank or other financial institution to a government, business or individual customer that enables the customer to draw on the facility when the customer needs funds.
    • \n
    • `CHARGE`: An account to which goods and services may be charged on credit.
    • \n
    • `COMMERCIALLINEOFCREDIT`: An account with a preset borrowing limit that can be used at any time.
    • \n
    • `CREDITCARD`: Allows cardholders to borrow funds with which to pay for goods and services with merchants that accept cards for payment.
    • \n
    • `HOMELINEOFCREDIT`: A loan in which the lender agrees to lend a maximum amount within an agreed period, where the collateral is the borrower's equity in their house.
    • \n
    \n"}},required:["locAccount"],additionalProperties:!1},{type:"object",title:"Investment Account",properties:{investmentAccount:{$ref:"#/components/schemas/InvestmentAccount",description:"An investment account. For example, a 401K or IRA. Plaid consumes the same details for all investment accounts. The `accountType` field for investment accounts may be set to any of the following:\n\n\n
      \n
    • `401A`: An employer-sponsored money-purchase retirement plan that allows dollar or percentage-based contributions from the employer, the employee, or both.
    • \n
    • `401K`: An employer-sponsored defined-contribution pension account defined in subsection 401(k) of the Internal Revenue Code.
    • \n
    • `403B`: A U.S. tax-advantaged retirement savings plan available for public education organizations, some non-profit employers (only Internal Revenue Code 501(c)(3) organizations), cooperative hospital service organizations, and self-employed ministers in the United States.
    • \n
    • `529`: A tax-advantaged savings plan designed to help pay for education.
    • \n
    • `BROKERAGEPRODUCT`: Investment management offered by a licensed brokerage firm that places trades on behalf of the customer, utilizing any number of investment options.
    • \n
    • `COVERDELL`: A trust or custodial account set up in the United States solely for paying qualified education expenses for the designated beneficiary of the account.
    • \n
    • `DIGITALASSET`: An account containing digital assets.
    • \n
    • `DEFINEDBENEFIT`: An employer-sponsored retirement plan where employee benefits are computed using a formula that considers several factors, such as length of employment and salary history.
    • \n
    • `ESOP`: An employee stock ownership plan (ESOP) is an employee benefit plan that gives workers ownership interest in the company.
    • \n
    • `GUARDIAN`: An account of a child in the parent's name, with legal title to the assets in the account, as well as all capital gains and tax liabilities produced from the account belonging to the parent.
    • \n
    • `INSTITUTIONALTRUST`: An institutional trust account.
    • \n
    • `IRA`: An individual retirement account (IRA) is a tax-advantaged account that individuals use to save and invest for retirement.
    • \n
    • `KEOGH`: A tax-deferred pension plan available to self-employed individuals or unincorporated businesses for retirement purposes.
    • \n
    • `NONQUALIFIEDPLAN`: A type of tax-deferred employer-sponsored retirement plan that falls outside of ERISA guidelines.
    • \n
    • `OTHERINVESTMENT`: Use when none of the listed enums apply.
    • \n
    • `ROLLOVER`: An account containing investments rolled over from an employee-sponsored account.
    • \n
    • `ROTH`: An individual retirement account that offers tax-free growth and tax-free withdrawals in retirement.
    • \n
    • `SARSEP`: A simplified employee pension (SEP) plan set up before 1997 that includes a salary reduction arrangement.
    • \n
    • `TAXABLE`: A taxable investment account.
    • \n
    • `TDA`: TreasuryDirect Account.
    • \n
    • `TRUST`: A type of financial account that is opened by an individual and managed by a designated trustee for the benefit of a third party in accordance with agreed-upon terms.
    • \n
    • `TERM`: Life insurance that provides coverage at a fixed rate of payments for a limited period of time.
    • \n
    • `UGMA`: Uniform Gifts to Minors Act account.
    • \n
    • `UTMA`: Uniform Transfers to Minors Act account.
    • \n
    \n"}},required:["investmentAccount"],additionalProperties:!1},{type:"object",title:"Insurance Account",properties:{insuranceAccount:{$ref:"#/components/schemas/InsuranceAccount",description:"An insurance account. For example, whole life insurance or short-term disability. The `accountType` field for insurance accounts may be set to any of the following:\n\n\n
      \n
    • `LONGTERMDISABILITY`: Insurance that replaces a portion of the policyholder's income due to a disability for an extended period of time, usually more than a year.
    • \n
    • `SHORTTERMDISABILITY`: Insurance that replaces a portion of the policyholder's income due to a disability for a short period of time, usually less than a year.
    • \n
    • `UNIVERSALLIFE`: A type of a cash value life insurance where the excess of premium payments above the current cost of insurance is credited to the cash value of the policy, which in turn is credited each month with interest.
    • \n
    • `WHOLELIFE`: Life insurance which is guaranteed to remain in force for the insured's entire lifetime, provided required premiums are paid, or to the maturity date.
    • \n
    \n"}},required:["insuranceAccount"],additionalProperties:!1},{type:"object",title:"Annuity Account",properties:{annuityAccount:{$ref:"#/components/schemas/AnnuityAccount",description:"An annuity account. For example, a fixed or variable annuity account. The `accountType` field for annuity accounts may be set to any of the following:\n\n\n
      \n
    • `ANNUITY`: A form of insurance or investment entitling the investor to a series of annual sums.
    • \n
    • `FIXEDANNUITY`: A type of insurance contract that promises to pay the buyer a specific, guaranteed interest rate on their contributions to the account.
    • \n
    • `VARIABLEANNUITY`: A type of insurance contract that promises to pay back the buyer based on the performance of an underlying portfolio of mutual funds selected by the buyer.
    • \n
    \n"}},required:["annuityAccount"],additionalProperties:!1},{type:"object",title:"Commercial Account",properties:{commercialAccount:{$ref:"#/components/schemas/CommercialAccount",description:"A commercial account. For example, a business deposit account. The `accountType` field for deposit accounts may be set to any of the following:\n\n\n
      \n
    • `COMMERCIALDEPOSIT`: A deposit account for commercial customers, for example a business trust account.
    • \n
    • `COMMERCIALLOAN`: A preset borrowing limit that can be used at any time.
    • \n
    • `COMMERCIALLINEOFCREDIT`: An account with a preset borrowing limit that can be used at any time.
    • \n
    • `COMMERCIALINVESTMENT`: Investment Account for Commercial Customers. e.g. Commercial Brokerage Account.
    • \n
    \n"}},required:["commercialAccount"],additionalProperties:!1}]},Accounts:{title:"Accounts entity",description:"An optionally paginated array of accounts",type:"object",allOf:[{$ref:"#/components/schemas/PaginatedArray"},{type:"object",properties:{accounts:{type:"array",items:{$ref:"#/components/schemas/AccountWithDetails"},description:"An array of accounts. May include accounts of any of the following types: [deposit](#deposit-account), [investment](#investment-account), [line of credit](#line-of-credit-account), [loan](#loan-account)\n\n**Note:** Each object in the accounts array is expected to contain at least one account type.\n",minItems:1}},required:["accounts"]}]},CommercialAccount:{allOf:[{$ref:"#/components/schemas/AccountDescriptor"},{type:"object",properties:{accountType:{$ref:"#/components/schemas/CommercialAccountType"}},required:["accountType"]}]},CommercialAccountDescriptor:{description:"A commercial account. For example, a business deposit account. The `accountType` field for commercial accounts may be set to any of the [account types](#commercial-account-types) listed below.\n",type:"object",properties:{commercialAccount:{$ref:"#/components/schemas/CommercialAccount"}},required:["commercialAccount"],"x-examples":[{commercialAccount:{accountId:"commercialAccount0000001",accountType:"COMMERCIALLOAN",accountNumberDisplay:"230014",productName:"Commercial Loan",nickname:"Loan 1",status:"OPEN",currency:{currencyCode:"USD"}}}]},Currency:{title:"Currency entity",description:"Represents an international currency.",type:"object",properties:{currencyCode:{$ref:"#/components/schemas/Iso4217Code",description:"ISO 4217 currency code"}},example:{currencyCode:"USD"},required:["currencyCode"]},DepositAccount:{allOf:[{$ref:"#/components/schemas/AccountDescriptor"},{type:"object",properties:{accountType:{$ref:"#/components/schemas/DepositAccountType"}},required:["accountType"]}]},DepositAccountDescriptor:{title:"Deposit Account entity",description:'Full details of a deposit account. Plaid consumes the same information for all types of deposit accounts.\nPlaid expects a decimal amount with two places (to represent fractional values of the base currency) for all monetary amounts. For example, `"currentBalance": 192.00`.\n\nThe `accountType` field for deposit accounts may be set to any of the [account types](#deposit-account-types) listed below.\n',type:"object",properties:{depositAccount:{$ref:"#/components/schemas/DepositAccount"}},required:["depositAccount"],"x-examples":[{depositAccount:{accountId:"depositAccount0000001",accountType:"CHECKING",accountNumberDisplay:"5820",productName:"Checking",nickname:"Main Checking",status:"OPEN",currency:{currencyCode:"USD"}}}]},DepositAccountFull:{title:"Deposit Account entity",description:'Full details of a deposit account. Plaid consumes the same information for all types of deposit accounts.\nPlaid expects a decimal amount with two places (to represent fractional values of the base currency) for all monetary amounts. For example, `"currentBalance": 192.00`.\n\nThe `accountType` field for deposit accounts may be set to any of the [account types](#deposit-account-types) listed below.\n',type:"object",properties:{depositAccount:{allOf:[{$ref:"#/components/schemas/DepositAccount"},{type:"object",properties:{currentBalance:{type:"number",description:"Current balance of the deposit account"},availableBalance:{type:"number",description:"Available balance of the deposit account"}},required:["currentBalance","availableBalance"]}]}},required:["depositAccount"],"x-examples":[{depositAccount:{accountId:"someLongTermUniqueIDString",accountNumberDisplay:"4321",productName:"string",nickname:"string",status:"CLOSED",currency:{currencyCode:"AED"},accountType:"CHECKING",currentBalance:0,availableBalance:0}}]},DepositTransaction:{title:"Deposit Transaction entity",description:"A transaction on a deposit account type",type:"object",allOf:[{$ref:"#/components/schemas/Transaction"},{type:"object",properties:{payee:{$ref:"#/components/schemas/String255",description:"Payee name"},checkNumber:{type:"integer",description:"Check number. Plaid expects this solely if the transaction involves a check.\n"}}}],"x-examples":[{transactionId:"depositTransaction000000001",transactionTimestamp:"2022-04-05T00:00:00.000Z",description:"check for latest ACME invoice",debitCreditMemo:"DEBIT",status:"PENDING",amount:400,payee:"Acme LLC",checkNumber:57448}]},Holding:{title:"Holding entity",description:"A holding in an investment account.\nPlaid maps the `holding` and the `investmentAccount` FDX models to its securities models, which hold universal information like the ticker symbol, and to its holdings models, which hold account-specific information like balances. For more information, see [Plaid investments](https://plaid.com/docs/investments/#securities-and-holdings).\n",allOf:[{type:"object",properties:{securityId:{description:"If you return the `securityId` for a holding, Plaid uses it to look up the closing price from NYSE Group Security Master. If you don't return `securityId` for a holding that uses security IDs (not recommended), Plaid uses the `unitPrice` as the closing price.\nThis field, along with `securityIdType` are **required** unless `symbol` is provided.\n**Note:** If `securityId` is provided, `securityIdType` is required.\n",type:"string"},securityIdType:{$ref:"#/components/schemas/SecurityIdType"},holdingName:{type:"string",description:"Holding name or security name"},holdingType:{$ref:"#/components/schemas/HoldingType"},holdingSubType:{$ref:"#/components/schemas/HoldingSubType",description:"MONEYMARKET, CASH"},symbol:{type:"string",description:"Ticker / Market symbol\nThis field is **required** unless both `securityId` and `securityIdType` are provided."},purchasedPrice:{type:"number",description:"Price of holding at the time of purchase. Plaid determines an approximate [cost basis](https://plaid.com/docs/api/products/investments/#investments-holdings-get-response-holdings-cost-basis) using the purchase price and the number of units. Plaid cannot take fees into account to determine the cost basis because the FDX holding schema doesn't include fees.\n"},currentUnitPrice:{type:"number",description:"Current unit price. Plaid uses this as the [institution_price](https://plaid.com/docs/api/products/investments/#investments-holdings-get-response-holdings-institution-price). Plaid falls back to using this as the [close price](https://plaid.com/docs/api/products/investments/#investments-holdings-get-response-securities-close-price) if you don't return `securityId` for holdings involving securities.\n"},currentUnitPriceDate:{$ref:"#/components/schemas/DateString",description:"Current unit price as of date"},units:{type:"number",description:"Plaid requires this field for holdings and transactions involving securities.\nFor security-based actions other than stock splits, quantity.\nShares for stocks, mutual funds, and others. Face value for bonds.\nContracts for options.\n\n**Note:** This field is required if the transaction involves a security.\n"},marketValue:{type:"number",description:"Market value at the time of data retrieved"},faceValue:{type:"number",description:"Required for bonds. Face value at the time of data retrieved. If this isn't present, Plaid assumes the holding isn't a bond and falls back to `marketValue`.\n"},cashAccount:{type:"boolean",description:"If true, indicates that this holding is used to maintain proceeds from sales, dividends, and other cash postings to the investment account. If you don't set a value for `isCashEquivalent` in the `fiAttributes` array, then Plaid uses `cashAccount` in determining the [is_cash_equivalent](https://plaid.com/docs/api/products/investments/#investments-holdings-get-response-securities-is-cash-equivalent) status.\n"},currency:{$ref:"#/components/schemas/Currency",description:"Currency information if it is different from Account entity."},fiAttributes:{type:"array",description:"Array of financial institution-specific attributes. Plaid recommends including a value for [is_cash_equivalent](https://plaid.com/docs/api/products/investments/#investments-holdings-get-response-securities-is-cash-equivalent) property in this array. Plaid accepts `isCashEquivalent` as the attribute name and a string value of `true` or `false`. If you return a value for `isCashEquivalent`, then return the same value for `cashAccount` as a boolean.\n",items:{$ref:"#/components/schemas/FiAttribute"}}},required:["cashAccount","marketValue"]}]},InsuranceAccount:{allOf:[{$ref:"#/components/schemas/AccountDescriptor"},{type:"object",properties:{accountType:{$ref:"#/components/schemas/InsuranceAccountType"}},required:["accountType"]}]},InsuranceAccountDescriptor:{allOf:[{$ref:"#/components/schemas/AccountDescriptor"},{type:"object",properties:{accountType:{$ref:"#/components/schemas/InsuranceAccountType"}},required:["accountType"]}],"x-examples":[{insuranceAccount:{accountId:"insuranceAccount0000001",accountType:"LONGTERMDISABILITY",accountNumberDisplay:"5820",productName:"Long-term disability",nickname:"Long term",status:"OPEN",currency:{currencyCode:"USD"}}}]},InvestmentAccount:{allOf:[{$ref:"#/components/schemas/AccountDescriptor"},{type:"object",properties:{accountType:{$ref:"#/components/schemas/InvestmentAccountType"}},required:["accountType"]}]},InvestmentAccountDescriptor:{description:"The type of investment account. For example, a 401K or IRA. Plaid consumes the same details for all investment accounts. The `accountType` field for investment accounts may be set to any of the [account types](#investment-account-types) listed below.\n",type:"object",properties:{investmentAccount:{$ref:"#/components/schemas/InvestmentAccount"}},required:["investmentAccount"],"x-examples":[{investmentAccount:{accountId:"investmentAccount0000001",accountType:"TAXABLE",accountNumberDisplay:"1050",productName:"Brokerage Account",nickname:"First plaidypus Brokerage",status:"OPEN",currency:{currencyCode:"USD"}}}]},InvestmentAccountFull:{description:"The type of investment account. For example, a 401K or IRA. Plaid consumes the same details for all investment accounts. The `accountType` field for investment accounts may be set to any of the [account types](#investment-account-types) listed below.\n",type:"object",properties:{investmentAccount:{allOf:[{$ref:"#/components/schemas/InvestmentAccount"},{type:"object",properties:{availableCashBalance:{type:"number",description:"Cash balance across all sub-accounts. Plaid expects that this includes sweep funds."},balanceAsOf:{description:"As-of date of balances.\n\nISO 8601 date-time in format `YYYY-MM-DDThh:mm:ss.nnn[Z|[+|-]hh:mm]` according to [IETF RFC3339](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6)\n",$ref:"#/components/schemas/Timestamp"},currentValue:{type:"number",description:"Total current value of all investments."},holdings:{type:"array",description:"Holdings in the investment account.\nPlaid maps the `holding` and the `investmentAccount` FDX models to its securities models, which hold universal information like the ticker symbol, and to its holdings models, which hold account-specific information like balances. For more information, see [Plaid investments](https://plaid.com/docs/investments/#securities-and-holdings).\n",items:{$ref:"#/components/schemas/Holding"}}},required:["availableCashBalance","currentValue"]}]}},"x-examples":[{investmentAccount:{accountId:"investmentAccount0000001",accountType:"TAXABLE",accountNumberDisplay:"1050",productName:"Brokerage Account",nickname:"First plaidypus Brokerage",status:"OPEN",currency:{currencyCode:"USD"},availableCashBalance:4302.39,balanceAsOf:null,currentValue:4302.39,holdings:[{securityId:"string",securityIdType:"CINS",holdingName:"string",holdingType:"ANNUITY",holdingSubType:"CASH",symbol:"MTSN",purchasedPrice:12.5,currentUnitPrice:34.2,currentUnitPriceDate:"2024-07-15",units:100,marketValue:3400,faceValue:3400,cashAccount:!0,currency:{currencyCode:"AED"},fiAttributes:[{name:"string",value:"string"}]}]}}]},InvestmentTransaction:{title:"Investment Transaction entity",description:"A transaction on an investment account.\nIn addition to the required fields in the base `Transaction` model, Plaid requires the following fields\nfor all transactions on an investment account:\n\n* `fees`\n* `transactionType`\n\nIf the transaction involves a security, Plaid additionally requires the following fields:\n\n* `unitPrice`\n* `units`\n* Either of the following:\n - `symbol`\n - `securityId` and `securityIdType`\n",type:"object",allOf:[{$ref:"#/components/schemas/Transaction"},{type:"object",properties:{transactionType:{$ref:"#/components/schemas/InvestmentTransactionType"},securityId:{type:"string",description:"If you return the `securityId` for a holding, Plaid uses it to look up the closing price from NYSE Group Security Master. If you don't return `securityId` for a holding that uses security IDs (not recommended), Plaid uses the `unitPrice` as the closing price.\nThis field, along with `securityIdType` are **required** unless `symbol` is provided.\n**Note:** If `securityId` is provided, `securityIdType` is required.\n"},securityIdType:{$ref:"#/components/schemas/SecurityIdType"},securityType:{$ref:"#/components/schemas/SecurityType",description:"STOCK, MUTUALFUND, DEBT, OPTION, SWEEP, OTHER, BOND"},symbol:{type:"string",description:"Ticker symbol.\n\nThis field is **required** unless both `securityId` and `securityIdType` are provided.\n"},commission:{type:"number",description:"Plaid expects that your organization includes a value for commission if the commission isn't included in `fees`.\n"},fees:{type:"number",description:"Fees applied to the trade. Plaid expects that the `fees` include the commission, unless your organization separately provides a value for `commission`.\n"},unitPrice:{type:"number",description:"Unit price. Plaid uses this as the [price](https://plaid.com/docs/api/products/investments/#investments-transactions-get-response-investment-transactions-price).\nPlaid falls back to using this as the [close price](https://plaid.com/docs/api/products/investments/#investments-transactions-get-response-securities-close-price)\nif you don't return `securityId` for transactions involving securities.\n\n**Note:** This field is required if the transaction involves a security.\n"},units:{type:"number",description:"Plaid requires this field for holdings and transactions involving securities.\nFor security-based actions other than stock splits, quantity.\nShares for stocks, mutual funds, and others. Face value for bonds.\nContracts for options.\n\n**Note:** This field is required if the transaction involves a security.\n"},unitType:{$ref:"#/components/schemas/UnitType",description:"SHARES, CURRENCY"},fiAttributes:{type:"array",description:"Array of financial institution-specific attributes. Plaid recommends including a value for [is_cash_equivalent](https://plaid.com/docs/api/products/investments/#investments-transactions-get-response-securities-is-cash-equivalent) property in this array. Plaid accepts `isCashEquivalent` as the attribute name and a string value of `true` or `false`.\n",items:{$ref:"#/components/schemas/FiAttribute"}}},required:["fees","transactionType"]}],"x-examples":[{transactionId:"depositTransaction000000001",transactionTimestamp:"2022-04-05T00:00:00.000Z",description:"check for latest ACME invoice",debitCreditMemo:"DEBIT",status:"PENDING",amount:400,transactionType:"CHECK",securityId:"APW881",securityIdType:"CMC",securityType:"DEBT",symbol:"MSFT",commission:.1,unitPrice:15.3,units:1e3,unitType:"SHARES",fiAttributes:[{name:"Vanguard",value:80}]}]},LoanAccount:{title:"Loan Account entity",type:"object",allOf:[{$ref:"#/components/schemas/AccountDescriptor"},{type:"object",properties:{accountType:{$ref:"#/components/schemas/LoanAccountType"},accountNumber:{type:"string",example:"loanAccount0000001",description:"Full account number for the end user's handle for the account at the owning institution\nRequired for accountType 'MORTGAGE'\n"},principalBalance:{type:"number",example:580303.95,description:"Principal balance of loan"},escrowBalance:{type:"number",example:3400.61,description:"Escrow balance of loan"},originalPrincipal:{type:"number",example:650400,description:"Original principal of loan"},originatingDate:{$ref:"#/components/schemas/DateString",description:"Loan origination date"},loanTerm:{type:"integer",example:360,description:"Term of loan in months"},nextPaymentAmount:{type:"number",example:2483.12,description:"Amount of next payment"},nextPaymentDate:{$ref:"#/components/schemas/DateString",description:"Date of next payment"},lastPaymentAmount:{type:"number",example:2483.12,description:"Last payment amount"},lastPaymentDate:{$ref:"#/components/schemas/DateString",description:"Last payment date"},maturityDate:{$ref:"#/components/schemas/DateString",description:"Maturity date"},interestPaidYearToDate:{type:"number",description:"Interest paid year to date"},interestRate:{type:"number",example:.075,description:"The account's interest rate"},interestRateType:{$ref:"#/components/schemas/InterestRateType"}},required:["principalBalance","interestRate","interestRateType","accountType"]}]},LoanAccountDescriptor:{description:'Full details of a loan account. The `accountType` field for loan accounts may be set to any of the [account types](#loan-account-types) listed below.\n\nPlaid only consumes the `MORTGAGE` and `STUDENTLOAN` types for its [Liabilities API](https://plaid.com/docs/api/products/liabilities/). For other loan account types Plaid consumes account details and transactions.\nPlaid consumes all loan account information as returned in the `GET /accounts` endpoint, as well as the additional information listed below:\n\nRequired for all loan accounts:\n* `principalBalance`\n* `interestRate`\n* `interestRateType`\n\nOptional fields for `STUDENTLOAN` accounts:\n* `interestPaidYearToDate`\n* `lastPaymentAmount`\n* `lastPaymentDate`\n* `maturityDate`\n* `nextPaymentDate`\n* `originalPrincipal`\n* `originatingDate`\n\nRequired for `MORTGAGE` accounts:\n* `accountNumber`\n\nOptional fields for `MORTGAGE` accounts:\n* `escrowBalance`\n* `interestPaidYearToDate`\n* `lastPaymentAmount`\n* `lastPaymentDate`\n* `loanTerm`\n* `maturityDate`\n* `nextPaymentAmount`\n* `nextPaymentDate`\n* `originalPrincipal`\n* `originatingDate`\n\nPlaid expects a decimal amount with two places (to represent fractional values of the base currency) for all monetary amounts. For example, `"escrowBalance": 192.00`.\n',type:"object",properties:{loanAccount:{$ref:"#/components/schemas/LoanAccount"}},required:["loanAccount"],"x-examples":[{loanAccount:{accountId:"loanAccount0000001",accountType:"LOAN",accountNumberDisplay:"4704",productName:"Loan",nickname:"Primary Loan",status:"OPEN",currency:{currencyCode:"USD"}}}]},LoanAccountFull:{description:'Full details of a loan account. The `accountType` field for loan accounts may be set to any of the [account types](#loan-account-types) listed below.\n\nPlaid only consumes the `MORTGAGE` and `STUDENTLOAN` types for its [Liabilities API](https://plaid.com/docs/api/products/liabilities/). For other loan account types Plaid consumes account details and transactions.\nPlaid consumes all loan account information as returned in the `GET /accounts` endpoint, as well as the additional information listed below:\n\nRequired for all loan accounts:\n* `principalBalance`\n* `interestRate`\n* `interestRateType`\n\nOptional fields for `STUDENTLOAN` accounts:\n* `interestPaidYearToDate`\n* `lastPaymentAmount`\n* `lastPaymentDate`\n* `maturityDate`\n* `nextPaymentDate`\n* `originalPrincipal`\n* `originatingDate`\n\nRequired for `MORTGAGE` accounts:\n* `accountNumber`\n\nOptional fields for `MORTGAGE` accounts:\n* `escrowBalance`\n* `interestPaidYearToDate`\n* `lastPaymentAmount`\n* `lastPaymentDate`\n* `loanTerm`\n* `maturityDate`\n* `nextPaymentAmount`\n* `nextPaymentDate`\n* `originalPrincipal`\n* `originatingDate`\n\nPlaid expects a decimal amount with two places (to represent fractional values of the base currency) for all monetary amounts. For example, `"escrowBalance": 192.00`.\n',type:"object",properties:{loanAccount:{$ref:"#/components/schemas/LoanAccount"}},required:["loanAccount"],"x-examples":[{loanAccount:{accountId:"someLongTermUniqueIDString",accountNumberDisplay:"4321",productName:"string",nickname:"string",status:"CLOSED",currency:{currencyCode:"AED"},accountType:"AUTOLOAN",accountNumber:"string",principalBalance:0,escrowBalance:0,originalPrincipal:0,originatingDate:"2021-07-15",loanTerm:0,nextPaymentAmount:0,nextPaymentDate:"2021-07-15",lastPaymentAmount:0,lastPaymentDate:"2021-07-15",maturityDate:"2021-07-15",interestPaidYearToDate:0,interestRate:0,interestRateType:"FIXED"}}]},LoanTransaction:{title:"Loan Transaction entity",description:"A transaction on a loan account",type:"object",allOf:[{$ref:"#/components/schemas/Transaction"},{type:"object",properties:{transactionType:{$ref:"#/components/schemas/LoanTransactionType"}}}],"x-examples":[{transactionId:"loanTransaction000000001",transactionTimestamp:"2022-04-05T00:00:00.000Z",description:"latest ACME invoice",debitCreditMemo:"CREDIT",status:"PENDING",amount:400}]},LocAccount:{type:"object",allOf:[{$ref:"#/components/schemas/AccountDescriptor"},{type:"object",properties:{accountType:{$ref:"#/components/schemas/LocAccountType"},creditLine:{type:"number",description:"Credit limit"},availableCredit:{type:"number",description:"Available credit. Required for all accountTypes except for `CHARGE`"},nextPaymentAmount:{type:"number",description:"Amount of next payment"},nextPaymentDate:{$ref:"#/components/schemas/DateString",description:"Due date of next payment"},principalBalance:{type:"number",description:"Principal balance"},currentBalance:{type:"number",description:"Current balance of the line of credit"},minimumPaymentAmount:{type:"number",description:"Minimum payment amount"},lastPaymentAmount:{type:"number",description:"Last payment amount"},lastPaymentDate:{$ref:"#/components/schemas/DateString",description:"Last payment date"},pastDueAmount:{type:"number",description:"Amount owed that the account holder failed to pay on the due date"},lastStmtBalance:{type:"number",description:"Last statement balance"},lastStmtDate:{$ref:"#/components/schemas/DateString",description:"Last statement date"},purchasesApr:{type:"number",description:"Purchases APR"},advancesApr:{type:"number",description:"Advances APR"}},required:["currentBalance","accountType"]}]},LocAccountDescriptor:{description:'Full details of a line of credit account. The `accountType` field for line of credit accounts may be set to any of the [account types](#loc-account-types) listed below.\n\nPlaid may consume all the parameters returned by the `GET /accounts` endpoint:\n\n* `availableCredit`\n* `creditLine`\n* `currentBalance`\n\nAdditionally, for the `CREDITCARD` accountType, Plaid consumes the previous information plus the following for its liabilities product:\n\n* `advancesApr`\n* `lastPaymentAmount`\n* `lastPaymentDate`\n* `lastStmtBalance`\n* `lastStmtDate`\n* `minimumPaymentAmount`\n* `nextPaymentDate`\n* `purchasesApr`\nPlaid expects a decimal amount with two places (to represent fractional values of the base currency) for all monetary amounts. For example, `"currentBalance": 192.00`.\n',type:"object",properties:{locAccount:{$ref:"#/components/schemas/LocAccount"}},required:["locAccount"],"x-examples":[{locAccount:{accountId:"loc_01_creditcard",accountNumberDisplay:"8200",productName:"First Plaidypus Credit Card",nickname:"my travel rewards card",status:"OPEN",currency:{currencyCode:"USD"},accountType:"CREDITCARD"}}]},LocAccountFull:{description:'Full details of a line of credit account. The `accountType` field for line of credit accounts may be set to any of the [account types](#loc-account-types) listed below.\n\nPlaid may consume all the parameters returned by the `GET /accounts` endpoint:\n\n* `availableCredit`\n* `creditLine`\n* `currentBalance`\n\nAdditionally, for the `CREDITCARD` accountType, Plaid consumes the previous information plus the following for its liabilities product:\n\n* `advancesApr`\n* `lastPaymentAmount`\n* `lastPaymentDate`\n* `lastStmtBalance`\n* `lastStmtDate`\n* `minimumPaymentAmount`\n* `nextPaymentDate`\n* `purchasesApr`\nPlaid expects a decimal amount with two places (to represent fractional values of the base currency) for all monetary amounts. For example, `"currentBalance": 192.00`.\n',type:"object",properties:{locAccount:{$ref:"#/components/schemas/LocAccount"}},required:["locAccount"],"x-examples":[{locAccount:{accountId:"loc_01_creditcard",accountNumberDisplay:"8200",productName:"First Plaidypus Credit Card",nickname:"my travel rewards card",status:"OPEN",currency:{currencyCode:"USD"},minimumPaymentAmount:100,lastPaymentAmount:400,lastPaymentDate:"2022-03-30",pastDueAmount:0,lastStmtBalance:400,lastStmtDate:"2022-03-25",purchasesApr:10.25,advancesApr:15.75,currentBalance:375,availableCredit:625,accountType:"CREDITCARD"}}]},LocTransaction:{title:"Line-Of-Credit Transaction entity",description:"A line-of-credit transaction",type:"object",allOf:[{$ref:"#/components/schemas/Transaction"},{type:"object",properties:{transactionType:{$ref:"#/components/schemas/LocTransactionType"},checkNumber:{type:"integer",description:"Check number"}}}],"x-examples":[{transactionId:"locTransaction000000001",transactionTimestamp:"2022-04-05T00:00:00.000Z",description:"credit for latest ACME invoice",debitCreditMemo:"DEBIT",status:"PENDING",amount:400}]},Statement:{title:"Statement entity",description:"An account statement",type:"object",properties:{accountId:{$ref:"#/components/schemas/Identifier",description:"Corresponds to `accountId` in Account entity"},statementId:{$ref:"#/components/schemas/Identifier",description:"Long-term persistent identity of the statement"},statementDate:{$ref:"#/components/schemas/DateString",description:"Date of the statement"},description:{type:"string",description:"Description of the statement"},links:{$ref:"#/components/schemas/HateoasLinks",description:"The HATEOAS links to retrieve this account statement, or to invoke other APIs.\n\n**Note:** Plaid only accepts one link object in this array.\n"},status:{description:"Availability status of statement",type:"string"}}},Statements:{title:"An array of statements",description:"A paginated array of account statements",type:"object",allOf:[{$ref:"#/components/schemas/PaginatedArray"},{type:"object",properties:{statements:{type:"array",description:"An array of statements, each with its own HATEOAS link to retrieve the account statement",items:{$ref:"#/components/schemas/Statement"}}},required:["statements"]}]},StatementPDF:{title:"Statement PDF",description:"An account statement PDF",type:"string",format:"binary"},Transaction:{title:"Transaction",description:"Base entity for financial transactions. For monetary amounts, Plaid expects a decimal amount, with two places to represent fractional values of the base currency, for example `101.99`.\n",type:"object",properties:{transactionId:{description:"Long term persistent identity of the transaction (unique to account). Plaid expects that `status: PENDING` and `status: POSTED` transactions have different IDs.",$ref:"#/components/schemas/Identifier"},referenceTransactionId:{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",$ref:"#/components/schemas/Identifier"},postedTimestamp:{description:"The date and time that the transaction was posted to the account.\n\nThis property is **required** by Plaid when `status=POSTED`.\nPlaid expects this property to be omitted when `status=PENDING`\n\nISO 8601 date-time in format `YYYY-MM-DDThh:mm:ss.nnn[Z|[+|-]hh:mm]` according to [IETF RFC3339](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6)\n",$ref:"#/components/schemas/Timestamp"},transactionTimestamp:{description:"The date and time that the transaction was added to the server backend systems. This acts as postedTimestamp when postedTimestamp is not present (pending transaction).\n\nISO 8601 date-time in format `YYYY-MM-DDThh:mm:ss.nnn[Z|[+|-]hh:mm]` according to [IETF RFC3339](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6)\n",$ref:"#/components/schemas/Timestamp"},description:{type:"string",description:"The description of the transaction"},debitCreditMemo:{$ref:"#/components/schemas/DebitCreditMemo"},category:{type:"string",description:"Transaction category, preferably MCC or SIC. Plaid expects your organization to provide MCC, if available and applicable.\n"},subCategory:{type:"string",description:"Transaction category detail"},status:{$ref:"#/components/schemas/TransactionStatus"},amount:{type:"number",description:"The amount of money in the account currency. The amount is an absolute value. Plaid relies on the `DebitCreditMemo` enum to determine the direction (and sign) of the transaction.\n"},foreignAmount:{type:"number",description:"The amount of money in the foreign currency. If this amount is specified, then Plaid expects that the `foreignCurrency` property is also set."},foreignCurrency:{$ref:"#/components/schemas/Iso4217Code",description:"The ISO 4217 code of the foreign currency"}},required:["debitCreditMemo","description","transactionId","transactionTimestamp","status","amount"]},Transactions:{title:"Transactions entity",description:"Optionally paginated array of transactions",type:"object",properties:{page:{$ref:"#/components/schemas/PageMetadata"},transactions:{description:"An array of transactions. The `transactionType` is dependent on the account type. Plaid consumes the following types of transactions: [investment](#investment-transaction), [deposit](#deposit-transaction), [loan](#loan-transaction), and [line of credit](#line-of-credit-transaction)\n\nPlaid expects your organization to return an empty array if this information isn't available.\n",type:"array",items:{oneOf:[{type:"object",title:"Deposit Transaction",properties:{depositTransaction:{$ref:"#/components/schemas/DepositTransaction"}},required:["depositTransaction"],additionalProperties:!1},{type:"object",title:"Investment Transaction",properties:{investmentTransaction:{$ref:"#/components/schemas/InvestmentTransaction",description:"A transaction on an investment account.\nIn addition to the required fields in the base `Transaction` model, Plaid requires the following fields\nfor all transactions on an investment account:\n\n* `fees`\n* `transactionType`\n\nIf the transaction involves a security, Plaid additionally requires the following fields:\n\n* `unitPrice`\n* `units`\n* Either of the following:\n - `symbol`\n - `securityId` and `securityIdType`\n"}},required:["investmentTransaction"],additionalProperties:!1},{type:"object",title:"Loan Transaction",properties:{loanTransaction:{$ref:"#/components/schemas/LoanTransaction"}},required:["loanTransaction"],additionalProperties:!1},{type:"object",title:"Line of Credit Transaction",properties:{locTransaction:{$ref:"#/components/schemas/LocTransaction"}},required:["locTransaction"],additionalProperties:!1}]}}},required:["transactions"]},AccountHolderRelationship:{title:"Account Holder Relationship",description:"Types of relationships between accounts and holders. Suggested values",type:"string",enum:["AUTHORIZED_USER","BUSINESS","FOR_BENEFIT_OF","FOR_BENEFIT_OF_PRIMARY","FOR_BENEFIT_OF_PRIMARY_JOINT_RESTRICTED","FOR_BENEFIT_OF_SECONDARY","FOR_BENEFIT_OF_SECONDARY_JOINT_RESTRICTED","FOR_BENEFIT_OF_SOLE_OWNER_RESTRICTED","POWER_OF_ATTORNEY","PRIMARY_JOINT_TENANTS","PRIMARY","PRIMARY_BORROWER","PRIMARY_JOINT","SECONDARY","SECONDARY_JOINT_TENANTS","SECONDARY_BORROWER","SECONDARY_JOINT","SOLE_OWNER","TRUSTEE","UNIFORM_TRANSFER_TO_MINOR"]},ContentTypes:{title:"Content Types",description:"Types of document formats. (Suggested values)",type:"string",enum:["application/pdf","image/gif","image/jpeg","image/tiff","image/png","application/json"]},DateString:{title:"Date String",description:"ISO 8601 full-date in format 'YYYY-MM-DD' according to [IETF RFC3339](https://xml2rfc.tools.ietf.org/public/rfc/html/rfc3339.html#anchor14)",type:"string",format:"date",maxLength:10,example:"2021-07-15"},HateoasLinks:{title:"HATEOAS links array",description:"An array of HATEOAS links",type:"array",items:{$ref:"#/components/schemas/HateoasLink"}},HttpAction:{title:"HTTP action type",description:"The HTTP method to use for requests",type:"string",enum:["GET","POST","PATCH","DELETE","PUT"]},Identifier:{title:"Identifier",description:"Value for a unique identifier",type:"string",maxLength:256,example:"someLongTermUniqueIDString"},Iso3166CountryCode:{title:"ISO 3166 Country Code",description:"ISO 3166-1 alpha-2 codes as of April 5, 2023, from officially assigned Country Codes on [ISO Online Browsing Platform](https://www.iso.org/obp/ui/). Change log is at [ISO 3166 Maintenance Agency](https://www.iso.org/fr/committee/48750.html?t=3V3rukDb61p05Wd6ojyTRvE0S3Yg_fZgUjrLjHWcd9-mDmTKHOGjbX3nEJ3SqHar&view=documents#section-isodocuments-top)\n",type:"string",enum:["AD","AE","AF","AG","AI","AL","AM","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CR","CU","CV","CW","CX","CY","CZ","DE","DJ","DK","DM","DO","DZ","EC","EE","EG","EH","ER","ES","ET","FI","FJ","FK","FM","FO","FR","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SV","SX","SY","SZ","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TR","TT","TV","TW","TZ","UA","UG","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","YE","YT","ZA","ZM","ZW"]},Iso4217Code:{title:"ISO 4217 Code",description:"Currency, fund and precious metal codes as of Jan. 1, 2023 per [ISO 4217 Currency Code Maintenance](https://www.six-group.com/en/products-services/financial-information/data-standards.html)\n",type:"string",enum:["AED","AFN","ALL","AMD","ANG","AOA","ARS","AUD","AWG","AZN","BAM","BBD","BDT","BGN","BHD","BIF","BMD","BND","BOB","BOV","BRL","BSD","BTN","BWP","BYN","BZD","CAD","CDF","CHE","CHF","CHW","CLF","CLP","CNY","COP","COU","CRC","CUC","CUP","CVE","CZK","DJF","DKK","DOP","DZD","EGP","ERN","ETB","EUR","FJD","FKP","GBP","GEL","GHS","GIP","GMD","GNF","GTQ","GYD","HKD","HNL","HTG","HUF","IDR","ILS","INR","IQD","IRR","ISK","JMD","JOD","JPY","KES","KGS","KHR","KMF","KPW","KRW","KWD","KYD","KZT","LAK","LBP","LKR","LRD","LSL","LYD","MAD","MDL","MGA","MKD","MMK","MNT","MOP","MRU","MUR","MVR","MWK","MXN","MXV","MYR","MZN","NAD","NGN","NIO","NOK","NPR","NZD","OMR","PAB","PEN","PGK","PHP","PKR","PLN","PYG","QAR","RON","RSD","RUB","RWF","SAR","SBD","SCR","SDG","SEK","SGD","SHP","SLE","SLL","SOS","SRD","SSP","STN","SVC","SYP","SZL","THB","TJS","TMT","TND","TOP","TRY","TTD","TWD","TZS","UAH","UGX","USD","USN","UYI","UYU","UYW","UZS","VED","VES","VND","VUV","WST","XAF","XAG","XAU","XBA","XBB","XBC","XBD","XCD","XDR","XOF","XPD","XPF","XPT","XSU","XTS","XUA","XXX","YER","ZAR","ZMW","ZWL"]},String255:{title:"String 255",description:"String of maximum length 255",type:"string",maxLength:255},String64:{title:"String 64",description:"String of maximum length 64",type:"string",maxLength:64},TelephoneNumberType:{title:"Telephone Number Type",description:"Purpose or type of telephone number",type:"string",enum:["HOME","BUSINESS","CELL","FAX"]},Timestamp:{title:"Timestamp",description:"ISO 8601 date-time in format `YYYY-MM-DDThh:mm:ss.nnn[Z|[+|-]hh:mm]` according to [IETF RFC3339](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6)",type:"string",format:"date-time",example:"2021-07-15T14:46:41.375Z"},AccountStatus:{title:"Account Status",description:"The status of an account.\n",type:"string",example:"OPEN",enum:["CLOSED","DELINQUENT","NEGATIVECURRENTBALANCE","OPEN","PAID","PENDINGCLOSE","PENDINGOPEN","RESTRICTED"]},AnnuityAccountType:{description:"The type of an account. Plaid consumes basic balance account information from the `accounts/{accountId}` endpoint for a subset of the possible account types described in the FDX specification.\n",type:"string",example:"FIXEDANNUITY",enum:["ANNUITY","FIXEDANNUITY","VARIABLEANNUITY"]},CommercialAccountType:{description:"The type of an account. Plaid consumes basic balance account information from the `accounts/{accountId}` endpoint for a subset of the possible account types described in the FDX specification.\n",type:"string",example:"COMMERCIALLOAN",enum:["COMMERCIALDEPOSIT","COMMERCIALINVESTMENT","COMMERCIALLOAN","COMMERCIALLINEOFCREDIT"]},DepositAccountType:{description:"The type of an account. Plaid consumes basic balance account information from the `accounts/{accountId}` endpoint for a subset of the possible account types described in the FDX specification.\n",type:"string",example:"SAVINGS",enum:["CHECKING","SAVINGS","CD","ESCROW","MONEYMARKET","OTHERDEPOSIT"]},InvestmentAccountType:{description:"The type of an account. Plaid consumes basic balance account information from the `accounts/{accountId}` endpoint for a subset of the possible account types described in the FDX specification.\n",type:"string",example:"ROTH",enum:["401A","401K","403B","529","BROKERAGEPRODUCT","COVERDELL","DIGITALASSET","DEFINEDBENEFIT","ESOP","GUARDIAN","INSTITUTIONALTRUST","IRA","KEOGH","NONQUALIFIEDPLAN","OTHERINVESTMENT","ROLLOVER","ROTH","SARSEP","TAXABLE","TDA","TRUST","TERM","UGMA","UTMA"]},InsuranceAccountType:{description:"The type of an account. Plaid consumes basic balance account information from the `accounts/{accountId}` endpoint for a subset of the possible account types described in the FDX specification.\n",type:"string",example:"WHOLELIFE",enum:["LONGTERMDISABILITY","SHORTTERMDISABILITY","UNIVERSALLIFE","WHOLELIFE"]},DebitCreditMemo:{title:"DebitCreditMemo",description:"The posting type of a transaction. The transaction amount is an absolute value, and this parameter indicates the direction of the transaction. Plaid expects `DEBIT` or `CREDIT` for this enum. Plaid expects that your organization indicates the `MEMO` (i.e., pending) status using the `status` field in the transaction response rather than this field. If your organization sends `MEMO` in this `DebitCreditMemo` enum, Plaid handles this value the same as it handles `DEBIT`. * `DEBIT`: An amount leaves the account * `CREDIT`: An amount enters the account * `MEMO`: A pending transaction to be completed at the end of this day.\n",type:"string",enum:["CREDIT","DEBIT","MEMO"]},FiAttribute:{title:"FI Attribute entity",description:"Financial Institution provider-specific attribute",type:"object",properties:{name:{type:"string",description:"The attribute's name"},value:{type:"string",description:"The attribute's value"}}},HoldingSubType:{title:"Holding SubType",description:"The subtype of an investment holding. Plaid expects you to return `OTHER` and set the `holdingSubType` to indicate cash-type holdings (CASH, MONEYMARKET).\n",type:"string",enum:["CASH","MONEYMARKET"]},HoldingType:{title:"Holding Type",description:"Plaid maps the holding type to the Plaid [security type](https://plaid.com/docs/api/products/investments/#investments-transactions-get-response-securities-type). Plaid expects you to return `OTHER` and set the `holdingSubType` to indicate cash-type holdings (CASH, MONEYMARKET).\n",type:"string",enum:["ANNUITY","BOND","CD","DIGITALASSET","MUTUALFUND","OPTION","OTHER","STOCK"]},InterestRateType:{title:"Interest Rate Type",description:"Specifies whether an interest rate is fixed or variable. This information is helpful for personal financial planning and advising. For example, it affects the potential benefits of refinancing, and informs whether a mortgage payment is expected to change in the future",type:"string",enum:["FIXED","VARIABLE"]},InvestmentTransactionType:{title:"Investment Transaction Type",description:"The type of an investment transaction.\nPlaid maps these enums to Plaid [investment transaction types](https://plaid.com/docs/api/accounts/#investment-transaction-types-schema).\nPlaid doesn't map these enums to Plaid-specific transaction subtypes.\nPlaid maps these enums as follows:\n\n* ADJUSTMENT - fee\n* ATM - cash\n* CASH - cash\n* CHECK - cash\n* CLOSURE - Plaid suggests using SOLDTOCLOSE, PURCHASETOCLOSE, OPTIONEXERCISE or OPTIONEXPIRATION to indicate the specific type of closure, instead of using this enum.\n* CLOSUREOPT - Plaid suggests using SOLDTOCLOSE, PURCHASETOCLOSE, OPTIONEXERCISE or OPTIONEXPIRATION to indicate the specific type of closure, instead of using this enum.\n* CONTRIBUTION - buy (if transaction involves a security) or cash\n* DEP - cash\n* DEPOSIT - cash\n* DIRECTDEBIT - cash\n* DIRECTDEP - cash\n* DIV - cash\n* DIVIDEND - cash\n* DIVIDENDREINVEST - buy\n* EXPENSE - cash\n* FEE - fee\n* INCOME - cash\n* INTEREST - cash\n* INVEXPENSE - cash\n* JRNLFUND - transfer\n* JRNLSEC - transfer\n* MARGININTEREST - cash\n* OPTIONEXERCISE - transfer\n* OPTIONEXPIRATION - transfer\n* OTHER - cash - (unclassified)\n* PAYMENT - cash\n* POS - cash\n* PURCHASED - buy\n* PURCHASEDTOCOVER - buy\n* PURCHASETOCLOSE - buy\n* PURCHASETOOPEN - buy\n* REINVESTOFINCOME - buy\n* REPEATPMT - cash\n* RETURNOFCAPITAL - cash\n* SOLD - sell\n* SOLDTOCLOSE - sell\n* SOLDTOOPEN - sell\n* SPLIT - transfer\n* SRVCHG - fee\n* TRANSFER - transfer\n* XFER - transfer\n",type:"string",enum:["ADJUSTMENT","ATM","CASH","CHECK","CLOSURE","CLOSUREOPT","CONTRIBUTION","DEP","DEPOSIT","DIRECTDEBIT","DIRECTDEP","DIV","DIVIDEND","DIVIDENDREINVEST","EXPENSE","FEE","INCOME","INTEREST","INVEXPENSE","JRNLFUND","JRNLSEC","MARGININTEREST","OPTIONEXERCISE","OPTIONEXPIRATION","OTHER","PAYMENT","POS","PURCHASED","PURCHASEDTOCOVER","PURCHASETOCLOSE","PURCHASETOOPEN","REINVESTOFINCOME","REPEATPMT","RETURNOFCAPITAL","SOLD","SOLDTOCLOSE","SOLDTOOPEN","SPLIT","SRVCHG","TRANSFER","XFER"]},LoanAccountType:{description:"The type of an account. Plaid consumes basic balance account information from the `accounts/{accountId}` endpoint for a subset of the possible account types described in the FDX specification.\n",type:"string",example:"HOMEEQUITYLOAN",enum:["AUTOLOAN","HOMEEQUITYLOAN","INSTALLMENT","LOAN","MILITARYLOAN","MORTGAGE","PERSONALLOAN","SMBLOAN","STUDENTLOAN"]},LoanTransactionType:{title:"Loan Transaction Type",description:"The type of a loan transaction. Plaid passes through all loan transaction types.\n
      \n
    • `ADJUSTMENT`: Adjustment or correction.
    • \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
    • `LUMP_SUM_PAYMENT`: A single payment of money, as opposed to a series of payments made over time.
    • \n
    • `SKIP_PAYMENT`: Payment that satisfies deferral of a required payment.
    • \n
    • `DOUBLE_UP_PAYMENT`: Additional payment beyond the required payment to reduce the principal.
    • \n
    • `PAYOFF`: Payment that satisfies the terms of the mortgage loan and completely pays off the debt.
    • \n
    \n",type:"string",enum:["ADJUSTMENT","FEE","INTEREST","PAYMENT","LUMP_SUM_PAYMENT","SKIP_PAYMENT","DOUBLE_UP_PAYMENT","PAYOFF"]},LocAccountType:{description:"The type of an account. Plaid consumes basic balance account information from the `accounts/{accountId}` endpoint for a subset of the possible account types described in the FDX specification.\n",type:"string",example:"CREDITCARD",enum:["LINEOFCREDIT","CHARGE","CREDITCARD","HOMELINEOFCREDIT"]},LocTransactionType:{title:"Line-Of-Credit Transaction Type",description:"The type of a line of credit (LOC) transaction. Plaid passes through all LOC transaction types.\n",type:"string",enum:["ADJUSTMENT","CHECK","FEE","INTEREST","PAYMENT","WITHDRAWAL","PURCHASE"]},PaymentNetworkType:{title:"Payment Network Type",description:"Suggested values for Payment Network Type. `US_` refers to the USA, and `CA_` refers to Canada.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
    ValueDescription
    CA_ACSSAutomated Clearing House Settlement System
    CA_LVTSLarge-Value Transfer System
    US_ACHAutomated Clearing House, also called Fed ACH network (mostly small banks)
    US_CHIPSClearinghouse Interbank Payments System. Also called Clearing House ACH network (primarily big banks)
    US_FEDWIREFedwire Funds Service.
    US_RTPUS Real Time Payments System.
    \n",type:"string",enum:["US_ACH","US_FEDWIRE","US_CHIPS","US_RTP","CA_ACSS","CA_LVTS"]},SecurityIdType:{title:"Security ID Type",description:"Plaid consumes solely CUSIP, ISIN, and SEDOL.\nThis field, along with `securityId` are **required** unless `symbol` is provided.\n**Note:** If `securityIdType` is provided, `securityId` is required.\n",type:"string",enum:["CINS","CMC","CME","CUSIP","ISIN","ITSA","NASDAQ","SEDOL","SICC","VALOR","WKN"]},SecurityType:{title:"Security Type",description:"The type of a security",type:"string",enum:["BOND","DEBT","DIGITALASSET","MUTUALFUND","OPTION","OTHER","STOCK","SWEEP"]},TransactionStatus:{title:"Transaction Status",description:"The status of a transaction. Plaid consumes solely the `PENDING` and `POSTED` enums,\nand treats `MEMO` and `AUTHORIZATION` as if they were `PENDING`. Plaid expects that pending and posted transactions\nhave different `transactionIds`.\n* `AUTHORIZATION`\n* `MEMO` - A pending transaction to be completed at the end of this day\n* `PENDING` - A pending transaction\n* `POSTED` - A posted transaction\n",type:"string",enum:["AUTHORIZATION","MEMO","PENDING","POSTED"]},UnitType:{title:"Unit Type",description:"The units of an investment transaction",type:"string",enum:["CURRENCY","SHARES"]},AccountClosed:{title:"705: Account is Closed",allOf:[{$ref:"#/components/schemas/Error"},{"x-examples":[{code:705,message:"Account is closed",debugMessage:"Operation is not supported by the closed account"}]}]},AccountNotFound:{title:"701: Account Not Found",allOf:[{$ref:"#/components/schemas/Error"},{"x-examples":[{code:701,message:"Account not found",debugMessage:"Account with ID not found"}]}]},AccountTypeNotSupported:{title:"704: Account Type Not Supported",allOf:[{$ref:"#/components/schemas/Error"},{"x-examples":[{code:704,message:"Account type not supported",debugMessage:"Request made for investment, loans, taxes, statements and other functions that we currently do not support."}]}]},CustomerNotFound:{title:"601: Customer Not Found",allOf:[{$ref:"#/components/schemas/Error"},{"x-examples":[{code:601,message:"Customer not found",debugMessage:"Customer with ID not found."}]}]},CustomerNotAuthorized:{title:"602: Customer Not Authorized",description:"Authenticated customer does not have the authorization to perform this action. (HTTP status code 401)",allOf:[{$ref:"#/components/schemas/Error"},{"x-examples":[{code:602,message:"Customer not authorized",debugMessage:"Authenticated customer does not have the authorization to perform this action."}]}]},Error:{title:"Error",description:"An error entity which can be used at the API level for error responses\nor at the account level to indicate a problem specific to a particular\naccount\n\n**Note:** The HTTP error code may differ from the FDX error code in the response body\n",type:"object",required:["code","message"],properties:{code:{type:"string",description:"The FDX error code: A 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"},debugMessage:{type:"string",description:"Message used to debug the root cause of the error. Contents should not be used in consumer's business logic. Can change at any time and should only be used for consumer to communicate with the data provider about an issue. Provider can include an error GUID in message for their use."}}},InternalServerError:{title:"500: Internal Server Error",allOf:[{$ref:"#/components/schemas/Error"},{"x-examples":[{code:500,message:"Internal server error",debugMessage:"Provider custom developer-level error details for troubleshooting"}]}]},SubsystemUnavailable:{title:"501: Subsystem Unavailable",allOf:[{$ref:"#/components/schemas/Error"},{"x-examples":[{code:501,message:"Version not supported or not implemented",debugMessage:"Provider custom developer-level error details for troubleshooting"}]}]},ScheduledMaintenance:{title:"503: Scheduled Maintenance",allOf:[{$ref:"#/components/schemas/Error"},{"x-examples":[{code:503,message:"Scheduled maintenance",debugMessage:"System is down for maintenance. Retry-After HTTP header may be used to communicate estimated time of recovery."}]}]}}}},"6.0":{openapi:"3.0.3",info:{version:"6.0.0",title:"FDX V6.0.0",description:'## FDX compliance\n\nThe Core Exchange API specifications are a subset of the Financial Data Exchange (FDX) API specification, the usage thereof (or any part thereof) constitutes acceptance of the FDX API\nLicense Agreement, which can be found at https://financialdataexchange.org/. The FDX API specification is distributed exclusively by FDX. Modifications to eliminate required or\nconditional elements prescribed in the FDX API Certification Use Cases will render any implementations using said modifications non-conformant with the FDX API Certification Use Cases.\nPlease note that building the FDX-compliant Core Exchange API and permitting Plaid to call your build constitutes acceptance of\nthe FDX end user license agreement, which can be found at https://financialdataexchange.org/.\nThe full FDX API standard specification is distributed exclusively by FDX.\n\n## Download the specification\n\nTo view this specification and documentation as an OpenAPI YAML file, see [the public Core Exchange Github repository](https://github.com/plaid/core-exchange/tree/main/versions).\n\n## Endpoints\n\nThis specification contains the following endpoints:\n\n - `/customers/current`\n\n - `/accounts`\n\n - `/accounts/{accountId}`\n\n - `/accounts/{accountId}/payment-networks`\n\n - `/accounts/{accountId}/asset-transfer-networks`\n\n - `/accounts/{accountId}/statements`\n\n - `/accounts/{accountId}/statements/{statementId}`\n\n - `/accounts/{accountId}/contact`\n\n - `/accounts/{accountId}/transactions`\n\n## Error responses\n\nAn 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.\nError responses must contain a `code` and `message`, and may optionally include a `debugMessage`.\nSee the descriptions below:\n\n- `code`: The FDX error code: A long-term persistent identifier which can be used to trace error condition back to log information.\n (**Note:** This code may differ from the HTTP status code.)\n- `message`: End user displayable information which might help the customer diagnose an error\n- `debugMessage`: Message used to debug the root cause of the error. Contents should not be used in consumer\'s business logic. Can change at any time and should only be used for consumer to communicate with the data provider about an issue. Provider can include an error GUID in message for their use\n\n### Example error\n\nThe following is an example response with an HTTP status code of 409.\n\n```\n{\n "code": 705,\n "message": "Account is closed",\n "debugMessage": "Operation is not supported by the closed account"\n}\n```\n\nSee the Errors table in each endpoint description for more specific message and debug message examples.\n',contact:{name:"Plaid support",url:"https://plaid.com/data-connectivity-core-exchange/",email:"dataconnectivity@plaid.com"}},servers:[{url:"https://api.your-organization.com/fdx/v6",description:"Financial Data Exchange V6.0 Core API"}],tags:[{name:"Personal Information",description:"Search and view customer or customers"},{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:"Payment Networks Information",description:"Search and view account payment networks"}],paths:{"/customers/current":{get:{operationId:"getCustomerInfo",tags:["Personal Information"],description:"Get the ID of the customer within the authorization scope.\n\n**Note:**\n\n
      \n
    • If you use OIDC authentication (recommended) you do not need to implement this endpoint as Plaid identifies the customer using the OIDC `id_token` response.
    • \n
    • If you use OAuth2 authentication, Plaid uses this endpoint as an alternate method of customer identification.
    • \n
    \n",summary:"Get current authenticated customer ID",security:[{openIdConnect:[]},{oauth2:[]}],responses:{200:{description:"Data describing current authenticated customer",content:{"application/json":{schema:{$ref:"#/components/schemas/CustomerWithId"},examples:{"example-1":{value:{customerId:"someLongTermUniqueIDString"}}}}}}}}},"/accounts":{get:{operationId:"searchForAccounts",tags:["Account Information"],summary:"List all accounts",description:"Search and view customer accounts\n",security:[{openIdConnect:["Account"]},{oauth2:["Account"]}],parameters:[{$ref:"#/components/parameters/OffsetQuery"},{$ref:"#/components/parameters/LimitQuery"}],responses:{200:{description:"Array of accounts",content:{"application/json":{schema:{$ref:"#/components/schemas/Accounts"},examples:{"example-1":{value:{page:{nextOffset:25},accounts:[{accountCategory:"DEPOSIT_ACCOUNT",accountId:"depositAccount0000001",accountType:"CHECKING",accountNumberDisplay:"5820",productName:"Checking",nickname:"Main Checking",status:"OPEN",currency:{currencyCode:"USD"}},{accountCategory:"LOAN_ACCOUNT",accountId:"loanAccount0000001",accountType:"LOAN",accountNumberDisplay:"4704",productName:"Loan",nickname:"Primary Loan",status:"OPEN",currency:{currencyCode:"USD"}},{accountCategory:"LOC_ACCOUNT",accountId:"locAccount0000001",accountType:"LINEOFCREDIT",accountNumberDisplay:"8200",productName:"Line of Credit",nickname:"First plaidypus LOC",status:"OPEN",currency:{currencyCode:"USD"}},{accountCategory:"INVESTMENT_ACCOUNT",accountId:"investmentAccount0000001",accountType:"TAXABLE",accountNumberDisplay:"1050",productName:"Brokerage Account",nickname:"First plaidypus Brokerage",status:"OPEN",currency:{currencyCode:"USD"}}]}}}}}}}}},"/accounts/{accountId}":{get:{operationId:"getAccount",tags:["Account Information"],summary:"Get account balances and liabilities",description:"Get account balances, liabilities, and other information. Plaid uses this endpoint to:\n\n
      \n
    • Get account balances for deposit accounts. For example, `CHECKING` or `SAVINGS`. For more information about how Plaid uses this information, see [Plaid Balance API](https://plaid.com/docs/api/products/balance/).
    • \n
    • Get account liabilities for `STUDENTLOAN`, `MORTGAGE`, and `CREDITCARD` loan accounts. For more information about how Plaid uses this information, see [Plaid Liabilities API](https://plaid.com/docs/api/products/liabilities/).
    • \n
    • Get balances and holdings for investment accounts. For more information about how Plaid uses this information, see [Plaid Investments API](https://plaid.com/docs/investments/).
    • \n
    \n\nSee the response schema below for a full list of possible parameters for each account type.\n",security:[{openIdConnect:["Account"]},{oauth2:["Account"]}],parameters:[{$ref:"#/components/parameters/AccountIdPath"}],responses:{200:{description:"The full details of an investment, loan, deposit, or line of credit account",content:{"application/json":{schema:{$ref:"#/components/schemas/AccountWithDetails"}}}}}}},"/accounts/{accountId}/contact":{get:{operationId:"getAccountContact",tags:["Personal Information"],description:"Get contact information on the account.\n\nPlaid links contact information to accounts, rather than to users. Plaid consumes multiple holders and their contact information for the account, but doesn't attempt to correlate holders to their respective contact information. For more information about Plaid's identity model, see [Plaid Identity API](https://plaid.com/docs/api/products/identity/).\n",summary:"Get an account's contact information",parameters:[{$ref:"#/components/parameters/AccountIdPath"}],security:[{openIdConnect:["Customer"]},{oauth2:["Customer"]}],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:["Payment Networks Information"],description:"Get payment networks supported by an account, for example ACH (Automated Clearing House). For more information about how Plaid uses this information, see the [Plaid Auth API](https://plaid.com/docs/api/products/auth/).\n",summary:"Get payment networks supported by the account",security:[{openIdConnect:["Account"]},{oauth2:["Account"]}],parameters:[{name:"accountId",in:"path",description:"Account identifier, found in the `GET /accounts` endpoint response.\nPlaid expects the ID to be a different value from the account number.\n\n**Note:** If the status of the `accountId` provided is `RESTRICTED`, you can send a 200 response with an empty body to indicate that no payment networks are available at this time.\n",required:!0,schema:{type:"string"}},{$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:{"example-1":{value:{page:{nextOffset:25},paymentNetworks:[{bankId:"010088889",identifier:"1111222233335820",type:"US_ACH",transferIn:!0,transferOut:!0}]}}}}}}}}},"/accounts/{accountId}/asset-transfer-networks":{get:{operationId:"getAccountAssetTransferNetworks",tags:["Payment Networks Information"],description:"Get asset transfer networks support by an account, for example ACATS (Automated Customer Account Transfer Service) For more information about how Plaid uses this information, see the [Plaid Auth API](https://plaid.com/docs/api/products/auth/).\n\n**Errors:**\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    HTTP status codeFDX error codeExample messageExample debug message
    401602Customer not authorizedAuthenticated customer does not have the authorization to perform this action
    404701Account not foundAn account with the provided account ID could not be found
    409705Account is closedOperation is not supported by the closed account
    500500Internal server errorProvider custom developer-level error details for troubleshooting
    500501Subsystem unavailableA system required to process the request was not available. Request was not processed
    503503Scheduled maintenanceSystem is down for maintenance. Retry-After HTTP header may be used to communicate estimated time of recovery
    \n",summary:"Get asset transfer details for this account",parameters:[{name:"accountId",in:"path",description:"Account identifier, found in the `GET /accounts` endpoint response.\nPlaid expects the ID to be a different value from the account number.\n\n**Note:** If the status of the `accountId` provided is `RESTRICTED`, you can send a 200 response with an empty body to indicate that no payment networks are available at this time.\n",required:!0,schema:{type:"string"}},{$ref:"#/components/parameters/OffsetQuery"},{$ref:"#/components/parameters/LimitQuery"}],responses:{200:{description:"Information required to facilitate asset transfer from this account",content:{"application/json":{schema:{$ref:"#/components/schemas/AssetTransferNetworkList"}}}}}}},"/accounts/{accountId}/statements":{get:{operationId:"searchForAccountStatements",tags:["Account Statements"],description:"Get account statements.\n\nExample: `GET /accounts/{accountId}/statements?startTime=value1&endTime=value2`\n",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:{"example-1":{value:{page:{nextOffset:"2",total:3},statements:[{accountId:"10001",statementId:"20001",links:[{href:"/accounts/1111/statements?offSet=2&limit=10"}]}]}}}}}}}}},"/accounts/{accountId}/statements/{statementId}":{get:{operationId:"getAccountStatement",tags:["Account Statements"],description:"Get account statement PDF.\n",summary:"Get account statement",parameters:[{$ref:"#/components/parameters/AccountIdPath"},{$ref:"#/components/parameters/StatementIdPath"}],responses:{200:{description:"A PDF of an account statement",content:{"application/pdf":{schema:{$ref:"#/components/schemas/StatementPDF"}}}}}}},"/accounts/{accountId}/transactions":{get:{operationId:"searchForAccountTransactions",tags:["Account Transactions"],description:"List all account transactions. Plaid always queries this endpoint a `startTime` and an `endTime`, for example, `/accounts/{accountId}/transactions?startTime=2022-01-30&endTime=2022-05-30`, and expects the time filters to be based on the `postedTimestamp`.\n\nPlaid consumes data from this endpoint for the following account types only:\n
      \n
    • Loan
    • \n
    • Investment
    • \n
    • Deposit
    • \n
    • Line of credit (LOC)
    • \n
    \n",summary:"List all account transactions",security:[{openIdConnect:["Transactions"]},{oauth2:["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. Plaid consumes the following transaction types: InvestmentTransaction, DepositTransaction, LoanTransaction, or LocTransaction\n",content:{"application/json":{schema:{$ref:"#/components/schemas/Transactions"},examples:{"example-1":{value:{page:{nextOffset:"2"},transactions:[{accountCategory:"DEPOSIT_ACCOUNT",checkNumber:1234,payee:"ACME llc",transactionId:"depositTransaction000000001",postedTimestamp:"2022-04-06T00:00:00.000Z",transactionTimestamp:"2022-04-05T00:00:00.000Z",description:"check for latest ACME invoice",debitCreditMemo:"DEBIT",status:"PENDING",amount:400},{accountCategory:"DEPOSIT_ACCOUNT",transactionId:"depositTransaction000000002",postedTimestamp:"2022-04-07T00:00:00.000Z",transactionTimestamp:"2022-04-07T00:00:00.000Z",description:"reconciliation/adjustment of bank statement error",debitCreditMemo:"DEBIT",status:"POSTED",amount:.8}]}}}}}}}}}},components:{securitySchemes:{openIdConnect:{type:"openIdConnect",description:"This API uses an [OpenID Connect (OIDC) authentication flow](/core-exchange/authentication) and accepts the resulting [access token](/core-exchange/authentication#response-parameters) as a bearer token. For example, `curl -H 'Authorization: Bearer '`.\n",openIdConnectUrl:"https://www.your-organization.com/.well-known/openid-configuration"},oauth2:{type:"oauth2",description:"This API uses an [OAuth2.0 authorization code flow](https://auth0.com/docs/get-started/authentication-and-authorization-flow/authorization-code-flow) and accepts the resulting access token as a bearer token. For example, `curl -H 'Authorization: Bearer '`.\n",flows:{authorizationCode:{authorizationUrl:"https://www.your-organization.com/authorize",tokenUrl:"https://www.your-organization.com/token",scopes:{Account:"(optional) Read account data",Customer:"(optional) Read customer data",Transactions:"(optional) Read transaction data"}}}}},parameters:{LimitQuery:{name:"limit",in:"query",description:"Number of elements that the API consumer wishes to receive. Plaid has a default limit of 100 elements. If this value differs from your organization's limit for the number of items to send in one response, then pick the lower of the two different limits and use the lower limit to define the number of items you send on each page of a paginated response. Plaid then gets the next page by making a new request with the opaque `nextOffset` field that your organization returned in the latest response, until your organization omits `nextOffset` in the response to indicate the last page.\n",schema:{type:"integer"}},OffsetQuery:{name:"offset",in:"query",description:"Plaid receives this value from your organization's latest response in a paginated response, and returns it to in a new request to get the next page. Your organization omits `nextOffset` in the response to indicate the last page.\n",schema:{type:"string",example:"qwer123454q2f"}},AccountIdPath:{name:"accountId",in:"path",description:"Account identifier, found in the `GET /accounts` endpoint response. Plaid expects the ID to be a different value from the account number.\n",required:!0,schema:{type:"string"}},StatementIdPath:{name:"statementId",in:"path",description:"Statement identifier, found in the `GET /accounts/{accountId}/statements` endpoint response.\n",required:!0,schema:{type:"string"}},EndTimeQuery:{name:"endTime",in:"query",description:"End time for use in retrieval of elements (ISO 8601). For transactions, Plaid expects this to filter by the `postedTimestamp`.",schema:{$ref:"#/components/schemas/DateString"}},StartTimeQuery:{name:"startTime",in:"query",description:"Start time for use in retrieval of elements (ISO 8601). For transactions, Plaid expects this to filter by the `postedTimestamp`.",schema:{$ref:"#/components/schemas/DateString"}}},schemas:{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"},region:{$ref:"#/components/schemas/String64",description:"State or province or territory."},postalCode:{type:"string",maxLength:16,description:"Postal code"},country:{$ref:"#/components/schemas/Iso3166CountryCode",description:"Country code"}},required:["line1","city","country"]},AssetTransferType:{title:"Asset Transfer Type",description:"The possible values for type of asset transfer",type:"string",enum:["CA_ATON","US_ACATS","US_DTC"]},AssetTransferNetwork:{title:"Asset Transfer Network",description:"Information required to facilitate asset transfer from this account",type:"object",properties:{identifier:{type:"string",description:"The number used to identify the account within the asset transfer network. If identifierType is ACCOUNT_NUMBER, this is the account number; if identifierType is TOKENIZED_ACCOUNT_NUMBER, this is a tokenized account number"},identifierType:{description:"Type of identifier",$ref:"#/components/schemas/PaymentNetworkIdentifierType"},institutionName:{description:"The name of the institution holding the account",type:"string"},institutionId:{description:"Institution identifier used by the asset transfer network ie. the Depository Trust and Clearing Corporation code for the institution holding the account",type:"string"},type:{description:"Type of asset transfer",$ref:"#/components/schemas/AssetTransferType"},jointAccount:{description:"Whether this account has joint owners",type:"boolean"}},required:["identifier","institutionId","type"]},AssetTransferNetworkList:{title:"Asset Transfer Network List",description:"An array of asset transfer network details for this account",type:"object",properties:{assetTransferNetworks:{description:"Array of asset transfer networks",type:"array",items:{$ref:"#/components/schemas/AssetTransferNetwork"}}}},CustomerWithId:{title:"Customer entity.",description:"Represents a customer. Plaid-specific schema created to hold one property, the `customerId` property of the FDX `Customer` schema.\n",type:"object",properties:{customerId:{$ref:"#/components/schemas/Identifier",description:"Long-term persistent identity of the customer. This identity must be unique within your organization. Plaid consumes this customer ID if your organization uses OAuth2 instead of OIDC to secure the API. Plaid expects your organization to issue the ID as a consistent, static, opaque, unique identifier for the user\n",example:[{customerId:"customer0000001"}]}},required:["customerId"]},CustomerWithName:{title:"Customer entity",description:"Represents a customer. Plaid-specific schema created to hold one property, the `name` property of the FDX `Customer` schema.\n",type:"object",properties:{name:{$ref:"#/components/schemas/CustomerName"}},required:["name"]},CustomerName:{title:"Customer Name entity",description:"The name of an individual in their role as a customer. Plaid expects at least one populated name field. If any field is missing (for example, no first name), then you respond with an empty string for that field.\n",type:"object",allOf:[{$ref:"#/components/schemas/IndividualName"},{type:"object",properties:{prefix:{description:"Name prefix, e.g. Mr.",type:"string"}}}]},DeliveryAddress:{title:"Delivery Address",description:"A delivery address and its location type",type:"object",allOf:[{$ref:"#/components/schemas/Address"}]},HateoasLink:{title:"HATEOAS Link",description:"HATEOAS (Hypermedia As The Engine Of Application State) link",required:["href"],type:"object",properties:{href:{type:"string",format:"uri-reference",description:"The resource URL",example:"https://api.fi.com/fdx/v4/accounts/12345"},action:{description:"The HTTP method to use for the request",$ref:"#/components/schemas/HttpAction"},rel:{description:"The relation of this link to its containing entity, as defined by the [IETF RFC5988](https://datatracker.ietf.org/doc/html/rfc5988)",type:"string"},types:{type:"array",items:{$ref:"#/components/schemas/ContentTypes"},description:"The content-types that can be used in the Accept header. **Note:** Plaid currently only accepts the PDF (`application/pdf`) content type."}}},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"}},required:["first","last"]},PageMetadata:{title:"Page Metadata",description:"Contains opaque identifier, `nextoffset`, for paginated result sets. The `nextOffset` ID doesn't need to be numeric or have any specific pattern. In other words, your organization can implement this however you prefer. The presence of this offset indicates that there's at least one more page of data available. The absence of this offset indicates that there are no more pages of data left in this paginated array. The API consumer returns this in the `offset` parameter in a new request to get the next page in the response array.\n",type:"object",properties:{nextOffset:{type:"string",example:"qwer123454q2f",description:"Opaque offset identifier."}}},PaginatedArray:{title:"Paginated Array",description:"Base class for results that may be paginated",type:"object",properties:{page:{$ref:"#/components/schemas/PageMetadata"}}},PaymentNetworkIdentifierType:{title:"Payment Network Identifier Type",description:"Suggested values for Payment Initiation Identifier Type",type:"string",enum:["ACCOUNT_NUMBER","TOKENIZED_ACCOUNT_NUMBER"]},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,description:"Country calling codes defined by ITU-T recommendations E.123 and E.164"},number:{type:"string",maxLength:15,pattern:"\\d+",description:"Telephone subscriber number defined by ITU-T recommendation E.164"}},required:["number","type"]},AccountContact:{title:"Account Contact entity",description:"Contact information for the account.",type:"object",properties:{holders:{type:"array",items:{$ref:"#/components/schemas/AccountHolder"},minItems:1,description:"Owners of the account. Note that while the [FDX specification](https://financialdataexchange.org) enables associating holders and their contact information in the full `AccountHolder` schema, Plaid doesn't consume these associations. Instead, Plaid consumes limited information for each `AccountHolder` and doesn't associate contact information such as emails, addresses, or telephone numbers to account holders. For more information about Plaid's data model for account contact information, see [Identity](https://plaid.com/docs/api/products/identity/).\n",example:[{relationship:"SECONDARY",name:{first:"Ernest",middle:"Miller",last:"Hemingway",suffix:"IV"}},{relationship:"PRIMARY_JOINT",name:{first:"Maya",last:"Angelou",middle:"Annie"}}]},emails:{type:"array",items:{type:"string"},minItems:1,description:"Email addresses associated with the account.\n",example:["ernest.m.hemingway@domain.tld","m.angelou@domain.tld"]},addresses:{type:"array",items:{$ref:"#/components/schemas/DeliveryAddress"},minItems:1,description:"Physical mail addresses associated with the account.\n",example:[{line1:"1850 N Clark St",line2:"Apartment 103",city:"Chicago",region:"IL",postalCode:"60614",country:"US"},{line1:"2014 N Main St",city:"San Francisco",region:"CA",postalCode:"94105",country:"US"}]},telephones:{type:"array",items:{$ref:"#/components/schemas/TelephoneNumber"},minItems:1,description:"Telephone numbers associated with the account.\n",example:[{type:"HOME",country:"1",number:"3127771926"},{type:"CELL",country:"53",number:"45915607"},{type:"HOME",country:"1",number:"4157771926"}]}},required:["holders","emails","addresses","telephones"]},AccountDescriptor:{title:"Account Descriptor entity",description:"This descriptor provides minimal information about the account for use in lightweight arrays.\n\n**Note:** This object may contain fewer fields than the full account object.\n",type:"object",discriminator:{propertyName:"accountCategory"},properties:{accountCategory:{$ref:"#/components/schemas/AccountCategory",description:"The entity type of the account of this Transaction"},accountId:{description:"Long-term persistent identity of the account, though not an account number. This identity must be unique within your organization.\n",$ref:"#/components/schemas/Identifier"},accountNumberDisplay:{description:"Account display number for the end user's handle at the owning financial institution. Plaid expects that the last 4 digits of this masked number correspond to the last 4 digits of the account number.\n",type:"string",example:"4321"},productName:{type:"string",description:"Marketed product name for this account. Used in UIs to assist in account selection"},nickname:{description:"Name given by the user. Used in UIs to assist in account selection. Plaid recommends returning this only if the account permits user renaming.\n",type:"string"},status:{$ref:"#/components/schemas/AccountStatus"},currency:{$ref:"#/components/schemas/Currency"}},required:["accountCategory","accountId","productName","status","currency"]},AnnuityAccount:{allOf:[{$ref:"#/components/schemas/AccountDescriptor"},{type:"object",properties:{accountType:{$ref:"#/components/schemas/AnnuityAccountType"}},required:["accountType"]}]},AnnuityAccountDescriptor:{allOf:[{$ref:"#/components/schemas/AnnuityAccount"},{"x-examples":[{accountCategory:"ANNUITY_ACCOUNT",accountId:"annuityAccount0000001",accountNumberDisplay:"53901",productName:"Fixed Annuity",nickname:"Fixed annuity 1",status:"OPEN",currency:{currencyCode:"USD"},accountType:"FIXEDANNUITY"}]}]},AccountHolder:{title:"Account Holder entity",type:"object",allOf:[{$ref:"#/components/schemas/CustomerWithName"},{type:"object",properties:{relationship:{$ref:"#/components/schemas/AccountHolderRelationship",description:"Customer's relationship to the account"}}}]},AccountPaymentNetwork:{title:"Payment Network Supported by Account",description:"This provides details required to execute a transaction against the account within the payment network",type:"object",properties:{bankId:{type:"string",description:"Bank identifier used by the payment network ie. Routing Number"},identifier:{type:"string",description:"The number used to identify the account within the payment network."},type:{$ref:"#/components/schemas/PaymentNetworkType"},transferIn:{type:"boolean",description:"Can transfer funds to the account using this information. Plaid expect that this value represents the account's current ability to be credited through a payment network.\nPlaid recommends dynamically updating this value, for example to represent if the account is locked or not.\n\n**Note:** Both `transferIn` and `transferOut` must be `true` in order for the account to support ACH.\n"},transferOut:{type:"boolean",description:"Can transfer funds from the account using this information. Plaid expect that this value represents the account's current ability to be debited through a payment network.\nPlaid recommends dynamically updating this value, for example to represent if the account is locked or not.\n\n**Note:** Both `transferIn` and `transferOut` must be `true` in order for the account to support ACH.\n"}},required:["bankId","identifier","type","transferIn","transferOut"]},AccountPaymentNetworkList:{title:"List payment networks for account",description:"An optionally paginated array of payment networks supported by the account",type:"object",allOf:[{$ref:"#/components/schemas/PaginatedArray"},{type:"object",properties:{paymentNetworks:{type:"array",items:{$ref:"#/components/schemas/AccountPaymentNetwork"},minItems:1,description:"Array of payment networks. Not all deposit accounts support ACH transfers. For example, a prepaid debit card account doesn't support ACH.\n",example:[{bankId:"010088889",identifier:"1111222233335820",type:"US_ACH",transferIn:!0,transferOut:!0}]}},required:["paymentNetworks"]}]},AccountWithDetails:{title:"Account With Details entity",description:"An account with full details",type:"object",discriminator:{propertyName:"accountCategory",mapping:{DEPOSIT_ACCOUNT:"#/components/schemas/DepositAccountFull",INVESTMENT_ACCOUNT:"#/components/schemas/InvestmentAccountFull",LOAN_ACCOUNT:"#/components/schemas/LoanAccountFull",LOC_ACCOUNT:"#/components/schemas/LineOfCreditAccountFull"}},oneOf:[{$ref:"#/components/schemas/DepositAccountFull"},{$ref:"#/components/schemas/InvestmentAccountFull"},{$ref:"#/components/schemas/LoanAccountFull"},{$ref:"#/components/schemas/LineOfCreditAccountFull"}]},AccountWithDescriptor:{title:"Account With Descriptor entity",description:"This provides an instance of an account without full details",type:"object",discriminator:{propertyName:"accountCategory",mapping:{ANNUITY_ACCOUNT:"#/components/schemas/AnnuityAccountDescriptor",COMMERCIAL_ACCOUNT:"#/components/schemas/CommercialAccountDescriptor",DEPOSIT_ACCOUNT:"#/components/schemas/DepositAccountDescriptor",INSURANCE_ACCOUNT:"#/components/schemas/InsuranceAccountDescriptor",INVESTMENT_ACCOUNT:"#/components/schemas/InvestmentAccountDescriptor",LOAN_ACCOUNT:"#/components/schemas/LoanAccountDescriptor",LOC_ACCOUNT:"#/components/schemas/LineOfCreditAccountDescriptor"}},oneOf:[{$ref:"#/components/schemas/AnnuityAccountDescriptor"},{$ref:"#/components/schemas/CommercialAccountDescriptor"},{$ref:"#/components/schemas/DepositAccountDescriptor"},{$ref:"#/components/schemas/InsuranceAccountDescriptor"},{$ref:"#/components/schemas/InvestmentAccountDescriptor"},{$ref:"#/components/schemas/LoanAccountDescriptor"},{$ref:"#/components/schemas/LineOfCreditAccountDescriptor"}]},Accounts:{title:"Accounts entity",description:"An optionally paginated array of accounts",type:"object",allOf:[{$ref:"#/components/schemas/PaginatedArray"},{type:"object",properties:{accounts:{type:"array",items:{$ref:"#/components/schemas/AccountWithDetails"},description:"An array of accounts. May include accounts of any of the following types: [deposit](#deposit-account), [investment](#investment-account), [line of credit](#line-of-credit-account), [loan](#loan-account)\n\n**Note:** Each object in the accounts array is expected to contain at least one account type.\n",minItems:1}},required:["accounts"]}]},CommercialAccount:{allOf:[{$ref:"#/components/schemas/AccountDescriptor"},{type:"object",properties:{accountType:{$ref:"#/components/schemas/CommercialAccountType"}},required:["accountType"]}]},CommercialAccountDescriptor:{allOf:[{$ref:"#/components/schemas/CommercialAccount"},{"x-examples":[{accountCategory:"COMMERCIAL_ACCOUNT",accountId:"commercialAccount0000001",accountType:"COMMERCIALLOAN",accountNumberDisplay:"230014",productName:"Commercial Loan",nickname:"Loan 1",status:"OPEN",currency:{currencyCode:"USD"}}]}]},Currency:{title:"Currency entity",description:"Represents an international currency.",type:"object",properties:{currencyCode:{$ref:"#/components/schemas/Iso4217Code",description:"ISO 4217 currency code"}},required:["currencyCode"]},DepositAccount:{allOf:[{$ref:"#/components/schemas/AccountDescriptor"},{type:"object",properties:{accountType:{$ref:"#/components/schemas/DepositAccountType"}},required:["accountType"]}]},DepositAccountDescriptor:{allOf:[{$ref:"#/components/schemas/DepositAccount"},{"x-examples":[{accountCategory:"DEPOSIT_ACCOUNT",accountId:"depositAccount0000001",accountType:"CHECKING",accountNumberDisplay:"5820",productName:"Checking",nickname:"Main Checking",status:"OPEN",currency:{currencyCode:"USD"}}]}]},DepositAccountFull:{allOf:[{$ref:"#/components/schemas/DepositAccount"},{type:"object",description:'Full details of a deposit account. Plaid consumes the same information for all types of deposit accounts.\nPlaid expects a decimal amount with two places (to represent fractional values of the base currency) for all monetary amounts. For example, `"currentBalance": 192.00`.\n\nThe `accountType` field for deposit accounts may be set to any of the [account types](#deposit-account-types) listed below.\n',properties:{currentBalance:{type:"number",description:"The total amount of money in the account (sum of all posted/cleared transactions, not including pending transactions). For Plaid's full definition, see the [Transactions](https://plaid.com/docs/api/products/transactions/#transactions-get-response-accounts-balances-current).\n"},availableBalance:{type:"number",description:"The money in the account available to spend (sum of all transactions, plus or minus pending transactions). For Plaid's full definition, see [Transactions](https://plaid.com/docs/api/products/transactions/#transactions-get-response-accounts-balances-available).\n"}},required:["currentBalance","availableBalance","accountType"]},{"x-examples":[{accountCategory:"DEPOSIT_ACCOUNT",accountId:"someLongTermUniqueIDString",accountNumberDisplay:"4321",productName:"string",nickname:"string",status:"CLOSED",currency:{currencyCode:"AED"},accountType:"CHECKING",currentBalance:0,availableBalance:0}]}]},DepositTransaction:{title:"Deposit Transaction entity",description:"A transaction on a deposit account type",type:"object",allOf:[{$ref:"#/components/schemas/Transaction"},{type:"object",properties:{accountCategory:{type:"string",enum:["DEPOSIT_ACCOUNT"]},payee:{$ref:"#/components/schemas/String255",description:"Payee name"},checkNumber:{type:"integer",description:"Check number. Plaid expects this solely if the transaction involves a check.\n"}},required:["accountCategory"]}],"x-examples":[{transactionId:"depositTransaction000000001",transactionTimestamp:"2022-04-05T00:00:00.000Z",description:"check for latest ACME invoice",debitCreditMemo:"DEBIT",status:"PENDING",amount:400,payee:"Acme LLC",checkNumber:57448}]},Holding:{title:"Holding entity",description:"A holding in an investment account.\nPlaid maps the `holding` and the `investmentAccount` FDX models to its securities models, which hold universal information like the ticker symbol, and to its holdings models, which hold account-specific information like balances. For more information, see [Plaid investments](https://plaid.com/docs/investments/#securities-and-holdings).\n",allOf:[{type:"object",properties:{securityIds:{description:"Unique identifiers for the security",type:"array",items:{$ref:"#/components/schemas/SecurityId"}},holdingName:{type:"string",description:"Holding name or security name"},holdingType:{$ref:"#/components/schemas/HoldingType"},holdingSubType:{$ref:"#/components/schemas/HoldingSubType",description:"MONEYMARKET, CASH"},symbol:{type:"string",description:"Ticker / Market symbol\nThis field is **required** unless both `securityId` and `securityIdType` are provided."},purchasedPrice:{type:"number",description:"Price of holding at the time of purchase. Plaid determines an approximate [cost basis](https://plaid.com/docs/api/products/investments/#investments-holdings-get-response-holdings-cost-basis) using the purchase price and the number of units. Plaid cannot take fees into account to determine the cost basis because the FDX holding schema doesn't include fees.\n"},currentUnitPrice:{type:"number",description:"Current unit price. Plaid uses this as the [institution_price](https://plaid.com/docs/api/products/investments/#investments-holdings-get-response-holdings-institution-price). Plaid falls back to using this as the [close price](https://plaid.com/docs/api/products/investments/#investments-holdings-get-response-securities-close-price) if you don't return `securityId` for holdings involving securities.\n"},currentUnitPriceDate:{$ref:"#/components/schemas/DateString",description:"Current unit price as of date"},units:{type:"number",description:"Plaid requires this field for holdings and transactions involving securities.\nFor security-based actions other than stock splits, quantity.\nShares for stocks, mutual funds, and others. Face value for bonds.\nContracts for options.\n\n**Note:** This field is required if the transaction involves a security.\n"},marketValue:{type:"number",description:"Market value at the time of data retrieved"},faceValue:{type:"number",description:"Required for bonds. Face value at the time of data retrieved. If this isn't present, Plaid assumes the holding isn't a bond and falls back to `marketValue`.\n"},cashAccount:{type:"boolean",description:"If true, indicates that this holding is used to maintain proceeds from sales, dividends, and other cash postings to the investment account. If you don't set a value for `isCashEquivalent` in the `fiAttributes` array, then Plaid uses `cashAccount` in determining the [is_cash_equivalent](https://plaid.com/docs/api/products/investments/#investments-holdings-get-response-securities-is-cash-equivalent) status.\n"},currency:{$ref:"#/components/schemas/Currency",description:"Currency information if it is different from Account entity."},fiAttributes:{type:"array",description:"Array of financial institution-specific attributes. Plaid recommends including a value for [is_cash_equivalent](https://plaid.com/docs/api/products/investments/#investments-holdings-get-response-securities-is-cash-equivalent) property in this array. Plaid accepts `isCashEquivalent` as the attribute name and a string value of `true` or `false`. If you return a value for `isCashEquivalent`, then return the same value for `cashAccount` as a boolean.\n",items:{$ref:"#/components/schemas/FiAttribute"}}},required:["cashAccount","marketValue"]}]},InsuranceAccount:{allOf:[{$ref:"#/components/schemas/AccountDescriptor"},{type:"object",properties:{accountType:{$ref:"#/components/schemas/InsuranceAccountType"}},required:["accountType"]}]},InsuranceAccountDescriptor:{allOf:[{$ref:"#/components/schemas/InsuranceAccount"},{"x-examples":[{accountCategory:"INSURANCE_ACCOUNT",accountId:"insuranceAccount0000001",accountType:"LONGTERMDISABILITY",accountNumberDisplay:"5820",productName:"Long-term disability",nickname:"Long term",status:"OPEN",currency:{currencyCode:"USD"}}]}]},InvestmentAccount:{allOf:[{$ref:"#/components/schemas/AccountDescriptor"},{type:"object",properties:{accountType:{$ref:"#/components/schemas/InvestmentAccountType"}},required:["accountType"]}]},InvestmentAccountDescriptor:{allOf:[{$ref:"#/components/schemas/InvestmentAccount"},{"x-examples":[{accountCategory:"INVESTMENT_ACCOUNT",accountId:"investmentAccount0000001",accountType:"TAXABLE",accountNumberDisplay:"1050",productName:"Brokerage Account",nickname:"First plaidypus Brokerage",status:"OPEN",currency:{currencyCode:"USD"}}]}]},InvestmentAccountFull:{allOf:[{$ref:"#/components/schemas/InvestmentAccount"},{type:"object",properties:{availableCashBalance:{type:"number",description:"Cash balance across all sub-accounts. Plaid expects that this includes sweep funds."},balanceAsOf:{description:"As-of date of balances.\n\nISO 8601 date-time in format `YYYY-MM-DDThh:mm:ss.nnn[Z|[+|-]hh:mm]` according to [IETF RFC3339](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6)\n",$ref:"#/components/schemas/Timestamp"},currentValue:{type:"number",description:"Total current value of all investments."},holdings:{type:"array",description:"Holdings in the investment account.\nPlaid maps the `holding` and the `investmentAccount` FDX models to its securities models, which hold universal information like the ticker symbol, and to its holdings models, which hold account-specific information like balances. For more information, see [Plaid investments](https://plaid.com/docs/investments/#securities-and-holdings).\n",items:{$ref:"#/components/schemas/Holding"}}},required:["availableCashBalance","currentValue"]},{"x-examples":[{accountCategory:"INVESTMENT_ACCOUNT",accountId:"investmentAccount0000001",accountType:"TAXABLE",accountNumberDisplay:"1050",productName:"Brokerage Account",nickname:"First plaidypus Brokerage",status:"OPEN",currency:{currencyCode:"USD"},availableCashBalance:4302.39,balanceAsOf:null,currentValue:4302.39,holdings:[{securityId:"string",securityIdType:"CINS",holdingName:"string",holdingType:"ANNUITY",holdingSubType:"CASH",symbol:"MTSN",purchasedPrice:12.5,currentUnitPrice:34.2,currentUnitPriceDate:"2024-07-15",units:100,marketValue:3400,faceValue:3400,cashAccount:!0,currency:{currencyCode:"AED"},fiAttributes:[{name:"string",value:"string"}]}]}]}]},InvestmentTransaction:{title:"Investment Transaction entity",description:"A transaction on an investment account.\nIn addition to the required fields in the base `Transaction` model, Plaid requires the following fields\nfor all transactions on an investment account:\n\n* `fees`\n* `transactionType`\n\nIf the transaction involves a security, Plaid additionally requires the following fields:\n\n* `unitPrice`\n* `units`\n* Either of the following:\n - `symbol`\n - `securityId` and `securityIdType`\n",type:"object",allOf:[{$ref:"#/components/schemas/Transaction"},{type:"object",properties:{accountCategory:{type:"string",enum:["INVESTMENT_ACCOUNT"]},transactionType:{$ref:"#/components/schemas/InvestmentTransactionType"},securityId:{type:"string",description:"If you return the `securityId` for a holding, Plaid uses it to look up the closing price from NYSE Group Security Master. If you don't return `securityId` for a holding that uses security IDs (not recommended), Plaid uses the `unitPrice` as the closing price.\nThis field, along with `securityIdType` are **required** unless `symbol` is provided.\n**Note:** If `securityId` is provided, `securityIdType` is required.\n"},securityIdType:{$ref:"#/components/schemas/SecurityIdType"},securityType:{$ref:"#/components/schemas/SecurityType",description:"STOCK, MUTUALFUND, DEBT, OPTION, SWEEP, OTHER, BOND"},symbol:{type:"string",description:"Ticker symbol.\n\nThis field is **required** unless both `securityId` and `securityIdType` are provided.\n"},commission:{type:"number",description:"Plaid expects that your organization includes a value for commission if the commission isn't included in `fees`.\n"},fees:{type:"number",description:"Fees applied to the trade. Plaid expects that the `fees` include the commission, unless your organization separately provides a value for `commission`.\n"},unitPrice:{type:"number",description:"Unit price. Plaid uses this as the [price](https://plaid.com/docs/api/products/investments/#investments-transactions-get-response-investment-transactions-price).\nPlaid falls back to using this as the [close price](https://plaid.com/docs/api/products/investments/#investments-transactions-get-response-securities-close-price)\nif you don't return `securityId` for transactions involving securities.\n\n**Note:** This field is required if the transaction involves a security.\n"},units:{type:"number",description:"Plaid requires this field for holdings and transactions involving securities.\nFor security-based actions other than stock splits, quantity.\nShares for stocks, mutual funds, and others. Face value for bonds.\nContracts for options.\n\n**Note:** This field is required if the transaction involves a security.\n"},unitType:{$ref:"#/components/schemas/UnitType",description:"SHARES, CURRENCY"},fiAttributes:{type:"array",description:"Array of financial institution-specific attributes. Plaid recommends including a value for [is_cash_equivalent](https://plaid.com/docs/api/products/investments/#investments-transactions-get-response-securities-is-cash-equivalent) property in this array. Plaid accepts `isCashEquivalent` as the attribute name and a string value of `true` or `false`.\n",items:{$ref:"#/components/schemas/FiAttribute"}}},required:["fees","transactionType","accountCategory"]}],"x-examples":[{transactionId:"investmentTransaction000000001",transactionTimestamp:"2022-04-05T00:00:00.000Z",description:"check for latest ACME invoice",debitCreditMemo:"DEBIT",status:"PENDING",amount:400,transactionType:"CHECK",securityId:"APW881",securityIdType:"CMC",securityType:"DEBT",symbol:"MSFT",commission:.1,unitPrice:15.3,units:1e3,unitType:"SHARES",fiAttributes:[{name:"Vanguard",value:80}]}]},LoanAccount:{description:'Full details of a loan account. The `accountType` field for loan accounts may be set to any of the [account types](#loan-account-types) listed below.\n\nPlaid only consumes the `MORTGAGE` and `STUDENTLOAN` types for its [Liabilities API](https://plaid.com/docs/api/products/liabilities/). For other loan account types Plaid consumes account details and transactions.\nPlaid consumes all loan account information as returned in the `GET /accounts` endpoint, as well as the additional information listed below:\n\nRequired for all loan accounts:\n* `principalBalance`\n* `interestRate`\n* `interestRateType`\n\nOptional fields for `STUDENTLOAN` accounts:\n* `interestPaidYearToDate`\n* `lastPaymentAmount`\n* `lastPaymentDate`\n* `maturityDate`\n* `nextPaymentDate`\n* `originalPrincipal`\n* `originatingDate`\n\nRequired for `MORTGAGE` accounts:\n* `accountNumber`\n\nOptional fields for `MORTGAGE` accounts:\n* `escrowBalance`\n* `interestPaidYearToDate`\n* `lastPaymentAmount`\n* `lastPaymentDate`\n* `loanTerm`\n* `maturityDate`\n* `nextPaymentAmount`\n* `nextPaymentDate`\n* `originalPrincipal`\n* `originatingDate`\n\nPlaid expects a decimal amount with two places (to represent fractional values of the base currency) for all monetary amounts. For example, `"escrowBalance": 192.00`.\n',allOf:[{$ref:"#/components/schemas/AccountDescriptor"},{type:"object",properties:{accountType:{$ref:"#/components/schemas/LoanAccountType"}},required:["accountType"]}]},LoanAccountDescriptor:{allOf:[{$ref:"#/components/schemas/LoanAccount"},{"x-examples":[{accountCategory:"LOAN_ACCOUNT",accountId:"loanAccount0000001",accountType:"LOAN",accountNumberDisplay:"4704",productName:"Loan",nickname:"Primary Loan",status:"OPEN",currency:{currencyCode:"USD"}}]}]},LoanAccountFull:{allOf:[{$ref:"#/components/schemas/LoanAccount"},{type:"object",description:'Full details of a loan account. The `accountType` field for loan accounts may be set to any of the [account types](#loan-account-types) listed below.\n\nPlaid only consumes the `MORTGAGE` and `STUDENTLOAN` types for its [Liabilities API](https://plaid.com/docs/api/products/liabilities/). For other loan account types Plaid consumes account details and transactions.\nPlaid consumes all loan account information as returned in the `GET /accounts` endpoint, as well as the additional information listed below:\n\nRequired for all loan accounts:\n* `principalBalance`\n* `interestRate`\n* `interestRateType`\n\nOptional fields for `STUDENTLOAN` accounts:\n* `interestPaidYearToDate`\n* `lastPaymentAmount`\n* `lastPaymentDate`\n* `maturityDate`\n* `nextPaymentDate`\n* `originalPrincipal`\n* `originatingDate`\n\nRequired for `MORTGAGE` accounts:\n* `accountNumber`\n\nOptional fields for `MORTGAGE` accounts:\n* `escrowBalance`\n* `interestPaidYearToDate`\n* `lastPaymentAmount`\n* `lastPaymentDate`\n* `loanTerm`\n* `maturityDate`\n* `nextPaymentAmount`\n* `nextPaymentDate`\n* `originalPrincipal`\n* `originatingDate`\n\nPlaid expects a decimal amount with two places (to represent fractional values of the base currency) for all monetary amounts. For example, `"escrowBalance": 192.00`.\n',properties:{accountNumber:{type:"string",description:"Full account number for the end user's handle for the account at the owning institution\nRequired for accountType 'MORTGAGE'\n"},principalBalance:{type:"number",description:"Principal balance of loan"},escrowBalance:{type:"number",description:"Escrow balance of loan"},originalPrincipal:{type:"number",description:"Original principal of loan"},originatingDate:{$ref:"#/components/schemas/DateString",description:"Loan origination date"},loanTerm:{type:"integer",description:"Term of loan in months"},nextPaymentAmount:{type:"number",description:"Amount of next payment"},nextPaymentDate:{$ref:"#/components/schemas/DateString",description:"Date of next payment"},lastPaymentAmount:{type:"number",description:"Last payment amount"},lastPaymentDate:{$ref:"#/components/schemas/DateString",description:"Last payment date"},maturityDate:{$ref:"#/components/schemas/DateString",description:"Maturity date"},interestPaidYearToDate:{type:"number",description:"Interest paid year to date"},interestRate:{type:"number",description:"The account's interest rate"},interestRateType:{$ref:"#/components/schemas/InterestRateType"}},required:["principalBalance","interestRate","interestRateType","accountType"]},{"x-examples":[{accountCategory:"LOAN_ACCOUNT",accountId:"someLongTermUniqueIDString",accountNumberDisplay:"4321",productName:"string",nickname:"string",status:"CLOSED",currency:{currencyCode:"AED"},accountType:"AUTOLOAN",accountNumber:"string",principalBalance:0,escrowBalance:0,originalPrincipal:0,originatingDate:"2021-07-15",loanTerm:0,nextPaymentAmount:0,nextPaymentDate:"2021-07-15",lastPaymentAmount:0,lastPaymentDate:"2021-07-15",maturityDate:"2021-07-15",interestPaidYearToDate:0,interestRate:0,interestRateType:"FIXED"}]}]},LoanTransaction:{title:"Loan Transaction entity",description:"A transaction on a loan account",type:"object",allOf:[{$ref:"#/components/schemas/Transaction"},{type:"object",properties:{accountCategory:{type:"string",enum:["LOAN_ACCOUNT"]},transactionType:{$ref:"#/components/schemas/LoanTransactionType"}},required:["accountCategory"]}],"x-examples":[{transactionId:"loanTransaction000000001",transactionTimestamp:"2022-04-05T00:00:00.000Z",description:"latest ACME invoice",debitCreditMemo:"CREDIT",status:"PENDING",amount:400}]},LineOfCreditAccount:{description:'Full details of a line of credit account. The `accountType` field for line of credit accounts may be set to any of the [account types](#loc-account-types) listed below.\n\nPlaid may consume all the parameters returned by the `GET /accounts` endpoint:\n\n* `availableCredit`\n* `creditLine`\n* `currentBalance`\n\nAdditionally, for the `CREDITCARD` accountType, Plaid consumes the previous information plus the following for its liabilities product:\n\n* `advancesApr`\n* `lastPaymentAmount`\n* `lastPaymentDate`\n* `lastStmtBalance`\n* `lastStmtDate`\n* `minimumPaymentAmount`\n* `nextPaymentDate`\n* `purchasesApr`\nPlaid expects a decimal amount with two places (to represent fractional values of the base currency) for all monetary amounts. For example, `"currentBalance": 192.00`.\n',allOf:[{$ref:"#/components/schemas/AccountDescriptor"},{type:"object",properties:{accountType:{$ref:"#/components/schemas/LineOfCreditAccountType"}},required:["accountType"]}]},LineOfCreditAccountDescriptor:{allOf:[{$ref:"#/components/schemas/LineOfCreditAccount"},{"x-examples":[{accountCategory:"LOC_ACCOUNT",accountId:"loc_01_creditcard",accountNumberDisplay:"8200",productName:"First Plaidypus Credit Card",nickname:"my travel rewards card",status:"OPEN",currency:{currencyCode:"USD"},accountType:"CREDITCARD"}]}]},LineOfCreditAccountFull:{allOf:[{$ref:"#/components/schemas/LineOfCreditAccount"},{type:"object",description:'Full details of a line of credit account. The `accountType` field for line of credit accounts may be set to any of the [account types](#loc-account-types) listed below.\n\nPlaid may consume all the parameters returned by the `GET /accounts` endpoint:\n\n* `availableCredit`\n* `creditLine`\n* `currentBalance`\n\nAdditionally, for the `CREDITCARD` accountType, Plaid consumes the previous information plus the following for its liabilities product:\n\n* `advancesApr`\n* `lastPaymentAmount`\n* `lastPaymentDate`\n* `lastStmtBalance`\n* `lastStmtDate`\n* `minimumPaymentAmount`\n* `nextPaymentDate`\n* `purchasesApr`\nPlaid expects a decimal amount with two places (to represent fractional values of the base currency) for all monetary amounts. For example, `"currentBalance": 192.00`.\n',properties:{creditLine:{type:"number",description:"Credit limit"},availableCredit:{type:"number",description:"Available credit. Required for all accountTypes except for `CHARGE`"},nextPaymentAmount:{type:"number",description:"Amount of next payment"},nextPaymentDate:{$ref:"#/components/schemas/DateString",description:"Due date of next payment"},principalBalance:{type:"number",description:"Principal balance"},currentBalance:{type:"number",description:"Current balance of the line of credit"},minimumPaymentAmount:{type:"number",description:"Minimum payment amount"},lastPaymentAmount:{type:"number",description:"Last payment amount"},lastPaymentDate:{$ref:"#/components/schemas/DateString",description:"Last payment date"},pastDueAmount:{type:"number",description:"Amount owed that the account holder failed to pay on the due date"},lastStmtBalance:{type:"number",description:"Last statement balance"},lastStmtDate:{$ref:"#/components/schemas/DateString",description:"Last statement date"},purchasesApr:{type:"number",description:"Purchases APR"},advancesApr:{type:"number",description:"Advances APR"}},required:["currentBalance","accountType"]},{"x-examples":[{accountCategory:"LOC_ACCOUNT",accountId:"loc_01_creditcard",accountNumberDisplay:"8200",productName:"First Plaidypus Credit Card",nickname:"my travel rewards card",status:"OPEN",currency:{currencyCode:"USD"},minimumPaymentAmount:100,lastPaymentAmount:400,lastPaymentDate:"2022-03-30",pastDueAmount:0,lastStmtBalance:400,lastStmtDate:"2022-03-25",purchasesApr:10.25,advancesApr:15.75,currentBalance:375,availableCredit:625,accountType:"CREDITCARD"}]}]},LineOfCreditTransaction:{title:"Line-Of-Credit Transaction entity",description:"A line-of-credit transaction",type:"object",allOf:[{$ref:"#/components/schemas/Transaction"},{type:"object",properties:{accountCategory:{type:"string",enum:["LOC_ACCOUNT"]},transactionType:{$ref:"#/components/schemas/LineOfCreditTransactionType"},checkNumber:{type:"integer",description:"Check number"}},required:["accountCategory"]}],"x-examples":[{transactionId:"locTransaction000000001",transactionTimestamp:"2022-04-05T00:00:00.000Z",description:"credit for latest ACME invoice",debitCreditMemo:"DEBIT",status:"PENDING",amount:400}]},Statement:{title:"Statement entity",description:"An account statement",type:"object",properties:{accountId:{$ref:"#/components/schemas/Identifier",description:"Corresponds to `accountId` in Account entity"},statementId:{$ref:"#/components/schemas/Identifier",description:"Long-term persistent identity of the statement"},statementDate:{$ref:"#/components/schemas/DateString",description:"Date of the statement"},description:{type:"string",description:"Description of the statement"},links:{$ref:"#/components/schemas/HateoasLinks",description:"The HATEOAS links to retrieve this account statement, or to invoke other APIs.\n\n**Note:** Plaid only accepts one link object in this array.\n"},status:{description:"Availability status of statement",type:"string"}}},Statements:{title:"An array of statements",description:"A paginated array of account statements",type:"object",allOf:[{$ref:"#/components/schemas/PaginatedArray"},{type:"object",properties:{statements:{type:"array",description:"An array of statements, each with its own HATEOAS link to retrieve the account statement",items:{$ref:"#/components/schemas/Statement"}}},required:["statements"]}]},StatementPDF:{title:"Statement PDF",description:"An account statement PDF",type:"string",format:"binary"},Transaction:{title:"Transaction",description:"Base entity for financial transactions. For monetary amounts, Plaid expects a decimal amount, with two places to represent fractional values of the base currency, for example `101.99`.\n",type:"object",discriminator:{propertyName:"accountCategory"},properties:{accountCategory:{$ref:"#/components/schemas/AccountCategory",description:"The entity type of the account of this Transaction"},transactionId:{description:"Long term persistent identity of the transaction (unique to account). Plaid expects that `status: PENDING` and `status: POSTED` transactions have different IDs.",$ref:"#/components/schemas/Identifier"},referenceTransactionId:{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",$ref:"#/components/schemas/Identifier"},postedTimestamp:{description:"The date and time that the transaction was posted to the account.\n\nThis property is **required** by Plaid when `status=POSTED`.\nPlaid expects this property to be omitted when `status=PENDING`\n\nISO 8601 date-time in format `YYYY-MM-DDThh:mm:ss.nnn[Z|[+|-]hh:mm]` according to [IETF RFC3339](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6)\n",$ref:"#/components/schemas/Timestamp"},transactionTimestamp:{description:"The date and time that the transaction was added to the server backend systems. This acts as postedTimestamp when postedTimestamp is not present (pending transaction).\n\nISO 8601 date-time in format `YYYY-MM-DDThh:mm:ss.nnn[Z|[+|-]hh:mm]` according to [IETF RFC3339](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6)\n",$ref:"#/components/schemas/Timestamp"},description:{type:"string",description:"The description of the transaction"},debitCreditMemo:{$ref:"#/components/schemas/DebitCreditMemo"},category:{type:"string",description:"Transaction category, preferably MCC or SIC. Plaid expects your organization to provide MCC, if available and applicable.\n"},subCategory:{type:"string",description:"Transaction category detail"},status:{$ref:"#/components/schemas/TransactionStatus"},amount:{type:"number",description:"The amount of money in the account currency. The amount is an absolute value. Plaid relies on the `DebitCreditMemo` enum to determine the direction (and sign) of the transaction.\n"},foreignAmount:{type:"number",description:"The amount of money in the foreign currency. If this amount is specified, then Plaid expects that the `foreignCurrency` property is also set."},foreignCurrency:{$ref:"#/components/schemas/Iso4217Code",description:"The ISO 4217 code of the foreign currency"}},required:["accountCategory","debitCreditMemo","description","transactionId","transactionTimestamp","status","amount"]},Transactions:{title:"Transactions entity",description:"Optionally paginated array of transactions",type:"object",allOf:[{$ref:"#/components/schemas/PaginatedArray"},{type:"object",properties:{transactions:{description:"An array of transactions with entity type dependent on the account type ([deposit](#deposit-transaction), [investment](#investment-transaction), [line of credit](#line-of-credit-transaction) or [loan](#loan-transaction))",type:"array",items:{discriminator:{propertyName:"accountCategory",mapping:{DEPOSIT_ACCOUNT:"#/components/schemas/DepositTransaction",INVESTMENT_ACCOUNT:"#/components/schemas/InvestmentTransaction",LOAN_ACCOUNT:"#/components/schemas/LoanTransaction",LOC_ACCOUNT:"#/components/schemas/LineOfCreditTransaction"}},oneOf:[{$ref:"#/components/schemas/DepositTransaction"},{$ref:"#/components/schemas/InvestmentTransaction"},{$ref:"#/components/schemas/LineOfCreditTransaction"},{$ref:"#/components/schemas/LoanTransaction"}]}}},required:["transactions"]}]},AccountCategory:{title:"Account Category type",description:"The category of account. For example, annuity, commercial, deposit, insurance, investment, loan, or line of credit.",type:"string",enum:["ANNUITY_ACCOUNT","COMMERCIAL_ACCOUNT","DEPOSIT_ACCOUNT","INSURANCE_ACCOUNT","INVESTMENT_ACCOUNT","LOAN_ACCOUNT","LOC_ACCOUNT"]},AccountHolderRelationship:{title:"Account Holder Relationship",description:"Types of relationships between accounts and holders. Suggested values",type:"string",enum:["AUTHORIZED_USER","BUSINESS","FOR_BENEFIT_OF","FOR_BENEFIT_OF_PRIMARY","FOR_BENEFIT_OF_PRIMARY_JOINT_RESTRICTED","FOR_BENEFIT_OF_SECONDARY","FOR_BENEFIT_OF_SECONDARY_JOINT_RESTRICTED","FOR_BENEFIT_OF_SOLE_OWNER_RESTRICTED","POWER_OF_ATTORNEY","PRIMARY","PRIMARY_BORROWER","PRIMARY_JOINT","PRIMARY_JOINT_TENANTS","SECONDARY","SECONDARY_BORROWER","SECONDARY_JOINT","SECONDARY_JOINT_TENANTS","SOLE_OWNER","TRUSTEE","UNIFORM_TRANSFER_TO_MINOR"]},ContentTypes:{title:"Content Types",description:"Types of document formats. (Suggested values)",type:"string",enum:["application/pdf","image/gif","image/jpeg","image/tiff","image/png","application/json"]},DateString:{title:"Date String",description:"ISO 8601 full-date in format 'YYYY-MM-DD' according to [IETF RFC3339](https://xml2rfc.tools.ietf.org/public/rfc/html/rfc3339.html#anchor14)",type:"string",format:"date",maxLength:10,example:"2021-07-15"},HateoasLinks:{title:"HATEOAS links array",description:"An array of HATEOAS links",type:"array",items:{$ref:"#/components/schemas/HateoasLink"}},HttpAction:{title:"HTTP action type",description:"The HTTP method to use for requests",type:"string",enum:["GET","POST","PATCH","DELETE","PUT"]},Identifier:{title:"Identifier",description:"Value for a unique identifier",type:"string",maxLength:256,example:"someLongTermUniqueIDString"},Iso3166CountryCode:{title:"ISO 3166 Country Code",description:"ISO 3166-1 alpha-2 codes as of April 5, 2023, from officially assigned Country Codes on [ISO Online Browsing Platform](https://www.iso.org/obp/ui/). Change log is at [ISO 3166 Maintenance Agency](https://www.iso.org/fr/committee/48750.html?t=3V3rukDb61p05Wd6ojyTRvE0S3Yg_fZgUjrLjHWcd9-mDmTKHOGjbX3nEJ3SqHar&view=documents#section-isodocuments-top)\n",type:"string",enum:["AD","AE","AF","AG","AI","AL","AM","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CR","CU","CV","CW","CX","CY","CZ","DE","DJ","DK","DM","DO","DZ","EC","EE","EG","EH","ER","ES","ET","FI","FJ","FK","FM","FO","FR","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SV","SX","SY","SZ","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TR","TT","TV","TW","TZ","UA","UG","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","YE","YT","ZA","ZM","ZW"]},Iso4217Code:{title:"ISO 4217 Code",description:"Currency, fund and precious metal codes as of Jan. 1, 2023 per [ISO 4217 Currency Code Maintenance](https://www.six-group.com/en/products-services/financial-information/data-standards.html)\n",type:"string",enum:["AED","AFN","ALL","AMD","ANG","AOA","ARS","AUD","AWG","AZN","BAM","BBD","BDT","BGN","BHD","BIF","BMD","BND","BOB","BOV","BRL","BSD","BTN","BWP","BYN","BZD","CAD","CDF","CHE","CHF","CHW","CLF","CLP","CNY","COP","COU","CRC","CUC","CUP","CVE","CZK","DJF","DKK","DOP","DZD","EGP","ERN","ETB","EUR","FJD","FKP","GBP","GEL","GHS","GIP","GMD","GNF","GTQ","GYD","HKD","HNL","HTG","HUF","IDR","ILS","INR","IQD","IRR","ISK","JMD","JOD","JPY","KES","KGS","KHR","KMF","KPW","KRW","KWD","KYD","KZT","LAK","LBP","LKR","LRD","LSL","LYD","MAD","MDL","MGA","MKD","MMK","MNT","MOP","MRU","MUR","MVR","MWK","MXN","MXV","MYR","MZN","NAD","NGN","NIO","NOK","NPR","NZD","OMR","PAB","PEN","PGK","PHP","PKR","PLN","PYG","QAR","RON","RSD","RUB","RWF","SAR","SBD","SCR","SDG","SEK","SGD","SHP","SLE","SLL","SOS","SRD","SSP","STN","SVC","SYP","SZL","THB","TJS","TMT","TND","TOP","TRY","TTD","TWD","TZS","UAH","UGX","USD","USN","UYI","UYU","UYW","UZS","VED","VES","VND","VUV","WST","XAF","XAG","XAU","XBA","XBB","XBC","XBD","XCD","XDR","XOF","XPD","XPF","XPT","XSU","XTS","XUA","XXX","YER","ZAR","ZMW","ZWL"]},String255:{title:"String 255",description:"String of maximum length 255",type:"string",maxLength:255},String64:{title:"String 64",description:"String of maximum length 64",type:"string",maxLength:64},TelephoneNumberType:{title:"Telephone Number Type",description:"Purpose or type of telephone number",type:"string",enum:["HOME","BUSINESS","CELL","FAX"]},Timestamp:{title:"Timestamp",description:"ISO 8601 date-time in format `YYYY-MM-DDThh:mm:ss.nnn[Z|[+|-]hh:mm]` according to [IETF RFC3339](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6)",type:"string",format:"date-time",example:"2021-07-15T14:46:41.375Z"},AccountStatus:{title:"Account Status",description:"The status of an account.\n",type:"string",enum:["CLOSED","DELINQUENT","NEGATIVECURRENTBALANCE","OPEN","PAID","PENDINGCLOSE","PENDINGOPEN","RESTRICTED"]},AnnuityAccountType:{description:"The type of an account. Plaid consumes basic balance account information from the `accounts/{accountId}` endpoint for a subset of the possible account types described in the FDX specification.\n",type:"string",enum:["ANNUITY","FIXEDANNUITY","VARIABLEANNUITY"]},CommercialAccountType:{description:"The type of an account. Plaid consumes basic balance account information from the `accounts/{accountId}` endpoint for a subset of the possible account types described in the FDX specification.\n",type:"string",enum:["COMMERCIALDEPOSIT","COMMERCIALINVESTMENT","COMMERCIALLOAN","COMMERCIALLINEOFCREDIT"]},DepositAccountType:{description:"The type of an account. Plaid consumes basic balance account information from the `accounts/{accountId}` endpoint for a subset of the possible account types described in the FDX specification.\n",type:"string",enum:["CHECKING","SAVINGS","CD","ESCROW","MONEYMARKET","OTHERDEPOSIT"]},InvestmentAccountType:{description:"The type of an account. Plaid consumes basic balance account information from the `accounts/{accountId}` endpoint for a subset of the possible account types described in the FDX specification.\n",type:"string",enum:["401A","401K","403B","529","BROKERAGEPRODUCT","COVERDELL","DIGITALASSET","DEFINEDBENEFIT","ESOP","GUARDIAN","INSTITUTIONALTRUST","IRA","KEOGH","NONQUALIFIEDPLAN","OTHERINVESTMENT","ROLLOVER","ROTH","SARSEP","TAXABLE","TDA","TRUST","TERM","UGMA","UTMA"]},InsuranceAccountType:{description:"The type of an account. Plaid consumes basic balance account information from the `accounts/{accountId}` endpoint for a subset of the possible account types described in the FDX specification.\n",type:"string",enum:["LONGTERMDISABILITY","SHORTTERMDISABILITY","UNIVERSALLIFE","WHOLELIFE"]},DebitCreditMemo:{title:"DebitCreditMemo",description:"The posting type of a transaction. The transaction amount is an absolute value, and this parameter indicates the direction of the transaction. Plaid expects `DEBIT` or `CREDIT` for this enum. Plaid expects that your organization indicates the `MEMO` (i.e., pending) status using the `status` field in the transaction response rather than this field. If your organization sends `MEMO` in this `DebitCreditMemo` enum, Plaid handles this value the same as it handles `DEBIT`. * `DEBIT`: An amount leaves the account * `CREDIT`: An amount enters the account * `MEMO`: A pending transaction to be completed at the end of this day.\n",type:"string",enum:["CREDIT","DEBIT","MEMO"]},FiAttribute:{title:"FI Attribute entity",description:"Financial Institution provider-specific attribute",type:"object",properties:{name:{type:"string",description:"The attribute's name"},value:{type:"string",description:"The attribute's value"}}},HoldingSubType:{title:"Holding SubType",description:"The subtype of an investment holding. Plaid expects you to return `OTHER` and set the `holdingSubType` to indicate cash-type holdings (CASH, MONEYMARKET).\n",type:"string",enum:["CASH","MONEYMARKET"]},HoldingType:{title:"Holding Type",description:"Plaid maps the holding type to the Plaid [security type](https://plaid.com/docs/api/products/investments/#investments-transactions-get-response-securities-type). Plaid expects you to return `OTHER` and set the `holdingSubType` to indicate cash-type holdings (CASH, MONEYMARKET).\n",type:"string",enum:["ANNUITY","BOND","CD","DIGITALASSET","MUTUALFUND","OPTION","OTHER","STOCK"]},InterestRateType:{title:"Interest Rate Type",description:"Specifies whether an interest rate is fixed or variable. This information is helpful for personal financial planning and advising. For example, it affects the potential benefits of refinancing, and informs whether a mortgage payment is expected to change in the future",type:"string",enum:["FIXED","VARIABLE"]},InvestmentTransactionType:{title:"Investment Transaction Type",description:"The type of an investment transaction.\nPlaid maps these enums to Plaid [investment transaction types](https://plaid.com/docs/api/accounts/#investment-transaction-types-schema).\nPlaid doesn't map these enums to Plaid-specific transaction subtypes.\nPlaid maps these enums as follows:\n\n* ADJUSTMENT - fee\n* ATM - cash\n* CASH - cash\n* CHECK - cash\n* CLOSURE - Plaid suggests using SOLDTOCLOSE, PURCHASETOCLOSE, OPTIONEXERCISE or OPTIONEXPIRATION to indicate the specific type of closure, instead of using this enum.\n* CLOSUREOPT - Plaid suggests using SOLDTOCLOSE, PURCHASETOCLOSE, OPTIONEXERCISE or OPTIONEXPIRATION to indicate the specific type of closure, instead of using this enum.\n* CONTRIBUTION - buy (if transaction involves a security) or cash\n* DEP - cash\n* DEPOSIT - cash\n* DIRECTDEBIT - cash\n* DIRECTDEP - cash\n* DIV - cash\n* DIVIDEND - cash\n* DIVIDENDREINVEST - buy\n* EXPENSE - cash\n* FEE - fee\n* INCOME - cash\n* INTEREST - cash\n* INVEXPENSE - cash\n* JRNLFUND - transfer\n* JRNLSEC - transfer\n* MARGININTEREST - cash\n* OPTIONEXERCISE - transfer\n* OPTIONEXPIRATION - transfer\n* OTHER - cash - (unclassified)\n* PAYMENT - cash\n* POS - cash\n* PURCHASED - buy\n* PURCHASEDTOCOVER - buy\n* PURCHASETOCLOSE - buy\n* PURCHASETOOPEN - buy\n* REINVESTOFINCOME - buy\n* REPEATPMT - cash\n* RETURNOFCAPITAL - cash\n* SOLD - sell\n* SOLDTOCLOSE - sell\n* SOLDTOOPEN - sell\n* SPLIT - transfer\n* SRVCHG - fee\n* TRANSFER - transfer\n* XFER - transfer\n",type:"string",enum:["ADJUSTMENT","ATM","CASH","CHECK","CLOSURE","CLOSUREOPT","CONTRIBUTION","DEP","DEPOSIT","DIRECTDEBIT","DIRECTDEP","DIV","DIVIDEND","DIVIDENDREINVEST","EXPENSE","FEE","INCOME","INTEREST","INVEXPENSE","JRNLFUND","JRNLSEC","MARGININTEREST","OPTIONEXERCISE","OPTIONEXPIRATION","OTHER","PAYMENT","POS","PURCHASED","PURCHASEDTOCOVER","PURCHASETOCLOSE","PURCHASETOOPEN","REINVESTOFINCOME","REPEATPMT","RETURNOFCAPITAL","SOLD","SOLDTOCLOSE","SOLDTOOPEN","SPLIT","SRVCHG","TRANSFER","XFER"]},LoanAccountType:{description:"The type of an account. Plaid consumes basic balance account information from the `accounts/{accountId}` endpoint for a subset of the possible account types described in the FDX specification.\n",type:"string",enum:["AUTOLOAN","HOMEEQUITYLOAN","INSTALLMENT","LOAN","MILITARYLOAN","MORTGAGE","PERSONALLOAN","SMBLOAN","STUDENTLOAN"]},LoanTransactionType:{title:"Loan Transaction Type",description:"The type of a loan transaction. Plaid passes through all loan transaction types.\n* `ADJUSTMENT`: Adjustment or correction.
    \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* `LUMP_SUM_PAYMENT`: A single payment of money, as opposed to a series of payments made over time.
    \n* `SKIP_PAYMENT`: Payment that satisfies deferral of a required payment.
    \n* `DOUBLE_UP_PAYMENT`: Additional payment beyond the required payment to reduce the principal.
    \n* `PAYOFF`: Payment that satisfies the terms of the mortgage loan and completely pays off the debt.
    \n",type:"string",enum:["ADJUSTMENT","FEE","INTEREST","PAYMENT","LUMP_SUM_PAYMENT","SKIP_PAYMENT","DOUBLE_UP_PAYMENT","PAYOFF"]},LineOfCreditAccountType:{description:"The type of an account. Plaid consumes basic balance account information from the `accounts/{accountId}` endpoint for a subset of the possible account types described in the FDX specification.\n",type:"string",enum:["LINEOFCREDIT","CHARGE","CREDITCARD","HOMELINEOFCREDIT"]},LineOfCreditTransactionType:{title:"Line-Of-Credit Transaction Type",description:"The type of a line of credit (LOC) transaction. Plaid passes through all LOC transaction types.\n",type:"string",enum:["ADJUSTMENT","CHECK","FEE","INTEREST","PAYMENT","WITHDRAWAL","PURCHASE"]},PaymentNetworkType:{title:"Payment Network Type",description:"Suggested values for Payment Network Type. `US_` refers to the USA, and `CA_` refers to Canada.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
    ValueDescription
    CA_ACSSAutomated Clearing House Settlement System
    CA_LVTSLarge-Value Transfer System
    US_ACHAutomated Clearing House, also called Fed ACH network (mostly small banks)
    US_CHIPSClearinghouse Interbank Payments System. Also called Clearing House ACH network (primarily big banks)
    US_FEDNOWFederal Reserve Instant Payment System.
    US_FEDWIREFedwire Funds Service.
    US_RTPUS Real Time Payments System.
    \n",type:"string",enum:["CA_ACSS","CA_LVTS","US_ACH","US_CHIPS","US_FEDNOW","US_FEDWIRE","US_RTP"]},SecurityId:{title:"Security ID entity",description:"Unique identifier for a security",type:"object",properties:{id:{$ref:"#/components/schemas/Identifier",description:"Security identifier"},idType:{$ref:"#/components/schemas/SecurityIdType",description:"Plaid consumes solely CUSIP, ISIN, and SEDOL."}},required:["id","idType"]},SecurityIdType:{title:"Security ID Type",description:"Plaid consumes solely CUSIP, ISIN, and SEDOL.\nThis field, along with `securityId` are **required** unless `symbol` is provided.\n**Note:** If `securityIdType` is provided, `securityId` is required.\n",type:"string",enum:["CINS","CMC","CME","CUSIP","ISIN","ITSA","NASDAQ","SEDOL","SICC","VALOR","WKN"]},SecurityType:{title:"Security Type",description:"The type of a security",type:"string",enum:["BOND","DEBT","DIGITALASSET","MUTUALFUND","OPTION","OTHER","STOCK","SWEEP"]},TransactionStatus:{title:"Transaction Status",description:"The status of a transaction. Plaid consumes solely the `PENDING` and `POSTED` enums,\nand treats `MEMO` and `AUTHORIZATION` as if they were `PENDING`. Plaid expects that pending and posted transactions\nhave different `transactionIds`.\n* `AUTHORIZATION`\n* `MEMO` - A pending transaction to be completed at the end of this day\n* `PENDING` - A pending transaction\n* `POSTED` - A posted transaction\n",type:"string",enum:["AUTHORIZATION","MEMO","PENDING","POSTED"]},UnitType:{title:"Unit Type",description:"The units of an investment transaction",type:"string",enum:["CURRENCY","SHARES"]},AccountClosed:{title:"705: Account is Closed",allOf:[{$ref:"#/components/schemas/Error"},{example:{code:705,message:"Account is closed",debugMessage:"Operation is not supported by the closed account"}}]},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",required:["code","message"],properties:{code:{type:"string",description:"The FDX error code: A 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"},debugMessage:{type:"string",description:"Message used to debug the root cause of the error. Contents should not be used in consumer's business logic. Can change at any time and should only be used for consumer to communicate with the data provider about an issue. Provider can include an error GUID in message for their use."}}},ConsentRequest:{title:"Consent Request entity",description:"Details of request to create new consent grant. This schema is to be used in POST request to Data Provider\u2019s 'POST /par' endpoint using the Pushed Authorization Request (PAR) method",type:"object",properties:{durationType:{description:"The type of duration of the consent",$ref:"#/components/schemas/ConsentDurationType"},durationPeriod:{description:"The consent duration in days from day of original grant",$ref:"#/components/schemas/ConsentDurationPeriod"},lookbackPeriod:{description:"Period, in days, for which historical data may be requested; measured from request time, not grant time",$ref:"#/components/schemas/LookbackPeriod"},resources:{description:"The requested resource entities",type:"array",items:{$ref:"#/components/schemas/ConsentRequestedResource"}}}},ConsentDurationType:{title:"Consent Duration Type",description:"Duration of the Consent Grant, per FDX UX Guidelines v1.0 (pp 18 - 20)",type:"string",enum:["ONE_TIME","PERSISTENT","TIME_BOUND"]},ConsentDurationPeriod:{title:"Consent Duration Period",description:"Consent duration, in days, from day of original grant",type:"integer"},LookbackPeriod:{title:"Lookback Period",description:"Period, in days, for which historical data may be requested; period is measured from request time, not grant time",type:"integer"},ConsentRequestedResource:{title:"Consent Requested Resource entity",description:"Details of requested resource and data clusters",type:"object",properties:{resourceType:{description:"Type of resource permission requested",$ref:"#/components/schemas/ConsentResourceType"},dataClusters:{description:"Names of clusters of data elements requested",type:"array",items:{$ref:"#/components/schemas/DataCluster"},minItems:1}},required:["resourceType","dataClusters"]},ConsentResourceType:{title:"Consent Resource Type",description:"Resource for which data may be permissioned; can be extended to support additional types of resources",type:"string",enum:["ACCOUNT","CUSTOMER","DOCUMENT"]},DataCluster:{title:"Data Cluster",description:"Name of permissioned Data Cluster. For Data Cluster definitions refer to the Consent Components > Data Clusters section of the User Experience Guidelines document included in the FDX API",type:"string",enum:["ACCOUNT_BASIC","ACCOUNT_DETAILED","ACCOUNT_PAYMENTS","CUSTOMER_CONTACT","CUSTOMER_PERSONAL","INVESTMENTS","STATEMENTS","TRANSACTIONS"]}}}}},d=function(e){return(0,o.jsx)("div",{className:"no-top-margin",children:(0,o.jsx)("div",{className:"api-container",children:(0,o.jsx)(s(),{full:!0,children:(0,o.jsx)(i.RedocStandalone,{spec:u[e.version],options:{nativeScrollbars:!0,hideDownloadButton:!0,disableSearch:!0,theme:{sidebar:{width:"0px"}}},onLoaded:function(){var e=window.location.hash;""!==e&&p.OK.scrollTo(e.slice(1),{offset:-100})}})})})})};d.propTypes={version:c().oneOf(["4.6","5.0","5.1","5.2","5.3","6.0"])};var l=d},4033:function(e,t,n){"use strict";n.d(t,{Z:function(){return u}});var o,i,a=n(5893),s=n(1071),r=n(7294);function c(){return c=Object.assign||function(e){for(var t=1;tn.addProblemToIgnore(e))),fileDependencies:i.getFiles(),rootType:A.DefinitionRoot,refTypes:D.refTypes,visitorsData:D.visitorsData}}))}function k(e,t){switch(t){case p.OasMajorVersion.Version3:switch(e){case"Schema":return"schemas";case"Parameter":return"parameters";case"Response":return"responses";case"Example":return"examples";case"RequestBody":return"requestBodies";case"Header":return"headers";case"SecuritySchema":return"securitySchemes";case"Link":return"links";case"Callback":return"callbacks";default:return null}case p.OasMajorVersion.Version2:switch(e){case"Schema":return"definitions";case"Parameter":return"parameters";case"Response":return"responses";default:return null}}}function E(e,t,n,r,a){let s;const u={ref:{leave(i,s,u){if(!u.location||void 0===u.node)return void g.reportUnresolvedRef(u,s.report,s.location);if(u.location.source===r.source&&u.location.source===s.location.source&&"scalar"!==s.type.name&&!t)return;if(n&&y.isRedoclyRegistryURL(i.$ref))return;const f=k(s.type.name,e);f?t?(c(f,u,s),l(i,u,s)):(i.$ref=c(f,u,s),function(e,t,n){const i=o.makeRefId(n.location.source.absoluteRef,e.$ref);a.set(i,{document:r,isRemote:!1,node:t.node,nodePointer:e.$ref,resolved:!0})}(i,u,s)):l(i,u,s)}},DefinitionRoot:{enter(t){e===p.OasMajorVersion.Version3?s=t.components=t.components||{}:e===p.OasMajorVersion.Version2&&(s=t)}}};function l(e,t,n){m.isPlainObject(t.node)?(delete e.$ref,Object.assign(e,t.node)):n.parent[n.key]=t.node}function c(t,n,r){s[t]=s[t]||{};const i=function(e,t,n){const[r,i]=[e.location.source.absoluteRef,e.location.pointer],o=s[t];let a="";const u=i.slice(2).split("/").filter(Boolean);for(;u.length>0;)if(a=u.pop()+(a?`-${a}`:""),!o||!o[a]||f(o[a],e,n))return a;if(a=d.refBaseName(r)+(a?`_${a}`:""),!o[a]||f(o[a],e,n))return a;const l=a;let c=2;for(;o[a]&&!f(o[a],e,n);)a=`${l}-${c}`,c++;o[a]||n.report({message:`Two schemas are referenced with the same name but different content. Renamed ${l} to ${a}.`,location:n.location,forceSeverity:"warn"});return a}(n,t,r);return s[t][i]=n.node,e===p.OasMajorVersion.Version3?`#/components/${t}/${i}`:`#/${t}/${i}`}function f(e,t,n){var r;return!(!d.isRef(e)||(null===(r=n.resolve(e).location)||void 0===r?void 0:r.absolutePointer)!==t.location.absolutePointer)||i(e,t.node)}return e===p.OasMajorVersion.Version3&&(u.DiscriminatorMapping={leave(n,r){for(const i of Object.keys(n)){const o=n[i],a=r.resolve({$ref:o});if(!a.location||void 0===a.node)return void g.reportUnresolvedRef(a,r.report,r.location.child(i));const s=k("Schema",e);t?c(s,a,r):n[i]=c(s,a,r)}}}),u}!function(e){e.Version2="oas2",e.Version3_0="oas3_0",e.Version3_1="oas3_1"}(w=t.OasVersion||(t.OasVersion={})),t.bundle=function(e){return r(this,void 0,void 0,(function*(){const{ref:t,doc:n,externalRefResolver:r=new o.BaseResolver(e.config.resolve),base:i=null}=e;if(!t&&!n)throw new Error("Document or reference is required.\n");const a=void 0!==n?n:yield r.resolveDocument(i,t,!0);if(a instanceof Error)throw a;return x(Object.assign(Object.assign({document:a},e),{config:e.config.lint,externalRefResolver:r}))}))},t.bundleDocument=x,t.mapTypeToComponent=k},3777:function(e,t,n){"use strict";var r=n(3454);Object.defineProperty(t,"__esModule",{value:!0}),t.Config=t.LintConfig=t.AVAILABLE_REGIONS=t.DOMAINS=t.DEFAULT_REGION=t.IGNORE_FILE=void 0;const i=n(5101),o=n(6470),a=n(5273),s=n(771),u=n(1510),l=n(2565);t.IGNORE_FILE=".redocly.lint-ignore.yaml";t.DEFAULT_REGION="us";const c=r.env.REDOCLY_DOMAIN;t.DOMAINS={us:"redocly.com",eu:"eu.redocly.com"},(null===c||void 0===c?void 0:c.endsWith(".redocly.host"))&&(t.DOMAINS[c.split(".")[0]]=c),"redoc.online"===c&&(t.DOMAINS[c]=c),t.AVAILABLE_REGIONS=Object.keys(t.DOMAINS);class f{constructor(e,n){this.rawConfig=e,this.configFile=n,this.ignore={},this._usedRules=new Set,this._usedVersions=new Set,this.plugins=e.plugins||[],this.doNotResolveExamples=!!e.doNotResolveExamples,this.recommendedFallback=e.recommendedFallback||!1,this.rules={[u.OasVersion.Version2]:Object.assign(Object.assign({},e.rules),e.oas2Rules),[u.OasVersion.Version3_0]:Object.assign(Object.assign({},e.rules),e.oas3_0Rules),[u.OasVersion.Version3_1]:Object.assign(Object.assign({},e.rules),e.oas3_1Rules)},this.preprocessors={[u.OasVersion.Version2]:Object.assign(Object.assign({},e.preprocessors),e.oas2Preprocessors),[u.OasVersion.Version3_0]:Object.assign(Object.assign({},e.preprocessors),e.oas3_0Preprocessors),[u.OasVersion.Version3_1]:Object.assign(Object.assign({},e.preprocessors),e.oas3_1Preprocessors)},this.decorators={[u.OasVersion.Version2]:Object.assign(Object.assign({},e.decorators),e.oas2Decorators),[u.OasVersion.Version3_0]:Object.assign(Object.assign({},e.decorators),e.oas3_0Decorators),[u.OasVersion.Version3_1]:Object.assign(Object.assign({},e.decorators),e.oas3_1Decorators)},this.extendPaths=e.extendPaths||[],this.pluginPaths=e.pluginPaths||[];const s=this.configFile?o.dirname(this.configFile):"undefined"!==typeof r&&r.cwd()||"",l=o.join(s,t.IGNORE_FILE);if(i.hasOwnProperty("existsSync")&&i.existsSync(l)){this.ignore=a.parseYaml(i.readFileSync(l,"utf-8"))||{};for(const e of Object.keys(this.ignore)){this.ignore[o.resolve(o.dirname(l),e)]=this.ignore[e];for(const t of Object.keys(this.ignore[e]))this.ignore[e][t]=new Set(this.ignore[e][t]);delete this.ignore[e]}}}saveIgnore(){const e=this.configFile?o.dirname(this.configFile):r.cwd(),n=o.join(e,t.IGNORE_FILE),u={};for(const t of Object.keys(this.ignore)){const n=u[s.slash(o.relative(e,t))]=this.ignore[t];for(const e of Object.keys(n))n[e]=Array.from(n[e])}i.writeFileSync(n,"# This file instructs Redocly's linter to ignore the rules contained for specific parts of your API.\n# See https://redoc.ly/docs/cli/ for more information.\n"+a.stringifyYaml(u))}addIgnore(e){const t=this.ignore,n=e.location[0];if(void 0===n.pointer)return;const r=t[n.source.absoluteRef]=t[n.source.absoluteRef]||{};(r[e.ruleId]=r[e.ruleId]||new Set).add(n.pointer)}addProblemToIgnore(e){const t=e.location[0];if(void 0===t.pointer)return e;const n=(this.ignore[t.source.absoluteRef]||{})[e.ruleId],r=n&&n.has(t.pointer);return r?Object.assign(Object.assign({},e),{ignored:r}):e}extendTypes(e,t){let n=e;for(const r of this.plugins)if(void 0!==r.typeExtension)switch(t){case u.OasVersion.Version3_0:case u.OasVersion.Version3_1:if(!r.typeExtension.oas3)continue;n=r.typeExtension.oas3(n,t);case u.OasVersion.Version2:if(!r.typeExtension.oas2)continue;n=r.typeExtension.oas2(n,t);default:throw new Error("Not implemented")}return n}getRuleSettings(e,t){this._usedRules.add(e),this._usedVersions.add(t);const n=this.rules[t][e]||"off";return"string"===typeof n?{severity:n}:Object.assign({severity:"error"},n)}getPreprocessorSettings(e,t){this._usedRules.add(e),this._usedVersions.add(t);const n=this.preprocessors[t][e]||"off";return"string"===typeof n?{severity:"on"===n?"error":n}:Object.assign({severity:"error"},n)}getDecoratorSettings(e,t){this._usedRules.add(e),this._usedVersions.add(t);const n=this.decorators[t][e]||"off";return"string"===typeof n?{severity:"on"===n?"error":n}:Object.assign({severity:"error"},n)}getUnusedRules(){const e=[],t=[],n=[];for(const r of Array.from(this._usedVersions))e.push(...Object.keys(this.rules[r]).filter((e=>!this._usedRules.has(e)))),t.push(...Object.keys(this.decorators[r]).filter((e=>!this._usedRules.has(e)))),n.push(...Object.keys(this.preprocessors[r]).filter((e=>!this._usedRules.has(e))));return{rules:e,preprocessors:n,decorators:t}}getRulesForOasVersion(e){switch(e){case u.OasMajorVersion.Version3:const e=[];return this.plugins.forEach((t=>{var n;return(null===(n=t.preprocessors)||void 0===n?void 0:n.oas3)&&e.push(t.preprocessors.oas3)})),this.plugins.forEach((t=>{var n;return(null===(n=t.rules)||void 0===n?void 0:n.oas3)&&e.push(t.rules.oas3)})),this.plugins.forEach((t=>{var n;return(null===(n=t.decorators)||void 0===n?void 0:n.oas3)&&e.push(t.decorators.oas3)})),e;case u.OasMajorVersion.Version2:const t=[];return this.plugins.forEach((e=>{var n;return(null===(n=e.preprocessors)||void 0===n?void 0:n.oas2)&&t.push(e.preprocessors.oas2)})),this.plugins.forEach((e=>{var n;return(null===(n=e.rules)||void 0===n?void 0:n.oas2)&&t.push(e.rules.oas2)})),this.plugins.forEach((e=>{var n;return(null===(n=e.decorators)||void 0===n?void 0:n.oas2)&&t.push(e.decorators.oas2)})),t}}skipRules(e){for(const t of e||[])for(const e of Object.values(u.OasVersion))this.rules[e][t]&&(this.rules[e][t]="off")}skipPreprocessors(e){for(const t of e||[])for(const e of Object.values(u.OasVersion))this.preprocessors[e][t]&&(this.preprocessors[e][t]="off")}skipDecorators(e){for(const t of e||[])for(const e of Object.values(u.OasVersion))this.decorators[e][t]&&(this.decorators[e][t]="off")}}t.LintConfig=f;t.Config=class{constructor(e,t){this.rawConfig=e,this.configFile=t,this.apis=e.apis||{},this.lint=new f(e.lint||{},t),this["features.openapi"]=e["features.openapi"]||{},this["features.mockServer"]=e["features.mockServer"]||{},this.resolve=l.getResolveConfig(null===e||void 0===e?void 0:e.resolve),this.region=e.region,this.organization=e.organization}}},5030:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initRules=void 0;const r=n(771);t.initRules=function(e,t,n,i){return e.flatMap((e=>Object.keys(e).map((r=>{const o=e[r],a="rules"===n?t.getRuleSettings(r,i):"preprocessors"===n?t.getPreprocessorSettings(r,i):t.getDecoratorSettings(r,i);if("off"===a.severity)return;const s=o(a);return Array.isArray(s)?s.map((e=>({severity:a.severity,ruleId:r,visitor:e}))):{severity:a.severity,ruleId:r,visitor:s}})))).flatMap((e=>e)).filter(r.notUndefined)}},2565:function(e,t,n){"use strict";var r=n(3454),i=this&&this.__rest||function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"===typeof Object.getOwnPropertySymbols){var i=0;for(r=Object.getOwnPropertySymbols(e);i-1){const[t,n]=e.split("/");return{pluginId:t,configName:n}}return{pluginId:"",configName:e}},t.transformApiDefinitionsToApis=u,t.prefixRules=function(e,t){if(!t)return e;const n={};for(const r of Object.keys(e))n[`${t}/${r}`]=e[r];return n},t.mergeExtends=function(e){const t={rules:{},oas2Rules:{},oas3_0Rules:{},oas3_1Rules:{},preprocessors:{},oas2Preprocessors:{},oas3_0Preprocessors:{},oas3_1Preprocessors:{},decorators:{},oas2Decorators:{},oas3_0Decorators:{},oas3_1Decorators:{},plugins:[],pluginPaths:[],extendPaths:[]};for(let n of e){if(n.extends)throw new Error(`\`extends\` is not supported in shared configs yet: ${JSON.stringify(n,null,2)}.`);Object.assign(t.rules,n.rules),Object.assign(t.oas2Rules,n.oas2Rules),a.assignExisting(t.oas2Rules,n.rules||{}),Object.assign(t.oas3_0Rules,n.oas3_0Rules),a.assignExisting(t.oas3_0Rules,n.rules||{}),Object.assign(t.oas3_1Rules,n.oas3_1Rules),a.assignExisting(t.oas3_1Rules,n.rules||{}),Object.assign(t.preprocessors,n.preprocessors),Object.assign(t.oas2Preprocessors,n.oas2Preprocessors),a.assignExisting(t.oas2Preprocessors,n.preprocessors||{}),Object.assign(t.oas3_0Preprocessors,n.oas3_0Preprocessors),a.assignExisting(t.oas3_0Preprocessors,n.preprocessors||{}),Object.assign(t.oas3_1Preprocessors,n.oas3_1Preprocessors),a.assignExisting(t.oas3_1Preprocessors,n.preprocessors||{}),Object.assign(t.decorators,n.decorators),Object.assign(t.oas2Decorators,n.oas2Decorators),a.assignExisting(t.oas2Decorators,n.decorators||{}),Object.assign(t.oas3_0Decorators,n.oas3_0Decorators),a.assignExisting(t.oas3_0Decorators,n.decorators||{}),Object.assign(t.oas3_1Decorators,n.oas3_1Decorators),a.assignExisting(t.oas3_1Decorators,n.decorators||{}),t.plugins.push(...n.plugins||[]),t.pluginPaths.push(...n.pluginPaths||[]),t.extendPaths.push(...new Set(n.extendPaths))}return t},t.getMergedConfig=function(e,t){var n,r,i,o,a,u;const l=[...Object.values(e.apis).map((e=>{var t;return null===(t=null===e||void 0===e?void 0:e.lint)||void 0===t?void 0:t.extendPaths})),null===(r=null===(n=e.rawConfig)||void 0===n?void 0:n.lint)||void 0===r?void 0:r.extendPaths].flat().filter(Boolean),c=[...Object.values(e.apis).map((e=>{var t;return null===(t=null===e||void 0===e?void 0:e.lint)||void 0===t?void 0:t.pluginPaths})),null===(o=null===(i=e.rawConfig)||void 0===i?void 0:i.lint)||void 0===o?void 0:o.pluginPaths].flat().filter(Boolean);return t?new s.Config(Object.assign(Object.assign({},e.rawConfig),{lint:Object.assign(Object.assign({},e.apis[t]?e.apis[t].lint:e.rawConfig.lint),{extendPaths:l,pluginPaths:c}),"features.openapi":Object.assign(Object.assign({},e["features.openapi"]),null===(a=e.apis[t])||void 0===a?void 0:a["features.openapi"]),"features.mockServer":Object.assign(Object.assign({},e["features.mockServer"]),null===(u=e.apis[t])||void 0===u?void 0:u["features.mockServer"])}),e.configFile):e},t.transformConfig=function(e){if(e.apis&&e.apiDefinitions)throw new Error("Do not use 'apiDefinitions' field. Use 'apis' instead.\n");if(e["features.openapi"]&&e.referenceDocs)throw new Error("Do not use 'referenceDocs' field. Use 'features.openapi' instead.\n");const t=e,{apiDefinitions:n,referenceDocs:a}=t,s=i(t,["apiDefinitions","referenceDocs"]);return n&&r.stderr.write(`The ${o.yellow("apiDefinitions")} field is deprecated. Use ${o.green("apis")} instead. Read more about this change: https://redocly.com/docs/api-registry/guides/migration-guide-config-file/#changed-properties\n`),a&&r.stderr.write(`The ${o.yellow("referenceDocs")} field is deprecated. Use ${o.green("features.openapi")} instead. Read more about this change: https://redocly.com/docs/api-registry/guides/migration-guide-config-file/#changed-properties\n`),Object.assign({"features.openapi":a,apis:u(n)},s)},t.getResolveConfig=function(e){var t,n;return{http:{headers:null!==(n=null===(t=null===e||void 0===e?void 0:e.http)||void 0===t?void 0:t.headers)&&void 0!==n?n:[],customFetch:void 0}}},t.getUniquePlugins=function(e){const t=new Set,n=[];for(const i of e)t.has(i.id)?i.id&&r.stderr.write(`Duplicate plugin id "${o.yellow(i.id)}".\n`):(n.push(i),t.add(i.id));return n}},5273:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.stringifyYaml=t.parseYaml=void 0;const r=n(3320),i=r.JSON_SCHEMA.extend({implicit:[r.types.merge],explicit:[r.types.binary,r.types.omap,r.types.pairs,r.types.set]});t.parseYaml=(e,t)=>r.load(e,Object.assign({schema:i},t));t.stringifyYaml=(e,t)=>r.dump(e,t)},1510:function(e,t){"use strict";var n,r;Object.defineProperty(t,"__esModule",{value:!0}),t.openAPIMajor=t.detectOpenAPI=t.OasMajorVersion=t.OasVersion=void 0,function(e){e.Version2="oas2",e.Version3_0="oas3_0",e.Version3_1="oas3_1"}(n=t.OasVersion||(t.OasVersion={})),function(e){e.Version2="oas2",e.Version3="oas3"}(r=t.OasMajorVersion||(t.OasMajorVersion={})),t.detectOpenAPI=function(e){if("object"!==typeof e)throw new Error("Document must be JSON object, got "+typeof e);if(!e.openapi&&!e.swagger)throw new Error("This doesn\u2019t look like an OpenAPI document.\n");if(e.openapi&&"string"!==typeof e.openapi)throw new Error(`Invalid OpenAPI version: should be a string but got "${typeof e.openapi}"`);if(e.openapi&&e.openapi.startsWith("3.0"))return n.Version3_0;if(e.openapi&&e.openapi.startsWith("3.1"))return n.Version3_1;if(e.swagger&&"2.0"===e.swagger)return n.Version2;throw new Error(`Unsupported OpenAPI Version: ${e.openapi||e.swagger}`)},t.openAPIMajor=function(e){return e===n.Version2?r.Version2:r.Version3}},1094:function(e,t,n){"use strict";var r=n(3454),i=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{u(r.next(e))}catch(t){o(t)}}function s(e){try{u(r.throw(e))}catch(t){o(t)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}u((r=r.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:!0}),t.isRedoclyRegistryURL=t.RedoclyClient=void 0;const o=n(2116),a=n(6470),s=n(6918),u=n(9485),l=n(1390),c=n(3777),f=n(771),p=".redocly-config.json";let d;t.RedoclyClient=class{constructor(e){this.accessTokens={},this.region=this.loadRegion(e),this.loadTokens(),this.domain=e?c.DOMAINS[e]:r.env.REDOCLY_DOMAIN||c.DOMAINS[c.DEFAULT_REGION],d=this.domain,this.registryApi=new l.RegistryApi(this.accessTokens,this.region)}loadRegion(e){return e&&!c.DOMAINS[e]&&(r.stdout.write(u.red(`Invalid argument: region in config file.\nGiven: ${u.green(e)}, choices: "us", "eu".\n`)),r.exit(1)),r.env.REDOCLY_DOMAIN?c.AVAILABLE_REGIONS.find((e=>c.DOMAINS[e]===r.env.REDOCLY_DOMAIN))||c.DEFAULT_REGION:e||c.DEFAULT_REGION}getRegion(){return this.region}hasTokens(){return f.isNotEmptyObject(this.accessTokens)}hasToken(){return!!this.accessTokens[this.region]}getAuthorizationHeader(){return i(this,void 0,void 0,(function*(){const e=this.accessTokens[this.region];if(!e||this.isAuthorizedWithRedoclyByRegion())return e;r.stderr.write(`${u.yellow("Warning:")} invalid Redocly API key. Use "npx @redocly/openapi-cli login" to provide your API key\n`)}))}setAccessTokens(e){this.accessTokens=e}loadTokens(){const e=a.resolve(s.homedir(),p),t=this.readCredentialsFile(e);f.isNotEmptyObject(t)&&this.setAccessTokens(Object.assign(Object.assign({},t),t.token&&!t[this.region]&&{[this.region]:t.token})),r.env.REDOCLY_AUTHORIZATION&&this.setAccessTokens(Object.assign(Object.assign({},this.accessTokens),{[this.region]:r.env.REDOCLY_AUTHORIZATION}))}getAllTokens(){return Object.entries(this.accessTokens).filter((([e])=>c.AVAILABLE_REGIONS.includes(e))).map((([e,t])=>({region:e,token:t})))}getValidTokens(){return i(this,void 0,void 0,(function*(){const e=this.getAllTokens(),t=yield Promise.allSettled(e.map((({token:e,region:t})=>this.verifyToken(e,t))));return e.filter(((e,n)=>"fulfilled"===t[n].status)).map((({token:e,region:t})=>({token:e,region:t,valid:!0})))}))}getTokens(){return i(this,void 0,void 0,(function*(){return this.hasTokens()?yield this.getValidTokens():[]}))}isAuthorizedWithRedoclyByRegion(){return i(this,void 0,void 0,(function*(){if(!this.hasTokens())return!1;const e=this.accessTokens[this.region];if(!e)return!1;try{return yield this.verifyToken(e,this.region),!0}catch(t){return!1}}))}isAuthorizedWithRedocly(){return i(this,void 0,void 0,(function*(){return this.hasTokens()&&f.isNotEmptyObject(yield this.getValidTokens())}))}readCredentialsFile(e){return o.existsSync(e)?JSON.parse(o.readFileSync(e,"utf-8")):{}}verifyToken(e,t,n=!1){return i(this,void 0,void 0,(function*(){return this.registryApi.authStatus(e,t,n)}))}login(e,t=!1){return i(this,void 0,void 0,(function*(){const n=a.resolve(s.homedir(),p);r.stdout.write(u.gray("\n Logging in...\n"));try{yield this.verifyToken(e,this.region,t)}catch(l){r.stdout.write(u.red("Authorization failed. Please check if you entered a valid API key.\n")),r.exit(1)}const i=Object.assign(Object.assign({},this.readCredentialsFile(n)),{[this.region]:e,token:e});this.accessTokens=i,this.registryApi.setAccessTokens(i),o.writeFileSync(n,JSON.stringify(i,null,2)),r.stdout.write(u.green(" Authorization confirmed. \u2705\n\n"))}))}logout(){const e=a.resolve(s.homedir(),p);o.existsSync(e)&&o.unlinkSync(e),r.stdout.write("Logged out from the Redocly account. \u270b\n")}},t.isRedoclyRegistryURL=function(e){const t=d||r.env.REDOCLY_DOMAIN||c.DOMAINS[c.DEFAULT_REGION],n="redocly.com"===t?"redoc.ly":t;return!(!e.startsWith(`https://api.${t}/registry/`)&&!e.startsWith(`https://api.${n}/registry/`))}},1390:function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{u(r.next(e))}catch(t){o(t)}}function s(e){try{u(r.throw(e))}catch(t){o(t)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}u((r=r.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:!0}),t.RegistryApi=void 0;const i=n(4904),o=n(3777),a=n(771),s=n(3244).i8;t.RegistryApi=class{constructor(e,t){this.accessTokens=e,this.region=t}get accessToken(){return a.isNotEmptyObject(this.accessTokens)&&this.accessTokens[this.region]}getBaseUrl(e=o.DEFAULT_REGION){return`https://api.${o.DOMAINS[e]}/registry`}setAccessTokens(e){return this.accessTokens=e,this}request(e="",t={},n){return r(this,void 0,void 0,(function*(){const r=Object.assign({},t.headers||{},{"x-redocly-cli-version":s});if(!r.hasOwnProperty("authorization"))throw new Error("Unauthorized");const o=yield i.default(`${this.getBaseUrl(n)}${e}`,Object.assign({},t,{headers:r}));if(401===o.status)throw new Error("Unauthorized");if(404===o.status){const e=yield o.json();throw new Error(e.code)}return o}))}authStatus(e,t,n=!1){return r(this,void 0,void 0,(function*(){try{const n=yield this.request("",{headers:{authorization:e}},t);return yield n.json()}catch(r){throw n&&console.log(r),r}}))}prepareFileUpload({organizationId:e,name:t,version:n,filesHash:i,filename:o,isUpsert:a}){return r(this,void 0,void 0,(function*(){const r=yield this.request(`/${e}/${t}/${n}/prepare-file-upload`,{method:"POST",headers:{"content-type":"application/json",authorization:this.accessToken},body:JSON.stringify({filesHash:i,filename:o,isUpsert:a})},this.region);if(r.ok)return r.json();throw new Error("Could not prepare file upload")}))}pushApi({organizationId:e,name:t,version:n,rootFilePath:i,filePaths:o,branch:a,isUpsert:s}){return r(this,void 0,void 0,(function*(){if(!(yield this.request(`/${e}/${t}/${n}`,{method:"PUT",headers:{"content-type":"application/json",authorization:this.accessToken},body:JSON.stringify({rootFilePath:i,filePaths:o,branch:a,isUpsert:s})},this.region)).ok)throw new Error("Could not push api")}))}}},7468:function(e,t){"use strict";function n(e,t){return""===e&&(e="#/"),"/"===e[e.length-1]?e+t:e+"/"+t}Object.defineProperty(t,"__esModule",{value:!0}),t.isMappingRef=t.isAbsoluteUrl=t.refBaseName=t.pointerBaseName=t.parsePointer=t.parseRef=t.escapePointer=t.unescapePointer=t.Location=t.isRef=t.joinPointer=void 0,t.joinPointer=n,t.isRef=function(e){return e&&"string"===typeof e.$ref};class r{constructor(e,t){this.source=e,this.pointer=t}child(e){return new r(this.source,n(this.pointer,(Array.isArray(e)?e:[e]).map(o).join("/")))}key(){return Object.assign(Object.assign({},this),{reportOnKey:!0})}get absolutePointer(){return this.source.absoluteRef+("#/"===this.pointer?"":this.pointer)}}function i(e){return decodeURIComponent(e.replace(/~1/g,"/").replace(/~0/g,"~"))}function o(e){return"number"===typeof e?e:e.replace(/~/g,"~0").replace(/\//g,"~1")}t.Location=r,t.unescapePointer=i,t.escapePointer=o,t.parseRef=function(e){const[t,n]=e.split("#/");return{uri:t||null,pointer:n?n.split("/").map(i).filter(Boolean):[]}},t.parsePointer=function(e){return e.substr(2).split("/").map(i)},t.pointerBaseName=function(e){const t=e.split("/");return t[t.length-1]},t.refBaseName=function(e){const t=e.split(/[\/\\]/);return t[t.length-1].replace(/\.[^.]+$/,"")},t.isAbsoluteUrl=function(e){return e.startsWith("http://")||e.startsWith("https://")},t.isMappingRef=function(e){return e.startsWith("#")||e.startsWith("https://")||e.startsWith("./")||e.startsWith("../")||e.indexOf("/")>-1}},4182:function(e,t,n){"use strict";var r=n(3454),i=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{u(r.next(e))}catch(t){o(t)}}function s(e){try{u(r.throw(e))}catch(t){o(t)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}u((r=r.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:!0}),t.resolveDocument=t.BaseResolver=t.makeDocumentFromString=t.makeRefId=t.YamlParseError=t.ResolveError=t.Source=void 0;const o=n(3197),a=n(6470),s=n(7468),u=n(5220),l=n(771);class c{constructor(e,t,n){this.absoluteRef=e,this.body=t,this.mimeType=n}getAst(e){var t;return void 0===this._ast&&(this._ast=null!==(t=e(this.body,{filename:this.absoluteRef}))&&void 0!==t?t:void 0,this._ast&&0===this._ast.kind&&""===this._ast.value&&1!==this._ast.startPosition&&(this._ast.startPosition=1,this._ast.endPosition=1)),this._ast}getLines(){return void 0===this._lines&&(this._lines=this.body.split(/\r\n|[\n\r]/g)),this._lines}}t.Source=c;class f extends Error{constructor(e){super(e.message),this.originalError=e,Object.setPrototypeOf(this,f.prototype)}}t.ResolveError=f;const p=/\((\d+):(\d+)\)$/;class d extends Error{constructor(e,t){super(e.message.split("\n")[0]),this.originalError=e,this.source=t,Object.setPrototypeOf(this,d.prototype);const[,n,r]=this.message.match(p)||[];this.line=parseInt(n,10),this.col=parseInt(r,10)}}function h(e,t){return e+"::"+t}t.YamlParseError=d,t.makeRefId=h,t.makeDocumentFromString=function(e,t){const n=new c(t,e);try{return{source:n,parsed:l.parseYaml(e,{filename:t})}}catch(r){throw new d(r,n)}};function g(e,t){return{prev:e,node:t}}t.BaseResolver=class{constructor(e={http:{headers:[]}}){this.config=e,this.cache=new Map}getFiles(){return new Set(Array.from(this.cache.keys()))}resolveExternalRef(e,t){return s.isAbsoluteUrl(t)?t:e&&s.isAbsoluteUrl(e)?new URL(t,e).href:a.resolve(e?a.dirname(e):r.cwd(),t)}loadExternalRef(e){return i(this,void 0,void 0,(function*(){try{if(s.isAbsoluteUrl(e)){const{body:t,mimeType:n}=yield l.readFileFromUrl(e,this.config.http);return new c(e,t,n)}return new c(e,yield o.promises.readFile(e,"utf-8"))}catch(t){throw new f(t)}}))}parseDocument(e,t=!1){var n;const r=e.absoluteRef.substr(e.absoluteRef.lastIndexOf("."));if(![".json",".json",".yml",".yaml"].includes(r)&&!(null===(n=e.mimeType)||void 0===n?void 0:n.match(/(json|yaml|openapi)/))&&!t)return{source:e,parsed:e.body};try{return{source:e,parsed:l.parseYaml(e.body,{filename:e.absoluteRef})}}catch(i){throw new d(i,e)}}resolveDocument(e,t,n=!1){return i(this,void 0,void 0,(function*(){const r=this.resolveExternalRef(e,t),i=this.cache.get(r);if(i)return i;const o=this.loadExternalRef(r).then((e=>this.parseDocument(e,n)));return this.cache.set(r,o),o}))}};const m={name:"unknown",properties:{}},y={name:"scalar",properties:{}};t.resolveDocument=function(e){return i(this,void 0,void 0,(function*(){const{rootDocument:t,externalRefResolver:n,rootType:r}=e,o=new Map,a=new Set,l=[];let c;!function e(t,r,c,f){const p=r.source.absoluteRef;function d(t,n,i){if("object"!==typeof t||null===t)return;const o=`${n.name}::${i}`;if(!a.has(o))if(a.add(o),Array.isArray(t)){const e=n.items;if(n!==m&&void 0===e)return;for(let n=0;n{t.resolved&&e(t.node,t.document,t.nodePointer,n)}));l.push(i)}}}function v(e,t,r){return i(this,void 0,void 0,(function*(){if(function(e,t){for(;e;){if(e.node===t)return!0;e=e.prev}return!1}(r.prev,t))throw new Error("Self-referencing circular pointer");const{uri:i,pointer:a}=s.parseRef(t.$ref),u=null!==i;let l;try{l=u?yield n.resolveDocument(e.source.absoluteRef,i):e}catch(m){const n={resolved:!1,isRemote:u,document:void 0,error:m},r=h(e.source.absoluteRef,t.$ref);return o.set(r,n),n}let c={resolved:!0,document:l,isRemote:u,node:e.parsed,nodePointer:"#/"},f=l.parsed;const p=a;for(let e of p){if("object"!==typeof f){f=void 0;break}if(void 0!==f[e])f=f[e],c.nodePointer=s.joinPointer(c.nodePointer,s.escapePointer(e));else{if(!s.isRef(f)){f=void 0;break}if(c=yield v(l,f,g(r,f)),l=c.document||l,"object"!==typeof c.node){f=void 0;break}f=c.node[e],c.nodePointer=s.joinPointer(c.nodePointer,s.escapePointer(e))}}c.node=f,c.document=l;const d=h(e.source.absoluteRef,t.$ref);return c.document&&s.isRef(f)&&(c=yield v(c.document,f,g(r,f))),o.set(d,c),Object.assign({},c)}))}d(t,f,p+c)}(t.parsed,t,"#/",r);do{c=yield Promise.all(l)}while(l.length!==c.length);return o}))}},348:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.reportUnresolvedRef=t.NoUnresolvedRefs=void 0;const r=n(4182);function i(e,t,n){var i;const o=e.error;o instanceof r.YamlParseError&&t({message:"Failed to parse: "+o.message,location:{source:o.source,pointer:void 0,start:{col:o.col,line:o.line}}});const a=null===(i=e.error)||void 0===i?void 0:i.message;t({location:n,message:"Can't resolve $ref"+(a?": "+a:"")})}t.NoUnresolvedRefs=()=>({ref:{leave(e,{report:t,location:n},r){void 0===r.node&&i(r,t,n)}},DiscriminatorMapping(e,{report:t,resolve:n,location:r}){for(const o of Object.keys(e)){const a=n({$ref:e[o]});if(void 0!==a.node)return;i(a,t,r.child(o))}}}),t.reportUnresolvedRef=i},4508:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.RemoveUnusedComponents=void 0;const r=n(771);t.RemoveUnusedComponents=()=>{let e=new Map;function t(t,n,r){var i;e.set(t.absolutePointer,{used:(null===(i=e.get(t.absolutePointer))||void 0===i?void 0:i.used)||!1,componentType:n,name:r})}return{ref:{leave(t,{type:n,resolve:r,key:i}){if(["Schema","Parameter","Response","SecurityScheme"].includes(n.name)){const n=r(t);if(!n.location)return;e.set(n.location.absolutePointer,{used:!0,name:i.toString()})}}},DefinitionRoot:{leave(t,n){const i=n.getVisitorData();i.removedCount=0;let o=new Set;e.forEach((e=>{const{used:n,name:r,componentType:a}=e;!n&&a&&(o.add(a),delete t[a][r],i.removedCount++)}));for(const e of o)r.isEmptyObject(t[e])&&delete t[e]}},NamedSchemas:{Schema(e,{location:n,key:r}){e.allOf||t(n,"definitions",r.toString())}},NamedParameters:{Parameter(e,{location:n,key:r}){t(n,"parameters",r.toString())}},NamedResponses:{Response(e,{location:n,key:r}){t(n,"responses",r.toString())}},NamedSecuritySchemes:{SecurityScheme(e,{location:n,key:r}){t(n,"securityDefinitions",r.toString())}}}}},6350:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.RemoveUnusedComponents=void 0;const r=n(771);t.RemoveUnusedComponents=()=>{let e=new Map;function t(t,n,r){var i;e.set(t.absolutePointer,{used:(null===(i=e.get(t.absolutePointer))||void 0===i?void 0:i.used)||!1,componentType:n,name:r})}return{ref:{leave(t,{type:n,resolve:r,key:i}){if(["Schema","Header","Parameter","Response","Example","RequestBody"].includes(n.name)){const n=r(t);if(!n.location)return;e.set(n.location.absolutePointer,{used:!0,name:i.toString()})}}},DefinitionRoot:{leave(t,n){const i=n.getVisitorData();i.removedCount=0,e.forEach((e=>{const{used:n,componentType:o,name:a}=e;if(!n&&o){let e=t.components[o];delete e[a],i.removedCount++,r.isEmptyObject(e)&&delete t.components[o]}})),r.isEmptyObject(t.components)&&delete t.components}},NamedSchemas:{Schema(e,{location:n,key:r}){e.allOf||t(n,"schemas",r.toString())}},NamedParameters:{Parameter(e,{location:n,key:r}){t(n,"parameters",r.toString())}},NamedResponses:{Response(e,{location:n,key:r}){t(n,"responses",r.toString())}},NamedExamples:{Example(e,{location:n,key:r}){t(n,"examples",r.toString())}},NamedRequestBodies:{RequestBody(e,{location:n,key:r}){t(n,"requestBodies",r.toString())}},NamedHeaders:{Header(e,{location:n,key:r}){t(n,"headers",r.toString())}}}}},5220:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.isNamedType=t.normalizeTypes=t.mapOf=t.listOf=void 0,t.listOf=function(e){return{name:`${e}List`,properties:{},items:e}},t.mapOf=function(e){return{name:`${e}Map`,properties:{},additionalProperties:()=>e}},t.normalizeTypes=function(e,t={}){const n={};for(const o of Object.keys(e))n[o]=Object.assign(Object.assign({},e[o]),{name:o});for(const o of Object.values(n))r(o);return n;function r(e){if(e.additionalProperties&&(e.additionalProperties=i(e.additionalProperties)),e.items&&(e.items=i(e.items)),e.properties){const n={};for(const[r,o]of Object.entries(e.properties))n[r]=i(o),t.doNotResolveExamples&&o&&o.isExample&&(n[r]=Object.assign(Object.assign({},o),{resolvable:!1}));e.properties=n}}function i(e){if("string"===typeof e){if(!n[e])throw new Error(`Unknown type name found: ${e}`);return n[e]}return"function"===typeof e?(t,n)=>i(e(t,n)):e&&e.name?(r(e=Object.assign({},e)),e):e&&e.directResolveAs?Object.assign(Object.assign({},e),{directResolveAs:i(e.directResolveAs)}):e}},t.isNamedType=function(e){return"string"===typeof(null===e||void 0===e?void 0:e.name)}},388:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Oas2Types=void 0;const r=n(5220),i=/^[0-9][0-9Xx]{2}$/,o={properties:{swagger:{type:"string"},info:"Info",host:{type:"string"},basePath:{type:"string"},schemes:{type:"array",items:{type:"string"}},consumes:{type:"array",items:{type:"string"}},produces:{type:"array",items:{type:"string"}},paths:"PathMap",definitions:"NamedSchemas",parameters:"NamedParameters",responses:"NamedResponses",securityDefinitions:"NamedSecuritySchemes",security:r.listOf("SecurityRequirement"),tags:r.listOf("Tag"),externalDocs:"ExternalDocs"},required:["swagger","paths","info"]},a={properties:{},additionalProperties:(e,t)=>t.startsWith("/")?"PathItem":void 0},s={properties:{$ref:{type:"string"},parameters:r.listOf("Parameter"),get:"Operation",put:"Operation",post:"Operation",delete:"Operation",options:"Operation",head:"Operation",patch:"Operation"}},u={properties:{tags:{type:"array",items:{type:"string"}},summary:{type:"string"},description:{type:"string"},externalDocs:"ExternalDocs",operationId:{type:"string"},consumes:{type:"array",items:{type:"string"}},produces:{type:"array",items:{type:"string"}},parameters:r.listOf("Parameter"),responses:"ResponsesMap",schemes:{type:"array",items:{type:"string"}},deprecated:{type:"boolean"},security:r.listOf("SecurityRequirement"),"x-codeSamples":r.listOf("XCodeSample"),"x-code-samples":r.listOf("XCodeSample")},required:["responses"]},l={properties:{name:{type:"string"},in:{type:"string",enum:["query","header","path","formData","body"]},description:{type:"string"},required:{type:"boolean"},schema:"Schema",type:{type:"string",enum:["string","number","integer","boolean","array","file"]},format:{type:"string"},allowEmptyValue:{type:"boolean"},items:"ParameterItems",collectionFormat:{type:"string",enum:["csv","ssv","tsv","pipes","multi"]},default:null,maximum:{type:"integer"},exclusiveMaximum:{type:"boolean"},minimum:{type:"integer"},exclusiveMinimum:{type:"boolean"},maxLength:{type:"integer"},minLength:{type:"integer"},pattern:{type:"string"},maxItems:{type:"integer"},minItems:{type:"integer"},uniqueItems:{type:"boolean"},enum:{type:"array"},multipleOf:{type:"number"}},required:e=>e&&e.in?"body"===e.in?["name","in","schema"]:"array"===e.type?["name","in","type","items"]:["name","in","type"]:["name","in"]},c={properties:{type:{type:"string",enum:["string","number","integer","boolean","array"]},format:{type:"string"},items:"ParameterItems",collectionFormat:{type:"string",enum:["csv","ssv","tsv","pipes","multi"]},default:null,maximum:{type:"integer"},exclusiveMaximum:{type:"boolean"},minimum:{type:"integer"},exclusiveMinimum:{type:"boolean"},maxLength:{type:"integer"},minLength:{type:"integer"},pattern:{type:"string"},maxItems:{type:"integer"},minItems:{type:"integer"},uniqueItems:{type:"boolean"},enum:{type:"array"},multipleOf:{type:"number"}},required:e=>e&&"array"===e.type?["type","items"]:["type"]},f={properties:{default:"Response"},additionalProperties:(e,t)=>i.test(t)?"Response":void 0},p={properties:{description:{type:"string"},schema:"Schema",headers:r.mapOf("Header"),examples:"Examples"},required:["description"]},d={properties:{description:{type:"string"},type:{type:"string",enum:["string","number","integer","boolean","array"]},format:{type:"string"},items:"ParameterItems",collectionFormat:{type:"string",enum:["csv","ssv","tsv","pipes","multi"]},default:null,maximum:{type:"integer"},exclusiveMaximum:{type:"boolean"},minimum:{type:"integer"},exclusiveMinimum:{type:"boolean"},maxLength:{type:"integer"},minLength:{type:"integer"},pattern:{type:"string"},maxItems:{type:"integer"},minItems:{type:"integer"},uniqueItems:{type:"boolean"},enum:{type:"array"},multipleOf:{type:"number"}},required:e=>e&&"array"===e.type?["type","items"]:["type"]},h={properties:{format:{type:"string"},title:{type:"string"},description:{type:"string"},default:null,multipleOf:{type:"number"},maximum:{type:"number"},minimum:{type:"number"},exclusiveMaximum:{type:"boolean"},exclusiveMinimum:{type:"boolean"},maxLength:{type:"number"},minLength:{type:"number"},pattern:{type:"string"},maxItems:{type:"number"},minItems:{type:"number"},uniqueItems:{type:"boolean"},maxProperties:{type:"number"},minProperties:{type:"number"},required:{type:"array",items:{type:"string"}},enum:{type:"array"},type:{type:"string",enum:["object","array","string","number","integer","boolean","null"]},items:e=>Array.isArray(e)?r.listOf("Schema"):"Schema",allOf:r.listOf("Schema"),properties:"SchemaProperties",additionalProperties:e=>"boolean"===typeof e?{type:"boolean"}:"Schema",discriminator:{type:"string"},readOnly:{type:"boolean"},xml:"Xml",externalDocs:"ExternalDocs",example:{isExample:!0}}},g={properties:{type:{enum:["basic","apiKey","oauth2"]},description:{type:"string"},name:{type:"string"},in:{type:"string",enum:["query","header"]},flow:{enum:["implicit","password","application","accessCode"]},authorizationUrl:{type:"string"},tokenUrl:{type:"string"},scopes:{type:"object",additionalProperties:{type:"string"}}},required(e){switch(null===e||void 0===e?void 0:e.type){case"apiKey":return["type","name","in"];case"oauth2":switch(null===e||void 0===e?void 0:e.flow){case"implicit":return["type","flow","authorizationUrl","scopes"];case"accessCode":return["type","flow","authorizationUrl","tokenUrl","scopes"];case"application":case"password":return["type","flow","tokenUrl","scopes"];default:return["type","flow","scopes"]}default:return["type"]}},allowed(e){switch(null===e||void 0===e?void 0:e.type){case"basic":return["type","description"];case"apiKey":return["type","name","in","description"];case"oauth2":switch(null===e||void 0===e?void 0:e.flow){case"implicit":return["type","flow","authorizationUrl","description","scopes"];case"accessCode":return["type","flow","authorizationUrl","tokenUrl","description","scopes"];case"application":case"password":return["type","flow","tokenUrl","description","scopes"];default:return["type","flow","tokenUrl","authorizationUrl","description","scopes"]}default:return["type","description"]}},extensionsPrefix:"x-"};t.Oas2Types={DefinitionRoot:o,Tag:{properties:{name:{type:"string"},description:{type:"string"},externalDocs:"ExternalDocs"},required:["name"]},ExternalDocs:{properties:{description:{type:"string"},url:{type:"string"}},required:["url"]},SecurityRequirement:{properties:{},additionalProperties:{type:"array",items:{type:"string"}}},Info:{properties:{title:{type:"string"},description:{type:"string"},termsOfService:{type:"string"},contact:"Contact",license:"License",version:{type:"string"}},required:["title","version"]},Contact:{properties:{name:{type:"string"},url:{type:"string"},email:{type:"string"}}},License:{properties:{name:{type:"string"},url:{type:"string"}},required:["name"]},PathMap:a,PathItem:s,Parameter:l,ParameterItems:c,Operation:u,Examples:{properties:{},additionalProperties:{isExample:!0}},Header:d,ResponsesMap:f,Response:p,Schema:h,Xml:{properties:{name:{type:"string"},namespace:{type:"string"},prefix:{type:"string"},attribute:{type:"boolean"},wrapped:{type:"boolean"}}},SchemaProperties:{properties:{},additionalProperties:"Schema"},NamedSchemas:r.mapOf("Schema"),NamedResponses:r.mapOf("Response"),NamedParameters:r.mapOf("Parameter"),NamedSecuritySchemes:r.mapOf("SecurityScheme"),SecurityScheme:g,XCodeSample:{properties:{lang:{type:"string"},label:{type:"string"},source:{type:"string"}}}}},5241:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Oas3Types=void 0;const r=n(5220),i=n(7468),o=/^[0-9][0-9Xx]{2}$/,a={properties:{openapi:null,info:"Info",servers:r.listOf("Server"),security:r.listOf("SecurityRequirement"),tags:r.listOf("Tag"),externalDocs:"ExternalDocs",paths:"PathMap",components:"Components","x-webhooks":"WebhooksMap"},required:["openapi","paths","info"]},s={properties:{url:{type:"string"},description:{type:"string"},variables:r.mapOf("ServerVariable")},required:["url"]},u={properties:{},additionalProperties:(e,t)=>t.startsWith("/")?"PathItem":void 0},l={properties:{$ref:{type:"string"},servers:r.listOf("Server"),parameters:r.listOf("Parameter"),summary:{type:"string"},description:{type:"string"},get:"Operation",put:"Operation",post:"Operation",delete:"Operation",options:"Operation",head:"Operation",patch:"Operation",trace:"Operation"}},c={properties:{name:{type:"string"},in:{enum:["query","header","path","cookie"]},description:{type:"string"},required:{type:"boolean"},deprecated:{type:"boolean"},allowEmptyValue:{type:"boolean"},style:{enum:["form","simple","label","matrix","spaceDelimited","pipeDelimited","deepObject"]},explode:{type:"boolean"},allowReserved:{type:"boolean"},schema:"Schema",example:{isExample:!0},examples:r.mapOf("Example"),content:"MediaTypeMap"},required:["name","in"],requiredOneOf:["schema","content"]},f={properties:{tags:{type:"array",items:{type:"string"}},summary:{type:"string"},description:{type:"string"},externalDocs:"ExternalDocs",operationId:{type:"string"},parameters:r.listOf("Parameter"),security:r.listOf("SecurityRequirement"),servers:r.listOf("Server"),requestBody:"RequestBody",responses:"ResponsesMap",deprecated:{type:"boolean"},callbacks:r.mapOf("Callback"),"x-codeSamples":r.listOf("XCodeSample"),"x-code-samples":r.listOf("XCodeSample")},required:["responses"]},p={properties:{schema:"Schema",example:{isExample:!0},examples:r.mapOf("Example"),encoding:r.mapOf("Encoding")}},d={properties:{contentType:{type:"string"},headers:r.mapOf("Header"),style:{enum:["form","simple","label","matrix","spaceDelimited","pipeDelimited","deepObject"]},explode:{type:"boolean"},allowReserved:{type:"boolean"}}},h={properties:{description:{type:"string"},required:{type:"boolean"},deprecated:{type:"boolean"},allowEmptyValue:{type:"boolean"},style:{enum:["form","simple","label","matrix","spaceDelimited","pipeDelimited","deepObject"]},explode:{type:"boolean"},allowReserved:{type:"boolean"},schema:"Schema",example:{isExample:!0},examples:r.mapOf("Example"),content:"MediaTypeMap"}},g={properties:{default:"Response"},additionalProperties:(e,t)=>o.test(t)?"Response":void 0},m={properties:{description:{type:"string"},headers:r.mapOf("Header"),content:"MediaTypeMap",links:r.mapOf("Link")},required:["description"]},y={properties:{externalDocs:"ExternalDocs",discriminator:"Discriminator",title:{type:"string"},multipleOf:{type:"number",minimum:0},maximum:{type:"number"},minimum:{type:"number"},exclusiveMaximum:{type:"boolean"},exclusiveMinimum:{type:"boolean"},maxLength:{type:"number",minimum:0},minLength:{type:"number",minimum:0},pattern:{type:"string"},maxItems:{type:"number",minimum:0},minItems:{type:"number",minimum:0},uniqueItems:{type:"boolean"},maxProperties:{type:"number",minimum:0},minProperties:{type:"number",minimum:0},required:{type:"array",items:{type:"string"}},enum:{type:"array"},type:{enum:["object","array","string","number","integer","boolean","null"]},allOf:r.listOf("Schema"),anyOf:r.listOf("Schema"),oneOf:r.listOf("Schema"),not:"Schema",properties:"SchemaProperties",items:e=>Array.isArray(e)?r.listOf("Schema"):"Schema",additionalProperties:e=>"boolean"===typeof e?{type:"boolean"}:"Schema",description:{type:"string"},format:{type:"string"},default:null,nullable:{type:"boolean"},readOnly:{type:"boolean"},writeOnly:{type:"boolean"},xml:"Xml",example:{isExample:!0},deprecated:{type:"boolean"}}},v={properties:{},additionalProperties:e=>i.isMappingRef(e)?{type:"string",directResolveAs:"Schema"}:{type:"string"}},b={properties:{type:{enum:["apiKey","http","oauth2","openIdConnect"]},description:{type:"string"},name:{type:"string"},in:{type:"string",enum:["query","header","cookie"]},scheme:{type:"string"},bearerFormat:{type:"string"},flows:"SecuritySchemeFlows",openIdConnectUrl:{type:"string"}},required(e){switch(null===e||void 0===e?void 0:e.type){case"apiKey":return["type","name","in"];case"http":return["type","scheme"];case"oauth2":return["type","flows"];case"openIdConnect":return["type","openIdConnectUrl"];default:return["type"]}},allowed(e){switch(null===e||void 0===e?void 0:e.type){case"apiKey":return["type","name","in","description"];case"http":return["type","scheme","bearerFormat","description"];case"oauth2":return["type","flows","description"];case"openIdConnect":return["type","openIdConnectUrl","description"];default:return["type","description"]}},extensionsPrefix:"x-"};t.Oas3Types={DefinitionRoot:a,Tag:{properties:{name:{type:"string"},description:{type:"string"},externalDocs:"ExternalDocs"},required:["name"]},ExternalDocs:{properties:{description:{type:"string"},url:{type:"string"}},required:["url"]},Server:s,ServerVariable:{properties:{enum:{type:"array",items:{type:"string"}},default:{type:"string"},description:null},required:["default"]},SecurityRequirement:{properties:{},additionalProperties:{type:"array",items:{type:"string"}}},Info:{properties:{title:{type:"string"},version:{type:"string"},description:{type:"string"},termsOfService:{type:"string"},contact:"Contact",license:"License"},required:["title","version"]},Contact:{properties:{name:{type:"string"},url:{type:"string"},email:{type:"string"}}},License:{properties:{name:{type:"string"},url:{type:"string"}},required:["name"]},PathMap:u,PathItem:l,Parameter:c,Operation:f,Callback:{properties:{},additionalProperties:"PathItem"},RequestBody:{properties:{description:{type:"string"},required:{type:"boolean"},content:"MediaTypeMap"},required:["content"]},MediaTypeMap:{properties:{},additionalProperties:"MediaType"},MediaType:p,Example:{properties:{value:{isExample:!0},summary:{type:"string"},description:{type:"string"},externalValue:{type:"string"}}},Encoding:d,Header:h,ResponsesMap:g,Response:m,Link:{properties:{operationRef:{type:"string"},operationId:{type:"string"},parameters:null,requestBody:null,description:{type:"string"},server:"Server"}},Schema:y,Xml:{properties:{name:{type:"string"},namespace:{type:"string"},prefix:{type:"string"},attribute:{type:"boolean"},wrapped:{type:"boolean"}}},SchemaProperties:{properties:{},additionalProperties:"Schema"},DiscriminatorMapping:v,Discriminator:{properties:{propertyName:{type:"string"},mapping:"DiscriminatorMapping"},required:["propertyName"]},Components:{properties:{parameters:"NamedParameters",schemas:"NamedSchemas",responses:"NamedResponses",examples:"NamedExamples",requestBodies:"NamedRequestBodies",headers:"NamedHeaders",securitySchemes:"NamedSecuritySchemes",links:"NamedLinks",callbacks:"NamedCallbacks"}},NamedSchemas:r.mapOf("Schema"),NamedResponses:r.mapOf("Response"),NamedParameters:r.mapOf("Parameter"),NamedExamples:r.mapOf("Example"),NamedRequestBodies:r.mapOf("RequestBody"),NamedHeaders:r.mapOf("Header"),NamedSecuritySchemes:r.mapOf("SecurityScheme"),NamedLinks:r.mapOf("Link"),NamedCallbacks:r.mapOf("PathItem"),ImplicitFlow:{properties:{refreshUrl:{type:"string"},scopes:{type:"object",additionalProperties:{type:"string"}},authorizationUrl:{type:"string"}},required:["authorizationUrl","scopes"]},PasswordFlow:{properties:{refreshUrl:{type:"string"},scopes:{type:"object",additionalProperties:{type:"string"}},tokenUrl:{type:"string"}},required:["tokenUrl","scopes"]},ClientCredentials:{properties:{refreshUrl:{type:"string"},scopes:{type:"object",additionalProperties:{type:"string"}},tokenUrl:{type:"string"}},required:["tokenUrl","scopes"]},AuthorizationCode:{properties:{refreshUrl:{type:"string"},authorizationUrl:{type:"string"},scopes:{type:"object",additionalProperties:{type:"string"}},tokenUrl:{type:"string"}},required:["authorizationUrl","tokenUrl","scopes"]},SecuritySchemeFlows:{properties:{implicit:"ImplicitFlow",password:"PasswordFlow",clientCredentials:"ClientCredentials",authorizationCode:"AuthorizationCode"}},SecurityScheme:b,XCodeSample:{properties:{lang:{type:"string"},label:{type:"string"},source:{type:"string"}}},WebhooksMap:{properties:{},additionalProperties:()=>"PathItem"}}},2608:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Oas3_1Types=void 0;const r=n(5220),i=n(5241),o={properties:{openapi:null,info:"Info",servers:r.listOf("Server"),security:r.listOf("SecurityRequirement"),tags:r.listOf("Tag"),externalDocs:"ExternalDocs",paths:"PathMap",webhooks:"WebhooksMap",components:"Components",jsonSchemaDialect:{type:"string"}},required:["openapi","info"],requiredOneOf:["paths","components","webhooks"]},a={properties:{tags:{type:"array",items:{type:"string"}},summary:{type:"string"},description:{type:"string"},externalDocs:"ExternalDocs",operationId:{type:"string"},parameters:r.listOf("Parameter"),security:r.listOf("SecurityRequirement"),servers:r.listOf("Server"),requestBody:"RequestBody",responses:"ResponsesMap",deprecated:{type:"boolean"},callbacks:r.mapOf("Callback"),"x-codeSamples":r.listOf("XCodeSample"),"x-code-samples":r.listOf("XCodeSample")}},s={properties:{$id:{type:"string"},id:{type:"string"},$schema:{type:"string"},definitions:"NamedSchemas",$defs:"NamedSchemas",$vocabulary:{type:"string"},externalDocs:"ExternalDocs",discriminator:"Discriminator",myArbitraryKeyword:{type:"boolean"},title:{type:"string"},multipleOf:{type:"number"},maximum:{type:"number"},minimum:{type:"number"},exclusiveMaximum:{type:"number"},exclusiveMinimum:{type:"number"},maxLength:{type:"number"},minLength:{type:"number"},pattern:{type:"string"},maxItems:{type:"number"},minItems:{type:"number"},uniqueItems:{type:"boolean"},maxProperties:{type:"number"},minProperties:{type:"number"},required:{type:"array",items:{type:"string"}},enum:{type:"array"},type:e=>Array.isArray(e)?{type:"array",items:{enum:["object","array","string","number","integer","boolean","null"]}}:{enum:["object","array","string","number","integer","boolean","null"]},allOf:r.listOf("Schema"),anyOf:r.listOf("Schema"),oneOf:r.listOf("Schema"),not:"Schema",if:"Schema",then:"Schema",else:"Schema",dependentSchemas:r.listOf("Schema"),prefixItems:r.listOf("Schema"),contains:"Schema",patternProperties:{type:"object"},propertyNames:"Schema",unevaluatedItems:"Schema",unevaluatedProperties:e=>"boolean"===typeof e?{type:"boolean"}:"Schema",summary:{type:"string"},properties:"SchemaProperties",items:e=>Array.isArray(e)?r.listOf("Schema"):"boolean"===typeof e?{type:"boolean"}:"Schema",additionalProperties:e=>"boolean"===typeof e?{type:"boolean"}:"Schema",description:{type:"string"},format:{type:"string"},contentEncoding:{type:"string"},contentMediaType:{type:"string"},default:null,readOnly:{type:"boolean"},writeOnly:{type:"boolean"},xml:"Xml",examples:{type:"array"},example:{isExample:!0},deprecated:{type:"boolean"},const:null,$comment:{type:"string"}}},u={properties:{type:{enum:["apiKey","http","oauth2","openIdConnect","mutualTLS"]},description:{type:"string"},name:{type:"string"},in:{type:"string",enum:["query","header","cookie"]},scheme:{type:"string"},bearerFormat:{type:"string"},flows:"SecuritySchemeFlows",openIdConnectUrl:{type:"string"}},required(e){switch(null===e||void 0===e?void 0:e.type){case"apiKey":return["type","name","in"];case"http":return["type","scheme"];case"oauth2":return["type","flows"];case"openIdConnect":return["type","openIdConnectUrl"];default:return["type"]}},allowed(e){switch(null===e||void 0===e?void 0:e.type){case"apiKey":return["type","name","in","description"];case"http":return["type","scheme","bearerFormat","description"];case"oauth2":switch(null===e||void 0===e?void 0:e.flows){case"implicit":return["type","flows","authorizationUrl","refreshUrl","description","scopes"];case"password":case"clientCredentials":return["type","flows","tokenUrl","refreshUrl","description","scopes"];default:return["type","flows","authorizationUrl","refreshUrl","tokenUrl","description","scopes"]}case"openIdConnect":return["type","openIdConnectUrl","description"];default:return["type","description"]}},extensionsPrefix:"x-"};t.Oas3_1Types=Object.assign(Object.assign({},i.Oas3Types),{Info:{properties:{title:{type:"string"},version:{type:"string"},description:{type:"string"},termsOfService:{type:"string"},summary:{type:"string"},contact:"Contact",license:"License"},required:["title","version"]},DefinitionRoot:o,Schema:s,License:{properties:{name:{type:"string"},url:{type:"string"},identifier:{type:"string"}},required:["name"]},Components:{properties:{parameters:"NamedParameters",schemas:"NamedSchemas",responses:"NamedResponses",examples:"NamedExamples",requestBodies:"NamedRequestBodies",headers:"NamedHeaders",securitySchemes:"NamedSecuritySchemes",links:"NamedLinks",callbacks:"NamedCallbacks",pathItems:"NamedPathItems"}},NamedPathItems:r.mapOf("PathItem"),SecurityScheme:u,Operation:a})},771:function(e,t,n){"use strict";var r=n(3454),i=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{u(r.next(e))}catch(t){o(t)}}function s(e){try{u(r.throw(e))}catch(t){o(t)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}u((r=r.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:!0}),t.assignExisting=t.isNotString=t.isString=t.isNotEmptyObject=t.slash=t.isPathParameter=t.readFileAsStringSync=t.isSingular=t.validateMimeTypeOAS3=t.validateMimeType=t.splitCamelCaseIntoWords=t.omitObjectProps=t.pickObjectProps=t.match=t.readFileFromUrl=t.isEmptyArray=t.isEmptyObject=t.isPlainObject=t.notUndefined=t.loadYaml=t.popStack=t.pushStack=t.stringifyYaml=t.parseYaml=void 0;const o=n(3197),a=n(1171),s=n(996),u=n(3450),l=n(5273);var c=n(5273);function f(e){return null!==e&&"object"===typeof e&&!Array.isArray(e)}function p(e,t){return t.match(/^https?:\/\//)||(e=e.replace(/^https?:\/\//,"")),a(e,t)}function d(e){return"string"===typeof e}Object.defineProperty(t,"parseYaml",{enumerable:!0,get:function(){return c.parseYaml}}),Object.defineProperty(t,"stringifyYaml",{enumerable:!0,get:function(){return c.stringifyYaml}}),t.pushStack=function(e,t){return{prev:e,value:t}},t.popStack=function(e){var t;return null!==(t=null===e||void 0===e?void 0:e.prev)&&void 0!==t?t:null},t.loadYaml=function(e){return i(this,void 0,void 0,(function*(){const t=yield o.promises.readFile(e,"utf-8");return l.parseYaml(t)}))},t.notUndefined=function(e){return void 0!==e},t.isPlainObject=f,t.isEmptyObject=function(e){return f(e)&&0===Object.keys(e).length},t.isEmptyArray=function(e){return Array.isArray(e)&&0===e.length},t.readFileFromUrl=function(e,t){return i(this,void 0,void 0,(function*(){const n={};for(const o of t.headers)p(e,o.matches)&&(n[o.name]=void 0!==o.envVariable?r.env[o.envVariable]||"":o.value);const i=yield(t.customFetch||s.default)(e,{headers:n});if(!i.ok)throw new Error(`Failed to load ${e}: ${i.status} ${i.statusText}`);return{body:yield i.text(),mimeType:i.headers.get("content-type")}}))},t.match=p,t.pickObjectProps=function(e,t){return Object.fromEntries(t.filter((t=>t in e)).map((t=>[t,e[t]])))},t.omitObjectProps=function(e,t){return Object.fromEntries(Object.entries(e).filter((([e])=>!t.includes(e))))},t.splitCamelCaseIntoWords=function(e){const t=e.split(/(?:[-._])|([A-Z][a-z]+)/).filter(Boolean).map((e=>e.toLocaleLowerCase())),n=e.split(/([A-Z]{2,})/).filter((e=>e&&e===e.toUpperCase())).map((e=>e.toLocaleLowerCase()));return new Set([...t,...n])},t.validateMimeType=function({type:e,value:t},{report:n,location:r},i){if(!i)throw new Error(`Parameter "allowedValues" is not provided for "${"consumes"===e?"request":"response"}-mime-type" rule`);if(t[e])for(const o of t[e])i.includes(o)||n({message:`Mime type "${o}" is not allowed`,location:r.child(t[e].indexOf(o)).key()})},t.validateMimeTypeOAS3=function({type:e,value:t},{report:n,location:r},i){if(!i)throw new Error(`Parameter "allowedValues" is not provided for "${"consumes"===e?"request":"response"}-mime-type" rule`);if(t.content)for(const o of Object.keys(t.content))i.includes(o)||n({message:`Mime type "${o}" is not allowed`,location:r.child("content").child(o).key()})},t.isSingular=function(e){return u.isSingular(e)},t.readFileAsStringSync=function(e){return o.readFileSync(e,"utf-8")},t.isPathParameter=function(e){return e.startsWith("{")&&e.endsWith("}")},t.slash=function(e){return/^\\\\\?\\/.test(e)?e:e.replace(/\\/g,"/")},t.isNotEmptyObject=function(e){return!!e&&Object.keys(e).length>0},t.isString=d,t.isNotString=function(e){return!d(e)},t.assignExisting=function(e,t){for(let n of Object.keys(t))e.hasOwnProperty(n)&&(e[n]=t[n])}},8065:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.normalizeVisitors=void 0,t.normalizeVisitors=function(e,t){const n={any:{enter:[],leave:[]}};for(const o of Object.keys(t))n[o]={enter:[],leave:[]};n.ref={enter:[],leave:[]};for(const{ruleId:o,severity:a,visitor:s}of e)i({ruleId:o,severity:a},s,null);for(const o of Object.keys(n))n[o].enter.sort(((e,t)=>t.depth-e.depth)),n[o].leave.sort(((e,t)=>e.depth-t.depth));return n;function r(e,t,i,o,a=[]){if(a.includes(t))return;a=[...a,t];const s=new Set;for(let n of Object.values(t.properties))n!==i?"object"===typeof n&&null!==n&&n.name&&s.add(n):u(e,a);t.additionalProperties&&"function"!==typeof t.additionalProperties&&(t.additionalProperties===i?u(e,a):void 0!==t.additionalProperties.name&&s.add(t.additionalProperties)),t.items&&(t.items===i?u(e,a):void 0!==t.items.name&&s.add(t.items));for(let n of Array.from(s.values()))r(e,n,i,o,a);function u(e,t){for(const r of t.slice(1))n[r.name]=n[r.name]||{enter:[],leave:[]},n[r.name].enter.push(Object.assign(Object.assign({},e),{visit:()=>{},depth:0,context:{isSkippedLevel:!0,seen:new Set,parent:o}}))}}function i(e,o,a,s=0){const u=Object.keys(t);if(0===s)u.push("any"),u.push("ref");else{if(o.any)throw new Error("any() is allowed only on top level");if(o.ref)throw new Error("ref() is allowed only on top level")}for(const l of u){const u=o[l],c=n[l];if(!u)continue;let f,p,d;const h="object"===typeof u;if("ref"===l&&h&&u.skip)throw new Error("ref() visitor does not support skip");"function"===typeof u?f=u:h&&(f=u.enter,p=u.leave,d=u.skip);const g={activatedOn:null,type:t[l],parent:a,isSkippedLevel:!1};if("object"===typeof u&&i(e,u,g,s+1),a&&r(e,a.type,t[l],a),f||h){if(f&&"function"!==typeof f)throw new Error("DEV: should be function");c.enter.push(Object.assign(Object.assign({},e),{visit:f||(()=>{}),skip:d,depth:s,context:g}))}if(p){if("function"!==typeof p)throw new Error("DEV: should be function");c.leave.push(Object.assign(Object.assign({},e),{visit:p,depth:s,context:g}))}}}}},9443:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.walkDocument=void 0;const r=n(7468),i=n(4182),o=n(771),a=n(5220);function s(e){var t,n;const r={};for(;e.parent;)(null===(t=e.parent.activatedOn)||void 0===t?void 0:t.value.location)&&(r[e.parent.type.name]=null===(n=e.parent.activatedOn)||void 0===n?void 0:n.value.location),e=e.parent;return r}t.walkDocument=function(e){const{document:t,rootType:n,normalizedVisitors:u,resolvedRefMap:l,ctx:c}=e,f={},p=new Set;!function e(t,n,d,h,g){var m,y,v,b,w,x,k,E,A,S,O;let D=d;const{node:C,location:T,error:R}=P(t),_=new Set;if(r.isRef(t)){const e=u.ref.enter;for(const{visit:r,ruleId:i,severity:o,context:a}of e)if(!p.has(t)){_.add(a);const e=F.bind(void 0,i,o);r(t,{report:e,resolve:P,location:d,type:n,parent:h,key:g,parentLocations:{},oasVersion:c.oasVersion,getVisitorData:N.bind(void 0,i)},{node:C,location:T,error:R}),(null===T||void 0===T?void 0:T.source.absoluteRef)&&c.refTypes&&c.refTypes.set(null===T||void 0===T?void 0:T.source.absoluteRef,n)}}if(void 0!==C&&T&&"scalar"!==n.name){D=T;const i=null===(y=null===(m=f[n.name])||void 0===m?void 0:m.has)||void 0===y?void 0:y.call(m,C);let s=!1;const l=u.any.enter.concat((null===(v=u[n.name])||void 0===v?void 0:v.enter)||[]),c=[];for(const{context:e,visit:r,skip:a,ruleId:u,severity:f}of l)if(e.isSkippedLevel)!e.parent.activatedOn||e.parent.activatedOn.value.nextLevelTypeActivated||e.seen.has(t)||(e.seen.add(t),s=!0,c.push(e));else if(e.parent&&e.parent.activatedOn&&(null===(b=e.activatedOn)||void 0===b?void 0:b.value.withParentNode)!==e.parent.activatedOn.value.node&&(null===(w=e.parent.activatedOn.value.nextLevelTypeActivated)||void 0===w?void 0:w.value)!==n||!e.parent&&!i){c.push(e);const t={node:C,location:T,nextLevelTypeActivated:null,withParentNode:null===(k=null===(x=e.parent)||void 0===x?void 0:x.activatedOn)||void 0===k?void 0:k.value.node,skipped:null!==(S=(null===(A=null===(E=e.parent)||void 0===E?void 0:E.activatedOn)||void 0===A?void 0:A.value.skipped)||(null===a||void 0===a?void 0:a(C,g)))&&void 0!==S&&S};e.activatedOn=o.pushStack(e.activatedOn,t);let i=e.parent;for(;i;)i.activatedOn.value.nextLevelTypeActivated=o.pushStack(i.activatedOn.value.nextLevelTypeActivated,n),i=i.parent;if(!t.skipped){s=!0,_.add(e);const{ignoreNextVisitorsOnNode:t}=I(r,C,e,u,f);if(t)break}}if(s||!i)if(f[n.name]=f[n.name]||new Set,f[n.name].add(C),Array.isArray(C)){const t=n.items;if(void 0!==t)for(let n=0;n!i.includes(e)))),r.isRef(t)&&i.push(...Object.keys(t).filter((e=>"$ref"!==e&&!i.includes(e))));for(const o of i){let i=C[o],s=T;void 0===i&&(i=t[o],s=d);let u=n.properties[o];void 0===u&&(u=n.additionalProperties),"function"===typeof u&&(u=u(i,o)),!a.isNamedType(u)&&(null===u||void 0===u?void 0:u.directResolveAs)&&(u=u.directResolveAs,i={$ref:i}),u&&void 0===u.name&&!1!==u.resolvable&&(u={name:"scalar",properties:{}}),a.isNamedType(u)&&("scalar"!==u.name||r.isRef(i))&&e(i,u,s.child([o]),C,o)}}const p=u.any.leave,h=((null===(O=u[n.name])||void 0===O?void 0:O.leave)||[]).concat(p);for(const e of c.reverse())if(e.isSkippedLevel)e.seen.delete(C);else if(e.activatedOn=o.popStack(e.activatedOn),e.parent){let t=e.parent;for(;t;)t.activatedOn.value.nextLevelTypeActivated=o.popStack(t.activatedOn.value.nextLevelTypeActivated),t=t.parent}for(const{context:e,visit:t,ruleId:n,severity:r}of h)!e.isSkippedLevel&&_.has(e)&&I(t,C,e,n,r)}if(D=d,r.isRef(t)){const e=u.ref.leave;for(const{visit:r,ruleId:i,severity:o,context:a}of e)if(_.has(a)){const e=F.bind(void 0,i,o);r(t,{report:e,resolve:P,location:d,type:n,parent:h,key:g,parentLocations:{},oasVersion:c.oasVersion,getVisitorData:N.bind(void 0,i)},{node:C,location:T,error:R})}}function I(e,t,r,i,o){const a=F.bind(void 0,i,o);let u=!1;return e(t,{report:a,resolve:P,location:D,type:n,parent:h,key:g,parentLocations:s(r),oasVersion:c.oasVersion,ignoreNextVisitorsOnNode:()=>{u=!0},getVisitorData:N.bind(void 0,i)},function(e){var t;const n={};for(;e.parent;)n[e.parent.type.name]=null===(t=e.parent.activatedOn)||void 0===t?void 0:t.value.node,e=e.parent;return n}(r),r),{ignoreNextVisitorsOnNode:u}}function P(e,t=D.source.absoluteRef){if(!r.isRef(e))return{location:d,node:e};const n=i.makeRefId(t,e.$ref),o=l.get(n);if(!o)return{location:void 0,node:void 0};const{resolved:a,node:s,document:u,nodePointer:c,error:f}=o;return{location:a?new r.Location(u.source,c):f instanceof i.YamlParseError?new r.Location(f.source,""):void 0,node:s,error:f}}function F(e,t,n){const r=n.location?Array.isArray(n.location)?n.location:[n.location]:[Object.assign(Object.assign({},D),{reportOnKey:!1})];c.problems.push(Object.assign(Object.assign({ruleId:n.ruleId||e,severity:n.forceSeverity||t},n),{suggest:n.suggest||[],location:r.map((e=>Object.assign(Object.assign(Object.assign({},D),{reportOnKey:!1}),e)))}))}function N(e){return c.visitorsData[e]=c.visitorsData[e]||{},c.visitorsData[e]}}(t.parsed,n,new r.Location(t.source,"#/"),void 0,"")}},6396:function(e,t,n){"use strict";n.r(t),n.d(t,{StyleKeys:function(){return r}});var r,i,o,a=n(7294),s=n(3391),u=function(){return(u=Object.assign||function(e){for(var t,n=1,r=arguments.length;n=0&&n.push(s)}else a.value.toLowerCase().includes(r)&&n.push(a)}return n}(t,i):t}),[t,i]),u=(0,a.useCallback)((function(t,n){void 0===n&&(n=!0),o(t),n&&e(0)}),[e,o]);return{searchTerm:i,setSearchTerm:u,filteredOptions:s}},W=function(e,t){var n=e.options,r=e.searchable,i=e.onChange,o=e.disabled,s=e.ariaDescribedBy,u=e.ariaLabel,l=e.ariaLabelledBy,c=e.value,f=e.defaultOpen,p=(0,a.useState)(0),d=p[0],h=p[1],g=(0,a.useState)(f),m=g[0],y=g[1],v=(0,a.useRef)(null),w=(0,a.useRef)(null),x=(0,a.useRef)(null),k=(0,a.useState)(!1),E=k[0],A=k[1],S=U(h,n,r),O=S.searchTerm,D=S.setSearchTerm,C=S.filteredOptions,T=(0,a.useMemo)((function(){return C.reduce(b,[])}),[C]),R=(0,a.useMemo)((function(){return T.map((function(e){return e.value})).indexOf(c)}),[T,c]),_=(0,a.useCallback)((function(e){void 0===e&&(e=!1),D("",!1),y(!1),e&&w.current&&w.current.focus()}),[w.current,D,y]),I=(0,a.useCallback)((function(){h(R>0?R:0),y(!0)}),[y,h,R]),P=(0,a.useCallback)((function(e,t){void 0===t&&(t=!1),e&&(i(e),D("",!1)),t&&_(!0)}),[i,_,D]);!function(e,t){var n=function(n){t.current&&!t.current.contains(n.target)&&e()};(0,a.useEffect)((function(){return document.addEventListener("mouseup",n,!1),document.addEventListener("touchend",n,!1),function(){document.removeEventListener("mouseup",n),document.removeEventListener("touchend",n)}}),[])}(_,v),function(e,t){(0,a.useEffect)((function(){if(t.current&&e>=0){var n=t.current.getElementsByClassName("dropdown-option"),r=n&&n.length?n[e]:null;if(r&&r.getBoundingClientRect){var i=r.getBoundingClientRect().height,o=t.current.getBoundingClientRect().height,a=t.current.scrollTop,s=r.offsetTop<=a;r.offsetTop>=a&&r.offsetTop+i<=a+o||(s?t.current.scrollTo({top:r.offsetTop}):t.current.scrollTo({top:r.offsetTop-o+i+8}))}}}),[e])}(d,x);var F=(0,a.useMemo)((function(){return{"aria-hidden":o,"aria-expanded":m,"aria-haspopup":"listbox","aria-activedescendant":t+"_list_"+d,"aria-controls":t+"_list","aria-label":u,"aria-labelledby":l,"aria-describedby":s}}),[o,m,t,d,u,l,s]);return{focusedIndex:d,setFocusedIndex:h,open:m,setOpen:y,searchTerm:O,setSearchTerm:D,dropdownFocused:E,setDropdownFocused:A,setValue:P,filteredOptions:C,openDropdown:I,closeDropdown:_,flattenedOptions:T,container:v,inputRef:w,listWrapper:x,ariaProps:F,ariaList:z(T,R,t)}},q=0,H=function(e){var t,n=e.arrowRenderer,r=e.contentClassName,o=e.className,s=e.disabled,c=e.hideArrow,f=e.id,p=e.optionItemRenderer,d=e.pageKeyTraverseSize,h=e.placeholder,g=e.searchable,m=e.value,y=e.selectedValueClassName,v=(0,a.useMemo)((function(){return t||(e=q,q+=1,"react_dropdown_aria_"+e);var e}),[t=f]),b=W(e,v),w=b.open,S=b.dropdownFocused,R=b.focusedIndex,_=b.setFocusedIndex,I=b.setDropdownFocused,P=b.setValue,F=b.openDropdown,N=b.closeDropdown,j=b.searchTerm,$=b.setSearchTerm,z=b.filteredOptions,U=b.flattenedOptions,H=b.container,Y=b.inputRef,V=b.listWrapper,Q=b.ariaProps,G=b.ariaList,X=(0,a.useCallback)((function(){Y.current&&Y.current.focus()}),[Y.current]),Z=(0,a.useCallback)((function(){X(),s||w&&g||(w?N(!0):F())}),[w,s,g,N,F]),K=(0,a.useCallback)((function(e){switch(e){case i.UP_ARROW:_((function(e){return 0===e?U.length-1:e-1}));break;case i.DOWN_ARROW:_((function(e){return(e+1)%U.length}));break;case i.PAGE_UP:_((function(e){return e-d<0&&0!==e?0:e-d<0?U.length-1:e-d}));break;case i.PAGE_DOWN:_((function(e){return e===U.length-1?0:e+d>U.length-1?U.length-1:(e+d)%U.length}));break;case i.ESCAPE:N(!0)}}),[_,U,d,N]),J=(0,a.useCallback)((function(e){var t=e.keyCode;-1!==l.indexOf(t)?(e.preventDefault(),e.stopPropagation(),K(t)):t!==i.ENTER&&(t!==i.SPACE||g)||w?t!==i.TAB||g?(t===i.TAB||t===i.ENTER)&&U.length>0&&R>=0&&w&&(e.stopPropagation(),e.preventDefault(),P(U[R],!0)):N():(e.preventDefault(),F())}),[U,P,R,w,K,F,g,N]),ee=(0,a.useCallback)((function(e){$(e.target.value)}),[$]),te=(0,a.useCallback)((function(){return I(!0)}),[I]),ne=(0,a.useCallback)((function(){return I(!1)}),[I]),re=(0,a.useMemo)((function(){if(c)return null;if(n)return(0,a.createElement)(C,{className:"dropdown-arrow"},n(w));var e=w&&g;return(0,a.createElement)(C,{className:"dropdown-arrow"},e&&(0,a.createElement)(B,null),!e&&(0,a.createElement)(L,null))}),[w,n,g,c]);return(0,a.createElement)(k,{ref:H,onFocus:X,onClick:Z,role:"button",width:e.width,height:e.height,disabled:s,open:w,dropdownFocused:S,className:x("dropdown",o)},(0,a.createElement)(E,{className:"dropdown-selector",open:w,searchable:e.searchable},(0,a.createElement)(A,{className:"dropdown-selector-search"},(0,a.createElement)("input",u({id:v,ref:Y,value:j,onChange:ee,onKeyDown:J,onFocus:te,onBlur:ne,readOnly:!w||!g,disabled:s,autoComplete:"off",role:"combobox"},Q))),!m&&!j&&(0,a.createElement)(D,{className:"dropdown-selector-placeholder",centerText:e.centerText},h),m&&!j&&(0,a.createElement)(O,{className:x("dropdown-selector-value",y),centerText:e.centerText,value:m,open:w},m),re),G,(0,a.createElement)(T,{maxContentHeight:e.maxContentHeight,openUp:e.openUp,open:w,className:x("dropdown-selector-content",r),ref:V},(0,a.createElement)(M,{selectedOption:m,options:z,focusedIndex:R,onOptionClicked:P,optionItemRenderer:p,empty:0===U.length})))};H.defaultProps={ariaDescribedBy:null,ariaLabel:null,ariaLabelledBy:null,arrowRenderer:void 0,centerText:!1,className:void 0,contentClassName:null,defaultOpen:!1,disabled:!1,height:null,hideArrow:!1,id:null,maxContentHeight:150,openUp:!1,optionItemRenderer:void 0,pageKeyTraverseSize:10,placeholder:"Select ...",searchable:!1,selectedValueClassName:null,style:{},value:void 0,width:null},t.default=H},5623:function(e){"use strict";function t(e,t,i){e instanceof RegExp&&(e=n(e,i)),t instanceof RegExp&&(t=n(t,i));var o=r(e,t,i);return o&&{start:o[0],end:o[1],pre:i.slice(0,o[0]),body:i.slice(o[0]+e.length,o[1]),post:i.slice(o[1]+t.length)}}function n(e,t){var n=t.match(e);return n?n[0]:null}function r(e,t,n){var r,i,o,a,s,u=n.indexOf(e),l=n.indexOf(t,u+1),c=u;if(u>=0&&l>0){if(e===t)return[u,l];for(r=[],o=n.length;c>=0&&!s;)c==u?(r.push(c),u=n.indexOf(e,c+1)):1==r.length?s=[r.pop(),l]:((i=r.pop())=0?u:l;r.length&&(s=[o,a])}return s}e.exports=t,t.range=r},9742:function(e,t){"use strict";t.byteLength=function(e){var t=u(e),n=t[0],r=t[1];return 3*(n+r)/4-r},t.toByteArray=function(e){var t,n,o=u(e),a=o[0],s=o[1],l=new i(function(e,t,n){return 3*(t+n)/4-n}(0,a,s)),c=0,f=s>0?a-4:a;for(n=0;n>16&255,l[c++]=t>>8&255,l[c++]=255&t;2===s&&(t=r[e.charCodeAt(n)]<<2|r[e.charCodeAt(n+1)]>>4,l[c++]=255&t);1===s&&(t=r[e.charCodeAt(n)]<<10|r[e.charCodeAt(n+1)]<<4|r[e.charCodeAt(n+2)]>>2,l[c++]=t>>8&255,l[c++]=255&t);return l},t.fromByteArray=function(e){for(var t,r=e.length,i=r%3,o=[],a=16383,s=0,u=r-i;su?u:s+a));1===i?(t=e[r-1],o.push(n[t>>2]+n[t<<4&63]+"==")):2===i&&(t=(e[r-2]<<8)+e[r-1],o.push(n[t>>10]+n[t>>4&63]+n[t<<2&63]+"="));return o.join("")};for(var n=[],r=[],i="undefined"!==typeof Uint8Array?Uint8Array:Array,o="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",a=0,s=o.length;a0)throw new Error("Invalid string. Length must be a multiple of 4");var n=e.indexOf("=");return-1===n&&(n=t),[n,n===t?0:4-n%4]}function l(e,t,r){for(var i,o,a=[],s=t;s>18&63]+n[o>>12&63]+n[o>>6&63]+n[63&o]);return a.join("")}r["-".charCodeAt(0)]=62,r["_".charCodeAt(0)]=63},3644:function(e,t,n){var r=n(1048),i=n(5623);e.exports=function(e){if(!e)return[];"{}"===e.substr(0,2)&&(e="\\{\\}"+e.substr(2));return y(function(e){return e.split("\\\\").join(o).split("\\{").join(a).split("\\}").join(s).split("\\,").join(u).split("\\.").join(l)}(e),!0).map(f)};var o="\0SLASH"+Math.random()+"\0",a="\0OPEN"+Math.random()+"\0",s="\0CLOSE"+Math.random()+"\0",u="\0COMMA"+Math.random()+"\0",l="\0PERIOD"+Math.random()+"\0";function c(e){return parseInt(e,10)==e?parseInt(e,10):e.charCodeAt(0)}function f(e){return e.split(o).join("\\").split(a).join("{").split(s).join("}").split(u).join(",").split(l).join(".")}function p(e){if(!e)return[""];var t=[],n=i("{","}",e);if(!n)return e.split(",");var r=n.pre,o=n.body,a=n.post,s=r.split(",");s[s.length-1]+="{"+o+"}";var u=p(a);return a.length&&(s[s.length-1]+=u.shift(),s.push.apply(s,u)),t.push.apply(t,s),t}function d(e){return"{"+e+"}"}function h(e){return/^-?0\d/.test(e)}function g(e,t){return e<=t}function m(e,t){return e>=t}function y(e,t){var n=[],o=i("{","}",e);if(!o||/\$$/.test(o.pre))return[e];var a,u=/^-?\d+\.\.-?\d+(?:\.\.-?\d+)?$/.test(o.body),l=/^[a-zA-Z]\.\.[a-zA-Z](?:\.\.-?\d+)?$/.test(o.body),f=u||l,v=o.body.indexOf(",")>=0;if(!f&&!v)return o.post.match(/,.*\}/)?y(e=o.pre+"{"+o.body+s+o.post):[e];if(f)a=o.body.split(/\.\./);else if(1===(a=p(o.body)).length&&1===(a=y(a[0],!1).map(d)).length)return(x=o.post.length?y(o.post,!1):[""]).map((function(e){return o.pre+a[0]+e}));var b,w=o.pre,x=o.post.length?y(o.post,!1):[""];if(f){var k=c(a[0]),E=c(a[1]),A=Math.max(a[0].length,a[1].length),S=3==a.length?Math.abs(c(a[2])):1,O=g;E0){var _=new Array(R+1).join("0");T=C<0?"-"+_+T.slice(1):_+T}}b.push(T)}}else b=r(a,(function(e){return y(e,!1)}));for(var I=0;Ia)throw new RangeError('The value "'+e+'" is invalid for option "size"');var t=new Uint8Array(e);return Object.setPrototypeOf(t,u.prototype),t}function u(e,t,n){if("number"===typeof e){if("string"===typeof t)throw new TypeError('The "string" argument must be of type string. Received type number');return f(e)}return l(e,t,n)}function l(e,t,n){if("string"===typeof e)return function(e,t){"string"===typeof t&&""!==t||(t="utf8");if(!u.isEncoding(t))throw new TypeError("Unknown encoding: "+t);var n=0|g(e,t),r=s(n),i=r.write(e,t);i!==n&&(r=r.slice(0,i));return r}(e,t);if(ArrayBuffer.isView(e))return function(e){if(z(e,Uint8Array)){var t=new Uint8Array(e);return d(t.buffer,t.byteOffset,t.byteLength)}return p(e)}(e);if(null==e)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof e);if(z(e,ArrayBuffer)||e&&z(e.buffer,ArrayBuffer))return d(e,t,n);if("undefined"!==typeof SharedArrayBuffer&&(z(e,SharedArrayBuffer)||e&&z(e.buffer,SharedArrayBuffer)))return d(e,t,n);if("number"===typeof e)throw new TypeError('The "value" argument must not be of type number. Received type number');var r=e.valueOf&&e.valueOf();if(null!=r&&r!==e)return u.from(r,t,n);var i=function(e){if(u.isBuffer(e)){var t=0|h(e.length),n=s(t);return 0===n.length||e.copy(n,0,0,t),n}if(void 0!==e.length)return"number"!==typeof e.length||U(e.length)?s(0):p(e);if("Buffer"===e.type&&Array.isArray(e.data))return p(e.data)}(e);if(i)return i;if("undefined"!==typeof Symbol&&null!=Symbol.toPrimitive&&"function"===typeof e[Symbol.toPrimitive])return u.from(e[Symbol.toPrimitive]("string"),t,n);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof e)}function c(e){if("number"!==typeof e)throw new TypeError('"size" argument must be of type number');if(e<0)throw new RangeError('The value "'+e+'" is invalid for option "size"')}function f(e){return c(e),s(e<0?0:0|h(e))}function p(e){for(var t=e.length<0?0:0|h(e.length),n=s(t),r=0;r=a)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+a.toString(16)+" bytes");return 0|e}function g(e,t){if(u.isBuffer(e))return e.length;if(ArrayBuffer.isView(e)||z(e,ArrayBuffer))return e.byteLength;if("string"!==typeof e)throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof e);var n=e.length,r=arguments.length>2&&!0===arguments[2];if(!r&&0===n)return 0;for(var i=!1;;)switch(t){case"ascii":case"latin1":case"binary":return n;case"utf8":case"utf-8":return B(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*n;case"hex":return n>>>1;case"base64":return M(e).length;default:if(i)return r?-1:B(e).length;t=(""+t).toLowerCase(),i=!0}}function m(e,t,n){var r=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===n||n>this.length)&&(n=this.length),n<=0)return"";if((n>>>=0)<=(t>>>=0))return"";for(e||(e="utf8");;)switch(e){case"hex":return R(this,t,n);case"utf8":case"utf-8":return O(this,t,n);case"ascii":return C(this,t,n);case"latin1":case"binary":return T(this,t,n);case"base64":return S(this,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return _(this,t,n);default:if(r)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),r=!0}}function y(e,t,n){var r=e[t];e[t]=e[n],e[n]=r}function v(e,t,n,r,i){if(0===e.length)return-1;if("string"===typeof n?(r=n,n=0):n>2147483647?n=2147483647:n<-2147483648&&(n=-2147483648),U(n=+n)&&(n=i?0:e.length-1),n<0&&(n=e.length+n),n>=e.length){if(i)return-1;n=e.length-1}else if(n<0){if(!i)return-1;n=0}if("string"===typeof t&&(t=u.from(t,r)),u.isBuffer(t))return 0===t.length?-1:b(e,t,n,r,i);if("number"===typeof t)return t&=255,"function"===typeof Uint8Array.prototype.indexOf?i?Uint8Array.prototype.indexOf.call(e,t,n):Uint8Array.prototype.lastIndexOf.call(e,t,n):b(e,[t],n,r,i);throw new TypeError("val must be string, number or Buffer")}function b(e,t,n,r,i){var o,a=1,s=e.length,u=t.length;if(void 0!==r&&("ucs2"===(r=String(r).toLowerCase())||"ucs-2"===r||"utf16le"===r||"utf-16le"===r)){if(e.length<2||t.length<2)return-1;a=2,s/=2,u/=2,n/=2}function l(e,t){return 1===a?e[t]:e.readUInt16BE(t*a)}if(i){var c=-1;for(o=n;os&&(n=s-u),o=n;o>=0;o--){for(var f=!0,p=0;pi&&(r=i):r=i;var o=t.length;r>o/2&&(r=o/2);for(var a=0;a>8,i=n%256,o.push(i),o.push(r);return o}(t,e.length-n),e,n,r)}function S(e,t,n){return 0===t&&n===e.length?r.fromByteArray(e):r.fromByteArray(e.slice(t,n))}function O(e,t,n){n=Math.min(e.length,n);for(var r=[],i=t;i239?4:l>223?3:l>191?2:1;if(i+f<=n)switch(f){case 1:l<128&&(c=l);break;case 2:128===(192&(o=e[i+1]))&&(u=(31&l)<<6|63&o)>127&&(c=u);break;case 3:o=e[i+1],a=e[i+2],128===(192&o)&&128===(192&a)&&(u=(15&l)<<12|(63&o)<<6|63&a)>2047&&(u<55296||u>57343)&&(c=u);break;case 4:o=e[i+1],a=e[i+2],s=e[i+3],128===(192&o)&&128===(192&a)&&128===(192&s)&&(u=(15&l)<<18|(63&o)<<12|(63&a)<<6|63&s)>65535&&u<1114112&&(c=u)}null===c?(c=65533,f=1):c>65535&&(c-=65536,r.push(c>>>10&1023|55296),c=56320|1023&c),r.push(c),i+=f}return function(e){var t=e.length;if(t<=D)return String.fromCharCode.apply(String,e);var n="",r=0;for(;rr.length?u.from(o).copy(r,i):Uint8Array.prototype.set.call(r,o,i);else{if(!u.isBuffer(o))throw new TypeError('"list" argument must be an Array of Buffers');o.copy(r,i)}i+=o.length}return r},u.byteLength=g,u.prototype._isBuffer=!0,u.prototype.swap16=function(){var e=this.length;if(e%2!==0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(var t=0;tn&&(e+=" ... "),""},o&&(u.prototype[o]=u.prototype.inspect),u.prototype.compare=function(e,t,n,r,i){if(z(e,Uint8Array)&&(e=u.from(e,e.offset,e.byteLength)),!u.isBuffer(e))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof e);if(void 0===t&&(t=0),void 0===n&&(n=e?e.length:0),void 0===r&&(r=0),void 0===i&&(i=this.length),t<0||n>e.length||r<0||i>this.length)throw new RangeError("out of range index");if(r>=i&&t>=n)return 0;if(r>=i)return-1;if(t>=n)return 1;if(this===e)return 0;for(var o=(i>>>=0)-(r>>>=0),a=(n>>>=0)-(t>>>=0),s=Math.min(o,a),l=this.slice(r,i),c=e.slice(t,n),f=0;f>>=0,isFinite(n)?(n>>>=0,void 0===r&&(r="utf8")):(r=n,n=void 0)}var i=this.length-t;if((void 0===n||n>i)&&(n=i),e.length>0&&(n<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");r||(r="utf8");for(var o=!1;;)switch(r){case"hex":return w(this,e,t,n);case"utf8":case"utf-8":return x(this,e,t,n);case"ascii":case"latin1":case"binary":return k(this,e,t,n);case"base64":return E(this,e,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return A(this,e,t,n);default:if(o)throw new TypeError("Unknown encoding: "+r);r=(""+r).toLowerCase(),o=!0}},u.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var D=4096;function C(e,t,n){var r="";n=Math.min(e.length,n);for(var i=t;ir)&&(n=r);for(var i="",o=t;on)throw new RangeError("Trying to access beyond buffer length")}function P(e,t,n,r,i,o){if(!u.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>i||te.length)throw new RangeError("Index out of range")}function F(e,t,n,r,i,o){if(n+r>e.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("Index out of range")}function N(e,t,n,r,o){return t=+t,n>>>=0,o||F(e,0,n,4),i.write(e,t,n,r,23,4),n+4}function j(e,t,n,r,o){return t=+t,n>>>=0,o||F(e,0,n,8),i.write(e,t,n,r,52,8),n+8}u.prototype.slice=function(e,t){var n=this.length;(e=~~e)<0?(e+=n)<0&&(e=0):e>n&&(e=n),(t=void 0===t?n:~~t)<0?(t+=n)<0&&(t=0):t>n&&(t=n),t>>=0,t>>>=0,n||I(e,t,this.length);for(var r=this[e],i=1,o=0;++o>>=0,t>>>=0,n||I(e,t,this.length);for(var r=this[e+--t],i=1;t>0&&(i*=256);)r+=this[e+--t]*i;return r},u.prototype.readUint8=u.prototype.readUInt8=function(e,t){return e>>>=0,t||I(e,1,this.length),this[e]},u.prototype.readUint16LE=u.prototype.readUInt16LE=function(e,t){return e>>>=0,t||I(e,2,this.length),this[e]|this[e+1]<<8},u.prototype.readUint16BE=u.prototype.readUInt16BE=function(e,t){return e>>>=0,t||I(e,2,this.length),this[e]<<8|this[e+1]},u.prototype.readUint32LE=u.prototype.readUInt32LE=function(e,t){return e>>>=0,t||I(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},u.prototype.readUint32BE=u.prototype.readUInt32BE=function(e,t){return e>>>=0,t||I(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},u.prototype.readIntLE=function(e,t,n){e>>>=0,t>>>=0,n||I(e,t,this.length);for(var r=this[e],i=1,o=0;++o=(i*=128)&&(r-=Math.pow(2,8*t)),r},u.prototype.readIntBE=function(e,t,n){e>>>=0,t>>>=0,n||I(e,t,this.length);for(var r=t,i=1,o=this[e+--r];r>0&&(i*=256);)o+=this[e+--r]*i;return o>=(i*=128)&&(o-=Math.pow(2,8*t)),o},u.prototype.readInt8=function(e,t){return e>>>=0,t||I(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},u.prototype.readInt16LE=function(e,t){e>>>=0,t||I(e,2,this.length);var n=this[e]|this[e+1]<<8;return 32768&n?4294901760|n:n},u.prototype.readInt16BE=function(e,t){e>>>=0,t||I(e,2,this.length);var n=this[e+1]|this[e]<<8;return 32768&n?4294901760|n:n},u.prototype.readInt32LE=function(e,t){return e>>>=0,t||I(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},u.prototype.readInt32BE=function(e,t){return e>>>=0,t||I(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},u.prototype.readFloatLE=function(e,t){return e>>>=0,t||I(e,4,this.length),i.read(this,e,!0,23,4)},u.prototype.readFloatBE=function(e,t){return e>>>=0,t||I(e,4,this.length),i.read(this,e,!1,23,4)},u.prototype.readDoubleLE=function(e,t){return e>>>=0,t||I(e,8,this.length),i.read(this,e,!0,52,8)},u.prototype.readDoubleBE=function(e,t){return e>>>=0,t||I(e,8,this.length),i.read(this,e,!1,52,8)},u.prototype.writeUintLE=u.prototype.writeUIntLE=function(e,t,n,r){(e=+e,t>>>=0,n>>>=0,r)||P(this,e,t,n,Math.pow(2,8*n)-1,0);var i=1,o=0;for(this[t]=255&e;++o>>=0,n>>>=0,r)||P(this,e,t,n,Math.pow(2,8*n)-1,0);var i=n-1,o=1;for(this[t+i]=255&e;--i>=0&&(o*=256);)this[t+i]=e/o&255;return t+n},u.prototype.writeUint8=u.prototype.writeUInt8=function(e,t,n){return e=+e,t>>>=0,n||P(this,e,t,1,255,0),this[t]=255&e,t+1},u.prototype.writeUint16LE=u.prototype.writeUInt16LE=function(e,t,n){return e=+e,t>>>=0,n||P(this,e,t,2,65535,0),this[t]=255&e,this[t+1]=e>>>8,t+2},u.prototype.writeUint16BE=u.prototype.writeUInt16BE=function(e,t,n){return e=+e,t>>>=0,n||P(this,e,t,2,65535,0),this[t]=e>>>8,this[t+1]=255&e,t+2},u.prototype.writeUint32LE=u.prototype.writeUInt32LE=function(e,t,n){return e=+e,t>>>=0,n||P(this,e,t,4,4294967295,0),this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e,t+4},u.prototype.writeUint32BE=u.prototype.writeUInt32BE=function(e,t,n){return e=+e,t>>>=0,n||P(this,e,t,4,4294967295,0),this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e,t+4},u.prototype.writeIntLE=function(e,t,n,r){if(e=+e,t>>>=0,!r){var i=Math.pow(2,8*n-1);P(this,e,t,n,i-1,-i)}var o=0,a=1,s=0;for(this[t]=255&e;++o>0)-s&255;return t+n},u.prototype.writeIntBE=function(e,t,n,r){if(e=+e,t>>>=0,!r){var i=Math.pow(2,8*n-1);P(this,e,t,n,i-1,-i)}var o=n-1,a=1,s=0;for(this[t+o]=255&e;--o>=0&&(a*=256);)e<0&&0===s&&0!==this[t+o+1]&&(s=1),this[t+o]=(e/a>>0)-s&255;return t+n},u.prototype.writeInt8=function(e,t,n){return e=+e,t>>>=0,n||P(this,e,t,1,127,-128),e<0&&(e=255+e+1),this[t]=255&e,t+1},u.prototype.writeInt16LE=function(e,t,n){return e=+e,t>>>=0,n||P(this,e,t,2,32767,-32768),this[t]=255&e,this[t+1]=e>>>8,t+2},u.prototype.writeInt16BE=function(e,t,n){return e=+e,t>>>=0,n||P(this,e,t,2,32767,-32768),this[t]=e>>>8,this[t+1]=255&e,t+2},u.prototype.writeInt32LE=function(e,t,n){return e=+e,t>>>=0,n||P(this,e,t,4,2147483647,-2147483648),this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24,t+4},u.prototype.writeInt32BE=function(e,t,n){return e=+e,t>>>=0,n||P(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e,t+4},u.prototype.writeFloatLE=function(e,t,n){return N(this,e,t,!0,n)},u.prototype.writeFloatBE=function(e,t,n){return N(this,e,t,!1,n)},u.prototype.writeDoubleLE=function(e,t,n){return j(this,e,t,!0,n)},u.prototype.writeDoubleBE=function(e,t,n){return j(this,e,t,!1,n)},u.prototype.copy=function(e,t,n,r){if(!u.isBuffer(e))throw new TypeError("argument should be a Buffer");if(n||(n=0),r||0===r||(r=this.length),t>=e.length&&(t=e.length),t||(t=0),r>0&&r=this.length)throw new RangeError("Index out of range");if(r<0)throw new RangeError("sourceEnd out of bounds");r>this.length&&(r=this.length),e.length-t>>=0,n=void 0===n?this.length:n>>>0,e||(e=0),"number"===typeof e)for(o=t;o55295&&n<57344){if(!i){if(n>56319){(t-=3)>-1&&o.push(239,191,189);continue}if(a+1===r){(t-=3)>-1&&o.push(239,191,189);continue}i=n;continue}if(n<56320){(t-=3)>-1&&o.push(239,191,189),i=n;continue}n=65536+(i-55296<<10|n-56320)}else i&&(t-=3)>-1&&o.push(239,191,189);if(i=null,n<128){if((t-=1)<0)break;o.push(n)}else if(n<2048){if((t-=2)<0)break;o.push(n>>6|192,63&n|128)}else if(n<65536){if((t-=3)<0)break;o.push(n>>12|224,n>>6&63|128,63&n|128)}else{if(!(n<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;o.push(n>>18|240,n>>12&63|128,n>>6&63|128,63&n|128)}}return o}function M(e){return r.toByteArray(function(e){if((e=(e=e.split("=")[0]).trim().replace(L,"")).length<2)return"";for(;e.length%4!==0;)e+="=";return e}(e))}function $(e,t,n,r){for(var i=0;i=t.length||i>=e.length);++i)t[i+n]=e[i];return i}function z(e,t){return e instanceof t||null!=e&&null!=e.constructor&&null!=e.constructor.name&&e.constructor.name===t.name}function U(e){return e!==e}var W=function(){for(var e="0123456789abcdef",t=new Array(256),n=0;n<16;++n)for(var r=16*n,i=0;i<16;++i)t[r+i]=e[n]+e[i];return t}()},4480:function(e,t,n){"use strict";var r=n(3454),i=n.g.process&&r.nextTick||n.g.setImmediate||function(e){setTimeout(e,0)};e.exports=function(e,t){return e?void t.then((function(t){i((function(){e(null,t)}))}),(function(t){i((function(){e(t)}))})):t}},1048:function(e){e.exports=function(e,n){for(var r=[],i=0;i2?n:e).apply(void 0,i)}}function u(e){return function(t){return"function"===typeof t?e(t):function(n,r,i){i.value=e(i.value,t,n,r,i)}}}e.memoize=i,e.debounce=o,e.bind=a,e.default={memoize:i,debounce:o,bind:a}},void 0===(i="function"===typeof n?n.apply(t,r):n)||(e.exports=i)},7856:function(e){e.exports=function(){"use strict";function e(e){if(Array.isArray(e)){for(var t=0,n=Array(e.length);t1?n-1:0),i=1;i/gm),$=s(/^data-[\-\w.\u00B7-\uFFFF]/),z=s(/^aria-[\-\w]+$/),U=s(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|cid|xmpp):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),W=s(/^(?:\w+script|data):/i),q=s(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),H=s(/^html$/i),Y="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};function V(e){if(Array.isArray(e)){for(var t=0,n=Array(e.length);t0&&void 0!==arguments[0]?arguments[0]:Q(),t=function(e){return X(e)};if(t.version="2.3.6",t.removed=[],!e||!e.document||9!==e.document.nodeType)return t.isSupported=!1,t;var n=e.document,r=e.document,i=e.DocumentFragment,o=e.HTMLTemplateElement,s=e.Node,u=e.Element,l=e.NodeFilter,c=e.NamedNodeMap,f=void 0===c?e.NamedNodeMap||e.MozNamedAttrMap:c,k=e.HTMLFormElement,E=e.DOMParser,Z=e.trustedTypes,K=u.prototype,J=O(K,"cloneNode"),ee=O(K,"nextSibling"),te=O(K,"childNodes"),ne=O(K,"parentNode");if("function"===typeof o){var re=r.createElement("template");re.content&&re.content.ownerDocument&&(r=re.content.ownerDocument)}var ie=G(Z,n),oe=ie?ie.createHTML(""):"",ae=r,se=ae.implementation,ue=ae.createNodeIterator,le=ae.createDocumentFragment,ce=ae.getElementsByTagName,fe=n.importNode,pe={};try{pe=S(r).documentMode?r.documentMode:{}}catch(At){}var de={};t.isSupported="function"===typeof ne&&se&&"undefined"!==typeof se.createHTMLDocument&&9!==pe;var he=B,ge=M,me=$,ye=z,ve=W,be=q,we=U,xe=null,ke=A({},[].concat(V(D),V(C),V(T),V(_),V(P))),Ee=null,Ae=A({},[].concat(V(F),V(N),V(j),V(L))),Se=Object.seal(Object.create(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),Oe=null,De=null,Ce=!0,Te=!0,Re=!1,_e=!1,Ie=!1,Pe=!1,Fe=!1,Ne=!1,je=!1,Le=!1,Be=!0,Me=!0,$e=!1,ze={},Ue=null,We=A({},["annotation-xml","audio","colgroup","desc","foreignobject","head","iframe","math","mi","mn","mo","ms","mtext","noembed","noframes","noscript","plaintext","script","style","svg","template","thead","title","video","xmp"]),qe=null,He=A({},["audio","video","img","source","image","track"]),Ye=null,Ve=A({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),Qe="http://www.w3.org/1998/Math/MathML",Ge="http://www.w3.org/2000/svg",Xe="http://www.w3.org/1999/xhtml",Ze=Xe,Ke=!1,Je=void 0,et=["application/xhtml+xml","text/html"],tt="text/html",nt=void 0,rt=null,it=r.createElement("form"),ot=function(e){return e instanceof RegExp||e instanceof Function},at=function(e){rt&&rt===e||(e&&"object"===("undefined"===typeof e?"undefined":Y(e))||(e={}),e=S(e),xe="ALLOWED_TAGS"in e?A({},e.ALLOWED_TAGS):ke,Ee="ALLOWED_ATTR"in e?A({},e.ALLOWED_ATTR):Ae,Ye="ADD_URI_SAFE_ATTR"in e?A(S(Ve),e.ADD_URI_SAFE_ATTR):Ve,qe="ADD_DATA_URI_TAGS"in e?A(S(He),e.ADD_DATA_URI_TAGS):He,Ue="FORBID_CONTENTS"in e?A({},e.FORBID_CONTENTS):We,Oe="FORBID_TAGS"in e?A({},e.FORBID_TAGS):{},De="FORBID_ATTR"in e?A({},e.FORBID_ATTR):{},ze="USE_PROFILES"in e&&e.USE_PROFILES,Ce=!1!==e.ALLOW_ARIA_ATTR,Te=!1!==e.ALLOW_DATA_ATTR,Re=e.ALLOW_UNKNOWN_PROTOCOLS||!1,_e=e.SAFE_FOR_TEMPLATES||!1,Ie=e.WHOLE_DOCUMENT||!1,Ne=e.RETURN_DOM||!1,je=e.RETURN_DOM_FRAGMENT||!1,Le=e.RETURN_TRUSTED_TYPE||!1,Fe=e.FORCE_BODY||!1,Be=!1!==e.SANITIZE_DOM,Me=!1!==e.KEEP_CONTENT,$e=e.IN_PLACE||!1,we=e.ALLOWED_URI_REGEXP||we,Ze=e.NAMESPACE||Xe,e.CUSTOM_ELEMENT_HANDLING&&ot(e.CUSTOM_ELEMENT_HANDLING.tagNameCheck)&&(Se.tagNameCheck=e.CUSTOM_ELEMENT_HANDLING.tagNameCheck),e.CUSTOM_ELEMENT_HANDLING&&ot(e.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)&&(Se.attributeNameCheck=e.CUSTOM_ELEMENT_HANDLING.attributeNameCheck),e.CUSTOM_ELEMENT_HANDLING&&"boolean"===typeof e.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements&&(Se.allowCustomizedBuiltInElements=e.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements),Je=Je=-1===et.indexOf(e.PARSER_MEDIA_TYPE)?tt:e.PARSER_MEDIA_TYPE,nt="application/xhtml+xml"===Je?function(e){return e}:g,_e&&(Te=!1),je&&(Ne=!0),ze&&(xe=A({},[].concat(V(P))),Ee=[],!0===ze.html&&(A(xe,D),A(Ee,F)),!0===ze.svg&&(A(xe,C),A(Ee,N),A(Ee,L)),!0===ze.svgFilters&&(A(xe,T),A(Ee,N),A(Ee,L)),!0===ze.mathMl&&(A(xe,_),A(Ee,j),A(Ee,L))),e.ADD_TAGS&&(xe===ke&&(xe=S(xe)),A(xe,e.ADD_TAGS)),e.ADD_ATTR&&(Ee===Ae&&(Ee=S(Ee)),A(Ee,e.ADD_ATTR)),e.ADD_URI_SAFE_ATTR&&A(Ye,e.ADD_URI_SAFE_ATTR),e.FORBID_CONTENTS&&(Ue===We&&(Ue=S(Ue)),A(Ue,e.FORBID_CONTENTS)),Me&&(xe["#text"]=!0),Ie&&A(xe,["html","head","body"]),xe.table&&(A(xe,["tbody"]),delete Oe.tbody),a&&a(e),rt=e)},st=A({},["mi","mo","mn","ms","mtext"]),ut=A({},["foreignobject","desc","title","annotation-xml"]),lt=A({},C);A(lt,T),A(lt,R);var ct=A({},_);A(ct,I);var ft=function(e){var t=ne(e);t&&t.tagName||(t={namespaceURI:Xe,tagName:"template"});var n=g(e.tagName),r=g(t.tagName);if(e.namespaceURI===Ge)return t.namespaceURI===Xe?"svg"===n:t.namespaceURI===Qe?"svg"===n&&("annotation-xml"===r||st[r]):Boolean(lt[n]);if(e.namespaceURI===Qe)return t.namespaceURI===Xe?"math"===n:t.namespaceURI===Ge?"math"===n&&ut[r]:Boolean(ct[n]);if(e.namespaceURI===Xe){if(t.namespaceURI===Ge&&!ut[r])return!1;if(t.namespaceURI===Qe&&!st[r])return!1;var i=A({},["title","style","font","a","script"]);return!ct[n]&&(i[n]||!lt[n])}return!1},pt=function(e){h(t.removed,{element:e});try{e.parentNode.removeChild(e)}catch(At){try{e.outerHTML=oe}catch(At){e.remove()}}},dt=function(e,n){try{h(t.removed,{attribute:n.getAttributeNode(e),from:n})}catch(At){h(t.removed,{attribute:null,from:n})}if(n.removeAttribute(e),"is"===e&&!Ee[e])if(Ne||je)try{pt(n)}catch(At){}else try{n.setAttribute(e,"")}catch(At){}},ht=function(e){var t=void 0,n=void 0;if(Fe)e=""+e;else{var i=m(e,/^[\r\n\t ]+/);n=i&&i[0]}"application/xhtml+xml"===Je&&(e=''+e+"");var o=ie?ie.createHTML(e):e;if(Ze===Xe)try{t=(new E).parseFromString(o,Je)}catch(At){}if(!t||!t.documentElement){t=se.createDocument(Ze,"template",null);try{t.documentElement.innerHTML=Ke?"":o}catch(At){}}var a=t.body||t.documentElement;return e&&n&&a.insertBefore(r.createTextNode(n),a.childNodes[0]||null),Ze===Xe?ce.call(t,Ie?"html":"body")[0]:Ie?t.documentElement:a},gt=function(e){return ue.call(e.ownerDocument||e,e,l.SHOW_ELEMENT|l.SHOW_COMMENT|l.SHOW_TEXT,null,!1)},mt=function(e){return e instanceof k&&("string"!==typeof e.nodeName||"string"!==typeof e.textContent||"function"!==typeof e.removeChild||!(e.attributes instanceof f)||"function"!==typeof e.removeAttribute||"function"!==typeof e.setAttribute||"string"!==typeof e.namespaceURI||"function"!==typeof e.insertBefore)},yt=function(e){return"object"===("undefined"===typeof s?"undefined":Y(s))?e instanceof s:e&&"object"===("undefined"===typeof e?"undefined":Y(e))&&"number"===typeof e.nodeType&&"string"===typeof e.nodeName},vt=function(e,n,r){de[e]&&p(de[e],(function(e){e.call(t,n,r,rt)}))},bt=function(e){var n=void 0;if(vt("beforeSanitizeElements",e,null),mt(e))return pt(e),!0;if(m(e.nodeName,/[\u0080-\uFFFF]/))return pt(e),!0;var r=nt(e.nodeName);if(vt("uponSanitizeElement",e,{tagName:r,allowedTags:xe}),!yt(e.firstElementChild)&&(!yt(e.content)||!yt(e.content.firstElementChild))&&w(/<[/\w]/g,e.innerHTML)&&w(/<[/\w]/g,e.textContent))return pt(e),!0;if("select"===r&&w(/