List service requests
curl --request POST \
--url https://api.custody.api-zodia.io/v3/api/servicedesk/requests \
--header 'Content-Type: application/json' \
--header 'submitter-id: <submitter-id>' \
--data '
{
"productIds": [
"0x0014"
],
"serviceIds": [
"0x0014-006"
],
"requestTypes": [
"CREATE"
],
"requestIds": [
"SERV-REQ-YTYTY676H"
],
"endToEndIds": [
"<uuid>"
],
"statuses": [
"PENDING AUTHORISATION"
],
"modifiedAt": [
"2025-05-06"
],
"details": [
"<string>"
],
"entityIds": [
"walletid or transfer id"
],
"companyIds": [
"ZTEST"
],
"paginationLimit": 10,
"paginationOffset": 123,
"sort": {
"by": "id"
}
}
'import requests
url = "https://api.custody.api-zodia.io/v3/api/servicedesk/requests"
payload = {
"productIds": ["0x0014"],
"serviceIds": ["0x0014-006"],
"requestTypes": ["CREATE"],
"requestIds": ["SERV-REQ-YTYTY676H"],
"endToEndIds": ["<uuid>"],
"statuses": ["PENDING AUTHORISATION"],
"modifiedAt": ["2025-05-06"],
"details": ["<string>"],
"entityIds": ["walletid or transfer id"],
"companyIds": ["ZTEST"],
"paginationLimit": 10,
"paginationOffset": 123,
"sort": { "by": "id" }
}
headers = {
"submitter-id": "<submitter-id>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'submitter-id': '<submitter-id>', 'Content-Type': 'application/json'},
body: JSON.stringify({
productIds: ['0x0014'],
serviceIds: ['0x0014-006'],
requestTypes: ['CREATE'],
requestIds: ['SERV-REQ-YTYTY676H'],
endToEndIds: ['<uuid>'],
statuses: ['PENDING AUTHORISATION'],
modifiedAt: ['2025-05-06'],
details: ['<string>'],
entityIds: ['walletid or transfer id'],
companyIds: ['ZTEST'],
paginationLimit: 10,
paginationOffset: 123,
sort: {by: 'id'}
})
};
fetch('https://api.custody.api-zodia.io/v3/api/servicedesk/requests', 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.custody.api-zodia.io/v3/api/servicedesk/requests",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'productIds' => [
'0x0014'
],
'serviceIds' => [
'0x0014-006'
],
'requestTypes' => [
'CREATE'
],
'requestIds' => [
'SERV-REQ-YTYTY676H'
],
'endToEndIds' => [
'<uuid>'
],
'statuses' => [
'PENDING AUTHORISATION'
],
'modifiedAt' => [
'2025-05-06'
],
'details' => [
'<string>'
],
'entityIds' => [
'walletid or transfer id'
],
'companyIds' => [
'ZTEST'
],
'paginationLimit' => 10,
'paginationOffset' => 123,
'sort' => [
'by' => 'id'
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"submitter-id: <submitter-id>"
],
]);
$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.custody.api-zodia.io/v3/api/servicedesk/requests"
payload := strings.NewReader("{\n \"productIds\": [\n \"0x0014\"\n ],\n \"serviceIds\": [\n \"0x0014-006\"\n ],\n \"requestTypes\": [\n \"CREATE\"\n ],\n \"requestIds\": [\n \"SERV-REQ-YTYTY676H\"\n ],\n \"endToEndIds\": [\n \"<uuid>\"\n ],\n \"statuses\": [\n \"PENDING AUTHORISATION\"\n ],\n \"modifiedAt\": [\n \"2025-05-06\"\n ],\n \"details\": [\n \"<string>\"\n ],\n \"entityIds\": [\n \"walletid or transfer id\"\n ],\n \"companyIds\": [\n \"ZTEST\"\n ],\n \"paginationLimit\": 10,\n \"paginationOffset\": 123,\n \"sort\": {\n \"by\": \"id\"\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("submitter-id", "<submitter-id>")
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.post("https://api.custody.api-zodia.io/v3/api/servicedesk/requests")
.header("submitter-id", "<submitter-id>")
.header("Content-Type", "application/json")
.body("{\n \"productIds\": [\n \"0x0014\"\n ],\n \"serviceIds\": [\n \"0x0014-006\"\n ],\n \"requestTypes\": [\n \"CREATE\"\n ],\n \"requestIds\": [\n \"SERV-REQ-YTYTY676H\"\n ],\n \"endToEndIds\": [\n \"<uuid>\"\n ],\n \"statuses\": [\n \"PENDING AUTHORISATION\"\n ],\n \"modifiedAt\": [\n \"2025-05-06\"\n ],\n \"details\": [\n \"<string>\"\n ],\n \"entityIds\": [\n \"walletid or transfer id\"\n ],\n \"companyIds\": [\n \"ZTEST\"\n ],\n \"paginationLimit\": 10,\n \"paginationOffset\": 123,\n \"sort\": {\n \"by\": \"id\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.custody.api-zodia.io/v3/api/servicedesk/requests")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["submitter-id"] = '<submitter-id>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"productIds\": [\n \"0x0014\"\n ],\n \"serviceIds\": [\n \"0x0014-006\"\n ],\n \"requestTypes\": [\n \"CREATE\"\n ],\n \"requestIds\": [\n \"SERV-REQ-YTYTY676H\"\n ],\n \"endToEndIds\": [\n \"<uuid>\"\n ],\n \"statuses\": [\n \"PENDING AUTHORISATION\"\n ],\n \"modifiedAt\": [\n \"2025-05-06\"\n ],\n \"details\": [\n \"<string>\"\n ],\n \"entityIds\": [\n \"walletid or transfer id\"\n ],\n \"companyIds\": [\n \"ZTEST\"\n ],\n \"paginationLimit\": 10,\n \"paginationOffset\": 123,\n \"sort\": {\n \"by\": \"id\"\n }\n}"
response = http.request(request)
puts response.read_body{
"total": 123,
"items": [
{
"requestId": "SERV-REQ-HGYT65YT",
"serviceId": "0x0014-006",
"product": "CUSTODY",
"productId": "0x0014",
"endToEndId": "<string>",
"requestType": "uuid",
"payload": {},
"status": "PENDING CONFIRMATION",
"companyId": "ZTEST",
"businessObjects": {},
"createdBy": "api-maker@zodia.io",
"createdAt": "2025-05-27T09:54:03Z",
"updatedBy": "api-maker@zodia.io",
"updatedAt": "2025-05-27T09:54:03Z",
"expiresAt": "2025-05-27T09:54:03Z",
"entityId": "TRO-ZTEST-YTYTYU7687"
}
]
}{
"timestamp": "2021-10-27T14:30:13.912Z",
"title": "Method Not Allowed",
"status": 415,
"details": [
{
"message": "Available methods : GET,POST",
"code": "ER-204"
}
]
}{
"timestamp": "2021-10-27T14:30:13.912Z",
"title": "Method Not Allowed",
"status": 415,
"details": [
{
"message": "Available methods : GET,POST",
"code": "ER-204"
}
]
}{
"timestamp": "2021-10-27T14:30:13.912Z",
"title": "Method Not Allowed",
"status": 415,
"details": [
{
"message": "Available methods : GET,POST",
"code": "ER-204"
}
]
}ServiceDesk-V3
List service requests
Search past and present service requests.
POST
/
v3
/
api
/
servicedesk
/
requests
List service requests
curl --request POST \
--url https://api.custody.api-zodia.io/v3/api/servicedesk/requests \
--header 'Content-Type: application/json' \
--header 'submitter-id: <submitter-id>' \
--data '
{
"productIds": [
"0x0014"
],
"serviceIds": [
"0x0014-006"
],
"requestTypes": [
"CREATE"
],
"requestIds": [
"SERV-REQ-YTYTY676H"
],
"endToEndIds": [
"<uuid>"
],
"statuses": [
"PENDING AUTHORISATION"
],
"modifiedAt": [
"2025-05-06"
],
"details": [
"<string>"
],
"entityIds": [
"walletid or transfer id"
],
"companyIds": [
"ZTEST"
],
"paginationLimit": 10,
"paginationOffset": 123,
"sort": {
"by": "id"
}
}
'import requests
url = "https://api.custody.api-zodia.io/v3/api/servicedesk/requests"
payload = {
"productIds": ["0x0014"],
"serviceIds": ["0x0014-006"],
"requestTypes": ["CREATE"],
"requestIds": ["SERV-REQ-YTYTY676H"],
"endToEndIds": ["<uuid>"],
"statuses": ["PENDING AUTHORISATION"],
"modifiedAt": ["2025-05-06"],
"details": ["<string>"],
"entityIds": ["walletid or transfer id"],
"companyIds": ["ZTEST"],
"paginationLimit": 10,
"paginationOffset": 123,
"sort": { "by": "id" }
}
headers = {
"submitter-id": "<submitter-id>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'submitter-id': '<submitter-id>', 'Content-Type': 'application/json'},
body: JSON.stringify({
productIds: ['0x0014'],
serviceIds: ['0x0014-006'],
requestTypes: ['CREATE'],
requestIds: ['SERV-REQ-YTYTY676H'],
endToEndIds: ['<uuid>'],
statuses: ['PENDING AUTHORISATION'],
modifiedAt: ['2025-05-06'],
details: ['<string>'],
entityIds: ['walletid or transfer id'],
companyIds: ['ZTEST'],
paginationLimit: 10,
paginationOffset: 123,
sort: {by: 'id'}
})
};
fetch('https://api.custody.api-zodia.io/v3/api/servicedesk/requests', 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.custody.api-zodia.io/v3/api/servicedesk/requests",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'productIds' => [
'0x0014'
],
'serviceIds' => [
'0x0014-006'
],
'requestTypes' => [
'CREATE'
],
'requestIds' => [
'SERV-REQ-YTYTY676H'
],
'endToEndIds' => [
'<uuid>'
],
'statuses' => [
'PENDING AUTHORISATION'
],
'modifiedAt' => [
'2025-05-06'
],
'details' => [
'<string>'
],
'entityIds' => [
'walletid or transfer id'
],
'companyIds' => [
'ZTEST'
],
'paginationLimit' => 10,
'paginationOffset' => 123,
'sort' => [
'by' => 'id'
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"submitter-id: <submitter-id>"
],
]);
$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.custody.api-zodia.io/v3/api/servicedesk/requests"
payload := strings.NewReader("{\n \"productIds\": [\n \"0x0014\"\n ],\n \"serviceIds\": [\n \"0x0014-006\"\n ],\n \"requestTypes\": [\n \"CREATE\"\n ],\n \"requestIds\": [\n \"SERV-REQ-YTYTY676H\"\n ],\n \"endToEndIds\": [\n \"<uuid>\"\n ],\n \"statuses\": [\n \"PENDING AUTHORISATION\"\n ],\n \"modifiedAt\": [\n \"2025-05-06\"\n ],\n \"details\": [\n \"<string>\"\n ],\n \"entityIds\": [\n \"walletid or transfer id\"\n ],\n \"companyIds\": [\n \"ZTEST\"\n ],\n \"paginationLimit\": 10,\n \"paginationOffset\": 123,\n \"sort\": {\n \"by\": \"id\"\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("submitter-id", "<submitter-id>")
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.post("https://api.custody.api-zodia.io/v3/api/servicedesk/requests")
.header("submitter-id", "<submitter-id>")
.header("Content-Type", "application/json")
.body("{\n \"productIds\": [\n \"0x0014\"\n ],\n \"serviceIds\": [\n \"0x0014-006\"\n ],\n \"requestTypes\": [\n \"CREATE\"\n ],\n \"requestIds\": [\n \"SERV-REQ-YTYTY676H\"\n ],\n \"endToEndIds\": [\n \"<uuid>\"\n ],\n \"statuses\": [\n \"PENDING AUTHORISATION\"\n ],\n \"modifiedAt\": [\n \"2025-05-06\"\n ],\n \"details\": [\n \"<string>\"\n ],\n \"entityIds\": [\n \"walletid or transfer id\"\n ],\n \"companyIds\": [\n \"ZTEST\"\n ],\n \"paginationLimit\": 10,\n \"paginationOffset\": 123,\n \"sort\": {\n \"by\": \"id\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.custody.api-zodia.io/v3/api/servicedesk/requests")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["submitter-id"] = '<submitter-id>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"productIds\": [\n \"0x0014\"\n ],\n \"serviceIds\": [\n \"0x0014-006\"\n ],\n \"requestTypes\": [\n \"CREATE\"\n ],\n \"requestIds\": [\n \"SERV-REQ-YTYTY676H\"\n ],\n \"endToEndIds\": [\n \"<uuid>\"\n ],\n \"statuses\": [\n \"PENDING AUTHORISATION\"\n ],\n \"modifiedAt\": [\n \"2025-05-06\"\n ],\n \"details\": [\n \"<string>\"\n ],\n \"entityIds\": [\n \"walletid or transfer id\"\n ],\n \"companyIds\": [\n \"ZTEST\"\n ],\n \"paginationLimit\": 10,\n \"paginationOffset\": 123,\n \"sort\": {\n \"by\": \"id\"\n }\n}"
response = http.request(request)
puts response.read_body{
"total": 123,
"items": [
{
"requestId": "SERV-REQ-HGYT65YT",
"serviceId": "0x0014-006",
"product": "CUSTODY",
"productId": "0x0014",
"endToEndId": "<string>",
"requestType": "uuid",
"payload": {},
"status": "PENDING CONFIRMATION",
"companyId": "ZTEST",
"businessObjects": {},
"createdBy": "api-maker@zodia.io",
"createdAt": "2025-05-27T09:54:03Z",
"updatedBy": "api-maker@zodia.io",
"updatedAt": "2025-05-27T09:54:03Z",
"expiresAt": "2025-05-27T09:54:03Z",
"entityId": "TRO-ZTEST-YTYTYU7687"
}
]
}{
"timestamp": "2021-10-27T14:30:13.912Z",
"title": "Method Not Allowed",
"status": 415,
"details": [
{
"message": "Available methods : GET,POST",
"code": "ER-204"
}
]
}{
"timestamp": "2021-10-27T14:30:13.912Z",
"title": "Method Not Allowed",
"status": 415,
"details": [
{
"message": "Available methods : GET,POST",
"code": "ER-204"
}
]
}{
"timestamp": "2021-10-27T14:30:13.912Z",
"title": "Method Not Allowed",
"status": 415,
"details": [
{
"message": "Available methods : GET,POST",
"code": "ER-204"
}
]
}Headers
Email of API user submitting the request
Example:
"api-maker@zodia.io"
Body
application/json
Search by product IDs
Search by service IDs
Search by request types i.e. CREATE, UPDATE, DEACTIVATE
Search by request IDs
Search by customer provided end to end IDs
Search by statuses. Refer to section Status Reference for the full list
Search by entity IDs. Possible values are wallet IDs, transactions IDs (not exhaustive)
Number of items in response (default is 10)
Example:
10
Show child attributes
Show child attributes
⌘I