Retrieve products and services
curl --request POST \
--url https://api.custody.api-zodia.io/v3/api/servicedesk/products \
--header 'Content-Type: application/json' \
--header 'submitter-id: <submitter-id>' \
--data '
{
"products": [
"CUSTODY"
],
"productIds": [
"0x0013"
],
"serviceIds": [
"0x0013-001"
],
"serviceNames": [
"Custody Wallet Management"
],
"requestTypes": [
"CREATE"
]
}
'import requests
url = "https://api.custody.api-zodia.io/v3/api/servicedesk/products"
payload = {
"products": ["CUSTODY"],
"productIds": ["0x0013"],
"serviceIds": ["0x0013-001"],
"serviceNames": ["Custody Wallet Management"],
"requestTypes": ["CREATE"]
}
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({
products: ['CUSTODY'],
productIds: ['0x0013'],
serviceIds: ['0x0013-001'],
serviceNames: ['Custody Wallet Management'],
requestTypes: ['CREATE']
})
};
fetch('https://api.custody.api-zodia.io/v3/api/servicedesk/products', 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/products",
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([
'products' => [
'CUSTODY'
],
'productIds' => [
'0x0013'
],
'serviceIds' => [
'0x0013-001'
],
'serviceNames' => [
'Custody Wallet Management'
],
'requestTypes' => [
'CREATE'
]
]),
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/products"
payload := strings.NewReader("{\n \"products\": [\n \"CUSTODY\"\n ],\n \"productIds\": [\n \"0x0013\"\n ],\n \"serviceIds\": [\n \"0x0013-001\"\n ],\n \"serviceNames\": [\n \"Custody Wallet Management\"\n ],\n \"requestTypes\": [\n \"CREATE\"\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/products")
.header("submitter-id", "<submitter-id>")
.header("Content-Type", "application/json")
.body("{\n \"products\": [\n \"CUSTODY\"\n ],\n \"productIds\": [\n \"0x0013\"\n ],\n \"serviceIds\": [\n \"0x0013-001\"\n ],\n \"serviceNames\": [\n \"Custody Wallet Management\"\n ],\n \"requestTypes\": [\n \"CREATE\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.custody.api-zodia.io/v3/api/servicedesk/products")
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 \"products\": [\n \"CUSTODY\"\n ],\n \"productIds\": [\n \"0x0013\"\n ],\n \"serviceIds\": [\n \"0x0013-001\"\n ],\n \"serviceNames\": [\n \"Custody Wallet Management\"\n ],\n \"requestTypes\": [\n \"CREATE\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"items": [
{
"product": "CUSTODY",
"productId": 19,
"serviceId": "0x0013-001",
"serviceName": "Custody Wallet Management",
"requestType": "CREATE",
"description": "Custody Wallet",
"template": {
"name": [
"MY_Wallet"
],
"currency": [
"ETH | BTC"
],
"currencyId": [
"eth-Seth | btc-btc"
],
"walletOwnerId": [
"Wallet_Beneficiary_ID"
]
}
}
]
}{
"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"
}
]
}{
"timestamp": "2021-10-27T14:30:13.912Z",
"title": "Method Not Allowed",
"status": 415,
"details": [
{
"message": "Available methods : GET,POST",
"code": "ER-204"
}
]
}ServiceDesk-V3
Retrieve products and services
Available products and services are derived from the entitlements of the user
POST
/
v3
/
api
/
servicedesk
/
products
Retrieve products and services
curl --request POST \
--url https://api.custody.api-zodia.io/v3/api/servicedesk/products \
--header 'Content-Type: application/json' \
--header 'submitter-id: <submitter-id>' \
--data '
{
"products": [
"CUSTODY"
],
"productIds": [
"0x0013"
],
"serviceIds": [
"0x0013-001"
],
"serviceNames": [
"Custody Wallet Management"
],
"requestTypes": [
"CREATE"
]
}
'import requests
url = "https://api.custody.api-zodia.io/v3/api/servicedesk/products"
payload = {
"products": ["CUSTODY"],
"productIds": ["0x0013"],
"serviceIds": ["0x0013-001"],
"serviceNames": ["Custody Wallet Management"],
"requestTypes": ["CREATE"]
}
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({
products: ['CUSTODY'],
productIds: ['0x0013'],
serviceIds: ['0x0013-001'],
serviceNames: ['Custody Wallet Management'],
requestTypes: ['CREATE']
})
};
fetch('https://api.custody.api-zodia.io/v3/api/servicedesk/products', 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/products",
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([
'products' => [
'CUSTODY'
],
'productIds' => [
'0x0013'
],
'serviceIds' => [
'0x0013-001'
],
'serviceNames' => [
'Custody Wallet Management'
],
'requestTypes' => [
'CREATE'
]
]),
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/products"
payload := strings.NewReader("{\n \"products\": [\n \"CUSTODY\"\n ],\n \"productIds\": [\n \"0x0013\"\n ],\n \"serviceIds\": [\n \"0x0013-001\"\n ],\n \"serviceNames\": [\n \"Custody Wallet Management\"\n ],\n \"requestTypes\": [\n \"CREATE\"\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/products")
.header("submitter-id", "<submitter-id>")
.header("Content-Type", "application/json")
.body("{\n \"products\": [\n \"CUSTODY\"\n ],\n \"productIds\": [\n \"0x0013\"\n ],\n \"serviceIds\": [\n \"0x0013-001\"\n ],\n \"serviceNames\": [\n \"Custody Wallet Management\"\n ],\n \"requestTypes\": [\n \"CREATE\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.custody.api-zodia.io/v3/api/servicedesk/products")
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 \"products\": [\n \"CUSTODY\"\n ],\n \"productIds\": [\n \"0x0013\"\n ],\n \"serviceIds\": [\n \"0x0013-001\"\n ],\n \"serviceNames\": [\n \"Custody Wallet Management\"\n ],\n \"requestTypes\": [\n \"CREATE\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"items": [
{
"product": "CUSTODY",
"productId": 19,
"serviceId": "0x0013-001",
"serviceName": "Custody Wallet Management",
"requestType": "CREATE",
"description": "Custody Wallet",
"template": {
"name": [
"MY_Wallet"
],
"currency": [
"ETH | BTC"
],
"currencyId": [
"eth-Seth | btc-btc"
],
"walletOwnerId": [
"Wallet_Beneficiary_ID"
]
}
}
]
}{
"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"
}
]
}{
"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
Payload for filtering product catalog
Search by product offering i.e. NETWORK_MGMT, TRADING, CUSTODY
Search by product IDs
Search by service IDs
Search by service names. Note the search text needs to match the given service names
Search by request type i.e. CREATE, UPDATE or DEACTIVATE
Response
OK
Each serviceName, requestType and description combined uniquely identifies an operation on the platform. For the sample response on the right the serviceId 0x0013-001 allows the creation of a custody wallet
Show child attributes
Show child attributes
⌘I