Move Subscriber
This API is used to move a subscriber (SIM) from its current account or sub-account (customer) to another.
|
HTTP URL |
|
|---|---|
|
PUT |
/api/v2/subscriber/{type}/{value}/move |
NOTE: All {type} and {value} pairs, define the search criteria. Valid {type} ENUMs are: ‘imsi’, ‘iccid’, ‘msisdn’, ‘imei’.
Eligibility
The Requester is eligible to request to move a subscriber that is now attached to its own account (level 0) and move it to its own sub-account (level 1). The Requester is eligible to request to move a subscriber that is now attached to its own sub-account (level 1) and move it to another one of its sub-accounts (level 1).
The Requester is eligible to request to move a subscriber that is he previously allocated to any of its sub-accounts (level 1) back to its own (parent) account (level 0). The Requester is eligible to do this regardless of the sub-account level the subscriber is now found in. If the Requester sub-account (level 1) has allocated that subscriber, in turn, to its own sub-account (level 2), the Requester can still move the subscriber back to its own account (level 0). This means the Requester is eligible to move the subscriber that it has allocated to its sub-account back to its own account, regardless of how many times that subscriber has been resold. The Requester always “sees” the subscriber as listed in its sub-account (level 1), regardless of where it actually is now and so can move it back to its own account (level 0).
For example:
-
SIM1 is attached to the Requester’s own account (level 0).
-
The Requester moves SIM1 to one of its own sub-accounts called Sparta (level 1).
-
Sparta allocates SIM1 to one of its sub-accounts called Carthage (level 2 from the Requester’s account level).
-
Carthage allocates SIM1 to one its sub-accounts called Athens (level 3 from the Requester’s account level)
In this use case, the Requester at level 0 is eligible to do the following:
- Move SIM1 from Sparta (level 1) back to its own account (level 0).
- If SIM1 is now found in Carthage (level 2), the Requester can still move it back to its own account (level 0).
- If SIM1 is now found in Athens (level 3), the Requester can still move it back to its own account (level 0)
API Request
Request Structure
|
Parameter |
Type |
M/O/CM |
Description |
|---|---|---|---|
|
targetCustomerId |
UUID |
M |
The UUID of the customer that the subscriber is being moved to |
API Response
Response Structure
|
Parameter |
Type |
M/O/CM |
Description |
|---|---|---|---|
|
errorCode |
String |
O |
Failure code. |
|
errorMessage |
String |
O |
Failure message. |
|
content |
Object |
O |
Array of main response body object displayed when an API call was successful. For a failure, it will be empty. |
|
pageable |
Object |
O |
Paging information object displayed when an API call was successful. For a failure, it will be empty. |
Content data objects
|
Element |
Type |
M/O/CM |
Description |
|---|---|---|---|
|
requestId |
UUID |
M |
Request instance ID. To be used by external systems to query the call (operation) status: In progress Successful Failed. |
Pageable data objects
|
Element |
Type |
M/O/CM |
Description |
|---|---|---|---|
|
page |
Numeric |
M |
Page number |
|
size |
Numeric |
M |
Page size. Number of requested elements per page |
|
totalPages |
Numeric |
M |
Total amount of available pages per requested page size |
|
totalElements |
Numeric |
M |
Total amount of retrieved elements |
Error Codes
In addition to the general success and failure codes, the following error codes are possible.
|
Code |
Message |
|---|---|
|
GLOBAL_1001 |
Service unavailable. Please try again |
|
CUSTOMER_1008 |
Failed to find target customer |
|
SUBSCRIBER_1002 |
Subscriber does not exist |
|
SUBSCRIBER_1023 |
Failed to move subscriber |
Examples
Request Body
{
"targetCustomerId": "dd64dca6-8e7f-4b85-a42b-13860913bb5a"
}
Response Body: Success ACK
{
"errorCode": "",
"errorMessage": "",
"content": [
{
"requestId": "ff74dca6-8e7f-4b85-a42b-13860913b370"
}
],
"pageable": {
"page": 0,
"size": 10,
"totalPages": 1,
"totalElements": 1
}
}
Response Body: Failure NAK
{
"errorCode": "CUSTOMER_1008",
"errorMessage": "Failed to find target customer"",
"content": "",
"pageable": null
}