Skip to main content
This page describes an end-to-end clearance workflow using the Ping.Vision API. Code examples are available in Python and cURL. The complete Python script is available for download at the bottom of the page. Reach for this workflow when one of the following is true:
  • You’re integrating an existing underwriting or clearance system with Ping.Vision end-to-end, not just pushing submissions in.
  • You need Ping to clear submissions against appetite and underwriting rules, and your system needs to react to the resulting status transitions.
  • You want preliminary Ping.Maps and data analytics available before the submission is accepted.
  • You need final data correction and enrichment to run after acceptance and feed back into your system.
For a simpler “submit a file and download the outputs” use case without clearance or status-driven branching, use Send and Track SOV Submission instead. This is a complete, working example demonstrating how an existing system can be integrated with Ping to use Ping for:
  1. Submission
  2. Preliminary Ping.Maps and data analytics
  3. Clearance against appetite and underwriting rules
  4. Acceptance, triggering final data correction and enrichment
Understanding the Workflow ArchitectureEach step is labeled as:
  • USER ACTION: Operations initiated by a broker, underwriter, or clearance team
  • PING: Operations handled by Ping’s team or automated backend processes
Note: In production, event polling (Step 3) runs as a background process watching all submissions for your team/division. This demo filters to a single submission for clarity.

0. Preamble

Import necessary libraries, set up authentication, and define helper functions for API calls and console output formatting.
clear_and_triage.py

1. List User Teams

Retrieve your team configuration including team_uuid, division_uuid, and workflow statuses. Use List User Teams to get team info and List Submission Statuses to map status names to UUIDs. Example code:
clear_and_triage.py
Example response (truncated):
JSON output

2. Create Submission

USER ACTION Upload a submission (e.g., email with SOV attachment) using Initiate New Submission. This kicks off the automated intake and clearance workflow. Example code:
clear_and_triage.py
Example response:
JSON output

3. Poll for Status Changes via List Submission Events

USER ACTION Poll List Submission Events to watch for SSC (status change) events and track submission progress through the workflow.
Production Architecture: This polling typically runs as a background process watching all submissions for your team/division. This demo filters to a single pingid for clarity.
Example code:
clear_and_triage.py
Example response (truncated):
JSON output

4. Change Submission Status

PING Advance the submission through workflow stages using Change Submission Status. The clearance team reviews for conflicts, then advances to “Cleared” and “Data Entry”. Example code:
clear_and_triage.py
Example response:
JSON output

5. Ping Prepares Data for Underwriting

PING Once in Data Entry, Ping’s AI and human-in-the-loop process immediately begins perfecting the SOV data by reviewing and correcting the extracted data, and finally certifying the submission. This triggers the transition to “Underwriting” status.
Demo Script Note: The Python demo script below simplifies this step for staging/testing by using Update Submission to set is_building_data_ready=True and auto-advance to Underwriting. In production, Ping’s certification process handles this transition.
Example code (demo only):
clear_and_triage.py

6. Wait for Underwriting Status

USER ACTION Poll List Submission Events to watch for the submission to move to “Underwriting” status after Ping completes certification. Example code:
clear_and_triage.py
Example response (truncated):
JSON output

7. Listen for Outputters Complete Event to Download Latest Outputs

USER ACTION Using the same event polling from Step 3, listen for OC (Outputters Complete) events via List Submission Events. When Ping finishes generating output files, an OC event is emitted containing download URLs for the final outputs. The event metadata includes the submission_status at the time of completion, which informs on how to handle the outputs. Example code:
clear_and_triage.py
Example response (truncated):
JSON output

8. Download Final Output Documents

USER ACTION Downloads are handled automatically by the OC event handler in Step 7. When the event poller receives an Outputters Complete event, it extracts the download URLs from the event metadata and saves each output file locally. Example code:
clear_and_triage.py
Example response:
Python output

Python Demo

                 Download Python Script here ||| Download Example Email here
clear_and_triage_api.py