Get Account Details List

POST https://trade-uk.sandbox.zodiamarkets.com/api/3/originator

List Account Details

Retrieve account details for the entity you have onboarded with Zodia Markets ( details include You / Your Entity name, address, IDs) and list of wallets and bank accounts that have been whitelisted and verified with Zodia Markets for the entity.


Request

Body Parameters

ParameterTypeRequiredDefaultDescription
accountGroupUuidStringNoDefault UUIDFilter Account Details by specific account group UUID. Will return Default Account Group if not provided. Note only one Entity is returned per Account Group
limitIntegerNo50Maximum results to return (1-200)
offsetIntegerNo0Offset for pagination

Example Request

{
  "accountGroupUuid": "20721252c-81ed-41be-bf4d-d51b8f2246b8",
  "limit": 50,
  "offset": 0
}

Response

Success Response (200 OK)

{
    "companyName": "TECH COMPANY PLC",
    "dateOfFormation": "2021-02-09",
    "countryOfFormation": "GB",
    "countryOfRegistration": "GB",
    "uuid": "603a341f-73d3-41ab-9666-24166312e43d",
    "clientShortcode": "TESTACCOUNT",
    "clientAccountGroupName": "Default",
    "clientAccountGroupUuid": "7687282f-1073-441b-9ff4-694e6b49effe",
    "type": "ENTITY",
    "kind": "ORIGINATOR",
    "phoneNumber": "+4479878767898",
    "website": "www.techcompany112311.com",
    "email": "[email protected]",
    "vasp": false,
    "enabled": true,
    "verified": true,
    "address": {
        "country": "GB",
        "city": "London",
        "street": "101 Test Street",
        "postalCode": "N5 POP",
        "stateProvince": "Greater London",
        "createdAt": "2026-05-12T17:00:00Z",
        "updatedAt": "2026-05-12T17:00:00Z"
    },
    "kycDetails": {
        "occupation": "Service Provider",
        "sourceOfFunds": "Trading",
        "methodOfVerification": "Online",
        "industryType": "Technology",
        "entityType": "",
        "natureOfActivity": "Off-Ramp",
        "beneficiaryOwnership": false,
        "createdAt": "2026-05-12T16:59:58Z",
        "updatedAt": "2026-05-12T16:59:58Z"
    },
    "associatedPersons": [
        {
            "firstname": "Joe",
            "lastname": "Bloggs",
            "dateOfBirth": "2011-05-06",
            "countryOfOrigin": "GB",
            "nationality": "GB",
            "uuid": "a11b5beb-c1e2-4918-ace1-99373ddf70a6",
            "clientShortcode": "hassanLimitsUAT",
            "type": "INDIVIDUAL",
            "kind": "AUTHORIZED_SIGNATORY",
            "phoneNumber": "",
            "website": "",
            "email": "",
            "createdAt": "2026-05-12T16:59:52Z",
            "updatedAt": "2026-05-12T16:59:52Z"
        }
    ],
    "identifications": [
        {
            "type": "OTHER",
            "number": "MS190987871B",
            "typeOther": "MSB",
            "createdAt": "2026-05-12T16:59:53Z",
            "updatedAt": "2026-05-12T16:59:53Z"
        },
        {
            "type": "BUSINESS_REGISTRATION",
            "number": "1019098988",
            "typeOther": "",
            "createdAt": "2026-05-12T16:59:53Z",
            "updatedAt": "2026-05-12T16:59:53Z"
        }
    ],
    "bankAccounts": [
        {
            "uuid": "aca1259e-1839-4c17-b612-82ebcc04d339",
            "bankName": "BACKUP BANK",
            "bankBranchName": "BACKUP BRANCH",
            "accountNumber": "109978736766",
            "accountAlias": "MY BACKUP BANK",
            "accountName": "TECH COMPANY PLC 2",
            "currency": "GBP",
            "iban": "GB0828972727222",
            "swiftBic": "BBXXX2L",
            "country": "GB",
            "city": "London",
            "street": "109 Bank Street",
            "postalCode": "EC1A AAB",
            "memo": "Please provide 2",
            "intermediaryBankCountry": "",
            "intermediaryBankSwiftBic": "",
            "enabled": true,
            "verified": true,
            "networkIds": [],
            "createdAt": "2026-05-12T16:59:50Z",
            "updatedAt": "2026-05-12T16:59:50Z"
        },
        {
            "uuid": "903730c4-e6c3-452e-babd-d4743efb9b07",
            "bankName": "TECH BANK",
            "bankBranchName": "TECH BRANCH",
            "accountNumber": "101099991",
            "accountAlias": "MY TECH BANK 1",
            "accountName": "TECH COMP LTD",
            "currency": "GBP",
            "iban": "GB190198198887",
            "swiftBic": "TBXXX",
            "country": "GB",
            "city": "London",
            "street": "101 Bank Street",
            "postalCode": "EC1A AAA",
            "memo": "Provide Reference",
            "intermediaryBankCountry": "",
            "intermediaryBankSwiftBic": "",
            "enabled": true,
            "verified": true,
            "networkIds": [],
            "createdAt": "2026-05-12T16:59:51Z",
            "updatedAt": "2026-05-12T16:59:51Z"
        }
    ],
    "wallets": [
        {
            "uuid": "f16186df-5cf5-4417-86eb-8cd65fab3348",
            "blockchain": "Ethereum",
            "asset": "USDC",
            "walletAddress": "0x982892872727",
            "alias": "MY USDC WALLET",
            "type": "SELF_HOSTED",
            "memo": "Main",
            "vasp": "",
            "executionProvider": "",
            "default": false,
            "enabled": true,
            "whitelisted": false,
            "createdAt": "2026-05-12T16:59:49Z",
            "updatedAt": "2026-05-12T16:59:49Z"
        },
        {
            "uuid": "b4494718-ddb2-4554-a65c-e06e64875923",
            "blockchain": "TRON",
            "asset": "USDT",
            "walletAddress": "0x98287272772221",
            "alias": "MY WALLET USDT",
            "type": "CUSTODY",
            "memo": "FORWARD",
            "vasp": "ZODIA_CUSTODY",
            "executionProvider": "Zodia",
            "default": false,
            "enabled": true,
            "whitelisted": false,
            "createdAt": "2026-05-12T16:59:48Z",
            "updatedAt": "2026-05-12T16:59:48Z"
        }
    ],
    "createdAt": "2026-05-12T16:54:02Z",
    "updatedAt": "2026-05-12T16:54:02Z"
}

Response Fields

Entity Object

FieldTypeDescription
uuidStringUnique identifier for the Entity
companyNameStringEntity name
typeStringENTITY or INDIVIDUAL
kindStringAlways ORIGINATOR
enabledBooleanWhether entity is enabled for trading
verifiedBooleanWhether entity has completed verification
vaspBooleanVirtual Asset Service Provider flag
clientShortcodeStringYour account identifier
clientAccountGroupNameStringAccount group (sub-account) name
clientAccountGroupUuidStringAccount group UUID
emailStringContact email
phoneNumberStringContact phone
websiteStringWebsite URL
dateOfFormationStringCompany formation date (YYYY-MM-DD)
countryOfFormationStringISO 3166-1 alpha-2 country code
countryOfRegistrationStringISO 3166-1 alpha-2 country code
addressObjectAddress details
kycDetailsObjectKYC and compliance information
identificationsArrayBusiness registration and tax identifications
bankAccountsArrayBank accounts configured for fiat settlement
walletsArrayCrypto wallet addresses for digital asset settlement
createdAtStringEntity creation timestamp (ISO 8601)
updatedAtStringLast update timestamp (ISO 8601)

Address

FieldTypeDescription
streetStringStreet address
cityStringCity
stateProvinceStringState or province
postalCodeStringPostal/ZIP code
countryStringISO 3166-1 alpha-2 country code
createdAtStringCreation timestamp (ISO 8601)
updatedAtStringLast update timestamp (ISO 8601)

KYC Details

FieldTypeDescription
occupationStringOccupation or business activity
sourceOfFundsStringSource of funds description
methodOfVerificationStringVerification method used
industryTypeStringIndustry classification
entityTypeStringLegal entity type
natureOfActivityStringNature of business activity
beneficiaryOwnershipBooleanBeneficiary ownership flag
createdAtStringCreation timestamp (ISO 8601)
updatedAtStringLast update timestamp (ISO 8601)

Identification Object

FieldTypeDescription
typeStringBUSINESS_REGISTRATION, LEI, PASSPORT, NATIONAL_ID, DRIVERS_LICENSE, SSN, TAX_ID, EIN, VAT_NUMBER, OTHER
numberStringIdentification number
typeOtherStringCustom type (if type is "OTHER")
createdAtStringCreation timestamp (ISO 8601)
updatedAtStringLast update timestamp (ISO 8601)

Bank Account Object

FieldTypeDescription
bankNameStringBank institution name
bankBranchNameStringBranch name
accountNumberStringBank account number
accountAliasStringFriendly alias for the account
accountNameStringAccount holder name
currencyStringAccount currency (ISO 4217)
ibanStringInternational Bank Account Number
swiftBicStringSWIFT/BIC code
countryStringISO 3166-1 alpha-2 country code
cityStringBank branch city
streetStringBank branch street address
postalCodeStringBank branch postal code
memoStringAdditional notes
enabledBooleanWhether account is enabled
verifiedBooleanWhether account is verified
createdAtStringCreation timestamp (ISO 8601)
updatedAtStringLast update timestamp (ISO 8601)

Wallet Object

FieldTypeDescription
uuidStringUnique identifier
blockchainStringBlockchain network (e.g., Ethereum, Polygon, TRON)
assetStringDigital asset symbol (e.g., USDC, USDT, BTC)
walletAddressStringBlockchain wallet address
aliasStringFriendly alias for the wallet
typeStringSELF_HOSTED or CUSTODY
memoStringAdditional notes
vaspStringVirtual Asset Service Provider name (if custody)
executionProviderStringExecution provider name (if applicable)
defaultBooleanWhether this is the default wallet for the asset
enabledBooleanWhether wallet is enabled for trading
whitelistedBooleanWhether wallet address is whitelisted
createdAtStringCreation timestamp (ISO 8601)
updatedAtStringLast update timestamp (ISO 8601)

Entity Status

You / Your Entity must be enabled and verified in order to trade.

FieldValueMeaning
enabledtrueEntity is active
enabledfalseEntity is inactive
verifiedtruePassed KYC/compliance checks
verifiedfalsePending verification

Wallet Status

For crypto settlement, wallets must be properly configured:

FieldValueRequired for Trading?
enabledtrue✅ Yes
whitelistedtrue✅ Yes
enabledfalse❌ No - wallet disabled
whitelistedfalse❌ No - wallet not whitelisted

Crypto Settlement: To use a wallet for settlement, the wallet must have enabled: true AND whitelisted: true, and match the asset being traded.


Pagination

Use max (1-200) and offset parameters to paginate through results.

Example: Get All Entities

def get_all_entities():
    all_entities = []
    offset = 0
    max_per_page = 200
    
    while True:
        response = make_api_request('POST', 'api/3/originator', {
            'max': max_per_page,
            'offset': offset
        })
        
        entities = response['data']
        all_entities.extend(entities)
        
        if len(entities) < max_per_page:
            break
        
        offset += max_per_page
    
    return all_entities

Code Examples

Python

import json
import hmac
import hashlib
import time
import requests

# Configuration
api_key = "your_api_key"
api_secret = "your_api_secret"
base_url = "https://trade-uk.sandbox.zodiamarkets.com"

# Request body
body = {
    "accountGroupUuid": "2073252c-81ed-41be-bf4d-d51b8f2246b8",
    "max": 50,
    "offset": 0
}
body_json = json.dumps(body)

# Generate signature
path = "api/3/originator"
tonce = str(int(time.time() * 1000000))
message = f"{path}\0{body_json}"
signature = hmac.new(
    api_secret.encode(),
    message.encode(),
    hashlib.sha512
).hexdigest()

# Make request
headers = {
    "Rest-Key": api_key,
    "Rest-Sign": signature,
    "Content-Type": "application/json"
}
response = requests.post(
    f"{base_url}/{path}",
    headers=headers,
    data=body_json
)

# Process response
if response.status_code == 200:
    entities = response.json()
    for entity in entities:
        print(f"\n{entity['companyName']}: {entity['uuid']}")
        print(f"  Enabled: {entity['enabled']}")
        print(f"  Verified: {entity['verified']}")
        print(f"  Wallets: {len(entity['wallets'])}")
        print(f"  Bank Accounts: {len(entity['bankAccounts'])}")
else:
    print(f"Error: {response.status_code}")
    print(response.text)

JavaScript (Node.js)

const crypto = require('crypto');
const axios = require('axios');

// Configuration
const apiKey = 'your_api_key';
const apiSecret = 'your_api_secret';
const baseUrl = 'https://trade-uk.sandbox.zodiamarkets.com';

// Request body
const body = {
  accountGroupUuid: '2073252c-81ed-41be-bf4d-d51b8f2246b8',
  max: 50,
  offset: 0
};
const bodyJson = JSON.stringify(body);

// Generate signature
const path = 'api/3/originator';
const tonce = Date.now() * 1000;
const message = `${path}\0${bodyJson}`;
const signature = crypto
  .createHmac('sha512', apiSecret)
  .update(message)
  .digest('hex');

// Make request
const headers = {
  'Rest-Key': apiKey,
  'Rest-Sign': signature,
  'Content-Type': 'application/json'
};

axios.post(`${baseUrl}/${path}`, body, { headers })
  .then(response => {
    response.data.forEach(entity => {
      console.log(`\n${entity.companyName}: ${entity.uuid}`);
      console.log(`  Enabled: ${entity.enabled}`);
      console.log(`  Verified: ${entity.verified}`);
      console.log(`  Wallets: ${entity.wallets.length}`);
      console.log(`  Bank Accounts: ${entity.bankAccounts.length}`);
    });
  })
  .catch(error => {
    console.error('Error:', error.response?.status);
    console.error(error.response?.data);
  });

cURL

curl -X POST https://trade-uk.sandbox.zodiamarkets.com/api/3/originator \
  -H "Rest-Key: your_api_key" \
  -H "Rest-Sign: your_hmac_signature" \
  -H "Content-Type: application/json" \
  -d '{
    "accountGroupUuid": "2073252c-81ed-41be-bf4d-d51b8f2246b8",
    "max": 50,
    "offset": 0
  }'

Common Use Cases

Find Wallets for Specific Asset

def find_wallets_for_asset(entity_id, asset):
    response = make_api_request('POST', 'api/3/originator', {})
    
    for entity in response:
        if entity['uuid'] == entity_id:
            wallets = [
                w for w in entity['wallets']
                if w['asset'] == asset and w['enabled'] and w['whitelisted']
            ]
            return wallets
    
    return []

# Find USDC wallets for a entity
wallets = find_wallets_for_asset(
    '5fff78ca-d87f-424f-90bf-96b1906a284b',
    'USDC'
)
for wallet in wallets:
    print(f"{wallet['alias']}: {wallet['blockchain']}")
    print(f"  Address: {wallet['walletAddress']}")