Skip to main content
POST
cURL
Create a group — a multi-party deal/matter workspace that bundles the customers involved in one transaction. For real estate and buyer’s agents this is typically one group per property: wire your CRM’s “property created” webhook to this endpoint, passing the property address as name and your listing/deal id as reference.

Template or explicit parties

Provide either:
  • templateId — the template’s roles become the group’s party slots and any folded-in workflow is started. Discover ids with List group templates.
  • parties — explicit role slots, each optionally pre-attached to a customer by Instant Compliance UUID (customerId) or by your own id (customerExternalId, as supplied on POST /customers).
Not both — a template defines its own slots. When creating from a template, attach customers afterwards in-app (or create the customers first via POST /customers and use explicit parties instead).

Duplicate guard

When reference is supplied and an active group with the same reference already exists, that group is returned with 200 OK and nothing is created. This makes CRM webhook retries and full re-syncs safe by construction. New groups return 201 Created. For transport-level retry safety you can additionally send an Idempotency-Key header (24-hour replay window).

Requirements

  • Scope: groups:write
  • The Groups feature must be enabled for your organisation — otherwise the request fails with 403 feature_disabled.

After creation

The response’s url deep-links to the group workspace in the Instant Compliance app, where your compliance team sees the parties, requests documents, and runs verification. Nothing is charged and no verification is triggered by this call.

Authorizations

Authorization
string
header
required

Bearer API key issued from Settings → Developers in your Instant Compliance organisation. Format: ic_live_….

Headers

Idempotency-Key
string

Caller-supplied unique key for safe retries. Repeat the same key within 24 hours and we replay the original response instead of repeating the side effect. Reusing the key with a different request body returns 409 idempotency_conflict.

Maximum string length: 255

Body

application/json
name
string
required

Display name — e.g. the property address.

Maximum string length: 255
reference
string

Your stable deal/listing id. Also the duplicate guard — an existing active group with the same reference is returned instead of creating a twin.

Maximum string length: 255
templateId
string<uuid>

Group template to instantiate (see GET /group-templates). Mutually exclusive with parties.

parties
object[]
Maximum array length: 50

Response

An active group with this reference already exists — returned unchanged.

id
string<uuid>
required
name
string
required
reference
string | null
required
status
enum<string>
required
Available options:
ACTIVE,
ON_HOLD,
COMPLETE,
ARCHIVED
template_id
string<uuid> | null
required
parties
object[]
required
url
string<uri>
required

Deep link to the group workspace in the Instant Compliance app.

created_at
string<date-time>
required
updated_at
string<date-time>
required
industry
string | null