Introduction
Use these endpoints to get the service’s plan and/or restoration SLA change options for a service.
Request Lifecycle
Obtaining the service plan change options (service-plan-change-options resource) for a service is a two step process as follows:
-
Create a service-plan-changes-options-request resource, by sending a POST request to
/api/connect/services/plan-changes/options/requestwith the body of the request containing the service id. The response’shttp statuswill be201with a blank response body. There will be aLocationresponse header with a URL. This URL is where the request outcome can be obtained. -
Make a
GETrequest to the URL returned in 1. to retrieve the outcome of the request. While the request is in progress, the response’shttp statuswill be202. This means that the request has not finished yet, but will in a moment. If the request was successful a service-plan-change-options resource will be returned. If the request failed a 422 will be returned with the body containing details on why it failed in the standard error format.
Request Specifications
| Version | Header | Changes |
|---|---|---|
1 (Deprecated) |
X-API-VERSION=1 |
Initial Version |
2 (Deprecated) |
X-API-VERSION=2 |
No change |
3 |
X-API-VERSION=3 |
No change |
4 |
X-API-VERSION=4 |
No change |
5 |
X-API-VERSION=5 |
No change |
6 |
X-API-VERSION=6 |
Plan change options response updated |
7 |
X-API-VERSION=7 |
No change |
8 |
X-API-VERSION=8 |
No change |
ALL |
ALL |
New fields added for FTTP and HFC access technologies to support September high speed plans |
API Version 6, 7 and 8
POST Request
Verb |
POST |
URI |
/api/connect/services/plan-changes/options/request |
| Name | Description |
|---|---|
|
The OAuth bearer access token |
|
The version of the endpoint you are accessing |
| Path | Type | Description | Required |
|---|---|---|---|
|
|
The id of the service. |
Required |
POST Response
| Status Code | Meaning |
|---|---|
201 |
The request was created successfully |
404 |
Bearer token is missing or invalid |
404 |
You do not have permission to perform this task |
422 |
There are validation errors on the request you made. Check the response body to see what fields had issues |
500 |
There was an unexpected error processing the request |
502 |
There was an unexpected error with one or more of the upstream services |
| Name | Description |
|---|---|
|
The URL of the service-plan-change-options-request resource |
GET Request
|
Note
|
The URI will be given to you in the Location header of the POST request. |
Verb |
GET |
URI |
/api/connect/services/plan-changes/options/requests/{id} |
Path Variable |
Purpose |
|
The id of the service-plan-change-options-request resource. This was generated by the POST request |
| Name | Description |
|---|---|
|
The OAuth bearer access token |
|
The version of the endpoint you are accessing |
GET Response
| Status Code | Meaning |
|---|---|
200 |
The request is complete. The body contains the service-plan-change-options resource |
202 |
The request is in progress |
401 |
You are not authorized to make this request |
404 |
You are not authorised or The id (of the service-plan-change-options-request resource) provided does not exist |
422 |
The service-plan-change-options resource failed to be created. Check the response body to see why |
500 |
There was an unexpected error processing the request |
502 |
There was an unexpected error with one or more of the upstream services |
| Path | Type | Description |
|---|---|---|
|
|
List of fees for the plans |
|
|
The source type of the connection (e.g., NBN). |
|
|
Access technology type (e.g., FTTP, FTTN). |
|
|
Name of the plan. |
|
|
Term of the plan. |
|
|
Download speed details. |
|
|
Download speed value. |
|
|
Unit of download speed (e.g., MBit/s). |
|
|
Upload speed details. |
|
|
Upload speed value. |
|
|
Unit of upload speed (e.g., MBit/s). |
|
|
Indicates whether an additional NTD is required. |
|
|
The reason for requiring an additional NTD, if applicable. (e.g., BATTERY_BACKUP, BANDWIDTH_CAPACITY_EXCEEDED). |
|
|
Fee of the plan. |
|
|
Attributes of the plan. Typically includes a plan and a term |
|
|
One time charge for the plan. |
|
|
Currency of the one time charge. |
|
|
Symbol of the one time charge currency. |
|
|
Monthly recurring charge of the plan. |
|
|
Currency of the monthly recurring charge. |
|
|
Symbol of the monthly recurring charge currency. |
|
|
NFAS Commitment Fee of the plan if applies else null |
|
|
Attributes of the NFAS Commitment fee. |
|
|
One time charge of the NFAS Commitment fee. |
|
|
Currency of the NFAS Commitment fee. |
|
|
Symbol of the NFAS Commitment fee currency. |
|
|
Monthly recurring charge of theN FAS Commitment fee. |
|
|
Currency of the monthly recurring charge. |
|
|
Symbol of the monthly recurring charge currency. |
|
|
List of available NTD (Network Termination Device) options for the plan. |
|
|
NTD option name (e.g., 4_PORT). |
|
|
Indicates whether this NTD option is recommended. |
|
|
Fee details for the NTD option. |
|
|
Attributes related to the NTD fee (e.g., installation type). |
|
|
Describes the type of NTD installation fee applied (e.g., 4_PORT). |
|
|
One-time charge for this NTD option. |
|
|
Amount of the one-time NTD option charge. |
|
|
Currency of the one-time NTD option charge. |
|
|
Symbol of the currency. |
|
|
Monthly recurring charge for the NTD option. |
|
|
Amount of the monthly recurring charge for the NTD option. |
|
|
Currency of the monthly recurring charge for the NTD option. |
|
|
Symbol of the currency. |
|
|
List of Service Restoration SLA fees will be applied for the service plan change |
|
|
Name of the SLA. |
|
|
Fee for the addon type. |
|
|
Attributes of the addon type. Typically includes the sla name |
|
|
One time charge of the addon type. |
|
|
Currency of the addon type charge. |
|
|
Symbol of the addon type charge currency. |
|
|
Monthly recurring charge of the addon type. |
|
|
Currency of the monthly recurring charge. |
|
|
Symbol of the monthly recurring charge currency. |
API Version 6, 7 and 8 - Examples
Successful Request
A service-plan-change-options-request resource is created by sending a POST request to /api/connect/services/plan-changes/options/request.
POST /api/connect/services/plan-changes/options/request HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: Bearer **token**
X-API-VERSION: 7
Content-Length: 24
Host: 360-api.superloop.com
{
"serviceId" : 1200
}
If all required fields were given, then the response to the request will have:
-
a http status of 201
-
a
Locationheader with the URI of the service-plan-change-options-request resource.
HTTP/1.1 201 Created
Location: /api/connect/services/plan-changes/options/requests/cb4d8a9d-9f6b-45d2-8fd5-2e13650b966d
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Once you have the URI from the Location header, poll that URI every so often by making a GET request. While determination
of the options is in progress, the GET request’s response will have a http status of 202. Keep polling the URL until
it finishes, once the request is completed successfully the GET request’s response will have a http status of 200.
|
Note
|
Please keep the polling to a sensible rate. |
GET /api/connect/services/plan-changes/options/requests/2259b05a-7b8c-4887-a193-0a37087a3988 HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: Bearer **token**
X-API-VERSION: 7
Host: 360-api.superloop.com
HTTP/1.1 200 OK
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 10978
{
"plans" : [ {
"sourceType" : "NBN",
"accessTechnology" : "FTTP",
"plan" : "Home Fast 25/5",
"term" : "1",
"speedDown" : {
"speed" : 25,
"unit" : "MBit/s"
},
"speedUp" : {
"speed" : 5,
"unit" : "MBit/s"
},
"requiresAdditionalNtd" : false,
"requiresAdditionalNtdReason" : null,
"planFee" : {
"attributes" : {
"plan" : "Home Fast 25/5",
"term" : "1"
},
"oneTimeCharge" : {
"amount" : "0.00",
"currency" : "AUD",
"symbol" : "$"
},
"monthlyRecurringCharge" : {
"amount" : "42.00",
"currency" : "AUD",
"symbol" : "$"
}
},
"nfasFee" : null,
"ntdOptions" : [ ]
}, {
"sourceType" : "NBN",
"accessTechnology" : "FTTP",
"plan" : "Home Fast 25/10",
"term" : "1",
"speedDown" : {
"speed" : 25,
"unit" : "MBit/s"
},
"speedUp" : {
"speed" : 10,
"unit" : "MBit/s"
},
"requiresAdditionalNtd" : false,
"requiresAdditionalNtdReason" : null,
"planFee" : {
"attributes" : {
"plan" : "Home Fast 25/10",
"term" : "1"
},
"oneTimeCharge" : {
"amount" : "0.00",
"currency" : "AUD",
"symbol" : "$"
},
"monthlyRecurringCharge" : {
"amount" : "42.00",
"currency" : "AUD",
"symbol" : "$"
}
},
"nfasFee" : null,
"ntdOptions" : [ ]
}, {
"sourceType" : "NBN",
"accessTechnology" : "FTTP",
"plan" : "Home Fast 50/20",
"term" : "1",
"speedDown" : {
"speed" : 50,
"unit" : "MBit/s"
},
"speedUp" : {
"speed" : 20,
"unit" : "MBit/s"
},
"requiresAdditionalNtd" : false,
"requiresAdditionalNtdReason" : null,
"planFee" : {
"attributes" : {
"plan" : "Home Fast 50/20",
"term" : "1"
},
"oneTimeCharge" : {
"amount" : "0.00",
"currency" : "AUD",
"symbol" : "$"
},
"monthlyRecurringCharge" : {
"amount" : "50.00",
"currency" : "AUD",
"symbol" : "$"
}
},
"nfasFee" : null,
"ntdOptions" : [ ]
}, {
"sourceType" : "NBN",
"accessTechnology" : "FTTP",
"plan" : "Home Fast 100/40",
"term" : "1",
"speedDown" : {
"speed" : 100,
"unit" : "MBit/s"
},
"speedUp" : {
"speed" : 40,
"unit" : "MBit/s"
},
"requiresAdditionalNtd" : false,
"requiresAdditionalNtdReason" : null,
"planFee" : {
"attributes" : {
"plan" : "Home Fast 100/40",
"term" : "1"
},
"oneTimeCharge" : {
"amount" : "0.00",
"currency" : "AUD",
"symbol" : "$"
},
"monthlyRecurringCharge" : {
"amount" : "73.00",
"currency" : "AUD",
"symbol" : "$"
}
},
"nfasFee" : {
"attributes" : {
"nfas_commitment_fee" : true
},
"oneTimeCharge" : {
"amount" : "25.00",
"currency" : "AUD",
"symbol" : "$"
},
"monthlyRecurringCharge" : {
"amount" : "0.00",
"currency" : "AUD",
"symbol" : "$"
}
},
"ntdOptions" : [ ]
}, {
"sourceType" : "NBN",
"accessTechnology" : "FTTP",
"plan" : "Home Superfast 250/25",
"term" : "1",
"speedDown" : {
"speed" : 250,
"unit" : "MBit/s"
},
"speedUp" : {
"speed" : 25,
"unit" : "MBit/s"
},
"requiresAdditionalNtd" : false,
"requiresAdditionalNtdReason" : null,
"planFee" : {
"attributes" : {
"plan" : "Home Superfast 250/25",
"term" : "1"
},
"oneTimeCharge" : {
"amount" : "0.00",
"currency" : "AUD",
"symbol" : "$"
},
"monthlyRecurringCharge" : {
"amount" : "76.00",
"currency" : "AUD",
"symbol" : "$"
}
},
"nfasFee" : null,
"ntdOptions" : [ ]
}, {
"sourceType" : "NBN",
"accessTechnology" : "FTTP",
"plan" : "Home Superfast 250/100",
"term" : "1",
"speedDown" : {
"speed" : 250,
"unit" : "MBit/s"
},
"speedUp" : {
"speed" : 100,
"unit" : "MBit/s"
},
"requiresAdditionalNtd" : false,
"requiresAdditionalNtdReason" : null,
"planFee" : {
"attributes" : {
"plan" : "Home Superfast 250/100",
"term" : "1"
},
"oneTimeCharge" : {
"amount" : "0.00",
"currency" : "AUD",
"symbol" : "$"
},
"monthlyRecurringCharge" : {
"amount" : "112.00",
"currency" : "AUD",
"symbol" : "$"
}
},
"nfasFee" : null,
"ntdOptions" : [ ]
}, {
"sourceType" : "NBN",
"accessTechnology" : "FTTP",
"plan" : "Home Superfast 500/200",
"term" : "1",
"speedDown" : {
"speed" : 500,
"unit" : "MBit/s"
},
"speedUp" : {
"speed" : 200,
"unit" : "MBit/s"
},
"requiresAdditionalNtd" : false,
"requiresAdditionalNtdReason" : null,
"planFee" : {
"attributes" : {
"plan" : "Home Superfast 500/200",
"term" : "1"
},
"oneTimeCharge" : {
"amount" : "0.00",
"currency" : "AUD",
"symbol" : "$"
},
"monthlyRecurringCharge" : {
"amount" : "145.00",
"currency" : "AUD",
"symbol" : "$"
}
},
"nfasFee" : null,
"ntdOptions" : [ ]
}, {
"sourceType" : "NBN",
"accessTechnology" : "FTTP",
"plan" : "Home Ultrafast 1000/400",
"term" : "1",
"speedDown" : {
"speed" : 1000,
"unit" : "MBit/s"
},
"speedUp" : {
"speed" : 400,
"unit" : "MBit/s"
},
"requiresAdditionalNtd" : false,
"requiresAdditionalNtdReason" : null,
"planFee" : {
"attributes" : {
"plan" : "Home Ultrafast 1000/400",
"term" : "1"
},
"oneTimeCharge" : {
"amount" : "0.00",
"currency" : "AUD",
"symbol" : "$"
},
"monthlyRecurringCharge" : {
"amount" : "200.00",
"currency" : "AUD",
"symbol" : "$"
}
},
"nfasFee" : null,
"ntdOptions" : [ ]
}, {
"sourceType" : "NBN",
"accessTechnology" : "FTTP",
"plan" : "Home Fast 12/1",
"term" : "1",
"speedDown" : {
"speed" : 12,
"unit" : "MBit/s"
},
"speedUp" : {
"speed" : 1,
"unit" : "MBit/s"
},
"requiresAdditionalNtd" : false,
"requiresAdditionalNtdReason" : null,
"planFee" : {
"attributes" : {
"plan" : "Home Fast 12/1",
"term" : "1"
},
"oneTimeCharge" : {
"amount" : "0.00",
"currency" : "AUD",
"symbol" : "$"
},
"monthlyRecurringCharge" : {
"amount" : "25.00",
"currency" : "AUD",
"symbol" : "$"
}
},
"nfasFee" : null,
"ntdOptions" : [ ]
}, {
"sourceType" : "NBN",
"accessTechnology" : "FTTP",
"plan" : "Home Hyperfast 2000/200",
"term" : "1",
"speedDown" : {
"speed" : 2000,
"unit" : "MBit/s"
},
"speedUp" : {
"speed" : 200,
"unit" : "MBit/s"
},
"requiresAdditionalNtd" : false,
"requiresAdditionalNtdReason" : null,
"planFee" : {
"attributes" : {
"plan" : "Home Hyperfast 2000/200",
"term" : "1"
},
"oneTimeCharge" : {
"amount" : "0.00",
"currency" : "AUD",
"symbol" : "$"
},
"monthlyRecurringCharge" : {
"amount" : "115.00",
"currency" : "AUD",
"symbol" : "$"
}
},
"nfasFee" : null,
"ntdOptions" : [ {
"option" : "1_PORT",
"recommended" : true,
"fee" : {
"attributes" : {
"ntd_installation_fee" : "1_PORT"
},
"oneTimeCharge" : {
"amount" : "0.00",
"currency" : "AUD",
"symbol" : "$"
},
"monthlyRecurringCharge" : {
"amount" : "0.00",
"currency" : "AUD",
"symbol" : "$"
}
}
}, {
"option" : "4_PORT_RESIDENTIAL",
"recommended" : false,
"fee" : {
"attributes" : {
"ntd_installation_fee" : "4_PORT_RESIDENTIAL"
},
"oneTimeCharge" : {
"amount" : "100.00",
"currency" : "AUD",
"symbol" : "$"
},
"monthlyRecurringCharge" : {
"amount" : "0.00",
"currency" : "AUD",
"symbol" : "$"
}
}
} ]
}, {
"sourceType" : "NBN",
"accessTechnology" : "FTTP",
"plan" : "Home Hyperfast 2000/500",
"term" : "1",
"speedDown" : {
"speed" : 2000,
"unit" : "MBit/s"
},
"speedUp" : {
"speed" : 500,
"unit" : "MBit/s"
},
"requiresAdditionalNtd" : false,
"requiresAdditionalNtdReason" : null,
"planFee" : {
"attributes" : {
"plan" : "Home Hyperfast 2000/500",
"term" : "1"
},
"oneTimeCharge" : {
"amount" : "0.00",
"currency" : "AUD",
"symbol" : "$"
},
"monthlyRecurringCharge" : {
"amount" : "150.00",
"currency" : "AUD",
"symbol" : "$"
}
},
"nfasFee" : null,
"ntdOptions" : [ {
"option" : "4_PORT",
"recommended" : true,
"fee" : {
"attributes" : {
"ntd_installation_fee" : "4_PORT"
},
"oneTimeCharge" : {
"amount" : "0.00",
"currency" : "AUD",
"symbol" : "$"
},
"monthlyRecurringCharge" : {
"amount" : "0.00",
"currency" : "AUD",
"symbol" : "$"
}
}
} ]
} ],
"slas" : [ {
"sla" : "Standard",
"fee" : {
"attributes" : {
"sla" : "Standard"
},
"oneTimeCharge" : {
"amount" : "0.00",
"currency" : "AUD",
"symbol" : "$"
},
"monthlyRecurringCharge" : {
"amount" : "0.00",
"currency" : "AUD",
"symbol" : "$"
}
}
}, {
"sla" : "Enhanced - 12 (24/7)",
"fee" : {
"attributes" : {
"sla" : "Enhanced - 12 (24/7)"
},
"oneTimeCharge" : {
"amount" : "0.00",
"currency" : "AUD",
"symbol" : "$"
},
"monthlyRecurringCharge" : {
"amount" : "45.00",
"currency" : "AUD",
"symbol" : "$"
}
}
}, {
"sla" : "Enhanced - 4 (24/7)",
"fee" : {
"attributes" : {
"sla" : "Enhanced - 4 (24/7)"
},
"oneTimeCharge" : {
"amount" : "0.00",
"currency" : "AUD",
"symbol" : "$"
},
"monthlyRecurringCharge" : {
"amount" : "84.00",
"currency" : "AUD",
"symbol" : "$"
}
}
} ]
}
Once you have a list of available options you can request to change a service’s plan and/or restoration SLA by choosing one option and making a request with the service id, plan name, term and restoration SLA (optional).
Invalid Request
If the request is invalid for any reason, a http status of 422 is returned and the body of the
response will list the problems with the request.
This example is of submitting a service plan change options request, where a plan change is not available.
POST /api/connect/services/plan-changes/options/request HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: Bearer **token**
X-API-VERSION: 7
Content-Length: 24
Host: 360-api.superloop.com
{
"serviceId" : 2100
}
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 415
{
"httpStatusCode" : 422,
"type" : "client.validation",
"code" : "validation",
"message" : "Validation error",
"apiSubErrors" : [ {
"code" : "constraints.nbn.traffic.class.required",
"message" : "nbn TC4 Technology Type attribute is required",
"object" : "ServicePlanChange",
"field" : "nbnTrafficClass",
"rejectedValue" : null
} ],
"timestamp" : "2025-10-29T04:11:46.967305485Z"
}
Resource failed to be created
If the service-plan-change-options resource failed to be created, a http status of 422 is returned and the body of the
response will list the reason why
GET /api/connect/services/plan-changes/options/requests/3159b05a-7b8c-4887-a193-0a37087a3988 HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: Bearer **token**
X-API-VERSION: 7
Host: 360-api.superloop.com
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 447
{
"httpStatusCode" : 422,
"type" : "client.validation",
"code" : "validation",
"message" : "Validation error",
"apiSubErrors" : [ {
"code" : "constraints.service.plan.change.options.request.in.error",
"message" : "The given data was invalid",
"object" : "ServicePlanChangeOptions",
"field" : "request",
"rejectedValue" : "3159b05a-7b8c-4887-a193-0a37087a3988"
} ],
"timestamp" : "2025-10-29T04:11:55.635360843Z"
}
Upstream Service Unavailable
If one of the services that Connect API uses for getting service plan change options is down or unreachable,
Connect API will return a http status of 422.
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 452
{
"httpStatusCode" : 422,
"type" : "client.validation",
"code" : "validation",
"message" : "Validation error",
"apiSubErrors" : [ {
"code" : "constraints.service.plan.change.options.request.in.error",
"message" : "getService to Nbn Portal failed",
"object" : "ServicePlanChangeOptions",
"field" : "request",
"rejectedValue" : "94f14009-9ede-460d-b2c7-9f07e02d12be"
} ],
"timestamp" : "2025-10-29T04:12:03.611103332Z"
}
API Version 1, 2, 3, 4 and 5
POST Request
Verb |
POST |
URI |
/api/connect/services/plan-changes/options/request |
| Name | Description |
|---|---|
|
The OAuth bearer access token |
|
The version of the endpoint you are accessing |
| Path | Type | Description | Required |
|---|---|---|---|
|
|
The id of the service. |
Required |
POST Response
| Status Code | Meaning |
|---|---|
201 |
The request was created successfully |
404 |
Bearer token is missing or invalid |
404 |
You do not have permission to perform this task |
422 |
There are validation errors on the request you made. Check the response body to see what fields had issues |
500 |
There was an unexpected error processing the request |
502 |
There was an unexpected error with one or more of the upstream services |
| Name | Description |
|---|---|
|
The URL of the service-plan-change-options-request resource |
GET Request
|
Note
|
The URI will be given to you in the Location header of the POST request. |
Verb |
GET |
URI |
/api/connect/services/plan-changes/options/requests/{id} |
Path Variable |
Purpose |
|
The id of the service-plan-change-options-request resource. This was generated by the POST request |
| Name | Description |
|---|---|
|
The OAuth bearer access token |
|
The version of the endpoint you are accessing |
GET Response
| Status Code | Meaning |
|---|---|
200 |
The request is complete. The body contains the service-plan-change-options resource |
202 |
The request is in progress |
401 |
You are not authorized to make this request |
404 |
You are not authorised or The id (of the service-plan-change-options-request resource) provided does not exist |
422 |
The service-plan-change-options resource failed to be created. Check the response body to see why |
500 |
There was an unexpected error processing the request |
502 |
There was an unexpected error with one or more of the upstream services |
| Path | Type | Description |
|---|---|---|
|
|
List of additional fees will be applied for the service plan change |
|
|
Name of the addon type. |
|
|
Fee for the addon type. |
|
|
Attributes of the addon type. Varies depending on the addon type. For instance, an SLA addon type would include the sla name |
|
|
One time charge of the addon type. |
|
|
Currency of the addon type charge. |
|
|
Symbol of the addon type charge currency. |
|
|
Monthly recurring charge of the addon type. |
|
|
Currency of the monthly recurring charge. |
|
|
Symbol of the monthly recurring charge currency. |
|
|
List of fees for the plans |
|
|
Source type of the service (e.g., NBN). |
|
|
Access technology used (e.g., FTTP, FTTN). |
|
|
Indicates whether an additional NTD is required. |
|
|
The reason for requiring an additional NTD, if applicable. (e.g., BATTERY_BACKUP, BANDWIDTH_CAPACITY_EXCEEDED). |
|
|
Attributes of the plan. Typically includes a plan and a term |
|
|
One time charge for the plan. |
|
|
Currency of the one time charge. |
|
|
Symbol of the one time charge currency. |
|
|
Monthly recurring charge of the plan. |
|
|
Currency of the monthly recurring charge. |
|
|
Symbol of the monthly recurring charge currency. |
|
|
List of optional NTD (Network Termination Device) installation options. |
|
|
The NTD installation option type (e.g., 4_PORT, 4_PORT_RESIDENTIAL). |
|
|
Whether this NTD option is recommended. |
|
|
Fee details for the NTD option. |
|
|
Attributes related to the NTD installation fee. |
|
|
NTD installation fee option name. |
|
|
One-time installation charge for the NTD option. |
|
|
Amount of the one-time NTD charge. |
|
|
Currency of the NTD one-time charge. |
|
|
Currency symbol of the NTD one-time charge. |
|
|
Monthly recurring charge for the NTD option. |
|
|
Amount of the monthly recurring charge. |
|
|
Currency of the monthly recurring charge. |
|
|
Symbol of the currency for monthly charge. |
API Version 1, 2, 3, 4 and 5 - Examples
Successful Request
A service-plan-change-options-request resource is created by sending a POST request to /api/connect/services/plan-changes/options/request.
POST /api/connect/services/plan-changes/options/request HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: Bearer **token**
X-API-VERSION: 5
Content-Length: 24
Host: 360-api.superloop.com
{
"serviceId" : 1200
}
If all required fields were given, then the response to the request will have:
-
a http status of 201
-
a
Locationheader with the URI of the service-plan-change-options-request resource.
HTTP/1.1 201 Created
Location: /api/connect/services/plan-changes/options/requests/1a8444cf-26a2-4ebd-a9f9-338522571beb
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Once you have the URI from the Location header, poll that URI every so often by making a GET request. While determination
of the options is in progress, the GET request’s response will have a http status of 202. Keep polling the URL until
it finishes, once the request is completed successfully the GET request’s response will have a http status of 200.
|
Note
|
Please keep the polling to a sensible rate. |
GET /api/connect/services/plan-changes/options/requests/2259b05a-7b8c-4887-a193-0a37087a3988 HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: Bearer **token**
X-API-VERSION: 5
Host: 360-api.superloop.com
HTTP/1.1 200 OK
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 6965
{
"fees" : [ {
"attributes" : {
"plan" : "Home Fast 25/5",
"term" : "1"
},
"oneTimeCharge" : {
"amount" : "0.00",
"currency" : "AUD",
"symbol" : "$"
},
"monthlyRecurringCharge" : {
"amount" : "42.00",
"currency" : "AUD",
"symbol" : "$"
},
"sourceType" : "NBN",
"accessTechnology" : "FTTP",
"requiresAdditionalNtd" : false,
"requiresAdditionalNtdReason" : null,
"ntdOptions" : [ ]
}, {
"attributes" : {
"plan" : "Home Fast 25/10",
"term" : "1"
},
"oneTimeCharge" : {
"amount" : "0.00",
"currency" : "AUD",
"symbol" : "$"
},
"monthlyRecurringCharge" : {
"amount" : "42.00",
"currency" : "AUD",
"symbol" : "$"
},
"sourceType" : "NBN",
"accessTechnology" : "FTTP",
"requiresAdditionalNtd" : false,
"requiresAdditionalNtdReason" : null,
"ntdOptions" : [ ]
}, {
"attributes" : {
"plan" : "Home Fast 50/20",
"term" : "1"
},
"oneTimeCharge" : {
"amount" : "0.00",
"currency" : "AUD",
"symbol" : "$"
},
"monthlyRecurringCharge" : {
"amount" : "50.00",
"currency" : "AUD",
"symbol" : "$"
},
"sourceType" : "NBN",
"accessTechnology" : "FTTP",
"requiresAdditionalNtd" : false,
"requiresAdditionalNtdReason" : null,
"ntdOptions" : [ ]
}, {
"attributes" : {
"plan" : "Home Fast 100/40",
"term" : "1"
},
"oneTimeCharge" : {
"amount" : "0.00",
"currency" : "AUD",
"symbol" : "$"
},
"monthlyRecurringCharge" : {
"amount" : "73.00",
"currency" : "AUD",
"symbol" : "$"
},
"sourceType" : "NBN",
"accessTechnology" : "FTTP",
"requiresAdditionalNtd" : false,
"requiresAdditionalNtdReason" : null,
"ntdOptions" : [ ]
}, {
"attributes" : {
"plan" : "Home Superfast 250/25",
"term" : "1"
},
"oneTimeCharge" : {
"amount" : "0.00",
"currency" : "AUD",
"symbol" : "$"
},
"monthlyRecurringCharge" : {
"amount" : "76.00",
"currency" : "AUD",
"symbol" : "$"
},
"sourceType" : "NBN",
"accessTechnology" : "FTTP",
"requiresAdditionalNtd" : false,
"requiresAdditionalNtdReason" : null,
"ntdOptions" : [ ]
}, {
"attributes" : {
"plan" : "Home Superfast 250/100",
"term" : "1"
},
"oneTimeCharge" : {
"amount" : "0.00",
"currency" : "AUD",
"symbol" : "$"
},
"monthlyRecurringCharge" : {
"amount" : "112.00",
"currency" : "AUD",
"symbol" : "$"
},
"sourceType" : "NBN",
"accessTechnology" : "FTTP",
"requiresAdditionalNtd" : false,
"requiresAdditionalNtdReason" : null,
"ntdOptions" : [ ]
}, {
"attributes" : {
"plan" : "Home Superfast 500/200",
"term" : "1"
},
"oneTimeCharge" : {
"amount" : "0.00",
"currency" : "AUD",
"symbol" : "$"
},
"monthlyRecurringCharge" : {
"amount" : "145.00",
"currency" : "AUD",
"symbol" : "$"
},
"sourceType" : "NBN",
"accessTechnology" : "FTTP",
"requiresAdditionalNtd" : false,
"requiresAdditionalNtdReason" : null,
"ntdOptions" : [ ]
}, {
"attributes" : {
"plan" : "Home Ultrafast 1000/400",
"term" : "1"
},
"oneTimeCharge" : {
"amount" : "0.00",
"currency" : "AUD",
"symbol" : "$"
},
"monthlyRecurringCharge" : {
"amount" : "200.00",
"currency" : "AUD",
"symbol" : "$"
},
"sourceType" : "NBN",
"accessTechnology" : "FTTP",
"requiresAdditionalNtd" : false,
"requiresAdditionalNtdReason" : null,
"ntdOptions" : [ ]
}, {
"attributes" : {
"plan" : "Home Fast 12/1",
"term" : "1"
},
"oneTimeCharge" : {
"amount" : "0.00",
"currency" : "AUD",
"symbol" : "$"
},
"monthlyRecurringCharge" : {
"amount" : "25.00",
"currency" : "AUD",
"symbol" : "$"
},
"sourceType" : "NBN",
"accessTechnology" : "FTTP",
"requiresAdditionalNtd" : false,
"requiresAdditionalNtdReason" : null,
"ntdOptions" : [ ]
}, {
"attributes" : {
"plan" : "Home Hyperfast 2000/200",
"term" : "1"
},
"oneTimeCharge" : {
"amount" : "0.00",
"currency" : "AUD",
"symbol" : "$"
},
"monthlyRecurringCharge" : {
"amount" : "115.00",
"currency" : "AUD",
"symbol" : "$"
},
"sourceType" : "NBN",
"accessTechnology" : "FTTP",
"requiresAdditionalNtd" : false,
"requiresAdditionalNtdReason" : null,
"ntdOptions" : [ {
"option" : "1_PORT",
"recommended" : true,
"fee" : {
"attributes" : {
"ntd_installation_fee" : "1_PORT"
},
"oneTimeCharge" : {
"amount" : "0.00",
"currency" : "AUD",
"symbol" : "$"
},
"monthlyRecurringCharge" : {
"amount" : "0.00",
"currency" : "AUD",
"symbol" : "$"
}
}
}, {
"option" : "4_PORT_RESIDENTIAL",
"recommended" : false,
"fee" : {
"attributes" : {
"ntd_installation_fee" : "4_PORT_RESIDENTIAL"
},
"oneTimeCharge" : {
"amount" : "100.00",
"currency" : "AUD",
"symbol" : "$"
},
"monthlyRecurringCharge" : {
"amount" : "0.00",
"currency" : "AUD",
"symbol" : "$"
}
}
} ]
}, {
"attributes" : {
"plan" : "Home Hyperfast 2000/500",
"term" : "1"
},
"oneTimeCharge" : {
"amount" : "0.00",
"currency" : "AUD",
"symbol" : "$"
},
"monthlyRecurringCharge" : {
"amount" : "150.00",
"currency" : "AUD",
"symbol" : "$"
},
"sourceType" : "NBN",
"accessTechnology" : "FTTP",
"requiresAdditionalNtd" : false,
"requiresAdditionalNtdReason" : null,
"ntdOptions" : [ {
"option" : "4_PORT",
"recommended" : true,
"fee" : {
"attributes" : {
"ntd_installation_fee" : "4_PORT"
},
"oneTimeCharge" : {
"amount" : "0.00",
"currency" : "AUD",
"symbol" : "$"
},
"monthlyRecurringCharge" : {
"amount" : "0.00",
"currency" : "AUD",
"symbol" : "$"
}
}
} ]
} ],
"additionalFees" : [ {
"addOnTypeName" : "SLA",
"fee" : {
"attributes" : {
"sla" : "Standard"
},
"oneTimeCharge" : {
"amount" : "0.00",
"currency" : "AUD",
"symbol" : "$"
},
"monthlyRecurringCharge" : {
"amount" : "0.00",
"currency" : "AUD",
"symbol" : "$"
}
}
} ]
}
Once you have a list of available options you can request a service plan change by choosing one option and making a request with the service id, plan name and term.
Invalid Request
If the request is invalid for any reason, a http status of 422 is returned and the body of the
response will list the problems with the request.
This example is of submitting a service plan change options request, where a plan change is not available.
POST /api/connect/services/plan-changes/options/request HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: Bearer **token**
X-API-VERSION: 5
Content-Length: 24
Host: 360-api.superloop.com
{
"serviceId" : 2100
}
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 415
{
"httpStatusCode" : 422,
"type" : "client.validation",
"code" : "validation",
"message" : "Validation error",
"apiSubErrors" : [ {
"code" : "constraints.nbn.traffic.class.required",
"message" : "nbn TC4 Technology Type attribute is required",
"object" : "ServicePlanChange",
"field" : "nbnTrafficClass",
"rejectedValue" : null
} ],
"timestamp" : "2025-10-29T04:11:20.712287675Z"
}
Resource failed to be created
If the service-plan-change-options resource failed to be created, a http status of 422 is returned and the body of the
response will list the reason why
GET /api/connect/services/plan-changes/options/requests/3159b05a-7b8c-4887-a193-0a37087a3988 HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: Bearer **token**
X-API-VERSION: 5
Host: 360-api.superloop.com
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 447
{
"httpStatusCode" : 422,
"type" : "client.validation",
"code" : "validation",
"message" : "Validation error",
"apiSubErrors" : [ {
"code" : "constraints.service.plan.change.options.request.in.error",
"message" : "The given data was invalid",
"object" : "ServicePlanChangeOptions",
"field" : "request",
"rejectedValue" : "3159b05a-7b8c-4887-a193-0a37087a3988"
} ],
"timestamp" : "2025-10-29T04:11:27.209076594Z"
}
Upstream Service Unavailable
If one of the services that Connect API uses for getting service plan change options is down or unreachable,
Connect API will return a http status of 422.
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 452
{
"httpStatusCode" : 422,
"type" : "client.validation",
"code" : "validation",
"message" : "Validation error",
"apiSubErrors" : [ {
"code" : "constraints.service.plan.change.options.request.in.error",
"message" : "getService to Nbn Portal failed",
"object" : "ServicePlanChangeOptions",
"field" : "request",
"rejectedValue" : "94f14009-9ede-460d-b2c7-9f07e02d12be"
} ],
"timestamp" : "2025-10-29T04:11:30.555499535Z"
}