# Changelog

This changelog lists API changes introduced in version `2026-04-16`.

## New Endpoints

`/v3/did_history` **added read endpoints**

`/v3/did_history` read endpoints are available.

**What changed**

- Added `GET` `/v3/did_history`.
- Added `GET` `/v3/did_history/{id}`.
- The resource returns DID history records from the last `90` days.
- The default sort order is `created_at` in descending order.
- Pagination defaults to `50` records per page.
- `GET` `/v3/did_history` supports filtering by `id`, `did_number`, `action`, `method`, `created_at_gteq`, and `created_at_lteq`.
- `GET` `/v3/did_history` supports sorting by `created_at`.

**Behavior notes**

- Records are sourced from events shown on the billing Histories page.
- Supported `action` values are `assigned`, `renewed`, `canceled`, `removed`, `billing_cycles_count_changed`, and `restored`.
- Supported `method` values are `system`, `api2`, `api3`, `staff`, and `user_panel`.
- Records with `action = billing_cycles_count_changed` also return `meta.from` and `meta.to`.
- `id` is the UUID of the DID history event.
- Older billing history records in the `90`-day window are backfilled with UUID values.

**Affected resources**

- [Get DID Histories](inventory-resources/did-history/get-did-histories.html)
- [Get DID History](inventory-resources/did-history/get-did-history.html)
- [DID History Object](inventory-resources/did-history/did-history-object.html#did-history-object-v34)

`/v3/emergency_calling_services` added read and delete endpoints

`/v3/emergency_calling_services` read and delete endpoints are available.

**What changed**

- Added `GET` `/v3/emergency_calling_services`.
- Added `GET` `/v3/emergency_calling_services/{id}`.
- Added `DELETE` `/v3/emergency_calling_services/{id}`.
- Emergency calling service responses include `name`, `reference`, `status`, `activated_at`, `canceled_at`, `created_at`, and `renew_date`.
- Responses include `meta.setup_price` and `meta.monthly_price`.
- Supported relationships are `country`, `did_group_type`, `order`, `emergency_requirement`, `emergency_verification`, and `dids`.
- Collection filters include `status`, `country.id`, `did_group_type.id`, `name`, `reference`, `address.id`, and `identity.id`.
- Collection sorting includes `name`, `status`, `country.name`, `renew_date`, and `created_at`.

**Affected resources**

- [Get Emergency Calling Services](emergency-resources/emergency-calling-services/get-emergency-calling-services.html)
- [Get Emergency Calling Service](emergency-resources/emergency-calling-services/get-emergency-calling-service.html)
- [Delete Emergency Calling Service](emergency-resources/emergency-calling-services/delete-emergency-calling-service.html)
- [Emergency Calling Service Object](emergency-resources/emergency-calling-services/emergency-calling-service-object.html#emergency-calling-service-object-v34)

`/v3/emergency_requirement_validations` added write endpoint

`/v3/emergency_requirement_validations` write endpoint is available.

**What changed**

- Added `POST` `/v3/emergency_requirement_validations`.
- The request validates an `address` and / or `identity` against a selected `emergency_requirement`.
- Successful validation returns a JSON:API resource with type `emergency_requirement_validations`.
- Validation failures return JSON:API `422` error objects.

**Affected resources**

- [Emergency Requirement Validations](emergency-resources/emergency-requirements/emergency-requirement-validations.html)
- [Emergency Requirement Object](emergency-resources/emergency-requirements/emergency-requirement-object.html#emergency-requirement-object-v34)

`/v3/emergency_requirements` added read endpoints

`/v3/emergency_requirements` read endpoints are available.

**What changed**

- Added `GET` `/v3/emergency_requirements`.
- Added `GET` `/v3/emergency_requirements/{id}`.
- Emergency requirement responses include `identity_type`, `address_area_level`, `personal_area_level`, `business_area_level`, `address_mandatory_fields`, `personal_mandatory_fields`, `business_mandatory_fields`, `estimate_setup_time`, and `requirement_restriction_message`.
- Responses include `meta.setup_price` and `meta.monthly_price`.
- Supported relationships are `country` and `did_group_type`.
- Collection filters include `id`, `country.id`, and `did_group_type.id`.

**Behavior notes**

- `meta.setup_price` is returned as `0` when the customer's emergency plan has a matching rate for the requirement, even if the configured setup price is greater than zero.
- `meta.monthly_price` returns the monthly price from the matching emergency plan rate.
- `meta.setup_price` and `meta.monthly_price` are both `null` when the customer has no matching emergency plan rate for that country and DID group type.

**Affected resources**

- [Get Emergency Requirements](emergency-resources/emergency-requirements/get-emergency-requirements.html)
- [Get Emergency Requirement](emergency-resources/emergency-requirements/get-emergency-requirement.html)
- [Emergency Requirement Object](emergency-resources/emergency-requirements/emergency-requirement-object.html#emergency-requirement-object-v34)

`/v3/emergency_verifications` added read, write, and update endpoints

`/v3/emergency_verifications` read, write, and update endpoints are available.

**What changed**

- Added `GET` `/v3/emergency_verifications`.
- Added `GET` `/v3/emergency_verifications/{id}`.
- Added `POST` `/v3/emergency_verifications` for create and resubmission flows.
- Added `PATCH` `/v3/emergency_verifications/{id}`.
- Only `external_reference_id` can be updated through the emergency verification update flow.
- Emergency verification responses include `reference`, `status`, `reject_reasons`, `reject_comment`, `callback_url`, `callback_method`, `created_at`, and `external_reference_id`.
- Supported relationships are `address`, `emergency_calling_service`, and `dids`.
- Collection filters include `status` and `emergency_calling_service.id`.

**Behavior notes**

- The verification flow supports creating a new Emergency Calling Service by sending `address` plus `dids`.
- The same endpoint supports resubmitting / updating an existing calling service by sending `emergency_calling_service` plus `address`.
- Emergency Calling Services support filtering by `address.id` and `identity.id` of the last linked verification.
- Requests can return per-DID validation errors under pointers like `/data/relationships/dids/{uuid}`.

**Affected resources**

- [Get Emergency Verifications](emergency-resources/emergency-verifications/get-emergency-verifications.html)
- [Get Emergency Verification](emergency-resources/emergency-verifications/get-emergency-verification.html)
- [Create Emergency Verification](emergency-resources/emergency-verifications/create-emergency-verification.html)
- [Update Emergency Verification](emergency-resources/emergency-verifications/update-emergency-verification.html)
- [Emergency Verification Object](emergency-resources/emergency-verifications/emergency-verification-object.html#emergency-verification-object-v34)

## Breaking Changes

`/v3/requirement_validations` changed to `/v3/address_requirement_validations`

`/v3/requirement_validations` is renamed to `/v3/address_requirement_validations`.

**Why this is a breaking change**

Requests sent to the previous validation endpoint are no longer valid..

**What changed**

- Renamed `POST` `/v3/requirement_validations` to `POST` `/v3/address_requirement_validations`.
- Requests to the previous endpoint path now return `400 Bad Request`.

**Affected resources**

- [Address Requirement Validations](regulation-resources/requirements/address-requirement-validations.html)

**Upgrade**

- Replace `/v3/requirement_validations` with `/v3/address_requirement_validations` in validation requests and tests.

`/v3/requirements` changed to `/v3/address_requirements`

`/v3/requirements` is renamed to `/v3/address_requirements`.

**Why this is a breaking change**

Requests sent to the previous requirements endpoints are no longer valid.

**What changed**

- Renamed `GET` `/v3/requirements` to `GET` `/v3/address_requirements`.
- Renamed `GET` `/v3/requirements/{id}` to `GET` `/v3/address_requirements/{id}`.
- Requests to the previous endpoint path now return `400 Bad Request`.

**Affected resources**

- [Get Address Requirements](regulation-resources/requirements/get-address-requirements.html)
- [Get Address Requirement](regulation-resources/requirements/get-address-requirement.html)
- [Address Requirement Object](regulation-resources/requirements/address-requirement-object.html#address-requirement-object-v34)

**Upgrade**

- Replace `/v3/requirements` with `/v3/address_requirements` in all requests, tests, and internal references.

`/v3/address_requirement_validations` rename `requirement` relationship to `address_requirement`

`/v3/address_requirement_validations` now uses `address_requirement` instead of `requirement` for this relationship.

**Why this is a breaking change**

Integrations that still send or parse the `requirement` relationship must switch to `address_requirement`.

**What changed**

- Renamed the `requirement` relationship in validation payloads to `address_requirement`.
- DID group responses also use `address_requirement` in place of the previous requirement relationship name.
- The JSON:API resource type now uses `address_requirements` / `address_requirement_validations`.

**Affected resources**

- [Address Requirement Validations](regulation-resources/requirements/address-requirement-validations.html)
- [Get DID Groups](coverage-resources/did-group/get-did-groups.html)
- [Get DID Group](coverage-resources/did-group/get-did-group.html)

**Upgrade**

- Replace the `requirement` relationship key with `address_requirement` in request payloads and response parsing.
- Update JSON:API `type` values and fixtures accordingly.

`/v3/address_verifications` attribute `reject_reasons` changed from string to array of strings

`/v3/address_verifications` now returns `reject_reasons` as an array of strings.

**Why this is a breaking change**

Integrations that still parse `reject_reasons` as a single string must update their response handling.

**What changed**

- `reject_reasons` is now returned as an array of strings instead of a single string.

**Affected resources**

- [Get Address Verifications](regulation-resources/address-verifications/get-address-verifications.html)
- [Get Address Verification](regulation-resources/address-verifications/get-address-verification.html)
- [Create Address Verification](regulation-resources/address-verifications/create-address-verification.html)
- [Address Verifications Object](regulation-resources/address-verifications/address-verifications-object.html#address-verifications-object-v34)

**Upgrade**

- Update response parsing, serializers, and tests to treat `reject_reasons` as an array.

`/v3/available_dids` filter `did_group.features` no longer include `sms_out` value

`/v3/available_dids` no longer supports `sms_out` for the `did_group.features` filter.

**Why this is a breaking change**

Requests that still use `sms_out` in `filter[did_group.features]` must be updated to the supported values.

**What changed**

- `GET` `/v3/available_dids?filter[did_group.features]` no longer accepts `sms_out`.

**Affected resources**

- [Get Available DIDs](coverage-resources/available-did/get-available-dids.html)

**Upgrade**

- Replace `sms_out` in available DID feature filtering with the supported values.

`/v3/dids` filter `did_group.features` no longer includes `sms_out` value

`/v3/dids` no longer supports `sms_out` for the `did_group.features` filter.

**Why this is a breaking change**

Requests that still use `sms_out` in DID feature filtering must be updated to the supported values.

**What changed**

- `GET` `/v3/dids?filter[did_group.features]` no longer accepts `sms_out`.

**Affected resources**

- [Get DIDs](inventory-resources/did/get-dids.html)

**Upgrade**

- Replace `sms_out` in DID feature filters with the supported values.

`/v3/did_groups` `features` attribute and filter no longer include `sms_out` value

`/v3/did_groups` features attribute and filter no longer include sms\_out value.

**Why this is a breaking change**

Integrations that still read or send `sms_out` in DID group feature values or feature filters must switch to the updated
feature set.

**What changed**

- DID group `features` no longer include `sms_out`.
- DID group feature filtering no longer accepts `sms_out`.

**Affected resources**

- [Get DID Groups](coverage-resources/did-group/get-did-groups.html)
- [Get DID Group](coverage-resources/did-group/get-did-group.html)
- [DID Group Object](coverage-resources/did-group/did-group-object.html#did-group-object-v34)

**Upgrade**

- Remove `sms_out` from DID group feature parsing and feature filters.
- Update any typed models or tests that still expect `sms_out`.

`/v3/did_reservations` attribute `expire_at` renamed to `expires_at`

`/v3/did_reservations` now uses expires\_at instead of expire\_at.

**Why this is a breaking change**

Integrations that still read `expire_at` from DID reservation responses must switch to `expires_at`.

**What changed**

- Renamed the DID reservation expiry attribute from `expire_at` to `expires_at`.
- `GET` and `POST` DID reservation responses now return `expires_at`.

**Affected resources**

- [Get DID Reservations](coverage-resources/did-reservation/get-did-reservations.html)
- [Get DID Reservation](coverage-resources/did-reservation/get-did-reservation.html)
- [Create DID Reservation](coverage-resources/did-reservation/create-did-reservation.html)
- [DID Reservation Object](coverage-resources/did-reservation/did-reservation-object.html#did-reservation-object-v34)

**Upgrade**

- Replace `expire_at` with `expires_at` in response parsing, typed models, and tests.

`/v3/encrypted_files` attribute `expire_at` renamed to `expires_at`

`/v3/encrypted_files` now uses expires\_at instead of expire\_at.

**Why this is a breaking change**

Integrations that still read `expire_at` from encrypted file responses must switch to `expires_at`.

**What changed**

- Renamed the encrypted file expiry attribute from `expire_at` to `expires_at`.
- `GET` `/v3/encrypted_files` now returns `expires_at`.
- `GET` `/v3/encrypted_files/{id}` now returns `expires_at`.

**Affected resources**

- [Get Encrypted Files](regulation-resources/encrypted-files/get-encrypted-files.html)
- [Get Encrypted File](regulation-resources/encrypted-files/get-encrypted-file.html)
- [Encrypted Files Object](regulation-resources/encrypted-files/encrypted-files-object.html#encrypted-files-object-v34)

**Upgrade**

- Replace `expire_at` with `expires_at` in response parsing, typed models, and tests.

`/v3/encrypted_files` POST request body format changed: single file per request instead of batch `items` array

`/v3/encrypted_files` now uses the updated POST request body format.

**Why this is a breaking change**

API no longer uses the legacy batch request format or plain JSON response bodies for `POST` `/v3/encrypted_files`.

**What changed**

- `POST` `/v3/encrypted_files` now accepts flat single-file parameters:
  - `encrypted_files[encryption_fingerprint]`
  - `encrypted_files[description]`
  - `encrypted_files[file]`
- `POST` `/v3/encrypted_files` now returns a JSON:API resource object on success.
- `POST` `/v3/encrypted_files` now returns JSON:API error objects for `400` and `422` responses.
- Legacy batch parameters such as `encrypted_files[items][][file]` are not supported.

**Affected resources**

- [Create Encrypted File](regulation-resources/encrypted-files/create-encrypted-files.html)
- [Encrypted Files Object](regulation-resources/encrypted-files/encrypted-files-object.html#encrypted-files-object-v34)
- [Bad Request Error Object](../specification/errors/index.html#api-bad-request)
- [Validation Error Object](../specification/errors/index.html#api-validation-error-object)

**Upgrade**

- Stop sending legacy batch parameters such as `encrypted_files[items][][file]`.
- Send exactly one file per request using `encrypted_files[file]`.
- Parse successful and error responses as JSON:API documents.

`/v3/exports` filters `year` and `month` replaced with `from` and `to` datetime filters for `cdr_in` and `cdr_out`
export types

`/v3/exports` now uses from and to datetime filters for cdr\_in and cdr\_out export types instead of year and month.

**Why this is a breaking change**

Requests that still use the previous `year` and `month` filters for `cdr_in` and `cdr_out` exports must be updated.

**What changed**

- Replaced the previous `year` and `month` filters with `from` and `to` datetime filters for `cdr_in` and `cdr_out` export types.

**Affected resources**

- [Create Export](export/create-export.html)
- [Get Exports](export/get-exports.html)
- [Export Object](export/export-object.html#export-object-v34)

**Upgrade**

- Replace `year` and `month` with `from` and `to` in export creation and filtering workflows.

`/v3/voice_out_trunks` attributes `allowed_sip_ips`, `allowed_rtp_ips`, `username`, `password` removed in favor of
`authentication_method` object

`/v3/voice_out_trunks` now uses authentication\_method object instead of the previous attributes.

**Why this is a breaking change**

Integrations must stop reading or writing top-level authentication fields and must move authentication handling into
`authentication_method`. `allowed_rtp_ips` is now handled as a top-level outbound trunk attribute.

**What changed**

- Added the `authentication_method` object with supported types `credentials_and_ip`, `ip_only`, and `twilio`.
- `GET` endpoints return authentication data only inside `authentication_method`.
- `allowed_rtp_ips` is now a top-level outbound trunk attribute.
- Changing the authentication type clears the previous authentication attributes.
- `PATCH` `/v3/voice_out_trunks/{id}` does not allow changing `authentication_method.type` to `ip_only`.

**Behavior notes**

- `credentials_and_ip` returns `allowed_sip_ips`, `tech_prefix`, `username`, and `password` inside `authentication_method.attributes`.
- `ip_only` returns `allowed_sip_ips` and `tech_prefix` inside `authentication_method.attributes` and does not return credentials.
- `twilio` returns only `twilio_account_sid` inside `authentication_method.attributes`.

**Affected resources**

- [Get Outbound Trunks](inventory-resources/voice-out-trunks/get-voice-out-trunks.html)
- [Get Outbound Trunk](inventory-resources/voice-out-trunks/get-voice-out-trunk.html)
- [Create Outbound Trunk](inventory-resources/voice-out-trunks/create-voice-out-trunk.html)
- [Update Outbound Trunk](inventory-resources/voice-out-trunks/update-voice-out-trunk.html)
- [Outbound Trunk Regenerate Credentials](inventory-resources/voice-out-trunks/voice-out-trunk-regenerate-credentials.html)
- [Outbound Trunk Object](inventory-resources/voice-out-trunks/voice-out-trunk-object.html#voice-out-trunk-object-v34)

**Upgrade**

- Move outbound trunk authentication parsing and request building into `authentication_method`.
- Move any `allowed_rtp_ips` handling to `data.attributes.allowed_rtp_ips`.
- Update tests and serializers to stop expecting flat authentication fields.

multiple resources attribute values standardized to lowercase snake\_case format

Multiple APIv3 resources now use lowercase snake\_case values consistently in responses, write requests, filters, and
sorting-related value descriptions.

**Why this is a breaking change**

Integrations that still send or parse Title Case, uppercase, or space-separated values must update to the normalized
lowercase snake\_case values.

**What changed**

- Order statuses now use `pending`, `completed`, and `canceled`.
- Export statuses now use `pending`, `processing`, and `completed`.
- Address verification statuses now use `pending`, `approved`, and `rejected`.
- Emergency Calling Service statuses now use `new`, `in_process`, `changes_required`, `active`, `pending_update`, and `canceled`.
- Outbound trunk status and enum-like attributes now use lowercase snake\_case values such as `active`, `blocked`, `reject_call`, `replace_cli`, `send_original_cli`, `allow_all`, `reject_all`, `disabled`, `srtp_sdes`, `srtp_dtls`, and `zrtp`.
- Identity types now use `personal` and `business`.
- Callback methods now use `get` and `post`.
- Requirement area-level values now use `world_wide`, `country`, `area`, and `city` where applicable.

**Behavior notes**

- The normalization applies to `GET` responses, supported `POST` / `PATCH` request values, filter values, and the documented value sets used in collection sorting and query parameter tables.
- Values that were already using lowercase snake\_case, such as `cdr_in`, `cdr_out`, `voice_in` and `credentials_and_ip`, are unchanged.

**Affected resources**

- [Order Object](inventory-resources/order/order-object.html#order-object-v34)
- [Export Object](export/export-object.html#export-object-v34)
- [Address Verifications Object](regulation-resources/address-verifications/address-verifications-object.html#address-verifications-object-v34)
- [Identity Object](regulation-resources/identities/identity-object.html#identity-object-v34)
- [Emergency Calling Service Object](emergency-resources/emergency-calling-services/emergency-calling-service-object.html#emergency-calling-service-object-v34)
- [Emergency Verification Object](emergency-resources/emergency-verifications/emergency-verification-object.html#emergency-verification-object-v34)
- [Address Requirement Object](regulation-resources/requirements/address-requirement-object.html#address-requirement-object-v34)
- [Emergency Requirement Object](emergency-resources/emergency-requirements/emergency-requirement-object.html#emergency-requirement-object-v34)
- [Outbound Trunk Object](inventory-resources/voice-out-trunks/voice-out-trunk-object.html#voice-out-trunk-object-v34)
- [Callbacks Details](callbacks-details.html)

**Upgrade**

- Update request payloads, filter values, response parsing, fixtures, and tests to use lowercase snake\_case values only.
- Treat previous Title Case, uppercase, and space-separated values as obsolete.

## Enhancements

`/v3/address_verifications` attribute `external_reference_id` added

`/v3/address_verifications` now supports external\_reference\_id.

**What changed**

- Added `external_reference_id` to address verification requests and responses.
- `external_reference_id` is optional and has a maximum length of `100` characters.

**Affected resources**

- [Create Address Verification](regulation-resources/address-verifications/create-address-verification.html)
- [Get Address Verifications](regulation-resources/address-verifications/get-address-verifications.html)
- [Get Address Verification](regulation-resources/address-verifications/get-address-verification.html)
- [Address Verifications Object](regulation-resources/address-verifications/address-verifications-object.html#address-verifications-object-v34)

`/v3/address_verifications` added update endpoint

`PATCH` `/v3/address_verifications/{id}` is available and only `external_reference_id` can be changed.

**What changed**

- Added `PATCH` `/v3/address_verifications/{id}`.
- Only `external_reference_id` can be updated through the address verification update flow.

**Affected resources**

- [Update Address Verification](regulation-resources/address-verifications/update-address-verification.html)
- [Get Address Verifications](regulation-resources/address-verifications/get-address-verifications.html)
- [Get Address Verification](regulation-resources/address-verifications/get-address-verification.html)
- [Address Verifications Object](regulation-resources/address-verifications/address-verifications-object.html#address-verifications-object-v34)

`/v3/address_verifications` attribute `reject_comment` added

`/v3/address_verifications` now supports reject\_comment.

**What changed**

- Added `reject_comment` to `address_verifications` responses.
- Added `reject_comment` to `emergency_verifications` responses.
- Address verification callbacks now include `reject_comment` alongside the rejection fields.
- Emergency verification callbacks now include `reject_comment` alongside the rejection fields.

**Behavior notes**

- `reject_comment` provides the detailed compliance comment shown for rejected verifications.

**Affected resources**

- [Get Address Verifications](regulation-resources/address-verifications/get-address-verifications.html)
- [Get Address Verification](regulation-resources/address-verifications/get-address-verification.html)
- [Create Address Verification](regulation-resources/address-verifications/create-address-verification.html)
- [Address Verifications Object](regulation-resources/address-verifications/address-verifications-object.html#address-verifications-object-v34)
- [Callbacks Details](callbacks-details.html)

`/v3/addresses` attribute `external_reference_id` added

`/v3/addresses` now supports external\_reference\_id.

**What changed**

- Added `external_reference_id` to address requests and responses.
- Added exact-match `external_reference_id` filtering on collection responses where supported.
- `external_reference_id` is optional and has a maximum length of `100` characters.

**Affected resources**

- [Create Addresses](regulation-resources/addresses/create-address.html)
- [Update Addresses](regulation-resources/addresses/update-address.html)
- [Get Addresses](regulation-resources/addresses/get-addresses.html)
- [Addresses Object](regulation-resources/addresses/address-object.html#addresses-object-v34)

`/v3/available_dids` filter `did_group.features` support new values `emergency`, `cnam_out`, `a2p` and `p2p`

`/v3/available_dids` now supports additional values for the did\_group.features filter.

**What changed**

- `GET` `/v3/available_dids?filter[did_group.features]` now supports `emergency`.
- `GET` `/v3/available_dids?filter[did_group.features]` now supports `cnam_out`.
- `GET` `/v3/available_dids?filter[did_group.features]` now supports `a2p` and `p2p`.

**Affected resources**

- [Get Available DIDs](coverage-resources/available-did/get-available-dids.html)

`/v3/did_groups` attribute `service_restrictions` added

`/v3/did_groups` now supports service\_restrictions.

**What changed**

- Added the `service_restrictions` attribute to DID group responses.
- `service_restrictions` returns the DID group service restriction message when restrictions apply.
- `service_restrictions` can be `null` when no restriction message applies.

**Affected resources**

- [Get DID Groups](coverage-resources/did-group/get-did-groups.html)
- [Get DID Group](coverage-resources/did-group/get-did-group.html)
- [DID Group Object](coverage-resources/did-group/did-group-object.html#did-group-object-v34)

`/v3/did_groups` `features` attribute and filter support new values `emergency`, `cnam_out`, `a2p` and `p2p`

`/v3/did_groups` features attribute and filter support new values emergency, cnam\_out, a2p and p2p.

**What changed**

- DID group `features` now support `emergency`.
- DID group `features` now support `cnam_out`.
- DID group `features` now support `a2p` and `p2p` for outbound messaging capabilities.
- `GET` `/v3/did_groups?filter[features]=emergency` filters DID groups that support the emergency feature.

**Affected resources**

- [Get DID Groups](coverage-resources/did-group/get-did-groups.html)
- [Get DID Group](coverage-resources/did-group/get-did-group.html)
- [DID Group Object](coverage-resources/did-group/did-group-object.html#did-group-object-v34)

`/v3/dids` attribute `emergency_enabled` added

`/v3/dids` now supports emergency\_enabled.

**What changed**

- Added the `emergency_enabled` attribute to DID responses.
- `filter[emergency_enabled]` can be used to find DIDs that are or are not assigned to an Emergency Calling Service.

**Affected resources**

- [Get DIDs](inventory-resources/did/get-dids.html)
- [Get DID](inventory-resources/did/get-did.html)
- [DID Object](inventory-resources/did/did-object.html#did-object-v34)

`/v3/dids` filter `did_group.features` support new values `emergency`, `cnam_out`, `a2p` and `p2p`

`/v3/dids` now supports additional values for the did\_group.features filter.

**What changed**

- `GET` `/v3/dids?filter[did_group.features]` now supports `emergency`.
- `GET` `/v3/dids?filter[did_group.features]` now supports `cnam_out`.
- `GET` `/v3/dids?filter[did_group.features]` now supports `a2p` and `p2p`.

**Affected resources**

- [Get DIDs](inventory-resources/did/get-dids.html)

`/v3/dids` filter `emergency_calling_service.id` and filter `emergency_enabled` added

`/v3/dids` now supports the emergency\_calling\_service.id and filter emergency\_enabled filter.

**What changed**

- Added `filter[emergency_calling_service.id]`.
- Added `filter[emergency_enabled]`.

**Affected resources**

- [Get DIDs](inventory-resources/did/get-dids.html)

`/v3/dids` relationship `emergency_calling_service` added

`/v3/dids` now exposes the emergency\_calling\_service relationship.

**What changed**

- Added the `emergency_calling_service` relationship to DID responses.
- When a DID is assigned to an Emergency Calling Service, relationship data identifies that service.
- When a DID is not assigned to an Emergency Calling Service, relationship data is `null` when relationship data is present.

**Affected resources**

- [Get DIDs](inventory-resources/did/get-dids.html)
- [Get DID](inventory-resources/did/get-did.html)
- [DID Object](inventory-resources/did/did-object.html#did-object-v34)

`/v3/dids` relationship `emergency_verification` added

`/v3/dids` now exposes the emergency\_verification relationship.

**What changed**

- Added the `emergency_verification` relationship to DID responses.

**Affected resources**

- [Get DIDs](inventory-resources/did/get-dids.html)
- [Get DID](inventory-resources/did/get-did.html)
- [DID Object](inventory-resources/did/did-object.html#did-object-v34)

`/v3/dids` relationship `identity` added

`/v3/dids` now exposes the identity relationship.

**What changed**

- Added the `identity` relationship to DID responses.
- `GET` `/v3/dids?include=identity` returns included identity resources.

**Behavior notes**

- The relationship represents the main identity assigned to the DID, or the porting identity as a fallback.

**Affected resources**

- [Get DIDs](inventory-resources/did/get-dids.html)
- [Get DID](inventory-resources/did/get-did.html)
- [DID Object](inventory-resources/did/did-object.html#did-object-v34)

`/v3/exports` attribute `external_reference_id` added

`/v3/exports` now supports external\_reference\_id.

**What changed**

- Added `external_reference_id` to export requests and responses.
- `external_reference_id` is optional and has a maximum length of `100` characters.

**Affected resources**

- [Create Export](export/create-export.html)
- [Get Exports](export/get-exports.html)
- [Get Export](export/get-export.html)
- [Export Object](export/export-object.html#export-object-v34)

`/v3/exports` added update endpoint

`/v3/exports` update is available and only external\_reference\_id can be changed.

**What changed**

- Added an export update endpoint.
- Only `external_reference_id` can be updated through the export update flow.

**Affected resources**

- [Get Exports](export/get-exports.html)
- [Get Export](export/get-export.html)
- [Export Object](export/export-object.html#export-object-v34)

`/v3/exports` attribute `filters` added

`/v3/exports` now supports filters.

**What changed**

- Added the `filters` attribute to export responses.

**Affected resources**

- [Get Exports](export/get-exports.html)
- [Get Export](export/get-export.html)
- [Export Object](export/export-object.html#export-object-v34)

`/v3/exports` `cdr_in` export CSV columns renamed and new columns added

`/v3/exports` cdr\_in export CSV columns renamed and new columns added.

**What changed**

- `cdr_in` export CSV columns were renamed.
- Additional columns were added to `cdr_in` export files.

**Affected resources**

- [Create Export](export/create-export.html)
- [Get Exports](export/get-exports.html)

`/v3/exports` `cdr_out` export CSV columns renamed and new columns added

`/v3/exports` cdr\_out export CSV columns renamed and new columns added.

**What changed**

- `cdr_out` export CSV columns were renamed.
- Additional columns were added to `cdr_out` export files.

**Affected resources**

- [Create Export](export/create-export.html)
- [Get Exports](export/get-exports.html)

`/v3/exports` export callback includes `url` attribute with the download link

`/v3/exports` callbacks now include additional export file information.

**What changed**

- Added `url` to the export callback payload for supported export types.
- The callback can include a direct download link to the exported file.

**Affected resources**

- [Callbacks Details](callbacks-details.html)
- [Get Export](export/get-export.html)
- [Export Object](export/export-object.html#export-object-v34)

`/v3/identities` relationship `birth_country` added

`/v3/identities` now exposes the birth\_country relationship.

**What changed**

- Added the `birth_country` relationship to `GET` `/v3/identities` and `GET` `/v3/identities/{id}`.
- `POST` `/v3/identities` supports sending `birth_country` separately from `country`.
- `PATCH` `/v3/identities/{id}` supports updating `birth_country` separately from `country`.
- `PATCH` `/v3/identities/{id}` supports removing `birth_country` by sending an empty string.
- `birth_country` is no longer auto-assigned when `country` is set.

**Affected resources**

- [Get Identities](regulation-resources/identities/get-identities.html)
- [Get Identity](regulation-resources/identities/get-identity.html)
- [Create Identity](regulation-resources/identities/create-identity.html)
- [Update Identity](regulation-resources/identities/update-identity.html)
- [Identity Object](regulation-resources/identities/identity-object.html#identity-object-v34)

**Upgrade**

- Send and parse `birth_country` independently from `country`.

`/v3/orders` attribute `external_reference_id` added

`/v3/orders` now supports external\_reference\_id.

**What changed**

- Added `external_reference_id` to order requests and responses.
- `external_reference_id` is optional.
- `external_reference_id` has a maximum length of `100` characters.

**Affected resources**

- [Create Order](inventory-resources/order/create-order.html)
- [Get Orders](inventory-resources/order/get-orders.html)
- [Get Order](inventory-resources/order/get-order.html)
- [Order Object](inventory-resources/order/order-object.html#order-object-v34)

`/v3/orders` added update endpoint

`/v3/orders` update is available and only external\_reference\_id can be changed.

**What changed**

- Added an order update endpoint.
- Only `external_reference_id` can be updated through the order update flow.

**Affected resources**

- [Create Order](inventory-resources/order/create-order.html)
- [Get Orders](inventory-resources/order/get-orders.html)
- [Get Order](inventory-resources/order/get-order.html)
- [Order Object](inventory-resources/order/order-object.html#order-object-v34)

`/v3/orders` filter `external_reference_id` added

`/v3/orders` now supports the external\_reference\_id filter.

**What changed**

- Added the `external_reference_id` collection filter to orders.

**Affected resources**

- [Get Orders](inventory-resources/order/get-orders.html)

`/v3/orders` insufficient funds error response includes `meta` with `total_cost` and `available_balance`

`/v3/orders` now returns additional metadata in insufficient funds error responses.

**What changed**

- Added `errors[].meta.total_cost`.
- Added `errors[].meta.available_balance`.
- Both values are returned as strings.
- This applies to both DID order creation and capacity order creation.

**Behavior notes**

- `meta.total_cost` contains the cost of the current order only.
- `meta.available_balance` contains the customer's available balance, including credit, at the time of the check.

**Affected resources**

- [Create Order](inventory-resources/order/create-order.html)
- [Insufficient Balance Error Object](../specification/errors/index.html#api-insufficient-balance-error-object)

**Upgrade**

- Read `errors[].meta.total_cost` and `errors[].meta.available_balance` when presenting insufficient balance failures to users.
- Update automated tests for insufficient balance responses.

`/v3/orders` attribute `allow_back_ordering` defaults to `true` when not provided in request

`/v3/orders` attribute allow\_back\_ordering defaults to true when not provided in request.

**What changed**

- `POST` `/v3/orders` now defaults `allow_back_ordering` to `true`.
- If `allow_back_ordering` is omitted, a DID order with pending inventory can be created instead of returning a validation error.
- To limit ordering to currently available inventory only, requests must explicitly send `allow_back_ordering: false`.

**Affected resources**

- [Create Order](inventory-resources/order/create-order.html)

**Upgrade**

- Explicitly send `allow_back_ordering: false` if your workflow must reject out-of-stock DID orders.

`/v3/orders` Emergency order item attribute `emergency_calling_service_id` added

`/v3/orders` Emergency order item attribute emergency\_calling\_service\_id added.

**What changed**

- `GET` `/v3/orders` and `GET` `/v3/orders/{id}` can now return `emergency_order_items`.
- `emergency_order_items` include `emergency_calling_service_id`.
- Orders created by the Emergency Calling activation flow return `callback_method: null` and `callback_url: null`.
- `meta.api_version` reflects the actual API version used to produce the response.

**Behavior notes**

- Earlier API versions may continue to return emergency charges as `generic_order_items` for backward compatibility.

**Affected resources**

- [Get Orders](inventory-resources/order/get-orders.html)
- [Get Order](inventory-resources/order/get-order.html)
- [Order Object](inventory-resources/order/order-object.html#order-object-v34)

`/v3/permanent_supporting_documents` attribute `external_reference_id` added

`/v3/permanent_supporting_documents` now supports external\_reference\_id.

**What changed**

- Added `external_reference_id` to permanent supporting document requests and responses.
- `external_reference_id` is optional and has a maximum length of `100` characters.

**Affected resources**

- [Create Permanent Supporting Document](regulation-resources/permanent-documents/create-permanent-document.html)
- [Get Permanent Supporting Documents](regulation-resources/permanent-documents/get-permanent-documents.html)
- [Get Permanent Supporting Document](regulation-resources/permanent-documents/get-permanent-document.html)
- [Permanent Documents Object](regulation-resources/permanent-documents/permanent-documents-object.html#permanent-documents-object-v34)

`/v3/permanent_supporting_documents` added read endpoints

`/v3/permanent_supporting_documents` read endpoints are available.

**What changed**

- Added `GET` `/v3/permanent_supporting_documents`.
- Added `GET` `/v3/permanent_supporting_documents/{id}`.
- The collection endpoint supports JSON:API pagination and sparse fieldsets.
- The collection endpoint supports exact-match filtering by `external_reference_id`.

**Affected resources**

- [Get Permanent Supporting Documents](regulation-resources/permanent-documents/get-permanent-documents.html)
- [Get Permanent Supporting Document](regulation-resources/permanent-documents/get-permanent-document.html)
- [Permanent Documents Object](regulation-resources/permanent-documents/permanent-documents-object.html#permanent-documents-object-v34)

`/v3/permanent_supporting_documents` added update endpoint

`PATCH` `/v3/permanent_supporting_documents/{id}` is available and only
`external_reference_id` can be changed.

**What changed**

- Added `PATCH` `/v3/permanent_supporting_documents/{id}`.
- Only `external_reference_id` can be updated. `files`, `template`, `identity`,
  and `created_at` return an HTTP `400` error with code `105` when included in the
  request.

**Affected resources**

- [Update Permanent Supporting Document](regulation-resources/permanent-documents/update-permanent-document.html)
- [Get Permanent Supporting Documents](regulation-resources/permanent-documents/get-permanent-documents.html)
- [Get Permanent Supporting Document](regulation-resources/permanent-documents/get-permanent-document.html)
- [Permanent Documents Object](regulation-resources/permanent-documents/permanent-documents-object.html#permanent-documents-object-v34)

`/v3/proofs` attribute `external_reference_id` added

`/v3/proofs` now supports external\_reference\_id.

**What changed**

- Added `external_reference_id` to proof requests and responses.
- `external_reference_id` is optional and has a maximum length of `100` characters.

**Affected resources**

- [Create Proof](regulation-resources/proofs/create-proof.html)
- [Get Proofs](regulation-resources/proofs/get-proofs.html)
- [Get Proof](regulation-resources/proofs/get-proof.html)
- [Proofs Object](regulation-resources/proofs/proofs-object.html#proofs-object-v34)

`/v3/proofs` added read endpoints

`/v3/proofs` read endpoints are available.

**What changed**

- Added `GET` `/v3/proofs`.
- Added `GET` `/v3/proofs/{id}`.
- The collection endpoint supports JSON:API pagination and sparse fieldsets.
- The collection endpoint supports exact-match filtering by `external_reference_id`.

**Affected resources**

- [Get Proofs](regulation-resources/proofs/get-proofs.html)
- [Get Proof](regulation-resources/proofs/get-proof.html)
- [Proofs Object](regulation-resources/proofs/proofs-object.html#proofs-object-v34)

`/v3/shared_capacity_groups` attribute `external_reference_id` added

`/v3/shared_capacity_groups` now supports external\_reference\_id.

**What changed**

- Added `external_reference_id` to Shared Capacity Group requests and responses.
- Added exact-match `external_reference_id` filtering on collection responses where supported.
- `external_reference_id` is optional and has a maximum length of `100` characters.

**Affected resources**

- [Create Shared Capacity Groups](inventory-resources/shared-capacity-group/create-shared-capacity-group.html)
- [Update Shared Capacity Groups](inventory-resources/shared-capacity-group/update-shared-capacity-group.html)
- [Get Shared Capacity Groups](inventory-resources/shared-capacity-group/get-shared-capacity-groups.html)
- [Shared Capacity Group Object](inventory-resources/shared-capacity-group/shared-capacity-group-object.html#shared-capacity-group-object-v34)

`/v3/voice_in_trunk_groups` attribute `external_reference_id` added

`/v3/voice_in_trunk_groups` now supports external\_reference\_id.

**What changed**

- Added `external_reference_id` to Inbound Trunk Group requests and responses.
- Added exact-match `external_reference_id` filtering on collection responses where supported.
- `external_reference_id` is optional and has a maximum length of `100` characters.

**Affected resources**

- [Create Voice IN Trunk Group](inventory-resources/voice-in-trunk-groups/create-trunk-group.html)
- [Update Voice IN Trunk Group](inventory-resources/voice-in-trunk-groups/update-trunk-group.html)
- [Get Voice IN Trunk Groups](inventory-resources/voice-in-trunk-groups/get-trunk-groups.html)
- [Voice IN Trunk Group Object](inventory-resources/voice-in-trunk-groups/trunk-group-object.html#voice-in-trunk-group-object-v34)

`/v3/voice_in_trunks` SIP configuration attributes `network_protocol_priority`, `enabled_sip_registration`,
`use_did_in_ruri`, `diversion_relay_policy`, `diversion_inject_mode`, and `cnam_lookup` added

`/v3/voice_in_trunks` now supports additional SIP configuration attributes.

**What changed**

- Added `network_protocol_priority`.
- Added `enabled_sip_registration`.
- Added `use_did_in_ruri`.
- Added `diversion_relay_policy`.
- Added `diversion_inject_mode`.
- Added `cnam_lookup`.

**Behavior notes**

- `use_did_in_ruri` works only when `enabled_sip_registration` is `true`.

**Affected resources**

- [Get Voice IN Trunks](inventory-resources/voice-in-trunks/get-voice-in-trunks.html)
- [Get Voice IN Trunk](inventory-resources/voice-in-trunks/get-voice-in-trunk.html)
- [Create Voice IN Trunk](inventory-resources/voice-in-trunks/create-voice-in-trunk.html)
- [Update Voice IN Trunk](inventory-resources/voice-in-trunks/update-voice-in-trunk.html)
- [Inbound Trunk Object](inventory-resources/voice-in-trunks/voice-in-trunk-object.html#voice-in-trunk-object-v34)

`/v3/voice_out_trunks` attribute `authentication_method` added with support for `ip_only`, `credentials_and_ip`, and
`twilio` types

`/v3/voice_out_trunks` attribute authentication\_method added with support for ip\_only, credentials\_and\_ip, and
twilio types.

**What changed**

- Added the `authentication_method` object.
- Supported authentication method types are `ip_only`, `credentials_and_ip`, and `twilio`.
- `POST` `/v3/voice_out_trunks` supports creation with `credentials_and_ip` and `twilio`.
- `PATCH` `/v3/voice_out_trunks/{id}` supports switching between supported updatable authentication types.

**Affected resources**

- [Get Outbound Trunks](inventory-resources/voice-out-trunks/get-voice-out-trunks.html)
- [Get Outbound Trunk](inventory-resources/voice-out-trunks/get-voice-out-trunk.html)
- [Create Outbound Trunk](inventory-resources/voice-out-trunks/create-voice-out-trunk.html)
- [Update Outbound Trunk](inventory-resources/voice-out-trunks/update-voice-out-trunk.html)
- [Outbound Trunk Object](inventory-resources/voice-out-trunks/voice-out-trunk-object.html#voice-out-trunk-object-v34)

`/v3/voice_out_trunks` attribute `emergency_enable_all` added

`/v3/voice_out_trunks` now supports emergency\_enable\_all.

**What changed**

- Added the `emergency_enable_all` attribute to outbound trunk requests and responses.

**Affected resources**

- [Get Outbound Trunks](inventory-resources/voice-out-trunks/get-voice-out-trunks.html)
- [Get Outbound Trunk](inventory-resources/voice-out-trunks/get-voice-out-trunk.html)
- [Create Outbound Trunk](inventory-resources/voice-out-trunks/create-voice-out-trunk.html)
- [Update Outbound Trunk](inventory-resources/voice-out-trunks/update-voice-out-trunk.html)
- [Outbound Trunk Object](inventory-resources/voice-out-trunks/voice-out-trunk-object.html#voice-out-trunk-object-v34)

`/v3/voice_out_trunks` attribute `rtp_timeout` added

`/v3/voice_out_trunks` now supports rtp\_timeout.

**What changed**

- Added the `rtp_timeout` attribute to outbound trunk requests and responses.

**Affected resources**

- [Get Outbound Trunks](inventory-resources/voice-out-trunks/get-voice-out-trunks.html)
- [Get Outbound Trunk](inventory-resources/voice-out-trunks/get-voice-out-trunk.html)
- [Create Outbound Trunk](inventory-resources/voice-out-trunks/create-voice-out-trunk.html)
- [Update Outbound Trunk](inventory-resources/voice-out-trunks/update-voice-out-trunk.html)
- [Outbound Trunk Object](inventory-resources/voice-out-trunks/voice-out-trunk-object.html#voice-out-trunk-object-v34)

`/v3/voice_out_trunks` attribute `tech_prefix` added

`/v3/voice_out_trunks` now supports tech\_prefix.

**What changed**

- Added `tech_prefix` inside `authentication_method.attributes` for `credentials_and_ip` and `ip_only`.

**Affected resources**

- [Get Outbound Trunks](inventory-resources/voice-out-trunks/get-voice-out-trunks.html)
- [Get Outbound Trunk](inventory-resources/voice-out-trunks/get-voice-out-trunk.html)
- [Create Outbound Trunk](inventory-resources/voice-out-trunks/create-voice-out-trunk.html)
- [Update Outbound Trunk](inventory-resources/voice-out-trunks/update-voice-out-trunk.html)
- [Outbound Trunk Object](inventory-resources/voice-out-trunks/voice-out-trunk-object.html#voice-out-trunk-object-v34)

`/v3/voice_out_trunks` filter `authentication_method.type` added

`/v3/voice_out_trunks` now supports the authentication\_method.type filter.

**What changed**

- Added `filter[authentication_method.type]`.
- Supported values are `credentials_and_ip`, `ip_only`, and `twilio`.

**Affected resources**

- [Get Outbound Trunks](inventory-resources/voice-out-trunks/get-voice-out-trunks.html)

`/v3/voice_out_trunks` relationship `emergency_dids` added

`/v3/voice_out_trunks` now exposes the emergency\_dids relationship.

**What changed**

- Added the `emergency_dids` relationship to outbound trunk responses.
- `GET` `/v3/voice_out_trunks?include=emergency_dids` and `GET` `/v3/voice_out_trunks/{id}?include=emergency_dids` return related DID data in the `included` array.

**Affected resources**

- [Get Outbound Trunks](inventory-resources/voice-out-trunks/get-voice-out-trunks.html)
- [Get Outbound Trunk](inventory-resources/voice-out-trunks/get-voice-out-trunk.html)
- [Outbound Trunk Object](inventory-resources/voice-out-trunks/voice-out-trunk-object.html#voice-out-trunk-object-v34)

On this page
