curl --request PUT \
--url https://api.vivara.io/v1/scorings/{scoringId} \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"candidatures": [
{
"externalReference": "cand-001",
"members": [
{
"personalId": "12345678Z",
"workingStatus": "employed",
"netAnnualIncomeAmountInEuros": 25200
}
]
},
{
"externalReference": "cand-003",
"members": [
{
"personalId": "Y7654321G",
"workingStatus": "employed",
"netAnnualIncomeAmountInEuros": 31000
}
]
}
]
}
'import requests
url = "https://api.vivara.io/v1/scorings/{scoringId}"
payload = { "candidatures": [
{
"externalReference": "cand-001",
"members": [
{
"personalId": "12345678Z",
"workingStatus": "employed",
"netAnnualIncomeAmountInEuros": 25200
}
]
},
{
"externalReference": "cand-003",
"members": [
{
"personalId": "Y7654321G",
"workingStatus": "employed",
"netAnnualIncomeAmountInEuros": 31000
}
]
}
] }
headers = {
"X-API-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {'X-API-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
candidatures: [
{
externalReference: 'cand-001',
members: [
{
personalId: '12345678Z',
workingStatus: 'employed',
netAnnualIncomeAmountInEuros: 25200
}
]
},
{
externalReference: 'cand-003',
members: [
{
personalId: 'Y7654321G',
workingStatus: 'employed',
netAnnualIncomeAmountInEuros: 31000
}
]
}
]
})
};
fetch('https://api.vivara.io/v1/scorings/{scoringId}', 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.vivara.io/v1/scorings/{scoringId}",
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([
'candidatures' => [
[
'externalReference' => 'cand-001',
'members' => [
[
'personalId' => '12345678Z',
'workingStatus' => 'employed',
'netAnnualIncomeAmountInEuros' => 25200
]
]
],
[
'externalReference' => 'cand-003',
'members' => [
[
'personalId' => 'Y7654321G',
'workingStatus' => 'employed',
'netAnnualIncomeAmountInEuros' => 31000
]
]
]
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-API-Key: <api-key>"
],
]);
$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.vivara.io/v1/scorings/{scoringId}"
payload := strings.NewReader("{\n \"candidatures\": [\n {\n \"externalReference\": \"cand-001\",\n \"members\": [\n {\n \"personalId\": \"12345678Z\",\n \"workingStatus\": \"employed\",\n \"netAnnualIncomeAmountInEuros\": 25200\n }\n ]\n },\n {\n \"externalReference\": \"cand-003\",\n \"members\": [\n {\n \"personalId\": \"Y7654321G\",\n \"workingStatus\": \"employed\",\n \"netAnnualIncomeAmountInEuros\": 31000\n }\n ]\n }\n ]\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("X-API-Key", "<api-key>")
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.vivara.io/v1/scorings/{scoringId}")
.header("X-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"candidatures\": [\n {\n \"externalReference\": \"cand-001\",\n \"members\": [\n {\n \"personalId\": \"12345678Z\",\n \"workingStatus\": \"employed\",\n \"netAnnualIncomeAmountInEuros\": 25200\n }\n ]\n },\n {\n \"externalReference\": \"cand-003\",\n \"members\": [\n {\n \"personalId\": \"Y7654321G\",\n \"workingStatus\": \"employed\",\n \"netAnnualIncomeAmountInEuros\": 31000\n }\n ]\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.vivara.io/v1/scorings/{scoringId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["X-API-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"candidatures\": [\n {\n \"externalReference\": \"cand-001\",\n \"members\": [\n {\n \"personalId\": \"12345678Z\",\n \"workingStatus\": \"employed\",\n \"netAnnualIncomeAmountInEuros\": 25200\n }\n ]\n },\n {\n \"externalReference\": \"cand-003\",\n \"members\": [\n {\n \"personalId\": \"Y7654321G\",\n \"workingStatus\": \"employed\",\n \"netAnnualIncomeAmountInEuros\": 31000\n }\n ]\n }\n ]\n}"
response = http.request(request)
puts response.read_bodyUpdate a scoring
Replaces all candidatures and members and re-evaluates them synchronously.
The body contains only candidatures. postalCode and monthlyPaymentAmountInEuros stay fixed at creation; create a new scoring to change them.
Optional fields, income shapes and confidence rules are the same as creation. Omit workingStatus when it is unknown; explicit null is equivalent. Because PUT replaces all candidatures and members, omission clears any previously declared working status instead of preserving it. Send the complete current declaration for every member you want to keep.
Response. 204 with no body. Call GET to read the updated results.
Retries. Repeating the same request retries delinquency checks that failed with service-unavailable. Unchanged people reuse cached results.
Errors.
400— invalid shape, types or scoring identifiers.422— invalid domain values or limits (same codes as creation).404— the scoring does not exist or belongs to another client.
curl --request PUT \
--url https://api.vivara.io/v1/scorings/{scoringId} \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"candidatures": [
{
"externalReference": "cand-001",
"members": [
{
"personalId": "12345678Z",
"workingStatus": "employed",
"netAnnualIncomeAmountInEuros": 25200
}
]
},
{
"externalReference": "cand-003",
"members": [
{
"personalId": "Y7654321G",
"workingStatus": "employed",
"netAnnualIncomeAmountInEuros": 31000
}
]
}
]
}
'import requests
url = "https://api.vivara.io/v1/scorings/{scoringId}"
payload = { "candidatures": [
{
"externalReference": "cand-001",
"members": [
{
"personalId": "12345678Z",
"workingStatus": "employed",
"netAnnualIncomeAmountInEuros": 25200
}
]
},
{
"externalReference": "cand-003",
"members": [
{
"personalId": "Y7654321G",
"workingStatus": "employed",
"netAnnualIncomeAmountInEuros": 31000
}
]
}
] }
headers = {
"X-API-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {'X-API-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
candidatures: [
{
externalReference: 'cand-001',
members: [
{
personalId: '12345678Z',
workingStatus: 'employed',
netAnnualIncomeAmountInEuros: 25200
}
]
},
{
externalReference: 'cand-003',
members: [
{
personalId: 'Y7654321G',
workingStatus: 'employed',
netAnnualIncomeAmountInEuros: 31000
}
]
}
]
})
};
fetch('https://api.vivara.io/v1/scorings/{scoringId}', 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.vivara.io/v1/scorings/{scoringId}",
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([
'candidatures' => [
[
'externalReference' => 'cand-001',
'members' => [
[
'personalId' => '12345678Z',
'workingStatus' => 'employed',
'netAnnualIncomeAmountInEuros' => 25200
]
]
],
[
'externalReference' => 'cand-003',
'members' => [
[
'personalId' => 'Y7654321G',
'workingStatus' => 'employed',
'netAnnualIncomeAmountInEuros' => 31000
]
]
]
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-API-Key: <api-key>"
],
]);
$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.vivara.io/v1/scorings/{scoringId}"
payload := strings.NewReader("{\n \"candidatures\": [\n {\n \"externalReference\": \"cand-001\",\n \"members\": [\n {\n \"personalId\": \"12345678Z\",\n \"workingStatus\": \"employed\",\n \"netAnnualIncomeAmountInEuros\": 25200\n }\n ]\n },\n {\n \"externalReference\": \"cand-003\",\n \"members\": [\n {\n \"personalId\": \"Y7654321G\",\n \"workingStatus\": \"employed\",\n \"netAnnualIncomeAmountInEuros\": 31000\n }\n ]\n }\n ]\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("X-API-Key", "<api-key>")
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.vivara.io/v1/scorings/{scoringId}")
.header("X-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"candidatures\": [\n {\n \"externalReference\": \"cand-001\",\n \"members\": [\n {\n \"personalId\": \"12345678Z\",\n \"workingStatus\": \"employed\",\n \"netAnnualIncomeAmountInEuros\": 25200\n }\n ]\n },\n {\n \"externalReference\": \"cand-003\",\n \"members\": [\n {\n \"personalId\": \"Y7654321G\",\n \"workingStatus\": \"employed\",\n \"netAnnualIncomeAmountInEuros\": 31000\n }\n ]\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.vivara.io/v1/scorings/{scoringId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["X-API-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"candidatures\": [\n {\n \"externalReference\": \"cand-001\",\n \"members\": [\n {\n \"personalId\": \"12345678Z\",\n \"workingStatus\": \"employed\",\n \"netAnnualIncomeAmountInEuros\": 25200\n }\n ]\n },\n {\n \"externalReference\": \"cand-003\",\n \"members\": [\n {\n \"personalId\": \"Y7654321G\",\n \"workingStatus\": \"employed\",\n \"netAnnualIncomeAmountInEuros\": 31000\n }\n ]\n }\n ]\n}"
response = http.request(request)
puts response.read_bodyBody
Response
Scoring updated and re-evaluated.