Update Account
The Account Update API allows you to update an existing account. Use this endpoint when you need to modify account information or update the workflow configuration associated with an existing account.
Related guide: Account Creation and Updates
API Endpoint
Send a PUT request to the following endpoint:
PUT https://account.{{BASE_URL_EXTERNAL}}/api/v1/accounts/{accountId}
Replace accountId with the ID of the account you want to update.
Prerequisites
Before making the request, ensure that you have:
- An existing Jumio account.
- The account ID of the account you want to update.
- Valid API credentials for authentication.
- The required account information to include in the request.
Request Headers
Include the required authorization and content-type headers in your request.
| Header | Description |
|---|---|
Authorization | Bearer token used to authenticate the API request. |
Content-Type | Set to application/json to indicate that the request body contains JSON data. |
Path Parameters
| Parameter | Required | Description |
|---|---|---|
accountId | Yes | Unique identifier of the existing account you want to update. |
Request Body
Provide the account information you want to update in the JSON request body.
The request schema supports account-related properties, including customer references, reporting criteria, callback configuration, locale, workflow definition, and consent information.
Refer to the Account Update API reference for the complete list of supported properties, their data types, and required fields.
Success Response: 200 - OK
The request was successful. Jumio returns the updated account information.
Example Request Body
- JSON
- cURL
- Python
- Java
- PHP
- TypeScript
{
"userReference": "string",
"customerInternalReference": "string",
"reportingCriteria": "string",
"callbackUrl": "https://mypreferredendpoint.com/callback",
"tokenLifetime": "15m",
"web": {
"successUrl": "string",
"errorUrl": "string",
"locale": "string"
},
"workflowDefinition": {
"key": "10547",
"credentials": [
{
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"category": "ID",
"country": {
"predefinedType": "DEFINED",
"values": ["AUT"]
},
"type": {
"predefinedType": "DEFINED",
"values": ["DRIVING_LICENSE"]
}
}
],
"capabilities": {
"watchlistScreening": {},
"documentVerification": {
"enableExtraction": true
},
"ekycCheck": {
"searchType": "string"
},
"workflowDecision": {
"riskScoreRulesetId": "string",
"decisionLabelRulesetId": "string"
},
"ruleset": {
"ids": ["string"]
}
}
},
"userConsent": {
"userIp": "string",
"userLocation": {
"country": "string",
"state": "string"
},
"consent": {
"obtained": "yes",
"obtainedAt": "2022-07-20T17:20:35.000Z"
}
},
"overrideSettings": {
"property1": "string",
"property2": "string"
}
}
curl --request PUT \
--url 'https://account.{{BASE_URL_EXTERNAL}}/api/v1/accounts/{{accountId}}' \
--header 'Authorization: Bearer {{ACCESS_TOKEN}}' \
--header 'Content-Type: application/json' \
--data '{
"userReference": "string",
"customerInternalReference": "string",
"reportingCriteria": "string",
"callbackUrl": "https://mypreferredendpoint.com/callback",
"tokenLifetime": "15m",
"web": {
"successUrl": "string",
"errorUrl": "string",
"locale": "string"
},
"workflowDefinition": {
"key": "10547",
"credentials": [
{
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"category": "ID",
"country": {
"predefinedType": "DEFINED",
"values": ["AUT"]
},
"type": {
"predefinedType": "DEFINED",
"values": ["DRIVING_LICENSE"]
}
}
],
"capabilities": {
"watchlistScreening": {},
"documentVerification": {
"enableExtraction": true
},
"ekycCheck": {
"searchType": "string"
},
"workflowDecision": {
"riskScoreRulesetId": "string",
"decisionLabelRulesetId": "string"
},
"ruleset": {
"ids": ["string"]
}
}
},
"userConsent": {
"userIp": "string",
"userLocation": {
"country": "string",
"state": "string"
},
"consent": {
"obtained": "yes",
"obtainedAt": "2022-07-20T17:20:35.000Z"
}
},
"overrideSettings": {
"property1": "string",
"property2": "string"
}
}'
import requests
url = "https://account.{{BASE_URL_EXTERNAL}}/api/v1/accounts/{{accountId}}"
headers = {
"Authorization": "Bearer {{ACCESS_TOKEN}}",
"Content-Type": "application/json"
}
payload = {
"userReference": "string",
"customerInternalReference": "string",
"reportingCriteria": "string",
"callbackUrl": "https://mypreferredendpoint.com/callback",
"tokenLifetime": "15m",
"web": {
"successUrl": "string",
"errorUrl": "string",
"locale": "string"
},
"workflowDefinition": {
"key": "10547",
"credentials": [
{
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"category": "ID",
"country": {
"predefinedType": "DEFINED",
"values": ["AUT"]
},
"type": {
"predefinedType": "DEFINED",
"values": ["DRIVING_LICENSE"]
}
}
],
"capabilities": {
"watchlistScreening": {},
"documentVerification": {
"enableExtraction": True
},
"ekycCheck": {
"searchType": "string"
},
"workflowDecision": {
"riskScoreRulesetId": "string",
"decisionLabelRulesetId": "string"
},
"ruleset": {
"ids": ["string"]
}
}
},
"userConsent": {
"userIp": "string",
"userLocation": {
"country": "string",
"state": "string"
},
"consent": {
"obtained": "yes",
"obtainedAt": "2022-07-20T17:20:35.000Z"
}
},
"overrideSettings": {
"property1": "string",
"property2": "string"
}
}
response = requests.put(url, headers=headers, json=payload)
print(response.status_code)
print(response.json())
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class UpdateAccount {
public static void main(String[] args) throws Exception {
String url = "https://account.{{BASE_URL_EXTERNAL}}/api/v1/accounts/{{accountId}}";
String requestBody = """
{
"userReference": "string",
"customerInternalReference": "string",
"reportingCriteria": "string",
"callbackUrl": "https://mypreferredendpoint.com/callback",
"tokenLifetime": "15m",
"web": {
"successUrl": "string",
"errorUrl": "string",
"locale": "string"
},
"workflowDefinition": {
"key": "10547",
"credentials": [
{
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"category": "ID",
"country": {
"predefinedType": "DEFINED",
"values": ["AUT"]
},
"type": {
"predefinedType": "DEFINED",
"values": ["DRIVING_LICENSE"]
}
}
],
"capabilities": {
"watchlistScreening": {},
"documentVerification": {
"enableExtraction": true
},
"ekycCheck": {
"searchType": "string"
},
"workflowDecision": {
"riskScoreRulesetId": "string",
"decisionLabelRulesetId": "string"
},
"ruleset": {
"ids": ["string"]
}
}
},
"userConsent": {
"userIp": "string",
"userLocation": {
"country": "string",
"state": "string"
},
"consent": {
"obtained": "yes",
"obtainedAt": "2022-07-20T17:20:35.000Z"
}
},
"overrideSettings": {
"property1": "string",
"property2": "string"
}
}
""";
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create(url))
.header("Authorization", "Bearer {{ACCESS_TOKEN}}")
.header("Content-Type", "application/json")
.PUT(HttpRequest.BodyPublishers.ofString(requestBody))
.build();
HttpClient client = HttpClient.newHttpClient();
HttpResponse<String> response = client.send(
request,
HttpResponse.BodyHandlers.ofString()
);
System.out.println(response.statusCode());
System.out.println(response.body());
}
}
<?php
$url = "https://account.{{BASE_URL_EXTERNAL}}/api/v1/accounts/{{accountId}}";
$payload = [
"userReference" => "string",
"customerInternalReference" => "string",
"reportingCriteria" => "string",
"callbackUrl" => "https://mypreferredendpoint.com/callback",
"tokenLifetime" => "15m",
"web" => [
"successUrl" => "string",
"errorUrl" => "string",
"locale" => "string"
],
"workflowDefinition" => [
"key" => "10547",
"credentials" => [
[
"id" => "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"category" => "ID",
"country" => [
"predefinedType" => "DEFINED",
"values" => ["AUT"]
],
"type" => [
"predefinedType" => "DEFINED",
"values" => ["DRIVING_LICENSE"]
]
]
],
"capabilities" => [
"watchlistScreening" => (object) [],
"documentVerification" => [
"enableExtraction" => true
],
"ekycCheck" => [
"searchType" => "string"
],
"workflowDecision" => [
"riskScoreRulesetId" => "string",
"decisionLabelRulesetId" => "string"
],
"ruleset" => [
"ids" => ["string"]
]
]
],
"userConsent" => [
"userIp" => "string",
"userLocation" => [
"country" => "string",
"state" => "string"
],
"consent" => [
"obtained" => "yes",
"obtainedAt" => "2022-07-20T17:20:35.000Z"
]
],
"overrideSettings" => [
"property1" => "string",
"property2" => "string"
]
];
$ch = curl_init($url);
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode($payload),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer {{ACCESS_TOKEN}}",
"Content-Type: application/json"
]
]);
$response = curl_exec($ch);
echo $response;
curl_close($ch);
?>
const url = 'https://account.{{BASE_URL_EXTERNAL}}/api/v1/accounts/{{accountId}}';
const payload = {
userReference: 'string',
customerInternalReference: 'string',
reportingCriteria: 'string',
callbackUrl: 'https://mypreferredendpoint.com/callback',
tokenLifetime: '15m',
web: {
successUrl: 'string',
errorUrl: 'string',
locale: 'string'
},
workflowDefinition: {
key: '10547',
credentials: [
{
id: '497f6eca-6276-4993-bfeb-53cbbbba6f08',
category: 'ID',
country: {
predefinedType: 'DEFINED',
values: ['AUT']
},
type: {
predefinedType: 'DEFINED',
values: ['DRIVING_LICENSE']
}
}
],
capabilities: {
watchlistScreening: {},
documentVerification: {
enableExtraction: true
},
ekycCheck: {
searchType: 'string'
},
workflowDecision: {
riskScoreRulesetId: 'string',
decisionLabelRulesetId: 'string'
},
ruleset: {
ids: ['string']
}
}
},
userConsent: {
userIp: 'string',
userLocation: {
country: 'string',
state: 'string'
},
consent: {
obtained: 'yes',
obtainedAt: '2022-07-20T17:20:35.000Z'
}
},
overrideSettings: {
property1: 'string',
property2: 'string'
}
};
const response = await fetch(url, {
method: 'PUT',
headers: {
Authorization: 'Bearer {{ACCESS_TOKEN}}',
'Content-Type': 'application/json'
},
body: JSON.stringify(payload)
});
console.log(response.status);
console.log(await response.json());
Response
{
"timestamp": "2019-08-24T14:15:22Z",
"account": {
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"
},
"web": {
"href": "http://example.com",
"successUrl": "http://example.com",
"errorUrl": "http://example.com"
},
"sdk": {
"token": "string"
},
"workflowExecution": {
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"credentials": [
{
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"label": "string",
"category": "ID",
"country": {
"predefinedType": "DEFINED",
"values": ["AUT"]
},
"type": {
"predefinedType": "DEFINED",
"values": ["DRIVING_LICENSE"]
},
"allowedChannels": ["string"],
"api": {
"token": "string",
"parts": {
"front": "http://example.com",
"back": "http://example.com",
"face": "http://example.com",
"facemap": "http://example.com",
"prepared_data": "http://example.com",
"device_risk": "http://example.com",
"document": "http://example.com"
},
"workflowExecution": "http://example.com"
}
}
]
}
}
Error Responses
| Status Code | Description | Possible Cause |
|---|---|---|
400 | Bad Request | The request contains invalid or missing information. |
403 | Forbidden | The authenticated user does not have permission to perform the requested operation. |
404 | Not Found | The specified account or API endpoint could not be found. |
Refer to the response examples and schemas in the Account Update API reference for the corresponding error details.
Troubleshooting
If your Account Update request fails, check the following:
- Incorrect HTTP method: Use PUT for account updates.
- Incorrect account ID: Verify that the account ID exists and is associated with the correct tenant.
- Invalid request body: Check that the JSON is valid and includes all required properties.
- Unsupported content type: Send the request as JSON using Content-Type: application/json.
- Insufficient permissions: Verify that your API credentials have permission to update the account.