SMAO API Documentation

Distributor API v1

Manage partners, customer organizations, plans, usage, and billing.

Distributor API v1 is SMAO's maintained Distributor API. Synaxon and other distribution partners use it at /api/distributor/v1 to manage a partner-based reseller hierarchy and retrieve data for external billing.

The provisioning model

The API manages a three-tier hierarchy with an explicit partner resource:

Distributor
  -> Partner (MSP)
      -> Customer organization
  • Partners are created through /partners. Each partner gets its own internal SMAO organization, returned as partner.organizationId, and can onboard customers from the dashboard.
  • Customer organizations use partnerId to link to their MSP and externalCustomerId as the distributor's reconciliation identifier.
  • Plans are assigned directly per organization through PATCH /organizations/{organizationId}/plan.

Authentication and behavior

Send the SMAO-issued v1 key as Authorization: Bearer <key>. Keys include the partner, organization, and usage permissions documented for each endpoint. Invalid version metadata returns 403 API_VERSION_NOT_ALLOWED.

Errors use the flat { "status": "error", "errorCode", "message" } envelope. The requests-per-minute limit is configured per key and defaults to 60. See Authentication and Errors.

Integration is polling-based; there are no Distributor webhooks.

Operational boundaries

  • /organizations manages end-customer organizations linked to a partner. The MSP's internal organization is identified by partner.organizationId and is not a customer resource.
  • Partner creation attempts to start the MSP organization on a free trial when a trial plan is available. Trial setup is best-effort. The trial is capped by call minutes, not by time; to keep the MSP's own workspace in use beyond it, assign a paid plan with PATCH /partners/{partnerId}/plan — the MSP organization cannot be reached through /organizations/{organizationId}/plan.
  • When contactEmail is supplied, invitation creation and email delivery are best-effort. Reconcile dashboard access separately after provisioning.
  • A partner with an internal MSP organization cannot be deleted through DELETE /partners/{partnerId} while that organization exists. There is no cascade-delete operation.

API reference

Start with the v1 quickstart. The reference below is generated from the v1 OpenAPI spec. The raw spec is served at SMAO_API_URL/api/distributor-docs/v1/openapi.yaml. The bare /api/distributor-docs/openapi.yaml path serves the same contract for saved integrations.

On this page