# Compliance modules API

Source: https://docs.settlemint.com/docs/developer-guides/api-integration/compliance-modules
List, register, and uninstall system compliance modules through the DALP API.



Compliance module endpoints manage the modules registered in the system compliance engine. Use them when an integration needs to inspect the active module set, register modules after setup, or uninstall a module that should no longer be part of system-level compliance evaluation.

For reusable asset creation policies, use [Compliance templates](/docs/developer-guides/api-integration/compliance-templates). Templates decide which controls an asset should use. Compliance module endpoints manage the system-level module registry those controls depend on.

## Endpoints [#endpoints]

| Endpoint                                   | Use it for                                                                       |
| ------------------------------------------ | -------------------------------------------------------------------------------- |
| `GET /api/v2/system/compliance-modules`    | List registered system compliance modules with pagination, sorting, and filters. |
| `POST /api/v2/system/compliance-modules`   | Register all available modules, one module type, or a list of module types.      |
| `DELETE /api/v2/system/compliance-modules` | Uninstall one compliance module from the system compliance engine.               |

List responses use the DALP collection envelope with `data`, `meta`, and `links`. Register and uninstall responses return an asynchronous blockchain mutation response for the system.

## List registered modules [#list-registered-modules]

```bash
curl --globoff "$DALP_API_URL/api/v2/system/compliance-modules?page[limit]=20&sort=name" \
  --header "X-Api-Key: $DALP_API_TOKEN"
```

Each item includes:

| Field           | Description                                                                |
| --------------- | -------------------------------------------------------------------------- |
| `id`            | Composite compliance module id built from the registry and module address. |
| `module`        | Compliance module contract address.                                        |
| `typeId`        | Compliance module type id.                                                 |
| `name`          | Module name from indexed system state.                                     |
| `globalConfigs` | Decoded global configuration parameters for that module.                   |

You can filter by `module`, `name`, or `typeId`. The `name` and `typeId` fields are facetable, so clients can build picker filters from the returned `meta.facets` object.

`globalConfigs` is returned for display and review. It is not a filter field.

## Register modules [#register-modules]

Register every available module by sending `"all"`:

```bash
curl --request POST \
  "$DALP_API_URL/api/v2/system/compliance-modules" \
  --header "X-Api-Key: $DALP_API_TOKEN" \
  --header "Content-Type: application/json" \
  --data '{
    "complianceModules": "all"
  }'
```

Register one module by type:

```json
{
  "complianceModules": {
    "type": "identity-verification"
  }
}
```

Register selected modules by sending an array:

```json
{
  "complianceModules": [{ "type": "identity-verification" }, { "type": "country-allow-list" }]
}
```

DALP resolves implementation addresses from indexed Directory state when you omit `implementation`. Only send `implementation` when your deployment uses an approved custom module address for that type.

## Uninstall a module [#uninstall-a-module]

```bash
curl --request DELETE \
  "$DALP_API_URL/api/v2/system/compliance-modules" \
  --header "X-Api-Key: $DALP_API_TOKEN" \
  --header "Content-Type: application/json" \
  --data '{
    "module": "0x71C7656EC7ab88b098defB751B7401B5f6d8976F"
  }'
```

The `module` value is the contract address of the registered compliance module. Read the module list first when you need the current address.

## Related pages [#related-pages]

* [Compliance templates](/docs/developer-guides/api-integration/compliance-templates) for reusable asset creation policies
* [Create asset via API](/docs/developer-guides/asset-creation/create-asset) for using templates during asset deployment
* [Compliance overview](/docs/architecture/security/compliance) for module concepts and transfer checks
