К основному содержанию
скилл CX Codex GP ChatGPT официальный · OpenAI

twilio-regulatory-compliance-bundles — скилл для Codex

Скилл помогает подготовить Regulatory Bundle Twilio для международного номера: от проверки требований страны до отправки на рассмотрение.

Установить в Codex · Через Skills CLI (Vercel) Все способы и платформы ↓
npx skills add openai/plugins --skill twilio-regulatory-compliance-bundles -a codex
Открыть на GitHub

Что делает twilio-regulatory-compliance-bundles

Скилл ведёт по шагам работы с Regulatory Bundle: запросить требования для страны и типа номера, создать End-User и Supporting Documents, связать их с bundle, запустить проверку и отправить bundle на рассмотрение. После одобрения можно привязать bundle при создании номера.

В примерах используются Python, requests и Twilio API; для создания номера показан клиент twilio.rest. Нужны TWILIO_ACCOUNT_SID и TWILIO_AUTH_TOKEN. Требования зависят от страны и типа номера, поэтому их нужно получать через Regulations, а не фиксировать в коде. Если проверка вернула ошибки, исправьте существующий bundle и запустите её снова.

Для обновления одобренного bundle описана работа с копией и заменой элементов без отключения номеров. В сценарии с несколькими клиентами каждому нужен собственный bundle, а сведения End-User должны относиться к фактическому клиенту.

Какие задачи решает

  • проверить требования к номеру для страны и его типа
  • собрать bundle из End-User и подтверждающих документов
  • найти ошибки проверки bundle и подготовить его к отправке
  • обновить одобренный bundle без отключения номеров
  • разделить bundles между клиентами и субаккаунтами Twilio

Примеры запросов агенту

  • Проверь требования Twilio для местного бизнес-номера в Германии и перечисли нужные документы.
  • Составь Python-последовательность для создания End-User и Supporting Documents, их привязки к bundle и проверки.
  • Как обновить одобренный bundle после изменения требований, не отключая номера?

Как установить twilio-regulatory-compliance-bundles

1Через Skills CLI (Vercel)

npx skills add openai/plugins --skill twilio-regulatory-compliance-bundles -a codex

2Вручную: положить файлы

.agents/skills/twilio-regulatory-compliance-bundles/SKILL.md

Для всех проектов — ~/.agents/skills/

По шагам, с командами для каждой платформы: Скиллы Codex: как установить, где лежат и как вызвать

Вопросы о twilio-regulatory-compliance-bundles

Как установить twilio-regulatory-compliance-bundles в Codex?

Выполните npx skills add openai/plugins --skill twilio-regulatory-compliance-bundles -a codex. Файл скилла будет доступен по пути .agents/skills/twilio-regulatory-compliance-bundles/SKILL.md.

Что делает twilio-regulatory-compliance-bundles?

Скилл помогает пройти процесс соответствия требованиям Twilio для международных номеров: создать bundle, прикрепить данные и документы, проверить его и отправить на рассмотрение.

Что делать, если проверка bundle завершилась ошибкой?

Исправьте указанные поля в существующем bundle и запустите проверку повторно. Создавать новый bundle вместо исправления не нужно.

Исходный текст

SKILL.md · MIT
---
name: twilio-regulatory-compliance-bundles
description: >
  Manage regulatory compliance for international phone numbers. Covers
  what bundles are, which countries require them, how to create End-Users
  and Supporting Documents, evaluate and submit bundles, fix evaluation
  failures, update bundles when regulations change, and ISV multi-account
  patterns. Use this skill when provisioning numbers outside the US.
---

## Overview

Phone numbers are national resources — many countries require **identity verification of the end-user** before provisioning. A Regulatory Bundle is a container holding an End-User record + Supporting Documents that proves your right to use numbers in a specific country.

**Not all countries require bundles** — check the [Regulatory Guidelines page](https://www.twilio.com/en-us/guidelines/regulatory) for country-specific requirements. If a country requires a bundle, provisioning fails without one.

---

## Key Concepts

| Resource | What it is |
|----------|-----------|
| **Regulation** | Country-specific requirement defining what End-User types and document types are needed |
| **Bundle** | Container that holds an End-User + Supporting Documents for a specific regulation |
| **End-User** | The entity answering calls or receiving messages (`individual` or `business` type) |
| **Supporting Document** | Identity/address verification documents (business registration, proof of address, etc.) |
| **Evaluation** | Synchronous check that validates a bundle against its regulation before submission |
| **Item Assignment** | Links an End-User or Supporting Document to a Bundle |

---

## Quickstart: Provision a Number with a Bundle

### Step 1 — Query the Regulation

Find out what's required for the country and number type:

**Python**
```python
import os, requests

account_sid = os.environ["TWILIO_ACCOUNT_SID"]
auth_token = os.environ["TWILIO_AUTH_TOKEN"]

# What does Germany require for local business numbers?
regulations = requests.get(
    "https://numbers.twilio.com/v2/RegulatoryCompliance/Regulations",
    params={"IsoCountry": "DE", "NumberType": "local", "EndUserType": "business"},
    auth=(account_sid, auth_token)
).json()

for reg in regulations["results"]:
    print(f"Regulation: {reg['sid']}")
    print(f"Requirements: {reg['requirements']}")
```

### Step 2 — Create an End-User

**Python**
```python
end_user = requests.post(
    "https://numbers.twilio.com/v2/RegulatoryCompliance/EndUsers",
    data={
        "FriendlyName": "Acme GmbH",
        "Type": "business",
        "Attributes": '{"business_name": "Acme GmbH", "business_registration_number": "HRB12345"}'
    },
    auth=(account_sid, auth_token)
).json()
```

### Step 3 — Upload Supporting Documents

**Python**
```python
document = requests.post(
    "https://numbers.twilio.com/v2/RegulatoryCompliance/SupportingDocuments",
    data={
        "FriendlyName": "Acme Business Registration",
        "Type": "business_registration",
        "Attributes": '{"business_name": "Acme GmbH"}'
    },
    auth=(account_sid, auth_token)
).json()
```

### Step 4 — Create a Bundle and Assign Items

**Python**
```python
# Create the bundle
bundle = requests.post(
    "https://numbers.twilio.com/v2/RegulatoryCompliance/Bundles",
    data={
        "FriendlyName": "Germany Local - Acme",
        "RegulationSid": regulations["results"][0]["sid"],
        "IsoCountry": "DE",
        "EndUserType": "business",
        "Email": "[email protected]"
    },
    auth=(account_sid, auth_token)
).json()

bundle_sid = bundle["sid"]

# Assign End-User to bundle
requests.post(
    f"https://numbers.twilio.com/v2/RegulatoryCompliance/Bundles/{bundle_sid}/ItemAssignments",
    data={"ObjectSid": end_user["sid"]},
    auth=(account_sid, auth_token)
)

# Assign Supporting Document to bundle
requests.post(
    f"https://numbers.twilio.com/v2/RegulatoryCompliance/Bundles/{bundle_sid}/ItemAssignments",
    data={"ObjectSid": document["sid"]},
    auth=(account_sid, auth_token)
)
```

### Step 5 — Evaluate and Submit

**Python**
```python
# Run evaluation (synchronous — returns field-level failures)
evaluation = requests.post(
    f"https://numbers.twilio.com/v2/RegulatoryCompliance/Bundles/{bundle_sid}/Evaluations",
    auth=(account_sid, auth_token)
).json()

if evaluation["status"] == "noncompliant":
    for violation in evaluation["results"]:
        print(f"Field: {violation['friendly_name']} — {violation['description']}")
    # Fix the issues, then re-evaluate
else:
    # Submit for review
    requests.post(
        f"https://numbers.twilio.com/v2/RegulatoryCompliance/Bundles/{bundle_sid}",
        data={"Status": "pending-review"},
        auth=(account_sid, auth_token)
    )
```

### Step 6 — Provision Number with Bundle

Once the bundle is approved:

**Python**
```python
from twilio.rest import Client
client = Client(account_sid, auth_token)

number = client.incoming_phone_numbers.create(
    phone_number="+4930xxxxxxx",
    bundle_sid=bundle_sid
)
```

---

## Updating an Approved Bundle

When regulations change, you'll receive an email. Update without deprovisioning numbers:

1. **Copy** the approved bundle into a mutable state via the Bundle Copies resource
2. **Update** the End-User or Supporting Document on the copy
3. **Re-evaluate** the copy
4. **Replace** items in the original bundle via the Replace Items resource

Phone numbers remain provisioned throughout this process.

**Alternative:** Create a new bundle → get it approved → remap numbers to the new bundle.

**Docs:** [Bundle Copies](https://www.twilio.com/docs/phone-numbers/regulatory/api/bundles-copies) | [Replace Items](https://www.twilio.com/docs/phone-numbers/regulatory/api/bundles-replace-items)

---

## ISV / Multi-Account Pattern

If managing Twilio subaccounts for multiple customers:

- **Each customer needs their own bundle** — Do not reuse your business information in customer bundles
- Use the **Bundle Clones** resource to duplicate bundle structures across subaccounts
- End-User records must reflect the actual end-user (your customer), not you

**Docs:** [Bundle Clones](https://www.twilio.com/docs/phone-numbers/regulatory/api/bundles-clones)

---

## CANNOT

- **Cannot provision numbers without required bundles** — Provisioning fails immediately. Check Regulations resource first.
- **Cannot reuse one bundle across different number types** — Each bundle is tied to a specific regulation (country + number type + end-user type).
- **Locality-matching addresses required in ~33 countries** — Germany (and others) require the End-User address to be within the region of the phone number prefix, not just any address in the country. US HQ address will fail for a Berlin number.
- **Cannot hardcode regulation requirements** — Regulations change periodically. Always query the Regulations resource dynamically.
- **Do not create a new bundle when evaluation fails** — Fix the existing bundle. Creating new ones wastes time and clutters your account.
- **Cannot reuse your ISV info in customer bundles** — Bundles must represent the actual end-user. Twilio audits this.
- **Some markets are business-only** — Individual provisioning not allowed. Check the `EndUserType` in the Regulation.

---

## Next Steps

- **Choose number type before provisioning:** `twilio-numbers-senders`
- **Register numbers after provisioning:** `twilio-compliance-onboarding`
- **Country-specific requirements:** [Regulatory Guidelines](https://www.twilio.com/en-us/guidelines/regulatory)
- **API reference:** [Regulatory Compliance API](https://www.twilio.com/docs/phone-numbers/regulatory/api)

© Twilio · MIT · openai/plugins

Похожие скиллы

Все скиллы по теме «Бэкенд и API» →
mcp-builder официальный anthropics Скилл проводит через создание MCP-сервера на TypeScript или Python: от изучения протокола до тестов и оценки качества. 130 949установок claude-api официальный anthropics Справочник по Anthropic SDK и API Claude для генерации кода без устаревших параметров и выдуманных методов. 74 198установок lark-im larksuite Скилл подключает Lark IM к агенту: он отправляет сообщения, ищет историю, управляет чатами и файлами. Подойдёт для задач вокруг командных коммуникаций. CX Codex +1 472 900установок lark-event larksuite Слушает события Lark/Feishu и отдаёт их потоком NDJSON. Подходит для ботов, обработчиков сообщений и долгих подписчиков. CX Codex +1 466 800установок caveman-discover JuliusBrussee Находит точки вызова LLM в репозитории и размечает их воркфлоу для Caveman Cloud, чтобы расходы на токены не сливались в одну общую кучу. CX Codex +1 104 400установок migration JuliusBrussee Скилл задаёт правила безопасных миграций схем, данных и API с обязательным откатом. Пригодится при изменениях, где нельзя терять данные или ломать совместимость. CX Codex +1 103 900установок

Из того же набора528

Весь набор →
twilio-sendgrid-email-send Скилл учит агента отправлять письма через SendGrid v3 Mail Send API: одиночные, пакетные с шаблонами, отложенные и с вложениями. Нужен ключ SendGrid с префиксом SG. CX Codex GP ChatGPT ★ 7 604звёзд репо twilio-sendgrid-account-setup Скилл подготавливает SendGrid для отправки писем: API-ключи, доменную аутентификацию и SDK. Нужен перед другими скиллами SendGrid. CX Codex GP ChatGPT ★ 7 604звёзд репо twilio-security-compliance-hipaa Скилл объясняет, как подготовить аккаунт Twilio к работе с PHI: от BAA и пометки HIPAA Project до ограничений отдельных сервисов. Пригодится при разработке медицинских сценариев на Twilio. CX Codex GP ChatGPT ★ 7 604звёзд репо twilio-security-api-auth Помогает выбрать способ аутентификации Twilio и подключить его правильно, чтобы Auth Token не утёк в продакшен. CX Codex GP ChatGPT ★ 7 604звёзд репо twilio-rcs-messaging Скилл для Codex и ChatGPT, который ведёт от онбординга RCS-отправителя до отправки карточек и каруселей через Twilio. CX Codex GP ChatGPT ★ 7 604звёзд репо twilio-numbers-senders Помогает выбрать тип номера или отправителя Twilio до начала разработки. Пригодится, если нужно заранее учесть функции канала и требования к регистрации. CX Codex GP ChatGPT ★ 7 604звёзд репо twilio-notifications-alerts-advisor Помогает выбрать архитектуру транзакционных уведомлений: канал, срочность, подтверждение доставки и запасные варианты. CX Codex GP ChatGPT ★ 7 604звёзд репо twilio-messaging-services Создаёт и настраивает Twilio Messaging Services для отправки SMS и других сообщений через пул отправителей. Нужен для production-инфраструктуры. CX Codex GP ChatGPT ★ 7 604звёзд репо

Спонсоры проекта

Компании, которые помогают держать аналитику открытой