# Account setup
Source: https://docs.byzantine.fi/account-setup
## Can multiple people access the same Byzantine account?
Yes. You can add unlimited users with either Admin or View-only permissions. The multi-user feature will be available next week.
## Can we use multiple email addresses for notifications?
Yes. Each user you invite will receive their own notifications. You can also configure notification preferences.
## Who should create the account - the wealth manager or the client?
Either can create the account. The important requirement is that the Ultimate Beneficial Owner(s) and at least one authorized representative complete identity verification. The account creator can be anyone on the team.
# Required documents
Source: https://docs.byzantine.fi/api-reference/accepted-documents
Depending on whether the user is an individual or a business entity, different documents are required for KYC and KYB.
We accept the following documents:
## For individuals:
### ID documents
* Passport
* National ID card (back and front side)
### Proof of address
All proof of address documents must be issued no more than 3 months ago.
* Utility bills
* Recent bank statements
* Mobile phone bills
* Tax documentation
## For legal entities:
Submit at least one document from each of the four required groups below. The `missingDocuments` field uses the code shown beside each heading until that group is covered. It can also contain questionnaire-backed requirements for the entity's physical address, business activity, or financial information; see the [KYB guide](/api-reference/kyb#2-complete-the-company-information).
### Company details (`COMPANY_DETAILS_DOCUMENT`)
* Certificate of incorporation (`incorporation_cert`)
* Articles of association (`incorporation_articles`)
* State or company registry extract (`state_registry`), including an attestation d’immatriculation au RNE or Kbis in France
### Ownership structure (`OWNERSHIP_STRUCTURE_DOCUMENT`)
* Shareholder registry (`shareholder_registry`)
* Trust agreement (`trust_agreement`)
* Partnership agreement (`partnership_agreement`)
* Statement of information (`information_statement`)
### Source of funds (`SOURCE_OF_FUNDS_DOCUMENT`)
Upload the supporting file with the `source_of_funds` document type. Common examples include:
* audited financial statements;
* bank or brokerage account statements;
* tax returns;
* invoices to clients proving the nature of the business.
### Proof of business address (`PROOF_OF_ADDRESS_DOCUMENT`)
The document must be in the entity's name and prove its physical address. Upload it with the `proof_of_address` document type. Common examples include:
* utility bills;
* lease agreements;
* bank statements;
* government or tax correspondence.
### Representatives authorisation
Needed only in case a representative is not listed in the ownership structure or registration documents.
* Power of attorney (`power_of_attorney`)
Other optional entity document types include `directors_registry`, `good_standing_cert`, `incumbency_cert`, and `other`. They can provide supporting evidence but do not satisfy one of the four required groups above.
# Account activation
Source: https://docs.byzantine.fi/api-reference/account-activation
Activating an account for enabling transactions.
Before an end user can make deposit/withdrawal transactions, their account must be activated. The activation allows the account to benefit from the following features:
* Gas sponsorship for transactions: no need to pay for gas fees
* Be whitelisted to deposit into all Byzantine Prime vaults
At the moment, there are two authentications to complete so the account can
deposit into both Byzantine Prime USDC and Byzantine Prime EUR vaults. This
step will be automated in the future.
## Steps to proceed
1. You call the passkey activation payload endpoint to retrieve an authorization body to sign.
2. The end user signs this payload with their passkey.
3. You submit the signed payload so Byzantine can sponsor and broadcast the activation transaction.
# Idle balance
Source: https://docs.byzantine.fi/api-reference/account-balances-idle
Stablecoin balance that is sitting in the user's wallet.
This section applies only to users with a secure wallet created during onboarding.
Idle balance refers to stablecoins held in a user's secure wallet that have not been deposited into a Byzantine vault. Idle balance does not generate yield.
## How idle balance occurs
### Stablecoin deposits
When users deposit stablecoins directly, they control how much to deposit into the vault and how much to keep in their secure wallet. Any stablecoins remaining in the secure wallet after the deposit are considered idle balance.
### Fiat transfers after a deposit is initiated
For fiat deposits, the process is slightly different:
1. The user specifies the deposit `amount` and pre-signs the on-chain deposit transaction.
2. The user receives dedicated bank account details and deposits fiat (EUR or USD) into this account.
3. Once the fiat arrives, it is automatically converted to stablecoins and transferred to the user's secure wallet.
4. The exact same `amount` previously specified by the user is automatically deposited into the vault using the pre-signed transaction.
Due to foreign exchange rate fluctuations between fiat and stablecoins (e.g., EUR to USDC), users are required to deposit slightly more fiat than the target deposit amount to ensure sufficient stablecoins are received.
When the stablecoins arrive in the secure wallet, the **exact** `amount` specified in the pre-signed transaction is automatically deposited into the vault. **Any remaining stablecoins in the wallet become idle balance.**
### Fiat transfers without a deposit being initiated
If a user sends fiat directly to their dedicated bank account **without first initiating a deposit on your application**, the full amount will be credited to their idle balance. In practice, this means the funds remain in the user's secure wallet and are not allocated to any specific vault until you move them.
## Depositing idle balance
To deposit idle balance into the vault, users must explicitly call the [deposit endpoint](/api-reference/transactions/get-deposit-payload) with the exact idle balance amount. This ensures the wallet maintains zero idle balance if desired.
## Pending withdrawals
Funds sitting in an asynchronous vault's [withdrawal queue](/api-reference/withdrawal-technical#queued-withdrawals) are neither idle balance nor withdrawn: the shares are still held by the vault until the request settles.
[Get account balances](/api-reference/account-management/get-single-account-balances) reports them separately, under `pending_withdrawals` on each vault balance:
```json theme={null}
{
"chain_id": 8453,
"vault_address": "0x...",
"is_async_vault": true,
"currency": "eur",
"balance": "1000.00",
"shares": "980.00",
"price_per_share": "1.0204",
"pending_withdrawals": {
"balance": "250.00",
"shares": "245.00"
}
}
```
* `pending_withdrawals.balance` - currency value of the queued withdrawals.
* `pending_withdrawals.shares` - vault shares locked by them.
The field is `null` when the vault has no queued withdrawal.
# Add bank account
Source: https://docs.byzantine.fi/api-reference/account-management/add-bank-account
/api-reference/openapi-integrator.json post /v1/submit/add-bank-account
Add a bank account to withdraw to. At least one bank account must be added before any off-ramp withdrawal can be initated.
# Get details of a single account
Source: https://docs.byzantine.fi/api-reference/account-management/get-details-of-a-single-account
/api-reference/openapi-integrator.json get /v1/query/get-account-details
Returns details for a specific account including name, type, wallet address,
and associated entity information if applicable.
# Get single account balances
Source: https://docs.byzantine.fi/api-reference/account-management/get-single-account-balances
/api-reference/openapi-integrator.json get /v1/query/get-account-balances
Fetch all vault positions for a specific account from the indexer.
Returns balance information including vault details and current price per share.
If `chain_id` is not specified, returns balances for all chains.
If `include_test_vaults` is not specified, defaults to false (excludes test vaults).
# List all invitations across every account of the authenticated integrator
Source: https://docs.byzantine.fi/api-reference/account-management/list-all-invitations-across-every-account-of-the-authenticated-integrator
/api-reference/openapi-integrator.json get /v1/query/get-all-invitations
Returns invitations across all accounts owned by the integrator, paginated and ordered (DESC by default).
# List bank accounts
Source: https://docs.byzantine.fi/api-reference/account-management/list-bank-accounts
/api-reference/openapi-integrator.json get /v1/query/get-bank-accounts
Fetch all associated bank accounts for a specific Byzantine account ID.
# List invitations by account
Source: https://docs.byzantine.fi/api-reference/account-management/list-invitations-by-account
/api-reference/openapi-integrator.json get /v1/query/get-invitations-by-account-id
Fetch all invitations associated with a specific Byzantine account ID.
Returns invitation details including the invited user's name and email, account name, and inviter name.
# List invitations by email
Source: https://docs.byzantine.fi/api-reference/account-management/list-invitations-by-email
/api-reference/openapi-integrator.json get /v1/query/get-invitations-by-email
Fetch all invitations for a specific email address.
# Step 1 Get invite users payload (passkey)
Source: https://docs.byzantine.fi/api-reference/account-management/step-1-get-invite-users-payload-passkey
/api-reference/openapi-integrator.json post /v1/query/get-invite-users-payload-passkey
Get the payload to sign in order to invite users to an existing account. Part of the passkey authentication flow.
# Step 1 Get update role payload (passkey)
Source: https://docs.byzantine.fi/api-reference/account-management/step-1-get-update-role-payload-passkey
/api-reference/openapi-integrator.json post /v1/query/get-update-users-role-payload-passkey
Get the payload to sign in order to update users' roles within a Byzantine account. Part of the passkey authentication flow.
# Step 2 Send invitations (passkey)
Source: https://docs.byzantine.fi/api-reference/account-management/step-2-send-invitations-passkey
/api-reference/openapi-integrator.json post /v1/submit/invite-users
Send an invitation to users to join a Byzantine account. If the users did not yet do a KYC on Byzantine, an email will ask them to do so.
# Step 2 Update users role (passkey)
Source: https://docs.byzantine.fi/api-reference/account-management/step-2-update-users-role-passkey
/api-reference/openapi-integrator.json post /v1/submit/update-users-role
Update the roles of users of a Byzantine account. This action must be approved by the current root quorum.
# API authentication
Source: https://docs.byzantine.fi/api-reference/api-authentication
Authentication for the Byzantine API.
All API requests must be authenticated using ECDSA signature-based authentication. You'll use your **Integrator Private Key** to sign each request and include the signature in the request headers.
### Authentication Headers
Each API request requires the following headers:
| Header | Description |
| - | - |
| `X-Pubkey` | Your public key derived from your private key (hex format with `0x` prefix) |
| `X-Timestamp` | Current Unix timestamp in seconds |
| `X-Signature` | ECDSA signature of the request (DER-encoded hex with `0x` prefix) |
| `Content-Type` | Must be `application/json` |
Our Integrator SDK provides a convenient way to generate the authentication headers for your API requests.
The `getStamp` method returns an object containing the required authentication headers (`X-Pubkey`, `X-Timestamp`, `X-Signature`, and `Content-Type`) that you can include in your API request.
#### Installation
```bash theme={null}
npm install @byzantine/integrator-sdk
```
#### Initialize the Byzantine Client
```typescript theme={null}
import { ByzantineClient } from '@byzantine/integrator-sdk';
const client = new ByzantineClient({
integratorPrivateKey: 'YOUR_INTEGRATOR_PRIVATE_KEY',
});
```
#### Usage example
Use the `getStamp` method to generate authentication headers for your API requests:
```typescript theme={null}
const payload = {
// Your request payload
};
// Generate the api key stamp
const apiKeyStamp = await client.apiKey.getStamp(
"POST",
"/v1/submit/send-transaction-otp",
payload
);
// Use the apiKeyStamp headers in your API call
const response = await fetch(
"https://api.byzantine.fi/v1/submit/send-transaction-otp?chain_id=1",
{
method: "POST",
headers: apiKeyStamp,
body: payload,
}
);
```
#### Signature Generation
The signature is generated by:
1. Constructing a message string in the format: `{timestamp}{method}{path_and_query}{body}`
* **timestamp**: Unix timestamp in seconds
* **method**: HTTP method in uppercase (e.g., `GET`, `POST`)
* **path\_and\_query**: Full path including query parameters (e.g., `/query/get-deposit?chain_id=1`)
* **body**: JSON stringified request body (empty string for GET requests)
2. Hashing the message using SHA-256
3. Signing the hash with your private key using ECDSA (secp256k1 curve)
4. Encoding the signature in DER format and converting to hex
#### Implementation Example
Here's a reference implementation in Node.js:
```javascript theme={null}
import elliptic from "elliptic";
import { createHash } from "crypto";
const EC = elliptic.ec;
const ec = new EC("p256");
const INTEGRATOR_PRIVATE_KEY = process.env.INTEGRATOR_PRIVATE_KEY;
export function generateHeaders(method, pathAndQuery, body = "") {
// Get the key pair
const cleanPrivateKey = INTEGRATOR_PRIVATE_KEY.replace(/^0x/, "");
const keyPair = ec.keyFromPrivate(cleanPrivateKey, "hex");
const publicKey = "0x" + keyPair.getPublic(true, "hex");
// Get the timestamp in seconds since the Unix epoch (UTC)
const timestamp = Math.floor(Date.now() / 1000).toString();
// Build the message to sign
// Format: {timestamp}{method}{path_and_query}{body}
const bodyStr = typeof body === "object" ? JSON.stringify(body) : body;
const message = `${timestamp}${method.toUpperCase()}${pathAndQuery}${bodyStr}`;
// Hash the message and sign it
const messageHash = createHash("sha256").update(message).digest();
const signature = keyPair.sign(messageHash);
// Encode the signature in DER then in hex
const signatureHex = "0x" + signature.toDER("hex");
return {
"X-Pubkey": publicKey,
"X-Timestamp": timestamp,
"X-Signature": signatureHex,
"Content-Type": "application/json",
};
}
```
#### Usage Example
```javascript theme={null}
// Example POST request
const body = {
userId: "user123",
vaultAddress: "0x...",
};
const headers = generateHeaders("POST", "/submit/deposit", body);
// Make the API call
const response = await fetch("https://api.byzantine.fi/submit/deposit", {
method: "POST",
headers: headers,
body: JSON.stringify(body),
});
```
**Keep your Integrator Private Key secure!**
## Managing your integrator keys
You can manage your integrator credentials programmatically - there's no need to contact us to rotate or scope a key. Each credential is an ECDSA keypair with an access scope:
* **`read_write`** - full access, including mutations and key management.
* **`read_only`** - restricted to read/query endpoints.
| Action | Endpoint |
| - | - |
| Inspect the current credential's id, scope & capabilities | [`GET /v1/integrator/whoami`](/api-reference/integrator-key-management/get-current-integrator-credential-capabilities) |
| Issue a new credential | [`POST /v1/integrator/credentials`](/api-reference/integrator-key-management/issue-a-credential-for-the-authenticated-integrator) |
| Update a credential's label, scope, or active status | [`PATCH /v1/integrator/credentials/{pubkey}`](/api-reference/integrator-key-management/update-a-credential) |
| Delete a credential | [`DELETE /v1/integrator/credentials/{pubkey}`](/api-reference/integrator-key-management/delete-an-integrator-credential) |
You can call these endpoints directly, or use the [Byzantine SDK](/api-reference/byzantine-sdk)'s typed method wrappers to manage your keys without building the requests by hand.
Managing keys requires a `read_write` credential, and a credential can't deactivate, rescope, or delete **itself**, so you always keep at least one working read-write key.
## OpenAPI Specification
Explore the full structure and generate your own client using our [OpenAPI specification](http://docs.byzantine.fi/api-reference/openapi-integrator.json).
# Health check
Source: https://docs.byzantine.fi/api-reference/api-health/health-check
/api-reference/openapi-integrator.json get /v1/health
Returns the health status of the API
# Authentication methods
Source: https://docs.byzantine.fi/api-reference/authentication-methods
Methods to ensure user ownership over their wallet.
When a user account is created in Byzantine, either they themselves or their entity are set up with a digital wallet. This wallet is linked to either the end user's device or email address, meaning no intermediaries (Byzantine or the integrator) could ever make transactions on their behalf.
## Passkey
The authentication method for Byzantine accounts is passkey (WebAuthn). Once set up, this is used to authenticate the user whenever they make a transaction.
| Auth Method | Description |
| - | - |
| Passkey | This method is more cryptographically secure, since it directly links the end user's device to authentication. Integrators must implement both the passkey creation process and the authentication flow, making it more technically challenging to implement. |
## Technical implementation
**Setup:**
By choosing this method, the user will be prompted to add their passkey to their device, either through the browser's built-in passkey management, through a third-party passkey manager, or through their mobile device's passkey management.
Once the passkey is created by the user, it will be used to authenticate the user when making transactions. A same user can have multiple passkeys, and can use different passkeys for different purposes.
Rather than implementing the passkey creation process yourself, you can use our Integrator SDK to easily create the passkey for your users.
#### Installation
```bash theme={null}
npm install @byzantine/integrator-sdk
```
#### Initialize the Byzantine Client
```typescript theme={null}
import { ByzantineClient } from '@byzantine/integrator-sdk';
// Prepare the webauthn stamper configuration
const webauthnStamperConfig: TWebauthnStamperConfig = {
// The RPID ("Relying Party ID") for your origin.
// For an origin named "https://www.example.com", the RPID is typically "example.com".
// If you're testing on localhost, the RPID should be "localhost".
rpId: string;
// The Relying Party name (e.g., "Example Corp")
rpName: string;
// Optional timeout value. Defaults to 10 minutes.
timeout?: number;
// Optional override for UV flag. Defaults to "preferred".
userVerification?: UserVerificationRequirement;
/**
* If you want to create discoverable credentials whenever possible both on Android and iOS,
* set `requireResidentKey` to `false` and `residentKey` to `preferred`.
* By doing so, it enables discoverable credential which is a self-contained key pair, stored on the end-user's device.
*/
// Resident key requirement (default: "preferred")
residentKey?: ResidentKeyRequirement;
// Whether to require resident key (default: false)
requireResidentKey?: boolean;
};
const client = new ByzantineClient({
webauthn: webauthnStamperConfig,
});
```
#### Usage example
```typescript theme={null}
import { PasskeyCreationConfig } from '@byzantine/integrator-sdk';
// Generate a random challenge for registration
const challenge = "your-challenge-generation-logic";
// Create the passkey configuration
const passkeyConfig: PasskeyCreationConfig = {
userId: "user-123",
userEmail: "user@example.com",
userName: "John Doe",
challenge: challenge,
};
// Create the passkey for the user
const { attestationData, challengeFromClientData } =
await client.webauthn.createPasskey(passkeyConfig);
// Now that the user's passkey is created, you have to register it within the user/entity account creation:
const response = await fetch(
"https://api.byzantine.fi/v1/submit/create-individual-account",
{
method: "POST",
headers: { /* ... */ },
body: {
// ... other required fields
rootUsers: [{
firstName: "John",
lastName: "Doe",
email: "user@example.com",
authenticators: [{
authenticatorName: "passkey",
challenge: challengeFromClientData,
attestation: attestationData
}]
}]
},
}
);
```
#### Discoverable and non-discoverable credentials
A **discoverable credential** is a self-contained credential that is stored on the end-user's device. For UX, the end-user is prompted to select their passkey from a list of their passkeys and choose which device/passkey they'd like to use.
If you choose to create discoverable credentials for your users, it is not necessary to store their credential ID.
A **non-discoverable credential** is a credential that isn't fully stored on the end-user's device. The integrator must store the credential ID. For UX, the user is prompted to authenticate with their passkey directly without having to select it from a list.
For non-discoverable credentials, you must store the credential ID returned from `createPasskey`, namely, `attestationData.credentialId`. When authenticating transactions, pass this credential ID as the second parameter to `client.webauthn.getStamp(payload, credentialId)` (cf. **Passkey Authentication** tab).
By default, the Byzantine SDK will create discoverable credentials when the device supports it. To create non-discoverable credentials, you can set the `residentKey` option to `"discouraged"`:
**Setup:**
Once the passkey is set up, the user can use it to authenticate with the wallet to sign transactions.
**Authentication flow:**
1. **Prepare the transaction:** The user calls the `/query/get-[action]` endpoint to receive the passkey authentication options.
2. **Authenticate with passkey:** The user will be prompted to authenticate with their device's passkey previously added (finger print, face recognition, etc.).
3. **Complete the transaction:** The user calls the `/submit/send-transaction-passkey` endpoint to sign and execute the transaction with the passkey.
You can use our Integrator SDK to easily implement the passkey authentication for your users.
#### Installation
```bash theme={null}
npm install @byzantine/integrator-sdk
```
#### Initialize the Byzantine Client
```typescript theme={null}
import { ByzantineClient } from '@byzantine/integrator-sdk';
// Prepare the webauthn stamper configuration
const webauthnStamperConfig: TWebauthnStamperConfig = {
// The RPID ("Relying Party ID") for your origin.
// For an origin named "https://www.example.com", the RPID is typically "example.com".
// If you're testing on localhost, the RPID should be "localhost".
rpId: string;
// The Relying Party name (e.g., "Example Corp")
rpName: string;
// Optional timeout value. Defaults to 10 minutes.
timeout?: number;
// Optional override for UV flag. Defaults to "preferred".
userVerification?: UserVerificationRequirement;
/**
* If you want to create discoverable credentials whenever possible both on Android and iOS,
* set `requireResidentKey` to `false` and `residentKey` to `preferred`.
* By doing so, it enables discoverable credential which is a self-contained key pair, stored on the end-user's device.
*/
// Resident key requirement (default: "preferred")
residentKey?: ResidentKeyRequirement;
// Whether to require resident key (default: false)
requireResidentKey?: boolean;
};
const client = new ByzantineClient({
webauthn: webauthnStamperConfig,
});
```
#### Usage example
```typescript theme={null}
const payload = {
// Your request payload
};
// [Optional] The stored credential ID returned from `createPasskey`
const credentialId = "credential-id-of-your-user's-passkey";
// Generate the webauthn stamp
const webAuthnStamp = await client.webauthn.getStamp(payload, credentialId);
// Use the webAuthnStamp headers in your API call
const response = await fetch(
"https://api.byzantine.fi/v1/submit/send-transaction-passkey?chain_id=1",
{
method: "POST",
headers: webAuthnStamp,
body: JSON.stringify(payload),
}
);
```
# Bank account
Source: https://docs.byzantine.fi/api-reference/bank-account
Managing bank accounts for Byzantine accounts via the Integrator API.
This section explains how to manage bank accounts for Byzantine accounts once KYC/KYB is complete. Bank account covers configuration of an existing Byzantine account for day-to-day use.
| Capability | Description |
| - | - |
| **Add bank account** | Associate a bank account with an account so that withdrawals can be sent to it (off-ramp). At least one bank account must be added before any off-ramp withdrawal can be initiated. Can have multiple bank accounts per account. |
To list or inspect existing bank accounts for an account, use this endpoint:
# Byzantine SDK
Source: https://docs.byzantine.fi/api-reference/byzantine-sdk
Official TypeScript SDK for integrator API authentication, WebAuthn, and API method wrappers.
The **Byzantine Integrator SDK** (`@byzantine/integrator-sdk`) is the official client library for integrating with the Byzantine API. It handles authentication, WebAuthn (passkeys), and provides typed wrappers for API operations so you can focus on your product logic instead of low-level HTTP and crypto.
## What the SDK provides
| Capability | Description |
| - | - |
| **Integrator API authentication** | ECDSA request signing and header generation (`X-Pubkey`, `X-Timestamp`, `X-Signature`) so you can call the API without implementing the signature scheme yourself. |
| **WebAuthn (passkey) support** | Create and use passkeys for end-user authentication: passkey creation, credential storage, and transaction signing flows. |
| **API method wrappers** | Typed methods that map to Byzantine API endpoints, keeping request/response shapes consistent. |
## Installation
```bash theme={null}
npm install @byzantine/integrator-sdk
```
## Quick start
Initialize the client with your **Integrator Private Key** (from the Byzantine team). The same client can be used for both API-key–signed requests and, when configured, WebAuthn flows.
```typescript theme={null}
import { ByzantineClient } from '@byzantine/integrator-sdk';
const client = new ByzantineClient({
integratorPrivateKey: process.env.INTEGRATOR_PRIVATE_KEY!,
});
```
See [API authentication](/api-reference/api-authentication) for full details and examples.
## Integrator API authentication
The SDK generates the authentication headers required for every API request:
* **`getStamp(method, pathAndQuery, body)`** - Returns an object with `X-Pubkey`, `X-Timestamp`, `X-Signature`, and `Content-Type` that you pass as request headers.
Use this for all calls to the Byzantine API (sandbox or production). Full specification and manual implementation details are in [API authentication](/api-reference/api-authentication).
## WebAuthn (passkey) authentication
For end-user–owned wallets and transaction approval, the SDK supports WebAuthn:
* **Passkey creation** - Register passkeys for users and attach them to Byzantine accounts during [account creation](/api-reference/authentication-methods).
* **Transaction signing** - Get WebAuthn signatures for transaction payloads via the SDK so users approve with their passkey instead of a shared secret.
Configuration (e.g. `rpId`, `rpName`, timeouts) and flows for discoverable vs non-discoverable credentials are documented in [Authentication methods](/api-reference/authentication-methods).
## API method wrappers
Beyond raw request signing, the SDK exposes methods that wrap Byzantine API endpoints. Use these for a consistent, typed interface to vault data, accounts, deposits, withdrawals, and user management without building request URLs and bodies by hand. Refer to the [OpenAPI specification](/api-reference/openapi-integrator.json) and the SDK’s exported types for the full list of supported operations.
## Next steps
* [API authentication](/api-reference/api-authentication) - Header format, signature scheme, and manual implementation.
* [Authentication methods](/api-reference/authentication-methods) - Passkey creation and WebAuthn transaction flows.
* [Sandbox](/api-reference/sandbox) - Test your integration against the sandbox environment.
* [OpenAPI specification](openapi-integrator.json) - Full API surface for code generation and reference.
**Keep your Integrator Private Key secure.**
# Changelog
Source: https://docs.byzantine.fi/api-reference/changelog
Release notes for the Byzantine API.
All notable changes to this project will be documented in this page.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## \[1.21.1] - 2026-06-19
### 🐛 Bug Fixes
* *(tx-status)* Correct the withdraw tx-status during a vault upgrade
* *(emails)* Capitalize first name when fetching it from Sumsub
### 🚀 Features
* *(tx-status)* Process Bridge refunds webhooks
* *(upgrade)* Revert the upgrade if amount to Bridge \< 1 EURC
* *(emails)* Send withdraw completed emails for offramps
* *(emails)* Send vault upgrade completed email when funds have landed on Ethereum
## \[1.21.0] - 2026-06-15
### ⚙️ Miscellaneous Tasks
* *(ci)* Improve workflow with nightly fmt, rust-cache and --locked
* *(chore)* Track Cargo.lock for reproducible builds
### 🐛 Bug Fixes
* *(webhooks)* Make webhook event publishing idempotent
* *(schemas)* Sync diesel schemas with new DB schemas
* *(vault-upgrade)* Ensure fiat\_account\_id is null for vault upgrade deposit payloads
### 🚀 Features
* *(webhooks)* Add webhook event contract
* *(bridge)* Add EEA regulatory field seams
* *(getters)* Returns related\_transaction\_id in transaction(s) getter(s)
### 🧪 Testing
* *(webhooks)* Add webhook e2e harness
* *(webhooks)* Run webhook e2e tests
## \[1.20.0] - 2026-05-22
### 🐛 Bug Fixes
* Harden webhook delivery scaffolding
* Address webhook review findings
### 📚 Documentation
* Add webhook delivery ADR
* Clarify webhook API documentation
* Update webhook changelog
### 🚀 Features
* Add webhook outbox schema
* Add webhook signature envelope
* Add webhook endpoint safety checks
* Add webhook control plane
### 🚜 Refactor
* Extract private key encryption helper
* Type webhook delivery states
## \[1.19.1] - 2026-05-20
### 🐛 Bug Fixes
* *(getters)* Read company email from fixedInfo.companyInfo
* *(serde)* Add FedNow variant and Unknown catch-all to deserialized enums
* *(webhooks)* Run Bridge customer creation in background task
### 🚀 Features
* *(workflow)* Route SSH via AWS SSM Session Manager (SOC2)
## \[1.19.0] - 2026-05-12
### 🐛 Bug Fixes
* *(nonce)* Retry broadcast once after rebuilding the wallet provider
### 🚀 Features
* *(deploy)* Add support for blue/green deployment in the workflow
## \[1.18.1] - 2026-05-11
### 🚀 Features
* *(sandbox)* Auto approve applicant if sandbox mode to skip manual review
* *(email)* Send email if a Bridge payment is `under review`
### 🐛 Bug Fixes
* *(onboarding)* Override address fields with Sumsub basic-Latin transliteration before sending to Bridge
## \[1.18.0] - 2026-05-06
### 🚀 Features
* *(getter)* Endpoint to get pages of all the transactions of integrator's customers -> `/get-all-transactions`
### 🚜 Refactor
* *(tx-types)* Introduce `funds_received` types for onramps
* *(tx-type)* Introduce "business" tx type and handle "on\_ramp\_only" tx. New response struct for transactions getters.
* *(migration)* Python script to populate past onramps only transactions in DB
* *(clean)* Remove deprecated OTP functions
## \[1.17.3] - 2026-04-30
### 🚀 Features
* *(alert)* Telegram notifications when a customer is created on Bridge (success or error)
* *(env)* Remember `DEPLOY_ENV` variable and skip whitelisting on sandbox
* *(nonce)* Use the alloy cached nonce manager to prevent nonce conflicts
### 🐛 Bug Fixes
* *(emails)* Should send the `resubmission-requested` email
* *(bridge-api)* Configure timeouts for BridgeApi reqwest client
### ⚙️ Miscellaneous Tasks
* *(emails)* Update turnkey email template to v2
### 🚜 Refactor
* Remove unnecessary `#[derive(Clone)]` from `AppState` and service structs
## \[1.17.2] - 2026-04-27
### 🐛 Bug Fixes
* *(gas-filler)* Increase estimated `gas_limit` by 25% if not provided in the tx
## \[1.17.1] - 2026-04-23
### 🐛 Bug Fixes
* *(bridge-webhook)* Support the new virtual account activity types ('refund\_in\_flight', 'refund\_failed')
* *(getter)* `get-user-details` does not revert if address questionnaire is empty
### 🚀 Features
* *(logs)* Enhance error logs in case of tx failure
* *(getter)* Add per chain `is_smart_account` field and bank accounts details in `/get-account-details`
* *(logs)* Enhance telegram notifications content en design
## \[1.17.0] - 2026-04-22
### 🚀 Features
* *(notify)* Set up a Telegram bot to send alerts in real time
* *(simulation)* Simulate transaction (`eth_simulateV1` rpc call) before broadcast
* *(tx-status)* New transaction status for revert, and simulation failed: `reverted` and `simulation-failed`
### 🐛 Bug Fixes
* *(rounding)* `/get-account-balances` returns same number of decimals (for `balance`) as the underlying asset
### Clean
* Remove deprecated `/send-transaction-otp` endpoint
## \[1.16.0] - 2026-04-17
### 🚀 Features
* *(multi-tx)* Allow the signing of multiple transactions with one passkey prompt
* *(vault-upgrade)* Implement the `/get-vault-upgrade-payload-passkey`
Creates a withdrawal tx from the Base vault and a deposit tx to the Ethereum vault
* *(vault-upgrade)* Logic to sign and broadcast the `vault-upgrade` transaction
* *(transactions)* Returns immediately the `transaction_hash` instead of waiting for the `transaction_receipt`
Increase API response time
* *(webhook)* Handle `liquidation_address.drain` webhook for off-ramps status and vault-upgrades deposit tx broadcast
## \[1.15.3] - 2026-04-14
### ⚙️ Miscellaneous Tasks
* *(gh-actions)* Update GitHub Actions to v6
### 🐛 Bug Fixes
* *(webhook)* Strip email suffix from Bridge customer events before user lookup
### 🚀 Features
* *(doc)* Restore `asset-manager` endpoint + clean up swagger + protect all endpoints with `integrator-auth`
* *(security)* Protect admin swagger with a UI Basic Auth (password)
## \[1.15.2] - 2026-04-10
### Clean
* *(database)* Do not use anymore the `public` schema (old indexer)
### Wip
* *(database)* Re-arrange and rename `off_ramp_addresses` tab
## \[1.15.1] - 2026-04-09
### 🚀 Features
* *(bridge)* Can update Bridge customer data from `bridge_account_id` with PUT endpoint
* *(log)* Add error logging for background transaction broadcast
### 🐛 Bug Fixes
* *(kyb)* Add `STATE_REGISTRY` doc in the Bridge doc mapping + fallback for `business_trade_name`
* *(emails)* Do not return before emails if ApplicantReviewed email for non ubos
* *(bridge)* Don't send state to Bridge if not USA or Canada address
### 🚜 Refactor
* *(onboarding)* Delete `init-account-creation` and `complete-account-creation` endpoints
## \[1.15.0] - 2026-04-07
### 🚀 Features
* *(data)* Split `user_name` into `first_name` and `last_name`
## \[1.14.5] - 2026-04-03
### 🚀 Features
* *(onboarding)* Add applicant tags on Sumsub AND self custodial wallet support
* *(migration)* Migrate sumsub applicants to last up to date levels
* *(logs)* Display Bridge create\_customer response
* *(kyb)* Can request entity check when adding ubos
* *(kyb)* Can request entity check on ApplicantReviewed ubos webhook
* *(kyb)* Do not request entity check if company is already approved
### 🐛 Bug Fixes
* *(serde)* Make town optional for deserialization
* *(kyb)* Split the last '+' on email instead of the first one
* *(kyb)* Request entity check code location
* *(bridge)* Send postal code in Ruby regex format to Bridge API
## \[1.14.4] - 2026-03-27
### 🐛 Bug Fixes
* *(kyb)* Extract company documents to send from `get_image_metadata` (cannot rely on the outcome of `get_id_verification_results`)
### 🚜 Refactor
* *(kyc)* Make High Risk questionnaire for individuals mandatory
## \[1.14.3] - 2026-03-26
### 🐛 Bug Fixes
* *(kyb)* Insert beneficiary in DB before creating it on Sumsub to avoid race condition
### 🚀 Features
* *(webhook)* Update or create associated person on Bridge for Reviewed GREEN Sumsub Webhook
## \[1.14.2] - 2026-03-26
### 🚀 Features
* *(kyb)* Implements endpoint `/add-associated-person` and `/update-associated-person`
### 🐛 Bug Fixes
* *(kyb)* Do not consume `business_activities` before sending the `business_industry` to Bridge
## \[1.14.1] - 2026-03-25
### 🚜 Refactor
* *(webhook)* Remove `AwaitingUser` webhook handler
* *(kyb)* Make *proof of source of fund* document mandatory for entities
## \[1.14.0] - 2026-03-24
### 🚀 Features
* *(patch)* Implement `/update-entity-account` endpoint
* *(webhook)* Create Bridge business customer on `onHold` GREEN Sumsub webhook for entities
### 🐛 Bug Fixes
* *(onboarding)* Do not request applicant check if status is already Active
* *(getters)* Treat `ApproveDeposit` transactions as `Deposit` for fiat instructions
### ⚙️ Miscellaneous Tasks
* chore(doc): Restructure the endpoint tags and change description
## \[1.13.1] - 2026-03-19
### ⚙️ Miscellaneous Tasks
* *(getters)* Enrich get-customers endpoint with verification status, timestamps and user details
### 🐛 Bug Fixes
* *(kyb)* Remove high risk info questionnaire from entity required docs
## \[1.13.0] - 2026-03-19
### 🚀 Features
* *(kyb)* Add the `RepresentativeTitle` questionnaire in KYB flow
* *(kyb)* Get and return the missing documents and data for an entity
* *(kyb)* Request sumsub validation check on associated-persons if all documents are provided
### 🚜 Refactor
* *(kyb)* New body for `create-entity` endpoint
* *(kyb)* Change `EntityDocumentType` enum to match sumsub doc type
* *(kyb)* Enhance the way of sending docs to sumsub
* *(kyb)* New logic to create a beneficiary - Database update in `ApplicantCreated` webhook
* *(kyb)* Make high-risk-business-activities questionnaire optionnal
### ⚙️ Miscellaneous Tasks
* *(style)* Rename `create-entity` by `create-entity-account`
### 🐛 Bug Fixes
* *(bridge)* Add +user\_id suffix to email for individual customer uniqueness
* *(bridge)* Use Sumsub image metadata to correctly assign ID card front/back sides
## \[1.12.1] - 2026-03-13
### 🐛 Bug Fixes
* *(bridge\_repository)* Make `country` optional in `GetCustomerAddressReponse`
### ⚙️ Miscellaneous Tasks
* *(kyc)* Verify request consistency when creating individual account
## \[1.12.0] - 2026-03-10
### 🚀 Features
* *(onbaording)* New PATCH endpoint `/update-individual-account` to modify or complete existing individual user details
* *(onbaording)* Can check verification documents status and return the missing docs in `create-individual-account` and `update-individual-account`
* *(bridge)* Create customer on Bridge when sumsub applicant is `onHold` and `GREEN` -> when all the sumsub checks pass
* *(compliance)* Save in the DB (`accounts` table) the Byzantine T\&C signed timestamp
### 🚜 Refactor
* *(onbaording)* rename `create-user` by `create-individual-account` + make all the fields optional (see the PATCH endpoint to complete the kyc)
* *(onbaording)* Make `bridge_account_id` Optional
* *(onbaording)* Remove `get-tos-acceptance-link` endpoint -> use the `account_id` instead
### ⚙️ Miscellaneous Tasks
* *(logs)* Imporve Bridge webhooks logs
## \[1.11.0] - 2026-03-03
### 🐛 Bug Fixes
* *(emails)* `BYZ_USER_ID` variable must be a string (not a UUID)
* *(accounts)* Correct user account role for `self_custodial` accounts creation
* *(getters)* Fallback user details to beneficiary id if individual user does not exist
### 🚀 Features
* *(getters)* Enhance `get-user-details` endpoint response and query (can be called with either user's uuid or email)
* *(getter)* Enhance `get-entity-details` endpoint response
* *(getter)* Implement `get-customers` to return all the business and individual customers of an integrator
* *(getter)* Implement `get-account-details` endpoint
* *(migration)* Implement script and SQL migration to migrate beneficiary users for multi accounts feature
### 🚜 Refactor
* Script to delete duplicate emails from DB
* Pair `(integrator_id, email)` MUST be unique in users table
* Cannot create multiple individual accounts with the same email
* Fill the beneficiaries table when entity is created
* Add beneficiaries in account users junction table
* *(sumsub)* Remove external\_user\_id from `BeneficiaryInfo` structure (DON'T fail if `beneficiary-random-*`)
### Optim
* Insert new account on DB when bridge\_customer\_id is known
* Add parallelism in sumsub webhook handler
* Remove code duplication in `invite-users` endpoint
## \[1.10.0] - 2026-02-23
### Clean
* *(approve)* Remove approval query endpoints
### 🚀 Features
* *(batching)* Batch approvals and deposits in `get-deposit-payload-passkey`
* *(batching)* Batch approvals and deposits in `sign-payload-passkey`
### 🚜 Refactor
* New approved\_vaults table for batching
## \[1.9.1] - 2026-02-20
### 🐛 Bug Fixes
* *(sumsub-data)* Make sumsub postCode optional + fallback to address questionnaire
### 🚀 Features
* *(getter)* `get-account-balances` endpoint. Returns the positions on all Byzantine vaults (optional filter by `chain_id`), the current vault `price_per_shares` and the wallet balance (idle tokens).
* *(getter)* Add graphql\_client and U256 utility for big numbers
* *(getter)* Define Indexer GraphQL schema and queries
* *(sumsub)* Add ID and share\_size fields to Beneficiary struct
* *(sumsub)* Implement Sumsub API method to unlink beneficiaries
* *(emails)* Include SelfCustodial users in root-level account queries
### 🚜 Refactor
* *(onboarding)* Sequence Sumsub questionnaire submissions
* *(onboarding)* Handle existing beneficiaries and re-linking to correct sumsub user
* *(emails)* "Incomplete" bridge status not considered as a rejection
* *(style)* Improve readability of account\_data handler
## \[1.9.0] - 2026-02-17
### ⚙️ Miscellaneous Tasks
* *(getters)* Returns the invitations user role in the getters
* *(getters)* Returns user\_id in pending\_invitations
* *(getters)* Returns full data in get-invitations endpoints
* *(webhooks)* Remove HashMap to store Bridge webhook pubkey
* *(dapp-endpoints)* Set account\_name, user\_name, and entity\_name in init-account-creation
* *(style)* Filter out Account in invitation email
### 🐛 Bug Fixes
* *(getters)* Customer getters don't revert if KYC not started
* *(otp)* Use parent-org id for init and verify otp
* *(webhooks)* Bridge webhook handler doesn't return errors anymore if account not found
* *(otp)* Sender and reply\_to emails for init-otp
* *(otp)* Otp-auth cryptography bug fixes
* *(webhooks)* Bridge webhook handler doesn't return errors anymore if account not found
* *(onboarding)* Handle existing beneficiaries in create-entity
* *(onboarding)* Allow bridge customer id update if previous one not found
### 🚀 Features
* *(dApp-endpoints)* Add account id and inviter id in invitations getters
* *(dApp-endpoint)* Can update an inactive bridge customer id in complete-account-creation
* *(database)* Adds bool to know if kyc/kyb emails have already been sent
* *(emails)* Send KYB submitted email to root users + use bool in DB to not send duplicates
* *(onbaording)* Don't recreate sumsub applicant if already exists
* *(onboarding)* Allow invitation of an existing user
* *(emails)* OTP code not alphanumeric with 6 digits
* *(emails)* Add VAULT\_ADDR in email app link
* *(emails)* Customizes invite link in email
* *(onboarding)* Approve on sumsub and whitelist self-custodials when Bridge validate KYC
### 🚜 Refactor
* *(onboarding)* Create beneficiaries in ApplicantAwaitingUser webhook
## \[1.8.1] - 2026-02-06
### 🚀 Features
* *(getter)* Replace `get-invitations-by-user_id` by `get-invitations-by-email`
* *(getter)* Enhance `get-entity-details` by providing team members and roles and pedning invitations
### ⚙️ Miscellaneous Tasks
* Add `onchainTxAmount` in response of `get-transactions`
* Update invitation table + send invitation-accepted email
## \[1.8.0] - 2026-02-06
### 🚀 Features
* *(user)* `/create-authenticators-otp` endpoint to add a passkey from an otp session
## \[1.7.0] - 2026-02-05
### 🚀 Features
* *(otp\_auth)* `init-otp` endpoint to send a code to a specific email address
* *(otp\_auth)* `otp-auth` endpoint to verify the otp code and generate a session token
* *(otp\_auth)* otp\_sessions DB table and schemas
## \[1.6.0] - 2026-02-04
### 🚀 Features
* *(root-quorum)* Endpoints to update users role / root quorum in a Byz account. See `/get-update-users-role-payload-passkey` and `/update-users-role`
## \[1.5.2] - 2026-02-03
### 🚀 Features
* *(database)* Invitations database table
* *(getters)* Can query invitations by account id (`/get_invitations_by_account_id`) or user id (`/get_invitations_by_user_id`)
* *(emails)* Team member invited emails
### 🚜 Refactor
* *(multi-user)* Create OTP user by default during invitation (no passkey)
### 🐛 Bug Fixes
* *(endpoints)* Adjust `/get-invite-users-payload-passkey` and `/invite-users` endpoints with new migration
## \[1.5.1] - 2026-01-28
### 🚀 Features
* *(kyb)* Sumsub proof of source of funds doc submission
* *(emails)* KYC/KYB rejected email
* *(emails)* Send finalize-deposit email if on-ramp amount doesn't match expected amount
### ⚙️ Miscellaneous Tasks
* *(emails)* No KYC status emails for ubos
* *(emails)* Integrate resend templates
* *(emails)* Send KYB submitted email during `ApplicantReviewed` webhook
### 🐛 Bug Fixes
* *(sumsub)* Retries with exponential backoff for request\_applicant\_check
* *(create-entity)* Do not spam the request-applicant-check endpoint
### Optim
* *(speed)* Create sumsub and bridge account in parallel
## \[1.5.0] - 2026-01-25
### 🚀 Features
* *(multi-users)* `invite-users` endpoint. Emails not implemented yet
* *(multi-users)* `get-invite-users-payload-passkey` endpoint
* *(multi-users)* Passkey auth in invite-users endpoint
### ⚙️ Miscellaneous Tasks
* *(root-users)* Add the `turnkey_user_id` in the API database
* *(root-users)* Stores turnkey user id for byz users
## \[1.4.4] - 2026-01-22
### 🚀 Features
* DApp endpoints CAN accepts self custodials wallets
## \[1.4.3] - 2026-01-22
### 🚀 Features
* Create beneficiary byz users for dApp entities.
* Fetch beneficiaries byz id from sumsub `applicant_id` if needed
## \[1.4.2] - 2026-01-21
### 🐛 Bug Fixes
* *(bridge-webhook)* Make amount field optional
### ⚙️ Miscellaneous Tasks
* *(db-schemas)* Update schemas to last DB version
## \[1.4.1] - 2026-01-16
### ⚙️ Miscellaneous Tasks
* *(schema)* New schemas for moving average
* Reduces / removes security buffer for on-ramps with same currency
## \[1.4.0] - 2026-01-13
### 🚀 Features
* Remove endpoints related to transactions pre-signatures `*-transaction-passkey` and old verifiers.
Use now the `*-payload-passkey` endpoints
### ⚙️ Miscellaneous Tasks
* Adapt OTP endpoints to new verifiers (OTP endpoints still not finished)
## \[1.3.2] - 2026-01-13
### ⚙️ Miscellaneous Tasks
* *(schema)* New indexer async vault schema
## \[1.3.1] - 2026-01-12
### 🐛 Bug Fixes
* *(deps)* Update alloy version and fillers used
## \[1.3.0] - 2026-01-12
### 🚀 Features
* *(async-vault)* Can withdraw from euros async vaults
## \[1.2.4] - 2026-01-09
### 🐛 Bug Fixes
* *(async-vault)* Update AsyncVault struct to new indexer schema
## \[1.2.3] - 2026-01-09
### 🐛 Bug Fixes
* *(webhook-pubkey)* Base64 representation of the pubkey in the .env
## \[1.2.2] - 2026-01-08
### ⚙️ Miscellaneous Tasks
* Set bridge webhook pubkeys in .env + take config variables when reading them
* Add Base support for gate contracts
## \[1.2.1] - 2026-01-08
### Logs
* Display logs when sending applicant status emails
### ⚙️ Miscellaneous Tasks
* *(on-ramp)* Add `expected_deposit_amount` in SourceDepositInstructions
### 🐛 Bug Fixes
* *(doc)* CamelCase for payment rail virtual account data
## \[1.2.0] - 2026-01-08
### 🚀 Features
* *(async-vault)* EUR Vault (aka Async Vault) indexer schema
* *(async-vault)* EUR Vault logic in `/get-approve-payload-passkey` and `/get-deposit-payload-passkey` query endpoints
* *(async-vault)* EUR Vault logic in `/v1/submit/sign-payload-passkey` for approvals and deposits + bridge webhook for on-ramps
## \[1.1.3]
### 🚀 Features
* *(top-vaults)* Add is\_asynchronous data in top\_vaults table
## \[1.1.2] - 2026-01-07
### 📚 Documentation
* *(schema)* Fix OpenAPI case style in sourceDepositInstructions. Use camelCase in the doc.
## \[1.1.1] - 2026-01-06
### 🐛 Bug Fixes
* *(gas-sponsorship)* Correct the digest computation
* *(gas-sponsorship)* Add 27 to v signature component
## \[1.1.0] - 2026-01-06
### 🚀 Features
* *(email)* Design the "Funds Deposited" email
* *(email)* Design the "Funds Received" email
* *(email)* Send "Funds Deposited" email if tx successfully executed
* *(email)* Send "Funds Received" email if tx reverts on-chain
### 🐛 Bug Fixes
* *(email)* Footer in gmail
* *(email)* Skip email notification in Sumsub webhook when user is not found
### 🎨 Styling
* *(email)* Format first name from sumsub extracted data: Remove middle names and use Pascal case
## \[1.0.0] - 2026-01-05
### 💥 Breaking Changes
* Endpoints `/get-approve-transaction-passkey`, `/get-deposit-transaction-passkey` and `/get-withdraw-transaction-passkey` are deprecated.
* Endpoint `/virtual-account-activity` won't support anymore the broadcasting of pre-signed transactions (only pre-signed payloads)
* Field `signed_tx` in database stores now the signed payload, not the signed transaction.
### 🚀 Features
* `/get-approve-payload-passkey` endpoint
* `/get-deposit-payload-passkey` endpoint
* `/get-withdraw-payload-passkey` endpoint
* On-ramp logic in `/sign-payload-passkey` endpoint
* Withdraw, approve and instant deposit logic in `/sign-payload-passkey` endpoint
* Handle gas sponsorhip in bridge webhooks for on-ramps
* Verify account is delegating to atlas before creating a payload to sign
* Make `ActivateAccountRequestBody` TurnkeySignable
* Use a Rust match pattern for processing the signed payload
* Sponsor Atlas `executeCall` transaction
* Save the tx nonce in the DB (turnkey\_transactions table)
### ⚙️ Miscellaneous Tasks
* Old `RequestVerifier` methods
* Refactor the `TxVerifier` struct
* Enhance error messages in `verify_transaction`
* `Verify_transaction` -> `verify_transaction_old`
* Store the compacted signature in the DB
# Concepts
Source: https://docs.byzantine.fi/api-reference/concepts
Key concepts in the Byzantine infrastructure.
Below are some of the key concepts and terms used in the Byzantine API.
Some of these relate to blockchain technology. Basic knowledge of blockchain will be helpful in understanding Byzantine, but it is not required. Integrating Byzantine is 100% API-based.
## Key terms
| **Concept** | **Explainer** |
| - | - |
| **User** | Every individual user and every person in a business entity has a unique `user_id`. User ID is used to identify the user in the Byzantine ecosystem and to update user personal information. |
| **Entity** | A legal entity. At least one `root` user account needs to be tied to each legal entity to be able to make transactions. An entity can be found via any `account_id` that is tied to it. |
| **Account** | Every individual and business user of Byzantine has an account, associated with a unique `account_id`. Accounts can be tied to legal entities. |
| **Wallet** | A wallet is the user’s blockchain access point: it stores their assets and enables transactions. The wallet is where a user account's vault shares are held. If a user doesn’t already have one, a secure wallet is automatically created and embedded in their account during onboarding. One account is associated with at least one wallet. |
| **Vault** | Byzantine products, like Byzantine Prime USDC, are smart contracts known as *vaults*. These smart contracts are blockchain-based code that automatically handles all administration work surrounding a user's deposit. These vaults are what make Byzantine's high security and non-custodial nature possible. |
A `user_id` is tied to a specific email and a specific `integrator_id`. Each email address can only be used once per integrator - attempting to create a second user with the same email will return an error. Refer to [Multi-accounts](/api-reference/multi-accounts) for more details.
## Wallet authentication
Even if the user accesses the blockchain through an integrator's interface and Byzantine's API, the user is **sole owner and controller** of their assets. Each time a transaction is to be made, the user must themselves approve it with one of the available signature methods.
Without this signature tied to the user's device or the user's identity, nobody could physically make transactions. In this way, user ownership and control are programmatically guaranteed.
The are two methods of authentication to use the wallet. For more details, see [Authentication methods](/api-reference/authentication-methods).
## Two-step transactions
Since the user is the sole controller of the wallet, they need to sign every transaction themselves. Therefore, making a transaction via the Byzantine API is split into two steps:
1. Requesting the transaction body
2. Submitting the signed transaction
For details on how this process works, see [Transactions](/api-reference/transactions-overview).
## Non-custodiality
At no point in any interaction does Byzantine take custody or hold control over user funds.
# Add an associated person to an entity account
Source: https://docs.byzantine.fi/api-reference/customer-management/add-an-associated-person-to-an-entity-account
/api-reference/openapi-integrator.json post /v1/submit/add-associated-person
# Create entity
Source: https://docs.byzantine.fi/api-reference/customer-management/create-entity
/api-reference/openapi-integrator.json post /v1/submit/create-entity-account
`email` and `associatedPersons.email` must be unique at each call of the endpoint.
For emails, you can use the `+` sign to make them unique, e.g. byzcorp+1@example.com.
# Create individual account
Source: https://docs.byzantine.fi/api-reference/customer-management/create-individual-account
/api-reference/openapi-integrator.json post /v1/submit/create-individual-account
The account beneficiary is the person described in `user_info` (the KYC subject).
`root_users` are the signers: the owner themselves (same email), or a
wealth manager / CGP operating on the owner's behalf.
`email` must be unique at each call of the endpoint.
You can use the `+` sign to make them unique, e.g. alice+1@example.com.
It is possible to create an individual account with only the following details and then call the `update-individual-account` to complete the application:
- `firstName`
- `lastName`
- `email`
- `byzantineTermsSignedAt`
# Get details of a single associated person
Source: https://docs.byzantine.fi/api-reference/customer-management/get-details-of-a-single-associated-person
/api-reference/openapi-integrator.json get /v1/query/get-associated-person-details
This endpoint returns the full record of one beneficiary or representative of an entity:
- Personal information (name, contact, birth details, residential address)
- Beneficiary details (type, title held at the business, ownership share)
- Verification status and the documents still missing
The `beneficiaryId` is returned by `get-entity-details` and by the associated person submit
endpoints. A person belonging to another integrator returns the same 404 as one that does
not exist, so this endpoint never reveals the existence of a foreign record.
# Get details of a single entity
Source: https://docs.byzantine.fi/api-reference/customer-management/get-details-of-a-single-entity
/api-reference/openapi-integrator.json get /v1/query/get-entity-details
This endpoint returns comprehensive information about a business entity including:
- Basic business information (name, email, addresses)
- Associated account details
- Team members (users who are part of the team)
- Associated persons (beneficiaries and representatives)
- Pending invitations (invitations that are pending acceptance)
# Get details of a single user
Source: https://docs.byzantine.fi/api-reference/customer-management/get-details-of-a-single-user
/api-reference/openapi-integrator.json get /v1/query/get-user-details
This endpoint returns comprehensive information about a user including:
- Basic user information (name, email, address)
- Verification status
- Associated accounts details
# List all customers
Source: https://docs.byzantine.fi/api-reference/customer-management/list-all-customers
/api-reference/openapi-integrator.json get /v1/query/get-customers
Returns business customers (entities with their team members) and/or individual customers (users without an entity).
Use the `customer_type` query parameter to filter:
- `business`: only business customers
- `individual`: only individual customers
- `all` (default): both business and individual customers
# Update an associated person's details
Source: https://docs.byzantine.fi/api-reference/customer-management/update-an-associated-persons-details
/api-reference/openapi-integrator.json patch /v1/submit/update-associated-person
# Update an entity account's company details
Source: https://docs.byzantine.fi/api-reference/customer-management/update-an-entity-accounts-company-details
/api-reference/openapi-integrator.json patch /v1/submit/update-entity-account
# Update an individual account's user details
Source: https://docs.byzantine.fi/api-reference/customer-management/update-an-individual-accounts-user-details
/api-reference/openapi-integrator.json patch /v1/submit/update-individual-account
It is possible to call this endpoint as many times as necessary to submit additional information/documents to complete the account.
Only the `accountId` is required.
# High level overview
Source: https://docs.byzantine.fi/api-reference/deposit-overview
High level overview of the deposit process.
To enable your users to deposit, and withdraw funds from a Byzantine vault, the flow is slightly different depending on the authentication method used and the currency of the deposit or withdrawal.
# Technical implementation
Source: https://docs.byzantine.fi/api-reference/deposit-technical
How to make a deposit into a Byzantine vault.
Byzantine accepts both stablecoins and fiat deposits. Based on the deposit currency, the process differs slightly.
## Supported assets
Before constructing a deposit, call [`GET /v1/query/assets`](/api-reference/products/get-all-assets) to retrieve the list of tokens currently supported across Byzantine vaults.
Byzantine currently supports USDC and EURC stablecoins.
A deposit into a Byzantine vault proceeeds in the following steps:
1. Get the deposit payload for the user to sign with the authentication method used.
2. Submit the signed payload to execute the deposit transaction.
3. \[Optional - only for fiat deposits] User deposits fiat into a dedicated bank account to convert it to stablecoins, known as *on-ramping*.
4. Execute the deposit transaction to transfer the stablecoins into a Byzantine vault.
The integrator will have to call different API endpoints based on the authentication method used.
## 1. Signing the deposit transaction
Initiating the deposit is once again a two-step transaction.
1. [Get deposit payload](/api-reference/transactions/get-deposit-payload), which requests the transaction body to sign.
2. [Sign a payload (passkey)](/api-reference/transactions/sign-payload), which submits the signed transaction.
## 2. \[Optional] Depositing fiat into bank account (on-ramping)
On-ramping assets is done via [Bridge](https://www.bridge.xyz/), our on- and off-ramping partner.
A dedicated bank account is automatically created for each user based on their fiat currency and the vault's currency. Once the deposit transaction is signed, the bank account details are provided to the user.
The user must deposit fiat into this dedicated bank account to convert it to stablecoins. Any funds sent to the bank account are automatically converted into the vault's currency.
This step can be skipped if user is depositing stablecoins directly.
## 3. \[Automatic] Executing the deposit transaction
Once the deposit transaction is signed (step 2), the stablecoins will be transferred immediately into the Byzantine vault.
For users depositing stablecoins, the transaction is immediately broadcasted, i.e. the status is set to `completed`.
As soon as the on-ramping is complete, Byzantine will automatically execute the pre-signed transaction, which means user's money will be transferred into the Byzantine vault.
Note that signing the deposit transaction or depositing fiat into the bank account does not complete the deposit. Funds are only transferred into the Byzantine vault after on-ramping is complete.
# Overview
Source: https://docs.byzantine.fi/api-reference/endpoints-overview
Byzantine has built an API to simplify the integration of our platform into your own.
Download the [OpenAPI specification](openapi-integrator.json) to view the full API endpoints.
## Account creation
* Create and manage entities and users, including KYC/KYB payloads and supporting documents.
* Complete the account creation process to enable on-ramping and off-ramping.
## Transactions with passkey
* `Get activate/deposit/withdraw body` endpoints return unsigned transactions for passkey-based flows.
* `Send transaction` broadcasts a signed payload after collecting the user's WebAuthn signature.
## Account management
* Manage existing accounts: add bank accounts and other features are coming soon.
## User management
* Manage users by inviting them, updating their roles, and managing their authenticators (passkeys).
* Initialize OTP for a user and authenticate with OTP to create a session for authenticated actions.
## Vault data
* Discover active vaults and their performance using `Top vaults`, `Vault APY`, and `History` endpoints.
* Retrieve the list of supported deposit tokens and their on-chain details using the `Assets` endpoint.
## Account data
* Retrieve vault activity for a single user: deposits, withdrawals, and aggregate positions.
* Check transaction statuses and historical activity after deposits/withdrawals are initiated.
* Use these endpoints to confirm when funds finish on-ramping or when a withdrawal settles.
## API health
* `GET /v1/health` returns the service status.
***
Select any endpoint category below to view request/response schemas generated from the OpenAPI file.
# Getting started
Source: https://docs.byzantine.fi/api-reference/getting-started
If you're looking to learn more about Byzantine generally, have a look at our [General Documentation](/).
Byzantine is a modular infrastructure layer for institutional digital credit - built for integrators, fintechs, and developers who want to embed better institutional-grade yield directly into their platforms.
The Byzantine API is unified, composable, and simple to use. With one endpoint structure, integrators can retrieve vault data, create and manage accounts, and handle deposits and withdrawals programmatically - all through a single integration.
| **What you can do** | |
| - | - |
| **[Create Accounts](/api-reference/kyc-kyb-overview)** | Programmatically create Byzantine individual and entity accounts. |
| **[Manage Accounts and Users](/api-reference/management-overview)** | Create multiple accounts within one entity and manage users, manage their roles and permissions. |
| **[Handle Deposits and Withdrawals](/api-reference/transactions-overview)** | Submit and reconcile transactions securely through a unified workflow. |
| **[Access Account and User Data](/api-reference/customer-management/get-details-of-a-single-user)** | Retrieve user-specific performance, transaction history, and positions in real time. |
| **[Retrieve Vault Data](/api-reference/products/get-single-product-apy)** | Access live information on vaults, supported assets, strategies, and yields. |
## Getting Access
Access to the Byzantine API requires an **Integrator API Key**. Reach out to learn more about integrating Byzantine - we’ll verify your use case and generate your key manually.
# Legal entities - KYB
Source: https://docs.byzantine.fi/api-reference/kyb
Creating an account for an entity means submitting company information and company documents for KYB, as well as beneficiaries and details about them for KYC. This is a regulatory obligation.
Before creating the entity account, the user must accept the required terms.
See [Terms and Conditions](/api-reference/terms-and-conditions).
### 1. Create the entity account
The creation of the entity account is done by calling this API endpoint:
Only the following information needs to be provided:
* `businessLegalName`
* `rootUsers`
* `byzantineTermsSignedAt`
The entity will receive an `account_id` and an `entity_id`. Every beneficiary/representative of the entity will have a `user_id`.
If you want to register a user's passkey at account creation, include the
`authenticators` field in the create call. If no passkey is added at creation,
OTP authentication is automatically set up for the user - and OTP will then be
required to add a passkey later through a dedicated endpoint.
When creating an entity, the user creating it **must** add themselves as one
of the beneficiaries/representatives. Please refer to the related endpoint
page for more details about the requirements.
### 2. Complete the company information
Once the account is created, use the update endpoint to progressively provide or amend the company information and documents needed for KYB verification:
The following information can be submitted via one or multiple update calls:
* Company details (legal name, trade name, business type, address, etc.) in `entityInfo`
* Company documents in `entityDocuments`. Before verification can start, submit at least one document from each required group:
* company details (`COMPANY_DETAILS_DOCUMENT`);
* ownership structure (`OWNERSHIP_STRUCTURE_DOCUMENT`);
* source of funds (`SOURCE_OF_FUNDS_DOCUMENT`);
* proof of the entity's physical address (`PROOF_OF_ADDRESS_DOCUMENT`).
See the [list of required documents](/api-reference/accepted-documents) for the accepted types in each group.
* Personal data about every ultimate beneficial owner (UBO)/representative of the company in `associatedPersons`
The response of both the create and update endpoints will include a
`missingDocuments` field listing any remaining required documents, and a
`missingCompanyData` field listing any remaining required company information.
Byzantine requests the KYB verification check only when both fields are
absent, meaning no required document, questionnaire, or company information
remains outstanding.
`missingDocuments` can also report incomplete company questionnaires:
* `PHYSICAL_ADDRESS_QUESTIONNAIRE` — complete `entityInfo.physicalAddress`;
* `ACTIVITY_INFO_QUESTIONNAIRE` — complete `entityInfo.activityInfo`;
* `FINANCIAL_INFO_QUESTIONNAIRE` — complete `entityInfo.financialInfo`.
### 3. Complete the beneficiaries/representatives information
Every UBO and representative of the entity must be registered and have their identity verified. Use the dedicated associated-person endpoints to add them to the account and to progressively provide their personal information and ID documents.
To add a new beneficiary/representative to the entity, call:
The request requires:
* `accountId` - the entity's account ID
* `associatedPerson.userInfo` - personal data (first name, last name, email, date of birth, nationality, address, phone number, etc.)
* `associatedPerson.beneficiaryDetails` - including `beneficiaryType` (UBO, representative, or both), `ownershipPercentage` (required for UBOs) and `title` (required for representatives)
* `associatedPerson.verificationDocuments` - ID documents and proof of address. See the [list of accepted documents](/api-reference/accepted-documents)
A successful call returns a `beneficiaryId` and a `missingDocuments` field listing any remaining required documents that have not yet been submitted.
To amend an existing beneficiary/representative's details or submit additional documents, call:
Only the `beneficiaryId` is required - any subset of `userInfo`, `beneficiaryDetails`, or `verificationDocuments` can be provided, and only the fields included will be updated.
To read back one person's full record - personal information, beneficiary details, verification status, and the documents still missing - call:
It takes the `beneficiaryId` as a query parameter. A person belonging to another integrator returns the same `404` as one that does not exist, so the endpoint never reveals whether a foreign record exists.
Update endpoints can be called as many times as needed to complete the
company/beneficiary's information.
### 4. KYB verification
Byzantine and Bridge will verify the entity's existence, ownership structure, and the identities of all UBOs and representatives of the company. Both Bridge and Byzantine may ask for additional details during this process.
Throughout the KYB process, the root user receives email notifications at every stage with updates on their status.
This process usually takes 24-48 hours.
# Individuals - KYC
Source: https://docs.byzantine.fi/api-reference/kyc
In order to use the Byzantine Prime application, an individual user needs to go through a KYC process. This is a regulatory obligation for individuals.
Before creating the individual account, the user must accept the required terms. See [Terms and Conditions](/api-reference/terms-and-conditions).
### 1. Create the individual account
The creation of the individual account is done by calling this API endpoint:
An individual account is described by two distinct fields:
* **`userInfo`** - the person being verified. They are the KYC subject and the account's customer.
* **`rootUsers`** - the signer(s) who control the account. Each root user holds their own passkey and can sign transactions, exactly like the root users of an entity account. Every entry carries its own `firstName`, `lastName`, `email`, and `authenticators`.
For a standard, self-created account, the account holder is both the verified customer and the signer - include the **same person in both `userInfo` and `rootUsers`, using the same email**.
Only the following fields are required to create the account:
* `firstName`, `lastName`, `email` (in `userInfo`)
* one signer in `rootUsers` (`firstName`, `lastName`, `email`)
* `byzantineTermsSignedAt`
The account receives an `accountId`, and every person on it gets their own `userId`: one for the verified customer in `userInfo`, and one for each signer in `rootUsers`. In a standard self-created account, `userInfo` and the single root user are the same person, so there is just one `userId`.
To register a passkey at account creation, provide the `authenticators` inside the corresponding `rootUsers` entry. If no passkey is added at creation, OTP authentication is automatically set up for that user - and OTP will then be required to add a passkey later through a dedicated endpoint.
An individual account can have **more than one signer**, and you can create an account **on behalf of a client** (for example as a wealth manager / CGP) by verifying one person in `userInfo` while a different person signs via `rootUsers`. See [Multi-users account](/api-reference/multi-users-account).
### 2. Complete the application
Once the account is created, use the update endpoint to progressively provide the remaining information needed for KYC verification:
The following information can be submitted via one or multiple update calls:
* Personal data (date of birth, nationality, address, phone number, etc.)
* ID documents (passport or national ID card). See the [list of accepted documents](/api-reference/accepted-documents)
* Proof of address. See the [list of accepted documents](/api-reference/accepted-documents)
The response of both the create and update endpoints will include a `missingDocuments` field listing any remaining required documents that have not yet been submitted.
### 3. Read the current user details
Use the user-details endpoint to retrieve the current KYC information and the accounts associated with the person:
The response's `userInfo` includes `firstName`, `lastName`, and `email`, plus the available optional fields: `middleName`, `phone`, `birthDate`, `nationality`, `countryOfBirth`, and `residentialAddress`.
### 4. KYC verification
Byzantine and Bridge will verify the individual's identity and address. Both Bridge and Byzantine may ask for additional details during this process.
Throughout the KYC process, the user receives email notifications at every stage with updates on their status.
The KYC process usually takes only a few minutes.
# High level overview
Source: https://docs.byzantine.fi/api-reference/kyc-kyb-overview
High level overview of the KYC and KYB process.
Before a Byzantine account can be activated and funded, every user must pass identity verification. The process differs depending on account type:
* **Individual accounts (KYC):** A single user submits personal details and identity documents. Verification typically completes within a few minutes.
* **Entity accounts (KYB):** A legal entity is verified alongside all its ultimate beneficial owners (UBOs) and authorised representatives. Each person completes their own KYC as part of the entity application. This process typically takes 24-48 hours.
In both cases, verification is handled jointly by Byzantine and its regulated payment partner, Bridge. Once approved, the account is activated and transactions can begin.
The diagram below shows the full flow from account creation to activation.
# Entity number types by country
Source: https://docs.byzantine.fi/api-reference/lists/company-number-types
Below is a list of the business numbers that we accept for each country. When creating an entity, this is the number that needs to be submitted.
Find the list in JSON format [here](business_number_types.json).
| Region | Region shorthand | Business number shorthand | Business number |
| - | - | - | - |
| Aruba | ABW | cn | Census Number |
| Afghanistan | AFG | tin | Tax Identification Number |
| Angola | AGO | nif | Número de Identificação Fiscal |
| Albania | ALB | nipt | Numri i Identifikimit për Personin e Tatueshëm |
| Andorra | AND | nrt | Número de Registre Tributari |
| Argentina | ARG | cuit | Clave Única de Identificación Tributaria |
| Armenia | ARM | tin | Tax Identification Number |
| Australia | AUS | acn | Australian Company Number |
| Austria | AUT | fn | Firmenbuchnummer |
| Azerbaijan | AZE | voen | Vergi Ödəyicisinin Eyniləşdirmə Nömrəsi |
| Belgium | BEL | bce | Banque-Carrefour des Entreprises |
| Bangladesh | BGD | bin | Business Identification Number |
| Bulgaria | BGR | uic | Unified Identification Code |
| Bahrain | BHR | crn | Company/Commercial Registration Number |
| Bahamas | BHS | tin | Tax Identification Number |
| Bosnia and Herzegovina | BIH | id\_broj | ID Broj (Identification Number) |
| Belize | BLZ | tin | Tax Identification Number |
| Bermuda | BMU | crn | Company/Commercial Registration Number |
| Bolivia (Plurinational State of) | BOL | nit | Número de Identificación Tributaria |
| Brazil | BRA | cnpj | Cadastro Nacional da Pessoa Jurídica |
| Barbados | BRB | tin | Tax Identification Number |
| Botswana | BWA | crn | Company/Commercial Registration Number |
| Canada | CAN | bin | Business Identification Number |
| Chile | CHL | rut | Registro Único Tributario |
| China | CHN | usc | Unified Social Credit Code |
| Cote d'Ivoire | CIV | nif | Número de Identificação Fiscal |
| Cameroon | CMR | nif | Número de Identificação Fiscal |
| Colombia | COL | nit | Número de Identificación Tributaria |
| Comoros | COM | nif | Número de Identificação Fiscal |
| Costa Rica | CRI | cedula\_juridica | Cédula Jurídica |
| Curacao | CUW | crib | Central Registratie en Informatiebureau |
| Christmas Island | CXR | abn | Australian Business Number |
| Cayman Islands | CYM | crn | Company/Commercial Registration Number |
| Cyprus | CYP | crn | Company/Commercial Registration Number |
| Czechia | CZE | ico | Identifikační Číslo Organizace (Organization Identification Number) |
| Germany | DEU | crn | Company/Commercial Registration Number |
| Dominica | DMA | tin | Tax Identification Number |
| Denmark | DNK | cvr | Central Virksomhedsregister (Central Business Register) |
| Dominican Republic | DOM | rnc | Registro Nacional de Contribuyentes (National Taxpayer Registry) |
| Algeria | DZA | nif | Número de Identificação Fiscal |
| Ecuador | ECU | ruc | Registro Único de Contribuyentes |
| Egypt | EGY | tin | Tax Identification Number |
| Spain | ESP | nif | Número de Identificação Fiscal |
| Estonia | EST | rc | Register Code |
| Ethiopia | ETH | tin | Tax Identification Number |
| Finland | FIN | y\_tunnus | Business ID |
| Fiji | FJI | tin | Tax Identification Number |
| France | FRA | siren | Système d’Identification du Répertoire des Entreprises |
| United Kingdom | GBR | crn | Company/Commercial Registration Number |
| Georgia | GEO | ic | Identification Code |
| Ghana | GHA | tin | Tax Identification Number |
| Gibraltar | GIB | crn | Company/Commercial Registration Number |
| Greece | GRC | aom | Αριθμός Οικονομικής Μονάδας |
| Guatemala | GTM | nit | Número de Identificación Tributaria |
| Hong Kong | HKG | brn | Business Registration Number |
| Honduras | HND | rtn | Registro Tributario Nacional |
| Croatia | HRV | oib | Osobni Identifikacijski Broj |
| Haiti | HTI | nif | Número de Identificação Fiscal |
| Hungary | HUN | tin | Tax Identification Number |
| Indonesia | IDN | npwp | Nomor Pokok Wajib Pajak |
| Isle of Man | IMN | crn | Company/Commercial Registration Number |
| India | IND | pan | Personal Account Number |
| Ireland | IRL | cro | Company Registration Office Number |
| Iraq | IRQ | tin | Tax Identification Number |
| Iceland | ISL | id | Identification Number |
| Israel | ISR | crn | Company/Commercial Registration Number |
| Italy | ITA | partita\_iva | Partita IVA |
| Jamaica | JAM | trn | Tax Registration Number |
| Jordan | JOR | tin | Tax Identification Number |
| Japan | JPN | hn | Hojin Number |
| Kazakhstan | KAZ | bin | Business Identification Number |
| Kenya | KEN | pin | Personal Identification Number |
| Kyrgyzstan | KGZ | inn | Taxpayer Identification Number |
| Cambodia | KHM | tin | Tax Identification Number |
| Saint Kitts and Nevis | KNA | tin | Tax Identification Number |
| Korea (Republic of) | KOR | brn | Business Registration Number |
| Kuwait | KWT | crn | Company/Commercial Registration Number |
| Lao People's Democratic Republic | LAO | tin | Tax Identification Number |
| Lebanon | LBN | crn | Company/Commercial Registration Number |
| Liberia | LBR | tin | Tax Identification Number |
| Saint Lucia | LCA | tin | Tax Identification Number |
| Sri Lanka | LKA | brn | Business Registration Number |
| Lithuania | LTU | cc | Company Code |
| Luxembourg | LUX | matricule | Matricule |
| Latvia | LVA | rn | Reģistrācijas Numurs |
| Morocco | MAR | if | Identifiant Fiscal |
| Monaco | MCO | crn | Company/Commercial Registration Number |
| Moldova | MDA | idno | Identification Number of Organization |
| Madagascar | MDG | nif | Número de Identificação Fiscal |
| Mexico | MEX | rfc | Registro Federal de Contribuyentes |
| Marshall Islands | MHL | en | Entity Number |
| North Macedonia | MKD | tin | Tax Identification Number |
| Malta | MLT | crn | Company/Commercial Registration Number |
| Montenegro | MNE | crn | Company/Commercial Registration Number |
| Mozambique | MOZ | pib | Personal Identification of the Business |
| Mauritania | MRT | nif | Número de Identificação Fiscal |
| Mauritius | MUS | brn | Business Registration Number |
| Malawi | MWI | tpin | Taxpayer Identification Number |
| Malaysia | MYS | ssm | Suruhanjaya Syarikat Malaysia |
| Namibia | NAM | vat | Value Added Tax Number |
| Nigeria | NGA | cac | Corporate Affairs Commission Registration Certificate Number |
| Nicaragua | NIC | ruc | Registro Único de Contribuyentes |
| Netherlands | NLD | kvk | Kamer van Koophandel |
| Norway | NOR | orgnr | Organisasjonsnummer |
| Nepal | NPL | pan | Personal Account Number |
| New Zealand | NZL | gst | Goods and Services Tax Number |
| Oman | OMN | crn | Company/Commercial Registration Number |
| Panama | PAN | ruc | Registro Único de Contribuyentes |
| Peru | PER | ruc | Registro Único de Contribuyentes |
| Philippines | PHL | tin | Tax Identification Number |
| Pakistan | PAK | ntn | National Tax Number |
| Poland | POL | krs | Krajowy Rejestr Sądowy |
| Portugal | PRT | nipc | Número de Identificação de Pessoa Coletiva |
| Qatar | QAT | crn | Company/Commercial Registration Number |
| Romania | ROU | cui | Cod Unic de Înregistrare |
| Russia | RUS | ogrn | Primary State Registration Number |
| Saudi Arabia | SAU | crn | Company/Commercial Registration Number |
| Senegal | SEN | ninea | Numéro d’Identification Nationale des Entreprises et des Associations |
| Singapore | SGP | uen | Unique Entity Number |
| Slovakia | SVK | ico | Identifikační Číslo Organizace (Organization Identification Number) |
| Slovenia | SVN | maticna | Matična Številka |
| South Africa | ZAF | tin | Tax Identification Number |
| Sweden | SWE | orgnr | Organisasjonsnummer |
| Switzerland | CHE | uid | Umsatzsteuer-Identifikationsnummer |
| Thailand | THA | tin | Tax Identification Number |
| Tunisia | TUN | mf | Matricule Fiscale |
| Turkey | TUR | vkn | Vergi Kimlik Numarası |
| Uganda | UGA | tin | Tax Identification Number |
| Ukraine | UKR | edrpou | ЄДРПОУ |
| United Arab Emirates | ARE | trn | Tax Registration Number |
| United States | USA | ein | Employer Identification Number |
| Uruguay | URY | rut | Registro Único Tributario |
| Uzbekistan | UZB | inn | Taxpayer Identification Number |
| Venezuela | VEN | rif | Registro de Información Fiscal |
| Vietnam | VNM | mst | Mã số thuế |
| Yemen | YEM | tin | Tax Identification Number |
| Zambia | ZMB | tpin | Taxpayer Identification Number |
| Zimbabwe | ZWE | bp | Business Partner Number |
# Countries
Source: https://docs.byzantine.fi/api-reference/lists/countries
The list of accepted countries and regions that users or entities may be resident in.
When submitting a country anywhere, the three-letter shorthand must be provided.
Find the list in JSON format [here](countries.json).
| Region | Region shorthand |
| - | - |
| Aruba | ABW |
| Afghanistan | AFG |
| Angola | AGO |
| Albania | ALB |
| Andorra | AND |
| Argentina | ARG |
| Armenia | ARM |
| Australia | AUS |
| Austria | AUT |
| Azerbaijan | AZE |
| Belgium | BEL |
| Bangladesh | BGD |
| Bulgaria | BGR |
| Bahrain | BHR |
| Bahamas | BHS |
| Bosnia and Herzegovina | BIH |
| Belize | BLZ |
| Bermuda | BMU |
| Bolivia (Plurinational State of) | BOL |
| Brazil | BRA |
| Barbados | BRB |
| Botswana | BWA |
| Canada | CAN |
| Chile | CHL |
| China | CHN |
| Cote d'Ivoire | CIV |
| Cameroon | CMR |
| Colombia | COL |
| Comoros | COM |
| Costa Rica | CRI |
| Curacao | CUW |
| Christmas Island | CXR |
| Cayman Islands | CYM |
| Cyprus | CYP |
| Czechia | CZE |
| Germany | DEU |
| Dominica | DMA |
| Denmark | DNK |
| Dominican Republic | DOM |
| Algeria | DZA |
| Ecuador | ECU |
| Egypt | EGY |
| Spain | ESP |
| Estonia | EST |
| Ethiopia | ETH |
| Finland | FIN |
| Fiji | FJI |
| France | FRA |
| United Kingdom | GBR |
| Georgia | GEO |
| Ghana | GHA |
| Gibraltar | GIB |
| Greece | GRC |
| Guatemala | GTM |
| Hong Kong | HKG |
| Honduras | HND |
| Croatia | HRV |
| Haiti | HTI |
| Hungary | HUN |
| Indonesia | IDN |
| Isle of Man | IMN |
| India | IND |
| Ireland | IRL |
| Iraq | IRQ |
| Iceland | ISL |
| Israel | ISR |
| Italy | ITA |
| Jamaica | JAM |
| Jordan | JOR |
| Japan | JPN |
| Kazakhstan | KAZ |
| Kenya | KEN |
| Kyrgyzstan | KGZ |
| Cambodia | KHM |
| Saint Kitts and Nevis | KNA |
| Korea (Republic of) | KOR |
| Kuwait | KWT |
| Lao People's Democratic Republic | LAO |
| Lebanon | LBN |
| Liberia | LBR |
| Saint Lucia | LCA |
| Sri Lanka | LKA |
| Lithuania | LTU |
| Luxembourg | LUX |
| Latvia | LVA |
| Morocco | MAR |
| Monaco | MCO |
| Moldova | MDA |
| Madagascar | MDG |
| Mexico | MEX |
| Marshall Islands | MHL |
| North Macedonia | MKD |
| Malta | MLT |
| Montenegro | MNE |
| Mozambique | MOZ |
| Mauritania | MRT |
| Mauritius | MUS |
| Malawi | MWI |
| Malaysia | MYS |
| Namibia | NAM |
| Nigeria | NGA |
| Nicaragua | NIC |
| Netherlands | NLD |
| Norway | NOR |
| Nepal | NPL |
| New Zealand | NZL |
| Oman | OMN |
| Panama | PAN |
| Peru | PER |
| Philippines | PHL |
| Pakistan | PAK |
| Poland | POL |
| Portugal | PRT |
| Qatar | QAT |
| Romania | ROU |
| Russia | RUS |
| Saudi Arabia | SAU |
| Senegal | SEN |
| Singapore | SGP |
| Slovakia | SVK |
| Slovenia | SVN |
| South Africa | ZAF |
| Sweden | SWE |
| Switzerland | CHE |
| Thailand | THA |
| Tunisia | TUN |
| Turkey | TUR |
| Uganda | UGA |
| Ukraine | UKR |
| United Arab Emirates | ARE |
| United States | USA |
| Uruguay | URY |
| Uzbekistan | UZB |
| Venezuela | VEN |
| Vietnam | VNM |
| Yemen | YEM |
| Zambia | ZMB |
| Zimbabwe | ZWE |
# Company industry codes
Source: https://docs.byzantine.fi/api-reference/lists/industry-codes
Below is the full list of 2022 NAICS company industry codes. These codes are needed when creating an entity account.
However, to optimise the user experience, it is also possible to present a shorter, more general list.
## Short list
| Industry | Code |
| - | - |
| Agriculture | 111998 |
| Arts & entertainment | 713990 |
| Construction | 236220 |
| Education | 611710 |
| Finance | 523999 |
| Government | 921190 |
| Healthcare | 621999 |
| Hospitality | 721110 |
| Manufacturing | 339999 |
| Mining | 212290 |
| Nonprofit | 813990 |
| Professional services | 541990 |
| Real estate | 531390 |
| Retail | 455219 |
| Technology | 513210 |
| Transportation | 488999 |
| Other | 999999 |
## Complete list
Find the list in JSON format [here](industry_codes.json).
| Industry | Code |
| - | - |
| Soybean Farming | 111110 |
| Oilseed Except Soybean Farming | 111120 |
| Dry Pea And Bean Farming | 111130 |
| Wheat Farming | 111140 |
| Corn Farming | 111150 |
| Rice Farming | 111160 |
| Oilseed And Grain Combination Farming | 111191 |
| All Other Grain Farming | 111199 |
| Potato Farming | 111211 |
| Other Vegetable Except Potato And Melon Farming | 111219 |
| Orange Groves | 111310 |
| Citrus Except Orange Groves | 111320 |
| Apple Orchards | 111331 |
| Grape Vineyards | 111332 |
| Strawberry Farming | 111333 |
| Berry Except Strawberry Farming | 111334 |
| Tree Nut Farming | 111335 |
| Fruit And Tree Nut Combination Farming | 111336 |
| Other Noncitrus Fruit Farming | 111339 |
| Mushroom Production | 111411 |
| Other Food Crops Grown Under Cover | 111419 |
| Nursery And Tree Production | 111421 |
| Floriculture Production | 111422 |
| Tobacco Farming | 111910 |
| Cotton Farming | 111920 |
| Sugarcane Farming | 111930 |
| Hay Farming | 111940 |
| Sugar Beet Farming | 111991 |
| Peanut Farming | 111992 |
| All Other Miscellaneous Crop Farming | 111998 |
| Beef Cattle Ranching And Farming | 112111 |
| Cattle Feedlots | 112112 |
| Dairy Cattle And Milk Production | 112120 |
| Hog And Pig Farming | 112210 |
| Chicken Egg Production | 112310 |
| Broilers And Other Meat Type Chicken Production | 112320 |
| Turkey Production | 112330 |
| Poultry Hatcheries | 112340 |
| Other Poultry Production | 112390 |
| Sheep Farming | 112410 |
| Goat Farming | 112420 |
| Finfish Farming And Fish Hatcheries | 112511 |
| Shellfish Farming | 112512 |
| Other Aquaculture | 112519 |
| Apiculture | 112910 |
| Horses And Other Equine Production | 112920 |
| Fur Bearing Animal And Rabbit Production | 112930 |
| All Other Animal Production | 112990 |
| Timber Tract Operations | 113110 |
| Forest Nurseries And Gathering Of Forest Products | 113210 |
| Logging | 113310 |
| Finfish Fishing | 114111 |
| Shellfish Fishing | 114112 |
| Other Marine Fishing | 114119 |
| Hunting And Trapping | 114210 |
| Cotton Ginning | 115111 |
| Soil Preparation Planting And Cultivating | 115112 |
| Crop Harvesting Primarilyby Machine | 115113 |
| Postharvest Crop Activities Except Cotton Ginning | 115114 |
| Farm Labor Contractors And Crew Leaders | 115115 |
| Farm Management Services | 115116 |
| Support Activities For Animal Production | 115210 |
| Support Activities For Forestry | 115310 |
| Crude Petroleum Extraction | 211120 |
| Natural Gas Extraction | 211130 |
| Surface Coal Mining | 212114 |
| Underground Coal Mining | 212115 |
| Iron Ore Mining | 212210 |
| Gold Ore And Silver Ore Mining | 212220 |
| Copper Nickel Lead And Zinc Mining | 212230 |
| Other Metal Ore Mining | 212290 |
| Dimension Stone Mining And Quarrying | 212311 |
| Crushed And Broken Limestone Mining And Quarrying | 212312 |
| Crushed And Broken Granite Mining And Quarrying | 212313 |
| Other Crushed And Broken Stone Mining And Quarrying | 212319 |
| Construction Sand And Gravel Mining | 212321 |
| Industrial Sand Mining | 212322 |
| Kaolin Clay And Ceramic And Refractory Minerals Mining | 212323 |
| Other Nonmetallic Mineral Mining And Quarrying | 212390 |
| Drilling Oil And Gas Wells | 213111 |
| Support Activities For Oil And Gas Operations | 213112 |
| Support Activities For Coal Mining | 213113 |
| Support Activities For Metal Mining | 213114 |
| Support Activities For Nonmetallic Minerals Except Fuels Mining | 213115 |
| Hydroelectric Power Generation | 221111 |
| Fossil Fuel Electric Power Generation | 221112 |
| Nuclear Electric Power Generation | 221113 |
| Solar Electric Power Generation | 221114 |
| Wind Electric Power Generation | 221115 |
| Geothermal Electric Power Generation | 221116 |
| Biomass Electric Power Generation | 221117 |
| Other Electric Power Generation | 221118 |
| Electric Bulk Power Transmission And Control | 221121 |
| Electric Power Distribution | 221122 |
| Natural Gas Distribution | 221210 |
| Water Supply And Irrigation Systems | 221310 |
| Sewage Treatment Facilities | 221320 |
| Steam And Air Conditioning Supply | 221330 |
| New Single Family Housing Construction Except For Sale Builders | 236115 |
| New Multifamily Housing Construction Except For Sale Builders | 236116 |
| New Housing For Sale Builders | 236117 |
| Residential Remodelers | 236118 |
| Industrial Building Construction | 236210 |
| Commercial And Institutional Building Construction | 236220 |
| Water And Sewer Line And Related Structures Construction | 237110 |
| Oil And Gas Pipeline And Related Structures Construction | 237120 |
| Power And Communication Line And Related Structures Construction | 237130 |
| Land Subdivision | 237210 |
| Highway Street And Bridge Construction | 237310 |
| Other Heavy And Civil Engineering Construction | 237990 |
| Poured Concrete Foundation And Structure Contractors | 238110 |
| Residential Poured Concrete Foundation And Structure Contractors | 238111 |
| Non Residential Poured Concrete Foundation And Structure Contractors | 238112 |
| Residential Structural Steel And Precast Concrete Contractors | 238121 |
| Non Residential Structural Steel And Precast Concrete Contractors | 238122 |
| Residential Framing Contractors | 238131 |
| Non Residential Framing Contractors | 238132 |
| Masonry Contractors | 238140 |
| Residential Masonry Contractors | 238141 |
| Non Residential Masonry Contractors | 238142 |
| Residential Glass And Glazing Contractors | 238151 |
| Non Residential Glass And Glazing Contractors | 238152 |
| Roofing Contractors | 238160 |
| Residential Roofing Contractors | 238161 |
| Non Residential Roofing Contractors | 238162 |
| Residential Siding Contractors | 238171 |
| Non Residential Siding Contractors | 238172 |
| Residential Other Foundation Structure And Building Exterior Contractors | 238191 |
| Non Residential Other Foundation Structure And Building Exterior Contractors | 238192 |
| Electrical Contractors And Other Wiring Installation Contractors | 238210 |
| Residential Electrical Contractors And Other Wiring Installation Contractors | 238211 |
| Non Residential Electrical Contractors And Other Wiring Installation Contractors | 238212 |
| Plumbing Heating And Air Conditioning Contractors | 238220 |
| Residential Plumbing Heating And Air Conditioning Contractors | 238221 |
| Non Residential Plumbing Heating And Air Conditioning Contractors | 238222 |
| Residential Other Building Equipment Contractors | 238291 |
| Non Residential Other Building Equipment Contractors | 238292 |
| Residential Drywall And Insulation Contractors | 238311 |
| Non Residential Drywall And Insulation Contractors | 238312 |
| Residential Painting And Wall Covering Contractors | 238321 |
| Non Residential Painting And Wall Covering Contractors | 238322 |
| Residential Flooring Contractors | 238331 |
| Non Residential Flooring Contractors | 238332 |
| Residential Tile And Terrazzo Contractors | 238341 |
| Non Residential Tile And Terrazzo Contractors | 238342 |
| Finish Carpentry Contractors | 238350 |
| Residential Finish Carpentry Contractors | 238351 |
| Non Residential Finish Carpentry Contractors | 238352 |
| Residential Other Building Finishing Contractors | 238391 |
| Non Residential Other Building Finishing Contractors | 238392 |
| Residential Site Preparation Contractors | 238911 |
| Non Residential Site Preparation Contractors | 238912 |
| All Other Specialty Trade Contractors | 238990 |
| Residential All Other Specialty Trade Contractors | 238991 |
| Non Residential All Other Specialty Trade Contractors | 238992 |
| Dog And Cat Food Manufacturing | 311111 |
| Other Animal Food Manufacturing | 311119 |
| Flour Milling | 311211 |
| Rice Milling | 311212 |
| Malt Manufacturing | 311213 |
| Wet Corn Milling And Starch Manufacturing | 311221 |
| Soybean And Other Oilseed Processing | 311224 |
| Fats And Oils Refining And Blending | 311225 |
| Breakfast Cereal Manufacturing | 311230 |
| Beet Sugar Manufacturing | 311313 |
| Cane Sugar Manufacturing | 311314 |
| Nonchocolate Confectionery Manufacturing | 311340 |
| Chocolate And Confectionery Manufacturing From Cacao Beans | 311351 |
| Confectionery Manufacturing From Purchased Chocolate | 311352 |
| Frozen Fruit Juice And Vegetable Manufacturing | 311411 |
| Frozen Specialty Food Manufacturing | 311412 |
| Fruit And Vegetable Canning | 311421 |
| Specialty Canning | 311422 |
| Dried And Dehydrated Food Manufacturing | 311423 |
| Fluid Milk Manufacturing | 311511 |
| Creamery Butter Manufacturing | 311512 |
| Cheese Manufacturing | 311513 |
| Dry Condensed And Evaporated Dairy Product Manufacturing | 311514 |
| Ice Cream And Frozen Dessert Manufacturing | 311520 |
| Animal Except Poultry Slaughtering | 311611 |
| Meat Processed From Carcasses | 311612 |
| Rendering And Meat Byproduct Processing | 311613 |
| Poultry Processing | 311615 |
| Seafood Product Preparation And Packaging | 311710 |
| Retail Bakeries | 311811 |
| Commercial Bakeries | 311812 |
| Frozen Cakes Pies And Other Pastries Manufacturing | 311813 |
| Cookie And Cracker Manufacturing | 311821 |
| Dry Pasta Dough And Flour Mixes Manufacturing From Purchased Flour | 311824 |
| Tortilla Manufacturing | 311830 |
| Roasted Nuts And Peanut Butter Manufacturing | 311911 |
| Other Snack Food Manufacturing | 311919 |
| Coffee And Tea Manufacturing | 311920 |
| Flavoring Syrup And Concentrate Manufacturing | 311930 |
| Mayonnaise Dressing And Other Prepared Sauce Manufacturing | 311941 |
| Spice And Extract Manufacturing | 311942 |
| Perishable Prepared Food Manufacturing | 311991 |
| All Other Miscellaneous Food Manufacturing | 311999 |
| Soft Drink Manufacturing | 312111 |
| Bottled Water Manufacturing | 312112 |
| Ice Manufacturing | 312113 |
| Breweries | 312120 |
| Wineries | 312130 |
| Distilleries | 312140 |
| Tobacco Manufacturing | 312230 |
| Fiber Yarn And Thread Mills | 313110 |
| Broadwoven Fabric Mills | 313210 |
| Narrow Fabric Mills And Schiffli Machine Embroidery | 313220 |
| Nonwoven Fabric Mills | 313230 |
| Knit Fabric Mills | 313240 |
| Textile And Fabric Finishing Mills | 313310 |
| Fabric Coating Mills | 313320 |
| Carpet And Rug Mills | 314110 |
| Curtain And Linen Mills | 314120 |
| Textile Bag And Canvas Mills | 314910 |
| Rope Cordage Twine Tire Cord And Tire Fabric Mills | 314994 |
| All Other Miscellaneous Textile Product Mills | 314999 |
| Apparel Knitting Mills | 315120 |
| Cut And Sew Apparel Contractors | 315210 |
| Cut And Sew Apparel Manufacturing Except Contractors | 315250 |
| Apparel Accessories And Other Apparel Manufacturing | 315990 |
| Leather And Hide Tanning And Finishing | 316110 |
| Footwear Manufacturing | 316210 |
| Other Leather And Allied Product Manufacturing | 316990 |
| Sawmills | 321113 |
| Wood Preservation | 321114 |
| Hardwood Veneer And Plywood Manufacturing | 321211 |
| Softwood Veneer And Plywood Manufacturing | 321212 |
| Engineered Wood Member Manufacturing | 321215 |
| Reconstituted Wood Product Manufacturing | 321219 |
| Wood Window And Door Manufacturing | 321911 |
| Cut Stock Resawing Lumber And Planing | 321912 |
| Other Millwork Including Flooring | 321918 |
| Wood Container And Pallet Manufacturing | 321920 |
| Manufactured Home Mobile Home Manufacturing | 321991 |
| Prefabricated Wood Building Manufacturing | 321992 |
| All Other Miscellaneous Wood Product Manufacturing | 321999 |
| Pulp Mills | 322110 |
| Paper Mills | 322120 |
| Paperboard Mills | 322130 |
| Corrugated And Solid Fiber Box Manufacturing | 322211 |
| Folding Paperboard Box Manufacturing | 322212 |
| Other Paperboard Container Manufacturing | 322219 |
| Paper Bag And Coated And Treated Paper Manufacturing | 322220 |
| Stationery Product Manufacturing | 322230 |
| Sanitary Paper Product Manufacturing | 322291 |
| All Other Converted Paper Product Manufacturing | 322299 |
| Commercial Printing Except Screen And Books | 323111 |
| Commercial Screen Printing | 323113 |
| Books Printing | 323117 |
| Support Activities For Printing | 323120 |
| Petroleum Refineries | 324110 |
| Asphalt Paving Mixture And Block Manufacturing | 324121 |
| Asphalt Shingle And Coating Materials Manufacturing | 324122 |
| Petroleum Lubricating Oil And Grease Manufacturing | 324191 |
| All Other Petroleum And Coal Products Manufacturing | 324199 |
| Petrochemical Manufacturing | 325110 |
| Industrial Gas Manufacturing | 325120 |
| Synthetic Dye And Pigment Manufacturing | 325130 |
| Other Basic Inorganic Chemical Manufacturing | 325180 |
| Ethyl Alcohol Manufacturing | 325193 |
| Cyclic Crude Intermediate And Gum And Wood Chemical Manufacturing | 325194 |
| All Other Basic Organic Chemical Manufacturing | 325199 |
| Plastics Material And Resin Manufacturing | 325211 |
| Synthetic Rubber Manufacturing | 325212 |
| Artificial And Synthetic Fibers And Filaments Manufacturing | 325220 |
| Nitrogenous Fertilizer Manufacturing | 325311 |
| Phosphatic Fertilizer Manufacturing | 325312 |
| Fertilizer Mixing Only Manufacturing | 325314 |
| Compost Manufacturing | 325315 |
| Pesticide And Other Agricultural Chemical Manufacturing | 325320 |
| Medicinal And Botanical Manufacturing | 325411 |
| Pharmaceutical Preparation Manufacturing | 325412 |
| In Vitro Diagnostic Substance Manufacturing | 325413 |
| Biological Product Except Diagnostic Manufacturing | 325414 |
| Paint And Coating Manufacturing | 325510 |
| Adhesive Manufacturing | 325520 |
| Soap And Other Detergent Manufacturing | 325611 |
| Polish And Other Sanitation Good Manufacturing | 325612 |
| Surface Active Agent Manufacturing | 325613 |
| Toilet Preparation Manufacturing | 325620 |
| Printing Ink Manufacturing | 325910 |
| Explosives Manufacturing | 325920 |
| Custom Compounding Of Purchased Resins | 325991 |
| Photographic Film Paper Plate Chemical And Copy Toner Manufacturing | 325992 |
| All Other Miscellaneous Chemical Product And Preparation Manufacturing | 325998 |
| Plastics Bag And Pouch Manufacturing | 326111 |
| Plastics Packaging Film And Sheet Including Laminated Manufacturing | 326112 |
| Unlaminated Plastics Film And Sheet Except Packaging Manufacturing | 326113 |
| Unlaminated Plastics Profile Shape Manufacturing | 326121 |
| Plastics Pipe And Pipe Fitting Manufacturing | 326122 |
| Laminated Plastics Plate Sheet Except Packaging And Shape Manufacturing | 326130 |
| Polystyrene Foam Product Manufacturing | 326140 |
| Urethane And Other Foam Product Except Polystyrene Manufacturing | 326150 |
| Plastics Bottle Manufacturing | 326160 |
| Plastics Plumbing Fixture Manufacturing | 326191 |
| All Other Plastics Product Manufacturing | 326199 |
| Tire Manufacturing Except Retreading | 326211 |
| Tire Retreading | 326212 |
| Rubber And Plastics Hoses And Belting Manufacturing | 326220 |
| Rubber Product Manufacturing For Mechanical Use | 326291 |
| All Other Rubber Product Manufacturing | 326299 |
| Pottery Ceramics And Plumbing Fixture Manufacturing | 327110 |
| Clay Building Material And Refractories Manufacturing | 327120 |
| Flat Glass Manufacturing | 327211 |
| Other Pressed And Blown Glass And Glassware Manufacturing | 327212 |
| Glass Container Manufacturing | 327213 |
| Glass Product Manufacturing Made Of Purchased Glass | 327215 |
| Cement Manufacturing | 327310 |
| Ready Mix Concrete Manufacturing | 327320 |
| Concrete Block And Brick Manufacturing | 327331 |
| Concrete Pipe Manufacturing | 327332 |
| Other Concrete Product Manufacturing | 327390 |
| Lime Manufacturing | 327410 |
| Gypsum Product Manufacturing | 327420 |
| Abrasive Product Manufacturing | 327910 |
| Cut Stone And Stone Product Manufacturing | 327991 |
| Ground Or Treated Mineral And Earth Manufacturing | 327992 |
| Mineral Wool Manufacturing | 327993 |
| All Other Miscellaneous Nonmetallic Mineral Product Manufacturing | 327999 |
| Iron And Steel Mills And Ferroalloy Manufacturing | 331110 |
| Iron And Steel Pipe And Tube Manufacturing From Purchased Steel | 331210 |
| Rolled Steel Shape Manufacturing | 331221 |
| Steel Wire Drawing | 331222 |
| Alumina Refining And Primary Aluminum Production | 331313 |
| Secondary Smelting And Alloying Of Aluminum | 331314 |
| Aluminum Sheet Plate And Foil Manufacturing | 331315 |
| Other Aluminum Rolling Drawing And Extruding | 331318 |
| Nonferrous Metal Except Aluminum Smelting And Refining | 331410 |
| Copper Rolling Drawing Extruding And Alloying | 331420 |
| Nonferrous Metal Except Copper And Aluminum Rolling Drawing And Extruding | 331491 |
| Secondary Smelting Refining And Alloying Of Nonferrous Metal Except Copper And Aluminum | 331492 |
| Iron Foundries | 331511 |
| Steel Investment Foundries | 331512 |
| Steel Foundries Except Investment | 331513 |
| Nonferrous Metal Die Casting Foundries | 331523 |
| Aluminum Foundries Except Die Casting | 331524 |
| Other Nonferrous Metal Foundries Except Die Casting | 331529 |
| Iron And Steel Forging | 332111 |
| Nonferrous Forging | 332112 |
| Custom Roll Forming | 332114 |
| Powder Metallurgy Part Manufacturing | 332117 |
| Metal Crown Closure And Other Metal Stamping Except Automotive | 332119 |
| Metal Kitchen Cookware Utensil Cutlery And Flatware Except Precious Manufacturing | 332215 |
| Saw Blade And Handtool Manufacturing | 332216 |
| Prefabricated Metal Building And Component Manufacturing | 332311 |
| Fabricated Structural Metal Manufacturing | 332312 |
| Plate Work Manufacturing | 332313 |
| Metal Window And Door Manufacturing | 332321 |
| Sheet Metal Work Manufacturing | 332322 |
| Ornamental And Architectural Metal Work Manufacturing | 332323 |
| Power Boiler And Heat Exchanger Manufacturing | 332410 |
| Metal Tank Heavy Gauge Manufacturing | 332420 |
| Metal Can Manufacturing | 332431 |
| Other Metal Container Manufacturing | 332439 |
| Hardware Manufacturing | 332510 |
| Spring Manufacturing | 332613 |
| Other Fabricated Wire Product Manufacturing | 332618 |
| Machine Shops | 332710 |
| Precision Turned Product Manufacturing | 332721 |
| Bolt Nut Screw Rivet And Washer Manufacturing | 332722 |
| Metal Heat Treating | 332811 |
| Metal Coating Engraving Except Jewelry And Silverware And Allied Servicesto Manufacturers | 332812 |
| Electroplating Plating Polishing Anodizing And Coloring | 332813 |
| Industrial Valve Manufacturing | 332911 |
| Fluid Power Valve And Hose Fitting Manufacturing | 332912 |
| Plumbing Fixture Fitting And Trim Manufacturing | 332913 |
| Other Metal Valve And Pipe Fitting Manufacturing | 332919 |
| Ball And Roller Bearing Manufacturing | 332991 |
| Small Arms Ammunition Manufacturing | 332992 |
| Ammunition Except Small Arms Manufacturing | 332993 |
| Small Arms Ordnance And Ordnance Accessories Manufacturing | 332994 |
| Fabricated Pipe And Pipe Fitting Manufacturing | 332996 |
| All Other Miscellaneous Fabricated Metal Product Manufacturing | 332999 |
| Farm Machinery And Equipment Manufacturing | 333111 |
| Lawn And Garden Tractor And Home Lawn And Garden Equipment Manufacturing | 333112 |
| Construction Machinery Manufacturing | 333120 |
| Mining Machinery And Equipment Manufacturing | 333131 |
| Oil And Gas Field Machinery And Equipment Manufacturing | 333132 |
| Food Product Machinery Manufacturing | 333241 |
| Semiconductor Machinery Manufacturing | 333242 |
| Sawmill Woodworking And Paper Machinery Manufacturing | 333243 |
| All Other Industrial Machinery Manufacturing | 333248 |
| Commercial And Service Industry Machinery Manufacturing | 333310 |
| Industrial And Commercial Fan And Blower And Air Purification Equipment Manufacturing | 333413 |
| Heating Equipment Except Warm Air Furnaces Manufacturing | 333414 |
| Air Conditioning And Warm Air Heating Equipment And Commercial And Industrial Refrigeration Equipment Manufacturing | 333415 |
| Industrial Mold Manufacturing | 333511 |
| Special Die And Tool Die Set Jig And Fixture Manufacturing | 333514 |
| Cutting Tool And Machine Tool Accessory Manufacturing | 333515 |
| Machine Tool Manufacturing | 333517 |
| Rolling Mill And Other Metalworking Machinery Manufacturing | 333519 |
| Turbine And Turbine Generator Set Units Manufacturing | 333611 |
| Speed Changer Industrial High Speed Drive And Gear Manufacturing | 333612 |
| Mechanical Power Transmission Equipment Manufacturing | 333613 |
| Other Engine Equipment Manufacturing | 333618 |
| Air And Gas Compressor Manufacturing | 333912 |
| Measuring Dispensing And Other Pumping Equipment Manufacturing | 333914 |
| Elevator And Moving Stairway Manufacturing | 333921 |
| Conveyor And Conveying Equipment Manufacturing | 333922 |
| Overhead Traveling Crane Hoist And Monorail System Manufacturing | 333923 |
| Industrial Truck Tractor Trailer And Stacker Machinery Manufacturing | 333924 |
| Power Driven Handtool Manufacturing | 333991 |
| Welding And Soldering Equipment Manufacturing | 333992 |
| Packaging Machinery Manufacturing | 333993 |
| Industrial Process Furnace And Oven Manufacturing | 333994 |
| Fluid Power Cylinder And Actuator Manufacturing | 333995 |
| Fluid Power Pump And Motor Manufacturing | 333996 |
| All Other Miscellaneous General Purpose Machinery Manufacturing | 333998 |
| Electronic Computer Manufacturing | 334111 |
| Computer Storage Device Manufacturing | 334112 |
| Computer Terminal And Other Computer Peripheral Equipment Manufacturing | 334118 |
| Telephone Apparatus Manufacturing | 334210 |
| Radio And Television Broadcasting And Wireless Communications Equipment Manufacturing | 334220 |
| Other Communications Equipment Manufacturing | 334290 |
| Audio And Video Equipment Manufacturing | 334310 |
| Bare Printed Circuit Board Manufacturing | 334412 |
| Semiconductor And Related Device Manufacturing | 334413 |
| Capacitor Resistor Coil Transformer And Other Inductor Manufacturing | 334416 |
| Electronic Connector Manufacturing | 334417 |
| Printed Circuit Assembly Electronic Assembly Manufacturing | 334418 |
| Other Electronic Component Manufacturing | 334419 |
| Electromedical And Electrotherapeutic Apparatus Manufacturing | 334510 |
| Search Detection Navigation Guidance Aeronautical And Nautical System And Instrument Manufacturing | 334511 |
| Automatic Environmental Control Manufacturing For Residential Commercial And Appliance Use | 334512 |
| Instruments And Related Products Manufacturing For Measuring Displaying And Controlling Industrial Process Variables | 334513 |
| Totalizing Fluid Meter And Counting Device Manufacturing | 334514 |
| Instrument Manufacturing For Measuring And Testing Electricity And Electrical Signals | 334515 |
| Analytical Laboratory Instrument Manufacturing | 334516 |
| Irradiation Apparatus Manufacturing | 334517 |
| Other Measuring And Controlling Device Manufacturing | 334519 |
| Manufacturing And Reproducing Magnetic And Optical Media | 334610 |
| Residential Electric Lighting Fixture Manufacturing | 335131 |
| Commercial Industrial And Institutional Electric Lighting Fixture Manufacturing | 335132 |
| Electric Lamp Bulb And Other Lighting Equipment Manufacturing | 335139 |
| Small Electrical Appliance Manufacturing | 335210 |
| Major Household Appliance Manufacturing | 335220 |
| Power Distribution And Specialty Transformer Manufacturing | 335311 |
| Motor And Generator Manufacturing | 335312 |
| Switchgear And Switchboard Apparatus Manufacturing | 335313 |
| Relay And Industrial Control Manufacturing | 335314 |
| Battery Manufacturing | 335910 |
| Fiber Optic Cable Manufacturing | 335921 |
| Other Communication And Energy Wire Manufacturing | 335929 |
| Current Carrying Wiring Device Manufacturing | 335931 |
| Noncurrent Carrying Wiring Device Manufacturing | 335932 |
| Carbon And Graphite Product Manufacturing | 335991 |
| All Other Miscellaneous Electrical Equipment And Component Manufacturing | 335999 |
| Automobile And Light Duty Motor Vehicle Manufacturing | 336110 |
| Heavy Duty Truck Manufacturing | 336120 |
| Motor Vehicle Body Manufacturing | 336211 |
| Truck Trailer Manufacturing | 336212 |
| Motor Home Manufacturing | 336213 |
| Travel Trailer And Camper Manufacturing | 336214 |
| Motor Vehicle Gasoline Engine And Engine Parts Manufacturing | 336310 |
| Motor Vehicle Electrical And Electronic Equipment Manufacturing | 336320 |
| Motor Vehicle Steering And Suspension Components Except Spring Manufacturing | 336330 |
| Motor Vehicle Brake System Manufacturing | 336340 |
| Motor Vehicle Transmission And Power Train Parts Manufacturing | 336350 |
| Motor Vehicle Seating And Interior Trim Manufacturing | 336360 |
| Motor Vehicle Metal Stamping | 336370 |
| Other Motor Vehicle Parts Manufacturing | 336390 |
| Aircraft Manufacturing | 336411 |
| Aircraft Engine And Engine Parts Manufacturing | 336412 |
| Other Aircraft Parts And Auxiliary Equipment Manufacturing | 336413 |
| Guided Missile And Space Vehicle Manufacturing | 336414 |
| Guided Missile And Space Vehicle Propulsion Unit And Propulsion Unit Parts Manufacturing | 336415 |
| Other Guided Missile And Space Vehicle Parts And Auxiliary Equipment Manufacturing | 336419 |
| Railroad Rolling Stock Manufacturing | 336510 |
| Ship Building And Repairing | 336611 |
| Boat Building | 336612 |
| Motorcycle Bicycle And Parts Manufacturing | 336991 |
| Military Armored Vehicle Tank And Tank Component Manufacturing | 336992 |
| All Other Transportation Equipment Manufacturing | 336999 |
| Wood Kitchen Cabinet And Countertop Manufacturing | 337110 |
| Upholstered Household Furniture Manufacturing | 337121 |
| Nonupholstered Wood Household Furniture Manufacturing | 337122 |
| Household Furniture Except Wood And Upholstered Manufacturing | 337126 |
| Institutional Furniture Manufacturing | 337127 |
| Wood Office Furniture Manufacturing | 337211 |
| Custom Architectural Woodwork And Millwork Manufacturing | 337212 |
| Office Furniture Except Wood Manufacturing | 337214 |
| Showcase Partition Shelving And Locker Manufacturing | 337215 |
| Mattress Manufacturing | 337910 |
| Blind And Shade Manufacturing | 337920 |
| Surgical And Medical Instrument Manufacturing | 339112 |
| Surgical Appliance And Supplies Manufacturing | 339113 |
| Dental Equipment And Supplies Manufacturing | 339114 |
| Ophthalmic Goods Manufacturing | 339115 |
| Dental Laboratories | 339116 |
| Jewelry And Silverware Manufacturing | 339910 |
| Sporting And Athletic Goods Manufacturing | 339920 |
| Doll Toy And Game Manufacturing | 339930 |
| Office Supplies Except Paper Manufacturing | 339940 |
| Sign Manufacturing | 339950 |
| Gasket Packing And Sealing Device Manufacturing | 339991 |
| Musical Instrument Manufacturing | 339992 |
| Fastener Button Needle And Pin Manufacturing | 339993 |
| Broom Brush And Mop Manufacturing | 339994 |
| Burial Casket Manufacturing | 339995 |
| All Other Miscellaneous Manufacturing | 339999 |
| Automobile And Other Motor Vehicle Merchant Wholesalers | 423110 |
| Motor Vehicle Supplies And New Parts Merchant Wholesalers | 423120 |
| Tire And Tube Merchant Wholesalers | 423130 |
| Motor Vehicle Parts Used Merchant Wholesalers | 423140 |
| Furniture Merchant Wholesalers | 423210 |
| Home Furnishing Merchant Wholesalers | 423220 |
| Lumber Plywood Millwork And Wood Panel Merchant Wholesalers | 423310 |
| Brick Stone And Related Construction Material Merchant Wholesalers | 423320 |
| Roofing Siding And Insulation Material Merchant Wholesalers | 423330 |
| Other Construction Material Merchant Wholesalers | 423390 |
| Photographic Equipment And Supplies Merchant Wholesalers | 423410 |
| Office Equipment Merchant Wholesalers | 423420 |
| Computer And Computer Peripheral Equipment And Software Merchant Wholesalers | 423430 |
| Other Commercial Equipment Merchant Wholesalers | 423440 |
| Medical Dental And Hospital Equipment And Supplies Merchant Wholesalers | 423450 |
| Ophthalmic Goods Merchant Wholesalers | 423460 |
| Other Professional Equipment And Supplies Merchant Wholesalers | 423490 |
| Metal Service Centers And Other Metal Merchant Wholesalers | 423510 |
| Coal And Other Mineral And Ore Merchant Wholesalers | 423520 |
| Electrical Apparatus And Equipment Wiring Supplies And Related Equipment Merchant Wholesalers | 423610 |
| Household Appliances Electric Housewares And Consumer Electronics Merchant Wholesalers | 423620 |
| Other Electronic Parts And Equipment Merchant Wholesalers | 423690 |
| Hardware Merchant Wholesalers | 423710 |
| Plumbing And Heating Equipment And Supplies Hydronics Merchant Wholesalers | 423720 |
| Warm Air Heating And Air Conditioning Equipment And Supplies Merchant Wholesalers | 423730 |
| Refrigeration Equipment And Supplies Merchant Wholesalers | 423740 |
| Construction And Mining Except Oil Well Machinery And Equipment Merchant Wholesalers | 423810 |
| Farm And Garden Machinery And Equipment Merchant Wholesalers | 423820 |
| Industrial Machinery And Equipment Merchant Wholesalers | 423830 |
| Industrial Supplies Merchant Wholesalers | 423840 |
| Service Establishment Equipment And Supplies Merchant Wholesalers | 423850 |
| Transportation Equipment And Supplies Except Motor Vehicle Merchant Wholesalers | 423860 |
| Sporting And Recreational Goods And Supplies Merchant Wholesalers | 423910 |
| Toy And Hobby Goods And Supplies Merchant Wholesalers | 423920 |
| Recyclable Material Merchant Wholesalers | 423930 |
| Jewelry Watch Precious Stone And Precious Metal Merchant Wholesalers | 423940 |
| Other Miscellaneous Durable Goods Merchant Wholesalers | 423990 |
| Printing And Writing Paper Merchant Wholesalers | 424110 |
| Stationery And Office Supplies Merchant Wholesalers | 424120 |
| Industrial And Personal Service Paper Merchant Wholesalers | 424130 |
| Drugs And Druggists Sundries Merchant Wholesalers | 424210 |
| Piece Goods Notions And Other Dry Goods Merchant Wholesalers | 424310 |
| Footwear Merchant Wholesalers | 424340 |
| Clothing And Clothing Accessories Merchant Wholesalers | 424350 |
| General Line Grocery Merchant Wholesalers | 424410 |
| Packaged Frozen Food Merchant Wholesalers | 424420 |
| Dairy Product Except Dried Or Canned Merchant Wholesalers | 424430 |
| Poultry And Poultry Product Merchant Wholesalers | 424440 |
| Confectionery Merchant Wholesalers | 424450 |
| Fish And Seafood Merchant Wholesalers | 424460 |
| Meat And Meat Product Merchant Wholesalers | 424470 |
| Fresh Fruit And Vegetable Merchant Wholesalers | 424480 |
| Other Grocery And Related Products Merchant Wholesalers | 424490 |
| Grain And Field Bean Merchant Wholesalers | 424510 |
| Livestock Merchant Wholesalers | 424520 |
| Other Farm Product Raw Material Merchant Wholesalers | 424590 |
| Plastics Materials And Basic Forms And Shapes Merchant Wholesalers | 424610 |
| Other Chemical And Allied Products Merchant Wholesalers | 424690 |
| Petroleum Bulk Stations And Terminals | 424710 |
| Petroleum And Petroleum Products Merchant Wholesalers Except Bulk Stations And Terminals | 424720 |
| Beer And Ale Merchant Wholesalers | 424810 |
| Wine And Distilled Alcoholic Beverage Merchant Wholesalers | 424820 |
| Farm Supplies Merchant Wholesalers | 424910 |
| Book Periodical And Newspaper Merchant Wholesalers | 424920 |
| Flower Nursery Stock And Florists Supplies Merchant Wholesalers | 424930 |
| Tobacco Product And Electronic Cigarette Merchant Wholesalers | 424940 |
| Paint Varnish And Supplies Merchant Wholesalers | 424950 |
| Other Miscellaneous Nondurable Goods Merchant Wholesalers | 424990 |
| Wholesale Trade Agents And Brokers | 425120 |
| New Car Dealers | 441110 |
| Used Car Dealers | 441120 |
| Recreational Vehicle Dealers | 441210 |
| Boat Dealers | 441222 |
| Motorcycle ATV And All Other Motor Vehicle Dealers | 441227 |
| Automotive Parts And Accessories Retailers | 441330 |
| Tire Dealers | 441340 |
| Home Centers | 444110 |
| Paint And Wallpaper Retailers | 444120 |
| Hardware Retailers | 444140 |
| Other Building Material Dealers | 444180 |
| Outdoor Power Equipment Retailers | 444230 |
| Nursery Garden Center And Farm Supply Retailers | 444240 |
| Supermarkets And Other Grocery Retailers Except Convenience Retailers | 445110 |
| Convenience Retailers | 445131 |
| Vending Machine Operators | 445132 |
| Fruit And Vegetable Retailers | 445230 |
| Meat Retailers | 445240 |
| Fish And Seafood Retailers | 445250 |
| Baked Goods Retailers | 445291 |
| Confectionery And Nut Retailers | 445292 |
| All Other Specialty Food Retailers | 445298 |
| Beer Wine And Liquor Retailers | 445320 |
| Furniture Retailers | 449110 |
| Floor Covering Retailers | 449121 |
| Window Treatment Retailers | 449122 |
| All Other Home Furnishings Retailers | 449129 |
| Electronics And Appliance Retailers | 449210 |
| Mail Order Houses | 454113 |
| Other Direct Selling Establishments | 454390 |
| Department Stores | 455110 |
| Warehouse Clubs And Supercenters | 455211 |
| All Other General Merchandise Retailers | 455219 |
| Pharmacies And Drug Retailers | 456110 |
| Cosmetics Beauty Supplies And Perfume Retailers | 456120 |
| Optical Goods Retailers | 456130 |
| Food Health Supplement Retailers | 456191 |
| All Other Health And Personal Care Retailers | 456199 |
| Gasoline Stations With Convenience Stores | 457110 |
| Other Gasoline Stations | 457120 |
| Fuel Dealers | 457210 |
| Clothing And Clothing Accessories Retailers | 458110 |
| Shoe Retailers | 458210 |
| Jewelry Retailers | 458310 |
| Luggage And Leather Goods Retailers | 458320 |
| Sporting Goods Retailers | 459110 |
| Hobby Toy And Game Retailers | 459120 |
| Sewing Needlework And Piece Goods Retailers | 459130 |
| Musical Instrument And Supplies Retailers | 459140 |
| Book Retailers And News Dealers | 459210 |
| Florists | 459310 |
| Office Supplies And Stationery Retailers | 459410 |
| Gift Novelty And Souvenir Retailers | 459420 |
| Used Merchandise Retailers | 459510 |
| Pet And Pet Supplies Retailers | 459910 |
| Art Dealers | 459920 |
| Manufactured Mobile Home Dealers | 459930 |
| Tobacco Electronic Cigarette And Other Smoking Supplies Retailers | 459991 |
| All Other Miscellaneous Retailers | 459999 |
| Scheduled Passenger Air Transportation | 481111 |
| Scheduled Freight Air Transportation | 481112 |
| Nonscheduled Chartered Passenger Air Transportation | 481211 |
| Nonscheduled Chartered Freight Air Transportation | 481212 |
| Other Nonscheduled Air Transportation | 481219 |
| Line Haul Railroads | 482111 |
| Short Line Railroads | 482112 |
| Deep Sea Freight Transportation | 483111 |
| Deep Sea Passenger Transportation | 483112 |
| Coastal And Great Lakes Freight Transportation | 483113 |
| Coastal And Great Lakes Passenger Transportation | 483114 |
| Inland Water Freight Transportation | 483211 |
| Inland Water Passenger Transportation | 483212 |
| General Freight Trucking Local | 484110 |
| General Freight Trucking Long Distance Truckload | 484121 |
| General Freight Trucking Long Distance Less Than Truckload | 484122 |
| Used Household And Office Goods Moving | 484210 |
| Specialized Freight Except Used Goods Trucking Local | 484220 |
| Specialized Freight Except Used Goods Trucking Long Distance | 484230 |
| Mixed Mode Transit Systems | 485111 |
| Commuter Rail Systems | 485112 |
| Bus And Other Motor Vehicle Transit Systems | 485113 |
| Other Urban Transit Systems | 485119 |
| Interurban And Rural Bus Transportation | 485210 |
| Taxi And Ridesharing Services | 485310 |
| Limousine Service | 485320 |
| School And Employee Bus Transportation | 485410 |
| Charter Bus Industry | 485510 |
| Special Needs Transportation | 485991 |
| All Other Transit And Ground Passenger Transportation | 485999 |
| Pipeline Transportation Of Crude Oil | 486110 |
| Pipeline Transportation Of Natural Gas | 486210 |
| Pipeline Transportation Of Refined Petroleum Products | 486910 |
| All Other Pipeline Transportation | 486990 |
| Scenic And Sightseeing Transportation Land | 487110 |
| Scenic And Sightseeing Transportation Water | 487210 |
| Scenic And Sightseeing Transportation Other | 487990 |
| Air Traffic Control | 488111 |
| Other Airport Operations | 488119 |
| Other Support Activities For Air Transportation | 488190 |
| Support Activities For Rail Transportation | 488210 |
| Port And Harbor Operations | 488310 |
| Marine Cargo Handling | 488320 |
| Navigational Services To Shipping | 488330 |
| Other Support Activities For Water Transportation | 488390 |
| Motor Vehicle Towing | 488410 |
| Other Support Activities For Road Transportation | 488490 |
| Freight Transportation Arrangement | 488510 |
| Packing And Crating | 488991 |
| All Other Support Activities For Transportation | 488999 |
| Postal Service | 491110 |
| Couriers And Express Delivery Services | 492110 |
| Local Messengers And Local Delivery | 492210 |
| General Warehousing And Storage | 493110 |
| Refrigerated Warehousing And Storage | 493120 |
| Farm Product Warehousing And Storage | 493130 |
| Other Warehousing And Storage | 493190 |
| Motion Picture And Video Production | 512110 |
| Motion Picture And Video Distribution | 512120 |
| Motion Picture Theaters Except Drive Ins | 512131 |
| Drive In Motion Picture Theaters | 512132 |
| Teleproduction And Other Postproduction Services | 512191 |
| Other Motion Picture And Video Industries | 512199 |
| Music Publishers | 512230 |
| Sound Recording Studios | 512240 |
| Record Production And Distribution | 512250 |
| Other Sound Recording Industries | 512290 |
| Newspaper Publishers | 513110 |
| Periodical Publishers | 513120 |
| Book Publishers | 513130 |
| Directory And Mailing List Publishers | 513140 |
| Greeting Card Publishers | 513191 |
| All Other Publishers | 513199 |
| Software Publishers | 513210 |
| Cable And Other Subscription Programming | 515210 |
| Radio Broadcasting Stations | 516110 |
| Television Broadcasting Stations | 516120 |
| Media Streaming Distribution Services Social Networks And Other Media Networks And Content Providers | 516210 |
| Wired Telecommunications Carriers | 517111 |
| Wireless Telecommunications Carriers Except Satellite | 517112 |
| Telecommunications Resellers | 517121 |
| Satellite Telecommunications | 517410 |
| All Other Telecommunications | 517810 |
| Computing Infrastructure Providers Data Processing Web Hosting And Related Services | 518210 |
| Libraries And Archives | 519210 |
| Web Search Portals And All Other Information Services | 519290 |
| Monetary Authorities Central Bank | 521110 |
| Commercial Banking | 522110 |
| Credit Unions | 522130 |
| Savings Institutions And Other Depository Credit Intermediation | 522180 |
| Credit Card Issuing | 522210 |
| Sales Financing | 522220 |
| Consumer Lending | 522291 |
| Real Estate Credit | 522292 |
| All Other Nondepository Credit Intermediation | 522298 |
| International Secondary Market And All Other Nondepository Credit Intermediation | 522299 |
| Mortgage And Nonmortgage Loan Brokers | 522310 |
| Financial Transactions Processing Reserve And Clearinghouse Activities | 522320 |
| Other Activities Related To Credit Intermediation | 522390 |
| Investment Banking And Securities Intermediation | 523150 |
| Commodity Contracts Intermediation | 523160 |
| Securities And Commodity Exchanges | 523210 |
| Miscellaneous Intermediation | 523910 |
| Portfolio Management And Investment Advice | 523940 |
| Trust Fiduciary And Custody Activities | 523991 |
| Miscellaneous Financial Investment Activities | 523999 |
| Direct Life Insurance Carriers | 524113 |
| Direct Health And Medical Insurance Carriers | 524114 |
| Direct Property And Casualty Insurance Carriers | 524126 |
| Direct Title Insurance Carriers | 524127 |
| Other Direct Insurance Except Life Health And Medical Carriers | 524128 |
| Reinsurance Carriers | 524130 |
| Insurance Agencies And Brokerages | 524210 |
| Claims Adjusting | 524291 |
| Pharmacy Benefit Management And Other Third Party Administration Of Insurance And Pension Funds | 524292 |
| All Other Insurance Related Activities | 524298 |
| Pension Funds | 525110 |
| Health And Welfare Funds | 525120 |
| Other Insurance Funds | 525190 |
| Open End Investment Funds | 525910 |
| Trusts Estates And Agency Accounts | 525920 |
| Other Financial Vehicles | 525990 |
| Lessors Of Residential Buildings And Dwellings | 531110 |
| Lessors Of Nonresidential Buildings Except Miniwarehouses | 531120 |
| Lessors Of Miniwarehouses And Self Storage Units | 531130 |
| Lessors Of Other Real Estate Property | 531190 |
| Offices Of Real Estate Agents And Brokers | 531210 |
| Residential Property Managers | 531311 |
| Nonresidential Property Managers | 531312 |
| Offices Of Real Estate Appraisers | 531320 |
| Other Activities Related To Real Estate | 531390 |
| Passenger Car Rental | 532111 |
| Passenger Car Leasing | 532112 |
| Truck Utility Trailer And RV Recreational Vehicle Rental And Leasing | 532120 |
| Consumer Electronics And Appliances Rental | 532210 |
| Formal Wear And Costume Rental | 532281 |
| Video Tape And Disc Rental | 532282 |
| Home Health Equipment Rental | 532283 |
| Recreational Goods Rental | 532284 |
| All Other Consumer Goods Rental | 532289 |
| General Rental Centers | 532310 |
| Commercial Air Rail And Water Transportation Equipment Rental And Leasing | 532411 |
| Construction Mining And Forestry Machinery And Equipment Rental And Leasing | 532412 |
| Office Machinery And Equipment Rental And Leasing | 532420 |
| Other Commercial And Industrial Machinery And Equipment Rental And Leasing | 532490 |
| Lessors Of Nonfinancial Intangible Assets Except Copyrighted Works | 533110 |
| Offices Of Lawyers | 541110 |
| Title Abstract And Settlement Offices | 541191 |
| All Other Legal Services | 541199 |
| Offices Of Certified Public Accountants | 541211 |
| Tax Preparation Services | 541213 |
| Payroll Services | 541214 |
| Other Accounting Services | 541219 |
| Architectural Services | 541310 |
| Landscape Architectural Services | 541320 |
| Engineering Services | 541330 |
| Drafting Services | 541340 |
| Building Inspection Services | 541350 |
| Geophysical Surveying And Mapping Services | 541360 |
| Surveying And Mapping Except Geophysical Services | 541370 |
| Testing Laboratories And Services | 541380 |
| Interior Design Services | 541410 |
| Industrial Design Services | 541420 |
| Graphic Design Services | 541430 |
| Other Specialized Design Services | 541490 |
| Custom Computer Programming Services | 541511 |
| Computer Systems Design Services | 541512 |
| Computer Facilities Management Services | 541513 |
| Other Computer Related Services | 541519 |
| Administrative Management And General Management Consulting Services | 541611 |
| Human Resources Consulting Services | 541612 |
| Marketing Consulting Services | 541613 |
| Process Physical Distribution And Logistics Consulting Services | 541614 |
| Other Management Consulting Services | 541618 |
| Environmental Consulting Services | 541620 |
| Other Scientific And Technical Consulting Services | 541690 |
| Research And Development In Nanotechnology | 541713 |
| Research And Development In Biotechnology Except Nanobiotechnology | 541714 |
| Research And Development In The Physical Engineering And Life Sciences Except Nanotechnology And Biotechnology | 541715 |
| Research And Development In The Social Sciences And Humanities | 541720 |
| Advertising Agencies | 541810 |
| Public Relations Agencies | 541820 |
| Media Buying Agencies | 541830 |
| Media Representatives | 541840 |
| Indoor And Outdoor Display Advertising | 541850 |
| Direct Mail Advertising | 541860 |
| Advertising Material Distribution Services | 541870 |
| Other Services Related To Advertising | 541890 |
| Marketing Research And Public Opinion Polling | 541910 |
| Photography Studios Portrait | 541921 |
| Commercial Photography | 541922 |
| Translation And Interpretation Services | 541930 |
| Veterinary Services | 541940 |
| All Other Professional Scientific And Technical Services | 541990 |
| Offices Of Bank Holding Companies | 551111 |
| Offices Of Other Holding Companies | 551112 |
| Corporate Subsidiary And Regional Managing Offices | 551114 |
| Office Administrative Services | 561110 |
| Facilities Support Services | 561210 |
| Employment Placement Agencies | 561311 |
| Executive Search Services | 561312 |
| Temporary Help Services | 561320 |
| Professional Employer Organizations | 561330 |
| Document Preparation Services | 561410 |
| Telephone Answering Services | 561421 |
| Telemarketing Bureaus And Other Contact Centers | 561422 |
| Private Mail Centers | 561431 |
| Other Company Service Centers Including Copy Shops | 561439 |
| Collection Agencies | 561440 |
| Credit Bureaus | 561450 |
| Repossession Services | 561491 |
| Court Reporting And Stenotype Services | 561492 |
| All Other Company Support Services | 561499 |
| Travel Agencies | 561510 |
| Tour Operators | 561520 |
| Convention And Visitors Bureaus | 561591 |
| All Other Travel Arrangement And Reservation Services | 561599 |
| Investigation And Personal Background Check Services | 561611 |
| Security Guards And Patrol Services | 561612 |
| Armored Car Services | 561613 |
| Security Systems Services Except Locksmiths | 561621 |
| Locksmiths | 561622 |
| Exterminating And Pest Control Services | 561710 |
| Janitorial Services | 561720 |
| Landscaping Services | 561730 |
| Carpet And Upholstery Cleaning Services | 561740 |
| Other Services To Buildings And Dwellings | 561790 |
| Packaging And Labeling Services | 561910 |
| Convention And Trade Show Organizers | 561920 |
| All Other Support Services | 561990 |
| Solid Waste Collection | 562111 |
| Hazardous Waste Collection | 562112 |
| Other Waste Collection | 562119 |
| Hazardous Waste Treatment And Disposal | 562211 |
| Solid Waste Landfill | 562212 |
| Solid Waste Combustors And Incinerators | 562213 |
| Other Nonhazardous Waste Treatment And Disposal | 562219 |
| Remediation Services | 562910 |
| Materials Recovery Facilities | 562920 |
| Septic Tank And Related Services | 562991 |
| All Other Miscellaneous Waste Management Services | 562998 |
| Elementary And Secondary Schools | 611110 |
| Junior Colleges | 611210 |
| Colleges Universities And Professional Schools | 611310 |
| Company And Secretarial Schools | 611410 |
| Computer Training | 611420 |
| Professional And Management Development Training | 611430 |
| Cosmetology And Barber Schools | 611511 |
| Flight Training | 611512 |
| Apprenticeship Training | 611513 |
| Other Technical And Trade Schools | 611519 |
| Fine Arts Schools | 611610 |
| Sports And Recreation Instruction | 611620 |
| Language Schools | 611630 |
| Exam Preparation And Tutoring | 611691 |
| Automobile Driving Schools | 611692 |
| All Other Miscellaneous Schools And Instruction | 611699 |
| Educational Support Services | 611710 |
| Offices Of Physicians Except Mental Health Specialists | 621111 |
| Offices Of Physicians Mental Health Specialists | 621112 |
| Offices Of Dentists | 621210 |
| Offices Of Chiropractors | 621310 |
| Offices Of Optometrists | 621320 |
| Offices Of Mental Health Practitioners Except Physicians | 621330 |
| Offices Of Physical Occupational And Speech Therapists And Audiologists | 621340 |
| Offices Of Podiatrists | 621391 |
| Offices Of All Other Miscellaneous Health Practitioners | 621399 |
| Family Planning Centers | 621410 |
| Outpatient Mental Health And Substance Abuse Centers | 621420 |
| HMO Medical Centers | 621491 |
| Kidney Dialysis Centers | 621492 |
| Freestanding Ambulatory Surgical And Emergency Centers | 621493 |
| All Other Outpatient Care Centers | 621498 |
| Medical Laboratories | 621511 |
| Diagnostic Imaging Centers | 621512 |
| Home Health Care Services | 621610 |
| Ambulance Services | 621910 |
| Blood And Organ Banks | 621991 |
| All Other Miscellaneous Ambulatory Health Care Services | 621999 |
| General Medical And Surgical Hospitals | 622110 |
| Psychiatric And Substance Abuse Hospitals | 622210 |
| Specialty Except Psychiatric And Substance Abuse Hospitals | 622310 |
| Nursing Care Facilities Skilled Nursing Facilities | 623110 |
| Residential Intellectual And Developmental Disability Facilities | 623210 |
| Residential Mental Health And Substance Abuse Facilities | 623220 |
| Continuing Care Retirement Communities | 623311 |
| Assisted Living Facilities For The Elderly | 623312 |
| Other Residential Care Facilities | 623990 |
| Child And Youth Services | 624110 |
| Services For The Elderly And Persons With Disabilities | 624120 |
| Other Individual And Family Services | 624190 |
| Community Food Services | 624210 |
| Temporary Shelters | 624221 |
| Other Community Housing Services | 624229 |
| Emergency And Other Relief Services | 624230 |
| Vocational Rehabilitation Services | 624310 |
| Child Care Services | 624410 |
| Theater Companies And Dinner Theaters | 711110 |
| Dance Companies | 711120 |
| Musical Groups And Artists | 711130 |
| Other Performing Arts Companies | 711190 |
| Sports Teams And Clubs | 711211 |
| Racetracks | 711212 |
| Other Spectator Sports | 711219 |
| Promoters Of Performing Arts Sports And Similar Events With Facilities | 711310 |
| Promoters Of Performing Arts Sports And Similar Events Without Facilities | 711320 |
| Agents And Managers For Artists Athletes Entertainers And Other Public Figures | 711410 |
| Independent Artists Writers And Performers | 711510 |
| Museums | 712110 |
| Historical Sites | 712120 |
| Zoos And Botanical Gardens | 712130 |
| Nature Parks And Other Similar Institutions | 712190 |
| Amusement And Theme Parks | 713110 |
| Amusement Arcades | 713120 |
| Casinos Except Casino Hotels | 713210 |
| Other Gambling Industries | 713290 |
| Golf Courses And Country Clubs | 713910 |
| Skiing Facilities | 713920 |
| Marinas | 713930 |
| Fitness And Recreational Sports Centers | 713940 |
| Bowling Centers | 713950 |
| All Other Amusement And Recreation Industries | 713990 |
| Hotels Except Casino Hotels And Motels | 721110 |
| Casino Hotels | 721120 |
| Bedand Breakfast Inns | 721191 |
| All Other Traveler Accommodation | 721199 |
| RV Recreational Vehicle Parks And Campgrounds | 721211 |
| Recreational And Vacation Camps Except Campgrounds | 721214 |
| Rooming And Boarding Houses Dormitories And Workers Camps | 721310 |
| Food Service Contractors | 722310 |
| Caterers | 722320 |
| Mobile Food Services | 722330 |
| Drinking Places Alcoholic Beverages | 722410 |
| Full Service Restaurants | 722511 |
| Limited Service Restaurants | 722513 |
| Cafeterias Grill Buffets And Buffets | 722514 |
| Snack And Nonalcoholic Beverage Bars | 722515 |
| General Automotive Repair | 811111 |
| Specialized Automotive Repair | 811114 |
| Automotive Body Paint And Interior Repair And Maintenance | 811121 |
| Automotive Glass Replacement Shops | 811122 |
| Automotive Oil Change And Lubrication Shops | 811191 |
| Car Washes | 811192 |
| All Other Automotive Repair And Maintenance | 811198 |
| Electronic And Precision Equipment Repair And Maintenance | 811210 |
| Commercial And Industrial Machinery And Equipment Except Automotive And Electronic Repair And Maintenance | 811310 |
| Home And Garden Equipment Repair And Maintenance | 811411 |
| Appliance Repair And Maintenance | 811412 |
| Reupholstery And Furniture Repair | 811420 |
| Footwear And Leather Goods Repair | 811430 |
| Other Personal And Household Goods Repair And Maintenance | 811490 |
| Barber Shops | 812111 |
| Beauty Salons | 812112 |
| Nail Salons | 812113 |
| Diet And Weight Reducing Centers | 812191 |
| Other Personal Care Services | 812199 |
| Funeral Homes And Funeral Services | 812210 |
| Cemeteries And Crematories | 812220 |
| Coin Operated Laundries And Drycleaners | 812310 |
| Drycleaning And Laundry Services Except Coin Operated | 812320 |
| Linen Supply | 812331 |
| Industrial Launderers | 812332 |
| Pet Care Except Veterinary Services | 812910 |
| Photofinishing Laboratories Except One Hour | 812921 |
| One Hour Photofinishing | 812922 |
| Parking Lots And Garages | 812930 |
| All Other Personal Services | 812990 |
| Religious Organizations | 813110 |
| Grantmaking Foundations | 813211 |
| Voluntary Health Organizations | 813212 |
| Other Grantmaking And Giving Services | 813219 |
| Human Rights Organizations | 813311 |
| Environment Conservation And Wildlife Organizations | 813312 |
| Other Social Advocacy Organizations | 813319 |
| Civic And Social Organizations | 813410 |
| Company Associations | 813910 |
| Professional Organizations | 813920 |
| Labor Unions And Similar Labor Organizations | 813930 |
| Political Organizations | 813940 |
| Other Similar Organizations Except Company Professional Labor And Political Organizations | 813990 |
| Private Households | 814110 |
| Executive Offices | 921110 |
| Legislative Bodies | 921120 |
| Public Finance Activities | 921130 |
| Executive And Legislative Offices Combined | 921140 |
| American Indian And Alaska Native Tribal Governments | 921150 |
| Other General Government Support | 921190 |
| Courts | 922110 |
| Police Protection | 922120 |
| Legal Counsel And Prosecution | 922130 |
| Correctional Institutions | 922140 |
| Parole Offices And Probation Offices | 922150 |
| Fire Protection | 922160 |
| Other Justice Public Order And Safety Activities | 922190 |
| Administration Of Education Programs | 923110 |
| Administration Of Public Health Programs | 923120 |
| Administration Of Human Resource Programs Except Education Public Health And Veterans Affairs Programs | 923130 |
| Administration Of Veterans Affairs | 923140 |
| Administration Of Air And Water Resource And Solid Waste Management Programs | 924110 |
| Administration Of Conservation Programs | 924120 |
| Administration Of Housing Programs | 925110 |
| Administration Of Urban Planning And Community And Rural Development | 925120 |
| Administration Of General Economic Programs | 926110 |
| Regulation And Administration Of Transportation Programs | 926120 |
| Regulation And Administration Of Communications Electric Gas And Other Utilities | 926130 |
| Regulation Of Agricultural Marketing And Commodities | 926140 |
| Regulation Licensing And Inspection Of Miscellaneous Commercial Sectors | 926150 |
| Space Research And Technology | 927110 |
| National Security | 928110 |
| International Affairs | 928120 |
| Unclassified | 999999 |
# Occupation codes
Source: https://docs.byzantine.fi/api-reference/lists/occupation-codes
Below is a full list of the occupation codes accepted in the additional details requested for some individual accounts.
Find the list in JSON format [here](occupation_codes.json).
| Code | Occupaton |
| - | - |
| 132011 | Accountant and auditor |
| 272011 | Actor |
| 152011 | Actuary |
| 291291 | Acupuncturist |
| 519191 | Adhesive bonding machine operator and tender |
| 113012 | Administrative services manager |
| 112011 | Advertising and promotions manager |
| 413011 | Advertising sales agent |
| 172011 | Aerospace engineer |
| 131011 | Agent and business manager of artists, performers, and athletes |
| 194010 | Agricultural and food science technician |
| 191010 | Agricultural and food scientist |
| 172021 | Agricultural engineer |
| 452011 | Agricultural inspector |
| 532020 | Air traffic controller and airfield operations specialist |
| 493011 | Aircraft mechanic and service technician |
| 532010 | Aircraft pilots and flight engineer |
| 512011 | Aircraft structure, surfaces, rigging, and systems assembler |
| 533011 | Ambulance driver and attendant, except emergency medical technician |
| 452021 | Animal breeder |
| 392021 | Animal caretaker |
| 339011 | Animal control worker |
| 392011 | Animal trainer |
| 171011 | Architect, except landscape and naval |
| 173011 | Architectural and civil drafter |
| 119041 | Architectural and engineering manager |
| 254010 | Archivist, curator, and museum technician |
| 271010 | Artist and related worker |
| 192010 | Astronomer and physicist |
| 272021 | Athletes and sports competitor |
| 192021 | Atmospheric and space scientist |
| 291181 | Audiologist |
| 492097 | Audiovisual equipment installer and repairer |
| 493021 | Automotive body and related repairer |
| 493022 | Automotive glass installer and repairer |
| 493023 | Automotive service technician and mechanic |
| 492091 | Avionics technician |
| 396010 | Baggage porter, bellhop, and concierge |
| 333011 | Bailiff |
| 513011 | Baker |
| 395011 | Barber |
| 353011 | Bartender |
| 433011 | Bill and account collector |
| 433021 | Billing and posting clerk |
| 172031 | Bioengineer and biomedical engineer |
| 191020 | Biological scientist |
| 194021 | Biological technician |
| 472011 | Boilermaker |
| 433031 | Bookkeeping, accounting, and auditing clerk |
| 472020 | Brickmason, blockmason, and stonemason |
| 273011 | Broadcast announcer and radio disc jockey |
| 274010 | Broadcast, sound, and lighting technician |
| 434011 | Brokerage clerk |
| 132031 | Budget analyst |
| 493031 | Bus and truck mechanic and diesel engine specialist |
| 131199 | Business operations specialist, other |
| 513020 | Butcher and other meat, poultry, and fish processing worker |
| 131021 | Buyer and purchasing agent, farm products |
| 517011 | Cabinetmaker and bench carpenter |
| 292031 | Cardiovascular technologist and technician |
| 435011 | Cargo and freight agent |
| 472031 | Carpenter |
| 472040 | Carpet, floor, and tile installer and finisher |
| 412010 | Cashier |
| 472050 | Cement mason, concrete finisher, and terrazzo worker |
| 351011 | Chef and head cook |
| 172041 | Chemical engineer |
| 519010 | Chemical processing machine setter, operator, and tender |
| 194031 | Chemical technician |
| 192030 | Chemist and materials scientist |
| 111011 | Chief executive |
| 211021 | Child, family, and school social worker |
| 399011 | Childcare worker |
| 291011 | Chiropractor |
| 172051 | Civil engineer |
| 131030 | Claims adjuster, appraiser, examiner, and investigator |
| 537061 | Cleaner of vehicles and equipment |
| 212011 | Clergy |
| 193033 | Clinical and counseling psychologist |
| 292010 | Clinical laboratory technologist and technician |
| 272022 | Coaches and scout |
| 499091 | Coin, vending, and amusement machine servicer and repairer |
| 271021 | Commercial and industrial designer |
| 499092 | Commercial diver |
| 432099 | Communications equipment operator, other |
| 113111 | Compensation and benefits manager |
| 131141 | Compensation, benefits, and job analysis specialist |
| 131041 | Compliance officer |
| 151221 | Computer and information research scientist |
| 113021 | Computer and information systems manager |
| 172061 | Computer hardware engineer |
| 151241 | Computer network architect |
| 519160 | Computer numerically controlled tool operator and programmer |
| 151299 | Computer occupation, other |
| 151251 | Computer programmer |
| 151230 | Computer support specialist |
| 151211 | Computer systems analyst |
| 492011 | Computer, automated teller, and office machine repairer |
| 191030 | Conservation scientist and forester |
| 474011 | Construction and building inspector |
| 472070 | Construction equipment operator |
| 472061 | Construction laborer |
| 119021 | Construction manager |
| 499010 | Control and valve installer and repairer |
| 5370XX | Conveyor, dredge, and hoist and winch operator |
| 352010 | Cook |
| 333012 | Correctional officer and jailer |
| 434021 | Correspondence clerk |
| 131051 | Cost estimator |
| 211019 | Counselor, other |
| 412021 | Counter and rental clerk |
| 435021 | Courier and messenger |
| 273092 | Court reporter and simultaneous captioner |
| 434031 | Court, municipal, and license clerk |
| 537021 | Crane and tower operator |
| 132041 | Credit analyst |
| 434041 | Credit authorizer, checker, and clerk |
| 132070 | Credit counselor and loan officer |
| 339091 | Crossing guard and flagger |
| 519020 | Crushing, grinding, polishing, mixing, and blending worker |
| 434051 | Customer service representative |
| 519030 | Cutting worker |
| 514031 | Cutting, punching, and press machine setter, operator, and tender, metal and plastic |
| 272030 | Dancer and choreographer |
| 439021 | Data labeler and data entry keyer |
| 15124X | Database administrator and architect |
| 519080 | Dental and ophthalmic laboratory technician and medical appliance technician |
| 319091 | Dental assistant |
| 291292 | Dental hygienist |
| 291020 | Dentist |
| 475010 | Derrick, rotary drill, and service unit operator, oil and gas |
| 439031 | Desktop publisher |
| 333021 | Detective and criminal investigator |
| 292032 | Diagnostic medical sonographer |
| 29205X | Dietetic technician and ophthalmic medical technician |
| 291031 | Dietitian and nutritionist |
| 359011 | Dining room and cafeteria attendant and bartender helper |
| 212021 | Director, religious activities and educatio |
| 272091 | Disc jockey, except radio |
| 359021 | Dishwasher |
| 435032 | Dispatcher, except police, fire, and ambulance |
| 419091 | Door-to-door sales worker, news and street vendor, and related worker |
| 533030 | Driver/sales worker and truck driver |
| 472080 | Drywall installer, ceiling tile installer, and taper |
| 475023 | Earth driller, except oil and gas |
| 193011 | Economist |
| 273041 | Editor |
| 119030 | Education and childcare administrator |
| 211012 | Educational, guidance, and career counselor and advisor |
| 492092 | Electric motor, power tool, and related repairer |
| 173023 | Electrical and electronic engineering technologist and technician |
| 172070 | Electrical and electronics engineer |
| 492093 | Electrical and electronics installer and repairer, transportation equipment |
| 49209X | Electrical and electronics repairer, industrial and utility |
| 499051 | Electrical power-line installer and repairer |
| 512020 | Electrical, electronics, and electromechanical assembler |
| 472111 | Electrician |
| 492096 | Electronic equipment installer and repairer, motor vehicles |
| 252020 | Elementary and middle school teacher |
| 474021 | Elevator and escalator installer and repairer |
| 434061 | Eligibility interviewer, government programs |
| 3940XX | Embalmer, crematory operator and funeral attendant |
| 119161 | Emergency management director |
| 292042 | Emergency medical technician |
| 291214 | Emergency medicine physician |
| 512031 | Engine and other machine assembler |
| 172199 | Engineer, other |
| 272099 | Entertainer and performer, sports and related worker, other |
| 119070 | Entertainment and recreation manager |
| 172081 | Environmental engineer |
| 194040 | Environmental science and geoscience technician |
| 192041 | Environmental scientist and specialist, including health |
| 519194 | Etcher and engraver |
| 475022 | Excavating and loading machine and dragline operator, surface mining |
| 436011 | Executive secretary and executive administrative assistant |
| 291128 | Exercise physiologist |
| 399031 | Exercise trainer and group fitness instructor |
| 475032 | Explosives worker, ordnance handling expert, and blaster |
| 519041 | Extruding, forming, pressing, and compacting machine setter, operator, and tender |
| 113013 | Facilities manager |
| 119013 | Farmer, rancher, and other agricultural manager |
| 271022 | Fashion designer |
| 353023 | Fast food and counter worker |
| 474031 | Fence erector |
| 434071 | File clerk |
| 132051 | Financial and investment analyst |
| 433099 | Financial clerk, other |
| 132061 | Financial examiner |
| 113031 | Financial manager |
| 332020 | Fire inspector |
| 332011 | Firefighter |
| 552010 | First-line enlisted military supervisor |
| 471011 | First-line supervisor of construction trades and extraction worker |
| 331011 | First-line supervisor of correctional officer |
| 451011 | First-line supervisor of farming, fishing, and forestry worker |
| 331021 | First-line supervisor of firefighting and prevention worker |
| 351012 | First-line supervisor of food preparation and serving workers |
| 371011 | First-line supervisor of housekeeping and janitorial workers |
| 371012 | First-line supervisor of landscaping, lawn service, and groundskeeping workers |
| 491011 | First-line supervisor of mechanics, installers, and repairers |
| 411012 | First-line supervisor of non-retail sales workers |
| 431011 | First-line supervisor of office and administrative support workers |
| 331012 | First-line supervisor of police and detective |
| 511011 | First-line supervisor of production and operating worker |
| 331099 | First-line supervisor of protective service worker, other |
| 411011 | First-line supervisor of retail sales workers |
| 331091 | First-line supervisor of security worker |
| 333031 | Fish and game warden |
| 453031 | Fishing and hunting worker |
| 532031 | Flight attendant |
| 271023 | Floral designer |
| 513091 | Food and tobacco roasting, baking, and drying machine operator and tender |
| 513092 | Food batchmaker |
| 513093 | Food cooking machine operator and tender |
| 359099 | Food preparation and serving related worker, other |
| 352021 | Food preparation worker |
| 513099 | Food processing worker, other |
| 353041 | Food server, nonrestaurant |
| 119051 | Food service manager |
| 454011 | Forest and conservation worker |
| 514020 | Forming machine setter, operator, and tender, metal and plastic |
| 131131 | Fundraiser |
| 119171 | Funeral home manager |
| 519051 | Furnace, kiln, oven, drier, and kettle operator and tender |
| 517021 | Furniture finisher |
| 433041 | Gambling cage worker |
| 393010 | Gambling services worker |
| 111021 | General and operations manager |
| 19204X | Geoscientist and hydrologist, except geographer |
| 472121 | Glazier |
| 452041 | Grader and sorter, agricultural product |
| 271024 | Graphic designer |
| 514033 | Grinding, lapping, polishing, and buffing machine tool setter, operator, and tender, metal and plastic |
| 395012 | Hairdresser, hairstylist, and cosmetologist |
| 474041 | Hazardous materials removal worker |
| 291299 | Healthcare diagnosing or treating practitioner, other |
| 211022 | Healthcare social worker |
| 499021 | Heating, air conditioning, and refrigeration mechanic and installer |
| 493040 | Heavy vehicle and mobile equipment service technician and mechanic |
| 499098 | Helper—installation, maintenance, and repair worker |
| 519198 | Helper—production worker |
| 473010 | Helper, construction trade |
| 474051 | Highway maintenance worker |
| 499031 | Home appliance repairer |
| 311121 | Home health aide |
| 359031 | Host and hostess, restaurant, lounge, and coffee shop |
| 434081 | Hotel, motel, and resort desk clerk |
| 434161 | Human resources assistant, except payroll and timekeeping |
| 113121 | Human resources manager |
| 131070 | Human resources worker |
| 49904X | Industrial and refractory machinery mechanic |
| 172110 | Industrial engineer, including health and safety |
| 113051 | Industrial production manager |
| 537051 | Industrial truck and tractor operator |
| 434199 | Information and record clerk, other |
| 151212 | Information security analyst |
| 519061 | Inspector, tester, sorter, sampler, and weigher |
| 472130 | Insulation worker |
| 439041 | Insurance claims and policy processing clerk |
| 413021 | Insurance sales agent |
| 132053 | Insurance underwriter |
| 271025 | Interior designer |
| 273091 | Interpreter and translator |
| 434111 | Interviewer, except eligibility and loan |
| 37201X | Janitor and building cleaner |
| 519071 | Jeweler and precious stone and metal worker |
| 231020 | Judge, magistrate, and other judicial worker |
| 231012 | Judicial law clerk |
| 537062 | Laborer and freight, stock, and material mover, hand |
| 171012 | Landscape architect |
| 373011 | Landscaping and groundskeeping worker |
| 516011 | Laundry and dry-cleaning worker |
| 231011 | Lawyer |
| 436012 | Legal secretary and administrative assistant |
| 232099 | Legal support worker, other |
| 111031 | Legislator |
| 254022 | Librarian and media collections specialist |
| 434121 | Library assistant, clerical |
| 254031 | Library technician |
| 292061 | Licensed practical and licensed vocational nurse |
| 191099 | Life scientist, other |
| 434131 | Loan interviewer and clerk |
| 499094 | Locksmith and safe repairer |
| 534010 | Locomotive engineer and operator |
| 119081 | Lodging manager |
| 454020 | Logging worker |
| 131081 | Logistician |
| 537063 | Machine feeder and offbearer |
| 514041 | Machinist |
| 292035 | Magnetic resonance imaging technologist |
| 372012 | Maids and housekeeping cleaner |
| 439051 | Mail clerk and mail machine operator, except postal service |
| 499071 | Maintenance and repair worker, general |
| 499043 | Maintenance worker, machinery |
| 131111 | Management analyst |
| 119199 | Manager, other |
| 395092 | Manicurist and pedicurist |
| 499095 | Manufactured building and mobile home installer |
| 172121 | Marine engineer and naval architect |
| 131161 | Market research analyst and marketing specialist |
| 112021 | Marketing manager |
| 211013 | Marriage and family therapist |
| 319011 | Massage therapist |
| 172131 | Materials engineer |
| 152021 | Mathematician |
| 172141 | Mechanical engineer |
| 274099 | Media and communication equipment worker, other |
| 273099 | Media and communication worker, other |
| 119111 | Medical and health services manager |
| 319092 | Medical assistant |
| 292072 | Medical records specialist |
| 191040 | Medical scientist |
| 436013 | Medical secretary and administrative assistant |
| 319094 | Medical transcriptionist |
| 131121 | Meeting, convention, and event planner |
| 211023 | Mental health and substance abuse social worker |
| 211014 | Mental health counselor |
| 271026 | Merchandise displayer and window trimmer |
| 514050 | Metal furnace operator, tender, pourer, and caster |
| 435041 | Meter reader, utilities |
| 553010 | Military enlisted tactical operations and air/weapons specialist and crew member |
| 551010 | Military officer special and tactical operations leader |
| 554010 | Military, rank not specified |
| 499044 | Millwright |
| 172151 | Mining and geological engineer, including mining safety engineer |
| 452090 | Miscellaneous agricultural worker |
| 474090 | Miscellaneous construction and related worker |
| 292090 | Miscellaneous health technologist and technician |
| 518090 | Miscellaneous plant and system operator |
| 193090 | Miscellaneous social scientist and related worker |
| 493090 | Miscellaneous vehicle and mobile equipment mechanic, installer, and repairer |
| 514060 | Model maker and patternmaker, metal and plastic |
| 419010 | Model, demonstrator, and product promoter |
| 514070 | Molder and molding machine setter, operator, and tender, metal and plastic |
| 519195 | Molder, shaper, and caster, except metal and plastic |
| 394031 | Mortician, undertaker, and funeral arranger |
| 533099 | Motor vehicle operator, other |
| 272041 | Music director and composer |
| 272042 | Musician and singer |
| 119121 | Natural sciences manager |
| 151244 | Network and computer systems administrator |
| 434141 | New accounts clerk |
| 273023 | News analyst, reporter, and journalist |
| 172161 | Nuclear engineer |
| 29203X | Nuclear medicine technologist and medical dosimetrist |
| 194051 | Nuclear technician |
| 291151 | Nurse anesthetist |
| 291161 | Nurse midwife |
| 291171 | Nurse practitioner |
| 311131 | Nursing assistant |
| 195010 | Occupational health and safety specialist and technician |
| 291122 | Occupational therapist |
| 312010 | Occupational therapy assistant and aide |
| 439199 | Office and administrative support worker, other |
| 439061 | Office clerk, general |
| 439071 | Office machine operator, except computer |
| 152031 | Operations research analyst |
| 292081 | Optician, dispensing |
| 291041 | Optometrist |
| 434151 | Order clerk |
| 31113X | Orderly and psychiatric aide |
| 5120XX | Other assembler and fabricator |
| 21109X | Other community and social service specialist |
| 27102X | Other designer |
| 17301X | Other drafter |
| 2590XX | Other educational instruction and library worker |
| 17302X | Other engineering technologist and technician |
| 3930XX | Other entertainment attendant and related worker |
| 4750XX | Other extraction worker |
| 1320XX | Other financial specialist |
| 37301X | Other grounds maintenance worker |
| 299000 | Other healthcare practitioner and technical occupation |
| 31909X | Other healthcare support worker |
| 49909X | Other installation, maintenance, and repair worker |
| 1940XX | Other life, physical, and social science technician |
| 51403X | Other machine tool setter, operator, and tender, metal and plastic |
| 5371XX | Other material moving worker |
| 1520XX | Other mathematical science occupation |
| 514XXX | Other metal worker and plastic worker |
| 39509X | Other personal appearance worker |
| 2912XX | Other physician |
| 51919X | Other production equipment operator and tender |
| 5191XX | Other production worker |
| 33909X | Other protective service worker |
| 19303X | Other psychologist |
| 5340XX | Other rail transportation worker |
| 2530XX | Other teacher and instructor |
| 51609X | Other textile, apparel, and furnishings worker |
| 5360XX | Other transportation worker |
| 5170XX | Other woodworker |
| 519111 | Packaging and filling machine operator and tender |
| 537064 | Packer and packager, hand |
| 472140 | Painter and paperhanger |
| 519120 | Painting worker |
| 519196 | Paper goods machine setter, operator, and tender |
| 232011 | Paralegal and legal assistant |
| 292043 | Paramedic |
| 536021 | Parking attendant |
| 333041 | Parking enforcement worker |
| 412022 | Parts salesperson |
| 536061 | Passenger attendant |
| 433051 | Payroll and timekeeping clerk |
| 399099 | Personal care and service worker, other |
| 132052 | Personal financial advisor |
| 119179 | Personal service manager, other |
| 372021 | Pest control worker |
| 172171 | Petroleum engineer |
| 291051 | Pharmacist |
| 319095 | Pharmacy aide |
| 292052 | Pharmacy technician |
| 319097 | Phlebotomist |
| 274021 | Photographer |
| 519151 | Photographic process worker and processing machine operator |
| 192099 | Physical scientist, other |
| 291123 | Physical therapist |
| 312020 | Physical therapist assistant and aide |
| 291071 | Physician assistant |
| 472151 | Pipelayer |
| 472161 | Plasterer and stucco mason |
| 472152 | Plumber, pipefitter, and steamfitter |
| 291081 | Podiatrist |
| 333050 | Police officer |
| 435051 | Postal service clerk |
| 435052 | Postal service mail carrier |
| 435053 | Postal service mail sorter, processor, and processing machine operator |
| 119131 | Postmaster and mail superintendent |
| 251000 | Postsecondary teacher |
| 518010 | Power plant operator, distributor, and dispatcher |
| 499060 | Precision instrument and equipment repairer |
| 515111 | Prepress technician and worker |
| 252010 | Preschool and kindergarten teacher |
| 516021 | Presser, textile, garment, and related material |
| 515113 | Print binding and finishing worker |
| 515112 | Printing press operator |
| 339021 | Private detective and investigator |
| 211092 | Probation officer and correctional treatment specialist |
| 433061 | Procurement clerk |
| 272012 | Producer and director |
| 435061 | Production, planning, and expediting clerk |
| 131082 | Project management specialist |
| 439081 | Proofreader and copy marker |
| 132020 | Property appraiser and assessor |
| 119141 | Property, real estate, and community association manager |
| 292053 | Psychiatric technician |
| 112030 | Public relations and fundraising manager |
| 273031 | Public relations specialist |
| 435031 | Public safety telecommunicator |
| 537070 | Pumping station operator |
| 131023 | Purchasing agent, except wholesale, retail, and farm products |
| 113061 | Purchasing manager |
| 291124 | Radiation therapist |
| 492020 | Radio and telecommunications equipment installer and repairer |
| 292034 | Radiologic technologist and technician |
| 291224 | Radiologist |
| 474061 | Rail-track laying and maintenance equipment operator |
| 534031 | Railroad conductor and yardmaster |
| 419020 | Real estate broker and sales agent |
| 434171 | Receptionist and information clerk |
| 399032 | Recreation worker |
| 291125 | Recreational therapist |
| 537081 | Refuse and recyclable material collector |
| 291141 | Registered nurse |
| 211015 | Rehabilitation counselor |
| 472171 | Reinforcing iron and rebar worker |
| 212099 | Religious worker, other |
| 434181 | Reservation and transportation ticket agent and travel clerk |
| 399041 | Residential advisor |
| 291126 | Respiratory therapist |
| 412031 | Retail salesperson |
| 499096 | Rigger |
| 472181 | Roofer |
| 475071 | Roustabout, oil and gas |
| 535011 | Sailor and marine oiler |
| 419099 | Sales and related worker, other |
| 419031 | Sales engineer |
| 112022 | Sales manager |
| 413091 | Sales representative of services, except advertising, insurance, financial services, and travel |
| 414010 | Sales representatives, wholesale and manufacturing |
| 517041 | Sawing machine setter, operator, and tender, wood |
| 533051 | School bus driver |
| 339094 | School bus monitor |
| 193034 | School psychologist |
| 252030 | Secondary school teacher |
| 436014 | Secretary and administrative assistant, except legal, medical, and executive |
| 413031 | Securities, commodities, and financial services sales agent |
| 492098 | Security and fire alarm systems installer |
| 339030 | Security guard and gambling surveillance officer |
| 474071 | Septic tank servicer and sewer pipe cleaner |
| 516031 | Sewing machine operator |
| 472211 | Sheet metal worker |
| 535020 | Ship and boat captain and operator |
| 535031 | Ship engineer |
| 435071 | Shipping, receiving, and inventory clerk |
| 516040 | Shoe and leather worker |
| 533053 | Shuttle driver and chauffeur |
| 395094 | Skincare specialist |
| 493050 | Small engine mechanic |
| 119151 | Social and community service manager |
| 211093 | Social and human service assistant |
| 194061 | Social science research assistant |
| 211029 | Social worker, other |
| 193041 | Sociologist |
| 151252 | Software developer |
| 151253 | Software quality assurance analyst and tester |
| 472231 | Solar photovoltaic installer |
| 252050 | Special education teacher |
| 291127 | Speech-language pathologist |
| 518021 | Stationary engineer and boiler operator |
| 439111 | Statistical assistant |
| 152041 | Statistician |
| 537065 | Stocker and order filler |
| 472221 | Structural iron and steel worker |
| 512041 | Structural metal fabricator and fitter |
| 211011 | Substance abuse and behavioral disorder counselor |
| 391000 | Supervisor of personal care and service worker |
| 531000 | Supervisor of transportation and material moving worker |
| 291240 | Surgeon |
| 292055 | Surgical technologist |
| 193022 | Survey researcher |
| 173031 | Surveying and mapping technician |
| 171020 | Surveyor, cartographer, and photogrammetrist |
| 432011 | Switchboard operator, including answering service |
| 516050 | Tailor, dressmaker, and sewer |
| 132081 | Tax examiner and collector, and revenue agent |
| 132082 | Tax preparer |
| 533054 | Taxi driver |
| 259040 | Teaching assistant |
| 273042 | Technical writer |
| 499052 | Telecommunications line installer and repairer |
| 419041 | Telemarketer |
| 432021 | Telephone operator |
| 274030 | Television, video, and film camera operator and editor |
| 433071 | Teller |
| 516060 | Textile machine setter, operator, and tender |
| 291129 | Therapist, other |
| 519197 | Tire builder |
| 232093 | Title examiner, abstractor, and searcher |
| 514111 | Tool and die maker |
| 397010 | Tour and travel guide |
| 113131 | Training and development manager |
| 131151 | Training and development specialist |
| 533052 | Transit and intercity bus driver |
| 536051 | Transportation inspector |
| 339093 | Transportation security screener |
| 536030 | Transportation service attendant |
| 113071 | Transportation, storage, and distribution manager |
| 413041 | Travel agent |
| 373013 | Tree trimmer and pruner |
| 253041 | Tutor |
| 272023 | Umpire, referee, and other sports official |
| 475040 | Underground mining machine operator |
| 999999 | Unemployed, with no work experience in the last 5 years or earlier or never worked |
| 516093 | Upholsterer |
| 193051 | Urban and regional planner |
| 393031 | Usher, lobby attendant, and ticket taker |
| 291131 | Veterinarian |
| 319096 | Veterinary assistant and laboratory animal caretaker |
| 292056 | Veterinary technologist and technician |
| 353031 | Waiter or waitress |
| 518031 | Water and wastewater treatment plant and system operator |
| 151255 | Web and digital interface designer |
| 151254 | Web developer |
| 435111 | Weigher, measurer, checker, and sampler, recordkeeping |
| 514120 | Welding, soldering, and brazing worker |
| 131022 | Wholesale and retail buyer, except farm products |
| 499081 | Wind turbine service technician |
| 517042 | Woodworking machine setter, operator, and tender, except sawing |
| 439022 | Word processor and typist |
| 273043 | Writer and author |
# Overview
Source: https://docs.byzantine.fi/api-reference/management-overview
Manage existing Byzantine accounts, users, and authenticators after creation.
Once a user or entity account exists, you use **Account management** endpoints to configure the account, add team members, and grant them roles with different permissions.
## Multi-users account management
Invite users to the account, update their roles (e.g. from `view` to `root`), and let them create passkeys so they can sign transactions. All operations are made by two steps: first, request a payload or OTP, then submit the signed payload.
## Bank account management
Configure the account for withdrawals: add one or more bank accounts so that off-ramp withdrawals can be initiated.
# Multi-accounts
Source: https://docs.byzantine.fi/api-reference/multi-accounts
A single user can be associated with multiple Byzantine accounts.
A user can be associated with multiple accounts. This happens when a user:
* Creates an individual account (receives their own `account_id`)
* Is invited to join one or more entity (business) accounts
Each account has its own `account_id`, wallet, and balances. The user interacts with each account independently.
A user is tied to a specific email address and a specific `integrator_id`. Their `user_Id` remains unchanged regardless of how many accounts they are associated with.
## Retrieving a user's accounts
To see all accounts associated with a user, call the get user details endpoint. The response includes an `accounts` array listing every account the user belongs to, along with their role in each.
## How it works
```mermaid theme={null}
flowchart TD
U["User (user_Id)"] --> A1["Individual account (account_id)"]
U --> A2["Entity account A (account_id)"]
U --> A3["Entity account B (account_id)"]
A1 --> W1["Wallet"]
A2 --> W2["Wallet"]
A3 --> W3["Wallet"]
```
Each account is fully independent: separate balances, separate transactions, and separate user roles.
## Roles across accounts
A user can have different roles in different accounts. For example, a user might be `root` on their individual account and `view` on an entity account they were invited to.
See [Multi-users account](/api-reference/multi-users-account) for details on inviting users and managing roles.
# Multi-users account
Source: https://docs.byzantine.fi/api-reference/multi-users-account
Managing multi-users Byzantine accounts via the Integrator API.
Multi-users account covers accounts with several signers, inviting users to an existing account, updating their roles, and allowing them to create their own passkeys.
## Which accounts can have multiple users
Both entity and individual accounts can have more than one signer (`root` user), each controlling the account with their own passkey:
* **Entity accounts** are multi-user by design: each root user and each beneficiary/representative is a separate person. Someone can be a signer without being a UBO, and a UBO without being a signer.
* **Individual accounts** can now also have several signers. Every signer is listed in the `rootUsers` field of the [create-individual-account](/api-reference/kyc) call, mirroring how entity accounts are created.
On any account, `userInfo` / `entityInfo` describes **who is being verified** (the customer), while `rootUsers` describes **who can sign**. For a standard individual account these are the same person; the sections below cover the cases where they differ.
## Creating an account on behalf of a client
A wealth manager / CGP can create and manage an individual account for a client. This relies on the split between the verified customer and the signer:
* **`userInfo`** - the client. They are the KYC subject and appear as the account's customer from the moment it is created.
* **`rootUsers`** - the signer(s), for example the wealth manager, who control the account with their own passkeys.
```mermaid theme={null}
flowchart LR
A["1 - CGP creates the account: client in userInfo, CGP in rootUsers"] --> B["2 - Client is KYC-verified and is the account's customer from day one"]
B --> C["3 - CGP invites the client to join as a signer"]
C --> D["4 - Client accepts, creates a passkey, and can sign transactions"]
```
The client is the account's customer immediately, even before they sign anything. When they are ready to take part in signing, invite them with the standard [invitation flow](#accepting-an-invitation) below. Once they accept and create a passkey, they become a signer (or `root` user) alongside the CGP.
To hand over full control, the client (once a `root` signer) can demote the CGP to a `view` user by [updating roles](#promoting-and-demoting-roles-of-a-member). This leaves the client in control while the CGP keeps only the access you agree on.
## High-level flows
### Invitation-to-account
```mermaid theme={null}
flowchart LR
A[1 - Account root user invites someone to join the account] --> B[2 - Invited person accepts the invitation]
B --> C[3 - Optional - Invited person creates a passkey]
C --> D[4 - Invited person has an account and can sign transactions if passkey created]
```
### Updating roles
```mermaid theme={null}
flowchart LR
A["1 - Account root user updates the role of a member"] --> B["2a - view: member can only view account"]
A --> C["2b - root: member can make deposit and withdraw transactions"]
```
## Technical implementation
### Inviting users
1. **Get invite users payload** - Request the payload that a root user must sign with their passkey to invite new users to the account. Use this endpoint to get the payload:
2. **Submit signed invite-users payload** - Then call the below endpoint with the signed payload to execute the invitations:
### Accepting an invitation
1. **Initialize OTP for a user** - Initialize an OTP for the invited person to authenticate by calling this endpoint:
2. **Authenticate with OTP** - Invited user enters the OTP code to create a session and authenticate with OTP. Call this endpoint to submit the authenticated session to accept the invitation:
3. **(Optional) Create a passkey for the new member** - Allow the new user to create a passkey by using the below endpoint. The user must have an active OTP session (from step 1 and 2).
This last option step is only required if the new user has the role of `root`
(Admin). Once passkeys are created, the user can use them for deposits and
withdrawals.
Invitations can be listed per account or per email via the [get-invitations-by-account-id](/api-reference/account-management/list-invitations-by-account) and [get-invitations-by-email](/api-reference/account-management/list-invitations-by-email) endpoints.
### Promoting and demoting roles of a member
* **Get update users role payload** - Request the payload that the root user must sign to change users’ roles. Call this endpoint:
* **Submit the signed payload** - Then call the below endpoint with the signed payload to execute the role update:
## Roles and permissions
Four different roles exist:
* `root`: The root user is the admin of the account and has full permissions.
* `view`: The view user can only view the account and cannot make any transactions.
* `beneficiary`: Beneficiary users are UBOs of an entity account at the moment of creation. By default, they cannot make any transactions.
* `self_custodial`: All accounts created with a self-custodial wallet have this role.
The roles and permissions are described in the table below:
| Role | Can view | Can deposit & withdraw | Can manage users | Can add bank accounts |
| :- | :- | :- | :- | :- |
| `root` | ✅ | ✅ | ✅ | ✅ |
| `view` | ✅ | ❌ | ❌ | ❌ |
| `beneficiary` | ✅ | ❌ | ❌ | ❌ |
| `self_custodial` | ✅ | ✅ | ❌ | ✅ |
# Get all assets
Source: https://docs.byzantine.fi/api-reference/products/get-all-assets
/api-reference/openapi-integrator.json get /v1/query/assets
# Get single product APY
Source: https://docs.byzantine.fi/api-reference/products/get-single-product-apy
/api-reference/openapi-integrator.json get /v1/query/apy/{vault_id}
Calculate APY for daily, weekly, monthly, and yearly periods with fallback to oldest available data.
# Get single vault history
Source: https://docs.byzantine.fi/api-reference/products/get-single-vault-history
/api-reference/openapi-integrator.json get /v1/query/history/{vault_id}
Returns hourly aggregated share price data for a vault.
# List all products
Source: https://docs.byzantine.fi/api-reference/products/list-all-products
/api-reference/openapi-integrator.json get /v1/query/top-vaults
Returns a list of all Byzantine vaults from configuration. "Vaults" are deposit products, the main entities in the Byzantine protocol.
# Sandbox
Source: https://docs.byzantine.fi/api-reference/sandbox
All integrators of Byzantine have access to our Sandbox environment accessible at **sandbox.api.byzantine.fi**. To get started quickly, you can fork our Postman collection to try our API in the sandbox with minimal setup.
If you would rather not leave the browser, every endpoint page in this reference has an interactive playground built in. Activate your sandbox integrator key once on the page below and the **Send** button signs each request for you, so you can try any endpoint without setting up a client.
## Accessing the Sandbox
Use the sandbox environment to test your integration and try API request/response schemas.
The sandbox is intended for integration testing only.
It is isolated from production. Data may be reset, and no real funds move or live operations are executed. In the sandbox:
* All accounts created are automatically and immediately approved (KYB and KYC).
* No real funds are moved, which means no onramp/offramp transactions takes place.
* There are no payments-related webhooks fired in sandbox.
* **Base URL**: `https://sandbox.api.byzantine.fi`
* **Access**: Get in touch with the Byzantine team ([info@byzantine.fi](mailto:info@byzantine.fi)) to receive a sandbox API key.
By default, requests are sent to our sandbox API. To switch to the production API, select the `Production` environment.
### How to use the collection
1. Fork the Postman collection
2. Insert your integrator private key in the `INTEGRATOR_PRIVATE_KEY` environment variable
3. Use the collection to test our endpoints
Before you fork our Collection:
* Under the Environments to fork section, choose "Select all" to have both sandbox and production environments setup.
* To be notified automatically when the collection is updated, switch on the "*Watch source collection to get notified of updates*" checkbox when you fork the collection.
### Keep the Collection updated
Our Postman collection is updated regularly to reflect the latest changes in the API. To keep your forked collection up to date, hover over the fork icon (in orange color) next to the collection name, then click "**Pull changes**".
# Sandbox authentication
Source: https://docs.byzantine.fi/api-reference/sandbox-auth
Activate request signing for the interactive API playground
The interactive API playground on this site signs every request to `sandbox.api.byzantine.fi` automatically when you activate your sandbox integrator key here.
Enter a **sandbox** integrator private key only. Production keys have full account privileges - they must never be entered into a documentation page.
Your private key is imported into the browser's Web Crypto subsystem as a **non-extractable** ECDSA P-256 signing key. The raw key bytes are discarded immediately after import and cannot be read back by any script - `crypto.subtle.exportKey()` on the imported key throws unconditionally.
The signing key reference is stored in IndexedDB under a randomly generated session ID. The session ID lives in `sessionStorage` (per-tab, cleared automatically on tab close). Activation expires after 30 minutes; closing the tab also clears the session.
No external libraries are used - all cryptography runs against the browser's built-in `crypto.subtle` API. No requests leave your machine during activation.
# Terms and Conditions
Source: https://docs.byzantine.fi/api-reference/terms-and-conditions
Accept Byzantine terms before creating a user or entity account.
Before creating a user account (KYC) or an entity account (KYB), the end user must accept the required terms. This step is common to both flows.
## Accept the Byzantine Terms and Conditions
The user must accept the [Byzantine Terms and Conditions](https://www.byzantine.fi/terms-and-conditions) before creating the account. The `timestamp` of the acceptance is required when calling the create endpoint:
* **Individuals (KYC):** `/submit/create-individual-account`
* **Legal entities (KYB):** `/submit/create-entity-account`
# Tracking transactions
Source: https://docs.byzantine.fi/api-reference/tracking-transactions
Transaction types, lifecycle statuses, and how to list them across all your accounts.
Once a transaction is created, you typically want to know what kind it is, where it sits in its lifecycle, and how to retrieve it. This page covers the **types**, the **statuses** they move through, and the endpoint for **listing** them.
## Transaction types
| Type | What it means |
| - | - |
| `authorization` | EIP-7702 delegation that upgrades the user's EOA into a smart account by setting its code to the Atlas contract. After confirmation, the wallet is also whitelisted on our vaults. |
| `approve` | Standalone ERC-20 approval, granting an allowance over the user's tokens without a deposit bundled in. |
| `approve_deposit` | Bundled ERC-20 approval and deposit in a single Atlas batch. Used the first time a user deposits an asset into a vault that has not yet been approved. |
| `deposit` | Deposit idle balance into a vault. |
| `onramp` | Convert fiat to stablecoins and receive them in the wallet. No deposit. |
| `onramp_deposit` | Convert fiat to stablecoins and deposit them into a specific vault. |
| `withdraw` | Withdraw from a vault to idle balance. |
| `offramp` | Convert idle stablecoins to fiat into a bank account. *Not supported yet.* |
| `withdraw_offramp` | Withdraw from a vault and convert to fiat into a bank account. |
| `transfer` | Send stablecoins from the account wallet straight to any destination wallet address on-chain, leaving the vault flow entirely. See [Stablecoin transfer](/api-reference/transfer). |
## The signing window
Initiating a transaction (eg. [Get withdraw payload](/api-reference/transactions/get-withdraw-payload), [Get deposit payload](/api-reference/transactions/get-deposit-payload)) creates a **draft transaction** and returns its `transaction_id` together with the payload to sign. Until the signature is submitted through [Sign a payload](/api-reference/transactions/sign-payload), this draft only exists internally - in a `created` or `claimed` status the API never returns. It is not listed by [List all transactions](/api-reference/transactions/list-all-transactions) or [List all transactions across every account](/api-reference/transactions/list-all-transactions-across-every-account-of-the-authenticated-integrator), and [Get single transaction](/api-reference/transactions/get-single-transaction) returns `404 Not Found` for its ID.
Draft transactions are also ephemeral. **At most one unsigned draft exists per account**: initiating a new transaction discards any previous unsigned draft, and its `transaction_id` becomes permanently invalid.
Do not persist or poll a `transaction_id` before [Sign a payload](/api-reference/transactions/sign-payload) has succeeded. Treat the ID returned at creation as valid only for the signing step that immediately follows.
Once the payload is signed, the transaction becomes visible with one of the [statuses documented below](#transaction-statuses) (`withdrawal_initiated`, `processing`, `completed`, …). A `404` from [Get single transaction](/api-reference/transactions/get-single-transaction) therefore means one of three things:
* the ID never existed;
* it belonged to an unsigned draft that has been superseded by a newer one;
* the transaction is still inside the brief signing window, and will appear once signed.
## Transaction statuses
The transaction status can be checked by calling the [Get transaction](/api-reference/transactions/get-single-transaction) endpoint. Only signed transactions carry a status - drafts waiting to be signed are not returned by the API at all, as described in [the signing window](#the-signing-window) above.
* `waiting_for_funds` - The transaction has been signed. The system is waiting for the bank transfer to trigger the broadcasting of the transaction.
* `funds_in_transfer` - The funds have been scheduled to arrive with Bridge soon.
* `processing` - The funds have arrived with Bridge and are currently being on-ramped. The transaction is being broadcasted.
* `completed` - The transaction has been broadcasted and executed. The funds have been transferred to the vault.
* `processing` - The transaction is being broadcasted.
* `waiting_for_funds` - On-chain receipt confirms - assets landed at liquidation address, waiting for Bridge to pick them up.
* `funds_in_transfer` - Bridge has picked up the assets and is in the process of converting them to fiat.
* `completed` - Fiat funds have been transferred to the user's bank account.
A withdrawal that a vault cannot serve immediately is placed in the vault's withdrawal queue instead of being broadcast straight away. [Sign a payload](/api-reference/transactions/sign-payload) then answers `202 Accepted` rather than `200 OK`, and the transaction carries an extra `withdrawalRequest` object.
* `withdrawal_initiated` - The withdrawal has been signed and queued. It has not left the vault yet.
* `cancelled` - The queued withdrawal was cancelled before it settled.
`withdrawalRequest` describes the queue entry itself:
* `requestId` - UUID of the queued withdrawal request.
* `status` - `pending`, `settled`, or `cancelled`.
See [Withdrawing from a vault](/api-reference/withdrawal-technical#queued-withdrawals) for the full flow, including how to cancel a queued withdrawal.
## Retrieving transactions
Three endpoints are available depending on what you need: a single transaction by ID, all transactions for one account, or every transaction across all your accounts.
[Get single transaction](/api-reference/transactions/get-single-transaction) returns one transaction by its ID.
**Query parameters**
* `transaction_id` - UUID of the transaction.
You can use this to poll the status of a specific transaction (deposit, withdrawal, etc.) after the user has signed it.
[List all transactions](/api-reference/transactions/list-all-transactions) returns every active transaction for a specific account. Transactions still in an internal status (`created`, `claimed`) are excluded.
**Query parameters**
* `account_id` - UUID of the account.
[List all transactions across every account](/api-reference/transactions/list-all-transactions-across-every-account-of-the-authenticated-integrator) returns every active transaction across all your accounts, paginated. Transactions still in an internal status (`created`, `claimed`) are excluded.
**Query parameters**
* `limit` - page size, clamped to `[1, 100]`. Defaults to `20`.
* `offset` - number of records to skip. Defaults to `0`.
* `order` - sort direction over `updatedAt`. `desc` (default) returns the most recently updated first; `asc` returns the oldest first.
**Response**
```json theme={null}
{
"transactions": [ /* TransactionView, ... */ ],
"total": 8753,
"limit": 20,
"offset": 0
}
```
`total` is the total number of active transactions across all your accounts.
# Overview
Source: https://docs.byzantine.fi/api-reference/transactions-overview
How deposits, withdrawals, and related flows work across passkey auth.
Transactions in Byzantine are always **two-step**: you request a payload or an action, then submit the signed payload to execute it on-chain. The exact endpoints depend on whether the user authenticates with **Passkey** (WebAuthn).
## What you can do
* **Deposit** - Deposit can be made in stablecoins or fiat. Fiat deposits also involve on-ramping via a dedicated bank account. See [Deposit](/api-reference/deposit-overview) and [Deposit (technical)](/api-reference/deposit-technical).
* **Withdraw** - Move funds out of a vault to stablecoins or to a bank account (off-ramp). No vault approval is needed; withdrawals use the same two-step pattern and are available at any time. See [Withdrawal](/api-reference/withdrawal-overview) and [Withdrawal (technical)](/api-reference/withdrawal-technical).
* **Account balances and idle** - Balances in the vault earn yield; stablecoins left in the user’s secure wallet are **idle balance** and do not. Idle balance can be deposited manually into the vault later. See [Account balances & idle](/api-reference/account-balances-idle).
## Two-step pattern
1. **Request body** - Call the appropriate “get payload” or “init” endpoint (e.g. get deposit payload, initiate withdrawal). For passkey, the user signs the returned payload in your app.
2. **Submit signed transaction** - Call the submit endpoint with the signed payload. Byzantine then broadcasts and executes the transaction (or, for fiat deposits, waits for funds and then executes).
For transaction types, lifecycle statuses, and how to list transactions across all your accounts, see [Tracking transactions](/api-reference/tracking-transactions).
For full request/response details, use the **Transactions with passkey** section in the API endpoints, together with [Authentication methods](/api-reference/authentication-methods).
# Get activate account payload
Source: https://docs.byzantine.fi/api-reference/transactions/get-activate-account-payload
/api-reference/openapi-integrator.json post /v1/query/get-activate-account-payload-passkey
Get the authorization to sign to activate the account with EIP 7702 allowing gas sponsorship.
# Get deposit payload
Source: https://docs.byzantine.fi/api-reference/transactions/get-deposit-payload
/api-reference/openapi-integrator.json post /v1/query/get-deposit-payload-passkey
Get the payload to sign in order to make a deposit. Part of the passkey authentication flow.
# Get single transaction
Source: https://docs.byzantine.fi/api-reference/transactions/get-single-transaction
/api-reference/openapi-integrator.json get /v1/query/get-transaction
Transactions still awaiting signature (unsigned drafts) return 404: they only become
visible once `sign-payload` has succeeded.
# Get withdraw payload
Source: https://docs.byzantine.fi/api-reference/transactions/get-withdraw-payload
/api-reference/openapi-integrator.json post /v1/query/get-withdraw-payload-passkey
Get the payload to sign in order to make a withdrawal. Part of the passkey authentication flow.
# List all transactions
Source: https://docs.byzantine.fi/api-reference/transactions/list-all-transactions
/api-reference/openapi-integrator.json get /v1/query/get-transactions
Returns all deposit, withdrawal, and approval transactions with pending or completed status.
Excludes transactions still in an internal status (`created`, `claimed`).
# List all transactions across every account of the authenticated integrator
Source: https://docs.byzantine.fi/api-reference/transactions/list-all-transactions-across-every-account-of-the-authenticated-integrator
/api-reference/openapi-integrator.json get /v1/query/get-all-transactions
Returns transactions across all accounts owned by the integrator, paginated and ordered (DESC by default).
Excludes transactions still in an internal status (`created`, `claimed`).
# Stablecoin transfer
Source: https://docs.byzantine.fi/api-reference/transfer
How to transfer assets from a Byzantine account to any wallet.
## Transferring out of a Byzantine account
A transfer moves stablecoins directly from the user's secure Byzantine account wallet to **any destination wallet address** on-chain. Unlike a withdrawal - which off-ramps funds back to a bank account - a transfer sends the assets straight to another wallet you specify, leaving the Byzantine vault flow entirely.
Transfers are authorized by the account's signer with their passkey, so no intermediary (Byzantine or the integrator) can move the funds on the user's behalf.
Only on-chain currencies are supported for transfers: `usdc` and `eurc`.
## What the endpoint does
[`POST /v1/query/get-transfer-payload-passkey`](/api-reference/transactions/get-transfer-payload) returns the raw transaction payload the user must sign to send assets from their account wallet to the destination address. It takes:
* `accountId` - the Byzantine account the funds are transferred from.
* `currency` - the on-chain currency to transfer (`usdc` or `eurc`).
* `amount` - the amount to transfer.
* `destinationAddress` - the wallet address that will receive the funds.
Signing follows the same two-step pattern as deposits and withdrawals:
1. [Get transfer payload](/api-reference/transactions/get-transfer-payload), which requests the transaction body to sign.
2. [Sign a payload (passkey)](/api-reference/transactions/sign-payload), which submits the signed transaction and executes the transfer.
On-chain transfers are **irreversible**. If the `destinationAddress` is incorrect, malformed, or otherwise not a valid wallet the user controls, the funds will be sent there anyway and **lost permanently** - they cannot be recovered by Byzantine or the integrator. Always validate the destination address before signing the transfer.
# Verification statuses
Source: https://docs.byzantine.fi/api-reference/verification-statuses
Verification statuses during the KYC and KYB process.
From the creation of the user account, the user will go through the following verification statuses:
| **Status** | **Byzantine Status** | **Bridge Status** | **Description** |
| - | - | - | - |
| **`waiting_for_information`** | Documents requested: `init` | `incomplete` | Awaiting user - `awaitingUser`: status for company applicants only; requires user action other than document submission |
| **`under_review`** | Pending: `pending` | `under_review` | The applicant has provided all required data and is waiting for verification processing. |
| **`active`** | Approved: `completed` and `GREEN` | `approved` | User has successfully passed all verification checks. |
| **`rejected`** | • Rejected: reviewStatus - `completed`, reviewRejectType - `FINAL`, reviewAnswer - `RED`
• Resubmission requested: reviewStatus - `completed`, reviewResult.reviewRejectType - `RETRY`, reviewAnswer - `RED`
| `rejected` | User failed verification |
| **`inactive`** | Inactive | --- | User has been deactivated by the system administrator. |
# Customer webhooks
Source: https://docs.byzantine.fi/api-reference/webhooks/customers
Customer onboarding (KYC/KYB) lifecycle webhook events.
Customer events track the KYC/KYB onboarding lifecycle of a customer. Subscribe to them to keep your onboarding UI and compliance workflows in sync.
## Populated fields
Every customer event carries the ids it concerns in the envelope's `related` block. `accountId` is always set, together with `userId` for an individual customer or `entityId` for an entity. `beneficiaryId` is set when the event concerns one specific associated person of an entity. Keys that do not apply are `null` rather than absent.
## Event types
| Event | Fires when |
| - | - |
| `customer.created` | An individual/entity account is created (KYC/KYB submission started). |
| `customer.under_review` | KYC/KYB is in progress. |
| `customer.awaiting_associated_person_information` | An entity customer is waiting for a beneficiary's or representative's information. |
| `customer.resubmission_requested` | Additional information or documents are required from the customer. |
| `customer.active` | Verification is approved; the account can transact. |
| `customer.rejected` | Verification was rejected. |
| `customer.deactivated` | A previously active customer was deactivated and can no longer transact. |
For the full meaning of each state, see [Verification statuses](/api-reference/verification-statuses).
## The `data` object
Every `customer.*` event carries the same three keys under `data`. All three are always present - they are set to `null` when they do not apply, so a strict schema validator never sees keys appear and disappear between event types.
| Key | Set when | Contents |
| - | - | - |
| `customer` | Always | The KYC/KYB subject: `accountId`, `customerType` (`individual` or `entity`), `userId` **or** `entityId`, `name`, `email`, `verificationStatus`, `createdAt`. |
| `beneficiary` | UBO-scoped events only | The associated person the event is about: `beneficiaryId`, `firstName`, `lastName`, `verificationStatus`. `null` otherwise. |
| `reasonCodes` | `resubmission_requested` and `rejected` | Array of reason codes explaining the decision. `null` otherwise. |
`name` is `"FirstName LastName"` for an individual and the company name for an entity. `email` is the user's email for an individual, or the company email declared at KYB for an entity - `null` when the entity declared none.
## Example payload by event type
### `customer.created`
```json theme={null}
{
"id": "b278e1f9-01fb-fd5a-b415-ceadcea59371",
"type": "customer.created",
"occurredAt": "2026-06-30T12:26:56.332244878Z",
"livemode": true,
"payloadVersion": 1,
"related": {
"accountId": "34158778-3bb4-d6b6-3b18-60413b83d7cb",
"userId": "bd4ca296-067f-5847-5854-d054d84d4a62",
"entityId": null,
"beneficiaryId": null,
"transactionId": null
},
"data": {
"customer": {
"accountId": "34158778-3bb4-d6b6-3b18-60413b83d7cb",
"customerType": "individual",
"userId": "bd4ca296-067f-5847-5854-d054d84d4a62",
"entityId": null,
"name": "Ada Lovelace",
"email": "ada@example.com",
"verificationStatus": "under_review",
"createdAt": "2026-06-30T12:26:56.101877000Z"
},
"beneficiary": null,
"reasonCodes": null
}
}
```
### `customer.under_review`
```json theme={null}
{
"id": "84160c37-bc5e-6a66-8e96-7743ffb7d933",
"type": "customer.under_review",
"occurredAt": "2026-06-30T13:18:29.838139831Z",
"livemode": true,
"payloadVersion": 1,
"related": {
"accountId": "e47d2ac4-bedc-6cee-a622-bfc39c00c1b9",
"userId": "40c2d1d2-23a2-510e-aabf-b004995bd450",
"entityId": null,
"beneficiaryId": null,
"transactionId": null
},
"data": {
"customer": {
"accountId": "e47d2ac4-bedc-6cee-a622-bfc39c00c1b9",
"customerType": "individual",
"userId": "40c2d1d2-23a2-510e-aabf-b004995bd450",
"entityId": null,
"name": "Ada Lovelace",
"email": "ada@example.com",
"verificationStatus": "under_review",
"createdAt": "2026-06-30T12:26:56.101877000Z"
},
"beneficiary": null,
"reasonCodes": null
}
}
```
### `customer.awaiting_associated_person_information`
An entity event scoped to one associated person: `related.beneficiaryId` is set, and `data.beneficiary` carries that person's own verification status.
```json theme={null}
{
"id": "923db2c1-a246-7fc2-ac1e-80a41f7ae2e3",
"type": "customer.awaiting_associated_person_information",
"occurredAt": "2026-06-30T13:54:33.639484252Z",
"livemode": true,
"payloadVersion": 1,
"related": {
"accountId": "08873ea7-1fdb-9aa1-1103-d8d8250c48d6",
"userId": null,
"entityId": "48de5c25-114b-3ca8-9c3e-ce5a8882f35f",
"beneficiaryId": "6f2a11d0-3c8e-4a52-9f77-1b0d5c8e4a31",
"transactionId": null
},
"data": {
"customer": {
"accountId": "08873ea7-1fdb-9aa1-1103-d8d8250c48d6",
"customerType": "entity",
"userId": null,
"entityId": "48de5c25-114b-3ca8-9c3e-ce5a8882f35f",
"name": "Analytical Engines Ltd",
"email": "compliance@example.com",
"verificationStatus": "awaiting_associated_person_information",
"createdAt": "2026-06-29T09:12:04.771003000Z"
},
"beneficiary": {
"beneficiaryId": "6f2a11d0-3c8e-4a52-9f77-1b0d5c8e4a31",
"firstName": "Charles",
"lastName": "Babbage",
"verificationStatus": "awaiting_information"
},
"reasonCodes": null
}
}
```
### `customer.resubmission_requested`
```json theme={null}
{
"id": "c9e18f88-5b82-c884-09c3-f024717029c0",
"type": "customer.resubmission_requested",
"occurredAt": "2026-06-30T13:02:36.065663638Z",
"livemode": true,
"payloadVersion": 1,
"related": {
"accountId": "212f38c2-51ec-941d-2fec-fd05c463cc3d",
"userId": "8b4cc5ab-e3b7-40bd-f4e8-378bcd1e39a7",
"entityId": null,
"beneficiaryId": null,
"transactionId": null
},
"data": {
"customer": {
"accountId": "212f38c2-51ec-941d-2fec-fd05c463cc3d",
"customerType": "individual",
"userId": "8b4cc5ab-e3b7-40bd-f4e8-378bcd1e39a7",
"entityId": null,
"name": "Ada Lovelace",
"email": "ada@example.com",
"verificationStatus": "resubmission_requested",
"createdAt": "2026-06-30T12:26:56.101877000Z"
},
"beneficiary": null,
"reasonCodes": [
"BAD_PROOF_OF_ADDRESS",
"PROBLEMATIC_APPLICANT_DATA",
"WRONG_ADDRESS"
]
}
}
```
### `customer.active`
```json theme={null}
{
"id": "adc728e7-fdb9-3ce1-a1bf-36ff45178322",
"type": "customer.active",
"occurredAt": "2026-06-30T13:51:58.453021093Z",
"livemode": true,
"payloadVersion": 1,
"related": {
"accountId": "2e598259-4992-a7a4-a930-33bf1994f4d8",
"userId": "944a0d48-dc02-a4b9-474c-259e05a64ba5",
"entityId": null,
"beneficiaryId": null,
"transactionId": null
},
"data": {
"customer": {
"accountId": "2e598259-4992-a7a4-a930-33bf1994f4d8",
"customerType": "individual",
"userId": "944a0d48-dc02-a4b9-474c-259e05a64ba5",
"entityId": null,
"name": "Ada Lovelace",
"email": "ada@example.com",
"verificationStatus": "active",
"createdAt": "2026-06-30T12:26:56.101877000Z"
},
"beneficiary": null,
"reasonCodes": null
}
}
```
### `customer.rejected`
```json theme={null}
{
"id": "78e51990-f219-558f-d301-054b1f3dd9a8",
"type": "customer.rejected",
"occurredAt": "2026-06-30T12:50:11.512839296Z",
"livemode": true,
"payloadVersion": 1,
"related": {
"accountId": "a6fbfc44-3071-604f-1e3a-57e63b67ecac",
"userId": "b43c6126-b6a5-ffaf-7bea-7a1ef44a6048",
"entityId": null,
"beneficiaryId": null,
"transactionId": null
},
"data": {
"customer": {
"accountId": "a6fbfc44-3071-604f-1e3a-57e63b67ecac",
"customerType": "individual",
"userId": "b43c6126-b6a5-ffaf-7bea-7a1ef44a6048",
"entityId": null,
"name": "Ada Lovelace",
"email": "ada@example.com",
"verificationStatus": "rejected",
"createdAt": "2026-06-30T12:26:56.101877000Z"
},
"beneficiary": null,
"reasonCodes": [
"INCORRECT_SOCIAL_NUMBER",
"COMPROMISED_PERSONS"
]
}
}
```
### `customer.deactivated`
```json theme={null}
{
"id": "1d0c4b7a-9e33-4f18-b0a5-2c7e19f4d8b6",
"type": "customer.deactivated",
"occurredAt": "2026-07-02T08:14:22.004311000Z",
"livemode": true,
"payloadVersion": 1,
"related": {
"accountId": "2e598259-4992-a7a4-a930-33bf1994f4d8",
"userId": "944a0d48-dc02-a4b9-474c-259e05a64ba5",
"entityId": null,
"beneficiaryId": null,
"transactionId": null
},
"data": {
"customer": {
"accountId": "2e598259-4992-a7a4-a930-33bf1994f4d8",
"customerType": "individual",
"userId": "944a0d48-dc02-a4b9-474c-259e05a64ba5",
"entityId": null,
"name": "Ada Lovelace",
"email": "ada@example.com",
"verificationStatus": "inactive",
"createdAt": "2026-06-30T12:26:56.101877000Z"
},
"beneficiary": null,
"reasonCodes": null
}
}
```
# Overview
Source: https://docs.byzantine.fi/api-reference/webhooks/overview
Receive signed customer and transaction lifecycle events from Byzantine.
Webhooks let your integration receive asynchronous updates when customer status or transaction status changes. Create one or more webhook subscriptions, choose the event types you want, and Byzantine will deliver signed JSON payloads to your HTTPS endpoint.
Webhook management endpoints use the same API authentication as the rest of the Integrator API.
## When to use webhooks
Use webhooks when your system needs to react to events without polling Byzantine repeatedly:
* update a customer onboarding status when KYC changes;
* mark a transaction as funded, processing, completed, reverted, or failed;
* trigger internal support or compliance workflows when more information is required.
For transaction polling and status meanings, see [Tracking Transactions](/api-reference/tracking-transactions).
## Create a subscription
Create a subscription with a public HTTPS URL and the event types you want to receive.
```bash theme={null}
curl --request POST \
--url https://api.byzantine.fi/v1/webhooks/subscriptions \
--header 'Content-Type: application/json' \
--header 'X-Pubkey: ' \
--header 'X-Timestamp: 1760375826' \
--header 'X-Signature: ' \
--data '{
"url": "https://example.com/byzantine/webhooks",
"enabled": true,
"eventTypes": [
"customer.active",
"transaction.completed",
"transaction.reverted"
],
"httpHeaders": {
"authorization": "Bearer example-token",
"x-tenant-id": "tenant_123"
}
}'
```
If `eventTypes` is omitted or empty, Byzantine subscribes the endpoint to all subscribable event types.
The create response includes the subscription and its active signing public key:
```json theme={null}
{
"subscription": {
"id": "0f92bb08-0d38-4c4b-96bb-6b5df8434f8d",
"integratorId": "8f7064b4-9587-496f-a5cc-00fbf5af01d5",
"url": "https://example.com/byzantine/webhooks",
"enabled": true,
"eventTypes": ["customer.active", "transaction.completed", "transaction.reverted"],
"activeSigningKeyId": "4af5f5ff-bf64-4ac6-a24b-9a4d7c41c1d6",
"httpHeaders": {
"authorization": "Bearer example-token",
"x-tenant-id": "tenant_123"
},
"endpointSafetyMetadata": {
"normalizedUrl": "https://example.com/byzantine/webhooks",
"host": "example.com",
"port": 443,
"resolvedIps": ["93.184.216.34"],
"validatedAt": "2026-06-03T15:00:00Z"
},
"createdAt": "2026-06-03T15:00:00Z",
"updatedAt": "2026-06-03T15:00:00Z"
},
"publicKey": "0x02...",
"algorithm": "ECDSA_P256_SHA256"
}
```
Store `publicKey` by subscription. Use it to verify delivery signatures.
## Custom delivery headers
Use `httpHeaders` when your receiver requires an API token, tenant identifier, or another custom header. Byzantine encrypts these values at rest and adds them to every delivery for that subscription.
* A subscription can have up to 16 custom headers, with a combined name-and-value size of 8 KiB.
* Header names are case-insensitive and returned in lowercase.
* `Host`, `Content-Type`, `Content-Length`, `Content-Encoding`, `Connection`, `Transfer-Encoding`, `TE`, `Trailer`, `Upgrade`, `Keep-Alive`, `Expect`, and names beginning with `Proxy-` or `X-Byzantine-` are reserved.
* Creating or updating a subscription with an invalid, duplicate, reserved, or oversized header returns `400`.
Subscription management responses include the current `httpHeaders` values. Treat these responses and their logs as sensitive when a header contains a credential.
To update headers, send a per-header patch to `PATCH /v1/webhooks/subscriptions/{subscription_id}`. A string sets or replaces a header, while `null` deletes it. Headers not included in the patch remain unchanged.
```json theme={null}
{
"httpHeaders": {
"authorization": "Bearer replacement-token",
"x-tenant-id": null
}
}
```
Omitting `httpHeaders`, passing `null`, or passing an empty object leaves all existing headers unchanged.
## Callback URL requirements
Webhook URLs must be safe for server-to-server delivery:
* HTTPS only;
* DNS hostname required;
* no IP literals;
* no localhost or internal hostnames;
* no username/password in the URL;
* no URL fragments;
* DNS must resolve to public/global IP addresses.
Delivery requests use a 5 second connection timeout and a 10 second total timeout. Response bodies are summarized and capped at 64 KiB.
## Event types
Byzantine emits two families of lifecycle events, documented on their own pages:
* [Customers](/api-reference/webhooks/customers) - KYC/KYB onboarding status changes;
* [Transactions](/api-reference/webhooks/transactions) - deposit and withdrawal status changes.
`webhook.test` is used for test deliveries and is not directly subscribable.
## Delivery payload
Each delivery body is JSON and shares a common envelope ([`WebhookLifecycleEventPayload`](#endpoint-reference)). The event name is in `type`, the ids the event concerns are grouped under `related`, and the shape of `data` depends on the event type.
```json theme={null}
{
"id": "00000000-0000-4000-8000-000000000001",
"type": "transaction.completed",
"occurredAt": "2026-06-03T15:00:00Z",
"livemode": true,
"payloadVersion": 1,
"related": {
"accountId": "b3f2d2dc-6abc-40fa-b2d2-d6d76b839c09",
"userId": null,
"entityId": null,
"beneficiaryId": null,
"transactionId": "53f2d2dc-6abc-40fa-b2d2-d6d76b839c09"
},
"data": {
"status": "completed"
}
}
```
`related` always carries all five keys. Only the ones relevant to the event are set; the rest are `null` rather than absent, so you can read them without existence checks.
The same envelope is what [`GET /v1/query/events`](/api-reference/events/lists-persisted-lifecycle-events-owned-by-the-authenticated-integrator-newest-first) returns for each stored event, with a `createdAt` added. A receiver written against webhook deliveries can therefore parse replayed events unchanged.
Treat webhook delivery as at-least-once. Your receiver should be idempotent. Use the event id or delivery id to deduplicate work.
## Delivery signatures
Byzantine signs every delivery using ECDSA P-256 with SHA-256.
Each request includes these headers:
| Header | Description |
| - | - |
| `X-Byzantine-Webhook-Delivery-Id` | Unique delivery attempt target id. Use for idempotency and debugging. |
| `X-Byzantine-Webhook-Event-Id` | Event id for the underlying lifecycle event. |
| `X-Byzantine-Webhook-Timestamp` | Unix timestamp in seconds. |
| `X-Byzantine-Webhook-Key-Id` | Signing key id associated with the subscription. |
| `X-Byzantine-Webhook-Algorithm` | Always `ECDSA_P256_SHA256`. |
| `X-Byzantine-Webhook-Signature` | Hex-encoded ECDSA signature. |
The signing input is the exact raw request body prefixed by dot-separated delivery metadata:
```text theme={null}
{deliveryId}.{eventId}.{timestamp}.{rawBody}
```
Important verification rules:
* verify the exact raw request bytes; do not parse and re-serialize JSON before verification;
* reject timestamps outside your replay tolerance window; Byzantine's receiver helper uses 300 seconds;
* verify `X-Byzantine-Webhook-Algorithm` is `ECDSA_P256_SHA256`;
* decode `publicKey` as a hex-encoded compressed SEC1 P-256 public key;
* decode `X-Byzantine-Webhook-Signature` as hex. Byzantine emits a 64-byte ECDSA signature in `r || s` form.
## Retries
A delivery succeeds when your endpoint returns any `2xx` HTTP status. Non-2xx responses and transport failures are retried automatically.
Automatic retry schedule:
| Attempt after first failure | Delay |
| - | - |
| 1 | 30 seconds |
| 2 | 60 seconds |
| 3 | 5 minutes |
| 4 | 30 minutes |
| 5 | 2 hours |
| 6 | 6 hours |
You can list delivery attempts and manually retry a delivery from the webhook delivery endpoints.
## Test deliveries
Use the test endpoint to send a `webhook.test` event to a subscription before relying on production lifecycle events.
```bash theme={null}
curl --request POST \
--url https://api.byzantine.fi/v1/webhooks/subscriptions/{subscriptionId}/test \
--header 'X-Pubkey: ' \
--header 'X-Timestamp: 1760375826' \
--header 'X-Signature: '
```
Use the delivery list endpoint to inspect attempts, status codes, response summaries, and next retry time.
## Endpoint reference
See **API endpoints > Webhooks** for request and response schemas for:
* [`POST /v1/webhooks/subscriptions`](/api-reference/webhooks/create-a-webhook-subscription)
* [`GET /v1/webhooks/subscriptions`](/api-reference/webhooks/list-webhook-subscriptions)
* [`PATCH /v1/webhooks/subscriptions/{subscription_id}`](/api-reference/webhooks/update-a-webhook-subscription)
* [`DELETE /v1/webhooks/subscriptions/{subscription_id}`](/api-reference/webhooks/delete-a-webhook-subscription)
* [`POST /v1/webhooks/subscriptions/{subscription_id}/test`](/api-reference/webhooks/send-a-signed-test-webhook)
* [`GET /v1/webhooks/deliveries`](/api-reference/webhooks/list-webhook-delivery-history)
* [`POST /v1/webhooks/deliveries/{delivery_id}/retry`](/api-reference/webhooks/retry-a-webhook-delivery)
# Transaction webhooks (available soon)
Source: https://docs.byzantine.fi/api-reference/webhooks/transactions
Deposit and withdrawal lifecycle webhook events.
Transaction events track the lifecycle of a deposit or withdrawal. Subscribe to them to reconcile funding and settlement in your own system.
## Populated fields
Each transaction event sets `transactionId` and `accountId` in the envelope's `related` block. The other `related` keys are `null`.
## Event types
| Event | Fires when |
| - | - |
| `transaction.withdrawal_initiated` | A withdrawal has been signed and placed in the vault's withdrawal queue. |
| `transaction.waiting_for_funds` | Byzantine is waiting for incoming funds. |
| `transaction.payment_in_review` | The payment is under review. |
| `transaction.funds_in_transfer` | Funds are being transferred. |
| `transaction.funds_received` | Funds have been received. |
| `transaction.processing` | The transaction is being processed on-chain. |
| `transaction.completed` | The transaction completed successfully. |
| `transaction.simulation_failed` | The transaction simulation failed. |
| `transaction.reverted` | The transaction was reverted. |
For status meanings and polling as an alternative to webhooks, see [Tracking Transactions](/api-reference/tracking-transactions).
## Example payload
```json theme={null}
{
"id": "00000000-0000-4000-8000-000000000001",
"type": "transaction.completed",
"occurredAt": "2026-06-03T15:00:00Z",
"livemode": true,
"payloadVersion": 1,
"related": {
"accountId": "b3f2d2dc-6abc-40fa-b2d2-d6d76b839c09",
"userId": null,
"entityId": null,
"beneficiaryId": null,
"transactionId": "53f2d2dc-6abc-40fa-b2d2-d6d76b839c09"
},
"data": {
"status": "completed"
}
}
```
# High level overview
Source: https://docs.byzantine.fi/api-reference/withdrawal-overview
High level overview of the withdrawal process.
Similar to deposits, withdrawals are also slightly different depending on the authentication method used and the currency the user wants to receive.
# Technical implementation
Source: https://docs.byzantine.fi/api-reference/withdrawal-technical
How to make a withdrawal from a Byzantine vault.
## Withdrawing from a Byzantine vault
Withdrawals are available at any time, allowing users to access their funds whenever needed.
The integrator will have to call different API endpoints based on the authentication method used.
The withdrawal process follows the same two-step transaction pattern as deposits:
1. [Get withdraw payload](/api-reference/transactions/get-withdraw-payload), which requests the transaction body to sign.
2. [Sign a payload (passkey)](/api-reference/transactions/sign-payload), which submits the signed transaction.
## Queued withdrawals
Not every vault can serve a withdrawal on the spot. Asynchronous vaults place the withdrawal in a queue instead of broadcasting it straight away.
For those, [Sign a payload](/api-reference/transactions/sign-payload) answers `202 Accepted` rather than `200 OK`, and the response carries a `withdrawalRequest` object:
```json theme={null}
{
"transactionId": "53f2d2dc-6abc-40fa-b2d2-d6d76b839c09",
"status": "withdrawal_initiated",
"withdrawalRequest": {
"requestId": "9c1b7f0e-2f3a-4a6d-9f21-7c3a5b0d1e88",
"status": "pending"
}
}
```
Treat `202` as a success. The withdrawal has been accepted and signed; it simply has not left the vault yet. A `transaction.withdrawal_initiated` [webhook](/api-reference/webhooks/transactions) fires at the same time.
The queue entry moves through three states, reported by `withdrawalRequest.status`:
| `withdrawalRequest.status` | Transaction `status` | Meaning |
| - | - | - |
| `pending` | `withdrawal_initiated` | Queued, waiting for the vault to release the funds. |
| `settled` | continues its normal lifecycle | The vault released the funds and the withdrawal proceeds as usual. |
| `cancelled` | `cancelled` | The queued withdrawal was cancelled before it settled. |
While a withdrawal is queued, the amount still sits in the vault and is reported separately under `pending_withdrawals` on the account balance. See [Idle balance](/api-reference/account-balances-idle#pending-withdrawals).
## Cancelling a queued withdrawal
A withdrawal can be cancelled for as long as it is still `pending`. Cancellation is itself a signed action, so it follows the same two-step pattern as the withdrawal it cancels:
1. [Get cancellation payload for a withdrawal request](/api-reference/transactions/get-cancellation-payload-for-a-withdrawal-request) - pass the `chain_id` as a query parameter and the `transactionId` of the queued withdrawal in the body. It returns the body to sign.
2. [Sign a payload](/api-reference/transactions/sign-payload) - submit the signed body to execute the cancellation.
Once the cancellation is executed, the transaction status becomes `cancelled`, `withdrawalRequest.status` becomes `cancelled`, and the funds remain in the vault.
# Create & secure your account
Source: https://docs.byzantine.fi/create-your-account
## Step 1: Sign up
1. Go to [**app.byzantine.fi/signup**](https://app.byzantine.fi/signup)
2. Enter your email address (e.g., [**your-email@company.com**](mailto:your-email@company.com)).
3. Create a secure password.
4. Check the boxes to agree to:
* Byzantine's Terms of Use and Privacy Policy
* Bridge's Terms of Service and Privacy Policy (Stripe company, payment processor)
**Note:** You can add multiple users to the same account later. The person creating the account doesn't need to be the ultimate beneficial owner.
## Step 2: Verifying your email
After creating your account, you'll receive a verification email from [**info@byzantine.fi**](mailto:info@byzantine.fi).
1. Check your inbox (and spam folder).
2. Click **"Verify my email"**.
3. You'll be automatically redirected to the next step.
**Verification links expire within 24 hours.** If you miss the window, click "Resend" on the verification page.
## Step 3: Choosing your account type
### **Company vs Individual**
**Choose "Company" if:**
* Funds belong to a legal entity (SAS, SARL, holding company, family office structure).
* You're investing on behalf of a corporate entity.
* The bank account sending funds is in a company name.
**Choose "Individual" if:**
* You're investing personal funds.
* The bank account is in your personal name.
**For family offices:** Most family offices should select **Company**, even if the structure is a holding company with no commercial activity.
## Step 4: Setting up security
### Account security options
We **recommend "Create a new account"** (default option) for maximum security:
* **Create a new account:** Everything's handled for you, just sign up and start earning.
* **Use an existing account:** For advanced users only.
### Passkey authentication
After selecting "Create a secure account," you'll set up a **passkey**:
1. Your browser will prompt you to create a passkey.
2. This creates a unique cryptographic key stored securely on your device.
3. You'll use this to authorise important actions (deposits, withdrawals, inviting team members, etc.).
**Passkeys are more secure than passwords** - they can't be phished, guessed, or stolen in a data breach. They work with Face ID, Touch ID, or your device PIN. If you ever lose access to your passkey, Byzantine can help you reset it - see [Passkey reset](/passkey-reset). To learn more about how passkeys work, see [Understanding passkeys](/documentation/account-management/passkeys).
## Step 5 (optional): Two-factor authentication (2FA)
For an extra layer of security, you can enable two-factor authentication on your account.
1. On the dashboard, click your profile icon and select **Personal settings**.
2. Navigate to the **Security** section.
3. Activate **Two-factor authentication (2FA)**.
4. Scan the QR code displayed on screen with your mobile phone to set up your account's 2FA.
5. Enter the code shown in the app to confirm activation.
**Once 2FA is enabled**, you'll be asked for a code from your authenticator app each time you log in, adding an extra layer of protection to your account.
Two Factor Authentication can only be enabled for credential accounts at the moment. For social accounts, it is assumed that the provider already handles 2FA.
# Currency & yield
Source: https://docs.byzantine.fi/currency-and-yield
## What currencies can I use on the platform?
You may convert and deposit EUR and USD. All funds are converted to EURC or USDC (Circle's stablecoins) for yield generation.
## Is there any FX risk in Byzantine Prime EUR products?
No. We hedge 100% of your EUR exposure, so you're protected from EUR/USD fluctuations.
## When do I start earning returns?
Immediately upon deposit. There's no waiting period.
## What's the difference between insured and uninsured products?
* **ByzPrime EUR (insured) / ByzPrime USD (insured):** Lower APY, but your principal is protected by institutional insurance against technical failure
* **ByzPrime EUR / ByzPrime USD:** Higher APY, secured by overcollateralised lending (no insurance policy)
Both products offer instant liquidity.
# Deposits & withdrawals
Source: https://docs.byzantine.fi/deposits-and-withdrawals
## How does the deposit process work?
1. Our payment processing partner Bridge creates a *unique IBAN* for your account
2. You transfer EUR/USD from your bank account
3. Bridge converts these funds to EURC/USDC (stablecoin)
4. Assets deploy automatically into your selected product
5. You start earning immediately
## What happens to my EUR deposits? Is it converted USD?
No, your EUR are converted to EURC (a stablecoin pegged to EUR). When you withdraw, you receive EUR at the original exchange rate.
## How long do deposits take?
4-5 minutes on average for the bank transfer to arrive, then immediate deployment.
## Can I restrict who can make withdrawals?
Yes. Only **Admin** users can execute withdrawals. **View-only** users can see the account but cannot move funds.
## Can someone on my team change the withdrawal bank account to steal funds?
No. Only admin users can change bank account details or initiate withdrawals.
# Deposits and withdrawals
Source: https://docs.byzantine.fi/documentation/about-byzantine/deposits-and-withdrawals
# Move money in. Move money out.
Add EUR or USD by bank transfer. A regulated payment partner handles any required conversion before funds are allocated through the selected strategy.
## Deposits
1. Open the deposit instructions in your dashboard
2. Send funds from a verified bank
3. Track the transfer through to allocation
## Withdrawals
Request a withdrawal at any time. Settlement timing depends on the currency, payment rail, bank, market liquidity and partner processing.
Only Admin users can submit withdrawals. View-only users can monitor balances and activity.
# How it works
Source: https://docs.byzantine.fi/documentation/about-byzantine/how-it-works
A step-by-step look at how your funds flow through Byzantine Prime.
# Four steps. Full visibility.
## 1. Add EUR or USD
Send funds by bank transfer. Eligible self-managed setups can also use a supported direct transfer.
## 2. Move funds into the strategy
Regulated partners handle any required conversion. Funds then move to the venues approved for the selected strategy.
## 3. Put the strategy to work
Keyrock Curation Services sets and monitors allocations within predefined parameters. Byzantine provides the interface and technical infrastructure.
## 4. Track and withdraw
Follow balances, returns and activity from your dashboard. Request a withdrawal at any time, subject to liquidity and partner processing.
## Who does what
* **Byzantine:** Interface and technical infrastructure
* **Keyrock Curation Services:** Strategy curation and monitoring
* **Third-party providers:** Regulated services such as conversion and custody
* **You:** Authorise activity and submit withdrawal instructions
Byzantine does not hold client assets or carry out regulated activities.
# Byzantine Prime - key details
Source: https://docs.byzantine.fi/documentation/about-byzantine/product-details
# Everything important, at a glance
| | Byzantine Prime |
| - | - |
| **Supported currencies** | EUR and USD |
| **Returns** | Variable and generated by third-party lending activity |
| **Access** | Withdrawal requests at any time, subject to liquidity and partner processing |
| **Strategy** | Curated and monitored by Keyrock Curation Services |
| **Custody** | Supported institutional custody or self-custody |
| **Reporting** | Balance, performance and activity in one dashboard |
| **Fees** | 10% of returns, with no management, entry or exit fee |
| **Optional protection** | Available for specified technical risks, subject to terms and exclusions |
Returns come from borrower interest. Byzantine provides the technical infrastructure and does not hold client assets.
Returns are variable and not guaranteed. Capital is at risk.
# Why returns can be higher
Source: https://docs.byzantine.fi/documentation/about-byzantine/the-digital-asset-opportunity
# More demand. Less available liquidity.
Specialist borrowers pay for access to short-term EUR- and USD-linked liquidity. When demand rises relative to available liquidity, rates can rise too.
Byzantine provides technical access to this activity. Keyrock Curation Services selects and monitors supported venues. Returns come from borrower interest and vary with market demand.
## Why it matters
* Rates are driven by real borrower demand
* Allocations follow predefined parameters
* Strategy monitoring is handled by Keyrock Curation Services
* Performance and activity stay visible in your dashboard
Returns are variable and not guaranteed. Capital is at risk.
# What is Byzantine Prime?
Source: https://docs.byzantine.fi/documentation/about-byzantine/what-is-byzantine
# Make more of your cash
Byzantine Prime is technical infrastructure that helps companies and individuals access return opportunities on EUR and USD balances - with clear reporting, flexible access and regulated partners where required.
## Built for modern treasury
* Put EUR or USD balances to work
* Track performance and activity in one place
* Request withdrawals at any time
* Choose supported institutional custody or self-custody
Strategy curation is provided by Keyrock Curation Services. Byzantine never holds client assets.
Financial advisers can share factual information about Byzantine and introduce eligible clients.
Byzantine provides technical infrastructure. Returns are variable and not guaranteed.
# Creating your account
Source: https://docs.byzantine.fi/documentation/account-management/account-creation
### 1. Account Creation
Create an account on the platform using your email or Google account. Verify your email through the confirmation email we send you.
During account creation, you will be invited to accept the Byzantine Terms and Conditions and the Bridge Terms of Service, our on-ramp and off-ramp partner. This mandatory step required by Bridge enables you:
* to deposit USD or EUR directly without manually converting them to stablecoins.
* to receive funds in fiat directly in your bank account.
### 2. Secure your account
Once your email is verified, you will be redirected to a page where you can select your preferred way to secure your account.
* **Create a secure account**: You can secure your account by creating a passkey. This creates a new, self-custodial account that is fully encrypted and accessible only via a passkey linked to your device. This is the recommended option.
* **Use an existing wallet**: You can connect your existing wallet, link it to your account and sign the message.
### 3. Identity Verification
To verify your identity, follow our [KYC/KYB process](/documentation/account-management/kyc-and-kyb) and submit the required documents for an individual or a legal entity.
You will need to scan your ID document and complete a biometric verification step. We work with Sumsub, an identity verification platform that supports KYC and KYB.
#### Individual verification
As an individual, you will have to provide the following documents to complete the KYC process:
* Passport or National ID cards
* Address proof may be requested depending on your situation
#### Legal entity verification
As a legal entity, prepare documents covering each required KYB category:
* **Company details**, such as a certificate of incorporation, articles of association, or an official registry extract.
* **Ownership structure**, such as a shareholder registry, statement of information, trust agreement, or partnership agreement.
* **Source of funds**, such as audited financial statements, bank statements, tax returns, or supporting invoices.
* **Proof of the organisation's physical address**, such as a utility bill, lease agreement, bank statement, or government correspondence in the entity's name.
* **A power of attorney signed by the company’s legal representative**, when the person completing the KYB process is not an official representative of the entity or does not own more than 25% of the company’s shares or voting rights.
### 4. Approval
Complete the verification process, and your submission will be reviewed. Upon approval, you will gain access to the Byzantine App.
# KYC and KYB
Source: https://docs.byzantine.fi/documentation/account-management/kyc-and-kyb
At Byzantine Finance, compliance and security are our priority. To meet global Anti-Money Laundering (AML) standards and ensure safe financial operations, we follow strict Know Your Customer (KYC) and Know Your Business (KYB) procedures.
The KYC and KYB processes are regulatory requirements designed to protect the financial system from risks like money laundering. They require financial institutions to establish who their customers are and to understand the type of financial activity they are engaged in. These processes are typically carried out when onboarding a new user and continues throughout the business relationship.
### Know Your Customer (KYC)
KYC focuses on individuals. It is the process of verifying a customer’s identity and monitoring their financial activity to ensure funds come from legitimate sources.
Key elements of KYC include:
* Collecting and verifying personal identity documents (passport, ID card, proof of address).
* Screening customers against sanctions lists and Politically Exposed Persons (PEP) lists.
* Monitoring financial activity to detect unusual or suspicious transactions.
* Assessing risk before lending or engaging in financial activity.
### Know Your Business (KYB)
KYB applies when dealing with companies or institutions rather than individuals. It plays a similar role to KYC, but focuses on verifying that a business is legitimate and not being used as a front for illicit activity.
Key elements of KYB include:
* Verifying company registration, incorporation documents, and business address.
* Identifying ultimate beneficial owners (UBOs) and major shareholders.
* Screening both the company and its owners against sanctions lists, PEP lists, and adverse media coverage.
* Monitoring transactions on an ongoing basis to flag suspicious activity.
# Understanding passkeys
Source: https://docs.byzantine.fi/documentation/account-management/passkeys
What passkeys are, why Byzantine uses them, and how they keep your account secure.
Every action that moves money on Byzantine - deposits, withdrawals, inviting team members - requires a passkey to authorise it. This page explains what passkeys are and how they compare to traditional passwords.
## What is a passkey?
A passkey is a modern way to prove your identity without a password. Instead of typing something you remember, you verify using something you already have: your device.
When you create a passkey, your device (phone, laptop, tablet) generates a unique cryptographic key pair - a private key stored securely on your device, and a public key registered with Byzantine. When you need to authorise an action, your device asks you to confirm with your fingerprint, face scan, or screen PIN. If confirmed, the device uses the private key to produce a cryptographic signature that proves the action is genuinely authorised by you.
The private key never leaves your device. Byzantine never sees it.
## Why does Byzantine use passkeys for transactions?
Every deposit and withdrawal on Byzantine Prime is a blockchain transaction that must be cryptographically signed. This is how the blockchain knows the instruction came from you - not from Byzantine, not from a third party, not from anyone who might have access to your account.
Passkeys handle this signing automatically and invisibly. When you click "Withdraw" and confirm with your fingerprint, your device is producing a cryptographic signature that authorises that specific transaction. This is what it means for Byzantine to be non-custodial: your funds can only move when you sign.
## How do I use them day to day?
In practice, passkeys feel almost invisible. When you need to authorise an action:
1. Click the button (e.g. "Deposit" or "Withdraw")
2. Your browser or device shows a prompt asking you to confirm with Face ID, Touch ID, or your device PIN
3. Confirm - the action is authorised and proceeds immediately
There is nothing to type, no code to copy from an app, and no second device required for most actions.
## Passkeys vs passwords
| | **Passkeys** | **Passwords** |
| - | - | - |
| Can be phished | ❌ No - bound to the specific website | ✅ Yes - can be tricked onto fake sites |
| Can be stolen in a data breach | ❌ No - never stored on a server | ✅ Yes - if the site stores them insecurely |
| Can be guessed or brute-forced | ❌ No - cryptographically random | ✅ Yes - especially weak passwords |
| Requires remembering anything | ❌ No | ✅ Yes |
| Works with biometrics | ✅ Yes | ❌ No |
The core advantage is that a passkey is bound to both your device and the specific website. Even if an attacker creates a convincing fake version of Byzantine's login page, your passkey will not work there - it is cryptographically tied to the real domain. This makes phishing attacks impossible for passkey-protected actions.
## What if I lose access to my device?
If you use a password manager or Apple's iCloud Keychain, your passkey may already be available on your other devices. Check there first.
If you no longer have access to your passkey, Byzantine can help you reset it. The process takes about five minutes on a short call with our team. For a step-by-step guide, see [Passkey reset](/passkey-reset).
## Passkeys and team accounts
When you invite a team member to your account, they go through their own passkey setup on their device. This means each user's authorisation is independent: an admin cannot approve transactions on behalf of another admin. Every action is tied to the specific person performing it.
For more on managing team members and roles, see [Users & roles](/users-and-roles).
# Insurance
Source: https://docs.byzantine.fi/documentation/asset-protection/insurance
How Byzantine Prime's optional insurance coverage works and what it protects against.
Byzantine Prime offers optional insurance coverage on deposited capital. This is an additional layer of protection on top of the structural safeguards already built into the protocol - overcollateralisation, smart contract audits, and real-time monitoring.
Insurance is available on the **insured product variants** (marked with ⚡ on the dashboard). These products carry a slightly lower Annual Percentage Yield (APY) than their uninsured equivalents, reflecting the cost of the insurance premium.
## What does the insurance cover?
The insurance policy covers losses arising from technical and operational failures, including:
* Smart contract exploits or vulnerabilities - bugs or coding errors in the protocol's code that cause a loss of funds
* Hacks, cyber-attacks, or malicious external actions against the protocol
* Internal or external fraud
* IT fraud or fund-transfer related fraud
This is the primary residual risk in an overcollateralised lending product: not that borrowers default (that is handled by the collateral and liquidation mechanism), but that the code governing the protocol itself contains an unforeseen vulnerability, or that the infrastructure around it is compromised.
## Who provides the insurance?
Byzantine Prime's insurance is provided by one of the world's largest insurance and risk management companies. Traditional insurers apply rigorous underwriting before extending coverage to digital asset protocols - verifying audit depth, operating history, and risk controls before agreeing to terms.
## What is not covered?
The insurance does not cover:
* Market-wide liquidity crises - systemic events affecting all markets simultaneously
* Custody risk from your own account or keys being compromised
* Market risk or general price movements of any asset
## How do I access insured products?
Insured products are available directly from your dashboard. When selecting a product to deposit into, look for the indicator next to the product name. Deposits into these products are automatically covered by the insurance policy - there is no separate sign-up or claims registration required on your part.
The premium is deducted as part of the product's fee structure and is already reflected in the displayed APY.
## Insured vs uninsured products
Both product types use identical underlying lending strategies and are secured by the same overcollateralisation mechanism. The only difference is the insurance layer.
| | **Insured** | **Uninsured** |
| - | - | - |
| APY | Slightly lower | Slightly higher |
| Overcollateralisation | ✅ | ✅ |
| Smart contract audits | ✅ | ✅ |
| Real-time monitoring | ✅ | ✅ |
| Insurance policy | ✅ | ❌ |
The yield difference between insured and uninsured variants reflects the cost of the premium. Which to choose depends on whether your compliance or risk-management framework requires a formal insurance policy - the underlying lending strategy is identical in both cases.
# Regulatory framework
Source: https://docs.byzantine.fi/documentation/asset-protection/regulatory-framework
Byzantine Prime is fully MiCA-compliant.
## Structure and legal nature
Byzantine Finance SAS acts solely as a technical service provider, offering the software and interfaces enabling users to access regulated counterparties and on-chain strategies. Byzantine does not hold, control, or intermediate user assets, nor does it execute transactions on behalf of users.
Byzantine Prime operates through a decentralised smart contract vault architecture. The product is a non-custodial, technology-based infrastructure, not a collective investment scheme or managed fund.
## Partner oversight and licensing
The infrastructure integrates several regulated entities, each operating under its own legal and regulatory framework:
* **Keyrock Curation Services**, a registered Digital Asset Service Provider (DASP), assesses the smart contract vault risk and sets the deployment strategy.
* **On-/off-ramp partners** are licensed financial institutions that operate as the fiat on-/off-ramp under their own regulatory authorisation.
* **Partner custodians** provide secure infrastructure layers to safeguard digital asset transactions and access management.
Each partner operates under independent regulatory supervision and maintains its own licences, compliance, and risk management policies.
## User asset control and safeguards
Users retain full and continuous control over their funds through self-custodial accounts. At no point can Byzantine or any third party access, move, or otherwise control user assets without explicit authorisation through the user’s own account signature.
All transactions are executed via audited smart contracts, designed for transparency, immutability, and automatic enforcement of deployment strategies.
## Transparency and legal documentation
The operational structure, including partner roles, risk responsibilities, and technical safeguards, is described in our [Terms & Conditions](https://www.byzantine.fi/terms-and-conditions).
# Risk framework
Source: https://docs.byzantine.fi/documentation/asset-protection/risk-framework
Every material risk in Byzantine Prime is mapped to a measurable control.
Risk in Byzantine Prime is not abstract. Every material risk is mapped to a measurable control. Smart-contract and market risk cannot be eliminated entirely, but they can be quantified, insured, and continuously monitored.
**Definition:** A technical vulnerability in the smart contract code that could be exploited.
**Mitigation:** The vault has undergone seven independent audits by industry-leading security firms:
* [Zellic](https://github.com/Byzantine-Finance/debt-fund-vault-v2/blob/main/audits/2025-07-15-zellic.pdf)
* Spearbit × 2 ([report 1](https://github.com/Byzantine-Finance/credit-vault-v2/blob/main/audits/2025-05-19-spearbit.pdf), [report 2](https://github.com/Byzantine-Finance/credit-vault-v2/blob/main/audits/2025-08-11-spearbit.pdf))
* [Blackthorn](https://github.com/Byzantine-Finance/debt-fund-vault-v2/blob/main/audits/2025-09-06-blackthorn.pdf)
* [ChainSecurity](https://github.com/Byzantine-Finance/debt-fund-vault-v2/blob/main/audits/2025-09-06-chainsecurity.pdf)
* Cantina competition (report to be released)
All custom adapters have been audited separately by Spearbit. Byzantine also integrates with [Hypernative](https://www.hypernative.io/), a real-time monitoring platform that detects threats and anomalies before they can impact client funds.
Two live bug bounty programs - each offering up to \$2,500,000 - further incentivise independent security researchers to find and report any remaining vulnerabilities: [Immunefi](https://immunefi.com/bounty/morpho/) and [Cantina](https://cantina.xyz/bounties/35a5f0a1-2ffd-432c-8f3b-77d169add8c3).
Finally, clients can take out optional [insurance](/documentation/asset-protection/insurance) covering smart contract failure - the ultimate recourse against any code-related loss.
**Definition:** A borrower fails to repay their loan.
**Mitigation:** All loans are overcollateralised - borrowers must deposit 120–150% of the loan value in digital assets before they can borrow. If that collateral ratio is breached, the smart contract automatically liquidates the collateral to repay lenders before any loss can occur. There is no reliance on trust, legal recourse, or human intervention.
Byzantine only uses lending markets with an excellent operating history. On 10 October 2025, Morpho, Aave, and Maker processed over \$400 million in liquidations within a few hours - with no bad debt and no outages.
The liquidation mechanism is explained in full detail in [Overcollateralisation & liquidation](/documentation/digital-assets-101/overcollateralisation-and-liquidation).
**Definition:** An insider at Byzantine corrupts the smart contract or misappropriates funds.
**Mitigation:** Byzantine has no ability to upgrade the smart contract that administers user funds. Byzantine never touches or routes user funds - client assets go directly from the client's account into the lending markets. There is no Byzantine insider risk at the protocol level.
Byzantine does have the ability to change the strategy curator (currently Keyrock), but this is subject to a lengthy timelock - a period during which Byzantine, third-party monitors, and clients can all take action or withdraw before any change takes effect.
**Definition:** Keyrock (the strategy curator) becomes insolvent or acts against client interests.
**Mitigation:** Keyrock has mandated control parameters but no custody of client assets. It cannot unilaterally move funds. All operations - deposits, lending, redemptions, and interest distribution - are executed programmatically by the smart contracts. Even in the case of a Keyrock bankruptcy, the strategy they have programmed continues operating without interruption. The protocol enforces total bankruptcy-remoteness.
Keyrock's mandate is also strictly defined: assets can only be deployed into Morpho, Aave, and Maker/Sky; only low-risk, highly liquid markets are selected; and complete liquidity must be maintained at all times so clients can always withdraw in full.
**Definition:** One of the credit marketplaces (Morpho, Aave, Maker) goes bankrupt.
**Mitigation:** This risk is not operationally relevant. Smart contracts by design fulfil their programmed function indefinitely. If the organisation behind Morpho, Aave, or Maker were to go bankrupt, their deployed smart contracts would continue operating exactly as written. Once deployed, even the organisations that created them cannot alter or shut them down.
**Definition:** An insider at a lending marketplace corrupts their smart contracts to steal funds.
**Mitigation:** None of the credit marketplaces Byzantine uses have the unilateral right to alter any deployed smart contract code. The contracts are immutable once deployed - this is enforced by the blockchain itself, not by policy.
**Definition:** A sudden mass-withdrawal event or market stress scenario delays redemptions.
**Mitigation:** The credit marketplaces Byzantine uses have extensive operating histories and have handled extreme market events without outages. Loans are short-term and callable at any time. Even in the rare case that an underlying market runs into temporary liquidity constraints, its automatic withdrawal queue executes redemptions the moment liquidity becomes available again.
Keyrock's mandate requires continuous monitoring of portfolio liquidity, with an obligation to exit markets if utilisation becomes high enough to threaten instant full redemptions.
**Definition:** Compromise of keys or unauthorised access to client accounts.
**Mitigation:** This risk exists entirely outside Byzantine's purview. Byzantine Prime allows clients to freely choose how they hold their receipt tokens - the cryptographic keys to their deposited assets. Clients who prefer institutional-grade protection can work with a qualified custodian; such organisations are insured against security breaches.
For clients using Byzantine's built-in account, access is secured by passkeys - device-bound cryptographic credentials that cannot be phished or stolen remotely. See [Understanding passkeys](/documentation/account-management/passkeys) for a full explanation.
# Security audits
Source: https://docs.byzantine.fi/documentation/asset-protection/security-audits
Independent security audits are the primary defence against code-level risk in decentralised finance. Unlike traditional software, smart contracts are immutable once deployed - bugs cannot be patched silently after the fact.
## What a smart contract audit checks
A smart contract audit is the digital equivalent of a code review performed by an independent security firm. The auditor analyses the contract's code line by line to ensure it behaves exactly as intended and cannot be exploited. Typical checks include:
* **Access control:** Verifying that only authorised actions (deposits, withdrawals, parameter updates) can be triggered, and only by the right parties
* **Logic and arithmetic correctness:** Ensuring calculations for interest, collateral ratios, and liquidations cannot overflow, underflow, or produce unintended results
* **Re-entrancy and exploit protection:** Confirming the code cannot be manipulated through repeated or nested transactions - a common attack vector in smart contracts
* **Upgrade and dependency safety:** Reviewing external calls, oracle integrations, and protocol dependencies for hidden vulnerabilities
Once complete, the auditor publishes a report summarising all findings, the remediation actions taken, and a final assessment. All Byzantine audit reports are publicly available.
## Blockchain audits
Byzantine's vault and all custom adapters have been reviewed by eight independent security firms. All critical and high-severity findings were remediated before deployment and confirmed by re-audit.
| **Auditor (with link to report)** | **Completion date** | **Open findings** |
| - | - | - |
| [Cantina competition](https://github.com/Byzantine-Finance/credit-vault-v2/blob/main/audits/2025-07-15-competition.pdf) | Nov 5, 2025 | No critical and high severity findings |
| [Sherlock](https://github.com/Byzantine-Finance/credit-vault-v2/blob/main/audits/gates/Vault%20v2%20Gate%20contracts%20-%20Sherlock%20-%20Oct%202025.pdf) | Oct 17, 2025 | No critical and high severity findings |
| [Spearbit](https://github.com/Byzantine-Finance/credit-vault-v2/blob/main/audits/2025-08-11-spearbit.pdf) | Oct 13, 2025 | All critical and high severity findings corrected and re-audited |
| [Spearbit](https://github.com/Byzantine-Finance/credit-vault-v2/blob/main/audits/2025-05-19-spearbit.pdf) | Oct 13, 2025 | All critical and high severity findings corrected and re-audited |
| [ChainSecurity](https://github.com/Byzantine-Finance/credit-vault-v2/blob/main/audits/2025-09-15-chainsecurity.pdf) | Sep 16, 2025 | All critical and high severity findings corrected and re-audited |
| [Cantina](https://github.com/Byzantine-Finance/credit-vault-v2/blob/main/audits/adapters/CompoundV3%20and%20ERC4626Merkl%20Adapters%20-%20Cantina%20-%20Sept%202025.pdf) | Sep 10, 2025 | All findings corrected and re-audited |
| [Blackthorn](https://github.com/Byzantine-Finance/credit-vault-v2/blob/main/audits/2025-09-15-blackthorn.pdf) | Aug 20, 2025 | All findings corrected and re-audited |
| [Zellic](https://github.com/Byzantine-Finance/credit-vault-v2/blob/main/audits/2025-07-15-zellic.pdf) | May 29, 2025 | All findings corrected and re-audited |
## SOC 2 Type II
Byzantine's products operate under the regulatory and operational framework of Keyrock, the strategy curator. Keyrock holds SOC 2 Type II certification issued by Deloitte. SOC 2 Type II (Service Organisation Control 2, Type II) is an independent audit standard that verifies an organisation maintains high standards of security, availability, and confidentiality in its financial operations over a sustained period - not just at a single point in time.
In practice, this means that Keyrock's operational processes, internal controls, and data handling practices are verified by one of the world's largest independent auditors.
## Stablecoin issuer audits
The stablecoins used by Byzantine Prime (USDC and EURC, both issued by Circle) are subject to regular reserve audits attested by top-tier accounting firms. These reports confirm that every digital dollar or euro in circulation is backed at least 1:1 by cash and short-term government securities. Circle publishes these attestations regularly at [circle.com/transparency](https://www.circle.com/transparency).
# Security mechanisms
Source: https://docs.byzantine.fi/documentation/asset-protection/security-mechanisms
Byzantine Prime's security is built in layers - each one independently limiting what any single party can do with client funds.
## Non-custodial architecture
Byzantine Finance never controls your assets. Funds are held in a smart contract vault that is exclusively controlled by you through your passkey. Byzantine cannot move, freeze, or access your funds without your explicit cryptographic authorisation. For more on passkeys and how they work, see [Understanding passkeys](/documentation/account-management/passkeys).
## Audited smart contracts
Byzantine's vault is built on Morpho V2's architecture and further strengthened by Byzantine's custom risk tooling. The complete codebase - including all custom adapters - has been independently reviewed by eight security firms. All critical and high-severity findings identified during testing were remediated before deployment.
For the full audit table and reports, see [Security audits](/documentation/asset-protection/security-audits).
## Bug bounty programmes
Two live bug bounty programmes incentivise independent security researchers to find and responsibly disclose any remaining vulnerabilities. Each programme offers up to \$2,500,000:
| **Programme** | **Prize money** |
| - | - |
| [Immunefi](https://immunefi.com/bug-bounty/morpho/information/) | \$2,500,000 |
| [Cantina](https://cantina.xyz/bounties/35a5f0a1-2ffd-432c-8f3b-77d169add8c3) | \$2,500,000 |
Teams that are uncertain about their code don't offer \$2.5 million for someone to find a bug.
## Real-time monitoring with Hypernative
Byzantine integrates with [Hypernative](https://www.hypernative.io/), a real-time threat detection platform used by leading decentralised finance (DeFi) protocols and institutions. Hypernative monitors all deployed contracts and protocol interactions continuously, with triggers including:
* High liquidity utilisation in an underlying lending market
* Unusually high liquidation volume in an underlying protocol
* Large or unusual asset movements within a market
* Suspected attack patterns in newly deployed on-chain code
In most cases, Hypernative notifies Byzantine and Keyrock of any irregularity. In rare, urgent scenarios, Hypernative has the power to trigger an emergency function that withdraws funds from an underlying lending market into the safety of the Byzantine main vault before any exploit can propagate.
## Where your stablecoins are held
Your stablecoins are held on-chain within Byzantine Prime's smart contracts and, when deployed, within the lending markets integrated into the protocol (Aave, Morpho, Maker/Sky). These contracts are non-custodial - no intermediary has discretionary access. Each depositor's position is fully traceable, and total on-chain balances can be verified by anyone at any time.
When you withdraw, the contracts unwind the relevant share of lending positions and transfer stablecoins directly to your account.
## Immutability and upgrade controls
Byzantine does not have the ability to upgrade the smart contract that administers user funds. This means no one - including Byzantine - can change the rules governing how your assets are held or deployed, without going through a publicly visible process with a lengthy timelock that gives clients time to withdraw.
Any protocol upgrade or dependency change automatically triggers a new independent audit before redeployment.
## Insurance
For clients who want an additional layer of protection on top of these technical safeguards, Byzantine Prime offers optional institutional insurance, covering losses from smart contract failure. See [Insurance](/documentation/asset-protection/insurance) for full details.
# Why borrowers provide more than they borrow
Source: https://docs.byzantine.fi/documentation/digital-assets-101/overcollateralisation-and-liquidation
How the collateral system protects depositors and what happens when it is tested.
# More collateral than the amount borrowed
Before accessing liquidity, a borrower must provide collateral worth more than the amount borrowed. The required level is typically between 120% and 150%.
## The mechanism in three steps
1. **Provide collateral:** Collateral is locked before borrowing
2. **Monitor its value:** The ratio is checked continuously
3. **Act automatically:** If the threshold is reached, collateral can be sold to repay the borrowing
Keyrock Curation Services selects and monitors supported venues, collateral quality and strategy parameters.
This mechanism reduces direct exposure to an individual borrower. It does not remove loss, liquidity or technical risks.
# How borrower interest creates returns
Source: https://docs.byzantine.fi/documentation/digital-assets-101/what-is-digital-credit
# Borrower demand creates the return
Specialist borrowers provide collateral, access short-term EUR- or USD-linked liquidity and pay interest. That interest creates the return.
## How it works
1. Funds are made available through supported venues
2. Borrowers provide collateral worth more than the amount requested
3. The rate moves with supply and demand
4. Borrower interest contributes to the strategy return
Keyrock Curation Services selects and monitors venues within predefined parameters. Byzantine provides technical access only.
Returns are variable and not guaranteed. Capital is at risk.
# MiCA, in plain English
Source: https://docs.byzantine.fi/documentation/digital-assets-101/what-is-mica
# Clear European rules
MiCA sets common European Union requirements for issuers of currency-linked units and certain service providers.
## What the rules cover
* Reserve composition and monitoring
* Issuance and redemption conditions
* Governance and transparency
* Permissions and supervision for relevant providers
Byzantine remains a technical infrastructure provider. Regulated services are provided by third parties under their own permissions and responsibilities.
# Understanding EUR- and USD-linked units
Source: https://docs.byzantine.fi/documentation/digital-assets-101/whats-a-stablecoin
# Familiar currency. A modern settlement rail.
USDC and EURC are units linked to USD and EUR. They are issued by Circle, designed to be redeemable at equal value and backed by reserves.
Byzantine uses them as an internal settlement layer. Users can add or withdraw EUR or USD by bank transfer through regulated partners.
## Why they are used
* Continuous settlement
* Transparent movement records
* Compatibility with automatic strategy execution
* Exposure in the selected currency
The issuer, reserves, redemption conditions, regulatory status and partner terms remain important considerations.
# Identity verification - organisation
Source: https://docs.byzantine.fi/for-organisation-accounts
Know Your Business (KYB) verification is required for legal entities before you can deposit funds. This process typically takes **10-15 minutes** to complete.
## Step 1: Country of residence
Select your company's country of registration to ensure compliance with local data protection laws.
## Step 2: Find your company
1. Select **France** (or your country)
2. Enter your company name (e.g., "Byzantine Finance")
3. Select your company from the results
Byzantine automatically retrieves company information from official registries.
## Step 3: Company information
**Registration details are pre-filled:**
* Company name
* Entity type (SAS, SARL, etc.)
* Registration number (SIREN/SIRET for French entities)
**Physical address question:**
* Select **"Yes"** if your operating address is the same as your registered address
* Select **"No"** if your physical office is different (you'll enter it manually)
If no, you will need to manually fill the following fields:
* Address line
* City
* Post Code
* State
## Step 4: Business financials
* **Primary currency:** Select EUR or USD (this is your preferred display currency)
* **Source of funds:** Select the origin of your invested assets:
* **Business revenues or income from investments** - For operating companies
* **Third party funds** - For fund managers or intermediaries
* **Owner's capital** - For family office assets
* **Savings** - For personal investment vehicles
* **Estimated annual income:** Select your range (business revenues or investment income)
* **Expected monthly deposits/withdrawals:** Estimate your transaction volume
* **25%+ ownership by legal entity:**
* **Yes** - If another company owns 25%+ of your entity
* **No** - If individuals own 100% (most family offices)
## Step 5: Business activities
**Business description:** Provide a clear description of your company's purpose.
**For holding companies/family offices:**
"Holding company managing family assets. No commercial activity."
**Industry:** Select the closest match:
* For family offices: **"Offices of other holding companies"**
* For other structures: Choose your primary business sector
## Step 6: Company documents
You must provide at least one document in each of the four required categories below.
**Company details:** Documents confirming the identity of the company. The following documents are accepted:
* Incorporation certificate
* Excerpt from a state company registry
* Articles and memorandum of association
**Ownership structure:** Documents confirming the ownership of the company. The following documents are accepted:
* Shareholder registry or ownership chart
* Statement of information
* Trust agreement
* Partnership agreement
**Source of funds:** Documents confirming the identity of the company. The following documents are accepted:
* Audited financials / end-of-year balance sheet
* Bank / brokerage account statement
* Tax returns
* Invoices to clients proving nature of business (for operating companies)
**Proof of business address:** A document in the organisation's name proving its physical address. The following documents are commonly accepted:
* Utility bill
* Lease agreement
* Bank statement
* Government or tax correspondence
**(Optional) Representatives authorization:** An optional document proving that the current user indeed has the power to make decisions for the organisation. The following documents are accepted:
* Power of attorney
## Step 7: Regulated partners agreement
You must acknowledge Byzantine's service partners:
✅ **Bridge Building Sp. Z.o.o.** - Registered Virtual Asset Service Provider handling EUR/USD ↔ EURC/USDC conversions
✅ **Keyrock FR** - Provides risk and strategy curation for Byzantine Prime products
**Important:** Byzantine Finance does not hold private keys, make transactions without your consent, or provide investment advice. We provide technology and infrastructure only.
## Step 8: Ultimate beneficial owners (UBOs)
**You must add:**
1. **UBOs (Ultimate Beneficial Owners):** Individuals with 25%+ direct or indirect ownership
2. **Representative/control persons:** Anyone who can legally make decisions for the company (must include the account creator)
**For each UBO, provide:**
* Full name
* Email address
* Role (UBO or Representative)
**What about complex ownership structures?**
If your company is owned by other companies (e.g., 4 holding companies each with 25%), you must list the **individuals** who ultimately own those companies, not the corporate entities themselves.
**Example:**
* ❌ Wrong: "Holding Company A (25%)"
* ✅ Correct: "Jean Dupont (25% via Holding Company A)"
## Step 9: Invite all associated persons to complete an individual verification
All identified UBOs and representatives will need to complete a KYC process. You'll find more information here: [For individuals](/for-individual-accounts).
* Click **"Verify now"** if you are that person to start your KYC process immediately.
* Click **"Send to email"** to send this person an automated email inviting them to complete their KYC.
## Step 10: Wait for verification
Once all associated persons submit their KYC, the file is automatically submitted for review - no further action is needed from your end.
**What happens next:** Byzantine's compliance team reviews your information (typically 24-48 hours)
## Step 11: Account activation!
You'll receive an email when your account is ready to use
# For wealth managers
Source: https://docs.byzantine.fi/for-wealth-managers
## How can I create an account for a client?
Byzantine allows you to open and manage accounts on behalf of corporate clients. The process has three steps: creating the account, adding the team, and completing identity verification.
1. In the account picker in the bottom left of your dashboard, select **"Add account"**
2. Select **"Organisation account"**
3. Enter the company name and, optionally, upload a logo
4. Set a passkey for this account
Once complete, a new account is created for that entity with you as its first admin.
From the new account, invite the client company's team or your own colleagues as members. There are two roles:
* **Admin** - can make deposits, withdrawals, and change account settings
* **Viewer** - can view the account balance and transaction history, and can also complete the identity verification on behalf of the organisation
For more detail on roles and permissions, see [Users & roles](/users-and-roles).
A common setup is to assign the Viewer role to a team member who will handle the identity verification paperwork, while reserving Admin access for those who need to manage funds.
The organisation must complete a Know Your Business (KYB) verification before it can deposit funds. This involves providing company documents, identifying beneficial owners, and having each associated person complete an individual identity check.
For the full step-by-step process, see [Identity verification - organisation](/for-organisation-accounts).
If you do not want ongoing control over fund movements, have one of the client company's Admins change your role to Viewer. This ensures you retain visibility over the account without the ability to make deposits or withdrawals on the client's behalf.
# Get to know your dashboard
Source: https://docs.byzantine.fi/get-to-know-your-dashboard
Welcome to Byzantine!
Meet the Dashboard - your central hub to see your balance & returns.
## Key metrics
**Active Balance:** Total amount currently invested across all Byzantine products
**APY (Annual Percentage Yield):** Current annualized return rate
**Returns Display:**
* Yesterday's earnings
* Last 30 days earnings
* Year-to-date earnings
## Byzantine Prime products
* **ByzPrime USD** - US Dollar yield product (uninsured)
* **ByzPrime EUR** - Euro yield product (uninsured)
* **ByzPrime EUR (insured)** - Euro yield product with insurance coverage
* **ByzPrime USD (insured)** - US Dollar yield product with insurance coverage
## Vault View
Click on any product to see:
* Transaction history (deposits/withdrawals)
* Detailed performance metrics
* Current APY for that specific product
# Welcome to Byzantine
Source: https://docs.byzantine.fi/index
**Put your cash to work. Stay in control.**
Whether you manage a company treasury or your own assets, Byzantine provides the technical infrastructure to put EUR and USD balances to work - with flexible access, clear reporting, and control.
Financial advisers can use these docs to understand Byzantine, share factual information, and introduce eligible clients.
## Get started
Verify your identity, secure your access, and get ready to use Byzantine.
Learn how to add funds, follow activity, and request withdrawals.
See how custody, monitoring, and optional insurance are structured.
Follow your balance, performance, and activity from one clear dashboard.
## One place. More control.
* **Access return opportunities.** Access returns of up to [7% APY\*](#performance-information), net of fees, depending on market conditions.
* **Access funds when you need them.** Request withdrawals at any time.
* **Stay in control.** Assets are held through supported custody or self-custody arrangements. Byzantine does not hold or move client assets.
* **See everything clearly.** Track your balance, performance, and activity from one simple dashboard.
* **Rely on specialist partners.** Strategy is curated by Keyrock Curation Services.
* **Add optional insurance.**
### Performance information
\*APY reflects returns originating from borrower interest through third-party protocols, not from Byzantine. Returns are variable and not guaranteed. Past performance is not indicative of future results.
**Built for company and personal treasuries.** Financial advisers can share factual information and introduce eligible clients to Byzantine.
Byzantine Finance SAS is a technical infrastructure provider, not a bank, financial institution, regulated intermediary, or custodian. Byzantine does not hold client assets.
# KYB process
Source: https://docs.byzantine.fi/kyb-process
## Do I need a KYC or KYB?
* **KYB (Know Your Business)** - If funds come from a company bank account and the account is held in a company's name
* **KYC (Know Your Customer)** - If funds come from a personal bank account
Most family offices need **KYB** since assets are held in corporate structures.
## Which company documents are required?
Prepare at least one document for each required category: company details, ownership structure, source of funds, and proof of the organisation's physical address. The exact accepted documents are listed in the [organisation verification guide](/for-organisation-accounts).
## My holding company doesn't have a website. What should I enter?
Enter nothing - thjat field is optional. You'll need to provide additional proof of funds (e.g., bank statements or company balance sheet) during verification later.
## We have a complex ownership structure (companies owning companies). How do we handle UBOs?
You must list the **individual persons** who ultimately own the company, not the intermediate corporate entities.
Example: If Company A (owned by John 50%, Marie 50%) owns 50% of your family office, list:
* John - 25% (via Company A)
* Marie - 25% (via Company A)
## How long does KYB verification take?
Typically 24-48 hours after you submit all documents and complete identity verification.
## Can someone on my team complete the KYB on behalf of the client?
Yes, your team can fill out all the forms, but the beneficial owner(s) must complete the final identity verification (facial recognition) themselves.
# Making your first deposit
Source: https://docs.byzantine.fi/making-your-first-deposit
## Step 1: Choose your product
From your dashboard, click **"Deposit"** on your preferred product:
* **ByzPrime EUR (insured)** - Euro-denominated deposits with insurance coverage against smart contract failure
* **ByzPrime USD (insured)** - Dollar-denominated deposits with insurance coverage against smart contract failure
* **ByzPrime EUR / ByzPrime USD** - Uninsured products with slightly higher returns; secured by overcollateralised lending
Both insured and uninsured products use identical lending strategies. The insured variants carry a small yield reduction reflecting the insurance premium. For more detail, see [Insurance](/documentation/asset-protection/insurance).
## Step 2: Create a deposit order for a specific amount
Enter the amount you wish to deposit. Once confirmed, you will sign the order with your passkey.
## Step 3: Transfer funds
Byzantine generates a unique IBAN exclusively for your account. This IBAN is held by you and only you, cannot be accessed by Byzantine or third parties, and routes funds directly to your blockchain vault.
**Option A: Automatic (Recommended)**
1. Scan the QR code with your phone
2. Select your bank (Revolut, Société Générale, etc.)
3. Confirm the pre-filled transfer in your banking app
**Option B: Manual transfer**
1. Click "Transfer manually"
2. Copy the provided IBAN details:
* Account holder
* IBAN
* BIC/SWIFT
* Reference number (important!)
3. Make a standard bank transfer from your business account
**Transfer time:** 4-5 minutes on average
## Step 4: Automatic deployment
Once funds arrive, they are automatically converted and deployed into the product of your choice. You will receive an email as soon as the funds have been received and processed.
**You start earning returns immediately upon deployment.**
Your EUR is converted to EURC (a euro-denominated stablecoin issued by Circle, backed 1:1 by real euros). Your USD is converted to USDC (the dollar equivalent). When you withdraw, you receive fiat back at the original exchange rate. There is no foreign exchange risk - all EUR exposure is fully hedged. To learn more about stablecoins, see [What is a stablecoin?](/documentation/digital-assets-101/whats-a-stablecoin).
## What if I send funds to my IBAN without a deposit order?
The funds will appear as idle balance on your account. They cannot be lost. You will receive an email confirming receipt. You can then deploy them into a product from your dashboard, or withdraw them back to your bank account.
# Passkey reset
Source: https://docs.byzantine.fi/passkey-reset
How to troubleshoot passkey issues and reset your passkey with help from Byzantine.
A passkey is a secure key stored on your device that allows you to approve transactions on Byzantine, such as deposits and withdrawals. It works with your fingerprint, face scan, or device PIN. For more on how passkeys work, see [Understanding passkeys](/documentation/account-management/passkeys).
If you lose access to your passkey for any reason, this page covers the recovery steps. If you have already tried the troubleshooting steps below and need a reset, contact the Byzantine team at [info@byzantine.fi](mailto:info@byzantine.fi) to schedule a short call.
## Things to try first
Most passkey issues come down to being on the wrong device or browser profile. Before requesting a reset, work through the following.
The passkey prompt can occasionally fail to appear due to a temporary browser issue. Close the tab, reopen it, and try the action again.
Chrome stores passkeys per profile. If you are signed into a different Chrome profile than the one used during account creation, your passkey will not appear. Switch to the correct profile and try again.
Passkeys are tied to a specific device. If the account was created on a laptop, the passkey will not be available on a phone, and vice versa. Return to the original device.
If you use a password manager (such as 1Password or Google Password Manager) or Apple's iCloud Keychain, make sure it is signed in and unlocked. Your passkey may be stored there.
If none of the above resolves the issue, a passkey reset is required. Contact the Byzantine team at [info@byzantine.fi](mailto:info@byzantine.fi) to get started.
## How the reset works
The Byzantine team can set up a new passkey on a short call, typically five minutes or less. A call is necessary for security reasons - your passkey authorises transactions on your account, meaning your identity must be confirmed first.
Before the call, make sure you are on the device and browser profile where you want the new passkey. The passkey will be created on whatever device and profile is in use during the reset.
The Byzantine team will direct you to a recovery page in the app during the call. Check that your email and account details are correct, then click **Send the code**.
You will receive a 6-digit code after clicking **Send the code**. Enter it into the recovery page and click **Verify the code**.
Once your code is verified, click **Create my new passkey**. Your browser will prompt you to create a new passkey. Confirm with your fingerprint, face scan, or device PIN, just as during initial account setup.
Once all three steps are complete, you will see a success message and be redirected to the dashboard. Your new passkey is active immediately.
# Security & compliance
Source: https://docs.byzantine.fi/security-and-compliance
## Who holds the private keys to my funds?
You do. Byzantine creates a secure, self-custodial account infrastructure where only you have access. Byzantine cannot move your funds without your explicit authorization (passkey signature).
## Is Byzantine regulated?
Byzantine partners with regulated entities:
* **Bridge** (Virtual Asset Service Provider - VASP registered), the regulated partner handling all fiat on-ramp and off-ramp services directly with users
* **Keyrock Group** (strategy curator, Digital Asset Service Provider registered with the AMF), acting under its own regulatory authorisations to set and maintain the deployment strategy
Byzantine itself provides technology infrastructure, not regulated financial services.
## What happens if Byzantine shuts down?
Your funds are held in your own account on the blockchain, not Byzantine's. You maintain access to your assets independently of Byzantine's operations.
# Technical questions
Source: https://docs.byzantine.fi/technical-questions
## Do I need a crypto account?
No. Byzantine creates and manages the account infrastructure for you. You interact entirely through the web dashboard.
## What blockchain do you use?
We use public blockchain infrastructure (primarily Ethereum and Base) with institutional-grade security.
## Can I see my account address?
Yes, your account address is listed on any accounting report you generate.
# Users & roles
Source: https://docs.byzantine.fi/users-and-roles
## Adding team members
Multiple users can be invited to the same account. There is no limit on the number of users you can add.
**There are two user types:**
| **User type** | **Can view** | **Can deposit** | **Can withdraw** | **Can change settings** |
| :- | :- | :- | :- | :- |
| **Admin** | ✅ | ✅ | ✅ | ✅ |
| **View-only** | ✅ | ❌ | ❌ | ❌ |
## Recommended setup for family offices
**Admin users:**
* Client/beneficial owner
* Authorized signatories
**View-only users:**
* Wealth managers
* Accountants/bookkeepers
* Advisory team members
A common setup is to assign the Viewer role to a team member who will handle the identity verification paperwork, while reserving Admin access for those who need to manage funds.
## Frequently asked questions
**Can multiple people access the same Byzantine account?**
Yes. You can add unlimited users with either Admin or View-only permissions via the invite flow in your account settings.
**Can we use multiple email addresses for notifications?**
Yes. Each user you invite has their own email address and receives their own notifications independently.
**Who should create the account - the wealth manager or the client?**
Either can create the account. The important requirement is that the Ultimate Beneficial Owner(s) (the individuals who ultimately own or control the entity) and at least one authorised representative complete identity verification. The account creator can be anyone on the team.
**Can someone on my team change the withdrawal bank account to steal funds?**
No. Only Admin users can change bank account details or initiate withdrawals. Additionally, every transaction must be signed with the acting user's [passkey](/documentation/account-management/passkeys) - their device-bound cryptographic credential. Even an Admin cannot sign a transaction on another user's behalf.
# Withdrawals
Source: https://docs.byzantine.fi/withdrawals
## Step 1: Initiate Withdrawal
1. Go to your dashboard
2. Click **"Withdraw"** on the product you want to withdraw from
3. Enter the amount
4. Authenticate with your passkey
## Step 2: Bank account verification
**First withdrawal:** You'll need to specify your destination bank account. This account:
* Can only be added or removed by admin users
* Must match the account holder name on your Byzantine account
* Is verified for security
Funds arrive in your bank account within 10 minutes for sums up to €100,000, and can take up to 24h above that.
# Lists persisted lifecycle events owned by the authenticated integrator, newest first.
Source: https://docs.byzantine.fi/api-reference/events/lists-persisted-lifecycle-events-owned-by-the-authenticated-integrator-newest-first
/api-reference/openapi-integrator.json get /v1/query/events
# Delete an integrator credential
Source: https://docs.byzantine.fi/api-reference/integrator-key-management/delete-an-integrator-credential
/api-reference/openapi-integrator.json delete /v1/integrator/credentials/{pubkey}
Permanently removes a credential owned by the authenticated integrator; the associated public
key stops authenticating immediately. The credential signing the current request cannot delete
itself, so an integrator always keeps at least one working read-write credential.
Requires a read-write credential.
# Get current integrator credential capabilities
Source: https://docs.byzantine.fi/api-reference/integrator-key-management/get-current-integrator-credential-capabilities
/api-reference/openapi-integrator.json get /v1/integrator/whoami
Returns the authenticated integrator id, credential access scope, label, and capability flags for frontend UX.
# Issue a credential for the authenticated integrator
Source: https://docs.byzantine.fi/api-reference/integrator-key-management/issue-a-credential-for-the-authenticated-integrator
/api-reference/openapi-integrator.json post /v1/integrator/credentials
Generates a new credential keypair and stores the public key as an active credential with the
requested access scope (`read_only` by default). The private key is returned only in this
creation response and is not stored by the API. Requires a read-write credential.
# List integrator credentials
Source: https://docs.byzantine.fi/api-reference/integrator-key-management/list-integrator-credentials
/api-reference/openapi-integrator.json get /v1/integrator/credentials
Returns every credential owned by the authenticated integrator, oldest first: public key,
access scope, active status, label, and creation time. Private keys are returned only in the
creation response and are not stored by the API, so they never appear in this list.
# Update a credential
Source: https://docs.byzantine.fi/api-reference/integrator-key-management/update-a-credential
/api-reference/openapi-integrator.json patch /v1/integrator/credentials/{pubkey}
Partially updates a credential owned by the authenticated integrator: `label`, `active`, and
`accessScope` can each be changed independently; omitted fields are left untouched. The
credential signing the current request can only change its own label, not its own `active`
status or access scope, so an integrator always keeps one working read-write credential.
Requires a read-write credential.
# Step 1 Initialize OTP (send email)
Source: https://docs.byzantine.fi/api-reference/otp-authentication/step-1-initialize-otp-send-email
/api-reference/openapi-integrator.json post /v1/submit/init-otp
# Step 2 Authenticate with OTP code
Source: https://docs.byzantine.fi/api-reference/otp-authentication/step-2-authenticate-with-otp-code
/api-reference/openapi-integrator.json post /v1/submit/otp-auth
Returns a session ID that can be used to submit an authenticated action.
# Step 3 Create passkeys (OTP auth)
Source: https://docs.byzantine.fi/api-reference/otp-authentication/step-3-create-passkeys-otp-auth
/api-reference/openapi-integrator.json post /v1/submit/create-authenticators-otp
Adds passkeys to a user's account by authenticating with a previously established OTP session.
# Get cancellation payload for a withdrawal request
Source: https://docs.byzantine.fi/api-reference/transactions/get-cancellation-payload-for-a-withdrawal-request
/api-reference/openapi-integrator.json post /v1/query/get-cancel-withdrawal-payload-passkey
Get the payload to sign in order to cancel a queued withdrawal. Part of the passkey authentication flow.
# Get transfer payload
Source: https://docs.byzantine.fi/api-reference/transactions/get-transfer-payload
/api-reference/openapi-integrator.json post /v1/query/get-transfer-payload-passkey
Get the payload to sign in order to transfer assets from the account's wallet to any destination wallet.
Part of the passkey authentication flow.
# Get vault upgrade payload (Base -> Ethereum)
Source: https://docs.byzantine.fi/api-reference/transactions/get-vault-upgrade-payload-base->-ethereum
/api-reference/openapi-integrator.json post /v1/query/get-vault-upgrade-payload-passkey
Returns two raw payloads to sign with one passkey prompt: a withdraw from the Base vault
and a deposit on the destination Ethereum vault. The destination vault address is
derived from a static mapping on the source vault address.
# Sign payload
Source: https://docs.byzantine.fi/api-reference/transactions/sign-payload
/api-reference/openapi-integrator.json post /v1/submit/sign-payload-passkey
Sign a payload allowing Byzantine to make, execute and sponsor the transaction.
# Create a webhook subscription.
Source: https://docs.byzantine.fi/api-reference/webhooks/create-a-webhook-subscription
/api-reference/openapi-integrator.json post /v1/webhooks/subscriptions
Registers an integrator-owned webhook endpoint, validates its HTTPS/DNS safety metadata,
creates an active P-256 signing key, and returns the public verification key for future deliveries.
# Delete a webhook subscription.
Source: https://docs.byzantine.fi/api-reference/webhooks/delete-a-webhook-subscription
/api-reference/openapi-integrator.json delete /v1/webhooks/subscriptions/{subscription_id}
Deletes a webhook subscription owned by the authenticated integrator and cascades its webhook
delivery records according to the database outbox schema.
# List webhook delivery history.
Source: https://docs.byzantine.fi/api-reference/webhooks/list-webhook-delivery-history
/api-reference/openapi-integrator.json get /v1/webhooks/deliveries
Returns recent webhook delivery records for the authenticated integrator with their source event
payloads and recorded delivery attempts.
# List webhook subscriptions.
Source: https://docs.byzantine.fi/api-reference/webhooks/list-webhook-subscriptions
/api-reference/openapi-integrator.json get /v1/webhooks/subscriptions
Returns all webhook subscriptions owned by the authenticated integrator, including each
subscription's active public signing key.
# Retry a webhook delivery.
Source: https://docs.byzantine.fi/api-reference/webhooks/retry-a-webhook-delivery
/api-reference/openapi-integrator.json post /v1/webhooks/deliveries/{delivery_id}/retry
Manually retries a retryable webhook delivery owned by the authenticated integrator. Disabled
subscriptions and terminal, succeeded, or in-flight deliveries are rejected.
# Send a signed test webhook.
Source: https://docs.byzantine.fi/api-reference/webhooks/send-a-signed-test-webhook
/api-reference/openapi-integrator.json post /v1/webhooks/subscriptions/{subscription_id}/test
Creates a durable `webhook.test` event and delivery record, signs the exact outbound JSON body
with the subscription's active P-256 key, and attempts delivery to the configured endpoint.
# Update a webhook subscription.
Source: https://docs.byzantine.fi/api-reference/webhooks/update-a-webhook-subscription
/api-reference/openapi-integrator.json patch /v1/webhooks/subscriptions/{subscription_id}
Updates an integrator-owned webhook subscription. URL changes are revalidated for endpoint
safety before being persisted.