Axion Biz Solutions

Getting started

Axion Biz Solutions doesn't yet have a separate API-key or webhook system for third-party integrations — a client authenticates the same way the staff Dashboard and mobile app do: a JWT obtained from a real staff or customer account. This page is honest about that rather than implying an integration-specific mechanism exists.

1. Authenticate

Obtain an access/refresh token pair with an email or phone identifier and password:

POST /api/v1/auth/token/
curl -X POST https://your-domain/api/v1/auth/token/ \
  -H "Content-Type: application/json" \
  -d '{"identifier": "you@example.com", "password": "..."}'

# 200
{
  "status": "success",
  "message": "",
  "data": {
    "refresh": "eyJhbGciOi...",
    "access": "eyJhbGciOi..."
  }
}

The access token is short-lived (30 minutes); refresh it with POST /api/v1/auth/token/refresh/ (7-day refresh window). Send the access token as Authorization: Bearer <token> on every subsequent request.

2. Identify your business

Axion Biz Solutions is multi-tenant — every request needs to resolve which business's data it's touching. A logged-in staff or customer account resolves this automatically from their own account. For public, unauthenticated storefront reads (product listings, categories), send an X-Company-Slug header instead:

GET /api/v1/products/
curl https://your-domain/api/v1/products/ \
  -H "X-Company-Slug: your-company-slug"

3. Every response is enveloped

Every endpoint — success or error — returns the same envelope shape:

{
  "status": "success" | "error",
  "message": "",
  "data": ...
}

List endpoints paginate inside data:

{
  "count": 62,
  "next": "https://your-domain/api/v1/products/?page=2",
  "previous": null,
  "results": [ ... ]
}

Page size defaults to 20; override with ?page_size= up to a maximum of 100.

Next

See the Products reference for a fully worked example, or browse the endpoint list for every other resource in the sidebar.