curl --request PUT \
--url https://api.rrc.dev.finventi.com/reports/crs/v1/submissions/{submissionId}/accounts/{accountNumber} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"accountNumber": "LT601010012345678901",
"accountNumberType": "IBAN",
"balance": 16980.1,
"currency": "EUR",
"accountType": "DEPOSITORY_ACCOUNT",
"openingType": "PREEXISTING_ACCOUNT",
"accountHolder": {
"selfCertification": "PROVIDED",
"organisation": {
"type": "REPORTABLE_PERSON",
"name": "UAB Inventi",
"nameType": "LEGAL",
"residenceCountryCodes": [
"LV"
],
"tins": [
{
"number": "39001011234",
"issuedBy": "LV"
}
],
"addresses": [
{
"addressFree": "Riga, Riga st. 1",
"countryCode": "LV",
"type": "REGISTRATION"
}
]
}
},
"payments": [
{
"type": "INTEREST",
"amount": 205.3,
"currency": "EUR"
}
]
}
'import requests
url = "https://api.rrc.dev.finventi.com/reports/crs/v1/submissions/{submissionId}/accounts/{accountNumber}"
payload = {
"accountNumber": "LT601010012345678901",
"accountNumberType": "IBAN",
"balance": 16980.1,
"currency": "EUR",
"accountType": "DEPOSITORY_ACCOUNT",
"openingType": "PREEXISTING_ACCOUNT",
"accountHolder": {
"selfCertification": "PROVIDED",
"organisation": {
"type": "REPORTABLE_PERSON",
"name": "UAB Inventi",
"nameType": "LEGAL",
"residenceCountryCodes": ["LV"],
"tins": [
{
"number": "39001011234",
"issuedBy": "LV"
}
],
"addresses": [
{
"addressFree": "Riga, Riga st. 1",
"countryCode": "LV",
"type": "REGISTRATION"
}
]
}
},
"payments": [
{
"type": "INTEREST",
"amount": 205.3,
"currency": "EUR"
}
]
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
accountNumber: 'LT601010012345678901',
accountNumberType: 'IBAN',
balance: 16980.1,
currency: 'EUR',
accountType: 'DEPOSITORY_ACCOUNT',
openingType: 'PREEXISTING_ACCOUNT',
accountHolder: {
selfCertification: 'PROVIDED',
organisation: {
type: 'REPORTABLE_PERSON',
name: 'UAB Inventi',
nameType: 'LEGAL',
residenceCountryCodes: ['LV'],
tins: [{number: '39001011234', issuedBy: 'LV'}],
addresses: [{addressFree: 'Riga, Riga st. 1', countryCode: 'LV', type: 'REGISTRATION'}]
}
},
payments: [{type: 'INTEREST', amount: 205.3, currency: 'EUR'}]
})
};
fetch('https://api.rrc.dev.finventi.com/reports/crs/v1/submissions/{submissionId}/accounts/{accountNumber}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.rrc.dev.finventi.com/reports/crs/v1/submissions/{submissionId}/accounts/{accountNumber}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'accountNumber' => 'LT601010012345678901',
'accountNumberType' => 'IBAN',
'balance' => 16980.1,
'currency' => 'EUR',
'accountType' => 'DEPOSITORY_ACCOUNT',
'openingType' => 'PREEXISTING_ACCOUNT',
'accountHolder' => [
'selfCertification' => 'PROVIDED',
'organisation' => [
'type' => 'REPORTABLE_PERSON',
'name' => 'UAB Inventi',
'nameType' => 'LEGAL',
'residenceCountryCodes' => [
'LV'
],
'tins' => [
[
'number' => '39001011234',
'issuedBy' => 'LV'
]
],
'addresses' => [
[
'addressFree' => 'Riga, Riga st. 1',
'countryCode' => 'LV',
'type' => 'REGISTRATION'
]
]
]
],
'payments' => [
[
'type' => 'INTEREST',
'amount' => 205.3,
'currency' => 'EUR'
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.rrc.dev.finventi.com/reports/crs/v1/submissions/{submissionId}/accounts/{accountNumber}"
payload := strings.NewReader("{\n \"accountNumber\": \"LT601010012345678901\",\n \"accountNumberType\": \"IBAN\",\n \"balance\": 16980.1,\n \"currency\": \"EUR\",\n \"accountType\": \"DEPOSITORY_ACCOUNT\",\n \"openingType\": \"PREEXISTING_ACCOUNT\",\n \"accountHolder\": {\n \"selfCertification\": \"PROVIDED\",\n \"organisation\": {\n \"type\": \"REPORTABLE_PERSON\",\n \"name\": \"UAB Inventi\",\n \"nameType\": \"LEGAL\",\n \"residenceCountryCodes\": [\n \"LV\"\n ],\n \"tins\": [\n {\n \"number\": \"39001011234\",\n \"issuedBy\": \"LV\"\n }\n ],\n \"addresses\": [\n {\n \"addressFree\": \"Riga, Riga st. 1\",\n \"countryCode\": \"LV\",\n \"type\": \"REGISTRATION\"\n }\n ]\n }\n },\n \"payments\": [\n {\n \"type\": \"INTEREST\",\n \"amount\": 205.3,\n \"currency\": \"EUR\"\n }\n ]\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.put("https://api.rrc.dev.finventi.com/reports/crs/v1/submissions/{submissionId}/accounts/{accountNumber}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"accountNumber\": \"LT601010012345678901\",\n \"accountNumberType\": \"IBAN\",\n \"balance\": 16980.1,\n \"currency\": \"EUR\",\n \"accountType\": \"DEPOSITORY_ACCOUNT\",\n \"openingType\": \"PREEXISTING_ACCOUNT\",\n \"accountHolder\": {\n \"selfCertification\": \"PROVIDED\",\n \"organisation\": {\n \"type\": \"REPORTABLE_PERSON\",\n \"name\": \"UAB Inventi\",\n \"nameType\": \"LEGAL\",\n \"residenceCountryCodes\": [\n \"LV\"\n ],\n \"tins\": [\n {\n \"number\": \"39001011234\",\n \"issuedBy\": \"LV\"\n }\n ],\n \"addresses\": [\n {\n \"addressFree\": \"Riga, Riga st. 1\",\n \"countryCode\": \"LV\",\n \"type\": \"REGISTRATION\"\n }\n ]\n }\n },\n \"payments\": [\n {\n \"type\": \"INTEREST\",\n \"amount\": 205.3,\n \"currency\": \"EUR\"\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.rrc.dev.finventi.com/reports/crs/v1/submissions/{submissionId}/accounts/{accountNumber}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"accountNumber\": \"LT601010012345678901\",\n \"accountNumberType\": \"IBAN\",\n \"balance\": 16980.1,\n \"currency\": \"EUR\",\n \"accountType\": \"DEPOSITORY_ACCOUNT\",\n \"openingType\": \"PREEXISTING_ACCOUNT\",\n \"accountHolder\": {\n \"selfCertification\": \"PROVIDED\",\n \"organisation\": {\n \"type\": \"REPORTABLE_PERSON\",\n \"name\": \"UAB Inventi\",\n \"nameType\": \"LEGAL\",\n \"residenceCountryCodes\": [\n \"LV\"\n ],\n \"tins\": [\n {\n \"number\": \"39001011234\",\n \"issuedBy\": \"LV\"\n }\n ],\n \"addresses\": [\n {\n \"addressFree\": \"Riga, Riga st. 1\",\n \"countryCode\": \"LV\",\n \"type\": \"REGISTRATION\"\n }\n ]\n }\n },\n \"payments\": [\n {\n \"type\": \"INTEREST\",\n \"amount\": 205.3,\n \"currency\": \"EUR\"\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"status": "SUCCESS",
"accountNumber": "LT601010012345678901"
}{
"status": "FAILED",
"accountNumber": "LT601010012345678901",
"errors": [
{
"fields": [
"accountNumber"
],
"message": "Account 'LT601010012345678901' has nothing reported for 2025 to correct; add it with POST"
}
]
}Update an account
Amend an account by its account number.
curl --request PUT \
--url https://api.rrc.dev.finventi.com/reports/crs/v1/submissions/{submissionId}/accounts/{accountNumber} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"accountNumber": "LT601010012345678901",
"accountNumberType": "IBAN",
"balance": 16980.1,
"currency": "EUR",
"accountType": "DEPOSITORY_ACCOUNT",
"openingType": "PREEXISTING_ACCOUNT",
"accountHolder": {
"selfCertification": "PROVIDED",
"organisation": {
"type": "REPORTABLE_PERSON",
"name": "UAB Inventi",
"nameType": "LEGAL",
"residenceCountryCodes": [
"LV"
],
"tins": [
{
"number": "39001011234",
"issuedBy": "LV"
}
],
"addresses": [
{
"addressFree": "Riga, Riga st. 1",
"countryCode": "LV",
"type": "REGISTRATION"
}
]
}
},
"payments": [
{
"type": "INTEREST",
"amount": 205.3,
"currency": "EUR"
}
]
}
'import requests
url = "https://api.rrc.dev.finventi.com/reports/crs/v1/submissions/{submissionId}/accounts/{accountNumber}"
payload = {
"accountNumber": "LT601010012345678901",
"accountNumberType": "IBAN",
"balance": 16980.1,
"currency": "EUR",
"accountType": "DEPOSITORY_ACCOUNT",
"openingType": "PREEXISTING_ACCOUNT",
"accountHolder": {
"selfCertification": "PROVIDED",
"organisation": {
"type": "REPORTABLE_PERSON",
"name": "UAB Inventi",
"nameType": "LEGAL",
"residenceCountryCodes": ["LV"],
"tins": [
{
"number": "39001011234",
"issuedBy": "LV"
}
],
"addresses": [
{
"addressFree": "Riga, Riga st. 1",
"countryCode": "LV",
"type": "REGISTRATION"
}
]
}
},
"payments": [
{
"type": "INTEREST",
"amount": 205.3,
"currency": "EUR"
}
]
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
accountNumber: 'LT601010012345678901',
accountNumberType: 'IBAN',
balance: 16980.1,
currency: 'EUR',
accountType: 'DEPOSITORY_ACCOUNT',
openingType: 'PREEXISTING_ACCOUNT',
accountHolder: {
selfCertification: 'PROVIDED',
organisation: {
type: 'REPORTABLE_PERSON',
name: 'UAB Inventi',
nameType: 'LEGAL',
residenceCountryCodes: ['LV'],
tins: [{number: '39001011234', issuedBy: 'LV'}],
addresses: [{addressFree: 'Riga, Riga st. 1', countryCode: 'LV', type: 'REGISTRATION'}]
}
},
payments: [{type: 'INTEREST', amount: 205.3, currency: 'EUR'}]
})
};
fetch('https://api.rrc.dev.finventi.com/reports/crs/v1/submissions/{submissionId}/accounts/{accountNumber}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.rrc.dev.finventi.com/reports/crs/v1/submissions/{submissionId}/accounts/{accountNumber}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'accountNumber' => 'LT601010012345678901',
'accountNumberType' => 'IBAN',
'balance' => 16980.1,
'currency' => 'EUR',
'accountType' => 'DEPOSITORY_ACCOUNT',
'openingType' => 'PREEXISTING_ACCOUNT',
'accountHolder' => [
'selfCertification' => 'PROVIDED',
'organisation' => [
'type' => 'REPORTABLE_PERSON',
'name' => 'UAB Inventi',
'nameType' => 'LEGAL',
'residenceCountryCodes' => [
'LV'
],
'tins' => [
[
'number' => '39001011234',
'issuedBy' => 'LV'
]
],
'addresses' => [
[
'addressFree' => 'Riga, Riga st. 1',
'countryCode' => 'LV',
'type' => 'REGISTRATION'
]
]
]
],
'payments' => [
[
'type' => 'INTEREST',
'amount' => 205.3,
'currency' => 'EUR'
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.rrc.dev.finventi.com/reports/crs/v1/submissions/{submissionId}/accounts/{accountNumber}"
payload := strings.NewReader("{\n \"accountNumber\": \"LT601010012345678901\",\n \"accountNumberType\": \"IBAN\",\n \"balance\": 16980.1,\n \"currency\": \"EUR\",\n \"accountType\": \"DEPOSITORY_ACCOUNT\",\n \"openingType\": \"PREEXISTING_ACCOUNT\",\n \"accountHolder\": {\n \"selfCertification\": \"PROVIDED\",\n \"organisation\": {\n \"type\": \"REPORTABLE_PERSON\",\n \"name\": \"UAB Inventi\",\n \"nameType\": \"LEGAL\",\n \"residenceCountryCodes\": [\n \"LV\"\n ],\n \"tins\": [\n {\n \"number\": \"39001011234\",\n \"issuedBy\": \"LV\"\n }\n ],\n \"addresses\": [\n {\n \"addressFree\": \"Riga, Riga st. 1\",\n \"countryCode\": \"LV\",\n \"type\": \"REGISTRATION\"\n }\n ]\n }\n },\n \"payments\": [\n {\n \"type\": \"INTEREST\",\n \"amount\": 205.3,\n \"currency\": \"EUR\"\n }\n ]\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.put("https://api.rrc.dev.finventi.com/reports/crs/v1/submissions/{submissionId}/accounts/{accountNumber}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"accountNumber\": \"LT601010012345678901\",\n \"accountNumberType\": \"IBAN\",\n \"balance\": 16980.1,\n \"currency\": \"EUR\",\n \"accountType\": \"DEPOSITORY_ACCOUNT\",\n \"openingType\": \"PREEXISTING_ACCOUNT\",\n \"accountHolder\": {\n \"selfCertification\": \"PROVIDED\",\n \"organisation\": {\n \"type\": \"REPORTABLE_PERSON\",\n \"name\": \"UAB Inventi\",\n \"nameType\": \"LEGAL\",\n \"residenceCountryCodes\": [\n \"LV\"\n ],\n \"tins\": [\n {\n \"number\": \"39001011234\",\n \"issuedBy\": \"LV\"\n }\n ],\n \"addresses\": [\n {\n \"addressFree\": \"Riga, Riga st. 1\",\n \"countryCode\": \"LV\",\n \"type\": \"REGISTRATION\"\n }\n ]\n }\n },\n \"payments\": [\n {\n \"type\": \"INTEREST\",\n \"amount\": 205.3,\n \"currency\": \"EUR\"\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.rrc.dev.finventi.com/reports/crs/v1/submissions/{submissionId}/accounts/{accountNumber}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"accountNumber\": \"LT601010012345678901\",\n \"accountNumberType\": \"IBAN\",\n \"balance\": 16980.1,\n \"currency\": \"EUR\",\n \"accountType\": \"DEPOSITORY_ACCOUNT\",\n \"openingType\": \"PREEXISTING_ACCOUNT\",\n \"accountHolder\": {\n \"selfCertification\": \"PROVIDED\",\n \"organisation\": {\n \"type\": \"REPORTABLE_PERSON\",\n \"name\": \"UAB Inventi\",\n \"nameType\": \"LEGAL\",\n \"residenceCountryCodes\": [\n \"LV\"\n ],\n \"tins\": [\n {\n \"number\": \"39001011234\",\n \"issuedBy\": \"LV\"\n }\n ],\n \"addresses\": [\n {\n \"addressFree\": \"Riga, Riga st. 1\",\n \"countryCode\": \"LV\",\n \"type\": \"REGISTRATION\"\n }\n ]\n }\n },\n \"payments\": [\n {\n \"type\": \"INTEREST\",\n \"amount\": 205.3,\n \"currency\": \"EUR\"\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"status": "SUCCESS",
"accountNumber": "LT601010012345678901"
}{
"status": "FAILED",
"accountNumber": "LT601010012345678901",
"errors": [
{
"fields": [
"accountNumber"
],
"message": "Account 'LT601010012345678901' has nothing reported for 2025 to correct; add it with POST"
}
]
}Authorizations
The access token received from the authorization server in the OAuth 2.0 flow.
Body
A reportable financial account. Push the account as it stands, with its holder and any controlling persons attached to it. Each account you push becomes exactly one account report.
Account number, or its functional equivalent where the account has no number. Identifies the account within the submission, so it must be unique across the accounts you push.
200"LT601010012345678901"
Type of the account number. IBAN values are checked against the IBAN structure.
IBAN, OBAN, ISIN, OSIN, OTHER, ELECTRONIC_MONEY_PRODUCT "IBAN"
Balance or value at the end of the reporting year. Must be 0 when account is closed.
12345.67
Currency the balance is denominated in, ISO 4217
1"EUR"
The reportable holder of the account.
Show child attributes
Show child attributes
Type of financial account maintained for the holder.
DEPOSITORY_ACCOUNT, CUSTODIAL_ACCOUNT, CASH_VALUE_INSURANCE_OR_ANNUITY_CONTRACT, DEBT_OR_EQUITY_INTEREST_IN_INVESTMENT_ENTITY, NOT_REPORTED "DEPOSITORY_ACCOUNT"
Whether the account is a new or a pre-existing account, which decides the due diligence procedure that applied to it.
NEW_ACCOUNT, PREEXISTING_ACCOUNT, NOT_REPORTED "PREEXISTING_ACCOUNT"
The account was closed during the reporting year
The account is dormant
The account is undocumented
Controlling persons of a passive non-financial entity holder. Required when the holder is an organisation of type PASSIVE_NFE_WITH_REPORTABLE_CONTROLLING_PERSONS, and not accepted otherwise.
Show child attributes
Show child attributes
4Show child attributes
Show child attributes
Number of joint account holders. Send it only where the account is jointly held.
1 <= x <= 2002
Response
Account updated
Result of pushing, updating or deleting a single account