fix(export): use direct content endpoint for PDF statement downloads

This commit is contained in:
2025-07-26 20:54:39 +00:00
parent 0e403e1584
commit fb30c6f4e3
3 changed files with 15 additions and 18 deletions

View File

@@ -1,5 +1,12 @@
# Changelog # Changelog
## 2025-07-26 - 4.1.3 - fix(export)
Fix PDF statement download to use direct content endpoint
- Changed `downloadContent()` method to use the `/content` endpoint directly for PDF statements
- Removed unnecessary attachment lookup step that was causing issues
- Simplified the download process for customer statement exports
## 2025-07-25 - 4.1.1 - fix(httpclient) ## 2025-07-25 - 4.1.1 - fix(httpclient)
Fix query parameter handling for smartrequest compatibility Fix query parameter handling for smartrequest compatibility

View File

@@ -1,6 +1,6 @@
{ {
"name": "@apiclient.xyz/bunq", "name": "@apiclient.xyz/bunq",
"version": "4.1.2", "version": "4.1.3",
"private": false, "private": false,
"description": "A full-featured TypeScript/JavaScript client for the bunq API", "description": "A full-featured TypeScript/JavaScript client for the bunq API",
"type": "module", "type": "module",

View File

@@ -111,25 +111,15 @@ export class BunqExport {
throw new Error('Export ID not set'); throw new Error('Export ID not set');
} }
// First get the export details to find the attachment // For PDF statements, use the /content endpoint directly
const exportDetails = await this.get(); const downloadUrl = `${this.bunqAccount.apiContext.getBaseUrl()}/v1/user/${this.bunqAccount.userId}/monetary-account/${this.monetaryAccount.id}/customer-statement/${this.id}/content`;
if (!exportDetails.attachment || exportDetails.attachment.length === 0) {
throw new Error('Export has no attachment');
}
const attachmentUuid = exportDetails.attachment[0].attachment_public_uuid; const response = await plugins.smartrequest.request(downloadUrl, {
method: 'GET',
// Download the attachment content headers: {
const response = await plugins.smartrequest.request( 'X-Bunq-Client-Authentication': this.bunqAccount.apiContext.getSession().getContext().sessionToken
`${this.bunqAccount.apiContext.getBaseUrl()}/v1/attachment-public/${attachmentUuid}/content`,
{
method: 'GET',
headers: {
'X-Bunq-Client-Authentication': this.bunqAccount.apiContext.getSession().getContext().sessionToken
}
} }
); });
return Buffer.from(response.body); return Buffer.from(response.body);
} }