Shocking Energy SIP API v3.1

Safe Isolation Provider (SIP) API

The SIP API v3 service for SIP-accredited Meter Equipment Managers (MEMs) enables Installers, including Electric Vehicle (EV) charging installation companies, to send regulatory market messages following de-energisation and re-energisation processes. This version of the API is structured to closely follow the engineer's workflow as captured in the worksheet.

SIP API v3 Scenario Blocks

The following table outlines the suggested blocks for each scenario in the SIP API v3. An "X" indicates that the block is required or relevant for that scenario.

Scenario job_details contact meter readings dno_issue tampering additional_info maintenance failure_reason site_visit_issue_code
S1 X X X
S2 X X X X X X
S3 X X X X
S4 X X X X X X X
S5 X X X X X
S6 X X X X X X X
S7 X X X X X X X
S8 X X X X X X X
S9 X X X X X X X

Scenario Key:

API Endpoint

POST <https://api.shocking.energy/v3/job-data>

Request Headers

Request Body Structure

The request body is a JSON object composed of various blocks that correspond to the sections in the engineer's worksheet. Here's an overview of the available blocks:

  1. job_details
  2. contact
  3. site_assessment
  4. job_preparation
  5. safety_checks
  6. meter
  7. meter_fault
  8. tamper
  9. job_execution
  10. job_completion

Block Definitions

1. job_details

{
  "job_id": string,
  "mpan": string,
  "supplier_mpid": string,
  "energisation_status": boolean,
  "property_owner_name": string,
  "amo_consumer_category": string
}

2. contact

{
  "address": string,
  "post_code": string,
  "customer_name": string,
  "customer_telephone": string,
  "no_booking_card_needed": boolean
}

3. site_assessment

{
  "no_personal_risks": boolean,
  "meter_access_clear": boolean,
  "suitable_environment": boolean,
  "suitable_heights": boolean,
  "engineer_competent": boolean,
  "safety_hazards": boolean,
  "hazard_description": string
}

4. job_preparation

{
  "existing_vulnerabilities": boolean,
  "vulnerabilities_identified": boolean,
  "sip_ani_medical": boolean,
  "sip_ani_tpp": boolean,
  "owner_consent": boolean,
  "key_holder": boolean,
  "customer_password": boolean
}

5. safety_checks

{
  "checks_passed": boolean,
  "no_category_ea_issues": boolean,
  "no_category_eb_issues": boolean,
  "no_category_ec_issues": boolean,
  "dno_code": string,
  "dno_comment": string,
  "metering_equipment_issues": boolean,
  "no_environmental_damage": boolean,
  "no_physical_damage": boolean,
  "no_leakage_smells": boolean
}

6. meter

{
  "serial_number": string,
  "location": string,
  "smart_meter": boolean,
  "register_id": string,
  "current_reading": number,
  "new_reading": number,
  "unexpected_reading": boolean,
  "reading_photo": string // Base64 encoded photo
}

7. meter_fault

{
  "date_fault_suspected_detected": string, // YYYY-MM-DD
  "failure_to_energise_reason_code": string,
  "asset_condition_report_date": string, // YYYY-MM-DD
  "asset_condition_code": string,
  "equipment_warning_notice": boolean,
  "smart_not_restored": boolean,
  "smart_status_restored": boolean
}

8. tamper

{
  "tampering_detected": boolean,
  "tampering_code": string,
  "evidence_photo": string, // Base64 encoded photo
  "tamper_report_date": string // YYYY-MM-DD
}

9. job_execution

{
  "pre_removal_photo": string, // Base64 encoded photo
  "site_de_energised": boolean,
  "de_energisation_time": datetime,
  "site_re_energised": boolean,
  "re_energisation_time": datetime,
  "fuse_resealed": boolean,
  "isolator_fitted": boolean,
  "failure_reason": string,
  "post_resealing_photo": string, // Base64 encoded photo
  "meter_reading_photo": string, // Base64 encoded photo
  "meter_serial_photo": string, // Base64 encoded photo
  "additional_information": string,
  "polarity_test_passed": boolean
}

10. job_completion

{
  "proceed": boolean,
  "site_visit_check_code": string,
  "property_demolished": boolean,
  "additional_info": "De-Energised / installed Isolator switch / Re-energised:,
  "failure_reason_code": string
}

Example Request

Here's an example of a complete request for a successful job:

{
  "job_details": {
    "job_id": "JOB123456",
    "mpan": "1234567890123",
    "supplier_mpid": "SUPP",
    "energisation_status": false,
    "property_owner_name": "John Doe",
    "amo_consumer_category": "CAT1"
  },
  "contact": {
    "address": "123 Example St, City",
    "post_code": "AB12 3CD",
    "customer_name": "Jane Smith",
    "customer_telephone": "01234567890",
    "no_booking_card_needed": true
  },
  "site_assessment": {
    "no_personal_risks": true,
    "meter_access_clear": true,
    "suitable_environment": true,
    "suitable_heights": true,
    "engineer_competent": true,
    "safety_hazards": false,
    "hazard_description": null
  },
  "job_preparation": {
    "existing_vulnerabilities": false,
    "vulnerabilities_identified": false,
    "sip_ani_medical": false,
    "sip_ani_tpp": false,
    "owner_consent": true,
    "key_holder": false,
    "customer_password": false
  },
  "safety_checks": {
    "checks_passed": true,
    "no_category_ea_issues": true,
    "no_category_eb_issues": true,
    "no_category_ec_issues": true,
    "dno_code": null,
    "dno_comment": null,
    "metering_equipment_issues": false,
    "no_environmental_damage": true,
    "no_physical_damage": true,
    "no_leakage_smells": true
  },
  "meter": {
    "serial_number": "MET123456",
    "location": "Kitchen",
    "smart_meter": true,
    "register_id": "01",
    "current_reading": 12345,
    "new_reading": 12346,
    "unexpected_reading": false,
    "reading_photo": "base64_encoded_photo_data"
  },
  "meter_fault": null,
  "tamper": {
    "tampering_detected": false,
    "tampering_code": null,
    "evidence_photo": null,
    "tamper_report_date": null
  },
  "job_execution": {
    "pre_removal_photo": "base64_encoded_photo_data",
    "site_de_energised": true,
    "de_energisation_time": "2024-09-27T10:15:00",
    "site_re_energised": true,
    "re_energisation_time": "2024-09-27T11:15:00",
    "fuse_resealed": true,
    "isolator_fitted": true,
    "failure_reason": null,
    "post_resealing_photo": "base64_encoded_photo_data",
    "meter_reading_photo": "base64_encoded_photo_data",
    "meter_serial_photo": "base64_encoded_photo_data",
    "additional_information": "De-Energised / installed Isolator switch / Re-energised",
    "polarity_test_passed": true
  },
  "job_completion": {
    "proceed": true,
    "site_visit_check_code": "01",
    "property_demolished": false,
    "additional_info": null,
    "failure_reason_code": null
  }
}

Response

Success Response

{
  "status": "success",
  "message": "Job data has been successfully processed.",
  "job_id": "JOB123456"
}

Error Response

{
  "status": "error",
  "message": "Validation failed",
  "errors": [
    {
      "field": "field_name",
      "error": "Error description"
    }
  ]
}

Field Validation Rules

[Note: Include detailed validation rules for each field, similar to those in the original documentation]

Authentication and Rate Limits

Authentication is done via API keys. Include the API key in the request headers:

Authorization: Bearer $SE_API_KEY

Rate limits:

If the rate limit is exceeded, the API will return a 429 Too Many Requests response.

Conventions

For full lists of codes (e.g., Site Visit Check Codes, Tampering Codes), please refer to the complete API documentation.

The Safe Isolation Providor (SIP) API enables Installers, including Electric Vehicle (EV) charging, solar, battery and Heat Pump installation companies, to install isolators and send regulatory market messages following de-energisation and re-energisation.

The service notifies Energy Suppliers and Distribution Network Operators (DNOs) of any faults, ensuring essential communication with Suppliers, DNOs, and Asset Managers via the market messaging system. This helps maintain compliance with regulations, streamlines operations, and enhances reliability in the EV charging infrastructure.

<aside> ❗ You need an integration token to interact with the SIP API. You can find an integration token after you create an integration on the integration settings page.

</aside>

Shocking Energy SIP API v3 - Scenario Examples

Scenario 1: Job Completed Successfully Without Issues

{
  "job_details": {
    "job_id": "JOB123456",
    "mpan": "1234567890123",
    "supplier_mpid": "SUPP",
    "energisation_status": true,
    "property_owner_name": "John Doe",
    "amo_consumer_category": "CAT1"
  },
  "contact": {
    "address": "123 Example St, City",
    "post_code": "AB12 3CD",
    "customer_name": "Jane Smith",
    "customer_telephone": "01234567890",
    "no_booking_card_needed": true
  },
  "site_assessment": {
    "no_personal_risks": true,
    "meter_access_clear": true,
    "suitable_environment": true,
    "suitable_heights": true,
    "engineer_competent": true,
    "safety_hazards": false,
    "hazard_description": null
  },
  "job_preparation": {
    "existing_vulnerabilities": false,
    "vulnerabilities_identified": false,
    "sip_ani_medical": false,
    "sip_ani_tpp": false,
    "owner_consent": true,
    "key_holder": false,
    "customer_password": false
  },
  "safety_checks": {
    "checks_passed": true,
    "no_category_ea_issues": true,
    "no_category_eb_issues": true,
    "no_category_ec_issues": true,
    "dno_code": null,
    "dno_comment": null,
    "metering_equipment_issues": false,
    "no_environmental_damage": true,
    "no_physical_damage": true,
    "no_leakage_smells": true
  },
  "meter": {
    "serial_number": "MET123456",
    "location": "Kitchen",
    "smart_meter": true,
    "register_id": "01",
    "current_reading": 12345,
    "new_reading": 12346,
    "unexpected_reading": false,
    "reading_photo": "base64_encoded_photo_data"
  },
  "meter_fault": null,
  "tamper": {
    "tampering_detected": false,
    "tampering_code": null,
    "evidence_photo": null,
    "tamper_report_date": null
  },
  "job_execution": {
    "pre_removal_photo": "base64_encoded_photo_data",
    "site_de_energised": true,
    "de_energisation_time": "10:30",
    "site_re_energised": true,
    "re_energisation_time": "11:15",
    "fuse_resealed": true,
    "isolator_fitted": true,
    "failure_reason": null,
    "post_resealing_photo": "base64_encoded_photo_data",
    "meter_reading_photo": "base64_encoded_photo_data",
    "meter_serial_photo": "base64_encoded_photo_data",
    "additional_information": "De-Energised / installed Isolator switch / Re-energised",
    "polarity_test_passed": true
  },
  "job_completion": {
    "proceed": true,
    "site_visit_check_code": "01",
    "property_demolished": false,
    "additional_info": "Job completed successfully without any issues",
    "failure_reason_code": null
  }
}

Scenario 2: Job Completed With Metering Issues

{
  "job_details": {
    "job_id": "JOB123457",
    "mpan": "1234567890124",
    "supplier_mpid": "SUPP",
    "energisation_status": true,
    "property_owner_name": "Alice Johnson",
    "amo_consumer_category": "CAT2"
  },
  "contact": {
    "address": "456 Sample Rd, Town",
    "post_code": "XY34 5ZA",
    "customer_name": "Bob Williams",
    "customer_telephone": "07123456789",
    "no_booking_card_needed": true
  },
  "site_assessment": {
    "no_personal_risks": true,
    "meter_access_clear": true,
    "suitable_environment": true,
    "suitable_heights": true,
    "engineer_competent": true,
    "safety_hazards": false,
    "hazard_description": null
  },
  "job_preparation": {
    "existing_vulnerabilities": false,
    "vulnerabilities_identified": false,
    "sip_ani_medical": false,
    "sip_ani_tpp": false,
    "owner_consent": true,
    "key_holder": false,
    "customer_password": false
  },
  "safety_checks": {
    "checks_passed": true,
    "no_category_ea_issues": true,
    "no_category_eb_issues": true,
    "no_category_ec_issues": true,
    "dno_code": null,
    "dno_comment": null,
    "metering_equipment_issues": true,
    "no_environmental_damage": true,
    "no_physical_damage": false,
    "no_leakage_smells": true
  },
  "meter": {
    "serial_number": "MET789012",
    "location": "Hallway",
    "smart_meter": true,
    "register_id": "02",
    "current_reading": 67890,
    "new_reading": 67891,
    "unexpected_reading": true,
    "reading_photo": "base64_encoded_photo_data"
  },
  "meter_fault": {
    "date_fault_suspected_detected": "2024-06-25",
    "failure_to_energise_reason_code": "04",
    "asset_condition_report_date": "2024-06-25",
    "asset_condition_code": "03",
    "equipment_warning_notice": true,
    "smart_not_restored": true,
    "smart_status_restored": false
  },
  "tamper": {
    "tampering_detected": false,
    "tampering_code": null,
    "evidence_photo": null,
    "tamper_report_date": null
  },
  "job_execution": {
    "pre_removal_photo": "base64_encoded_photo_data",
    "site_de_energised": true,
    "de_energisation_time": "14:15",
    "site_re_energised": true,
    "re_energisation_time": "15:30",
    "fuse_resealed": true,
    "isolator_fitted": true,
    "failure_reason": null,
    "post_resealing_photo": "base64_encoded_photo_data",
    "meter_reading_photo": "base64_encoded_photo_data",
    "meter_serial_photo": "base64_encoded_photo_data",
    "additional_information": "De-Energised / installed Isolator switch / Re-energised. Meter fault detected.",
    "polarity_test_passed": true
  },
  "job_completion": {
    "proceed": true,
    "site_visit_check_code": "42",
    "property_demolished": false,
    "additional_info": "Job completed with metering issues. Smart functionality not restored.",
    "failure_reason_code": null
  }
}

Scenario 3: Job Completed With DNO C Issues

{
  "job_details": {
    "job_id": "JOB123458",
    "mpan": "1234567890125",
    "supplier_mpid": "SUPP",
    "energisation_status": true,
    "property_owner_name": "Charlie Brown",
    "amo_consumer_category": "CAT3"
  },
  "contact": {
    "address": "789 Test Ave, Village",
    "post_code": "CD45 6EF",
    "customer_name": "David Green",
    "customer_telephone": "07987654321",
    "no_booking_card_needed": true
  },
  "site_assessment": {
    "no_personal_risks": true,
    "meter_access_clear": true,
    "suitable_environment": true,
    "suitable_heights": true,
    "engineer_competent": true,
    "safety_hazards": true,
    "hazard_description": "Minor cable wear near meter"
  },
  "job_preparation": {
    "existing_vulnerabilities": false,
    "vulnerabilities_identified": false,
    "sip_ani_medical": false,
    "sip_ani_tpp": false,
    "owner_consent": true,
    "key_holder": false,
    "customer_password": false
  },
  "safety_checks": {
    "checks_passed": true,
    "no_category_ea_issues": true,
    "no_category_eb_issues": true,
    "no_category_ec_issues": false,
    "dno_code": "C",
    "dno_comment": "Minor cable wear detected, but safe to proceed with caution",
    "metering_equipment_issues": false,
    "no_environmental_damage": true,
    "no_physical_damage": true,
    "no_leakage_smells": true
  },
  "meter": {
    "serial_number": "MET345678",
    "location": "Utility Room",
    "smart_meter": true,
    "register_id": "03",
    "current_reading": 23456,
    "new_reading": 23457,
    "unexpected_reading": false,
    "reading_photo": "base64_encoded_photo_data"
  },
  "meter_fault": null,
  "tamper": {
    "tampering_detected": false,
    "tampering_code": null,
    "evidence_photo": null,
    "tamper_report_date": null
  },
  "job_execution": {
    "pre_removal_photo": "base64_encoded_photo_data",
    "site_de_energised": true,
    "de_energisation_time": "09:45",
    "site_re_energised": true,
    "re_energisation_time": "11:00",
    "fuse_resealed": true,
    "isolator_fitted": true,
    "failure_reason": null,
    "post_resealing_photo": "base64_encoded_photo_data",
    "meter_reading_photo": "base64_encoded_photo_data",
    "meter_serial_photo": "base64_encoded_photo_data",
    "additional_information": "De-Energised / installed Isolator switch / Re-energised. Proceeded with caution due to DNO C issue.",
    "polarity_test_passed": true
  },
  "job_completion": {
    "proceed": true,
    "site_visit_check_code": "03",
    "property_demolished": false,
    "additional_info": "Job completed with DNO C issue. Reported to DNO for follow-up.",
    "failure_reason_code": null
  }
}

Scenario 4: Job Incomplete Within a Day

{
  "job_details": {
    "job_id": "JOB123459",
    "mpan": "1234567890126",
    "supplier_mpid": "SUPP",
    "energisation_status": true,
    "property_owner_name": "Emma White",
    "amo_consumer_category": "CAT1"
  },
  "contact": {
    "address": "101 Example Lane, Hamlet",
    "post_code": "GH67 8IJ",
    "customer_name": "Frank Black",
    "customer_telephone": "07123987654",
    "no_booking_card_needed": false
  },
  "site_assessment": {
    "no_personal_risks": true,
    "meter_access_clear": false,
    "suitable_environment": true,
    "suitable_heights": true,
    "engineer_competent": true,
    "safety_hazards": false,
    "hazard_description": null
  },
  "job_preparation": {
    "existing_vulnerabilities": false,
    "vulnerabilities_identified": false,
    "sip_ani_medical": false,
    "sip_ani_tpp": false,
    "owner_consent": true,
    "key_holder": false,
    "customer_password": false
  },
  "safety_checks": {
    "checks_passed": true,
    "no_category_ea_issues": true,
    "no_category_eb_issues": true,
    "no_category_ec_issues": true,
    "dno_code": null,
    "dno_comment": null,
    "metering_equipment_issues": false,
    "no_environmental_damage": true,
    "no_physical_damage": true,
    "no_leakage_smells": true
  },
  "meter": {
    "serial_number": "MET901234",
    "location": "Outside",
    "smart_meter": false,
    "register_id": "04",
    "current_reading": 34567,
    "new_reading": null,
    "unexpected_reading": false,
    "reading_photo": "base64_encoded_photo_data"
  },
  "meter_fault": null,
  "tamper": {
    "tampering_detected": false,
    "tampering_code": null,
    "evidence_photo": null,
    "tamper_report_date": null
  },
  "job_execution": {
    "pre_removal_photo": "base64_encoded_photo_data",
    "site_de_energised": false,
    "de_energisation_time": null,
    "site_re_energised": false,
    "re_energisation_time": null,
    "fuse_resealed": false,
    "isolator_fitted": false,
    "failure_reason": "No access to meter due to obstruction",
    "post_resealing_photo": null,
    "meter_reading_photo": "base64_encoded_photo_data",
    "meter_serial_photo": "base64_encoded_photo_data",
    "additional_information": "Unable to access meter due to large object blocking access. Customer not present to move obstruction.",
    "polarity_test_passed": null
  },
  "job_completion": {
    "proceed": false,
    "site_visit_check_code": "20",
    "property_demolished": false,
    "additional_info": "Job incomplete due to lack of meter access. Booking card left for customer.",
    "failure_reason_code": "01"
  }
}

Scenario 5: Job Completed on the Second Day

{
  "job_details": {
    "job_id": "JOB123460",
    "mpan": "1234567890127",
    "supplier_mpid": "SUPP",
    "energisation_status": true,
    "property_owner_name": "Grace Red",
    "amo_consumer_category": "CAT2"
  },
  "contact": {
    "address": "202 Sample Street, Town",
    "post_code": "KL89 0MN",
    "customer_name": "Harry Blue",
    "customer_telephone": "07456123789",
    "no_booking_card_needed": true
  },
  "site_assessment": {
    "no_personal_risks": true,
    "meter_access_clear": true,
    "suitable_environment": true,
    "suitable_heights": true,
    "engineer_competent": true,
    "safety_hazards": false,
    "hazard_description": null
  },
  "job_preparation": {
    "existing_vulnerabilities": false,
    "vulnerabilities_identified": false,
    "sip_ani_medical": false,
    "sip_ani_tpp": false,
    "owner_consent": true,
    "key_holder": false,
    "customer_password": false
  },
  "safety_checks": {
    "checks_passed": true,
    "no_category_ea_issues": true,
    "no_category_eb_issues": true,
    "no_category_ec_issues": true,
    "dno_code": null,
    "dno_comment": null,
    "metering_equipment_issues": false,
    "no_environmental_damage": true,
    "no_physical_damage": true,
    "no_leakage_smells": true
  },
  "meter": {
    "serial_number": "MET567890",
    "location": "Kitchen",
    "smart_meter": true,
    "register_id": "05",
    "current_reading": 45678,
    "new_reading": 45679,
    "unexpected_reading": false,
    "reading_photo": "base64_encoded_photo_data"
  },
  "meter_fault": null,
  "tamper": {
    "tampering_detected": false,
    "tampering_code": null,
    "evidence_photo": null,
    "tamper_report_date": null
  },
  "job_execution": {
    "pre_removal_photo": "base64_encoded_photo_data",
    "site_de_energised": true,
    "de_energisation_time": "15:30",
    "site_re_energised": true,
    "re_energisation_time": "10:45",
    "fuse_resealed": true,
    "isolator_fitted": true,
    "failure_reason": null,
    "post_resealing_photo": "base64_encoded_photo_data",
    "meter_reading_photo": "base64_encoded_photo_data",
    "meter_serial_photo": "base64_encoded_photo_data",
    "additional_information": "De-Energised on day 1, isolator installed and re-energised on day 2 due to equipment delay.",
    "polarity_test_passed": true
  },
  "job_completion": {
    "proceed": true,
    "site_visit_check_code": "01",
    "property_demolished": false,
    "additional_info": "Job completed successfully on the second day due to equipment delivery delay.",
    "failure_reason_code": null
  }
}

Scenario 6: Job Aborted Due to Suspected Tampering

{
  "job_details": {
    "job_id": "JOB123461",
    "mpan": "1234567890128",
    "supplier_mpid": "SUPP",
    "energisation_status": true,
    "property_owner_name": "Iris Green",
    "amo_consumer_category": "CAT1"
  },
  "contact": {
    "address": "303 Test Road, City",
    "post_code": "OP12 3QR",
    "customer_name": "Jack Yellow",
    "customer_telephone": "07789456123",
    "no_booking_card_needed": true
  },
  "site_assessment": {
    "no_personal_risks": true,
    "meter_access_clear": true,
    "suitable_environment": true,
    "suitable_heights": true,
    "engineer_competent": true,
    "safety_hazards": true,
    "hazard_description": "Signs of meter tampering observed"
  },
  "job_preparation": {
    "existing_vulnerabilities": false,
    "vulnerabilities_identified": false,
    "sip_ani_medical": false,
    "sip_ani_tpp": false,
    "owner_consent": true,
    "key_holder": false,
    "customer_password": false
  },
  "safety_checks": {
    "checks_passed": false,
    "no_category_ea_issues": true,
    "no_category_eb_issues": true,
    "no_category_ec_issues": true,
    "dno_code": null,
    "dno_comment": null,
    "metering_equipment_issues": true,
    "no_environmental_damage": true,
    "no_physical_damage": false,
    "no_leakage_smells": true
  },
  "meter": {
    "serial_number": "MET135790",
    "location": "Hallway",
    "smart_meter": true,
    "register_id": "06",
    "current_reading": 56789,
    "new_reading": null,
    "unexpected_reading": true,
    "reading_photo": "base64_encoded_photo_data"
  },
  "meter_fault": null,
  "tamper": {
    "tampering_detected": true,
    "tampering_code": "05",
    "evidence_photo": "base64_encoded_photo_data",
    "tamper_report_date": "2024-06-30"
  },
  "job_execution": {
    "pre_removal_photo": "base64_encoded_photo_data",
    "site_de_energised": false,
    "de_energisation_time": null,
    "site_re_energised": false,
    "re_energisation_time": null,
    "fuse_resealed": false,
    "isolator_fitted": false,
    "failure_reason": "Suspected meter tampering",
    "post_resealing_photo": null,
    "meter_reading_photo": "base64_encoded_photo_data",
    "meter_serial_photo": "base64_encoded_photo_data",
    "additional_information": "Job aborted due to suspected meter tampering. Evidence documented and reported.",
    "polarity_test_passed": null
  },
  "job_completion": {
    "proceed": false,
    "site_visit_check_code": "06",
    "property_demolished": false,
    "additional_info": "Job aborted due to suspected tampering. Reported to relevant authorities.",
    "failure_reason_code": "03"
  }
}

Scenario 7: Job Aborted Due to Metering Issues

{
  "job_details": {
    "job_id": "JOB123462",
    "mpan": "1234567890129",
    "supplier_mpid": "SUPP",
    "energisation_status": true,
    "property_owner_name": "Kevin Purple",
    "amo_consumer_category": "CAT3"
  },
  "contact": {
    "address": "404 Example Avenue, Village",
    "post_code": "ST45 6UV",
    "customer_name": "Linda Orange",
    "customer_telephone": "07321654987",
    "no_booking_card_needed": true
  },
  "site_assessment": {
    "no_personal_risks": true,
    "meter_access_clear": true,
    "suitable_environment": true,
    "suitable_heights": true,
    "engineer_competent": true,
    "safety_hazards": false,
    "hazard_description": null
  },
  "job_preparation": {
    "existing_vulnerabilities": false,
    "vulnerabilities_identified": false,
    "sip_ani_medical": false,
    "sip_ani_tpp": false,
    "owner_consent": true,
    "key_holder": false,
    "customer_password": false
  },
  "safety_checks": {
    "checks_passed": false,
    "no_category_ea_issues": true,
    "no_category_eb_issues": true,
    "no_category_ec_issues": true,
    "dno_code": null,
    "dno_comment": null,
    "metering_equipment_issues": true,
    "no_environmental_damage": false,
    "no_physical_damage": false,
    "no_leakage_smells": true
  },
  "meter": {
    "serial_number": "MET246801",
    "location": "Utility Room",
    "smart_meter": true,
    "register_id": "07",
    "current_reading": 67890,
    "new_reading": null,
    "unexpected_reading": true,
    "reading_photo": "base64_encoded_photo_data"
  },
  "meter_fault": {
    "date_fault_suspected_detected": "2024-07-01",
    "failure_to_energise_reason_code": "05",
    "asset_condition_report_date": "2024-07-01",
    "asset_condition_code": "04",
    "equipment_warning_notice": true,
    "smart_not_restored": true,
    "smart_status_restored": false
  },
  "tamper": {
    "tampering_detected": false,
    "tampering_code": null,
    "evidence_photo": null,
    "tamper_report_date": null
  },
  "job_execution": {
    "pre_removal_photo": "base64_encoded_photo_data",
    "site_de_energised": false,
    "de_energisation_time": null,
    "site_re_energised": false,
    "re_energisation_time": null,
    "fuse_resealed": false,
    "isolator_fitted": false,
    "failure_reason": "Severe meter malfunction detected",
    "post_resealing_photo": null,
    "meter_reading_photo": "base64_encoded_photo_data",
    "meter_serial_photo": "base64_encoded_photo_data",
    "additional_information": "Job aborted due to severe meter issues requiring specialist intervention.",
    "polarity_test_passed": null
  },
  "job_completion": {
    "proceed": false,
    "site_visit_check_code": "05",
    "property_demolished": false,
    "additional_info": "Job aborted due to severe meter malfunction. Specialist intervention required.",
    "failure_reason_code": "04"
  }
}

Scenario 8: Job Aborted Due to DNO Issues (Category A)

{
  "job_details": {
    "job_id": "JOB123463",
    "mpan": "1234567890130",
    "supplier_mpid": "SUPP",
    "energisation_status": true,
    "property_owner_name": "Mike Brown",
    "amo_consumer_category": "CAT2"
  },
  "contact": {
    "address": "505 Test Lane, Town",
    "post_code": "WX67 8YZ",
    "customer_name": "Nancy Pink",
    "customer_telephone": "07654321098",
    "no_booking_card_needed": true
  },
  "site_assessment": {
    "no_personal_risks": false,
    "meter_access_clear": true,
    "suitable_environment": false,
    "suitable_heights": true,
    "engineer_competent": true,
    "safety_hazards": true,
    "hazard_description": "Exposed live wires near meter location"
  },
  "job_preparation": {
    "existing_vulnerabilities": false,
    "vulnerabilities_identified": true,
    "sip_ani_medical": false,
    "sip_ani_tpp": false,
    "owner_consent": true,
    "key_holder": false,
    "customer_password": false
  },
  "safety_checks": {
    "checks_passed": false,
    "no_category_ea_issues": false,
    "no_category_eb_issues": true,
    "no_category_ec_issues": true,
    "dno_code": "A",
    "dno_comment": "Immediate danger detected: exposed live wires near meter",
    "metering_equipment_issues": true,
    "no_environmental_damage": true,
    "no_physical_damage": false,
    "no_leakage_smells": true
  },
  "meter": {
    "serial_number": "MET357902",
    "location": "Outside",
    "smart_meter": false,
    "register_id": "08",
    "current_reading": 78901,
    "new_reading": null,
    "unexpected_reading": false,
    "reading_photo": "base64_encoded_photo_data"
  },
  "meter_fault": null,
  "tamper": {
    "tampering_detected": false,
    "tampering_code": null,
    "evidence_photo": null,
    "tamper_report_date": null
  },
  "job_execution": {
    "pre_removal_photo": "base64_encoded_photo_data",
    "site_de_energised": false,
    "de_energisation_time": null,
    "site_re_energised": false,
    "re_energisation_time": null,
    "fuse_resealed": false,
    "isolator_fitted": false,
    "failure_reason": "Category A DNO issue: immediate danger detected",
    "post_resealing_photo": null,
    "meter_reading_photo": "base64_encoded_photo_data",
    "meter_serial_photo": "base64_encoded_photo_data",
    "additional_information": "Job aborted due to Category A DNO issue. SFIC contacted immediately.",
    "polarity_test_passed": null
  },
  "job_completion": {
    "proceed": false,
    "site_visit_check_code": "50",
    "property_demolished": false,
    "additional_info": "Job aborted due to Category A DNO issue posing immediate danger. SFIC notified.",
    "failure_reason_code": "02"
  }
}

Responses

Success Response

{
  "status": "success",
  "message": "Data has been successfully processed."
}

Error Response

{
  "status": "error",
  "message": "Validation failed",
  "errors": [
    {
      "field": "field_name",
      "error": "Error description"
    }
  ]
}

Scenario 9: Job Aborted Due to DNO Issues (Category B)

{
  "job_details": {
    "job_id": "JOB123464",
    "mpan": "1234567890131",
    "supplier_mpid": "SUPP",
    "energisation_status": true,
    "property_owner_name": "Oscar Grey",
    "amo_consumer_category": "CAT1"
  },
  "contact": {
    "address": "606 Sample Close, City",
    "post_code": "AB12 3CD",
    "customer_name": "Patricia White",
    "customer_telephone": "07890123456",
    "no_booking_card_needed": true
  },
  "site_assessment": {
    "no_personal_risks": true,
    "meter_access_clear": true,
    "suitable_environment": false,
    "suitable_heights": true,
    "engineer_competent": true,
    "safety_hazards": true,
    "hazard_description": "Deteriorated wiring insulation near meter"
  },
  "job_preparation": {
    "existing_vulnerabilities": false,
    "vulnerabilities_identified": true,
    "sip_ani_medical": false,
    "sip_ani_tpp": false,
    "owner_consent": true,
    "key_holder": false,
    "customer_password": false
  },
  "safety_checks": {
    "checks_passed": false,
    "no_category_ea_issues": true,
    "no_category_eb_issues": false,
    "no_category_ec_issues": true,
    "dno_code": "B",
    "dno_comment": "Hazardous condition: deteriorated wiring insulation near meter",
    "metering_equipment_issues": true,
    "no_environmental_damage": true,
    "no_physical_damage": false,
    "no_leakage_smells": true
  },
  "meter": {
    "serial_number": "MET468013",
    "location": "Kitchen",
    "smart_meter": true,
    "register_id": "09",
    "current_reading": 89012,
    "new_reading": null,
    "unexpected_reading": false,
    "reading_photo": "base64_encoded_photo_data"
  },
  "meter_fault": {
    "date_fault_suspected_detected": "2024-07-03",
    "failure_to_energise_reason_code": "02",
    "asset_condition_report_date": "2024-07-03",
    "asset_condition_code": "05",
    "equipment_warning_notice": true,
    "smart_not_restored": true,
    "smart_status_restored": false
  },
  "tamper": {
    "tampering_detected": false,
    "tampering_code": null,
    "evidence_photo": null,
    "tamper_report_date": null
  },
  "job_execution": {
    "pre_removal_photo": "base64_encoded_photo_data",
    "site_de_energised": false,
    "de_energisation_time": null,
    "site_re_energised": false,
    "re_energisation_time": null,
    "fuse_resealed": false,
    "isolator_fitted": false,
    "failure_reason": "Category B DNO issue: hazardous condition detected",
    "post_resealing_photo": null,
    "meter_reading_photo": "base64_encoded_photo_data",
    "meter_serial_photo": "base64_encoded_photo_data",
    "additional_information": "Job aborted due to Category B DNO issue. Site made safe and DNO notified via D0135 flow.",
    "polarity_test_passed": null
  },
  "job_completion": {
    "proceed": false,
    "site_visit_check_code": "51",
    "property_demolished": false,
    "additional_info": "Job aborted due to Category B DNO issue. Hazardous condition reported to DNO for immediate attention.",
    "failure_reason_code": "02"
  }
}

This scenario represents a situation where the job is aborted due to a Category B DNO issue. Key points of this scenario include:

  1. The site assessment reveals safety hazards, specifically deteriorated wiring insulation near the meter.
  2. Safety checks fail due to Category B issues (hazardous but not immediately dangerous).
  3. The DNO code is set to "B" with a corresponding comment explaining the hazardous condition.
  4. The job execution is halted before any de-energisation or isolator installation can occur.
  5. The meter fault section is filled out to report the condition of the metering equipment.
  6. The job completion section indicates that the job did not proceed, with a site visit check code of "51" (Category B Network Defect Reported).
  7. Additional information is provided to explain the situation and the actions taken (making the site safe and reporting to DNO).

This example demonstrates how the new API structure captures detailed information about the site condition, safety checks, and reasons for aborting the job, providing a comprehensive record of the engineer's assessment and actions taken in response to a Category B DNO issue.

Authentication

The SIP API uses API keys for authentication. Include the API key in the request headers for authentication:

Authorization: Bearer $SE_API_KEY

Making Requests

You can paste the command below into your terminal to run your first API request. Make sure to replace $SE_API_KEY with your secret API key.

curl <https://api.shocking.energy/v3/job-data> \\\\
-H "Content-Type: application/json" \\\\
-H "Authorization: Bearer $SE_API_KEY" \\\\
-d '{
  "job_details": {
    "job_id": "JOB123456",
    "outcome_code": "CO",
    "sip_id": "ABCD",
    "supplier_mpid": "SUP1",
    "mpan": "1234567890123",
    "date_of_action": "2024-06-24"
  },
  "contact": {
    "name": "John Doe",
    "telephone": "01234567890"
  },
  "additional_info": "Job completed successfully without any issues"
}'