curl --request PUT \
--url https://api.rrc.dev.finventi.com/reports/mai55/v1/submissions/{submissionId}/sipl/persons/{clientPersonId} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"clientPersonId": "CLIENT-000123",
"individual": {
"firstName": "Jonas",
"lastName": "Jonaitis-Petraitis",
"personCode": "39001010000"
},
"accounts": [
{
"accountNumber": "LT121000011101001000",
"accountType": "CURRENT_ACCOUNT",
"income": 19100
}
]
}
'import requests
url = "https://api.rrc.dev.finventi.com/reports/mai55/v1/submissions/{submissionId}/sipl/persons/{clientPersonId}"
payload = {
"clientPersonId": "CLIENT-000123",
"individual": {
"firstName": "Jonas",
"lastName": "Jonaitis-Petraitis",
"personCode": "39001010000"
},
"accounts": [
{
"accountNumber": "LT121000011101001000",
"accountType": "CURRENT_ACCOUNT",
"income": 19100
}
]
}
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({
clientPersonId: 'CLIENT-000123',
individual: {firstName: 'Jonas', lastName: 'Jonaitis-Petraitis', personCode: '39001010000'},
accounts: [
{
accountNumber: 'LT121000011101001000',
accountType: 'CURRENT_ACCOUNT',
income: 19100
}
]
})
};
fetch('https://api.rrc.dev.finventi.com/reports/mai55/v1/submissions/{submissionId}/sipl/persons/{clientPersonId}', 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/mai55/v1/submissions/{submissionId}/sipl/persons/{clientPersonId}",
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([
'clientPersonId' => 'CLIENT-000123',
'individual' => [
'firstName' => 'Jonas',
'lastName' => 'Jonaitis-Petraitis',
'personCode' => '39001010000'
],
'accounts' => [
[
'accountNumber' => 'LT121000011101001000',
'accountType' => 'CURRENT_ACCOUNT',
'income' => 19100
]
]
]),
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/mai55/v1/submissions/{submissionId}/sipl/persons/{clientPersonId}"
payload := strings.NewReader("{\n \"clientPersonId\": \"CLIENT-000123\",\n \"individual\": {\n \"firstName\": \"Jonas\",\n \"lastName\": \"Jonaitis-Petraitis\",\n \"personCode\": \"39001010000\"\n },\n \"accounts\": [\n {\n \"accountNumber\": \"LT121000011101001000\",\n \"accountType\": \"CURRENT_ACCOUNT\",\n \"income\": 19100\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/mai55/v1/submissions/{submissionId}/sipl/persons/{clientPersonId}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"clientPersonId\": \"CLIENT-000123\",\n \"individual\": {\n \"firstName\": \"Jonas\",\n \"lastName\": \"Jonaitis-Petraitis\",\n \"personCode\": \"39001010000\"\n },\n \"accounts\": [\n {\n \"accountNumber\": \"LT121000011101001000\",\n \"accountType\": \"CURRENT_ACCOUNT\",\n \"income\": 19100\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.rrc.dev.finventi.com/reports/mai55/v1/submissions/{submissionId}/sipl/persons/{clientPersonId}")
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 \"clientPersonId\": \"CLIENT-000123\",\n \"individual\": {\n \"firstName\": \"Jonas\",\n \"lastName\": \"Jonaitis-Petraitis\",\n \"personCode\": \"39001010000\"\n },\n \"accounts\": [\n {\n \"accountNumber\": \"LT121000011101001000\",\n \"accountType\": \"CURRENT_ACCOUNT\",\n \"income\": 19100\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"status": "SUCCESS",
"clientPersonId": "CLIENT-000123",
"errors": []
}{
"status": "FAILED",
"clientPersonId": "CLIENT-000123",
"errors": [
{
"fields": [
"clientPersonId"
],
"message": "Person 'CLIENT-000123' is not in this round and has nothing reported for 2025 to amend; add it with POST"
}
]
}Update a SIPL person
Amend a person by your clientPersonId.
curl --request PUT \
--url https://api.rrc.dev.finventi.com/reports/mai55/v1/submissions/{submissionId}/sipl/persons/{clientPersonId} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"clientPersonId": "CLIENT-000123",
"individual": {
"firstName": "Jonas",
"lastName": "Jonaitis-Petraitis",
"personCode": "39001010000"
},
"accounts": [
{
"accountNumber": "LT121000011101001000",
"accountType": "CURRENT_ACCOUNT",
"income": 19100
}
]
}
'import requests
url = "https://api.rrc.dev.finventi.com/reports/mai55/v1/submissions/{submissionId}/sipl/persons/{clientPersonId}"
payload = {
"clientPersonId": "CLIENT-000123",
"individual": {
"firstName": "Jonas",
"lastName": "Jonaitis-Petraitis",
"personCode": "39001010000"
},
"accounts": [
{
"accountNumber": "LT121000011101001000",
"accountType": "CURRENT_ACCOUNT",
"income": 19100
}
]
}
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({
clientPersonId: 'CLIENT-000123',
individual: {firstName: 'Jonas', lastName: 'Jonaitis-Petraitis', personCode: '39001010000'},
accounts: [
{
accountNumber: 'LT121000011101001000',
accountType: 'CURRENT_ACCOUNT',
income: 19100
}
]
})
};
fetch('https://api.rrc.dev.finventi.com/reports/mai55/v1/submissions/{submissionId}/sipl/persons/{clientPersonId}', 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/mai55/v1/submissions/{submissionId}/sipl/persons/{clientPersonId}",
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([
'clientPersonId' => 'CLIENT-000123',
'individual' => [
'firstName' => 'Jonas',
'lastName' => 'Jonaitis-Petraitis',
'personCode' => '39001010000'
],
'accounts' => [
[
'accountNumber' => 'LT121000011101001000',
'accountType' => 'CURRENT_ACCOUNT',
'income' => 19100
]
]
]),
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/mai55/v1/submissions/{submissionId}/sipl/persons/{clientPersonId}"
payload := strings.NewReader("{\n \"clientPersonId\": \"CLIENT-000123\",\n \"individual\": {\n \"firstName\": \"Jonas\",\n \"lastName\": \"Jonaitis-Petraitis\",\n \"personCode\": \"39001010000\"\n },\n \"accounts\": [\n {\n \"accountNumber\": \"LT121000011101001000\",\n \"accountType\": \"CURRENT_ACCOUNT\",\n \"income\": 19100\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/mai55/v1/submissions/{submissionId}/sipl/persons/{clientPersonId}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"clientPersonId\": \"CLIENT-000123\",\n \"individual\": {\n \"firstName\": \"Jonas\",\n \"lastName\": \"Jonaitis-Petraitis\",\n \"personCode\": \"39001010000\"\n },\n \"accounts\": [\n {\n \"accountNumber\": \"LT121000011101001000\",\n \"accountType\": \"CURRENT_ACCOUNT\",\n \"income\": 19100\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.rrc.dev.finventi.com/reports/mai55/v1/submissions/{submissionId}/sipl/persons/{clientPersonId}")
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 \"clientPersonId\": \"CLIENT-000123\",\n \"individual\": {\n \"firstName\": \"Jonas\",\n \"lastName\": \"Jonaitis-Petraitis\",\n \"personCode\": \"39001010000\"\n },\n \"accounts\": [\n {\n \"accountNumber\": \"LT121000011101001000\",\n \"accountType\": \"CURRENT_ACCOUNT\",\n \"income\": 19100\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"status": "SUCCESS",
"clientPersonId": "CLIENT-000123",
"errors": []
}{
"status": "FAILED",
"clientPersonId": "CLIENT-000123",
"errors": [
{
"fields": [
"clientPersonId"
],
"message": "Person 'CLIENT-000123' is not in this round and has nothing reported for 2025 to amend; add it with POST"
}
]
}Authorizations
The access token received from the authorization server in the OAuth 2.0 flow.
Body
A person reported under SIPL, with every account of theirs you paid income into. The person is the unit of reporting: it becomes exactly one reportable person entry, and a correction replaces it whole, accounts included. SIPL reports legal entities as well as natural persons, so send either individual or organisation. Only persons whose income across all their accounts reaches 15000 EUR are reportable; the total is summed from the accounts rather than sent.
Your own stable id for this person. Identifies them within the submission, so it must be unique across the persons you push, and it is how you address them on update and delete.
255"CLIENT-000123"
List of accounts with the income paid into each of them
1 - 1000 elementsShow child attributes
Show child attributes
The reportable natural person. Given instead of organisation.
Show child attributes
Show child attributes
The reportable legal entity. Given instead of individual.
Show child attributes
Show child attributes
Response
Person updated
Result of pushing, updating or deleting a single person