---
title: "Connects different external providers with Custody"
method: POST
path: "/v1/domains/{domainId}/compliance/providers"
tags: ["Compliance"]
---

# Connects different external providers with Custody

`POST /v1/domains/{domainId}/compliance/providers`

## Path parameters

- `domainId` string, uuid, required

## Request body

- union
  - object
    - `provider` 'ELLIPTIC', required
    - `credential` object, required
      - `apiKey` string, required
      - `secret` string, required
  - object
    - `provider` 'CHAINALYSIS', required
    - `credential` object, required
      - `apiKey` string, required
  - object
    - `provider` 'NOTABENE', required
    - `credential` object, required
      - `clientId` string, required
      - `clientSecret` string, required
      - `entityDid` string, required
      - `audience` string, required

## Response `202`

Accepted

- ComplianceProviderConnectionResponse
  - `connectionId` string, uuid
  - `provider` 'ELLIPTIC' | 'CHAINALYSIS' | 'NOTABENE'
  - `status` 'CONNECTED' | 'PAUSED'
  - `readyForScreening` boolean
  - `previewScreeningEnabled` boolean

## Other responses

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

---

[API](https://skmtc.net/ripple/apis/ripple-custody-api.md) · [All operations](https://skmtc.net/ripple/apis/ripple-custody-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/ripple/ripple-custody-api/revisions/0b55c0ddf07a/schema)
