Instructions for Municipalities Filing a Permit Using Application Programming Interface (API) (Option 3 Reporting Method)
IT third party systems like “IWorq” or “InspectWIz” can connect to the Wisconsin Department of Safety and Professional Services (DSPS) eSLA system for purposes of reporting issuance of UDC permits by using a Web Service. This method allows setting up an electronic transfer of permit data between IT systems. Below is the Web Services Description Language (WSDL) for the eSLA System.
Web Services Description Language (WSDL):
For the most up to date WSDL please click HERE. From the linked documentation, you can reference the availability of the web method “Submit:”
string Submit(string muniAccessKey, string permitData)
This web method takes two input parameters of literal/string data types and returns value of literal/string data type. Sample WSDL below.
<?xml version="1.0" encoding="UTF-8"?>
<!--File PermitUploaderFull.wsdl, application eSLA_API_ACT211-->
<wsdl:definitions name="PermitUploader" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:wsx="http://schemas.xmlsoap.org/ws/2004/09/mex" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy" xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl" xmlns:wsap="http://schemas.xmlsoap.org/ws/2004/08/addressing/policy" xmlns:wsam="http://www.w3.org/2007/05/addressing/metadata" xmlns:wsa10="http://www.w3.org/2005/08/addressing" xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing" xmlns:tns="http://tempuri.org/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:msc="http://schemas.microsoft.com/ws/2005/12/wsdl/contract" targetNamespace="http://tempuri.org/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"><wsdl:documentation><wsdl:appinfo source="WMQI_APPINFO"><MRWSDLAppInfo imported="true"><generatedXSD location="PermitUploaderFull_InlineSchema1.xsd"/><generatedXSD location="PermitUploaderFull_InlineSchema2.xsd"/><binding name="BasicHttpBinding_IPermitUploader" imported="true" originalBindingStyle="document" hasEncoding="false"/></MRWSDLAppInfo></wsdl:appinfo></wsdl:documentation><wsdl:types><xs:schema targetNamespace="http://tempuri.org/" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema"><xsd:include schemaLocation="https://dsps-act211permit-papi.us-e2.cloudhub.io/PermitUploader/BasicHttpBinding_IPermitUploader?wsdl"/></xs:schema><xs:schema xmlns:tns="http://schemas.microsoft.com/2003/10/Serialization/" targetNamespace="http://schemas.microsoft.com/2003/10/Serialization/" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema" attributeFormDefault="qualified"><xsd:include schemaLocation="https://dsps-act211permit-papi-uat.us-e2.cloudhub.io/PermitUploader/BasicHttpBinding_IPermitUploader?wsdl?xsd=xsd1"/></xs:schema></wsdl:types><wsdl:message name="IPermitUploader_Submit_InputMessage"><wsdl:part name="parameters" element="tns:Submit"/></wsdl:message><wsdl:message name="IPermitUploader_Submit_OutputMessage"><wsdl:part name="parameters" element="tns:SubmitResponse"/></wsdl:message><wsdl:portType name="IPermitUploader"><wsdl:operation name="Submit"><wsdl:input wsaw:Action="http://tempuri.org/IPermitUploader/Submit" message="tns:IPermitUploader_Submit_InputMessage"/><wsdl:output wsaw:Action="http://tempuri.org/IPermitUploader/SubmitResponse" message="tns:IPermitUploader_Submit_OutputMessage"/></wsdl:operation></wsdl:portType><wsdl:binding type="tns:IPermitUploader" name="BasicHttpBinding_IPermitUploader"><soap:binding transport="http://schemas.xmlsoap.org/soap/http"/><wsdl:operation name="Submit"><soap:operation style="document" soapAction="http://tempuri.org/IPermitUploader/Submit"/><wsdl:input><soap:body use="literal"/></wsdl:input><wsdl:output><soap:body use="literal"/></wsdl:output></wsdl:operation></wsdl:binding><wsdl:service name="PermitUploader"><wsdl:port name="BasicHttpBinding_IPermitUploader" binding="tns:BasicHttpBinding_IPermitUploader"><soap:address location="https://dsps-act211permit-papi.us-e2.cloudhub.io/PermitUploader/BasicHttpBinding_IPermitUploader?wsdl"/></wsdl:port></wsdl:service></wsdl:definitions>
NOTE: Per the W3C, the ampersand character (&) and the left angle bracket (<) must not appear in their literal form (except when used as markup delimiters) or within a comment, a processing instruction, or a CDATA section. If they are needed elsewhere, they must be escaped using either numeric character references or the strings " & " and " < " respectively. The right angle bracket (>) may be represented using the string " > ", and must, for compatibility, be escaped using either " > " or a character reference when it appears in the string " ]]> " in content, when that string is not marking the end of a CDATA section.
Input Parameters
All Date related fields should be formatted in a common date format: mm/dd/yyyy
If the Master Electrician credential information is for a Registered Master Electrician, use expiration date: 4/4/4000. Do not use the 4/4/4444 expiration date.
All Email related fields should be formatted in a common email format (i.e. email@email.com). If no e-mail is available, enter: na@email.com.
Do not use “N/A” for any required field denoted with (*).
MuniAccessKey is a unique identifier and will be given to the municipality upon finishing the onboarding process with DSPS.
PermitData is a “|” piped delimited literal/string of permit record. The following are the expected columns in the specified order (The fields in Red marked with (*) are required in a permit upload attempt):
Number | Field |
1 | Application No. |
2 | Parcel No. |
3 | Permit Requested (1=Constr, 2=HVAC, 3=Electric, 4=Plumbing) (*) |
4 | Owner's Name (*) |
5 | Owner's Street Address (*) |
6 | Owner's City (*) |
7 | Owner's Zip Code (*) |
8 | Owner's Email (*) |
9 | Owner's Telephone No. (Format: xxx-xxx-xxxx) (*) |
10 | Dwelling Contractor's Name (*) |
11 | Dwelling Contractor's License/Certification No. (*) |
12 | Dwelling Contractor's License/Certification No. Exp Date (Format: mm/dd/yyyy) (*) |
13 | Dwelling Contractor's Street Address (*) |
14 | Dwelling Contractor's City (*) |
15 | Dwelling Contractor's Zip code (*) |
16 | Dwelling Contractor's Telephone No. (Format: xxx-xxx-xxxx) (*) |
17 | Dwelling Contractor's Email (*) |
18 | Dwelling Contractor's Qualifier Name (*) |
19 | Dwelling Contractor Qualifier's License/Certification No. (*) |
20 | Dwelling Contractor Qualifier's License/Certification No. Exp Date (Format: mm/dd/yyyy) (*) |
21 | Dwelling Contractor Qualifier City (*) |
22 | Dwelling Contractor Qualifier Zip code (*) |
23 | Dwelling Contractor Qualifier Telephone No. (Format: xxx-xxx-xxxx) (*) |
24 | Dwelling Contractor Qualifier Email (*) |
25 | HVAC Name |
26 | HVAC License/Certification No. |
27 | HVAC License/Certification Exp Date (Format: mm/dd/yyyy) |
28 | HVAC Street Address |
29 | HVAC City |
30 | HVAC Zip code |
31 | HVAC Telephone No. (Format: xxx-xxx-xxxx) |
32 | HVAC Email |
33 | Electrical Name (*) |
34 | Electrical License/Certification No. (*) |
35 | Electrical License/Certification No. Exp Date (Format: mm/dd/yyyy) (*) |
36 | Electrical Street Address (*) |
37 | Electrical City (*) |
38 | Electrical Zip code (*) |
39 | Electrical Telephone No. (Format: xxx-xxx-xxxx) (*) |
40 | Electrical Email (*) |
41 | Master Electrician Name (*) |
42 | Master Electrician License/Certification No. (*) |
43 | Master Electrician License Expiration Date (Format: mm/dd/yyyy) (*) |
44 | Master Electrician Street Address (*) |
45 | Master Electrician City (*) |
46 | Master Electrician Zip code (5 digits) (*) |
47 | Master Electrician Telephone No. (Format: xxx-xxx-xxxx) (*) |
48 | Master Electrician Email (*) |
49 | Plumbing Name (*) |
50 | Plumbing License/Certification No. (*) |
51 | Plumbing License/Certification No. Exp Date (Format: mm/dd/yyyy) (*) |
52 | Plumbing Street Address (*) |
53 | Plumbing City (*) |
54 | Plumbing Zip code (*) |
55 | Plumbing Telephone No. (Format: xxx-xxx-xxxx) (*) |
56 | Plumbing Email (*) |
57 | Project Location Lot Area (Sq. ft.) (Only numbers allowed) |
58 | One acre or more of soil will be disturbed (0=No, 1=Yes) |
59 | Town/Village/City (1=Town, 2=Village, 3=City) TYPE (*) |
60 | Town/Village/City NAME (*) |
61 | 1/4, 1/4, of Section , TN, R_E/W |
62 | Building Street Address |
63 | Building City |
64 | Building Zip code |
65 | County |
66 | Subdivision Name |
67 | Lot No. |
68 | Block. No |
69 | Zoning District(s) |
70 | Zoning Permit No. |
71 | Setbacks: Front (ft.) |
72 | Setbacks: Rear (ft.) |
73 | Setbacks: Left (ft.) |
74 | Setbacks: Right (ft.) |
75 | Project (1=New, 2=Alteration, 3=Addition, 4=Repair, 5=Raze, 6=Move) (if New (1), no other project should be entered)(*) |
76 | Unfin. Bsmt Unit 1 |
77 | Unfin. Bsmt Unit 2 |
78 | Unfin. Bsmt Total |
79 | Living Area Unit 1 |
80 | Living Area Unit 2 |
81 | Living Area Total |
82 | Garage Unit 1 |
83 | Garage Unit 2 |
84 | Garage Total |
85 | Deck/Porch Unit 1 |
86 | Deck/Porch Unit 2 |
87 | Deck/Porch Total |
88 | Totals Unit 1 |
89 | Totals Unit 2 |
90 | Totals All |
91 | Occupancy (1=Single Family, 2=Two Family, 3=Garage, 4=Other) |
92 | Construction Type (1=Site Built, 2=Mfd. Per WI UDC, 3=Mfd. Per US HUD) |
93 | Stories (1=1-Story, 2=2-Story, 3=Plus Basement, 4=Other) |
94 | Electric Panel Amps |
95 | Electric (1=Underground, 2=Overhead) |
96 | Walls (1=Wood Frame, 2=Steel, 3=ICF, 4=Timber/Pole, 5=Other) |
97 | Use (1=Seasonal, 2=Permanent, 3=Other) |
98 | HVAC Equipment (1=Furnace, 2=Radiant Basebd, 3=Heat Pump, 4=Boiler, 5=Central AC, 6=Fireplace, 7=Other) |
99 | Sewer (1=Municipal, 2=Sanitary Permit) |
100 | Sanitary Permit Number |
101 | Water(1=Municipal, 2=On-Site Well) |
102 | Nat Gas Space Htg (Yes or No) |
103 | Nat Gas Water Htg (Yes or No) |
104 | LP Space Htg (Yes or No) |
105 | LP Water Htg (Yes or No) |
106 | Oil Space Htg (Yes or No) |
107 | Oil Water Htg (Yes or No) |
108 | Electric Space Htg (Yes or No) |
109 | Electric Water Htg (Yes or No) |
110 | Solid Space Htg (Yes or No) |
111 | Solid Water Htg (Yes or No) |
112 | Solar Geo Space Htg (Yes or No) |
113 | Solar Geo Water Htg (Yes or No) |
114 | Heat Loss (BTU/HR Total Calculated) (Only numbers allowed) |
115 | Est. Building Cost without Land ($) (Only numbers allowed) |
116 | Applicant Name (*) |
117 | Applicant Sign Date |
118 | Applicant is Owner-Occupier (0=No, 1=Yes) |
119 | Approval Condition Remark |
120 | Issuing Jurisdiction: Town/Village/City/County/State (1=Town, 2=Village, 3=City, 4=County, 5=State) TYPE (*) |
121 | Issuing Jurisdiction: Town/Village/City/County/State NAME (*) |
122 | State-Contracted Inspection Agency#: |
123 | Municipality Number of Dwelling Location (*) |
124 | Plan Review Fee ($) |
125 | Inspection Fee ($) |
126 | WI Permit Seal Fee ($) |
127 | Other Fee ($) |
128 | Total Fees ($) |
129 | Permits Issued (1=Construction, 2=HVAC, 3=Electrical, 4=Plumbing, 5=Erosion Control) |
130 | WI Permit Seal Number (Only numbers allowed)(*) |
131 | Permit Issued By: Name (*) |
132 | Permit Issued By: Date (Format mm-dd-yyyy) (*) |
133 | Permit Issued By: Telephone (Format: xxx-xxx-xxxx) |
134 | Permit Issued By: Certificate No. |
135 | Building Permit Number |
Validation Messages
Reason | Validation Message |
Success message | Permit Uploaded with Code: DIS-0000000 |
Captured during validation | Permit Type is required |
Captured during validation | Permit Type option 5 or 6 and Project Type option 7 are not allowed |
Captured during validation | Project Location Type and/or Name are required |
Captured during validation | Missing Permit Issuer Name and/or Date |
Captured during validation | Permit Issue Date has to be after Nov 2016 |
Captured during validation | Permit Issue Date cannot be in the future |
Captured during validation | Missing Wisconsin Permit Seal Number |
Captured during validation | Dwelling Contractor and Dwelling Contractor Qualifier information is required (Unless Applicant is Owner-Occupier) |
Captured during validation | Owner information required |
Captured during validation | Applicant Name required |
Captured during validation | Municipality Not Found |
Captured during validation | Municipality Number of Dwelling Location does not match |
Captured during validation | Municipality account type not authorized |
Captured during validation | Plumbing Contractor information is required (if Plumbing Permit is Requested) |
Captured during validation | Electrical Contractor and Master Electrician information is required (if Electrical Permit is Requested and Project Type is New) |
Captured during validation | Incorrect date format provided |
Captured during validation | Missing mandatory information |
Integration execution issue / Unhandled exception | Integration failed to retrieve the failure error, please contact the administrator for more details |
Output Parameter
Return Value is a “|” piped delimited literal/string indicating either a successful or failed transaction along with the details. In the case of:
Failed transfer attempt, “false” value in the first column is returned along with the detail message within the second column.
Successful transfer attempt, “true” value in the first column is returned along with the detail message within the second column.
Production Setup
For a production setup, an onboarding step is required with DSPS staff. Please contact the agency at DSPSSBUDCTech@wisconsin.gov and receive the MuniAccessKey for production environment.
Service URL:
Municipal Login URL:
https://esla.wi.gov/apex/municipalityloginportal
Verifying the Data Transfer
After submitting and approving/denying applications within your permitting system, login to the eSLA site.
In the Municipality Workspace, select municipality and enter assigned access code.
Add filters, otherwise select Search to search all permits. You should then see your submitted permits on this page.
Click Manage Permits link to view a permit’s specific information.
Verify permit information has been properly uploaded.