Introduction

To get a Fibre Build Charge Quote for a location, you must submit a fibre-build-charge request.

Request Lifecycle

A fibre build charge quote can be done as follows:

  1. You must perform an Enterprise Ethernet Service Qualification before submitting the fibre-build-charge-request.

  2. Create a fibre-build-charge-request resource, by sending a POST request to /api/connect/ee/fibre-build-charge/request with the body of the request containing the location id. The response’s http status will be 201 with a blank response body. There will be a Location response header with a URL. This URL is where the request outcome can be obtained.

  3. Make a GET request to the URL returned in 1. to retrieve the outcome of the request. While the request is in progress, the response’s http status will be 202. This means that the request has not finished yet, but will in a moment. If the request was successful a fibre-build-charge-request 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.

Please note that the fibre build charge request process itself may take a while to complete and polling should be no more than once per 5secs.

Request Specifications

Table 1. API Versions
Version Header Changes

6

X-API-VERSION=6

Initial Version

7

X-API-VERSION=7

No Change

API Version 6 and 7

POST Request

Table 2. POST Request

Verb

POST

Table 3. POST HTTP Request Headers
Name Description

Authorization

The OAuth bearer access token

X-API-VERSION

The version of the endpoint you are accessing

Table 4. POST Request Body Fields
Path Type Description Required

locationId

String

The nbn unique identifier of the location.

Required

POST Response

Table 5. POST HTTP Status Codes
Status Code Meaning

201

The request was created successfully

401

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 the issues.

500

There was an unexpected error processing the request

GET Request

Note
The URI will be given to you in the Location header of the POST request.
Table 6. GET Request

Verb

GET

URI

/api/connect/ee/fibre-build-charge/requests/{id}

Table 7. GET Request Path Variables

Path Variable

Purpose

id

The id of the fibre build charge request

Table 8. GET HTTP Request Headers
Name Description

Authorization

The OAuth bearer access token

X-API-VERSION

The version of the endpoint you are accessing

GET Response

Table 9. GET HTTP Status Codes
Status Code Meaning

200

The request is complete. The body contains the Fibre Build Charge for the id

202

The request is in progress

401

Bearer token is missing or invalid

404

You do not have permission to perform this task

404

The id (of the fibre-build-charge-request resource) provided does not exist

422

There are validation errors on the request you made. Check the response body to see the issues

500

There was an unexpected error processing the request

Table 10. GET Response Body Fields
Path Type Description

nbnLocationId

String

The nbn unique identifier of the location.

nbnQuoteId

String

The nbn FBC quote ID.

quoteDate

String

The nbn FBC quote created date.

zone

String

The name of the nbn zone that the site will be serviced from.

poiName

String

The name of the nbn POI that the site will be serviced from.

estDeliveryTime

String

Estimated service delivery time.

fibreBuildCategory

String

The fibre build category.

priceType

String

Fibre Build Charge price type.

name

String

Fibre Build Charge.

priceUnit

String

Fibre Build Charge price currency unit.

priceValue

Number

Fibre Build Charge cost in cents.

validUntil

String

The date till FBC quote valid.

createdOn

String

The date/time, including UTC offset, when FBC quote was created.

API Version 6 and 7 - Examples

Successful Request

A fibre-build-charge-request resource is created by sending a POST request to /api/connect/ee/fibre-build-charge/request.

POST Request
POST /api/connect/ee/fibre-build-charge/request HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: Bearer **token**
X-API-VERSION: 7
Content-Length: 38
Host: 360-api.superloop.com

{
  "locationId" : "LOC000000000020"
}

If all required fields were provided, then the response to the request will have:

  1. a http status of 201

Successful POST Response
HTTP/1.1 201 Created
Location: /api/connect/ee/fibre-build-charge/requests/4
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 fibre build charge 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 and the status will be COMPLETED

Note
Please keep the polling to a sensible rate.Polling should be no more than once per 5secs
GET Request
GET /api/connect/ee/fibre-build-charge/requests/4 HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: Bearer **token**
X-API-VERSION: 7
Host: 360-api.superloop.com
Successful GET Response fibre build charge request in progress
HTTP/1.1 202 Accepted
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
Successful GET Response fibre build charge request completed
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: 389

{
  "nbnLocationId" : "LOC000000000018",
  "nbnQuoteId" : "EEQ-0000000001",
  "quoteDate" : "2022-03-28",
  "zone" : "CBD",
  "poiName" : "8DRW - DARWIN",
  "estDeliveryTime" : "50 Business Days",
  "fibreBuildCategory" : "A",
  "priceType" : "oneOff",
  "name" : "FBC",
  "priceUnit" : "AUD",
  "priceValue" : 100.0,
  "validUntil" : "2022-06-24",
  "createdOn" : "2022-03-27T22:57:01Z"
}
Successful GET Response fibre build charge request in error
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: 404

{
  "httpStatusCode" : 422,
  "type" : "client.validation",
  "code" : "validation",
  "message" : "Validation error",
  "apiSubErrors" : [ {
    "code" : "constraints.fibre.build.charge.request.in.error",
    "message" : "An unexpected error occurred.",
    "object" : "FibreBuildCharge",
    "field" : "status",
    "rejectedValue" : "IN_ERROR"
  } ],
  "timestamp" : "2025-03-11T22:23:38.917791957Z"
}

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 request where the location id is invalid.

POST Request
POST /api/connect/ee/fibre-build-charge/request HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: Bearer **token**
X-API-VERSION: 7
Content-Length: 33
Host: 360-api.superloop.com

{
  "locationId" : "LOC0000012"
}
POST Response with invalid location id
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: 425

{
  "httpStatusCode" : 422,
  "type" : "client.validation",
  "code" : "method.argument.not.valid",
  "message" : "Validation error",
  "apiSubErrors" : [ {
    "code" : "constraints.pattern",
    "message" : "Must be LOC followed by 12 digits",
    "object" : "connectNbnRequestFibreBuildChargeCommand",
    "field" : "locationId",
    "rejectedValue" : "LOC0000012"
  } ],
  "timestamp" : "2025-03-11T22:23:40.067456982Z"
}

Bad Request

GET Request bad request
GET /api/connect/ee/fibre-build-charge/requests/10 HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: Bearer **token**
X-API-VERSION: 7
Host: 360-api.superloop.com
GET Response bad request
HTTP/1.1 404 Not Found
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: 233

{
  "httpStatusCode" : 404,
  "type" : "business.rule",
  "code" : "resource.not.found",
  "message" : "Fibre Build Charge request does not exist with id 10",
  "apiSubErrors" : [ ],
  "timestamp" : "2025-03-11T22:23:42.683269442Z"
}