POST
/v1/parse Authenticated Parse a bank statement file and return its structured data as JSON. Useful for extracting transaction data without converting to another file format.
Parameters (multipart form)
| Name | Type | Required | Description |
|---|---|---|---|
file | File | Yes | The bank statement file to parse |
from | String | No | Input format (auto-detected if omitted) |
Response
Returns a JSON object with the detected format and an array of parsed statements, each containing account information, balances, and transactions.
Response — 200 OK
{
"format": "mt940",
"statements": [
{
"accountId": "123456789",
"statementNumber": "1",
"openingBalance": {
"date": "2026-01-01",
"amount": 1500.00,
"currency": "EUR"
},
"closingBalance": {
"date": "2026-01-31",
"amount": 2350.75,
"currency": "EUR"
},
"transactions": [
{
"date": "2026-01-15",
"amount": 850.75,
"type": "credit",
"description": "SALARY PAYMENT",
"reference": "SAL-2026-01"
}
]
}
]
} Examples
Parse an MT940 file
curl -X POST https://api.finconvert.dev/v1/parse \
-H "Authorization: Bearer fc_live_xxxxx" \ # Your API key
-F "file=@bank-statement.mt940" # Upload a local file Parse with fetch (Node.js)
const fs = require('fs')
const form = new FormData()
form.append('file', fs.createReadStream('statement.mt940'))
const response = await fetch('https://api.finconvert.dev/v1/parse', {
method: 'POST',
headers: { 'Authorization': 'Bearer fc_live_xxxxx' },
body: form,
})
const data = await response.json()
console.log(data.format) // "mt940"
console.log(data.statements.length) // number of statements Parse with requests
import requests
with open('statement.mt940', 'rb') as f:
response = requests.post(
'https://api.finconvert.dev/v1/parse',
headers={'Authorization': 'Bearer fc_live_xxxxx'},
files={'file': f},
)
data = response.json()
print(data['format']) # "mt940"
print(len(data['statements'])) # number of statements Error Responses
| Status | Code | Description |
|---|---|---|
400 | MISSING_FILE | No file in request body |
400 | UNSUPPORTED_FORMAT | The specified format is not supported |
400 | UNKNOWN_FORMAT | Could not detect the file format |
401 | UNAUTHORIZED | Missing or invalid API key |
See Error Handling for
the full list of error codes and best practices.
Ready to get started?
Get your API key from the dashboard and start converting bank statements.
Go to Dashboard