What you get
When your account is provisioned you receive:Account provisioning (member code, exchange credentials, callback URL,
scopes) is handled by your onboarding contact. This guide assumes you already
have an active account.
Base URL
/api/investors/v1,
/api/orders/v1, …). Examples in this documentation use
https://api.example.com as a placeholder.
Step 1 — Get a bearer token
expires_inis in seconds. Request a fresh token before it expires; there is no refresh token — call/tokenagain with your credentials.scopeis the space-separated list of permissions your account holds. Calls that need a scope you don’t have return403 FORBIDDEN.
Auth failures
Step 2 — Call the API
Send the token as a bearer header on every other endpoint:GET /api/auth/v1/me echoes back what your token can do:
nse_credentials_configured: false means the exchange credentials behind your
account are incomplete — orders and payments will fail until that is resolved
with your onboarding contact. Credential values are never returned, in any form.
Revoking a token
204. The presented token is invalidated immediately.
Request conventions
Every endpoint in this API shares the following conventions.Response envelope
Success:Error codes
Request ID
SendX-Request-Id: <your-uuid> and it is echoed back on the response and in
every error envelope’s request_id. Omit it and the server generates one.
Quote this value in support requests.
Idempotency
SendIdempotency-Key: <uuid> on unsafe (write) calls.
- First call: the response is stored against
(account, key, body fingerprint)for 24 hours. - Replay with the same body: the stored response is returned verbatim with
Idempotency-Replayed: true. - Same key, different body:
409 IDEMPOTENCY_KEY_REUSED.
Idempotency is currently enforced on
POST /api/orders/v1/ — the call where
it matters most. Sending the header on other writes is harmless and
forward-compatible.Pagination
List endpoints take?limit=<n>&cursor=<opaque> (max limit 200) and return:
next_cursor back as cursor for the next page. Absence of
next_cursor means the last page.
Types
- Amounts are JSON numbers, never strings.
- Dates are
YYYY-MM-DD. - Timestamps are RFC3339 UTC.
- Enums are
SCREAMING_SNAKE.
Next steps
1
Create an investor
Create an investor and wait for
status: REGISTERED.2
Create an investment account
Create an investment account to group the
investor’s products.
3
Register a mandate (optional)
Create a mandate for auto-debit payments.
4
Place and pay for an order
Create a purchase order and settle it.