SettleMint
ConsoleAsset design

Compliance providers

Connect an external verification service to claim topics and control what pausing, revoking, and reactivating each connection changes.

Compliance providers connect an external verification service, such as a KYC, AML, or business-verification integration, to the claim topics your compliance policies check. Adding one provisions a dedicated on-chain issuer identity for that service and registers it as a trusted issuer for each topic you attach. From then on the service's results arrive as signed webhook events: an approval becomes an on-chain claim on the participant's identity, a rejection revokes the claim it issued earlier.

Reach for this page when you integrate a new verification service, widen or narrow the topics it serves, rotate its webhook signing secret, or stop it. You will not need it to check one participant's status; that lives on the participant's own identity record, which reads whichever provider serves the topic it needs.

What you change here reaches further than the screen suggests. A compliance check reads the trusted-issuer registration at the moment it runs, not at the moment a claim was issued. Pausing keeps issuer registrations and stops new claim changes from that provider. Existing claims can still count, subject to expiry and the asset's other rules. Revoking removes the provider's issuer registration. Its claims stop counting in later checks; a holder can still qualify through another trusted issuer or another branch of the policy. The organisation's Audit trail records each change you make here with your name and the role you held at the time.

One provider carries trust from an external service to every compliance check.The external verification service signs webhook events carrying verdicts and monitoring alerts, and never writes on-chain itself. The compliance provider you create on this screen holds an issuer identity on-chain, registered per topic, and turns those events into issued or revoked claims. Every later compliance check reads that registration at check time, not at issue time, so claims count only while the topic stays registered.One provider carries trust from an external service to every compliance check.The same figure as the desktop variant, drawn portrait for phone widths. Signed service events flow into the compliance provider's on-chain issuer identity, and every later compliance check reads that registration at check time, not at issue time.

The service never touches the chain itself. Its results become claims from the provider's issuer identity, and a check honours those claims only while the topic registration stands.

Steps

Open Compliance providers

Open "Compliance", then "Compliance providers". The list shows each provider's topics and status, plus when it last had activity. Providers whose own status is failed or paused sort to the top because those rows need you first; that ordering follows the provider's own status, not the status badge next to it. The badge reads from the topics instead: one failed topic is enough for the row to show "Failed", and topics that disagree with each other show "Mixed", either way regardless of where the row sits in the sort.

Compliance providers list

Screen equivalent: the list shows configured verification integrations, their topics, and their current provisioning state.

Pick the service and its first topic

Select "New provider", choose the service, then confirm the first claim topic on the next step. The wizard offers only topics the chosen service supports, and it selects the topic for you when the service supports exactly one. Services come in two families, and the split decides what you will see later. Identity and business verification services return one terminal verdict per subject. Monitoring services keep sending alerts after the first result and get a "Monitoring history" page the verdict services never show. ComplyAdvantage and Elliptic belong to this second family, along with every Sumsub variant.

For the severity threshold on the same step, the tier you pick is the point at which an incoming alert revokes the subject's claim automatically. An alert below the tier is recorded without touching the claim.

Tier in the pickerA claim is revoked whenChoose it when
"Low (25/100)"Almost any alert arrives; only the weakest signals are recorded without claim removal.Your policy requires automatic revocation at severity 25 or above.
"Medium (50/100)"A moderate signal arrives.Your policy requires automatic revocation at severity 50 or above.
"High (80/100)"A severe alert arrives. The Console proposes this tier by default.Your policy requires automatic revocation at severity 80 or above.
"Critical (95/100)"Only the strongest alerts arrive.Your policy requires automatic revocation at severity 95 or above.

Connect credentials and provision

Enter the credentials the wizard asks for, which differ by service (see Before you start), review the provisioning summary, then select "Verify and provision" and confirm with your PIN. The wizard checks the credentials against the live service first, so a wrong key fails here with the service's own message before on-chain provisioning starts. Correct it and submit again. After validation the platform provisions the issuer identity and registers it on-chain, with three possible endings. "Provider active" means the registration stands. "Provisioning failed" leaves the provider on the list with a "Retry provisioning" control. "Awaiting transaction approval" means the registration is queued behind your organisation's transaction approval policy, and the provider activates once that clears.

Point the service at each topic's webhook

Open the new provider's detail page and find the "Webhooks" table, which carries one row per topic with its own delivery URL and status. Reveal or copy each row's URL into the service's own dashboard so it delivers signed events there. Treat the URL like a credential: its trailing segments identify this provider to the platform. That is why the Console masks them by default, and copying always emits the full address.

Once the service starts delivering, the detail page tells you whether the loop is closing. Verdict services stamp each topic row's last activity with the latest result; monitoring services fill "Monitoring history", which you can filter by topic and search. The "Health" card shows the latest health check, which confirms the stored credential references are present. Its "Test connection" button sends the stored credentials to the service and shows whether the service accepts them, with the service's own message when it refuses; for Sumsub it also confirms the configured level exists. The test changes nothing and needs no PIN. To change the credentials themselves, open "Edit" in the page header and enter the full new set: credentials are write-only, the service checks them before anything is saved, and the replacement asks for your PIN. Webhook signing secrets are rotated per topic under "Webhooks", not in "Edit". The header's status explanation summarises the current state in one line; for a failure, it only names that provisioning failed, so read the "Health" card for the reason.

Growing and stopping the integration

Attach another topic from the detail page with "Add webhook". The provider's existing identity and credentials are reused; the platform only widens its trusted-issuer registration, and the new row gets its own delivery URL, signing secret, and severity threshold. The topic picker hides topics the service does not support and topics already attached.

Stopping happens at two levels, one webhook row or the whole provider, and these four stops differ in how far they reach and how you undo them.

You chooseWhat stopsWhat keeps workingThe way back
"Pause" on one webhook rowDeliveries for that topic keep arriving and get recorded, but no new claim activity happens for it.The provider's other topics, and the row's registration, URL, and signing secret."Resume" on the same row. Nothing needs reconfiguring.
"Revoke" on one webhook rowThat topic's registration. This provider's claims stop counting for the topic.The provider's other topics, and the row's URL and signing secret."Reactivate" on the same row re-registers the topic with the URL and secret intact.
"Pause" on the providerEvery topic's deliveries keep arriving and get recorded, but the platform issues no new claims from any of them.Every trusted-issuer registration. Existing claims can still count subject to expiry and other rules."Resume". Nothing needs reconfiguring.
"Revoke" on the providerEvery registration at once, and the delivery URLs stop accepting events. Claims from this provider stop counting everywhere.Nothing operational. The record stays on the list for your audit trail.None. Provision a new provider with fresh credentials and reattach every topic it served.

The Console refuses to revoke the last active webhook row and tells you to revoke the whole provider instead, so a provider is never left active with nothing it can do. Two grants split the controls here. The Compliance manager grant covers pausing and resuming at either level, along with secret rotation. The Verification policy manager grant covers the registry, from revoking and reactivating a webhook row to attaching a new topic. A colleague who sees "Pause" but not "Revoke" is missing the second grant, not looking at a broken page.

To rotate a webhook's signing secret, pick "Rotate secret" on its row, enter the replacement, and choose a grace window of 15 min, 1 hour, 6 hours, or 24 hours. During the window the platform accepts deliveries signed with either secret, so you can update the service's dashboard without dropping events in between.

Automation note: everything this page does is also exposed through the Platform API. The compliance provider endpoints are not written up separately; browse and call them from the v2 API explorer, which reads the generated contract, to script provisioning across environments.

Troubleshooting

The wizard fails at the last step with an unregistered-topic error

In the wizard's first step, the picker limits itself to topics the chosen service supports; it does not check whether the topic has actually been created on "Verification topics". Pick one that has not, and the wizard still lets you enter credentials and your PIN, then fails at "Verify and provision" with an error naming the topic as not registered on-chain, and nothing is created. Create the topic on "Verification topics" first, then run the wizard again. On an existing provider's detail page, "Add webhook" also hides topics already attached to this provider, since there the point is adding one it does not yet serve.

Provisioning does not complete

A credential the service rejects stops the wizard before anything is created; the message shown is the service's own, so fix the key and resubmit in place. A failure after validation leaves the provider on the list as "Failed"; its status explanation only says provisioning failed, so open the detail page and read the "Health" card for the reason. Select "Retry provisioning" to run the on-chain steps again.

The provider stays Pending

A "Pending" provider is either queued behind your organisation's transaction approval policy or still running its on-chain provisioning steps; Check the approval and workflow status to distinguish an expected wait from a failure. The wizard shows "Awaiting transaction approval" while you are still in it, but once you leave, the list and detail page report "Provisioning is in progress." for both causes alike, with nothing to tell them apart. It activates when an approver clears the queue or provisioning finishes. "Retry provisioning" also appears in this state if the queue entry itself failed.

A provider that was Active now shows Failed

One failed topic makes the list show the whole provider as "Failed". Open the detail page, read the "Health" card, since the status explanation itself carries no detail, and check which topic row turned. Correct what the error names, then use "Retry provisioning".

The last webhook cannot be revoked

That refusal is deliberate: the Console rejects revoking a provider's last active topic row so an empty-but-trusted provider cannot linger. If the provider should stop serving its final topic, revoke the provider itself.

Frequently asked questions

Can two providers serve the same topic?

Yes: "Add webhook" only hides topics already attached to the provider you are editing, so a second provider can register for a topic the first one covers already. That is how you migrate: provision the new provider on the topic, let it issue fresh claims, then revoke the old one once nothing depends on it.

Can I read the credentials back after setup?

No. Credentials are write-only: the platform encrypts stored credentials and does not return their values through the Console. Keep the source values in your own secret store. The one secret you can see again is each webhook row's delivery URL, which reveal and copy controls expose on the detail page.

What happens if a delivery URL leaks?

An event that cannot prove it came from the service is refused before any claim changes. Most rows check a valid signature from the row's signing secret. Jumio's rows also check Basic-Auth credentials against a source-IP allowlist, which you must set during setup since the wizard will not let you finish with an empty one. If the secret leaked too, stage a "Rotate secret" with a short grace window.

Do I have to finish the wizard in one sitting?

Yes. The wizard holds your selections and credentials only in the open session, and leaving it discards them; the Console warns you before you go. Nothing is created before you select "Verify and provision", so an abandoned wizard leaves no half-provisioned provider behind.

On this page