Statements
Retrieve a PDF copy of a user's statement (beta)
API Reference
View Identity requests, responses, and example code
View Statements APIQuickstart
Learn about Plaid's key concepts and run starter code
Get startedOverview
Statements allows you to retrieve a bank branded, PDF copy of an end user's bank statement. The Statements product simplifies the process of collecting documents for loan verification purposes or rental application review purposes, among others.
Statements is currently in beta. To request access, contact Support or your Plaid Account Manager.
Integration process
Call
/link/token/createto create a link token.- Include a statements object containing fields
start_dateandend_date. Plaid only allows extracting up to 2 years of statements. - If your integration uses multiple Plaid products, such as Assets and Statements, we recommend that you put your
other products in the
productsarray and put statements in therequired_if_supported_productsarray. This configuration will require statements to be extracted if the financial institution supports the product, but will not block the user from progressing if statements are not supported. Instead, if Statements is not supported by the user's institution, you will receive a PRODUCTS_NOT_SUPPORTED error when calling Statements endpoints. For more details, see Choosing how to initialize products. - If you are using only the Statements product, put statements in the products array when calling
/link/token/create.
1{2 "client_id": "${PLAID_CLIENT_ID}",3 "secret": "${PLAID_SECRET}",4 "client_name": "Your Company",5 "country_codes": ["US"],6 "language": "en",7 "user": {8 "client_user_id": "{{client_id}}"9 },10 "products": ["assets"],11 "required_if_supported_products": ["statements"],12 "statements": {13 "start_date": "2023-01-15",14 "end_date": "2023-05-01"15 },16 "webhook": "https://webhook.site/6fc6d0c4-263c-45e0-99a6-891bb591efd2"17}- Include a statements object containing fields
On the client side, create an instance of Link using the
link_tokenreturned by/link/token/create; for more details, see the Link documentation.Once the user has successfully finished the Link session, the client-side
onSuccesscallback will fire. Extract thepublic_tokenfrom the callback and exchange it for anaccess_tokenby calling/item/public_token/exchange.Call
/statements/list, passing theaccess_tokenobtained above. This will return a list of statements, including astatement_idfor each.1{2 "accounts": [3 {4 "account_id": "1qKRXQjk8xUWDJojNwPXTj8gEmR48piqRNye8",5 "account_name": "Plaid Checking",6 "account_type": "depository",7 "statements": [8 {9 "month": 4,10 "statement_id": "efgh12e3-gh1c-56d6-e7e9-923bc64d80a5",11 "year": 202312 },13 {14 "month": 5,15 "statement_id": "jklh12e3-ab3e-87y3-f8a0-908bc64d80a5",16 "year": 202317 }18 ]19 }20 ],21 "institution_id": "ins_118923",22 "institution_name": "First Platypus Bank",23 "item_id": "wz666MBjYWTp2PDzzggYhM6oWWmBb",24 "request_id": "NBZaq"25 }Call
/statements/download, passing in theaccess_tokenand desiredstatement_id, to download a specific statement. The statement will be provided in PDF format, exactly as provided by the financial institution.
Sample Sandbox (mock) bank statement retrieved with /statements/download. (Optional) If you would like to re-check for new statements generated after the end user linked their account, you can call
/statements/refresh. When theSTATEMENTS_REFRESH_COMPLETEwebhook has been received, call/statements/listagain for an updated list of statements.
Testing Statements
Statements can be tested in Sandbox without contacting Plaid. In order to test Statements against live Items in Production, you will need to first request access by submitting a product access request Support ticket explaining your use case. Statements cannot be tested in Development.
A mock statement is returned in Sandbox. In Production, the statement is retrieved from the financial institution.
Statements user experience

Statements pricing
Statements is billed on a flexible fee model; the cost will depend on the number of statements returned from calling /statements/list. To view the exact pricing you may be eligible for, contact Sales. For more details about pricing and billing models, see Plaid billing.
Next steps
If you're ready to launch to Production, see the Launch checklist.