---
title: "Create Compliance Request (Issuer)"
method: POST
path: "/api/stablecoin/v1/issuer/compliance-requests"
tags: ["Stablecoin"]
---

# Create Compliance Request (Issuer)

`POST /api/stablecoin/v1/issuer/compliance-requests`

Submits a freeze or unfreeze compliance request for an address.

## Request body

- object — Request body for creating compliance requests (issuer-initiated). Supports two operation types: - freeze/unfreeze: address-based (address and addressLabel required) - pause/unpause: contract-level, keyed off assetId only Extra fields on the unified body are ignored: address/addressLabel are unused for pause/unpause. The token contract is not a request field — the UI may show it from the asset; the server resolves it from assetId.
  - `address` string — Blockchain address targeted by this request (required for freeze/unfreeze)
  - `addressLabel` string — Human-readable label for the targeted address (required for freeze/unfreeze)
  - `type` 'freeze' | 'unfreeze' | 'pause' | 'unpause', required — Type of compliance operation
  - `assetId` string, uuid, required — Asset identifier
  - `comments` string — Optional notes about the request

## Response `200`

OK

- ComplianceRequestResponse — Detail-view shape — extends ComplianceRequestSummary with the full audit trail.
  - `id` string, uuid, required — Unique identifier for the compliance request
  - `type` 'freeze' | 'unfreeze' | 'pause' | 'unpause', required — Type of compliance operation
  - `status` 'created' | 'pending_approval' | 'approved' | 'confirmed' | 'rejected' | 'cancelled' | 'failed', required — Current lifecycle status
  - `assetId` string, uuid, required — ID of the asset this request applies to
  - `requestSource` 'issuer' | 'bitgo', required — Source that originated this compliance request; trust-initiated requests are surfaced as 'bitgo'
  - `baseAsset` 'gousd' | 'usd1' | 'sofid' | 'cusd' | 'fyusd' | 'qxmp' | 'scaasacme', required — Base stablecoin symbol for the asset
  - `chain` string, required — Blockchain network for the asset
  - `address` string, required — Blockchain address targeted by this request. For freeze/unfreeze this is the wallet; for pause/unpause this is the token contract.
  - `addressLabel` string, required — Human-readable label for the targeted address. For pause/unpause this is the token-contract label.
  - `createdAt` string, date-time, required — Timestamp when the request was created
  - `updatedAt` string, date-time, required — Timestamp when the request was last updated
  - `enterpriseId` string — Enterprise associated with this request. For requestSource 'issuer' this is the enterprise that raised the request. For requestSource 'bitgo' (Trust-initiated) this is the enterprise that issues the asset, when one is configured. Absent when the asset has no configured issuer enterprise (e.g. gousd, which BitGo issues itself) — there is nothing to derive in that case.
  - `userId` string — ID of the user who created the request; omitted when the maker is bitgo-source on issuer-facing responses
  - `comments` string — Optional notes about the request
  - `pendingApprovalId` string — Platform pending-approval ID, present after the request is submitted for approval
  - `bitgoTransferId` string — BitGo transfer ID, present after the transaction is broadcast
  - `transactionHash` string — On-chain transaction hash, present after confirmation
  - `complianceRequestHistory` object[], required
    - `status` 'created' | 'pending_approval' | 'approved' | 'confirmed' | 'rejected' | 'cancelled' | 'failed', required — Lifecycle status at the time of this history event
    - `actorSource` 'issuer' | 'bitgo' | 'system', required — Source that performed this action; trust-initiated actions are surfaced as 'bitgo'
    - `timestamp` string, date-time, required — Timestamp when this transition occurred
    - `actorId` string — ID of the user who performed the action; omitted for system entries and masked for bitgo entries on issuer-facing responses

## Other responses

- `400` — Bad Request
- `401` — Unauthorized
- `403` — Forbidden
- `404` — Not Found
- `500` — Internal Server Error

## Changes

- **2026-09-03** `a7126d55243d` — 1 breaking, 2 info
  - the response property `enterpriseId` became optional for the status `200`
  - the request property `address` became optional
  - the request property `addressLabel` became optional
- **2026-08-19** `70b5f74b1799` — 2 warning, 2 info
  - added the new `pause` enum value to the `type` response property for the response status `200`
  - added the new `unpause` enum value to the `type` response property for the response status `200`
  - added the new `pause` enum value to the request property `type`
  - added the new `unpause` enum value to the request property `type`

[Change history](https://skmtc.dev/bitgo/apis/bitgo-api/changes/api/stablecoin/v1/issuer/compliance-requests/post.md)

---

[API](https://skmtc.dev/bitgo/apis/bitgo-api.md) · [All operations](https://skmtc.dev/bitgo/apis/bitgo-api/llms.txt) · [OpenAPI document](https://skmtc.dev/bitgo/apis/bitgo-api/revisions/292f619d7c1f?raw)
