Documentation

Everything you need to build on Azotte.

Organized by task. Written clearly. Kept current by the engineers who ship the platform. Start with the basics or dive into specific areas.

Getting Started

Azotte is built to be usable in an afternoon and ready for production within a week. This section walks you through the critical path.

1. Create a workspace

Sign up at the Azotte dashboard. Each workspace is a tenant with its own configuration, storefronts, and API keys.

2. Configure a storefront

A storefront represents one commercial boundary - country, brand, or channel. Set its currency, supported PSPs, and tax scheme.

3. Define entitlements and bundles

Model what customers receive at the feature level. Group entitlements into bundles that match your pricing intent.

4. Integrate the SDK

Install the SDK for your stack, store the API key securely, and call azotte.subscriptions.create() on checkout completion.

5. Receive webhooks

Register a webhook endpoint. Azotte will deliver every lifecycle event - signed, idempotent, and replayable.

API Reference

The Azotte REST API lives at https://api.azotte.com/v1. All endpoints use standard HTTP verbs, accept and return JSON, and expect Bearer token authentication.

Webhooks

Webhooks are delivered in order, at-least-once, and signed with HMAC-SHA256. Retries follow exponential backoff up to 24 hours. Failed events land in a replayable dead-letter queue.

Core event families:

Core Concepts

Azotte separates product logic from revenue logic. A subscription is the ongoing relationship. A bundle is what the customer bought. An entitlement is what they can access. A storefront is where the sale happened.

Changes to bundles, pricing, or rules never invalidate existing subscriptions. That's the guarantee that makes migrations and experiments safe.