MyComm docs
Menu

Changelog

Changes to the Public API (/v1) and the Partner API (/partner/v1). From 1.0.0 on, /v1 changes only by adding: new endpoints, new optional request fields, new response fields, new enum values, new error codes and new event types. Anything that would break a working integration waits for /v2. A field or endpoint that will be removed in /v2 is announced here first, with a Deprecation and Sunset header on its responses.

1.0.0#

The first stable contract. The OpenAPI documents say info.version: 1.0.0, and the official packages that match it are mycomm/mycomm-php 1.0.0, mycomm/mycomm-laravel 1.0.0 and @mycomm/connect 1.0.0.

What the contract is, in short:

  • Requests. JSON with Content-Type: application/json (415 UNSUPPORTED_MEDIA_TYPE otherwise), at most 1 MB; an empty POST body counts as {}. Unknown request fields are ignored. Every POST takes an Idempotency-Key.
  • Errors. One envelope, {"error": {"code", "message", "details", "request_id", "doc_url"}}, with a fixed status per code and typed details. Branch on code, never on message. The full list is the error reference.
  • Keys. mc_live_ and mc_partner_ tokens with a checksum, so a mistyped key fails at once and secret scanners can recognise one. Keys can be rotated with a grace period (POST /v1/api-keys/{id}/rotate).
  • Webhooks. Every event carries api_version and a typed type; signatures are MyComm-Signature: t=...,v1=... over <t>.<raw body>. The event catalogue lists every event with a sample payload.
  • Responses. Clients ignore response fields, enum values and error codes they do not know; the API only adds them within v1.

Before 1.0.0#

The contract changed freely while it was a release candidate (1.0.0-rc.N), without aliases or deprecation windows. Those changes are not listed here; an integration built against a release candidate should be checked against the API reference and moved to the 1.0.0 packages.