Build - the name of the maintenance release build the change was introduced in.
Service - the name of the service/services which is/are affected.
Method - the name of the method/methods which is/are affected.
Message - the message that explains what was changed.
Schema changed - shows whether it is required to rebuild WSDL/XSD-generated stubs for .net, Java and other static typing languages.
TT - a link to a ticket related to the change.
Build | Service | Method | Message | Schema changed | Backward compatible | TT | Resolution for system update |
|---|---|---|---|---|---|---|---|
| MR131-0 | Connection | add_connection | "capacity" is no longer mandatory. It is meaningful only for voice connections and is required to be a positive value only when utilization-based routing is enabled; otherwise it may be omitted (a missing value defaults to 0). | No | Yes | YT:BA-47376 | |
| MR131-0 | Connection | add_connection | Generic connections now accept "node" and "port" configuration and the Messaging service type. The duplicate-connection check for a Generic connection runs only when "port" is set, so multiple port-less Generic connections from different vendors may coexist on the same node. | No | Yes | YT:BA-47376 | |
| MR131-0 | Invoice | upload_invoice_pdf | Response field "sucess" renamed to "success" (typo fix) | Yes | No | YT:BA-47038 | |
| MR131-0 | DiscountPlan | add_vd_threshold | For a Service Wallet (top-up) bundle item, notify_threshold_type now accepts only remaining_amount; other values (and a non-negative warning_threshold) are rejected with a fault instead of silently saving a zero threshold. | No | No | YT:BA-47513 | |
| MR131-0 | ServicePolicy | get_attribute_list | A new | Yes | Yes | YT:BA-47205 | |
| MR131-0 | Service | get_addon_mart_modules | New method was added. It returns the list of Add-on Mart modules available for the current user, together with each module's subscription status, trial and subscription dates, and the minimum PortaSwitch release required. | Yes | Yes | YT:BA-47402 | |
| MR131-0 | Customer | assign_bundle | New API methods | Yes | Yes | YT:BA-45352 | |
| MR131-0 | Customer | get_vd_counter_info | Input: accepts a poolable counter id i_cqvd_counter (one-of with i_cvd_counter). Output: returns i_cqvd_counter | Yes | Yes | YT:BA-45352 | |
| MR131-0 | Customer | get_vd_counter_list | Output: gains i_cqvd_counter and entitled_account_count | Yes | Yes | YT:BA-45352 | |
| MR131-0 | Customer | get_full_vd_counter_info | Output: gains entitled_account_count | Yes | Yes | YT:BA-45352 | |
| MR131-0 | Customer | get_vd_counter_history_list | Input: accepts i_cqvd_counter (one-of with i_cvd_counter). Output: history items return i_cqvd_counter | Yes | Yes | YT:BA-45352 | |
| MR131-0 | Customer | get_vd_counter_aggregate_history | Output: aggregate items return i_cqvd_counter | Yes | Yes | YT:BA-45352 | |
| MR131-0 | Customer | get_vd_notification_list | Input: gains an addon_priority filter (to fetch poolable-bundle notifications). Output: items gain addon_priority; the money counter becomes optional (absent for poolable notifications) | Yes | Yes | YT:BA-45352 | |
| MR131-0 | DiscountPlan | get_discount_list | Input: the i_vd_type filter accepts new value 5 = entitlement. Output: bundle items can report item type 5 = entitlement, priority -11 = Poolable Quotas, and the extended exclusive behavior | Yes | Yes | YT:BA-45352 | |
| MR131-0 | DiscountPlan | get_discount_info | Output: a bundle item can report item type 5 = entitlement, priority -11 = Poolable Quotas, and the extended exclusive behavior | Yes | Yes | YT:BA-45352 | |
| MR131-0 | DiscountPlan | get_discount_plan_list | Input: the vd_bundle_type filter accepts quotas and poolable quotas. Output: bundle info can report those bundle types | Yes | Yes | YT:BA-45352 | |
| MR131-0 | DiscountPlan | get_discount_plan_info | Output: bundle info can report bundle types quotas and poolable quotas | Yes | Yes | YT:BA-45352 | |
| MR131-0 | Product | add_product | Enabling a service feature whose service is not included in the product is now rejected with a fault (e.g. "emergency" on a product without the Voice Calls service). Disabling, clearing, or inheriting such a feature is still allowed. | No | No | YT:BA-47586 | Stop enabling service features for services the product does not include. |
| MR131-0 | Account | add_account | Enabling a service feature whose service is not covered by the account's product or add-ons is now rejected with a fault. Disabling, clearing, or inheriting such a feature is still allowed. | No | No | YT:BA-47586 | Stop enabling service features for services not included by the account's product or add-ons. |
| MR131-0 | Invoice | review_invoice | Added a new value | Yes | Yes | YT:BA-47673 | |
| MR131-0 | BundlePromotion | delete_bundle_promotion | delete_bundle_promotion is now allowed for the reseller realm — a reseller/sub-reseller can delete a bundle promotion they own (previously admin-only). Deletion is still rejected when the promotion is in use. | Yes | Yes | YT:BA-47704 | |
| MR131-0 | DID | get_vendor_batch_list | These two methods were removed from the reseller realm and are now available to the admin realm only. Resellers can no longer read DID vendor batches — the reseller access was legacy (from the retired demo signup portal) and had no operational purpose. The admin-realm contract is unchanged. | Yes | No | YT:BA-37261 | Reseller integrations that read DID vendor batches should switch to the admin realm. |
| MR131-0 | Generic | get_config_data | Extended with Security section and EncryptSIMCardKeyMaterial option inside. Visible only for admin and reseller realms. The UI must warn the users that SIM card | Yes | Yes | YT:BA-47773 | |
| MR131-0 | XDRMediator | get_xdr_list | Output: gains a new "disconnect_time" field — the date and time when the billing session was disconnected, analogous to "connect_time". It is taken from the stored disconnect timestamp or derived from connect time plus session length, and is empty for records with no voice-style session (e.g. non-voice or error records). | Yes | Yes | YT:BA-47741 | |
| MR131-0 | Generic | get_session_data | Output: gains a new operating_mode field reporting the operating mode of the PortaSwitch site that served the request, so an integration can poll it out-of-band and detect when it is safe to route API traffic back to the main site. Possible values:
| Yes | Yes | YT:BA-47641 | |
| MR131-0 | Account | get_emergency_details | Added an optional | Yes | Yes | YT:BA-47635 | |
| MR131-0 | IPTV | get_channel_package_list | The IPTV methods | Yes | Yes | YT:BA-47840 | |
| MR131-0 | Destination | get_dest_group_set_list | Input structures were extended with a new flag - "get_group_count". If set to '1', the "group_count" field is returned in the DestGroupSetInfo structure. It holds the number of top-level code groups in the destination group set. | Yes | Yes | YT:BA-46855 | |
| MR131-0 | Account | add_followme_number | "redirect_number", "name" and "domain" are no longer mandatory when a follow-me number is created, matching the update path which already allowed them to be empty. A follow-me number can now exist with call forwarding enabled and no destination configured. The format of a supplied "domain" is still validated, and a non-UDP transport without a domain falls back to UDP. | No | Yes | YT:BA-47489 | |
| MR131-0 | Account | get_account_followme | "redirect_number", "name" and "domain" are now nillable in the FollowMeNumberInfo structure - when empty they are returned as null instead of being omitted from the response, matching "period", "period_description" and "max_sim_calls". | Yes | Yes | YT:BA-47489 | |
| MR131-0 | Account | update_followme_number_list | Pushing more than one brand new entry (without "i_follow_me_number") in a single request is now rejected for the Simple forwarding and Forward to SIP URI modes, which allow only one follow-me number per account. Previously this limit was not enforced for new entries added through this method. | No | No | YT:BA-47489 | Add follow-me numbers one per request for these forward modes. |
| MR131-0 | DiscountPlan | add_discount | Quota bundle items a not allowed for discount bundle type anymore (existing bundles with quota items are not affected) Add - returns a fault when adding a quota item with a usage_period to a discount ("volume discount") bundle. | No | No | YT:BA-47846 | |
| MR131-1 | Template | clone_template | A reseller can now clone a rate upload template under a name that is already used by an administrator - the new name is checked only within the owner's own namespace instead of across the whole environment, and the clone is stored under the reseller's own ownership. Templates of other types keep the administrator namespace and are unchanged. | No | Yes | YT:BA-47229 | |
| MR131-1 | Template | update_template | Renaming a template to a name already taken within the same owner namespace is now refused with the "update_template.not_unique_name" fault instead of failing on a database constraint. Changing only the letter case of the current name is allowed. | No | Yes | YT:BA-47229 | |
| MR131-1 | AccessControl | generate_mfa_config | A user who must enroll in two-factor authentication before signing in can now complete the mandatory enrollment while holding only the Read permission on their own two-factor authentication ( | No | Yes | YT:BA-47923 | |
| MR131-1 | Notification | add_notification_preset | A notification preset of the "user" type can no longer be created with an owner ("i_customer") - such a preset could never be assigned to anyone, because only a preset without an owner can belong to an administrator. A reseller session is offered the "customer_class" type only; an administrator can still create a "user" preset without an owner. | No | No | YT:BA-47853 | Create user-type notification presets without an owner; use the customer class type for presets managed by a reseller. |
| MR131-1 | User | get_user_info | Administrators whose login is listed in the "Superusers" configuration option are now protected from API users that are not superusers. "get_user_info" and "get_user_list" return such a record reduced to "i_user", "login", "description", "email", "status", "class", "i_acl", "i_role", "role_name", "hide_personal_info" and "is_super_user" - the remaining fields, including "api_token", are withheld. "update_user", "delete_user", "get_notification_list", "get_notification_category_list", "update_notification_list" and "get_rt_ticket_list" return the "Access to the superuser is enabled only for superusers" fault. "add_user" and "update_user" additionally refuse a login listed in that option with the "Only a superuser can assign a login from the Superusers list" fault. | No | No | YT:BA-47946 | An integration that has to read or manage superuser records must authenticate as a superuser. |
| MR131-1 | WebLog | get_web_log_list | The web log records about an administrator whose login is listed in the "Superusers" configuration option are no longer returned to API users that are not superusers, for any filter and for a request with no filter. What a superuser did to other entities stays visible to every administrator of the environment. | No | No | YT:BA-47946 | |
| MR131-1 | Tariff | add_tariff | The "email_from" field of "authorized_email_list" is now compared with the real sender address of the message, exactly and ignoring letter case. Before, the stored value worked as a regular expression, and the search ran over the whole raw "From:" header. So a value that is not a plain email address no longer matches any message, and the email tariff upload is refused. | No | No | YT:BA-48124 | Store a plain email address in "email_from". A value that holds a pattern must be replaced. |
| MR131-1 | DiscountPlan | add_discount | Adding a bundle item is now refused when it would make two products of one account use one usage counter - the same add-on priority, service, destination group and peak level. The error names both products. | No | No | YT:BA-47723 | Change the service, the destination group or the peak level of the new item, or use a new bundle. |
| MR131-1 | Account | update_account | When the account takes the "emergency" service feature flag from the product, the "emergency_administrative_unit" value sent with the request is now stored. A request that omits the attribute keeps the stored value; an explicitly empty value still clears it. get_service_features_metainfo now reports "mandatory" for this attribute when the configured E911 plug-in needs it. | No | Yes | YT:BA-45107 | |
| MR131-1 | User | get_user_info | The "rt_auth_info" block is no longer hidden from a user who has "Mask personal information in data accessed by this user" enabled. Such a user got masked values before, so the trouble ticket integration did not work. The "rt_login" and "rt_pass" fields hold the credentials of the user who makes the request, not of the requested user or customer. Their descriptions were corrected. | No | Yes | YT:BA-48106 | |
| MR131-1 | Notification | update_notification_template | Added validation of the template variable formats. A variable format that belongs to another format type is rejected. A custom formatting rule is rejected unless the variable format is "Other:". Format changes within the variable's own format type work as before. | No | No | YT:BA-48191 | Send a format of the variable's own format type. Send a custom formatting rule only together with the "Other:" format. |
| MR131-1 | Customer | update_customer_extension | The "i_account" field no longer accepts an empty value. The account assigned to an extension can be replaced, but it cannot be removed. A request with an empty "i_account" now fails with the "i_account.not_set" error. | Yes | No | YT:BA-48244 | Omit the "i_account" field to keep the current account. Pass another account ID to replace it. |
| MR131-1 | Session | login | The "login" field is now limited to 128 characters. A longer value is rejected with the "too_long.login" error. The longest login that can be stored is 128 characters for an account and 64 for a customer, representative, or user, so a longer value never matched an existing login. | No | Yes | YT:BA-48274 | |
| MR131-1 | CustomReport | execute_custom_report_query (and scheduled report runs) | Custom report generation now applies the query owner's scope to the stored customer ids. Ids that the owner cannot access are ignored. A query whose inputs refer only to inaccessible customers does not produce a report. | No | No | ||
| MR131-1 | Customer | add_customer | The "new_i_billing_period" field of the "customer_info" structure is now validated against the supported billing periods. Only the IDs 1 to 6 are accepted; any other value is rejected with the "invalid_customer_info.new_i_billing_period" error. Such a value was stored before and only failed later, when the scheduled billing change became due. Clearing a scheduled billing change is unaffected: an empty or null value works as before. The accepted IDs are now listed in the API reference for the field. | No | Yes | YT:BA-48225 | |
| MR131-1 | Customer | update_customer_extension | An extension that represents a hunt group is no longer accepted by these methods, whatever fields the request carries. Such a request is now rejected with the "cannot_update_group_extension" or "cannot_delete_group_extension" error. Before, the update was refused only when the request carried "i_account", and the delete was not refused at all; both left the hunt group inconsistent, so calls to it failed and it could no longer be deleted. Use update_customer_huntgroup and delete_customer_huntgroup to manage a hunt group and its extension. Extensions of the "Account" and "Unassigned" types are unaffected, and a parking slot is refused as before. The "i_c_ext", "i_account", "i_c_group" and "type" descriptions in the API reference now state which types each method accepts. | No | Yes | YT:BA-48196 | |
| MR131-1 | AsyncRequest | delete_request_list | The | No | Yes | YT:BA-48353 | |
| MR131-1 | DID | get_number_list | The "owner_batch" filter now treats the null value as "no pricing batch on either level". For an administrator the result no longer includes DID numbers that fall under the pricing batch of the reseller that manages them. For a reseller the result is unchanged. The same filter selects the numbers that update_number_list and delete_number_list act on. | No | No | YT:BA-48174 | To list or change the numbers managed by a reseller, filter by that reseller's pricing batch ID instead of the null value. |
| MR131-1 | Account | add_account | A product or add-on change that enables Static IP is now rejected if the account's IP address or netmask is empty. | No | No | YT:BA-48242 | Send the IP address and netmask when you assign a product or add-on that enables Static IP. |
| MR131-1 | Account | move_account | A move that changes the product to one enabling Static IP is now rejected if the account's IP address or netmask is empty. | No | No | YT:BA-48242 | Set the IP address and netmask before you move an account to a product that enables Static IP. |
| MR131-1 | Customer | add_customer | Deprecated "i_tariff" and "i_tariff_incoming" in the CustomerInfo structure. Assign the reseller tariffs on the product instead. Both fields are now checked the same way on add_customer and on update_customer: the tariff must be of the voice service type, be a reseller tariff and match the customer's currency. Before, only "i_tariff" was checked, only on add_customer, and only against the built-in "Voice Calls" service. | No | No | YT:BA-48147 | A tariff built on a custom service of the voice type is now accepted. A tariff of another service type, another currency, or a non-reseller tariff is now rejected on update_customer. |
| MR131-1 | Product | add_product | A product shared with resellers can now be combined only with subscriptions accessible to resellers, in "i_subscription" and in "i_reseller_subscription". Otherwise the request fails with "Server.Product.i_subscription.shared_product_with_nonshared_subscription" or "Server.Product.i_reseller_subscription.shared_product_with_nonshared_subscription". update_product also fails when "shared" is set to "Y" for a product that has a non-shared subscription. | No | No | YT:BA-47169 | Use subscriptions shared with resellers on shared products. Products that already have a non-shared subscription are not changed. |
| MR131-1 | Subscription | update_subscription | "shared" cannot be changed to "N" when a product shared with resellers uses the subscription. The request fails with "Server.Subscription.subscription_used_by_shared_product". | No | No | YT:BA-47169 | First remove the subscription from the shared products, or unshare those products. |
| MR131-1 | Customer | add_callqueue | A callback overflow action with a custom prompt is now rejected with "callqueues.custom_prompt_requires_wait_confirmation" also when the request omits "wait_confirmation" or "i_callqueue_action". On update, an omitted value is taken from the stored call queue. On create, an omitted "wait_confirmation" counts as 'N'. A request with "prompt_action" set to 'unset' counts as having no custom prompt. The "wait_confirmation" description in the OnIncomingCallLimitInfo, OnMaximumWaitingTimeInfo and OnMaximumRingingTimeInfo structures now states this rule. | No | No | YT:BA-48373 | Send "wait_confirmation" 'Y' with a custom callback prompt, or remove the prompt with "prompt_action" 'unset'. A call queue already stored with a custom callback prompt and confirmation disabled rejects any update to that overflow action until one of these is sent. |