What it covers
New kinds of activity are added as new event types and fields, announced in the changelog.
What you work with
The ids that join the steps are in Identifiers.
Push and pull
The whole picture
- Get a bearer token with your client credentials. Sandbox and authentication.
- Receive webhooks at the endpoint your Securitize contact registered for you: verify the signature, acknowledge with a
2xx, deduplicate oneventId. Receive webhooks. - Reconcile each activity: a subscription by
tokenIssuanceId, a redemption by the redemption’s id and the transfer’stxHash. - Check positions with
GET /assets, and fill any gap from the deposits, transactions and webhook events.
Sandbox and authentication
The base URL and the token endpoint.
Receive webhooks
Verify, acknowledge, deduplicate, apply.
Reconcile a subscription
Cash in, tokens out, joined by
tokenIssuanceId.Reconcile a redemption
Tokens in, cash out, from transfer to payout.
Before you start
- An agreement with Securitize. Your Securitize contact issues your client id and secret, registers your webhook endpoint and hands you its signing secret. The credentials belong to your investor account, and every answer is scoped to it.
- A public HTTPS endpoint that answers
2xxquickly and can verify a signature. - An idempotent handler. Delivery is at least once and can be out of order. Your consumer must be correct when the same event arrives twice, or a later step arrives first.
What makes this API different
- Amounts are integers. Every amount is a string of digits in base units, next to the
decimalsthat interpret it:"500000000"withdecimals2is 5,000,000.00. No rounding, no floating point. See Amounts. - Cash and tokens are separate amounts. A cash movement is in the currency’s minor units, a token movement in the token’s base units. The two meet through the fund’s price, not through the API.
- Steps can arrive out of order. The issuance transaction can arrive before the minting event. Key on ids, never on arrival order.
- Unknown values are normal. New event types,
processTypeandpaymentMethodvalues are added as the API grows. Treat a value you do not know as informational and keep going.