/users/{userId}/accounts/{accountType}/export/{format}Download Account Statement
Downloads the account history for one user assigned to the authenticated broker and returns the file itself. A successful response is the PDF or CSV, not the usual JSON envelope.
The broker session is required. The user in the path must be assigned to that broker. USD is the public account type and is mapped to BUS_USD_Account before the statement is generated. Any other account type is rejected.
All body fields are optional. An empty body {} is valid and exports the account with newest transactions first. There are no query parameters. pageNumber and pageSize are not accepted.
Path variables
| Field | Type | Required | Possible values | Description |
|---|---|---|---|---|
userId | string | Required | — | Masked user id, same value used by the other broker user endpoints. |
accountType | string | Required | USD | Public account type. `USD` is mapped to `BUS_USD_Account`. Any other value is rejected. |
format | string | Required | pdf | csv | Statement file format. |
Headers
| Field | Type | Required | Possible values | Description |
|---|---|---|---|---|
session-token | string | Required | — | SessionToken obtained from the Create GMA Session endpoint. All secured endpoints require this header. |
Request body
| Field | Type | Required | Possible values | Description |
|---|---|---|---|---|
FromDate | string | Optional | ISO 8601 | Start of the date range (ISO 8601). Required when ToDate is sent. |
ToDate | string | Optional | ISO 8601 | End of the date range (ISO 8601). Must be on or after FromDate. |
Description | string | Optional | — | Text to match in the transaction description. |
TransferType | string | Optional | FVNet | Fee | ACH | WIRE | INTERNATIONAL_WIRE | STABLECOIN_WITHDRAW | CROSS_BORDER_AED_DOMESTIC | CROSS_BORDER_AED_WIRE | CROSS_BORDER_BRL_DOMESTIC | CROSS_BORDER_ARS_DOMESTIC | CROSS_BORDER_PEN_DOMESTIC | CROSS_BORDER_CLP_DOMESTIC | CROSS_BORDER_COP_DOMESTIC | CROSS_BORDER_DKK_DOMESTIC | CROSS_BORDER_IDR_DOMESTIC | CROSS_BORDER_AUD_DOMESTIC | CROSS_BORDER_MYR_DOMESTIC | CROSS_BORDER_KRW_DOMESTIC | CROSS_BORDER_THB_DOMESTIC | CROSS_BORDER_VND_DOMESTIC | CROSS_BORDER_CAD_DOMESTIC | CROSS_BORDER_CAD_WIRE | CROSS_BORDER_SEPA | CROSS_BORDER_EUR_WIRE | CROSS_BORDER_FASTER_PAYMENTS | CROSS_BORDER_GBP_WIRE | CROSS_BORDER_HKD_DOMESTIC | CROSS_BORDER_HKD_WIRE | CROSS_BORDER_JPY_DOMESTIC | CROSS_BORDER_JPY_WIRE | CROSS_BORDER_CLABE | CROSS_BORDER_MXN_WIRE | CROSS_BORDER_SGD_DOMESTIC | CROSS_BORDER_SGD_WIRE | CROSS_BORDER_ZAR_DOMESTIC | CROSS_BORDER_ZAR_WIRE | One public transfer type. |
OrderBy | string | Optional | dateDesc | dateAsc | amountAsc | amountDesc | Sort order. Defaults to dateDesc when omitted. |
FromDate is required when ToDate is sent, and FromDate cannot be after ToDate. USD is mapped to BUS_USD_Account before the statement is generated.
Additional info
| Field | Type | Required | Possible values | Description |
|---|---|---|---|---|
400 — Invalid date | object | Optional | — | FromDate or ToDate is not a valid ISO 8601 date. |
400 — ToDate without FromDate | object | Optional | — | ToDate was sent without FromDate. |
400 — FromDate after ToDate | object | Optional | — | FromDate is later than ToDate. |
400 — Unknown TransferType or OrderBy | object | Optional | — | TransferType or OrderBy is not one of the accepted values. |
400 — Unknown format or accountType | object | Optional | — | format must be pdf or csv. accountType must be USD. |
400 — Statement service rejected the input | object | Optional | — | The statement service rejected the input. ResponseErrors contains the service message, or Bad Request. |
401 — Unauthorized | object | Optional | — | Missing or invalid session-token. |
403 — Forbidden | object | Optional | — | User is not assigned to this broker, or the statement service denied access. |
404 — User not found | object | Optional | — | User was not found. |
500 — Unexpected failure | object | Optional | — | Unexpected failure while generating the statement. |
Example— 400 — Invalid date
{
"ResponseCode": 400,
"ResponseMessage": "BadRequest",
"ResponseData": null,
"ResponseErrors": [
"body[FromDate]: FromDate must be a valid ISO8601 date"
],
"RequestID": "<trace-id>"
}Example— 400 — ToDate without FromDate
{
"ResponseCode": 400,
"ResponseMessage": "BadRequest",
"ResponseData": null,
"ResponseErrors": [
"body[ToDate]: FromDate is required when ToDate is provided"
],
"RequestID": "<trace-id>"
}Example— 400 — FromDate after ToDate
{
"ResponseCode": 400,
"ResponseMessage": "BadRequest",
"ResponseData": null,
"ResponseErrors": [
"body[ToDate]: FromDate cannot be greater than ToDate"
],
"RequestID": "<trace-id>"
}Example— 400 — Unknown TransferType or OrderBy
{
"ResponseCode": 400,
"ResponseMessage": "BadRequest",
"ResponseData": null,
"ResponseErrors": [
"body[TransferType]: Invalid TransferType"
],
"RequestID": "<trace-id>"
}Example— 400 — Unknown format or accountType
{
"ResponseCode": 400,
"ResponseMessage": "BadRequest",
"ResponseData": null,
"ResponseErrors": [
"params[format]: format must be one of: pdf, csv"
],
"RequestID": "<trace-id>"
}Example— 400 — Statement service rejected the input
{
"ResponseCode": 400,
"ResponseMessage": "BadRequest",
"ResponseData": null,
"ResponseErrors": [
"Bad Request."
],
"RequestID": "<trace-id>"
}Example— 401 — Unauthorized
{
"ResponseCode": 401,
"ResponseMessage": "Unauthorized",
"ResponseData": null,
"ResponseErrors": [
"Unauthorized."
],
"RequestID": "<trace-id>"
}Example— 403 — Forbidden
{
"ResponseCode": 403,
"ResponseMessage": "Forbidden",
"ResponseData": null,
"ResponseErrors": [
"Forbidden."
],
"RequestID": "<trace-id>"
}Example— 404 — User not found
{
"ResponseCode": 404,
"ResponseMessage": "NotFound",
"ResponseData": null,
"ResponseErrors": [
"User not found"
],
"RequestID": "<trace-id>"
}Example— 500 — Unexpected failure
{
"ResponseCode": 500,
"ResponseMessage": "ServerError",
"ResponseData": null,
"ResponseErrors": [
"Something went wrong. Please try again later"
],
"RequestID": "<trace-id>"
}Response
| Field | Type | Possible values | Description |
|---|---|---|---|
Body | file | PDF bytes | CSV text | The statement file. Save it. Do not parse a successful response as JSON. |
Content-Type | string | application/pdf | text/csv | application/pdf or text/csv, or the type returned by the statement service. |
Content-Disposition | string | attachment; filename="statement-BUS_USD_Account.pdf" | attachment, with the filename from the statement service. Otherwise statement-BUS_USD_Account.pdf or statement-BUS_USD_Account.csv. |
Content-Length | integer | — | File size in bytes. |
HTTP 200 returns the file. Error responses use the standard broker JSON envelope shown under Additional info.
Requires `session-token: {SessionToken}` from Create GMA Session. Use the same client IP as authentication.