Skip to content

CDC - Certifier to ePlanning API (v1)

Authentication

Please use the subscription key provided by the Department to access the APIs.

Overview
Languages
Servers

https://api.apps1.nsw.gov.au/planning/CDCMgmt/Certifiers/v1/

AcceptDecline

Request

This operation transfers the certifier's decision regarding acceptance, declination, or return of the Complying Development Certificate case from the certifier's IT system to the Online CDC Service.

Path
CaseIDstringrequired

A fully qualified application number or case id

Headers
OrganisationIDstringrequired

The council LGA name or Private Certifier Organisation name to indicate where the request is originated from.

IdempotencyIDstringrequired

Unique Id for this request. Allows the API to respond in an idempotent way if it has already been called with these parameters and prevents duplicate processing. Typically a UUID such as "63a9ba30-7a4b-4fac-b343-d1f05cf089f1"

Bodyapplication/jsonrequired

Information request object

reviewOfOutcomestring(ReviewOfOutcome)required

What is the outcome of your review, Accept or Decline. One of the below mentioned values must be selected for ReviewOfOutcome 1. Accept application for assessment 2. Decline application for assessment 3. Return to applicant

Example: "Refer to description for values"
certifierCDCReferenceNumberstring<= 100 characters

The CDC reference number generated in the council system and is required only when reviewOfOutcome is 'Accept application for assessment' and not applicable for 'Decline application for assessment'

Example: "CDC201900049"
reasonsForDeclinestring<= 512 characters

This attribute is obsolete and is replaced by additionalCommentsForDeclineOrReturn. This is to track the reason for declining the application and is required only when 'Decline application for assessment'.

reasonsForReturnArray of strings(ReasonsforReturn)

This is to track the reasons for returning the application to the applicant. This is required when the review outcome is 'Return to applicant'

additionalCommentsForDeclineOrReturnstring<= 2000 characters

This is to track the comments provided by the certifier while returning or declining the application. This is required when 'reasonsForReturn' is 'other' during the 'Return to applicant' scenario. This is also required for the decline scenario when reviewOfOutcome is 'Decline application for assessment'.

DocumentsArray of objects(DownloadableDocument)

documents are applicable for 'Decline application for assessment' and not applicable for 'Accept application for assessment'

updatedByEmailstring<= 250 charactersrequired

User must be registered in the planning portal

Example: "john.smith@gmail.com"
curl -i -X PUT \
  'https://api.apps1.nsw.gov.au/planning/CDCMgmt/Certifiers/v1/AcceptDecline/{CaseID}' \
  -H 'Content-Type: application/json' \
  -H 'IdempotencyID: string' \
  -H 'OrganisationID: string' \
  -d '{
    "reviewOfOutcome": "Refer to description for values",
    "certifierCDCReferenceNumber": "CDC201900049",
    "reasonsForDecline": "string",
    "reasonsForReturn": [
      "string"
    ],
    "additionalCommentsForDeclineOrReturn": "string",
    "Documents": [
      {
        "documentName": "test.docx",
        "documentType": "string",
        "uploadedDateTime": "2019-08-24T14:15:22Z",
        "documentURL": "string"
      }
    ],
    "updatedByEmail": "john.smith@gmail.com"
  }'

Responses

Case updated

Bodyapplication/json
statusCodeinteger
Example: 200
messagestring
activityIdstring
contributionDetailsArray of objects(contributionDetails)

This is to track the infrastructure contribution's case details associated to the development

DocumentsArray of objects(DocResponse)

Attached documents with eplanningDocIds.

Response
application/json
{ "statusCode": 200, "message": "string", "activityId": "string", "contributionDetails": [ {} ], "Documents": [ {} ] }

ProvideDevspec

Request

This operation transfers the certifier's provide development sepecification on the Complying Development Certificate case from certifier's IT system to the Online CDC Service.

Path
CaseIDstringrequired

A fully qualified application number or case id

Headers
OrganisationIDstringrequired

The council LGA name or Private Certifier Organisation name to indicate where the request is originated from.

Bodyapplication/json

Determination request object

isApplicantPaidFeesbooleanrequired

Has the applicant paid the application fees

developmentDetailsstringrequired

A detailed description of the development.

proposedGrossFloorAreanumber

This is to track the proposed gross floor area. This attribute is required for all common application types except subdivision applications (commonApplicationType = "Subdivision").

classOfDevelopmentArray of strings(ClassOfDevelopment)

Provide development class as per Building Code of Australia. This attribute is required for all common application types except subdivision applications (commonApplicationType = "Subdivision").

Example: ["Refer to description for values"]
isApplicantDBPSelectionCorrectboolean

This is an obsolete attribute. Value for this is not required to be supplied anymore and when supplied the value will be ignored, as this attribute is functionally irrelavant.(Old description N/A- Indicates if the proposed development is exempted from the Design and Building Practitioners Act 2020. Required when classOfDevelopment has 'class2' in it.

numOfBedroomsArray of objects(NumberofBedrooms)

Applicable for the relevant development types. Please refer to the reference data API for the latest values.This attribute is required for all common application types except subdivision applications (commonApplicationType = "Subdivision").

categoryOfDevelopmentArray of objects(AddcategoryOfDevelopment)

Applicable for the relevant development types. Please refer to the reference data API for the latest values. This attribute is required for all common application types except subdivision applications (commonApplicationType = "Subdivision").

numberOfDwellingsToBeConstructinteger(int32)

Number of dwellings to be constructed. This attribute is required for all common application types except subdivision applications (commonApplicationType = "Subdivision").

numberOfStoreysinteger(int32)

Number of storeys (including underground floors). This attribute is required for all common application types except subdivision applications (commonApplicationType = "Subdivision").

grossFloorAreaOfBuildingnumber(decimal)

Gross floor area of the building (sqm). This attribute is required for all common application types except subdivision applications (commonApplicationType = "Subdivision").

Example: 1250.9
isNewResBuldToattachboolean

Is the new building to be attached to (or within 900mm of) an existing building. This attribute is required for all common application types except subdivision applications (commonApplicationType = "Subdivision").

isNewBuildToOtherNewBuildboolean

Is the new building to be attached to (or within 900mm of) any proposed new building. This attribute is required for all common application types except subdivision applications (commonApplicationType = "Subdivision").

SiteAreanumber(decimal)

Site area in sq m. This attribute is required for all common application types except subdivision applications (commonApplicationType = "Subdivision").

Example: 1250.9
numberOfPreexistDwellingsinteger(int32)

Number of pre-existing dwellings on site. This attribute is required for all common application types except subdivision applications (commonApplicationType = "Subdivision").

isDualOccupancyDevboolean

Does the site contain a dual occupancy development?. This attribute is required for all common application types except subdivision applications (commonApplicationType = "Subdivision")

numberOfDwellToBeDemolishinteger(int32)

Number of dwellings to be demolished. This attribute is required for all common application types except subdivision applications (commonApplicationType = "Subdivision")

areaOfRepairedAsbestosMaterialnumber(decimal)

Estimate of the area (if any) in square meters of bonded asbestos material or friable asbestos material that will be disturbed, repaired or removed in the carrying out of the development (m2). This attribute is required for all common application types except subdivision applications (commonApplicationType = "Subdivision").

Example: 1250.9
currentUseOfBuildingPartsArray of strings(CurrentUseOfBuildingParts)

What is the current use of all parts of the building (s) / land? (if vacant please state). This attribute is required for all common application types except subdivision applications (commonApplicationType = "Subdivision").

Example: ["Refer to description for values"]
otherCurrentUseOfBuildingPartsstring

When user choose 'Other' from the 'currentUseOfBuildingParts' list this field is mandatory .

numberOfCarParkProposedinteger(int32)

This is now an obsolete attribute and will e be removed in the subsequent YAML version.This is replaced by the categoryOfDevelopment object. What is the number of carparks in the proposed development? This question will not be visible when we select the either of the development types "Demolition","Balconies, decks, patios, terraces of verandas","Swimming Pool", "Earthworks, retaining walls, protection of trees","Signage", "Subdivision of land ","Bed and breakfast accommodation ","Home business", "Flood mitigation work","Health services facilities","Port wharf boating facilities","Facilities for electric vehicles","Stormwater management systems ","Telecommunication and communication facilities " from applicant .

numberOfStudioDwellingProposedinteger(int32)

This is an obsolete attribute which will be removed in the subsequent YAML version.This is replaced by the number of bedrooms object. Number of studio dwellings in the proposed development?This question will be visible when we select the either of the development types "Dwelling house","Secondary dwelling","Attached development","Manor houses","Dual occupancy","Multi-dwelling housing","Detached development","Alterations and additions to residential development", or "Bed and breakfast accommodation" from applicant .

numberOfOneBedProposedForDevinteger(int32)

This is an obsolete attribute which will be removed in the subsequent YAML version.This is replaced by the number of bedrooms object.Number of one bedroom dwellings in the proposed.This question will be visible when we select the either of the development types "Dwelling house","Secondary dwelling","Attached development","Manor houses","Dual occupancy","Multi-dwelling housing","Detached development","Alterations and additions to residential development", or "Bed and breakfast accommodation" from applicant .

numberOfTwoBedProposedForDevinteger(int32)

This is an obsolete attribute which will be removed in the subsequent YAML version.This is replaced by the number of bedrooms object. Number of two bedroom dwellings in the proposed development.This question will be visible when we select the either of the development types "Dwelling house","Secondary dwelling","Attached development","Manor houses","Dual occupancy","Multi-dwelling housing","Detached development","Alterations and additions to residential development", or "Bed and breakfast accommodation" from applicant. This will be replaced by the number of bedrooms object and will become obselete soon. This corresponds to the number of proposed dwellings for two bedrooms under number of bedrooms object.

numberOfThreeBedProposedForDevinteger(int32)

This is an obsolete attribute which will be removed in the subsequent YAML version.This is replaced by the number of bedrooms object. Number of three bedroom dwellings in the proposed development.This question will be visible when we select the either of the development types "Dwelling house","Secondary dwelling","Attached development","Manor houses","Dual occupancy","Multi-dwelling housing","Detached development","Alterations and additions to residential development", or "Bed and breakfast accommodation" from applicant. This will be replaced by the number of bedrooms object and will become obselete soon. This corresponds to the number of proposed dwellings for three bedrooms under number of bedrooms object.

numberOfFourBedProposedForDevinteger(int32)

This is an obsolete attribute which will be removed in the subsequent YAML version.This is replaced by the number of bedrooms object. Number of four (or more) bedroom dwellings in the proposed development.This question will be visible when we select the either of the development types "Dwelling house","Secondary dwelling","Attached development","Manor houses","Dual occupancy","Multi-dwelling housing","Detached development","Alterations and additions to residential development", or "Bed and breakfast accommodation" from applicant . This will be replaced by the number of bedrooms object and will become obselete soon. This corresponds to the number of proposed dwellings for four bedrooms under number of bedrooms object.

wallMaterialsArray of strings(WallMaterials)

This is to track the materials to be used for Wall. This is a mandatory field and will be applicable when classOfDevelopment is in ("Class 1a","Class 1b","Class 2","Class 3","Class 4","Class 9c"). This attribute is required for all common application types except subdivision applications (commonApplicationType = "Subdivision").

Example: ["Refer to description for values"]
roofMaterialsArray of strings(RoofMaterials)

This is to track the materials to be used for Roof. This is a mandatory field and will be applicable when classOfDevelopment is in ("Class 1a","Class 1b","Class 2","Class 3","Class 4","Class 9c"). This attribute is required for all common application types except subdivision applications (commonApplicationType = "Subdivision").

Example: ["Refer to description for values"]
floorMaterialsArray of strings(FloorMaterials)

This is to track the materials used for flooring. This is a mandatory field and will be applicable when classOfDevelopment is in ("Class 1a","Class 1b","Class 2","Class 3","Class 4","Class 9c"). This attribute is required for all common application types except subdivision applications (commonApplicationType = "Subdivision").

Example: ["Refer to description for values"]
frameMaterialsArray of strings(FrameMaterials)

Frame Materials.This is a mandatory field and will be applicable when classOfDevelopment is in ("Class 1a","Class 1b","Class 2","Class 3","Class 4","Class 9c"). This attribute is required for all common application types except subdivision applications (commonApplicationType = "Subdivision").

Example: ["Refer to description for values"]
updatedByEmailstring<= 250 charactersrequired

User must be registered in the planning portal

Example: "john.smith@gmail.com"
curl -i -X PUT \
  'https://api.apps1.nsw.gov.au/planning/CDCMgmt/Certifiers/v1/ProvideDevspec/{CaseID}' \
  -H 'Content-Type: application/json' \
  -H 'OrganisationID: string' \
  -d '{
    "isApplicantPaidFees": true,
    "developmentDetails": "string",
    "proposedGrossFloorArea": 0,
    "classOfDevelopment": [
      "Refer to description for values"
    ],
    "isApplicantDBPSelectionCorrect": true,
    "numOfBedrooms": [
      {
        "noOfBedrooms": "Refer to description for values.",
        "noOfDwellingsDemolished": 0,
        "noOfDwellingsProposed": 0
      }
    ],
    "categoryOfDevelopment": [
      {
        "categoryOfDevelopment": "Refer to description for values.",
        "carParkingSpaces": 0,
        "motorCycleSpaces": 0,
        "biCycleSpaces": 0
      }
    ],
    "numberOfDwellingsToBeConstruct": 0,
    "numberOfStoreys": 0,
    "grossFloorAreaOfBuilding": 1250.9,
    "isNewResBuldToattach": true,
    "isNewBuildToOtherNewBuild": true,
    "SiteArea": 1250.9,
    "numberOfPreexistDwellings": 0,
    "isDualOccupancyDev": true,
    "numberOfDwellToBeDemolish": 0,
    "areaOfRepairedAsbestosMaterial": 1250.9,
    "currentUseOfBuildingParts": [
      "Refer to description for values"
    ],
    "otherCurrentUseOfBuildingParts": "string",
    "numberOfCarParkProposed": 0,
    "numberOfStudioDwellingProposed": 0,
    "numberOfOneBedProposedForDev": 0,
    "numberOfTwoBedProposedForDev": 0,
    "numberOfThreeBedProposedForDev": 0,
    "numberOfFourBedProposedForDev": 0,
    "wallMaterials": [
      "Refer to description for values"
    ],
    "roofMaterials": [
      "Refer to description for values"
    ],
    "floorMaterials": [
      "Refer to description for values"
    ],
    "frameMaterials": [
      "Refer to description for values"
    ],
    "updatedByEmail": "john.smith@gmail.com"
  }'

Responses

Case updated

Body
Response
No content

Determination

Request

This operation transfers the certifier's determination decision on the Complying Development Certificate case from certifier's IT system to the Online CDC Service.

Path
CaseIDstringrequired

A fully qualified application number or case id

Headers
OrganisationIDstringrequired

The council LGA name or Private Certifier Organisation name to indicate where the request is originated from.

Bodyapplication/json

Determination request object

envPlanningInstrumentCDCArray of strings(environmentalPlanningInstList)required

Under which Environmental Planning Instrument or Development Control Plan is the proposal considered to be Complying Development?

Example: ["Refer to description for values"]
exemptCDCCodeForApplicationArray of strings(exemptCDCCodeForApplication)

When Certifier choose 'State Environmental Planning Policy (Exempt and Complying Development Codes) 2008' from environmentalPlanningInstrument then this filed is mandatory.

Example: ["Refer to description for values"]
otherStateEnvpolicyArray of strings(OtherStateEnvPlanningpolicy)

When Certifier choose 'Other State Environmental Planning Policy' from environmentalPlanningInstrument then this filed is mandatory.

Example: ["Refer to description for values"]
otherenvPlanningInstrumentArray of strings(otherenvPlanningInstrument)

When Certifier choose 'Other Environmental Planning Instrument (eg. Local Environmental Plan, Interim Development Order, Planning Scheme, etc)' from environmentalPlanningInstrument then this filed is mandatory.

declarationsArray of strings(CDCdeclarations)

CDC Declarations.

siteInspectedDatestring(date)

Date of site visit, this will be mandatory when 'I confirm that I have inspected the site' declarations is selected.

Example: "2020-09-10"
isBushFireProneLandstring(isBushFireProneLand)

Bushfire prone land? One of the below mentioned values must be selected for isBushFireProneLand 1. The site is bushfire prone land and I will send a copy of the CDC and related documents to the Rural Fire Service. 2. The site is not bushfire prone land. This attribute is required for all common application types except subdivision applications (commonApplicationType = "Subdivision").

Example: "Refer to description for values"
certifierCategorystring

This is to track the category of the certifiers. This is required for private certifiers and not councils. One of the below values are expected to be supplied. 1. Individual registered certifier under the Building and Development Certificates 2018 2. Registered body corporate under the Building and Development Certificates 2018 Individual registered certifier value will be defaulted for private certifiers to support existing API users.

RBCnumberstring

This is to track Registered body corporate number. This is required only when certifierCategory is selected as 'Registered body corporate under the Building and Development Certificates 2018'. Registration number can be checked in the link - https://applications.fairtrading.nsw.gov.au/bdcregister/

certifierDetailsobject(CertifierDetails)required
certifierDetails.​firstNamestring<= 20 characters

FirstName will be ignored, as the first name details are fetched in the backend using the registration number search (accreditationNo) and fullname will be populated.

Example: "John"
certifierDetails.​familynamestring<= 20 characters

Familyname will be ignored, as the family name details are fetched in the backend using the registration number search (accreditationNo) and full name will be populated.

Example: "Smith"
certifierDetails.​accreditationNostringrequired

This is to track the BDC registration number that is applicable for NSW certifiers (OR) AMR registration number (e.g. AMR-123456) that's applicable for interstate certifiers.

certifierDetails.​registeredCertifierStatestringrequired

This is to track the state of the registered certifier. NSW state is enabled as the default selection for the Council and the private certifiers. 1. Yes, in NSW 2. Yes, in another state

Example: "Refer to description for values"
certifierDetails.​registrationStateorTerritoryNamestring

This is to track the Registration state or territory. This is required when registeredCertifierState is "Yes, in another state" 1. Victoria 2. South Australia 3. Western Australia 4. Tasmania 5. Northern Territory 6. Australian Capital Territory

Example: "Refer to description for values"
certifierDetails.​interStateLicenseNumberstring

This is to track the Interstate license number. This is required when registeredCertifierState is "Yes, in another state"

determinationDatestring(date)required

Determination date.

Example: "2020-09-10"
isCDCApprovedstring(isCDCApproved)required

The application has been determined and One of the below mentioned values must be selected for isCDCApproved 1. Approved 2. Refused

Example: "Refer to description for values"
otherexemptCDCDescriptionstring

When we choose Other from "exemptCDCCodeForApplication" list this is field is available.

DocumentsArray of objects(DownloadableDocument)
updatedByEmailstring<= 250 charactersrequired

User must be registered in the planning portal

Example: "john.smith@gmail.com"
curl -i -X PUT \
  'https://api.apps1.nsw.gov.au/planning/CDCMgmt/Certifiers/v1/Determination/{CaseID}' \
  -H 'Content-Type: application/json' \
  -H 'OrganisationID: string' \
  -d '{
    "envPlanningInstrumentCDC": [
      "Refer to description for values"
    ],
    "exemptCDCCodeForApplication": [
      "Refer to description for values"
    ],
    "otherStateEnvpolicy": [
      "Refer to description for values"
    ],
    "otherenvPlanningInstrument": [
      "string"
    ],
    "declarations": [
      "string"
    ],
    "siteInspectedDate": "2020-09-10",
    "isBushFireProneLand": "Refer to description for values",
    "certifierCategory": "string",
    "RBCnumber": "string",
    "certifierDetails": {
      "firstName": "John",
      "familyname": "Smith",
      "accreditationNo": "string",
      "registeredCertifierState": "Refer to description for values",
      "registrationStateorTerritoryName": "Refer to description for values",
      "interStateLicenseNumber": "string"
    },
    "determinationDate": "2020-09-10",
    "isCDCApproved": "Refer to description for values",
    "otherexemptCDCDescription": "string",
    "Documents": [
      {
        "documentName": "test.docx",
        "documentType": "string",
        "uploadedDateTime": "2019-08-24T14:15:22Z",
        "documentURL": "string"
      }
    ],
    "updatedByEmail": "john.smith@gmail.com"
  }'

Responses

Case updated

Bodyapplication/json
statusCodeinteger
Example: 200
messagestring
activityIdstring
DocumentsArray of objects(DocResponse)

Attached documents with eplanningDocIds.

Response
application/json
{ "statusCode": 200, "message": "string", "activityId": "string", "Documents": [ {} ] }

FinalPlanSubmission

Request

This operation transfers the final plan submitted by the certifier from the certifier's IT system to the Online CDC Service.

Path
CaseIDstringrequired

A fully qualified application number or case id

Headers
OrganisationIDstringrequired

The council LGA name or Private Certifier Organisation name to indicate where the request is originated from.

Bodyapplication/json

Determination request object

InitiateCertificateRegisterboolean

This is applicable for private certifiers only and not applicable for councils. When the value true is given, a related inprogress Certificate Registration case will be created. When false value is given, Certificate Registration case will not be created.

DocumentsArray of objects(DownloadableDocument)
updatedByEmailstring<= 250 characters

User must be registered in the planning portal

Example: "john.smith@gmail.com"
curl -i -X PUT \
  'https://api.apps1.nsw.gov.au/planning/CDCMgmt/Certifiers/v1/FinalPlanSubmission/{CaseID}' \
  -H 'Content-Type: application/json' \
  -H 'OrganisationID: string' \
  -d '{
    "InitiateCertificateRegister": true,
    "Documents": [
      {
        "documentName": "test.docx",
        "documentType": "string",
        "uploadedDateTime": "2019-08-24T14:15:22Z",
        "documentURL": "string"
      }
    ],
    "updatedByEmail": "john.smith@gmail.com"
  }'

Responses

Final plan documents uploaded susccessfully

Bodyapplication/json
statusCodeinteger
Example: 200
messagestring
activityIdstring
CRCaseIDstring

This indicates the CaseID of the Certificate Registration case. Applicable when InitiateCertificateRegister is true.

Example: "CR-XXXX-XXX"
DocumentsArray of objects(DocResponse)

Attached documents with eplanningDocIds.

Response
application/json
{ "statusCode": 200, "message": "string", "activityId": "string", "CRCaseID": "CR-XXXX-XXX", "Documents": [ {} ] }