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/create
to create a link token.- Include a statements object containing fields
start_date
andend_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
products
array and put statements in therequired_if_supported_products
array. 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_token
returned by/link/token/create
; for more details, see the Link documentation.Once the user has successfully finished the Link session, the client-side
onSuccess
callback will fire. Extract thepublic_token
from the callback and exchange it for anaccess_token
by calling/item/public_token/exchange
.Call
/statements/list
, passing theaccess_token
obtained above. This will return a list of statements, including astatement_id
for 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_token
and 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_COMPLETE
webhook has been received, call/statements/list
again 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.