Skip to main content

1. Request access

Sign up at otim.com and request Platform access. Once approved, you will receive access to your dashboard and sandbox environment.

2. Get your API key

Navigate to the Developer section of your dashboard to create an API key. Include it in the Authorization header of every request:
curl https://api.otim.com/v0/platform/settings \
  -H "Authorization: Bearer sk_..."

3. Configure your Platform

Set up your Platform settings to configure defaults for your Accounts, like auto-earn and your preferred chain.
curl -X PATCH https://api.otim.com/v0/platform/settings \
  -H "Authorization: Bearer sk_..." \
  -H "Content-Type: application/json" \
  -d '{
    "autoEarnEnabled": true,
    "autoEarnVault": "aave_usdc",
    "defaultChain": "base"
  }'

4. Create an Entity

An Entity represents a person or business on your Platform. Creating an Entity kicks off the verification flow.
curl -X POST https://api.otim.com/v0/entities \
  -H "Authorization: Bearer sk_..." \
  -H "Content-Type: application/json" \
  -d '{
    "email": "alice@example.com",
    "type": "individual",
    "fullName": "Alice Smith"
  }'
The response includes kycLink and tosLink. Share these with the Entity so they can complete verification.

5. Create an Account

Once the Entity exists, create an Account to hold and move funds.
curl -X POST https://api.otim.com/v0/accounts \
  -H "Authorization: Bearer sk_..." \
  -H "Content-Type: application/json" \
  -d '{
    "entityId": "ent_01JA1B2C3D4E5F6G7H8J9K0L",
    "name": "Main Account"
  }'
The Account is automatically provisioned on your default chain. If auto-earn is enabled, idle balances will start earning yield immediately.

6. Send a transfer

Move funds from an Account to another Account or to an external Counterparty.
curl -X POST https://api.otim.com/v0/transfers \
  -H "Authorization: Bearer sk_..." \
  -H "Content-Type: application/json" \
  -d '{
    "sourceAccountId": "acc_01JA1B2C3D4E5F6G7H8J9K0L",
    "destinationAccountId": "acc_02XY9Z8W7V6U5T4S3R2Q1P0N",
    "amount": "100.00",
    "description": "Payment to vendor"
  }'

Next steps

  • Set up Counterparties to send funds to external wallets or bank accounts
  • Issue IBANs to accept fiat deposits (requires a verified Entity)
  • Browse the full API reference