curl --request POST \
--url https://api.owem.com.br/v4/i/ledger/extract \
--header 'Authorization: <authorization>' \
--header 'Content-Type: application/json' \
--data '
{
"accountId": "<string>",
"startDate": {},
"endDate": {},
"format": "<string>",
"options": {
"options.sections": {
"summary": true,
"monthlyTable": true,
"monthSummary": true,
"transactionTable": true
},
"options.columns": {
"dateTime": true,
"type": true,
"description": true,
"endToEndId": true,
"payerReceiver": true,
"payerBankInfo": true,
"grossAmount": true,
"fee": true,
"netAmount": true,
"status": true
}
}
}
'{
"requestId": "b38de769-1b3f-4730-b6e5-858a72982890",
"success": true,
"size": 1,
"data": {
"success": true,
"extractId": "bd17bf27-1b14-490d-bcd8-ab6e679010ff",
"status": "new"
}
}
Request the asynchronous generation of a bank statement in PDF or CSV format for a specific account, with customizable sections and columns.
curl --request POST \
--url https://api.owem.com.br/v4/i/ledger/extract \
--header 'Authorization: <authorization>' \
--header 'Content-Type: application/json' \
--data '
{
"accountId": "<string>",
"startDate": {},
"endDate": {},
"format": "<string>",
"options": {
"options.sections": {
"summary": true,
"monthlyTable": true,
"monthSummary": true,
"transactionTable": true
},
"options.columns": {
"dateTime": true,
"type": true,
"description": true,
"endToEndId": true,
"payerReceiver": true,
"payerBankInfo": true,
"grossAmount": true,
"fee": true,
"netAmount": true,
"status": true
}
}
}
'{
"requestId": "b38de769-1b3f-4730-b6e5-858a72982890",
"success": true,
"size": 1,
"data": {
"success": true,
"extractId": "bd17bf27-1b14-490d-bcd8-ab6e679010ff",
"status": "new"
}
}
202 Accepted status and an extractId. Use the Get Generated Statement endpoint to check the status and get the download link when ready.
You can customize the statement content through the options field:
options.sections): choose which parts of the report to include — general summary, monthly table, monthly summary and/or transaction table.options.columns): choose which columns appear in the transaction table — date/time, type, description, E2E, payer/receiver, bank, amounts, status, etc.options field is not sent, all sections and columns are included by default.
Basic {Base64(API_KEY:API_SECRET)}ledger_extract:create scope on the API Key.1770778800000) or date string in YYYY-MM-DD format (e.g. "2026-02-11").1770951600000) or date string in YYYY-MM-DD format (e.g. "2026-02-13").pdf, csvShow options
Show sections
Show columns
{
"requestId": "b38de769-1b3f-4730-b6e5-858a72982890",
"success": true,
"size": 1,
"data": {
"success": true,
"extractId": "bd17bf27-1b14-490d-bcd8-ab6e679010ff",
"status": "new"
}
}
| Rule | Description |
|---|---|
accountId | Required. Must belong to the API Key user. |
startDate | Required. Timestamp in ms or YYYY-MM-DD string. |
endDate | Required. Timestamp in ms or YYYY-MM-DD string. |
startDate ≤ endDate | Start date cannot be after end date. |
| Maximum range | 365 days between startDate and endDate. |
format | Must be pdf or csv. Default: pdf. |
| HTTP | Description |
|---|---|
| 202 | Request accepted (asynchronous processing) |
| 400 | Validation failed |
| 401 | Invalid credentials |
| 403 | No permission for the account or insufficient scope |
| 429 | Rate limit exceeded |
| 500 | Internal error |
Request Statement
POST /v4/i/ledger/extract with the desired parameters. The API returns 202 with the extractId.Processing
new to processing.reportUrl is a signed URL valid for 24 hours. After this period, the URL expires and you will need to generate a new statement. We recommend downloading the file (PDF/CSV) as soon as the status is done.Was this page helpful?