Statements
API reference for Statements endpoints and webhooks
For how-to guidance, see the Statements documentation.
| Endpoint | Description |
|---|---|
/statements/list | Get a list of statements available to download |
/statements/download | Download a single bank statement |
/statements/refresh | Trigger on-demand statement extractions |
| Webhook Name | Description |
|---|---|
STATEMENTS_REFRESH_COMPLETE | Statements refresh completed |
Endpoints
/statements/list
Retrieve a list of all statements associated with an item.
The /statements/list endpoint retrieves a list of all statements associated with an item.
Request fields
access_tokenclient_idclient_id. The client_id is required and may be provided either in the PLAID-CLIENT-ID header or as part of a request body.secretsecret. The secret is required and may be provided either in the PLAID-SECRET header or as part of a request body.const listRequest: StatementsListRequest = {
access_token: access_token,
};
const listResponse = await plaidClient.statementsList(listRequest);
accounts = listResponse.accounts;
statements = listResponse.accounts[0].statements;
Response fields
accountsaccount_idaccount_maskaccount_nameaccount_official_nameaccount_subtypeaccount_typestatementsstatement_iddate_posteddate monthyear2010 institution_idinstitution_nameitem_iditem_id is always unique; linking the same account at the same institution twice will result in two Items with different item_id values. Like all Plaid identifiers, the item_id is case-sensitive.request_id{
"item_id": "eVBnVMp7zdTJLkRNr33Rs6zr7KNJqBFL9DrE6",
"institution_id": "ins_3",
"institution_name": "Chase",
"accounts": [
{
"account_id": "3gE5gnRzNyfXpBK5wEEKcymJ5albGVUqg77gr",
"account_mask": "0000",
"account_name": "Plaid Saving",
"account_official_name": "Plaid Silver Standard 0.1% Interest Saving",
"account_subtype": "savings",
"account_type": "depository",
"statements": [
{
"statement_id": "vzeNDwK7KQIm4yEog683uElbp9GRLEFXGK98D",
"month": 5,
"year": 2023,
"date_posted": "2023-05-01"
}
]
}
],
"request_id": "eYupqX1mZkEuQRx"
}/statements/download
Retrieve a single statement.
The /statements/download endpoint retrieves a single statement PDF in binary format. The response will contain a Plaid-Content-Hash header containing a SHA 256 checksum of the statement. This can be used to verify that the file being sent by Plaid is the same file that was downloaded to your system.
Request fields
access_tokenclient_idclient_id. The client_id is required and may be provided either in the PLAID-CLIENT-ID header or as part of a request body.secretsecret. The secret is required and may be provided either in the PLAID-SECRET header or as part of a request body.statement_idlet downloadRequest: StatementsDownloadRequest = {
access_token: accessToken,
statement_id: statement.statement_id,
};
let downloadResponse = await plaidClient.statementsDownload(
downloadRequest,
{responseType: 'arraybuffer'},
);
let pdf = downloadResponse.data.toString('base64');
Response
This endpoint returns a single statement, exactly as provided by the financial institution, in the form of binary PDF data.
/statements/refresh
Refresh statements data.
/statements/refresh initiates an on-demand extraction to fetch the statements for the provided dates.
Request fields
access_tokenclient_idclient_id. The client_id is required and may be provided either in the PLAID-CLIENT-ID header or as part of a request body.secretsecret. The secret is required and may be provided either in the PLAID-SECRET header or as part of a request body.start_datedate end_datedate const refreshRequest: StatementsRefreshRequest = {
access_token: accessToken,
start_date: '2023-11-01',
end_date: '2024-02-01',
};
const refreshResponse = await plaidClient.statementsRefresh(refreshRequest);
Response fields
request_id{
"request_id": "eYupqX1mZkEuQRx"
}Webhooks
Statement webhooks are sent to indicate that statements refresh has finished processing. All webhooks related to statements have a webhook_type of STATEMENTS.
STATEMENTS_REFRESH_COMPLETE
Fired when refreshed statements extraction is completed or failed to be completed. Triggered by calling /statements/refresh.
Properties
webhook_typeSTATEMENTSwebhook_codeSTATEMENTS_REFRESH_COMPLETEitem_iditem_id is always unique; linking the same account at the same institution twice will result in two Items with different item_id values. Like all Plaid identifiers, the item_id is case-sensitive.resultSUCCESS: The statements were successfully extracted and can be listed via /statements/list/ and downloaded via /statements/download/.FAILURE: The statements failed to be extracted.SUCCESS, FAILUREenvironmentsandbox, production{
"webhook_type": "STATEMENTS",
"webhook_code": "STATEMENTS_REFRESH_COMPLETE",
"item_id": "eVBnVMp7zdTJLkRNr33Rs6zr7KNJqBFL9DrE6",
"result": "SUCCESS",
"environment": "production"
}