Skip to content

Get Account Details List

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

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.


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

Field Value Meaning
enabled true Entity is active
enabled false Entity is inactive
verified true Passed KYC/compliance checks
verified false Pending verification

For crypto settlement, wallets must be properly configured:

Field Value Required for Trading?
enabled true ✅ Yes
whitelisted true ✅ Yes
enabled false ❌ No - wallet disabled
whitelisted false ❌ 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.


This endpoint accepts limit and offset for consistency with the beneficiary and sender endpoints, but ignores both: it always requests a single record and returns that one Entity object directly, not a paged envelope. Exactly one Entity is returned per Account Group, so to read a different one pass that group’s accountGroupUuid rather than paginating.


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 — every signed request must carry a nonce or tonce
tonce = str(int(time.time() * 1000000))
body = {
"tonce": tonce,
"accountGroupUuid": "2073252c-81ed-41be-bf4d-d51b8f2246b8"
}
body_json = json.dumps(body)
# Generate signature
path = "api/3/originator"
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 — the body is a single Entity object, not a list
if response.status_code == 200:
entity = response.json()
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'])}")
elif response.status_code == 404:
print("No Entity is configured for this account group")
else:
print(f"Error: {response.status_code}")
print(response.text)
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 — every signed request must carry a nonce or tonce
const tonce = Date.now() * 1000;
const body = {
tonce,
accountGroupUuid: '2073252c-81ed-41be-bf4d-d51b8f2246b8'
};
const bodyJson = JSON.stringify(body);
// Generate signature
const path = 'api/3/originator';
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 => {
// The body is a single Entity object, not a list
const entity = response.data;
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);
});
Terminal window
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 '{
"tonce": 1770888183656000,
"accountGroupUuid": "2073252c-81ed-41be-bf4d-d51b8f2246b8"
}'

def find_wallets_for_asset(asset):
entity = make_api_request('POST', 'api/3/originator', {})
return [
w for w in entity['wallets']
if w['asset'] == asset and w['enabled'] and w['whitelisted']
]
# Find USDC wallets for your Entity
wallets = find_wallets_for_asset('USDC')
for wallet in wallets:
print(f"{wallet['alias']}: {wallet['blockchain']}")
print(f" Address: {wallet['walletAddress']}")


Domain: Payment participants

POST https://trade-uk.sandbox.zodiamarkets.com/api/3/originator
Header Required Description
Rest-Key API key for authentication
Rest-Sign Calculated API Signature
Field Type Required Description
tonce integer (int64) yes The current Unix time in microseconds.
nonce integer (int64) Alternative to tonce. Every request must carry either nonce or tonce, and the value must parse as a whole number; a request with neither is rejected with INVALID_NONCE_OR_TONCE.
accountGroupUuid string Filter Account Details by specific account group UUID. Will return Default Account Group if not provided. Note only one Entity is returned per Account Group
limit integer (int32) Maximum results to return. Validation caps this at 50 — a larger value is rejected with INVALID_PARAMETERS. When omitted, the participants service applies its own default. This endpoint validates the value but then ignores it: it always requests a single record and returns that one object.
userUuid string Master API keys only: UUID of the user to act on behalf of. Ignored unless the calling key belongs to the owner of a master-API-enabled site.
Field Type Required Description
companyName string Entity name
companyName2 string Second line of the registered name, where the name needs one
dateOfFormation string (date) Company formation date (YYYY-MM-DD)
countryOfFormation string ISO 3166-1 alpha-2 country code
countryOfRegistration string ISO 3166-1 alpha-2 country code
uuid string (uuid) Unique identifier for the Entity
type string (enum) Whether this participant is a legal entity or a natural person — One of: ENTITY, INDIVIDUAL
kind string (enum) Always ORIGINATOR — One of: ORIGINATOR
enabled boolean Whether Entity is enabled for trading
verified boolean Whether Entity has completed verification
vasp boolean Virtual Asset Service Provider flag
ownershipPercentage string Percentage of the participant owned, for participants held as an ownership interest. Absent when not recorded.
clientShortcode string Your account identifier
clientAccountGroupName string Account group (sub-account) name
clientAccountGroupUuid string Account group UUID
email string Contact email
phoneNumber string Contact phone
website string Website URL
address object Address details
address.street string Street address
address.city string City
address.stateProvince string State or province
address.postalCode string Postal/ZIP code
address.country string ISO 3166-1 alpha-2 country code
address.createdAt string (date-time) Creation timestamp (ISO 8601)
address.updatedAt string (date-time) Last update timestamp (ISO 8601)
kycDetails object KYC and compliance information
kycDetails.occupation string Occupation or business activity
kycDetails.sourceOfFunds string Source of funds description
kycDetails.methodOfVerification string Verification method used
kycDetails.industryType string Industry classification
kycDetails.entityType string Legal entity type
kycDetails.natureOfActivity string Nature of business activity
kycDetails.beneficiaryOwnership boolean Beneficiary ownership flag
kycDetails.createdAt string (date-time) Creation timestamp (ISO 8601)
kycDetails.updatedAt string (date-time) Last update timestamp (ISO 8601)
identifications array of object Business registration and tax identifications
identifications[].type string (enum) Identification type — One of: PASSPORT, NATIONAL_ID, DRIVERS_LICENSE, SSN, TAX_ID, LEI, EIN, VAT_NUMBER, BUSINESS_REGISTRATION, OTHER
identifications[].number string Identification number
identifications[].typeOther string Custom type (if type is “OTHER”)
identifications[].createdAt string (date-time) Creation timestamp (ISO 8601)
identifications[].updatedAt string (date-time) Last update timestamp (ISO 8601)
associatedPersons array of object Associated Person details (e.g. authorized signatory, beneficial owners). enabled, verified and vasp are always null on these entries.
associatedPersons[].uuid string (uuid) Unique identifier for the person
associatedPersons[].firstname string Given name
associatedPersons[].lastname string Family name
associatedPersons[].dateOfBirth string (date) Date of birth (YYYY-MM-DD)
associatedPersons[].countryOfOrigin string ISO 3166-1 alpha-2 country code of origin
associatedPersons[].nationality string ISO 3166-1 alpha-2 country code of nationality
associatedPersons[].type string (enum) Always INDIVIDUAL for an associated person — One of: INDIVIDUAL
associatedPersons[].kind string (enum) Role this person holds in relation to the participant — One of: AUTHORIZED_SIGNATORY, BENEFICIARY_OWNER, INTERMEDIARY_BENEFICIARY_OWNER
associatedPersons[].clientShortcode string Your account identifier
associatedPersons[].phoneNumber string Contact phone
associatedPersons[].website string Website URL
associatedPersons[].email string Contact email
associatedPersons[].createdAt string (date-time) Creation timestamp (ISO 8601)
associatedPersons[].updatedAt string (date-time) Last update timestamp (ISO 8601)
bankAccounts array of object Bank accounts configured for fiat settlement
bankAccounts[].uuid string (uuid) Unique identifier for the bank account
bankAccounts[].bankName string Bank institution name
bankAccounts[].bankBranchName string Branch name
bankAccounts[].accountNumber string Bank account number
bankAccounts[].accountAlias string Friendly alias for the account
bankAccounts[].accountName string Account holder name
bankAccounts[].currency string Account currency (ISO 4217)
bankAccounts[].iban string International Bank Account Number
bankAccounts[].swiftBic string SWIFT/BIC code
bankAccounts[].country string ISO 3166-1 alpha-2 country code
bankAccounts[].city string Bank branch city
bankAccounts[].street string Bank branch street address
bankAccounts[].postalCode string Bank branch postal code
bankAccounts[].memo string Additional notes
bankAccounts[].intermediaryBankCountry string ISO 3166-1 alpha-2 country code of the intermediary bank, where one is used
bankAccounts[].intermediaryBankSwiftBic string SWIFT/BIC code of the intermediary bank, where one is used
bankAccounts[].enabled boolean Whether account is enabled
bankAccounts[].verified boolean Whether account is verified
bankAccounts[].networkIds array of string Settlement networks this bank account may be used with
bankAccounts[].createdAt string (date-time) Creation timestamp (ISO 8601)
bankAccounts[].updatedAt string (date-time) Last update timestamp (ISO 8601)
wallets array of object Crypto wallet addresses for digital asset settlement
wallets[].uuid string (uuid) Unique identifier
wallets[].blockchain string Blockchain network (e.g., Ethereum, Polygon, TRON)
wallets[].asset string Digital asset symbol (e.g., USDC, USDT, BTC)
wallets[].walletAddress string Blockchain wallet address
wallets[].alias string Friendly alias for the wallet
wallets[].type string SELF_HOSTED or CUSTODY
wallets[].memo string Additional notes
wallets[].vasp string Virtual Asset Service Provider name (if custody)
wallets[].executionProvider string Execution provider name (if applicable)
wallets[].default boolean Whether this is the default wallet for the asset
wallets[].enabled boolean Whether wallet is enabled for trading
wallets[].whitelisted boolean Whether wallet address is whitelisted
wallets[].createdAt string (date-time) Creation timestamp (ISO 8601)
wallets[].updatedAt string (date-time) Last update timestamp (ISO 8601)
createdAt string (date-time) Entity creation timestamp (ISO 8601)
updatedAt string (date-time) Last update timestamp (ISO 8601)
Field Type Required Description
firstname string Given name
lastname string Family name
dateOfBirth string (date) Date of birth (YYYY-MM-DD)
countryOfOrigin string ISO 3166-1 alpha-2 country code of origin
nationality string ISO 3166-1 alpha-2 country code of nationality
uuid string (uuid) Unique identifier for the Entity
type string (enum) Whether this participant is a legal entity or a natural person — One of: ENTITY, INDIVIDUAL
kind string (enum) Always ORIGINATOR — One of: ORIGINATOR
enabled boolean Whether Entity is enabled for trading
verified boolean Whether Entity has completed verification
vasp boolean Virtual Asset Service Provider flag
ownershipPercentage string Percentage of the participant owned, for participants held as an ownership interest. Absent when not recorded.
clientShortcode string Your account identifier
clientAccountGroupName string Account group (sub-account) name
clientAccountGroupUuid string Account group UUID
email string Contact email
phoneNumber string Contact phone
website string Website URL
address object Address details
address.street string Street address
address.city string City
address.stateProvince string State or province
address.postalCode string Postal/ZIP code
address.country string ISO 3166-1 alpha-2 country code
address.createdAt string (date-time) Creation timestamp (ISO 8601)
address.updatedAt string (date-time) Last update timestamp (ISO 8601)
kycDetails object KYC and compliance information
kycDetails.occupation string Occupation or business activity
kycDetails.sourceOfFunds string Source of funds description
kycDetails.methodOfVerification string Verification method used
kycDetails.industryType string Industry classification
kycDetails.entityType string Legal entity type
kycDetails.natureOfActivity string Nature of business activity
kycDetails.beneficiaryOwnership boolean Beneficiary ownership flag
kycDetails.createdAt string (date-time) Creation timestamp (ISO 8601)
kycDetails.updatedAt string (date-time) Last update timestamp (ISO 8601)
identifications array of object Business registration and tax identifications
identifications[].type string (enum) Identification type — One of: PASSPORT, NATIONAL_ID, DRIVERS_LICENSE, SSN, TAX_ID, LEI, EIN, VAT_NUMBER, BUSINESS_REGISTRATION, OTHER
identifications[].number string Identification number
identifications[].typeOther string Custom type (if type is “OTHER”)
identifications[].createdAt string (date-time) Creation timestamp (ISO 8601)
identifications[].updatedAt string (date-time) Last update timestamp (ISO 8601)
associatedPersons array of object Associated Person details (e.g. authorized signatory, beneficial owners). enabled, verified and vasp are always null on these entries.
associatedPersons[].uuid string (uuid) Unique identifier for the person
associatedPersons[].firstname string Given name
associatedPersons[].lastname string Family name
associatedPersons[].dateOfBirth string (date) Date of birth (YYYY-MM-DD)
associatedPersons[].countryOfOrigin string ISO 3166-1 alpha-2 country code of origin
associatedPersons[].nationality string ISO 3166-1 alpha-2 country code of nationality
associatedPersons[].type string (enum) Always INDIVIDUAL for an associated person — One of: INDIVIDUAL
associatedPersons[].kind string (enum) Role this person holds in relation to the participant — One of: AUTHORIZED_SIGNATORY, BENEFICIARY_OWNER, INTERMEDIARY_BENEFICIARY_OWNER
associatedPersons[].clientShortcode string Your account identifier
associatedPersons[].phoneNumber string Contact phone
associatedPersons[].website string Website URL
associatedPersons[].email string Contact email
associatedPersons[].createdAt string (date-time) Creation timestamp (ISO 8601)
associatedPersons[].updatedAt string (date-time) Last update timestamp (ISO 8601)
bankAccounts array of object Bank accounts configured for fiat settlement
bankAccounts[].uuid string (uuid) Unique identifier for the bank account
bankAccounts[].bankName string Bank institution name
bankAccounts[].bankBranchName string Branch name
bankAccounts[].accountNumber string Bank account number
bankAccounts[].accountAlias string Friendly alias for the account
bankAccounts[].accountName string Account holder name
bankAccounts[].currency string Account currency (ISO 4217)
bankAccounts[].iban string International Bank Account Number
bankAccounts[].swiftBic string SWIFT/BIC code
bankAccounts[].country string ISO 3166-1 alpha-2 country code
bankAccounts[].city string Bank branch city
bankAccounts[].street string Bank branch street address
bankAccounts[].postalCode string Bank branch postal code
bankAccounts[].memo string Additional notes
bankAccounts[].intermediaryBankCountry string ISO 3166-1 alpha-2 country code of the intermediary bank, where one is used
bankAccounts[].intermediaryBankSwiftBic string SWIFT/BIC code of the intermediary bank, where one is used
bankAccounts[].enabled boolean Whether account is enabled
bankAccounts[].verified boolean Whether account is verified
bankAccounts[].networkIds array of string Settlement networks this bank account may be used with
bankAccounts[].createdAt string (date-time) Creation timestamp (ISO 8601)
bankAccounts[].updatedAt string (date-time) Last update timestamp (ISO 8601)
wallets array of object Crypto wallet addresses for digital asset settlement
wallets[].uuid string (uuid) Unique identifier
wallets[].blockchain string Blockchain network (e.g., Ethereum, Polygon, TRON)
wallets[].asset string Digital asset symbol (e.g., USDC, USDT, BTC)
wallets[].walletAddress string Blockchain wallet address
wallets[].alias string Friendly alias for the wallet
wallets[].type string SELF_HOSTED or CUSTODY
wallets[].memo string Additional notes
wallets[].vasp string Virtual Asset Service Provider name (if custody)
wallets[].executionProvider string Execution provider name (if applicable)
wallets[].default boolean Whether this is the default wallet for the asset
wallets[].enabled boolean Whether wallet is enabled for trading
wallets[].whitelisted boolean Whether wallet address is whitelisted
wallets[].createdAt string (date-time) Creation timestamp (ISO 8601)
wallets[].updatedAt string (date-time) Last update timestamp (ISO 8601)
createdAt string (date-time) Entity creation timestamp (ISO 8601)
updatedAt string (date-time) Last update timestamp (ISO 8601)
Field Type Required Description
timestamp string Unix timestamp of the response (milliseconds).
resultCode string (enum) Failure reason. — One of: INVALID_PARAMETERS, UNAUTHORISED

404 — No originator record exists for the resolved account group. The response body is empty.

Section titled “404 — No originator record exists for the resolved account group. The response body is empty.”