How to Submit a Job ==================== The foundation of this API surrounds the submission of a job to Right Angle Engineering. This can be done by sending a POST request to /jobs with the request body containing the fields ``client_name`` and ``client_street_address`` in JSON format. So your request body would look something like this: .. code-block:: JSON { "client_name" : "Andrew Schwartz", "client_street_address" : "100 Test Way, Provo, UT, 84606" } Requesting Services ------------------- You will need to define the services requested for the job that you are submitting. If not specified, the default service for a job is PV Structural Letter (``pv_structural_letter``). Services are specified using the ``services_requested`` array in the request body. The array can contain one or more of the following service slugs: +----------------------------------+----------------------------------+ | Service | Service slug | +==================================+==================================+ | PV Structural Letter | pv_structural_letter | +----------------------------------+----------------------------------+ | PV CAD Design | pv_cad_design | +----------------------------------+----------------------------------+ | Structural Stamps (PE) | structural_stamps_pe | +----------------------------------+----------------------------------+ | Electrical Stamps (PE or EE) | electrical_stamps_pe_or_ee | +----------------------------------+----------------------------------+ | Ground Mount Structural Letter | ground_mount_structural_letter | +----------------------------------+----------------------------------+ | Post-Installation Letter | post_installation_letter | +----------------------------------+----------------------------------+ **Legacy slug compatibility** Older integrations may still send pre-rename slugs (for example ``structural_letter`` or ``cad_packet``). These are accepted and mapped automatically to the current slug. You do not need to update existing integrations immediately, but new work should prefer the current slugs. +----------------------------+----------------------------------+ | Legacy slug | Current slug | +============================+==================================+ | structural_letter | pv_structural_letter | | cad_packet | pv_cad_design | | structural_stamp | structural_stamps_pe | | electrical_stamp | electrical_stamps_pe_or_ee | | ground_mount_letter | ground_mount_structural_letter | | post_install_letter | post_installation_letter | | wet_stamp | physical_wet_stamp | | load_calculations | panel_load_calculation_report | | busbar_certification | busbar_capacity_certification | +----------------------------+----------------------------------+ For example, if you would like to request both PV CAD Design and a PV Structural Letter, you would use the following request body: .. code-block:: JSON { "client_name" : "Andrew Schwartz", "client_street_address" : "100 Test Way, Provo, UT, 84606", "services_requested": [ "pv_structural_letter", "pv_cad_design" ] } .. _submitting-service-specific-information: Submitting Service-Specific Information --------------------------------------- Each service provided will have different information requirements to be successfully processed. The more information that is provided, the less likely we will reach out to obtain missing information. Information can be submitted through a field in the request body when submitting a job through the :ref:`submit-job` endpoint or it may also be included in a file and attached to a job through the :ref:`submit-files` endpoint. If information can be submitted in the request body of the :ref:`submit-job` endpoint, the job can be processed more efficiently and the turn-around time of that job will be dramatically increased. Therefore, opt for submitting as much as possible in the request body when submitting a job. Here is a breakdown of the requirements for each service and how they should be submitted: Structural Evaluation Letter ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ **Requirements** * Roof Structural Information * Job Site Pictures * Overall attic space * Tape measure showing rafter beam size * Tape measure showing rafter beam spacing * Pictures of exterior of roof If CAD Design is not also requested: * Image of Solar Layout (either from CAD Packet or Proposal) **How to Submit** Roof Structural information is submitted in the request body of the Submit Job endpoint. See the :ref:`submit-job` endpoint for more information Job Site Pictures should be uploaded via the :ref:`submit-files` endpoint. This should be performed following the Submit Job endpoint, as the ID of the submitted job is needed for the Submit Job Files endpoint. Image of the Solar Layout should also be submitted using the :ref:`submit-files` endpoint CAD Design ^^^^^^^^^^ **Requirements** * Electrical System Information * Organization/Utility Specific Information * Structural Design Information (Rooftop or Ground Mount) * Job Site Pictures * Utility Meter * Main Breaker Panel (Image of Switches and Image of MSP Ratings; generally attached to door of main breaker panel) * Aerial photo (If not already available through satellite imagery) **How to Submit** CAD Design Requirements are submitted by including Electrical System Information, Structural Design Information, and Organization/Utility information through their relevant fields. These fields should be included in the request body of the Submit Job endpoint. See the :ref:`submit-job` endpoint for more information regarding these fields. All files should be submitted through the :ref:`submit-files` endpoint. This should be performed following the call to the :ref:`submit-job` endpoint, as the ID of the submitted job is needed for the Submit Job Files endpoint. CAD Stamps (Structural or Electrical) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ **Requirements** If the CAD Design is not provided by us we will also need: * Original CAD Design * Job Site Pictures * Overall attic space * Tape measure showing rafter beam size * Tape measure showing rafter beam spacing * Pictures of exterior of roof **How to Submit** Submit the job using :ref:`submit-job` endpoint. Once the job is submitted with the base information, then submit the required files through the :ref:`submit-files` endpoint. Important to note that file submission should be performed following the call to the :ref:`submit-job` endpoint, as the ID of the submitted job is needed for the Submit Job Files endpoint. Structural Ground Mount Letter ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ **Requirements** * Site-specific ground mount manufacturer engineering report (obtained from manufacturer) **How to Submit** Submit the job using :ref:`submit-job` endpoint. Once the job is submitted with the base information, then submit the required file through the :ref:`submit-files` endpoint. Important to note that file submission should be performed following the call to the :ref:`submit-job` endpoint, as the ID of the submitted job is needed for the Submit Job Files endpoint. Post-Install Letter ^^^^^^^^^^^^^^^^^^^ * Pictures/Video of Interior of Attic Space after panels are installed to ensure attachments are embedded in rafter and not just in the substructure * Picture/Video of torquing the attachments to manufacturer specifications Submit the job using :ref:`submit-job` endpoint. Once the job is submitted with the base information, then submit the required file through the :ref:`submit-files` endpoint. Important to note that file submission should be performed following the call to the :ref:`submit-job` endpoint, as the ID of the submitted job is needed for the Submit Job Files endpoint. Submitting a Job Draft ---------------------- You may want to configure your system to create a job in our system without having all information first. To accommodate this, we have implemented a method to submit a job as a Draft, and then add information to the Job through the Update Job endpoint. To submit a job as a draft you would include the ``status`` field with the value ``"Draft"``. So you would input: .. code-block:: JSON { "client_name" : "Draft Job", "client_street_address" : "100 Test Way, Provo, UT, 84606", "status": "Draft" } Fields can be added and the job can be submitted using the :ref:`update-job` endpoint by changing the ``status`` field with the value ``"Submitted"``