# Sent Compliance

> Retrieves live SMS sender compliance requirements and a setup plan by country and number type usi…

Retrieves live SMS sender compliance requirements and a setup plan by country and number type using Sent MCP tools. Use when a user asks what a market requires, which registration fields or documents to supply, whether an SMS sender can be provisioned here, or for the exact setup call. Use sms-10dlc-registration for US campaign content and policy, and separate WhatsApp or RCS onboarding skills for those channels.

- Page: https://ss33.ai/skills/sentdm/sent-compliance-63151411726
- Publisher: sentdm
- Category: [Legal](https://ss33.ai/skills/category/legal-nrp0ps) › [Regulatory & privacy compliance](https://ss33.ai/skills/category/legal-nrp0ps/regulatory-and-privacy-compliance-u35a11)
- License: MIT
- Source: https://github.com/sentdm/sent-plugin/blob/11e2fd2c09d22840ad3ff82c01410a933563a445/packages/sent/skills/sent-compliance/SKILL.md

## Skill

SKILL.md: https://ss33.ai/api/v1/ss33/download/sentdm/sent-compliance-63151411726

# Sent Compliance

Use the read-only `compliance.requirements` and `compliance.setup_plan` tools before provisioning a dedicated SMS sender. They describe a market; they do not register a sender or mutate a profile.

## Resolve the market

Use client-managed OAuth 2.1/PKCE and never request or expose credentials. Resolve `country` as an ISO 3166-1 alpha-2 code and `type` as `LOCAL`, `MOBILE`, `TEN_DLC` (or `10DLC`), `TOLL_FREE`, `SHORT_CODE`, or `ALPHANUMERIC`. `channel` defaults to `sms`; only SMS is supported. Route WhatsApp to `waba-embedded-signup` and RCS to `rcs-agent-onboarding` rather than interpreting refusal as no requirements.

The optional `profileId` selector is available only for an organization's owned profile. Requirements are account-independent; it does not change the market's rules or make the plan target an existing profile.

## Interpret requirements and plan

1. Call `compliance.requirements` for the selected market. Preserve required flags, conditional rules, options, item fields, sender pattern, and attachment field names.
2. Check `hasRegime` before interpreting an empty requirements list. An empty list with a published regime can mean no fields are demanded; `hasRegime: false` means no schema is published and is not proof that no compliance is required. US `TOLL_FREE` numbers require toll-free verification before production traffic, even when no requirements are returned; never tell the user that a toll-free number needs no registration.
3. Call `compliance.setup_plan` when the user needs the exact setup call. Its `call.tool` is `sender_profiles.create`, with camelCase argument names and null placeholders that must be filled before execution. Do not execute blank values or translate the plan into an invented REST call.
4. If `canCompleteHere` is false, report `blocker` and `attachments`, then hand off document submission to the Sent dashboard or the documented multipart REST workflow. Required uploads cannot be carried through MCP; do not attempt a guaranteed-to-fail create. Optional attachment fields alone do not necessarily block creation.
5. When setup can proceed, hand the completed plan to `sent-profile-provisioning` for scope validation, required idempotency key, payload preview, and explicit confirmation before creation.

The plan creates a new profile. Adding a market to an existing profile requires the dashboard or REST API. It does not establish approval, readiness, consent, or permission to send.

For US 10DLC campaign policy, samples, and opt-in evidence, use `sms-10dlc-registration` after resolving the live market requirements.
