Skip to main content
POST
Read a bank statement
Live capability. Melso runs this in production today. Partner keys reach it once your partner account is enabled. See Availability.
The format is detected from the content. Returns the movements, the balances, which movements are already saved and whether it can be saved as is.

Authorizations

Authorization
string
header
required

Your partner secret key, mk_live_… for real companies or mk_test_… for test companies. Keep it on your servers. See Authentication.

Path Parameters

company_id
string<uuid>
required

The company's ID. Every company-scoped call works in exactly this company.

Body

multipart/form-data
file
file
required

Norma 43, CSV, XLSX or PDF, up to 5 MB. CSV and XLSX need a header row naming a date and an amount, or a debit and a credit column.

bank_account_id
string<uuid>

The account. Without it, Melso uses the saved account with the file's IBAN, or creates one.

account_name
string
Maximum string length: 120
opening_balance
string

An amount in euros as a decimal string with two decimals, such as "121.00".

Pattern: ^-?[0-9]+\.[0-9]{2}$
Example:

"121.00"

closing_balance
string

An amount in euros as a decimal string with two decimals, such as "121.00".

Pattern: ^-?[0-9]+\.[0-9]{2}$
Example:

"121.00"

Response

What the file holds.

format
enum<string>
Available options:
norma43,
csv,
xlsx,
pdf
iban
string | null
currency
string
period_start
string<date>
period_end
string<date>
opening_balance
string | null
closing_balance
string | null
movement_total
string

An amount in euros as a decimal string with two decimals, such as "121.00".

Pattern: ^-?[0-9]+\.[0-9]{2}$
Example:

"121.00"

difference
string | null

How far the balances are from the movements.

bank_account
object | null
movements
object[]
new_movements
integer
duplicates
integer
questions
enum<string>[]

What a person must answer before saving.

Available options:
account,
balances
can_save
boolean