Skip to main content

Integration Overview

The integration service is the partner API of the platform. Every call reaches it through the integration gateway, which checks the route, your token and its permissions before forwarding the call; the service then applies your client's own guards and runs the operation.

Base URLs​

EnvironmentBase URL
Testhttps://test-integration-api.tokenizationtr.com
Productionhttps://integration-api.tokenizationtr.com

Endpoint groups​

PrefixWhat it covers
/v2/oauth/tokenToken issuance. See Create a Token
/v2/admin/**Operating the offering: nodes, setups and contracts, wallets, tokens, KYC, fees, currency tokens, OTC and OTC rules, categories, oracles and oracle metrics, ownership changes, platform-owner settings, custody / spot-quote / AI provider settings, supervisors and analytics. Start with Get Tokens
/v2/users/**Serving investors: users and their wallets, migration, purchases, OTC, secondary market, rent, burn and withdraw. Start with Get Tokens by User
/v2/chains, /v2/networks, /v2/gas-sponsor-wallets, /v2/blockchain/gas-feeChain-layer reference data shared by admin and user flows
/v2/distributions/**Distribution token reads
/v2/webhooks/custodialInbound custody webhooks (custody providers only). See Receive Custodial Webhook
/v2/mcpModel Context Protocol transport for MCP-enabled clients

/v1/owners/** is the platform's back channel with owner deployments and is not part of the partner API.

Authentication and guards​

Every /v2/admin/**, /v2/users/**, chain-layer and distribution call needs Authorization: Bearer <access_token> from Create a Token (client_credentials, password or refresh_token grant). The call then passes, in order:

  1. Gateway: the route is on the allow-list (404 otherwise) and the token carries the route's permission (403 otherwise).
  2. Token: valid, not expired, not a refresh token, and still your client's live access token (401 otherwise). Requesting a new token invalidates the previous one.
  3. Client certificate: when your client requires one, the TLS handshake presented the certificate issued to it (401). See mTLS Client Certificates.
  4. IP allow-list: the caller's address is in your client's allowed_ips when the list is not empty (401).
  5. Rate limit: per second / minute / hour (429, code 10011).
  6. Monthly usage limit: see Usages / Score (429, code 10012).

Conventions​

  • Ids are 24-character hex strings. A malformed id is refused with 400, code 10016.
  • Amounts and percentages are decimal strings ("12.5"); whole-token counts stay JSON numbers. See Amounts and Percentages.
  • Listings take page (≥ 1) and per_page (1–100) in the query string and answer {"data": [...], "total": n, "page": p, "per_page": pp}. A filter that matches nothing answers an empty page, not 404.
  • Wallet and network are always yours to choose. Every operation that signs on-chain takes a wallet_id and the network_id it belongs to (or reads them off the record it acts on, such as a listing or an OTC offer). The platform never picks a wallet or derives a network for you; a request without them is refused.
  • Timestamps are ISO 8601 in UTC.

Asynchronous operations​

Deploys, mints, burns, rent distributions, OTC accept/cancel, secondary-market and purchase settlements, withdrawals and similar on-chain operations are accepted with 200 and run in the background. Each such endpoint answers with, or creates, a transaction you poll until its status is final: 3 (done) or 4 (error); the endpoint's page names the read to poll. A failure after acceptance is reported on the transaction, not as an HTTP error. The platform does not call your system back.

Errors​

All endpoints except the token endpoint answer errors as {"code", "domain", "message"}, plus details for validation failures. See Errors.

Postman collection​

A ready-to-import Postman collection with every partner endpoint is linked from the Introduction.