Register Emergency Calling Service
This example shows the end-to-end process for registering DIDs for emergency calling by using the Emergency Resources introduced in the latest API version.
Use this flow when you already own the DIDs and want to activate emergency calling for them by submitting the required identity and address information for review.
To register emergency calling for your DIDs, follow these steps:
Note
The UUIDs shown in the examples below are for illustration purposes only.
Always execute requests in your own environment and use the UUIDs returned in API responses.
Before you begin
A DIDWW API key is required to authenticate the requests shown in this guide. Make sure you have an API key ready before starting the flow.
Make sure you already have at least one active DID that supports the
emergencyfeature. If you do not have a compatible DID yet, first buy one by following Buy Available DID Number(s).
Step 1: Select the DIDs to Register
This step uses the /dids endpoint, which is the primary source for
selecting the existing DIDs that can be submitted for emergency registration
in your application.
It allows you to present or validate:
which DIDs already owned by the account belong to DID Groups with the
emergencyfeaturewhich of those DIDs do not yet have emergency routing enabled
which country and DID Group type apply to the selected DIDs
whether a DID is already linked to another Emergency Calling Service
whether a DID already returns compliance relationships that affect the next steps
Include did_group.country, did_group.did_group_type,
emergency_calling_service, identity, and address_verification in the request to obtain the following
information:
Country - identifies the DID country and is required in the next step to retrieve the exact emergency requirement that applies to the selected DIDs
DID Group type - identifies the DID type, such as Local or National, and is also required in the next step to retrieve the matching emergency requirement
Emergency Calling Service relationship - shows whether the DID is already assigned to another Emergency Calling Service
Identity relationship - shows whether the DID is already linked to a specific identity
Address Verification relationship - helps distinguish the registration scenarios shown in the tabs below
From the GET /v3/dids response, save the following values:
did.id- Required to create the emergency verification in Step 6.did_group.country.idanddid_group.did_group_type.id- Required in Step 2 to retrieve the matching emergency requirement for the selected DIDs.identity.id- If present, use it according to the registration scenario shown in the selected tab below.address_verification.id- If present, use it together withidentity.idto identify the end user registration scenario shown below.
Important
All DIDs submitted in a single emergency verification should belong to the same country and DID Group type. Keep the selected DIDs consistent from the start, because a single emergency verification request cannot mix incompatible DID combinations.
Note
filter[did_group.features]=emergencylimits the results to DIDs whose DID Groups support emergency calling registration.filter[emergency_enabled]=falseonly shows that emergency routing is not active on the DID yet. It does not guarantee that the DID is free to be used in a new Emergency Calling Service.Review
emergency_calling_servicebefore continuing. If it is already present,POST /v3/emergency_verificationscan fail because the DID is already assigned to another Emergency Calling Service.
For more information, see Get DIDs endpoint documentation.
This case shows a DID with no existing emergency registration or prior identity linkage. The rest of the flow can start without having to reuse an already assigned identity or address.
In this case:
emergency_calling_service.dataisnullidentity.dataisnulladdress_verification.dataisnull
This means the remaining steps can start with a clean selection of identity and address data.
http
GET /v3/dids?include=did_group.country%2Cdid_group.did_group_type%2Cemergency_calling_service%2Cidentity%2Caddress_verification&filter%5Bdid_group.features%5D=emergency&filter%5Bemergency_enabled%5D=false HTTP/1.1
Host: api.didww.com
Api-Key: [API token]
Accept: application/vnd.api+json
curl
curl -i -X GET 'https://api.didww.com/v3/dids?include=did_group.country%2Cdid_group.did_group_type%2Cemergency_calling_service%2Cidentity%2Caddress_verification&filter%5Bdid_group.features%5D=emergency&filter%5Bemergency_enabled%5D=false' -H "Accept: application/vnd.api+json" -H "Api-Key: [API token]"
response
HTTP/1.1 200 OK
Content-Type: application/vnd.api+json
{
"data": [
{
"id": "3d2bb4b1-7c8d-4ec0-9d5d-c2a0d8b8a901",
"type": "dids",
"attributes": {
"blocked": false,
"capacity_limit": null,
"description": null,
"terminated": false,
"awaiting_registration": false,
"created_at": "2026-04-21T09:15:11.000Z",
"billing_cycles_count": null,
"number": "37052032401",
"expires_at": "2026-05-21T09:15:11.761Z",
"channels_included_count": 6,
"dedicated_channels_count": 0,
"emergency_enabled": false
},
"relationships": {
"did_group": {
"links": {
"self": "https://staging-api.didww.com/v3/dids/3d2bb4b1-7c8d-4ec0-9d5d-c2a0d8b8a901/relationships/did_group",
"related": "https://staging-api.didww.com/v3/dids/3d2bb4b1-7c8d-4ec0-9d5d-c2a0d8b8a901/did_group"
},
"data": {
"type": "did_groups",
"id": "8c76122b-402d-4217-880a-4050ee884acb"
}
},
"order": {
"links": {
"self": "https://staging-api.didww.com/v3/dids/3d2bb4b1-7c8d-4ec0-9d5d-c2a0d8b8a901/relationships/order",
"related": "https://staging-api.didww.com/v3/dids/3d2bb4b1-7c8d-4ec0-9d5d-c2a0d8b8a901/order"
}
},
"capacity_pool": {
"links": {
"self": "https://staging-api.didww.com/v3/dids/3d2bb4b1-7c8d-4ec0-9d5d-c2a0d8b8a901/relationships/capacity_pool",
"related": "https://staging-api.didww.com/v3/dids/3d2bb4b1-7c8d-4ec0-9d5d-c2a0d8b8a901/capacity_pool"
}
},
"shared_capacity_group": {
"links": {
"self": "https://staging-api.didww.com/v3/dids/3d2bb4b1-7c8d-4ec0-9d5d-c2a0d8b8a901/relationships/shared_capacity_group",
"related": "https://staging-api.didww.com/v3/dids/3d2bb4b1-7c8d-4ec0-9d5d-c2a0d8b8a901/shared_capacity_group"
}
},
"address_verification": {
"links": {
"self": "https://staging-api.didww.com/v3/dids/3d2bb4b1-7c8d-4ec0-9d5d-c2a0d8b8a901/relationships/address_verification",
"related": "https://staging-api.didww.com/v3/dids/3d2bb4b1-7c8d-4ec0-9d5d-c2a0d8b8a901/address_verification"
},
"data": null
},
"voice_in_trunk": {
"links": {
"self": "https://staging-api.didww.com/v3/dids/3d2bb4b1-7c8d-4ec0-9d5d-c2a0d8b8a901/relationships/voice_in_trunk",
"related": "https://staging-api.didww.com/v3/dids/3d2bb4b1-7c8d-4ec0-9d5d-c2a0d8b8a901/voice_in_trunk"
}
},
"voice_in_trunk_group": {
"links": {
"self": "https://staging-api.didww.com/v3/dids/3d2bb4b1-7c8d-4ec0-9d5d-c2a0d8b8a901/relationships/voice_in_trunk_group",
"related": "https://staging-api.didww.com/v3/dids/3d2bb4b1-7c8d-4ec0-9d5d-c2a0d8b8a901/voice_in_trunk_group"
}
},
"emergency_calling_service": {
"links": {
"self": "https://staging-api.didww.com/v3/dids/3d2bb4b1-7c8d-4ec0-9d5d-c2a0d8b8a901/relationships/emergency_calling_service",
"related": "https://staging-api.didww.com/v3/dids/3d2bb4b1-7c8d-4ec0-9d5d-c2a0d8b8a901/emergency_calling_service"
},
"data": null
},
"emergency_verification": {
"links": {
"self": "https://staging-api.didww.com/v3/dids/3d2bb4b1-7c8d-4ec0-9d5d-c2a0d8b8a901/relationships/emergency_verification",
"related": "https://staging-api.didww.com/v3/dids/3d2bb4b1-7c8d-4ec0-9d5d-c2a0d8b8a901/emergency_verification"
}
},
"identity": {
"links": {
"self": "https://staging-api.didww.com/v3/dids/3d2bb4b1-7c8d-4ec0-9d5d-c2a0d8b8a901/relationships/identity",
"related": "https://staging-api.didww.com/v3/dids/3d2bb4b1-7c8d-4ec0-9d5d-c2a0d8b8a901/identity"
},
"data": null
}
}
}
],
"included": [
{
"id": "8c76122b-402d-4217-880a-4050ee884acb",
"type": "did_groups",
"attributes": {
"prefix": "5",
"features": [
"voice_in",
"voice_out",
"emergency"
],
"is_metered": false,
"area_name": "Vilnius",
"allow_additional_channels": true,
"service_restrictions": null
},
"relationships": {
"country": {
"links": {
"self": "https://staging-api.didww.com/v3/did_groups/8c76122b-402d-4217-880a-4050ee884acb/relationships/country",
"related": "https://staging-api.didww.com/v3/did_groups/8c76122b-402d-4217-880a-4050ee884acb/country"
},
"data": {
"type": "countries",
"id": "661d8448-8897-4765-acda-00cc1740148d"
}
},
"city": {
"links": {
"self": "https://staging-api.didww.com/v3/did_groups/8c76122b-402d-4217-880a-4050ee884acb/relationships/city",
"related": "https://staging-api.didww.com/v3/did_groups/8c76122b-402d-4217-880a-4050ee884acb/city"
}
},
"did_group_type": {
"links": {
"self": "https://staging-api.didww.com/v3/did_groups/8c76122b-402d-4217-880a-4050ee884acb/relationships/did_group_type",
"related": "https://staging-api.didww.com/v3/did_groups/8c76122b-402d-4217-880a-4050ee884acb/did_group_type"
},
"data": {
"type": "did_group_types",
"id": "994ea201-4a4d-4b27-ac4b-b5916ac969a3"
}
},
"region": {
"links": {
"self": "https://staging-api.didww.com/v3/did_groups/8c76122b-402d-4217-880a-4050ee884acb/relationships/region",
"related": "https://staging-api.didww.com/v3/did_groups/8c76122b-402d-4217-880a-4050ee884acb/region"
}
},
"stock_keeping_units": {
"links": {
"self": "https://staging-api.didww.com/v3/did_groups/8c76122b-402d-4217-880a-4050ee884acb/relationships/stock_keeping_units",
"related": "https://staging-api.didww.com/v3/did_groups/8c76122b-402d-4217-880a-4050ee884acb/stock_keeping_units"
}
},
"address_requirement": {
"links": {
"self": "https://staging-api.didww.com/v3/did_groups/8c76122b-402d-4217-880a-4050ee884acb/relationships/address_requirement",
"related": "https://staging-api.didww.com/v3/did_groups/8c76122b-402d-4217-880a-4050ee884acb/address_requirement"
}
}
},
"meta": {
"available_dids_enabled": true,
"needs_registration": true,
"is_available": true,
"total_count": 254
}
},
{
"id": "661d8448-8897-4765-acda-00cc1740148d",
"type": "countries",
"attributes": {
"name": "Lithuania",
"prefix": "370",
"iso": "LT"
},
"relationships": {
"regions": {
"links": {
"self": "https://staging-api.didww.com/v3/countries/661d8448-8897-4765-acda-00cc1740148d/relationships/regions",
"related": "https://staging-api.didww.com/v3/countries/661d8448-8897-4765-acda-00cc1740148d/regions"
}
}
}
},
{
"id": "994ea201-4a4d-4b27-ac4b-b5916ac969a3",
"type": "did_group_types",
"attributes": {
"name": "Local"
}
}
],
"meta": {
"total_records": 1,
"api_version": "2026-04-16"
},
"links": {
"first": "https://staging-api.didww.com/v3/dids?filter%5Bdid_group.features%5D=emergency&filter%5Bemergency_enabled%5D=false&include=did_group.country%2Cdid_group.did_group_type%2Cemergency_calling_service%2Cidentity%2Caddress_verification&page%5Bnumber%5D=1&page%5Bsize%5D=50",
"last": "https://staging-api.didww.com/v3/dids?filter%5Bdid_group.features%5D=emergency&filter%5Bemergency_enabled%5D=false&include=did_group.country%2Cdid_group.did_group_type%2Cemergency_calling_service%2Cidentity%2Caddress_verification&page%5Bnumber%5D=1&page%5Bsize%5D=50"
}
}
This scenario applies to numbers that were purchased with end user registration required.
In such cases, the number cannot be activated until the required end user registration details are completed. As part of that process, the customer must provide identity and address information, and the DID is assigned both an identity and an address verification record.
Once the end user registration process is successfully completed and the
number is activated, the DID already has both identity and
address_verification relationships.
Because the DID is already tied to one approved customer identity, emergency verification must continue with that same identity. A different identity cannot be assigned later in the flow unless the DID is reassigned to a new identity and the end user registration process is completed again for that new identity. After that, emergency verification can proceed using the newly assigned identity.
This is why in Step 3 and Step 4 you must keep using that same identity and select an address linked to it. Emergency verification checks that the DID remains assigned to the same approved customer identity that was used during end user registration. If you later submit emergency verification with an address linked to a different identity, the request can fail with the mismatch error shown in Step 6.
In this case:
identity.datais presentaddress_verification.datais present
Note
This information should be clearly shown to the end user during identity selection. The DID is already linked to an identity that was used to activate the number, so the same identity must be selected to activate emergency service for this DID.
http
GET /v3/dids?include=did_group.country%2Cdid_group.did_group_type%2Cemergency_calling_service%2Cidentity%2Caddress_verification&filter%5Bdid_group.features%5D=emergency&filter%5Bemergency_enabled%5D=false HTTP/1.1
Host: api.didww.com
Api-Key: [API token]
Accept: application/vnd.api+json
curl
curl -i -X GET 'https://api.didww.com/v3/dids?include=did_group.country%2Cdid_group.did_group_type%2Cemergency_calling_service%2Cidentity%2Caddress_verification&filter%5Bdid_group.features%5D=emergency&filter%5Bemergency_enabled%5D=false' -H "Accept: application/vnd.api+json" -H "Api-Key: [API token]"
response
HTTP/1.1 200 OK
Content-Type: application/vnd.api+json
{
"data": [
{
"id": "9f81f2ef-ad6c-402b-97af-06fff514454e",
"type": "dids",
"attributes": {
"blocked": false,
"capacity_limit": null,
"description": null,
"terminated": false,
"awaiting_registration": false,
"created_at": "2026-04-16T12:12:34.000Z",
"billing_cycles_count": null,
"number": "37052032400",
"expires_at": "2026-05-21T08:10:39.095Z",
"channels_included_count": 6,
"dedicated_channels_count": 0,
"emergency_enabled": false
},
"relationships": {
"did_group": {
"links": {
"self": "https://staging-api.didww.com/v3/dids/9f81f2ef-ad6c-402b-97af-06fff514454e/relationships/did_group",
"related": "https://staging-api.didww.com/v3/dids/9f81f2ef-ad6c-402b-97af-06fff514454e/did_group"
},
"data": {
"type": "did_groups",
"id": "8c76122b-402d-4217-880a-4050ee884acb"
}
},
"order": {
"links": {
"self": "https://staging-api.didww.com/v3/dids/9f81f2ef-ad6c-402b-97af-06fff514454e/relationships/order",
"related": "https://staging-api.didww.com/v3/dids/9f81f2ef-ad6c-402b-97af-06fff514454e/order"
}
},
"capacity_pool": {
"links": {
"self": "https://staging-api.didww.com/v3/dids/9f81f2ef-ad6c-402b-97af-06fff514454e/relationships/capacity_pool",
"related": "https://staging-api.didww.com/v3/dids/9f81f2ef-ad6c-402b-97af-06fff514454e/capacity_pool"
}
},
"shared_capacity_group": {
"links": {
"self": "https://staging-api.didww.com/v3/dids/9f81f2ef-ad6c-402b-97af-06fff514454e/relationships/shared_capacity_group",
"related": "https://staging-api.didww.com/v3/dids/9f81f2ef-ad6c-402b-97af-06fff514454e/shared_capacity_group"
}
},
"address_verification": {
"links": {
"self": "https://staging-api.didww.com/v3/dids/9f81f2ef-ad6c-402b-97af-06fff514454e/relationships/address_verification",
"related": "https://staging-api.didww.com/v3/dids/9f81f2ef-ad6c-402b-97af-06fff514454e/address_verification"
},
"data": {
"type": "address_verifications",
"id": "8ee9ea68-992c-442d-84b3-37d69a2ba8f5"
}
},
"voice_in_trunk": {
"links": {
"self": "https://staging-api.didww.com/v3/dids/9f81f2ef-ad6c-402b-97af-06fff514454e/relationships/voice_in_trunk",
"related": "https://staging-api.didww.com/v3/dids/9f81f2ef-ad6c-402b-97af-06fff514454e/voice_in_trunk"
}
},
"voice_in_trunk_group": {
"links": {
"self": "https://staging-api.didww.com/v3/dids/9f81f2ef-ad6c-402b-97af-06fff514454e/relationships/voice_in_trunk_group",
"related": "https://staging-api.didww.com/v3/dids/9f81f2ef-ad6c-402b-97af-06fff514454e/voice_in_trunk_group"
}
},
"emergency_calling_service": {
"links": {
"self": "https://staging-api.didww.com/v3/dids/9f81f2ef-ad6c-402b-97af-06fff514454e/relationships/emergency_calling_service",
"related": "https://staging-api.didww.com/v3/dids/9f81f2ef-ad6c-402b-97af-06fff514454e/emergency_calling_service"
},
"data": null
},
"emergency_verification": {
"links": {
"self": "https://staging-api.didww.com/v3/dids/9f81f2ef-ad6c-402b-97af-06fff514454e/relationships/emergency_verification",
"related": "https://staging-api.didww.com/v3/dids/9f81f2ef-ad6c-402b-97af-06fff514454e/emergency_verification"
}
},
"identity": {
"links": {
"self": "https://staging-api.didww.com/v3/dids/9f81f2ef-ad6c-402b-97af-06fff514454e/relationships/identity",
"related": "https://staging-api.didww.com/v3/dids/9f81f2ef-ad6c-402b-97af-06fff514454e/identity"
},
"data": {
"type": "identities",
"id": "1193bf05-f01c-467f-b688-d0526ab50414"
}
}
}
}
],
"included": [
{
"id": "8c76122b-402d-4217-880a-4050ee884acb",
"type": "did_groups",
"attributes": {
"prefix": "5",
"features": [
"voice_in",
"voice_out",
"emergency"
],
"is_metered": false,
"area_name": "Vilnius",
"allow_additional_channels": true,
"service_restrictions": null
},
"relationships": {
"country": {
"links": {
"self": "https://staging-api.didww.com/v3/did_groups/8c76122b-402d-4217-880a-4050ee884acb/relationships/country",
"related": "https://staging-api.didww.com/v3/did_groups/8c76122b-402d-4217-880a-4050ee884acb/country"
},
"data": {
"type": "countries",
"id": "661d8448-8897-4765-acda-00cc1740148d"
}
},
"city": {
"links": {
"self": "https://staging-api.didww.com/v3/did_groups/8c76122b-402d-4217-880a-4050ee884acb/relationships/city",
"related": "https://staging-api.didww.com/v3/did_groups/8c76122b-402d-4217-880a-4050ee884acb/city"
}
},
"did_group_type": {
"links": {
"self": "https://staging-api.didww.com/v3/did_groups/8c76122b-402d-4217-880a-4050ee884acb/relationships/did_group_type",
"related": "https://staging-api.didww.com/v3/did_groups/8c76122b-402d-4217-880a-4050ee884acb/did_group_type"
},
"data": {
"type": "did_group_types",
"id": "994ea201-4a4d-4b27-ac4b-b5916ac969a3"
}
},
"region": {
"links": {
"self": "https://staging-api.didww.com/v3/did_groups/8c76122b-402d-4217-880a-4050ee884acb/relationships/region",
"related": "https://staging-api.didww.com/v3/did_groups/8c76122b-402d-4217-880a-4050ee884acb/region"
}
},
"stock_keeping_units": {
"links": {
"self": "https://staging-api.didww.com/v3/did_groups/8c76122b-402d-4217-880a-4050ee884acb/relationships/stock_keeping_units",
"related": "https://staging-api.didww.com/v3/did_groups/8c76122b-402d-4217-880a-4050ee884acb/stock_keeping_units"
}
},
"address_requirement": {
"links": {
"self": "https://staging-api.didww.com/v3/did_groups/8c76122b-402d-4217-880a-4050ee884acb/relationships/address_requirement",
"related": "https://staging-api.didww.com/v3/did_groups/8c76122b-402d-4217-880a-4050ee884acb/address_requirement"
}
}
},
"meta": {
"available_dids_enabled": true,
"needs_registration": true,
"is_available": true,
"total_count": 254
}
},
{
"id": "661d8448-8897-4765-acda-00cc1740148d",
"type": "countries",
"attributes": {
"name": "Lithuania",
"prefix": "370",
"iso": "LT"
},
"relationships": {
"regions": {
"links": {
"self": "https://staging-api.didww.com/v3/countries/661d8448-8897-4765-acda-00cc1740148d/relationships/regions",
"related": "https://staging-api.didww.com/v3/countries/661d8448-8897-4765-acda-00cc1740148d/regions"
}
}
}
},
{
"id": "994ea201-4a4d-4b27-ac4b-b5916ac969a3",
"type": "did_group_types",
"attributes": {
"name": "Local"
}
},
{
"id": "1193bf05-f01c-467f-b688-d0526ab50414",
"type": "identities",
"attributes": {
"external_reference_id": null,
"first_name": "string",
"last_name": "string",
"phone_number": "12345678901",
"id_number": null,
"birth_date": null,
"identity_type": "business",
"company_name": "test",
"company_reg_number": null,
"vat_id": null,
"description": "string",
"personal_tax_id": null,
"created_at": "2026-04-21T07:50:38.639Z",
"verified": true,
"contact_email": null
},
"relationships": {
"country": {
"links": {
"self": "https://staging-api.didww.com/v3/identities/1193bf05-f01c-467f-b688-d0526ab50414/relationships/country",
"related": "https://staging-api.didww.com/v3/identities/1193bf05-f01c-467f-b688-d0526ab50414/country"
}
},
"proofs": {
"links": {
"self": "https://staging-api.didww.com/v3/identities/1193bf05-f01c-467f-b688-d0526ab50414/relationships/proofs",
"related": "https://staging-api.didww.com/v3/identities/1193bf05-f01c-467f-b688-d0526ab50414/proofs"
}
},
"addresses": {
"links": {
"self": "https://staging-api.didww.com/v3/identities/1193bf05-f01c-467f-b688-d0526ab50414/relationships/addresses",
"related": "https://staging-api.didww.com/v3/identities/1193bf05-f01c-467f-b688-d0526ab50414/addresses"
}
},
"permanent_documents": {
"links": {
"self": "https://staging-api.didww.com/v3/identities/1193bf05-f01c-467f-b688-d0526ab50414/relationships/permanent_documents",
"related": "https://staging-api.didww.com/v3/identities/1193bf05-f01c-467f-b688-d0526ab50414/permanent_documents"
}
},
"birth_country": {
"links": {
"self": "https://staging-api.didww.com/v3/identities/1193bf05-f01c-467f-b688-d0526ab50414/relationships/birth_country",
"related": "https://staging-api.didww.com/v3/identities/1193bf05-f01c-467f-b688-d0526ab50414/birth_country"
}
}
}
},
{
"id": "8ee9ea68-992c-442d-84b3-37d69a2ba8f5",
"type": "address_verifications",
"attributes": {
"status": "approved",
"reference": "DFH-637703",
"external_reference_id": null
}
}
],
"meta": {
"total_records": 1,
"api_version": "2026-04-16"
},
"links": {
"first": "https://staging-api.didww.com/v3/dids?filter%5Bdid_group.features%5D=emergency&filter%5Bemergency_enabled%5D=false&include=did_group.country%2Cdid_group.did_group_type%2Cemergency_calling_service%2Cidentity%2Caddress_verification&page%5Bnumber%5D=1&page%5Bsize%5D=50",
"last": "https://staging-api.didww.com/v3/dids?filter%5Bdid_group.features%5D=emergency&filter%5Bemergency_enabled%5D=false&include=did_group.country%2Cdid_group.did_group_type%2Cemergency_calling_service%2Cidentity%2Caddress_verification&page%5Bnumber%5D=1&page%5Bsize%5D=50"
}
}
This scenario applies to numbers that were ported into your DIDWW account.
During the port-in process, the number owner must provide identity information to complete the porting request and activate the number. This is done in the DIDWW User Panel through the porting tool. As a result, once the number has been successfully ported and activated, it may already have an identity associated with it from the earlier porting flow.
In such cases, the DID has an identity relationship, so
identity.data is available. However, because no approved address
verification was created as part of that process,
address_verification.data is not available and is returned as null.
The existing identity can be reused later in the emergency registration flow, but it is not required. A different identity may also be selected for emergency verification.
In this case:
identity.datais presentaddress_verification.dataisnullthe existing identity may be reused, but it does not have to be kept for Step 3 and Step 4
Note
For implementation purposes, when identity.data exists but
address_verification.data is null, the linked identity comes from
porting. It may be displayed and preselected in the UI, but the user
can replace it with another identity during emergency registration. This
case should be handled the same way as a DID without a linked identity.
http
GET /v3/dids?include=did_group.country%2Cdid_group.did_group_type%2Cemergency_calling_service%2Cidentity%2Caddress_verification&filter%5Bdid_group.features%5D=emergency&filter%5Bemergency_enabled%5D=false HTTP/1.1
Host: api.didww.com
Api-Key: [API token]
Accept: application/vnd.api+json
curl
curl -i -X GET 'https://api.didww.com/v3/dids?include=did_group.country%2Cdid_group.did_group_type%2Cemergency_calling_service%2Cidentity%2Caddress_verification&filter%5Bdid_group.features%5D=emergency&filter%5Bemergency_enabled%5D=false' -H "Accept: application/vnd.api+json" -H "Api-Key: [API token]"
response
HTTP/1.1 200 OK
Content-Type: application/vnd.api+json
{
"data": [
{
"id": "cc4c423f-68b5-4e1a-878c-2328eb24f3fa",
"type": "dids",
"attributes": {
"blocked": false,
"capacity_limit": null,
"description": null,
"terminated": false,
"awaiting_registration": false,
"created_at": "2026-04-21T08:42:56.000Z",
"billing_cycles_count": null,
"number": "37052032403",
"expires_at": "2026-05-21T08:44:55.761Z",
"channels_included_count": 6,
"dedicated_channels_count": 0,
"emergency_enabled": false
},
"relationships": {
"did_group": {
"links": {
"self": "https://staging-api.didww.com/v3/dids/cc4c423f-68b5-4e1a-878c-2328eb24f3fa/relationships/did_group",
"related": "https://staging-api.didww.com/v3/dids/cc4c423f-68b5-4e1a-878c-2328eb24f3fa/did_group"
},
"data": {
"type": "did_groups",
"id": "8c76122b-402d-4217-880a-4050ee884acb"
}
},
"order": {
"links": {
"self": "https://staging-api.didww.com/v3/dids/cc4c423f-68b5-4e1a-878c-2328eb24f3fa/relationships/order",
"related": "https://staging-api.didww.com/v3/dids/cc4c423f-68b5-4e1a-878c-2328eb24f3fa/order"
}
},
"capacity_pool": {
"links": {
"self": "https://staging-api.didww.com/v3/dids/cc4c423f-68b5-4e1a-878c-2328eb24f3fa/relationships/capacity_pool",
"related": "https://staging-api.didww.com/v3/dids/cc4c423f-68b5-4e1a-878c-2328eb24f3fa/capacity_pool"
}
},
"shared_capacity_group": {
"links": {
"self": "https://staging-api.didww.com/v3/dids/cc4c423f-68b5-4e1a-878c-2328eb24f3fa/relationships/shared_capacity_group",
"related": "https://staging-api.didww.com/v3/dids/cc4c423f-68b5-4e1a-878c-2328eb24f3fa/shared_capacity_group"
}
},
"address_verification": {
"links": {
"self": "https://staging-api.didww.com/v3/dids/cc4c423f-68b5-4e1a-878c-2328eb24f3fa/relationships/address_verification",
"related": "https://staging-api.didww.com/v3/dids/cc4c423f-68b5-4e1a-878c-2328eb24f3fa/address_verification"
},
"data": null
},
"voice_in_trunk": {
"links": {
"self": "https://staging-api.didww.com/v3/dids/cc4c423f-68b5-4e1a-878c-2328eb24f3fa/relationships/voice_in_trunk",
"related": "https://staging-api.didww.com/v3/dids/cc4c423f-68b5-4e1a-878c-2328eb24f3fa/voice_in_trunk"
}
},
"voice_in_trunk_group": {
"links": {
"self": "https://staging-api.didww.com/v3/dids/cc4c423f-68b5-4e1a-878c-2328eb24f3fa/relationships/voice_in_trunk_group",
"related": "https://staging-api.didww.com/v3/dids/cc4c423f-68b5-4e1a-878c-2328eb24f3fa/voice_in_trunk_group"
}
},
"emergency_calling_service": {
"links": {
"self": "https://staging-api.didww.com/v3/dids/cc4c423f-68b5-4e1a-878c-2328eb24f3fa/relationships/emergency_calling_service",
"related": "https://staging-api.didww.com/v3/dids/cc4c423f-68b5-4e1a-878c-2328eb24f3fa/emergency_calling_service"
},
"data": null
},
"emergency_verification": {
"links": {
"self": "https://staging-api.didww.com/v3/dids/cc4c423f-68b5-4e1a-878c-2328eb24f3fa/relationships/emergency_verification",
"related": "https://staging-api.didww.com/v3/dids/cc4c423f-68b5-4e1a-878c-2328eb24f3fa/emergency_verification"
}
},
"identity": {
"links": {
"self": "https://staging-api.didww.com/v3/dids/cc4c423f-68b5-4e1a-878c-2328eb24f3fa/relationships/identity",
"related": "https://staging-api.didww.com/v3/dids/cc4c423f-68b5-4e1a-878c-2328eb24f3fa/identity"
},
"data": {
"type": "identities",
"id": "beca16fb-0385-462f-9e2c-0d1918f6c8af"
}
}
}
}
],
"included": [
{
"id": "8c76122b-402d-4217-880a-4050ee884acb",
"type": "did_groups",
"attributes": {
"prefix": "5",
"features": [
"voice_in",
"voice_out",
"emergency"
],
"is_metered": false,
"area_name": "Vilnius",
"allow_additional_channels": true,
"service_restrictions": null
},
"relationships": {
"country": {
"links": {
"self": "https://staging-api.didww.com/v3/did_groups/8c76122b-402d-4217-880a-4050ee884acb/relationships/country",
"related": "https://staging-api.didww.com/v3/did_groups/8c76122b-402d-4217-880a-4050ee884acb/country"
},
"data": {
"type": "countries",
"id": "661d8448-8897-4765-acda-00cc1740148d"
}
},
"city": {
"links": {
"self": "https://staging-api.didww.com/v3/did_groups/8c76122b-402d-4217-880a-4050ee884acb/relationships/city",
"related": "https://staging-api.didww.com/v3/did_groups/8c76122b-402d-4217-880a-4050ee884acb/city"
}
},
"did_group_type": {
"links": {
"self": "https://staging-api.didww.com/v3/did_groups/8c76122b-402d-4217-880a-4050ee884acb/relationships/did_group_type",
"related": "https://staging-api.didww.com/v3/did_groups/8c76122b-402d-4217-880a-4050ee884acb/did_group_type"
},
"data": {
"type": "did_group_types",
"id": "994ea201-4a4d-4b27-ac4b-b5916ac969a3"
}
},
"region": {
"links": {
"self": "https://staging-api.didww.com/v3/did_groups/8c76122b-402d-4217-880a-4050ee884acb/relationships/region",
"related": "https://staging-api.didww.com/v3/did_groups/8c76122b-402d-4217-880a-4050ee884acb/region"
}
},
"stock_keeping_units": {
"links": {
"self": "https://staging-api.didww.com/v3/did_groups/8c76122b-402d-4217-880a-4050ee884acb/relationships/stock_keeping_units",
"related": "https://staging-api.didww.com/v3/did_groups/8c76122b-402d-4217-880a-4050ee884acb/stock_keeping_units"
}
},
"address_requirement": {
"links": {
"self": "https://staging-api.didww.com/v3/did_groups/8c76122b-402d-4217-880a-4050ee884acb/relationships/address_requirement",
"related": "https://staging-api.didww.com/v3/did_groups/8c76122b-402d-4217-880a-4050ee884acb/address_requirement"
}
}
},
"meta": {
"available_dids_enabled": true,
"needs_registration": true,
"is_available": true,
"total_count": 254
}
},
{
"id": "661d8448-8897-4765-acda-00cc1740148d",
"type": "countries",
"attributes": {
"name": "Lithuania",
"prefix": "370",
"iso": "LT"
},
"relationships": {
"regions": {
"links": {
"self": "https://staging-api.didww.com/v3/countries/661d8448-8897-4765-acda-00cc1740148d/relationships/regions",
"related": "https://staging-api.didww.com/v3/countries/661d8448-8897-4765-acda-00cc1740148d/regions"
}
}
}
},
{
"id": "994ea201-4a4d-4b27-ac4b-b5916ac969a3",
"type": "did_group_types",
"attributes": {
"name": "Local"
}
},
{
"id": "beca16fb-0385-462f-9e2c-0d1918f6c8af",
"type": "identities",
"attributes": {
"external_reference_id": null,
"first_name": "John",
"last_name": "Smith",
"phone_number": "3233461111",
"id_number": null,
"birth_date": null,
"company_name": "Example Company Ltd",
"company_reg_number": null,
"vat_id": "BE0123456789",
"description": null,
"personal_tax_id": null,
"identity_type": "business",
"created_at": "2026-01-09T07:30:12.546Z",
"verified": true,
"contact_email": null
},
"relationships": {
"country": {
"links": {
"self": "https://staging-api.didww.com/v3/identities/beca16fb-0385-462f-9e2c-0d1918f6c8af/relationships/country",
"related": "https://staging-api.didww.com/v3/identities/beca16fb-0385-462f-9e2c-0d1918f6c8af/country"
}
},
"proofs": {
"links": {
"self": "https://staging-api.didww.com/v3/identities/beca16fb-0385-462f-9e2c-0d1918f6c8af/relationships/proofs",
"related": "https://staging-api.didww.com/v3/identities/beca16fb-0385-462f-9e2c-0d1918f6c8af/proofs"
}
},
"addresses": {
"links": {
"self": "https://staging-api.didww.com/v3/identities/beca16fb-0385-462f-9e2c-0d1918f6c8af/relationships/addresses",
"related": "https://staging-api.didww.com/v3/identities/beca16fb-0385-462f-9e2c-0d1918f6c8af/addresses"
}
},
"permanent_documents": {
"links": {
"self": "https://staging-api.didww.com/v3/identities/beca16fb-0385-462f-9e2c-0d1918f6c8af/relationships/permanent_documents",
"related": "https://staging-api.didww.com/v3/identities/beca16fb-0385-462f-9e2c-0d1918f6c8af/permanent_documents"
}
},
"birth_country": {
"links": {
"self": "https://staging-api.didww.com/v3/identities/beca16fb-0385-462f-9e2c-0d1918f6c8af/relationships/birth_country",
"related": "https://staging-api.didww.com/v3/identities/beca16fb-0385-462f-9e2c-0d1918f6c8af/birth_country"
}
}
}
}
],
"meta": {
"total_records": 1,
"api_version": "2026-04-16"
},
"links": {
"first": "https://staging-api.didww.com/v3/dids?filter%5Bdid_group.features%5D=emergency&filter%5Bemergency_enabled%5D=false&include=did_group.country%2Cdid_group.did_group_type%2Cemergency_calling_service%2Cidentity%2Caddress_verification&page%5Bnumber%5D=1&page%5Bsize%5D=50",
"last": "https://staging-api.didww.com/v3/dids?filter%5Bdid_group.features%5D=emergency&filter%5Bemergency_enabled%5D=false&include=did_group.country%2Cdid_group.did_group_type%2Cemergency_calling_service%2Cidentity%2Caddress_verification&page%5Bnumber%5D=1&page%5Bsize%5D=50"
}
}
Step 2: Check Emergency Requirements
Use the /emergency_requirements endpoint to present end users with the
emergency registration requirements and other relevant information for the
selected country and DID Group type.
Note
If the user has already selected a specific DID in Step 1 for which they want to enable emergency service, the application may preselect and display the corresponding country and DID Group type, and then retrieve the exact requirement that applies to that DID.
This step should be used not only for backend validation, but also to build the information the end user needs before continuing with emergency registration.
Your application should use this step to:
list the emergency supported countries returned by the API and, after a country is selected, show the DID Group types supported for that country to narrow down the available options
let the user first select a country, or preselect it if it is already known
once both the country and DID Group type are selected, retrieve and display the exact emergency requirement for that combination
present the returned requirement details to the end user before continuing, so they can understand what identity and address information will be required in the next steps
determine which identity and address data must be selected or created before the emergency verification is submitted
From the requirement that matches the selected country and DID Group type
such as local, mobile, or another supported number type, use the
following fields in later steps of the flow:
emergency_requirement.idfor the validation stepidentity_typeto decide whether apersonalorbusinessidentity is allowedaddress_area_levelto understand how specific the address must beaddress_mandatory_fieldsto know which address fields become requiredpersonal_area_level/business_area_levelto understand identity country restrictionspersonal_mandatory_fields/business_mandatory_fieldsto know which identity fields become required when the user selects an existing identity or creates a new one
In this step, display the following information to the user before continuing:
requirement_restriction_messageto show additional registration guidance together with the selected country and DID Group type whenever it is presentmeta.setup_priceandmeta.monthly_priceto show the expected emergency service pricing per number before submissionestimate_setup_timeto show the estimated verification time, for exampleEstimated verification time: 7-14 days
For more information, see Emergency Requirement object.
Use this approach when your UI needs to display all available emergency registration combinations before the user chooses which DIDs to register.
By including country and did_group_type, your application can present
human-readable values such as Lithuania and Local instead of
showing only UUIDs from relationship data.
This request does not yet determine which requirement applies to the selected DIDs. It is used earlier in the flow to show what combinations are supported at all, so the user can understand the available emergency registration scope before the exact requirement is loaded for the DIDs selected in Step 1.
This is especially useful when you want to:
build a country picker for emergency registration
show which DID Group types are supported in each country
show the requirement restrictions and pricing before the user continues with the flow
http
GET /v3/emergency_requirements?include=country%2Cdid_group_type HTTP/1.1
Host: api.didww.com
Api-Key: [API token]
Accept: application/vnd.api+json
curl
curl -i -X GET 'https://api.didww.com/v3/emergency_requirements?include=country%2Cdid_group_type' -H "Accept: application/vnd.api+json" -H "Api-Key: [API token]"
response
HTTP/1.1 200 OK
Content-Type: application/vnd.api+json
{
"data": [
{
"id": "37067e8b-c9c4-4b77-af7f-f514d28e68fd",
"type": "emergency_requirements",
"attributes": {
"identity_type": "any",
"address_area_level": "country",
"personal_area_level": "world_wide",
"business_area_level": "world_wide",
"address_mandatory_fields": [],
"personal_mandatory_fields": [],
"business_mandatory_fields": [],
"estimate_setup_time": "7-14 days",
"requirement_restriction_message": null
},
"relationships": {
"country": {
"links": {
"self": "https://staging-api.didww.com/v3/emergency_requirements/37067e8b-c9c4-4b77-af7f-f514d28e68fd/relationships/country",
"related": "https://staging-api.didww.com/v3/emergency_requirements/37067e8b-c9c4-4b77-af7f-f514d28e68fd/country"
},
"data": {
"type": "countries",
"id": "3d1c2c4e-4b06-4c94-8f0b-43eea90929a0"
}
},
"did_group_type": {
"links": {
"self": "https://staging-api.didww.com/v3/emergency_requirements/37067e8b-c9c4-4b77-af7f-f514d28e68fd/relationships/did_group_type",
"related": "https://staging-api.didww.com/v3/emergency_requirements/37067e8b-c9c4-4b77-af7f-f514d28e68fd/did_group_type"
},
"data": {
"type": "did_group_types",
"id": "994ea201-4a4d-4b27-ac4b-b5916ac969a3"
}
}
},
"meta": {
"setup_price": 0,
"monthly_price": "0.5"
}
},
{
"id": "a80051e5-5f77-4003-b164-63b1ccfc5377",
"type": "emergency_requirements",
"attributes": {
"identity_type": "any",
"address_area_level": "country",
"personal_area_level": "world_wide",
"business_area_level": "world_wide",
"address_mandatory_fields": [],
"personal_mandatory_fields": [],
"business_mandatory_fields": [],
"estimate_setup_time": "7-14 days",
"requirement_restriction_message": "Requirement restriction message"
},
"relationships": {
"country": {
"links": {
"self": "https://staging-api.didww.com/v3/emergency_requirements/a80051e5-5f77-4003-b164-63b1ccfc5377/relationships/country",
"related": "https://staging-api.didww.com/v3/emergency_requirements/a80051e5-5f77-4003-b164-63b1ccfc5377/country"
},
"data": {
"type": "countries",
"id": "7549be3c-1077-433d-9a77-25416373660d"
}
},
"did_group_type": {
"links": {
"self": "https://staging-api.didww.com/v3/emergency_requirements/a80051e5-5f77-4003-b164-63b1ccfc5377/relationships/did_group_type",
"related": "https://staging-api.didww.com/v3/emergency_requirements/a80051e5-5f77-4003-b164-63b1ccfc5377/did_group_type"
},
"data": {
"type": "did_group_types",
"id": "994ea201-4a4d-4b27-ac4b-b5916ac969a3"
}
}
},
"meta": {
"setup_price": 0,
"monthly_price": "0.75"
}
},
{
"id": "f788cef0-b278-4f21-a870-23950e67d0a1",
"type": "emergency_requirements",
"attributes": {
"identity_type": "any",
"address_area_level": "country",
"personal_area_level": "world_wide",
"business_area_level": "world_wide",
"address_mandatory_fields": [],
"personal_mandatory_fields": [],
"business_mandatory_fields": [],
"estimate_setup_time": "7-14 days",
"requirement_restriction_message": "Requirement restriction message"
},
"relationships": {
"country": {
"links": {
"self": "https://staging-api.didww.com/v3/emergency_requirements/f788cef0-b278-4f21-a870-23950e67d0a1/relationships/country",
"related": "https://staging-api.didww.com/v3/emergency_requirements/f788cef0-b278-4f21-a870-23950e67d0a1/country"
},
"data": {
"type": "countries",
"id": "661d8448-8897-4765-acda-00cc1740148d"
}
},
"did_group_type": {
"links": {
"self": "https://staging-api.didww.com/v3/emergency_requirements/f788cef0-b278-4f21-a870-23950e67d0a1/relationships/did_group_type",
"related": "https://staging-api.didww.com/v3/emergency_requirements/f788cef0-b278-4f21-a870-23950e67d0a1/did_group_type"
},
"data": {
"type": "did_group_types",
"id": "994ea201-4a4d-4b27-ac4b-b5916ac969a3"
}
}
},
"meta": {
"setup_price": 0,
"monthly_price": "1.0"
}
}
],
"included": [
{
"id": "3d1c2c4e-4b06-4c94-8f0b-43eea90929a0",
"type": "countries",
"attributes": {
"name": "Argentina",
"prefix": "54",
"iso": "AR"
},
"relationships": {
"regions": {
"links": {
"self": "https://staging-api.didww.com/v3/countries/3d1c2c4e-4b06-4c94-8f0b-43eea90929a0/relationships/regions",
"related": "https://staging-api.didww.com/v3/countries/3d1c2c4e-4b06-4c94-8f0b-43eea90929a0/regions"
}
}
}
},
{
"id": "7549be3c-1077-433d-9a77-25416373660d",
"type": "countries",
"attributes": {
"name": "Sweden",
"prefix": "46",
"iso": "SE"
},
"relationships": {
"regions": {
"links": {
"self": "https://staging-api.didww.com/v3/countries/7549be3c-1077-433d-9a77-25416373660d/relationships/regions",
"related": "https://staging-api.didww.com/v3/countries/7549be3c-1077-433d-9a77-25416373660d/regions"
}
}
}
},
{
"id": "661d8448-8897-4765-acda-00cc1740148d",
"type": "countries",
"attributes": {
"name": "Lithuania",
"prefix": "370",
"iso": "LT"
},
"relationships": {
"regions": {
"links": {
"self": "https://staging-api.didww.com/v3/countries/661d8448-8897-4765-acda-00cc1740148d/relationships/regions",
"related": "https://staging-api.didww.com/v3/countries/661d8448-8897-4765-acda-00cc1740148d/regions"
}
}
}
},
{
"id": "994ea201-4a4d-4b27-ac4b-b5916ac969a3",
"type": "did_group_types",
"attributes": {
"name": "Local"
}
}
],
"meta": {
"total_records": 65,
"api_version": "2026-04-16"
},
"links": {
"first": "https://staging-api.didww.com/v3/emergency_requirements?include=country%2Cdid_group_type&page%5Bnumber%5D=1&page%5Bsize%5D=50",
"next": "https://staging-api.didww.com/v3/emergency_requirements?include=country%2Cdid_group_type&page%5Bnumber%5D=2&page%5Bsize%5D=50",
"last": "https://staging-api.didww.com/v3/emergency_requirements?include=country%2Cdid_group_type&page%5Bnumber%5D=2&page%5Bsize%5D=50"
}
}
Use this approach when the DIDs were already selected in Step 1 and you want to retrieve the exact emergency requirement that applies to those DIDs.
By filtering with the saved country.id and did_group_type.id, your
application can load only the matching requirement instead of presenting the
full list of supported combinations.
This is the requirement that should be treated as the source of truth for the rest of the flow. It determines which identity type is accepted, how specific the address must be, which fields become mandatory, and what setup time or pricing can be shown before submission.
This is especially useful when you want to:
load the exact requirement for the selected DIDs before collecting identity and address data
show a confirmation view with the requirement details that apply to the selected DIDs
determine which fields become required before the user continues
http
GET /v3/emergency_requirements?include=country%2Cdid_group_type&filter%5Bcountry.id%5D=661d8448-8897-4765-acda-00cc1740148d&filter%5Bdid_group_type.id%5D=994ea201-4a4d-4b27-ac4b-b5916ac969a3 HTTP/1.1
Host: api.didww.com
Api-Key: [API token]
Accept: application/vnd.api+json
curl
curl -i -X GET 'https://api.didww.com/v3/emergency_requirements?include=country%2Cdid_group_type&filter%5Bcountry.id%5D=661d8448-8897-4765-acda-00cc1740148d&filter%5Bdid_group_type.id%5D=994ea201-4a4d-4b27-ac4b-b5916ac969a3' -H "Accept: application/vnd.api+json" -H "Api-Key: [API token]"
response
HTTP/1.1 200 OK
Content-Type: application/vnd.api+json
{
"data": [
{
"id": "f788cef0-b278-4f21-a870-23950e67d0a1",
"type": "emergency_requirements",
"attributes": {
"identity_type": "any",
"address_area_level": "country",
"personal_area_level": "world_wide",
"business_area_level": "world_wide",
"address_mandatory_fields": [],
"personal_mandatory_fields": [],
"business_mandatory_fields": [],
"estimate_setup_time": "7-14 days",
"requirement_restriction_message": null
},
"relationships": {
"country": {
"links": {
"self": "https://staging-api.didww.com/v3/emergency_requirements/f788cef0-b278-4f21-a870-23950e67d0a1/relationships/country",
"related": "https://staging-api.didww.com/v3/emergency_requirements/f788cef0-b278-4f21-a870-23950e67d0a1/country"
},
"data": {
"type": "countries",
"id": "661d8448-8897-4765-acda-00cc1740148d"
}
},
"did_group_type": {
"links": {
"self": "https://staging-api.didww.com/v3/emergency_requirements/f788cef0-b278-4f21-a870-23950e67d0a1/relationships/did_group_type",
"related": "https://staging-api.didww.com/v3/emergency_requirements/f788cef0-b278-4f21-a870-23950e67d0a1/did_group_type"
},
"data": {
"type": "did_group_types",
"id": "994ea201-4a4d-4b27-ac4b-b5916ac969a3"
}
}
},
"meta": {
"setup_price": 0,
"monthly_price": "1.0"
}
}
],
"included": [
{
"id": "661d8448-8897-4765-acda-00cc1740148d",
"type": "countries",
"attributes": {
"name": "Lithuania",
"prefix": "370",
"iso": "LT"
},
"relationships": {
"regions": {
"links": {
"self": "https://staging-api.didww.com/v3/countries/661d8448-8897-4765-acda-00cc1740148d/relationships/regions",
"related": "https://staging-api.didww.com/v3/countries/661d8448-8897-4765-acda-00cc1740148d/regions"
}
}
}
},
{
"id": "994ea201-4a4d-4b27-ac4b-b5916ac969a3",
"type": "did_group_types",
"attributes": {
"name": "Local"
}
}
],
"meta": {
"total_records": 1,
"api_version": "2026-04-16"
},
"links": {
"first": "https://staging-api.didww.com/v3/emergency_requirements?filter%5Bcountry.id%5D=661d8448-8897-4765-acda-00cc1740148d&filter%5Bdid_group_type.id%5D=994ea201-4a4d-4b27-ac4b-b5916ac969a3&include=country%2Cdid_group_type&page%5Bnumber%5D=1&page%5Bsize%5D=50",
"last": "https://staging-api.didww.com/v3/emergency_requirements?filter%5Bcountry.id%5D=661d8448-8897-4765-acda-00cc1740148d&filter%5Bdid_group_type.id%5D=994ea201-4a4d-4b27-ac4b-b5916ac969a3&include=country%2Cdid_group_type&page%5Bnumber%5D=1&page%5Bsize%5D=50"
}
}
Important
Use the emergency requirement as the source of truth for what you create next.
If the requirement expects a business identity, a personal identity will fail validation.
If address_area_level is country, the address must belong to the same country as the selected DIDs.
Step 3: Select or Create an Identity
At this stage, you need an identity that satisfies the emergency requirement from Step 2.
If you already have a suitable identity on file, you can select and reuse it. If not, create a new identity that matches the requirement.
The identity is the customer record that will be assigned to the emergency verification. This is why the identity must match the requirement before you continue. If the wrong identity type is selected, if the required fields are missing, or if the DID already has end user registration on another identity, the validation step or the emergency verification request can fail.
Use the result from Step 1 to decide which identity path applies:
if
emergency_calling_service.datais present, do not continue with that DIDif both
identity.dataandaddress_verification.dataare present, reuse that exact identityif
identity.datais present butaddress_verification.dataisnull, the DID may only have a porting identity, which can be reused or replacedif both relationships are
null, select an existing identity or create a new one that satisfies the emergency requirement
Use the emergency requirement to determine:
whether the identity must be
personalorbusinesswhich identity fields are mandatory
whether the identity country must match the DID country
From this step, save identity.id. You will use it to select or create the
address in Step 4.
For more information, see Create Identity endpoint documentation.
Use this approach first when you already have an identity on file that satisfies the emergency requirement.
If Step 1
returned both identity and address_verification for the selected DID,
choose that same identity here. In that case, the DID already has end user
registration and emergency verification must stay on the same identity.
Review the returned identities and select one that matches:
the required
identity_typethe required
countryscopethe mandatory fields defined by the emergency requirement
In practice, this request is useful when your application wants to let the user pick from previously created customer identities instead of creating a new record every time.
http
GET /v3/identities?filter%5Bidentity_type%5D=business&filter%5Bcountry.id%5D=661d8448-8897-4765-acda-00cc1740148d HTTP/1.1
Host: api.didww.com
Api-Key: [API token]
Accept: application/vnd.api+json
curl
curl -i -X GET 'https://api.didww.com/v3/identities?filter%5Bidentity_type%5D=business&filter%5Bcountry.id%5D=661d8448-8897-4765-acda-00cc1740148d' -H "Accept: application/vnd.api+json" -H "Api-Key: [API token]"
response
HTTP/1.1 200 OK
Content-Type: application/vnd.api+json
{
"data": [
{
"id": "beca16fb-0385-462f-9e2c-0d1918f6c8af",
"type": "identities",
"attributes": {
"first_name": "John",
"last_name": "Smith",
"phone_number": "3233461111",
"id_number": null,
"birth_date": null,
"company_name": "Example Company Ltd",
"company_reg_number": null,
"vat_id": "BE0123456789",
"description": null,
"personal_tax_id": null,
"identity_type": "business",
"created_at": "2026-01-09T07:30:12.546Z",
"external_reference_id": null,
"verified": true,
"contact_email": null
},
"relationships": {
"country": {
"links": {
"self": "https://staging-api.didww.com/v3/identities/beca16fb-0385-462f-9e2c-0d1918f6c8af/relationships/country",
"related": "https://staging-api.didww.com/v3/identities/beca16fb-0385-462f-9e2c-0d1918f6c8af/country"
}
},
"proofs": {
"links": {
"self": "https://staging-api.didww.com/v3/identities/beca16fb-0385-462f-9e2c-0d1918f6c8af/relationships/proofs",
"related": "https://staging-api.didww.com/v3/identities/beca16fb-0385-462f-9e2c-0d1918f6c8af/proofs"
}
},
"addresses": {
"links": {
"self": "https://staging-api.didww.com/v3/identities/beca16fb-0385-462f-9e2c-0d1918f6c8af/relationships/addresses",
"related": "https://staging-api.didww.com/v3/identities/beca16fb-0385-462f-9e2c-0d1918f6c8af/addresses"
}
},
"permanent_documents": {
"links": {
"self": "https://staging-api.didww.com/v3/identities/beca16fb-0385-462f-9e2c-0d1918f6c8af/relationships/permanent_documents",
"related": "https://staging-api.didww.com/v3/identities/beca16fb-0385-462f-9e2c-0d1918f6c8af/permanent_documents"
}
},
"birth_country": {
"links": {
"self": "https://staging-api.didww.com/v3/identities/beca16fb-0385-462f-9e2c-0d1918f6c8af/relationships/birth_country",
"related": "https://staging-api.didww.com/v3/identities/beca16fb-0385-462f-9e2c-0d1918f6c8af/birth_country"
}
}
}
}
],
"meta": {
"total_records": 1,
"api_version": "2026-04-16"
},
"links": {
"first": "https://staging-api.didww.com/v3/identities?filter%5Bidentity_type%5D=business&filter%5Bcountry.id%5D=661d8448-8897-4765-acda-00cc1740148d&page%5Bnumber%5D=1&page%5Bsize%5D=50",
"last": "https://staging-api.didww.com/v3/identities?filter%5Bidentity_type%5D=business&filter%5Bcountry.id%5D=661d8448-8897-4765-acda-00cc1740148d&page%5Bnumber%5D=1&page%5Bsize%5D=50"
}
}
Use this approach when the emergency requirement allows personal
identities and there is no suitable existing identity to reuse.
A personal identity is typically used when the emergency requirement expects an individual end user instead of a business entity. Adjust the submitted fields according to the requirement returned in Step 2.
Create a new personal identity only when Step 1 does not force you to reuse an existing approved identity. The request should include every field required by the selected emergency requirement so that Step 5 can validate it successfully. This is the usual path when there is no existing suitable identity to select in the previous tab.
http
POST /v3/identities HTTP/1.1
Host: api.didww.com
Api-Key: [API token]
Content-Type: application/vnd.api+json
Accept: application/vnd.api+json
{
"data": {
"type": "identities",
"attributes": {
"first_name": "Jane",
"last_name": "Smith",
"phone_number": "15551234567",
"birth_date": "1990-01-01",
"description": "Emergency registration identity",
"identity_type": "personal",
"contact_email": "jane.smith@example.com"
},
"relationships": {
"country": {
"data": {
"type": "countries",
"id": "661d8448-8897-4765-acda-00cc1740148d"
}
}
}
}
}
curl
curl -i -X POST https://api.didww.com/v3/identities -H "Accept: application/vnd.api+json" -H "Api-Key: [API token]" -H "Content-Type: application/vnd.api+json" --data-raw '{"data": {"attributes": {"birth_date": "1990-01-01", "contact_email": "jane.smith@example.com", "description": "Emergency registration identity", "first_name": "Jane", "identity_type": "personal", "last_name": "Smith", "phone_number": "15551234567"}, "relationships": {"country": {"data": {"id": "661d8448-8897-4765-acda-00cc1740148d", "type": "countries"}}}, "type": "identities"}}'
response
HTTP/1.1 201 Created
Content-Type: application/vnd.api+json
{
"data": {
"id": "beca16fb-0385-462f-9e2c-0d1918f6c8af",
"type": "identities",
"attributes": {
"first_name": "Jane",
"last_name": "Smith",
"phone_number": "15551234567",
"id_number": null,
"birth_date": "1990-01-01",
"company_name": null,
"company_reg_number": null,
"vat_id": null,
"description": "Emergency registration identity",
"personal_tax_id": null,
"identity_type": "personal",
"created_at": "2026-04-21T09:44:11.240Z",
"external_reference_id": null,
"verified": false,
"contact_email": "jane.smith@example.com"
},
"relationships": {
"country": {
"links": {
"self": "https://staging-api.didww.com/v3/identities/beca16fb-0385-462f-9e2c-0d1918f6c8af/relationships/country",
"related": "https://staging-api.didww.com/v3/identities/beca16fb-0385-462f-9e2c-0d1918f6c8af/country"
}
},
"proofs": {
"links": {
"self": "https://staging-api.didww.com/v3/identities/beca16fb-0385-462f-9e2c-0d1918f6c8af/relationships/proofs",
"related": "https://staging-api.didww.com/v3/identities/beca16fb-0385-462f-9e2c-0d1918f6c8af/proofs"
}
},
"addresses": {
"links": {
"self": "https://staging-api.didww.com/v3/identities/beca16fb-0385-462f-9e2c-0d1918f6c8af/relationships/addresses",
"related": "https://staging-api.didww.com/v3/identities/beca16fb-0385-462f-9e2c-0d1918f6c8af/addresses"
}
},
"permanent_documents": {
"links": {
"self": "https://staging-api.didww.com/v3/identities/beca16fb-0385-462f-9e2c-0d1918f6c8af/relationships/permanent_documents",
"related": "https://staging-api.didww.com/v3/identities/beca16fb-0385-462f-9e2c-0d1918f6c8af/permanent_documents"
}
},
"birth_country": {
"links": {
"self": "https://staging-api.didww.com/v3/identities/beca16fb-0385-462f-9e2c-0d1918f6c8af/relationships/birth_country",
"related": "https://staging-api.didww.com/v3/identities/beca16fb-0385-462f-9e2c-0d1918f6c8af/birth_country"
}
}
}
},
"meta": {
"api_version": "2026-04-16"
}
}
Use this approach when the emergency requirement allows business
identities and there is no suitable existing identity to reuse.
A business identity is typically used when the emergency requirement expects a company or organizational customer. Adjust the submitted fields according to the requirement returned in Step 2.
Create a new business identity only when Step 1 does not force you to reuse an existing approved identity. The request should include every field required by the selected emergency requirement so that the business record can be validated and then submitted for emergency review. This is the usual path when there is no existing suitable identity to select in the previous tab.
http
POST /v3/identities HTTP/1.1
Host: api.didww.com
Api-Key: [API token]
Content-Type: application/vnd.api+json
Accept: application/vnd.api+json
{
"data": {
"type": "identities",
"attributes": {
"company_name": "Example Services UAB",
"first_name": "Alex",
"last_name": "Example",
"phone_number": "12345678901",
"description": "Emergency registration business identity",
"identity_type": "business",
"contact_email": "ops@example.com"
},
"relationships": {
"country": {
"data": {
"type": "countries",
"id": "661d8448-8897-4765-acda-00cc1740148d"
}
}
}
}
}
curl
curl -i -X POST https://api.didww.com/v3/identities -H "Accept: application/vnd.api+json" -H "Api-Key: [API token]" -H "Content-Type: application/vnd.api+json" --data-raw '{"data": {"attributes": {"company_name": "Example Services UAB", "contact_email": "ops@example.com", "description": "Emergency registration business identity", "first_name": "Alex", "identity_type": "business", "last_name": "Example", "phone_number": "12345678901"}, "relationships": {"country": {"data": {"id": "661d8448-8897-4765-acda-00cc1740148d", "type": "countries"}}}, "type": "identities"}}'
response
HTTP/1.1 201 Created
Content-Type: application/vnd.api+json
{
"data": {
"id": "e4b5f0b1-6543-4a9e-85cd-2ac0e7d0a112",
"type": "identities",
"attributes": {
"first_name": "Alex",
"last_name": "Example",
"phone_number": "12345678901",
"id_number": null,
"birth_date": null,
"company_name": "Example Services UAB",
"company_reg_number": null,
"vat_id": null,
"description": "Emergency registration business identity",
"personal_tax_id": null,
"identity_type": "business",
"created_at": "2026-04-21T09:50:38.639Z",
"external_reference_id": null,
"verified": false,
"contact_email": "ops@example.com"
},
"relationships": {
"country": {
"links": {
"self": "https://staging-api.didww.com/v3/identities/e4b5f0b1-6543-4a9e-85cd-2ac0e7d0a112/relationships/country",
"related": "https://staging-api.didww.com/v3/identities/e4b5f0b1-6543-4a9e-85cd-2ac0e7d0a112/country"
}
},
"proofs": {
"links": {
"self": "https://staging-api.didww.com/v3/identities/e4b5f0b1-6543-4a9e-85cd-2ac0e7d0a112/relationships/proofs",
"related": "https://staging-api.didww.com/v3/identities/e4b5f0b1-6543-4a9e-85cd-2ac0e7d0a112/proofs"
}
},
"addresses": {
"links": {
"self": "https://staging-api.didww.com/v3/identities/e4b5f0b1-6543-4a9e-85cd-2ac0e7d0a112/relationships/addresses",
"related": "https://staging-api.didww.com/v3/identities/e4b5f0b1-6543-4a9e-85cd-2ac0e7d0a112/addresses"
}
},
"permanent_documents": {
"links": {
"self": "https://staging-api.didww.com/v3/identities/e4b5f0b1-6543-4a9e-85cd-2ac0e7d0a112/relationships/permanent_documents",
"related": "https://staging-api.didww.com/v3/identities/e4b5f0b1-6543-4a9e-85cd-2ac0e7d0a112/permanent_documents"
}
},
"birth_country": {
"links": {
"self": "https://staging-api.didww.com/v3/identities/e4b5f0b1-6543-4a9e-85cd-2ac0e7d0a112/relationships/birth_country",
"related": "https://staging-api.didww.com/v3/identities/e4b5f0b1-6543-4a9e-85cd-2ac0e7d0a112/birth_country"
}
}
}
},
"meta": {
"api_version": "2026-04-16"
}
}
Step 4: Select or Create an Address
Next, you need an address linked to the selected identity from Step 3.
If you already have a suitable address on file, you can select and reuse it. If not, create a new address that matches the emergency requirement.
The address submitted later for emergency verification must belong to the same identity chosen in Step 3. This is especially important when the DID already has end user registration, because emergency verification must stay on the same customer identity and use an address linked to that identity.
Use the result from Step 1 and the identity selected in Step 3 to decide which address path applies:
if the DID has both
identityandaddress_verification, select an address linked to that same verified identityif the DID has only
identityand noaddress_verification, you may reuse an address linked to the selected identity or create a new oneif the DID had no linked identity in Step 1, select or create an address for the identity you chose in Step 3
Use the emergency requirement to check the address scope:
if
address_area_leveliscountry, the address must be in the same countryif
address_area_levelisareaorcity, the address must match the DID locality more preciselyif
address_mandatory_fieldscontains additional fields, those values must be present in the address record
From this step, save address.id. You will use it for validation in
Step 5 and for the
emergency verification request in
Step 6.
For more information, see Create Addresses endpoint documentation.
Use this approach first when you already have an address on file that matches the emergency requirement and is linked to the correct identity.
If the selected DID already has end user registration, review the addresses linked to that same verified identity first and reuse a matching one.
If the DID only has a porting identity, you may still reuse an existing address linked to the identity chosen in Step 3, but you are not forced to keep the original porting identity or address.
Review the returned addresses and select one that:
is linked to the identity chosen in Step 3
matches the required country, area, or city scope
already contains any mandatory address fields required by the emergency requirement
In practice, this request is useful when your application wants to reuse an existing customer address instead of creating another copy of the same location data, while still making sure the address stays on the identity that will be submitted for emergency verification.
http
GET /v3/addresses?filter%5Bidentity.id%5D=beca16fb-0385-462f-9e2c-0d1918f6c8af&filter%5Bcountry.id%5D=661d8448-8897-4765-acda-00cc1740148d HTTP/1.1
Host: api.didww.com
Api-Key: [API token]
Accept: application/vnd.api+json
curl
curl -i -X GET 'https://api.didww.com/v3/addresses?filter%5Bidentity.id%5D=beca16fb-0385-462f-9e2c-0d1918f6c8af&filter%5Bcountry.id%5D=661d8448-8897-4765-acda-00cc1740148d' -H "Accept: application/vnd.api+json" -H "Api-Key: [API token]"
response
HTTP/1.1 200 OK
Content-Type: application/vnd.api+json
{
"data": [
{
"id": "a4dcb4e3-1c7f-44ea-a60c-0d6f2a1c7d91",
"type": "addresses",
"attributes": {
"city_name": "Vilnius",
"postal_code": "01100",
"address": "20 Example Street",
"description": "Emergency service address",
"created_at": "2026-04-21T08:02:22.720Z",
"verified": false,
"external_reference_id": null
},
"relationships": {
"identity": {
"links": {
"self": "https://staging-api.didww.com/v3/addresses/a4dcb4e3-1c7f-44ea-a60c-0d6f2a1c7d91/relationships/identity",
"related": "https://staging-api.didww.com/v3/addresses/a4dcb4e3-1c7f-44ea-a60c-0d6f2a1c7d91/identity"
}
},
"country": {
"links": {
"self": "https://staging-api.didww.com/v3/addresses/a4dcb4e3-1c7f-44ea-a60c-0d6f2a1c7d91/relationships/country",
"related": "https://staging-api.didww.com/v3/addresses/a4dcb4e3-1c7f-44ea-a60c-0d6f2a1c7d91/country"
}
},
"proofs": {
"links": {
"self": "https://staging-api.didww.com/v3/addresses/a4dcb4e3-1c7f-44ea-a60c-0d6f2a1c7d91/relationships/proofs",
"related": "https://staging-api.didww.com/v3/addresses/a4dcb4e3-1c7f-44ea-a60c-0d6f2a1c7d91/proofs"
}
},
"area": {
"links": {
"self": "https://staging-api.didww.com/v3/addresses/a4dcb4e3-1c7f-44ea-a60c-0d6f2a1c7d91/relationships/area",
"related": "https://staging-api.didww.com/v3/addresses/a4dcb4e3-1c7f-44ea-a60c-0d6f2a1c7d91/area"
}
},
"city": {
"links": {
"self": "https://staging-api.didww.com/v3/addresses/a4dcb4e3-1c7f-44ea-a60c-0d6f2a1c7d91/relationships/city",
"related": "https://staging-api.didww.com/v3/addresses/a4dcb4e3-1c7f-44ea-a60c-0d6f2a1c7d91/city"
}
}
}
}
],
"meta": {
"total_records": 1,
"api_version": "2026-04-16"
},
"links": {
"first": "https://staging-api.didww.com/v3/addresses?filter%5Bidentity.id%5D=beca16fb-0385-462f-9e2c-0d1918f6c8af&filter%5Bcountry.id%5D=661d8448-8897-4765-acda-00cc1740148d&page%5Bnumber%5D=1&page%5Bsize%5D=50",
"last": "https://staging-api.didww.com/v3/addresses?filter%5Bidentity.id%5D=beca16fb-0385-462f-9e2c-0d1918f6c8af&filter%5Bcountry.id%5D=661d8448-8897-4765-acda-00cc1740148d&page%5Bnumber%5D=1&page%5Bsize%5D=50"
}
}
Use this approach when there is no existing address on file that matches the emergency requirement.
The new address must be linked to the identity selected in Step 3 and should contain all mandatory address fields required by the emergency requirement.
This is the typical path when no saved address matches the required country, area, or city scope returned by the emergency requirement.
Create a new address only for the identity that will be used in the final emergency verification request. If Step 1 showed end user registration, this means the new address must still be linked to that same approved identity.
Creating the address at this stage makes sure the final emergency verification uses location data that already matches both the selected identity and the emergency requirement.
http
POST /v3/addresses HTTP/1.1
Host: api.didww.com
Api-Key: [API token]
Content-Type: application/vnd.api+json
Accept: application/vnd.api+json
{
"data": {
"type": "addresses",
"attributes": {
"address": "10 Example Street",
"city_name": "Sample City",
"postal_code": "76511",
"description": "Emergency service address"
},
"relationships": {
"identity": {
"data": {
"type": "identities",
"id": "e4b5f0b1-6543-4a9e-85cd-2ac0e7d0a112"
}
},
"country": {
"data": {
"type": "countries",
"id": "661d8448-8897-4765-acda-00cc1740148d"
}
}
}
}
}
curl
curl -i -X POST https://api.didww.com/v3/addresses -H "Accept: application/vnd.api+json" -H "Api-Key: [API token]" -H "Content-Type: application/vnd.api+json" --data-raw '{"data": {"attributes": {"address": "10 Example Street", "city_name": "Sample City", "description": "Emergency service address", "postal_code": "76511"}, "relationships": {"country": {"data": {"id": "661d8448-8897-4765-acda-00cc1740148d", "type": "countries"}}, "identity": {"data": {"id": "e4b5f0b1-6543-4a9e-85cd-2ac0e7d0a112", "type": "identities"}}}, "type": "addresses"}}'
response
HTTP/1.1 201 Created
Content-Type: application/vnd.api+json
{
"data": {
"id": "f2b7f0f4-2e98-4cef-a2b4-5661c3887fb3",
"type": "addresses",
"attributes": {
"address": "10 Example Street",
"city_name": "Vilnius",
"postal_code": "76511",
"description": "Emergency service address",
"created_at": "2026-04-21T08:02:22.720Z",
"verified": false,
"external_reference_id": null
},
"relationships": {
"identity": {
"links": {
"self": "https://staging-api.didww.com/v3/addresses/f2b7f0f4-2e98-4cef-a2b4-5661c3887fb3/relationships/identity",
"related": "https://staging-api.didww.com/v3/addresses/f2b7f0f4-2e98-4cef-a2b4-5661c3887fb3/identity"
}
},
"country": {
"links": {
"self": "https://staging-api.didww.com/v3/addresses/f2b7f0f4-2e98-4cef-a2b4-5661c3887fb3/relationships/country",
"related": "https://staging-api.didww.com/v3/addresses/f2b7f0f4-2e98-4cef-a2b4-5661c3887fb3/country"
}
},
"proofs": {
"links": {
"self": "https://staging-api.didww.com/v3/addresses/f2b7f0f4-2e98-4cef-a2b4-5661c3887fb3/relationships/proofs",
"related": "https://staging-api.didww.com/v3/addresses/f2b7f0f4-2e98-4cef-a2b4-5661c3887fb3/proofs"
}
},
"area": {
"links": {
"self": "https://staging-api.didww.com/v3/addresses/f2b7f0f4-2e98-4cef-a2b4-5661c3887fb3/relationships/area",
"related": "https://staging-api.didww.com/v3/addresses/f2b7f0f4-2e98-4cef-a2b4-5661c3887fb3/area"
}
},
"city": {
"links": {
"self": "https://staging-api.didww.com/v3/addresses/f2b7f0f4-2e98-4cef-a2b4-5661c3887fb3/relationships/city",
"related": "https://staging-api.didww.com/v3/addresses/f2b7f0f4-2e98-4cef-a2b4-5661c3887fb3/city"
}
}
}
},
"meta": {
"api_version": "2026-04-16"
}
}
Step 5: Validate the Identity and Address
Validate the identity and address against the selected emergency requirement before starting the emergency verification.
This validation confirms that the selected customer data meets the emergency registration conditions and helps detect missing or invalid data early, such as:
the wrong identity type
missing identity or address fields
a country mismatch
an address that does not satisfy the required city or area scope
This validation step does not create the emergency service yet. It is a pre-check that confirms the selected identity and address are acceptable before the emergency verification is submitted for review.
The validation checks that:
all mandatory identity fields are present
the identity type matches the emergency requirement
the address meets the geographic restrictions defined by the requirement
If the validation succeeds, the identity and address can be safely submitted in Step 6.
Use the IDs collected in the previous steps:
If validation fails, correct the identity or address before continuing. If it succeeds, proceed to emergency verification submission.
For more information, see Emergency Requirement Validations endpoint documentation.
http
POST /v3/emergency_requirement_validations HTTP/1.1
Host: api.didww.com
Api-Key: [API token]
Content-Type: application/vnd.api+json
Accept: application/vnd.api+json
{
"data": {
"type": "emergency_requirement_validations",
"relationships": {
"emergency_requirement": {
"data": {
"type": "emergency_requirements",
"id": "f788cef0-b278-4f21-a870-23950e67d0a1"
}
},
"identity": {
"data": {
"type": "identities",
"id": "beca16fb-0385-462f-9e2c-0d1918f6c8af"
}
},
"address": {
"data": {
"type": "addresses",
"id": "a4dcb4e3-1c7f-44ea-a60c-0d6f2a1c7d91"
}
}
}
}
}
curl
curl -i -X POST https://api.didww.com/v3/emergency_requirement_validations -H "Accept: application/vnd.api+json" -H "Api-Key: [API token]" -H "Content-Type: application/vnd.api+json" --data-raw '{"data": {"relationships": {"address": {"data": {"id": "a4dcb4e3-1c7f-44ea-a60c-0d6f2a1c7d91", "type": "addresses"}}, "emergency_requirement": {"data": {"id": "f788cef0-b278-4f21-a870-23950e67d0a1", "type": "emergency_requirements"}}, "identity": {"data": {"id": "beca16fb-0385-462f-9e2c-0d1918f6c8af", "type": "identities"}}}, "type": "emergency_requirement_validations"}}'
response
HTTP/1.1 201 Created
Content-Type: application/vnd.api+json
{
"data": {
"id": "f788cef0-b278-4f21-a870-23950e67d0a1",
"type": "emergency_requirement_validations"
},
"meta": {
"api_version": "2026-04-16"
}
}
Note
If the validation request is rejected, review the error details and correct the identity or address before continuing to Step 6.
Step 6: Submit Emergency Verification in New Calling Service
Once the identity and address are valid, submit an emergency verification for the DIDs.
Note
This step should be performed only after the identity and address have been successfully validated in Step 5.
For New Calling Service send address and one or more dids.
When this request succeeds, a new Emergency Calling Service is created automatically and linked to the verification.
This is the step that actually starts the emergency registration review. The request moves the selected data into the emergency verification workflow, where it can later be approved or rejected by the DIDWW Emergency Team.
The emergency verification evaluates:
the selected DIDs
the submitted address
the identity linked to that address
Note
A callback_url and callback_method can be configured for emergency
verifications to receive HTTP callbacks when the verification status
changes.
Callback events are sent when the verification is approved or
rejected. The payload includes the verification ID, resource type
(emergency_verifications), the current status, and a rejection reason when
applicable.
See Callback configuration for more information.
For more information, see Create Emergency Verification endpoint documentation.
This request starts the review for the selected DIDs by sending the final address and DID assignment data to the emergency verification endpoint.
For New Calling Service, this request creates a new Emergency Calling Service automatically. The returned emergency verification becomes the record your application can track later in Step 7 until the review is approved or rejected.
http
POST /v3/emergency_verifications HTTP/1.1
Host: api.didww.com
Api-Key: [API token]
Content-Type: application/vnd.api+json
Accept: application/vnd.api+json
{
"data": {
"type": "emergency_verifications",
"attributes": {
"callback_url": "https://example.com/callbacks/emergency",
"callback_method": "post"
},
"relationships": {
"address": {
"data": {
"type": "addresses",
"id": "a4dcb4e3-1c7f-44ea-a60c-0d6f2a1c7d91"
}
},
"dids": {
"data": [
{
"type": "dids",
"id": "cc4c423f-68b5-4e1a-878c-2328eb24f3fa"
}
]
}
}
}
}
curl
curl -i -X POST https://api.didww.com/v3/emergency_verifications -H "Accept: application/vnd.api+json" -H "Api-Key: [API token]" -H "Content-Type: application/vnd.api+json" --data-raw '{"data": {"attributes": {"callback_method": "post", "callback_url": "https://example.com/callbacks/emergency"}, "relationships": {"address": {"data": {"id": "a4dcb4e3-1c7f-44ea-a60c-0d6f2a1c7d91", "type": "addresses"}}, "dids": {"data": [{"type": "dids", "id": "cc4c423f-68b5-4e1a-878c-2328eb24f3fa"}]}}, "type": "emergency_verifications"}}'
response
HTTP/1.1 201 Created
Content-Type: application/vnd.api+json
{
"data": {
"id": "dcef19d7-0d81-4cbc-9cf4-9cccf2ba3f03",
"type": "emergency_verifications",
"attributes": {
"reference": "EGZ-696952",
"status": "pending",
"reject_reasons": null,
"reject_comment": null,
"callback_url": "https://example.com/callbacks/emergency",
"callback_method": "post",
"created_at": "2026-04-21T08:10:43.079Z",
"external_reference_id": null
},
"relationships": {
"address": {
"links": {
"self": "https://api.didww.com/v3/emergency_verifications/dcef19d7-0d81-4cbc-9cf4-9cccf2ba3f03/relationships/address",
"related": "https://api.didww.com/v3/emergency_verifications/dcef19d7-0d81-4cbc-9cf4-9cccf2ba3f03/address"
}
},
"emergency_calling_service": {
"links": {
"self": "https://api.didww.com/v3/emergency_verifications/dcef19d7-0d81-4cbc-9cf4-9cccf2ba3f03/relationships/emergency_calling_service",
"related": "https://api.didww.com/v3/emergency_verifications/dcef19d7-0d81-4cbc-9cf4-9cccf2ba3f03/emergency_calling_service"
}
},
"dids": {
"links": {
"self": "https://api.didww.com/v3/emergency_verifications/dcef19d7-0d81-4cbc-9cf4-9cccf2ba3f03/relationships/dids",
"related": "https://api.didww.com/v3/emergency_verifications/dcef19d7-0d81-4cbc-9cf4-9cccf2ba3f03/dids"
}
}
}
},
"meta": {
"api_version": "2026-04-16"
}
}
While submitting the emergency verification, you can receive an identity-related error if the selected DID already has end user registration on another identity.
This happens because the submission request does not only check the new address you send. It also checks whether the DID is already tied to a specific approved customer identity from an earlier compliance flow. When those identities do not match, the request is rejected to prevent the DID from being reassigned to a different customer identity during emergency registration.
If a DID already has end user registration and that registration is linked to a specific identity, emergency verification must use an address that belongs to the same identity. If you submit an address from a different identity, the request fails and the error tells you which identity must be used.
In that case, go back to Step 3 and Step 4 and reuse the identity and address that match the DID’s existing end user registration.
http
POST /v3/emergency_verifications HTTP/1.1
Host: api.didww.com
Api-Key: [API token]
Content-Type: application/vnd.api+json
Accept: application/vnd.api+json
{
"data": {
"type": "emergency_verifications",
"attributes": {
"callback_url": "https://example.com/callbacks/emergency",
"callback_method": "post"
},
"relationships": {
"address": {
"data": {
"id": "df845b05-bed8-4fef-a9b1-5661c3887fb3",
"type": "addresses"
}
},
"dids": {
"data": [
{
"id": "9f81f2ef-ad6c-402b-97af-06fff514454e",
"type": "dids"
}
]
}
}
}
}
curl
curl -i -X POST https://api.didww.com/v3/emergency_verifications -H "Accept: application/vnd.api+json" -H "Api-Key: [API token]" -H "Content-Type: application/vnd.api+json" --data-raw '{"data": {"attributes": {"callback_method": "post", "callback_url": "https://example.com/callbacks/emergency"}, "relationships": {"address": {"data": {"id": "df845b05-bed8-4fef-a9b1-5661c3887fb3", "type": "addresses"}}, "dids": {"data": [{"id": "9f81f2ef-ad6c-402b-97af-06fff514454e", "type": "dids"}]}}, "type": "emergency_verifications"}}'
response
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/vnd.api+json
{
"errors": [
{
"title": "can be used only with Identity Business - Example Company Ltd",
"detail": "dids/9f81f2ef-ad6c-402b-97af-06fff514454e - can be used only with Identity Business - Example Company Ltd",
"code": "100",
"source": {
"pointer": "/data/relationships/dids/9f81f2ef-ad6c-402b-97af-06fff514454e"
},
"status": "422"
}
]
}
Step 7: Monitor Emergency Verification Status
After submission, monitor the process until the verification is completed and, once approved, the resulting Emergency Calling Service reaches its operational status.
This step is needed because the emergency verification created in Step 6 starts in review and can change state later. Your application needs the latest status to know whether emergency registration has completed successfully or whether the submitted data still requires correction.
Use the emergency verification resource to monitor the review result, and use the Emergency Calling Service resource to confirm the created service status after approval.
Once the verification is approved, the associated Emergency Calling Service
can move to active and emergency routing is enabled for the specified DIDs.
This request is useful even when callbacks are configured, because it lets your application fetch the latest verification state on demand, for example when displaying the current emergency registration status in a dashboard or order details page, instead of waiting for the next callback event.
View emergency verifications
Use GET /v3/emergency_verifications/{id} to monitor whether the submitted
identity and address have been approved or rejected, and review other request details.
If the verification is rejected, the response includes a rejection reason that explains what must be corrected before resubmitting.
http
GET /v3/emergency_verifications/dcef19d7-0d81-4cbc-9cf4-9cccf2ba3f03?include=emergency_calling_service%2Cdids HTTP/1.1
Host: api.didww.com
Api-Key: [API token]
Accept: application/vnd.api+json
curl
curl -i -X GET 'https://api.didww.com/v3/emergency_verifications/dcef19d7-0d81-4cbc-9cf4-9cccf2ba3f03?include=emergency_calling_service%2Cdids' -H "Accept: application/vnd.api+json" -H "Api-Key: [API token]"
response
HTTP/1.1 200 OK
Content-Type: application/vnd.api+json
{
"data": {
"id": "dcef19d7-0d81-4cbc-9cf4-9cccf2ba3f03",
"type": "emergency_verifications",
"attributes": {
"external_reference_id": null,
"reference": "EGZ-696952",
"status": "approved",
"reject_reasons": null,
"reject_comment": null,
"callback_url": "https://example.com/callbacks/emergency",
"callback_method": "post",
"created_at": "2026-04-21T08:10:43.079Z"
},
"relationships": {
"address": {
"links": {
"self": "https://api.didww.com/v3/emergency_verifications/dcef19d7-0d81-4cbc-9cf4-9cccf2ba3f03/relationships/address",
"related": "https://api.didww.com/v3/emergency_verifications/dcef19d7-0d81-4cbc-9cf4-9cccf2ba3f03/address"
}
},
"emergency_calling_service": {
"links": {
"self": "https://api.didww.com/v3/emergency_verifications/dcef19d7-0d81-4cbc-9cf4-9cccf2ba3f03/relationships/emergency_calling_service",
"related": "https://api.didww.com/v3/emergency_verifications/dcef19d7-0d81-4cbc-9cf4-9cccf2ba3f03/emergency_calling_service"
},
"data": {
"type": "emergency_calling_services",
"id": "2ab4b9db-7f16-47ad-a7fe-b23dbfa0bb59"
}
},
"dids": {
"links": {
"self": "https://api.didww.com/v3/emergency_verifications/dcef19d7-0d81-4cbc-9cf4-9cccf2ba3f03/relationships/dids",
"related": "https://api.didww.com/v3/emergency_verifications/dcef19d7-0d81-4cbc-9cf4-9cccf2ba3f03/dids"
},
"data": [
{
"type": "dids",
"id": "cc4c423f-68b5-4e1a-878c-2328eb24f3fa"
}
]
}
}
},
"meta": {
"api_version": "2026-04-16"
}
}
View emergency calling services
Use GET /v3/emergency_calling_services/{id} after the verification is
approved to check the details of Emergency Calling Services.
This confirms whether the created service has already moved to an operational
state such as active and lets your application show the current emergency
service state for the registered DIDs.
Note
Once the Emergency Calling Service status becomes active, the emergency-enabled DID can be assigned to an outbound trunk and used for outbound emergency traffic. For an example, see Create Outbound Trunk.
http
GET /v3/emergency_calling_services/2ab4b9db-7f16-47ad-a7fe-b23dbfa0bb59?include=emergency_verification%2Cdids HTTP/1.1
Host: api.didww.com
Api-Key: [API token]
Accept: application/vnd.api+json
curl
curl -i -X GET 'https://api.didww.com/v3/emergency_calling_services/2ab4b9db-7f16-47ad-a7fe-b23dbfa0bb59?include=emergency_verification%2Cdids' -H "Accept: application/vnd.api+json" -H "Api-Key: [API token]"
response
HTTP/1.1 200 OK
Content-Type: application/vnd.api+json
{
"data": {
"id": "2ab4b9db-7f16-47ad-a7fe-b23dbfa0bb59",
"type": "emergency_calling_services",
"attributes": {
"name": "Emergency Service for 37052032401",
"reference": "SHB-485120",
"status": "active",
"activated_at": "2026-04-21T09:02:15.000Z",
"canceled_at": null,
"renew_date": "2026-05-21",
"created_at": "2026-04-21T08:10:43.079Z"
},
"relationships": {
"country": {
"links": {
"self": "https://api.didww.com/v3/emergency_calling_services/2ab4b9db-7f16-47ad-a7fe-b23dbfa0bb59/relationships/country",
"related": "https://api.didww.com/v3/emergency_calling_services/2ab4b9db-7f16-47ad-a7fe-b23dbfa0bb59/country"
}
},
"did_group_type": {
"links": {
"self": "https://api.didww.com/v3/emergency_calling_services/2ab4b9db-7f16-47ad-a7fe-b23dbfa0bb59/relationships/did_group_type",
"related": "https://api.didww.com/v3/emergency_calling_services/2ab4b9db-7f16-47ad-a7fe-b23dbfa0bb59/did_group_type"
}
},
"order": {
"links": {
"self": "https://api.didww.com/v3/emergency_calling_services/2ab4b9db-7f16-47ad-a7fe-b23dbfa0bb59/relationships/order",
"related": "https://api.didww.com/v3/emergency_calling_services/2ab4b9db-7f16-47ad-a7fe-b23dbfa0bb59/order"
}
},
"emergency_requirement": {
"links": {
"self": "https://api.didww.com/v3/emergency_calling_services/2ab4b9db-7f16-47ad-a7fe-b23dbfa0bb59/relationships/emergency_requirement",
"related": "https://api.didww.com/v3/emergency_calling_services/2ab4b9db-7f16-47ad-a7fe-b23dbfa0bb59/emergency_requirement"
}
},
"emergency_verification": {
"links": {
"self": "https://api.didww.com/v3/emergency_calling_services/2ab4b9db-7f16-47ad-a7fe-b23dbfa0bb59/relationships/emergency_verification",
"related": "https://api.didww.com/v3/emergency_calling_services/2ab4b9db-7f16-47ad-a7fe-b23dbfa0bb59/emergency_verification"
},
"data": {
"type": "emergency_verifications",
"id": "dcef19d7-0d81-4cbc-9cf4-9cccf2ba3f03"
}
},
"dids": {
"links": {
"self": "https://api.didww.com/v3/emergency_calling_services/2ab4b9db-7f16-47ad-a7fe-b23dbfa0bb59/relationships/dids",
"related": "https://api.didww.com/v3/emergency_calling_services/2ab4b9db-7f16-47ad-a7fe-b23dbfa0bb59/dids"
},
"data": [
{
"type": "dids",
"id": "cc4c423f-68b5-4e1a-878c-2328eb24f3fa"
}
]
}
},
"meta": {
"setup_price": "0.00",
"monthly_price": "2.50"
}
},
"meta": {
"api_version": "2026-04-16"
}
}
Note
If the registration is rejected, review the rejection details, correct the
underlying identity or address data, and submit another
POST /v3/emergency_verifications request for the DIDs you want to register.