switch_create_supplier
MUTATES STATE. Create an external supplier vendor trunk (SIP host/port/transport, auth, codecs, default rate, capacity, CPS, settlement mode) and/or its SMS delivery (HTTP URL or SMPP bind). Needs a label plus at least one way to deliver traffic: sipHost, smsDeliveryUrl, or smppHost with smppSystemId. A new trunk may be held as draft until it passes readiness checks. The provisioning entry point for a termination vendor. Requires an active Switch subscription (402 SWITCH_SUBSCRIPTION_REQUIRED otherwise) and a full-access API key (scoped keys need switch:manage). Test keys are NOT sandboxed here: they read and change your live Switch data.
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"label": "<label>"
},
"name": "switch_create_supplier"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| label | Yes | Supplier name | |
| maxCps | No | Max calls per second | |
| status | No | Trunk status | |
| balance | No | Prepaid credit remaining, in USD | |
| sipHost | No | SIP host IP/hostname (voice termination) | |
| sipPort | No | SIP port | |
| smppTps | No | SMPP throughput cap, messages per second | |
| capacity | No | Channel capacity (concurrent calls) | |
| currency | No | ISO 4217 currency code (default USD) | |
| smppHost | No | SMPP SMSC host | |
| smppPort | No | SMPP port | |
| transport | No | Transport; defaults udp | |
| techPrefix | No | Tech prefix (digits/*/# only) | |
| portalEmail | No | Supplier portal login email | |
| smppBindType | No | SMPP bind type | |
| smppPassword | No | SMPP password (stored sealed, never returned) | |
| smppSystemId | No | SMPP system_id (max 16) | |
| settlementMode | No | AP payable or prepaid wallet draw | |
| smsDeliveryUrl | No | HTTP SMS delivery URL | |
| sipAuthPassword | No | SIP auth password | |
| sipAuthUsername | No | SIP auth username | |
| supportedCodecs | No | Codec list | |
| billingIncrement | No | Billing increment in seconds as "initial/subsequent", e.g. 60/60 | |
| smsDeliveryMethod | No | SMS termination: http (smsDeliveryUrl) or smpp (bind to the SMSC below) | |
| defaultRatePerUnit | No | Default cost rate per unit in USD (per minute for voice, per message for SMS) |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | string | |
| label | No | string | |
| maxCps | No | integer | |
| source | No | string: "external" for a carrier you entered; "marketplace" for a trunk promoted from a marketplace purchase | |
| status | No | string: One of: active, disabled, draft, testing, draining, fault. | |
| balance | No | Prepaid credit remaining with this supplier (prepaid settlement) | |
| sipHost | No | string: Null on a marketplace trunk: the seller address is never disclosed | |
| sipPort | No | integer | |
| capacity | No | integer: Max concurrent channels | |
| currency | No | string | |
| createdAt | No | string: ISO-8601 timestamp (UTC) | |
| mediaMode | No | string: One of: proxy, direct. | |
| reachable | No | boolean | |
| transport | No | string: One of: udp, tcp, tls. | |
| updatedAt | No | string: ISO-8601 timestamp (UTC) | |
| supplierId | No | string: The owning provider; null = ungrouped | |
| techPrefix | No | string | |
| reachCheckedAt | No | string: ISO-8601 timestamp (UTC) | |
| settlementMode | No | string: One of: ap, prepaid. | |
| sipAuthUsername | No | string | |
| smppPasswordSet | No | boolean | |
| billingIncrement | No | string | |
| smsDeliveryMethod | No | string: One of: http, smpp. | |
| defaultRatePerUnit | No | Cost per minute used when no deck row matches | |
| sipAuthPasswordSet | No | boolean: Whether a SIP password is stored. The value is only readable via GET /switch/suppliers/{id}/credentials |