XML Format Details
XML format is a computer readable format that works great with inserting the ticket data into a database or ticket management system but is not at all human readable. XML is available via REST Web hook or via email delivery.
The XML format contains all the fields of the current plain text format plus all of the additional lat/long coordinates for the actual location of the job site. For a complete list of fields please make sure to see the current plain text documentation.
What is a Web Hook?
A web hook is an Application Programming Interface (API) that servers use to make a connection to a remote server and pass either commands or data. Our web hook will connect to your servers and deliver the ticket data when the ticket is issued.
NOTE
We recommend members use JSON for web hooks unless they are currently using XML already.
What are the requirements to use the Web Hook?
The member receiving the ticket must set up an API endpoint that will accept a request from DigAlert's servers with the "Content-Type: text/xml" allowed
The length of the URL for the API endpoint (not including the http:// or https://) must not exceed 128 characters
The API endpoint MUST provide a response within 3 seconds, otherwise the request will be treated as failed and will be retried again
In order for the DigAlert ticket, message, end of day, etc to be marked as received by the API endpoint (delivered), it MUST return a 200 level HTTP status code. All other codes or incomplete responses will be treated as failed and will be retried again.
The response should follow HTTP specification RFC 2616 and must be in the following format "HTTP/1.1 SSS description CR-LF" where SSS is the 3 digit status code and CF-LF is a line break consisting of the ASCII carriage return and line dees characters. There is no white space before the "CR-LF" but it is shown that way for readability only in this documentation.
After the status line any headers should be sent. If no headers are sent another CR-LF must be sent after the status line. The headers must end with two CR-LF pairs.
A response body is not required. However, if there is an error in the receiving API. it should send back an error message either as plain text or as a XML object with a “message” property. Alternatively, a custom description can be used following the status code on the first response line.
For plain text, there should be a header of “Content-Type: text/plain” or no content-type header
For XML, there must be a header of “Content-Type: text/xml”
What are the differences between inline email and email attachments?
Inline emails displays the text (XML) within the body of the email directly and the email doesn't contain any attachments. Whereas with email attachments the body of the email is empty and the email will show an attachment.
XML Samples
NOTE
Broadcast messages deliver as plain text for XML format users.
NEW Ticket
<?xml version="1.0"?>
<NewDataSet>
<delivery>
<format_version>1.05.01.8</format_version>
<center>USASA</center>
<recipient>MBRCD01</recipient>
<transmission_type>TKT</transmission_type>
<transmitted>2024-03-28T22:42:02</transmitted>
<seq_num>6</seq_num>
<ticket>A121231234</ticket>
<revision>00A</revision>
</delivery>
<tickets>
<ticket>A240880017</ticket>
<revision>00A</revision>
<created>2024-03-28T06:37:02</created>
<account>CSR01</account>
<channel>200</channel>
<work_date>2024-03-29T08:00:00</work_date>
<response_required>Y</response_required>
<response_due>2024-04-02T17:01:00</response_due>
<replace_by_date>2024-04-25T23:59:59</replace_by_date>
<expires>2024-04-25T23:59:59</expires>
<one_year>N</one_year>
<priority>SHRT</priority>
<type>NEW</type>
<category>LREQ</category>
<lookup>POLY</lookup>
<state>CA</state>
<county>LOS ANGELES</county>
<place>CARSON</place>
<work_area_zip_codes>12345</work_area_zip_codes>
<st_from_address>12345</st_from_address>
<st_to_address>12345</st_to_address>
<street>MAIN ST</street>
<cross1>1ST ST</cross1>
<cross2>2ND ST</cross2>
<caller_gps>
<coordinate>
<latitude>12.123456</latitude>
<longitude>-123.123456</longitude>
</coordinate>
</caller_gps>
<polygon>
<coordinate>
<latitude>12.123456</latitude>
<longitude>-123.123456</longitude>
</coordinate>
<coordinate>
<latitude>12.123456</latitude>
<longitude>-123.123456</longitude>
</coordinate>
<coordinate>
<latitude>12.123456</latitude>
<longitude>-123.123456</longitude>
</coordinate>
<coordinate>
<latitude>12.123456</latitude>
<longitude>-123.123456</longitude>
</coordinate>
<coordinate>
<latitude>12.123456</latitude>
<longitude>-123.123456</longitude>
</coordinate>
<coordinate>
<latitude>12.123456</latitude>
<longitude>-123.123456</longitude>
</coordinate>
<coordinate>
<latitude>12.123456</latitude>
<longitude>-123.123456</longitude>
</coordinate>
<coordinate>
<latitude>12.123456</latitude>
<longitude>-123.123456</longitude>
</coordinate>
<coordinate>
<latitude>12.123456</latitude>
<longitude>-123.123456</longitude>
</coordinate>
<coordinate>
<latitude>12.123456</latitude>
<longitude>-123.123456</longitude>
</coordinate>
<coordinate>
<latitude>12.123456</latitude>
<longitude>-123.123456</longitude>
</coordinate>
<coordinate>
<latitude>12.123456</latitude>
<longitude>-123.123456</longitude>
</coordinate>
<coordinate>
<latitude>12.123456</latitude>
<longitude>-123.123456</longitude>
</coordinate>
<coordinate>
<latitude>12.123456</latitude>
<longitude>-123.123456</longitude>
</coordinate>
<coordinate>
<latitude>12.123456</latitude>
<longitude>-123.123456</longitude>
</coordinate>
<coordinate>
<latitude>12.123456</latitude>
<longitude>-123.123456</longitude>
</coordinate>
<coordinate>
<latitude>12.123456</latitude>
<longitude>-123.123456</longitude>
</coordinate>
<coordinate>
<latitude>12.123456</latitude>
<longitude>-123.123456</longitude>
</coordinate>
<coordinate>
<latitude>12.123456</latitude>
<longitude>-123.123456</longitude>
</coordinate>
</polygon>
<area_in_sqft>123456</area_in_sqft>
<area_in_miles>0.132456</area_in_miles>
<how_delineated>WHITEPAINT</how_delineated>
<excav_st_walk>N</excav_st_walk>
<work_type>REPAIR AND REPLACE SOMETHING</work_type>
<boring>N</boring>
<explosives>N</explosives>
<vacuum>N</vacuum>
<pavement_only>N</pavement_only>
<permit>123456789ABC</permit>
<work_order>AB123456</work_order>
<done_for>JOES RESTAURANT</done_for>
<project_id>12345</project_id>
<project_name>JOES PROJECT</project_name>
<name>ABC COMPANY</name>
<caller_type>CONT</caller_type>
<address1>123 MAIN ST</address1>
<city>SOMEWHERE</city>
<cstate>NY</cstate>
<zip>12345</zip>
<phone>1231231234</phone>
<caller>JIM SCHWILK</caller>
<caller_language>ENGLISH</caller_language>
<cell>1231231234</cell>
<email>JIM@DOMAIN.COM</email>
<contact>JAMES WINGATE</contact>
<contact_phone>1231231234</contact_phone>
<location xml:space="preserve">DOG IN YARD</location>
<memberlist>
<member>MBR001</member>
<member>MBR020</member>
<member>MBR039</member>
<member>LONGMBR058</member>
<member>MBR153</member>
<member>MBR172</member>
<member>MBR191</member>
<member>LONGMBR210</member>
<member>MBR324</member>
<member>MBR343</member>
<member>LONGMBR362</member>
<member>MBR077</member>
<member>MBR096</member>
<member>MBR115</member>
<member>LONGMBR134</member>
<member>MBR229</member>
<member>MBR248</member>
<member>MBR267</member>
<member>LONGMBR286</member>
<member>WBMWD</member>
</memberlist>
<map_url>https://somelink.doamin.com/linkinformationhereandthiscouldbealongstring</map_url>
<response_url>https://somelink.domain.com/eprlinkwithinformationthatislong</response_url>
<printable_text xml:space="preserve">
MBRCD01 00006Y USAS 03/28/24 22:42:02 A240880017-00A NEW SHRT POLY LREQ
Ticket: A240880017 Rev: 00A Created: 03/28/24 06:37 User: CSR01 Chan: 200
Work Start: 03/29/24 08:00 Legal Start: 04/02/24 17:01 Expires: 04/25/24 23:59
Response required: Y Priority: 1
Excavator Information
Company: ABC COMPANY
Co Addr: 123 MAIN ST
City : SOMEWHERE State: NY Zip: 12345
Created By: JIM SCHWILK Language: ENGLISH
Office Phone: 123-123-1234 x12345 SMS/Cell: 123-123-1234 Office Email: JIM@DOMAIN.COM
Site Contact: JAMES WINGATE
Site Phone: 123-123-1234 Site SMS/Cell: 123-123-1234
Site Email: JAMES@DOMAIN.COM
Excavation Area
State: CA County: LOS ANGELES Place: CARSON
Zip: 12345
Location: Address/Street: 12345 MAIN ST
: X/ST1: 1ST ST
:
: DOG IN YARD
Searchable Tags:
Job size: sq-feet: 123456 sq-miles: 0.123456
Delineated Method: WHITEPAINT
Work Type: REPAIR AND REPLACE SOMETHING
Work For : JOES RESTAURANT
Permit: 123456789ABC Job/Work order: AB123456
Project ID:
Project Name:
1 Year: N Boring: N Street/Sidewalk: Y Vacuum: Y Explosives: Y
Lat/Long
Center Generated (NAD83): 12.123456/-118.280453 33.844393/-118.279476
: 12.123456/-123.123456 12.123456/-123.123456 Excavator Provided:
Map link:
https://somelink.doamin.com/linkinformationhereandthiscouldbealongstring
Members:
MBR001 MBR020 MBR039 LONGMBR058 MBR153 MBR172
MBR191 LONGMBR210 MBR324 MBR343 LONGMBR362 MBR077
MBR096 MBR115 LONGMBR134 MBR229 MBR248 MBR267
LONGMBR286 WBMWD
(c) Copyright 2022 Underground Service Alert of Southern California.
All rights reserved.
</printable_text>
</tickets>
</NewDataSet>
End of Day (EOD)
<?xml version="1.0"?>
<NewDataSet>
<delivery>
<format_version>1.04.01.9</format_version>
<center>USASa</center>
<recipient>MBRCODE</recipient>
<transmission_type>SUM</transmission_type>
<transmitted>2022-08-02T16:03:08</transmitted>
</delivery>
<audit id="1">
<member>MBRCODE</member>
<seq_num>1</seq_num>
<ticket>A123456789</ticket>
<revision>00A</revision>
<delivered>2022-08-01T05:29:08</delivered>
</audit>
<audit id="2">
<member>MBRCODE</member>
<seq_num>2</seq_num>
<ticket>A123456789</ticket>
<revision>00A</revision>
<delivered>2022-08-01T05:53:47</delivered>
</audit>
<audit id="3">
<member>MBRCODE</member>
<seq_num>3</seq_num>
<ticket>A123456789</ticket>
<revision>00A</revision>
<delivered>2022-08-01T05:55:06</delivered>
</audit>
<audit id="4">
<member>MBRCODE</member>
<seq_num>4</seq_num>
<ticket>A123456789</ticket>
<revision>00A</revision>
<delivered>2022-08-01T05:56:26</delivered>
</audit>
<audit id="5">
<member>MBRCODE</member>
<seq_num>5</seq_num>
<ticket>A123456789</ticket>
<revision>00A</revision>
<delivered>2022-08-01T06:05:33</delivered>
</audit>
<audit id="6">
<member>MBRCODE</member>
<seq_num>6</seq_num>
<ticket>A123456789</ticket>
<revision>00A</revision>
<delivered>2022-08-01T06:06:06</delivered>
</audit>
<audit id="7">
<member>MBRCODE</member>
<seq_num>7</seq_num>
<ticket>A123456789</ticket>
<revision>00A</revision>
<delivered>2022-08-01T06:13:07</delivered>
</audit>
<audit id="8">
<member>MBRCODE</member>
<seq_num>8</seq_num>
<ticket>A123456789</ticket>
<revision>00A</revision>
<delivered>2022-08-01T06:27:52</delivered>
</audit>
<audit id="9">
<member>MBRCODE</member>
<seq_num>9</seq_num>
<ticket>A123456789</ticket>
<revision>00A</revision>
<delivered>2022-08-01T06:28:38</delivered>
</audit>
<audit id="10">
<member>MBRCODE</member>
<seq_num>10</seq_num>
<ticket>A123456789</ticket>
<revision>00A</revision>
<delivered>2022-08-01T06:29:46</delivered>
</audit>
<audit id="11">
<member>MBRCODE</member>
<seq_num>11</seq_num>
<ticket>A123456789</ticket>
<revision>00A</revision>
<delivered>2022-08-01T06:29:57</delivered>
</audit>
<audit id="12">
<member>MBRCODE</member>
<seq_num>12</seq_num>
<ticket>A123456789</ticket>
<revision>00A</revision>
<delivered>2022-08-01T06:32:13</delivered>
</audit>
<audit id="13">
<member>MBRCODE</member>
<seq_num>13</seq_num>
<ticket>A123456789</ticket>
<revision>00A</revision>
<delivered>2022-08-01T06:32:25</delivered>
</audit>
<audit id="14">
<member>MBRCODE</member>
<seq_num>14</seq_num>
<ticket>A123456789</ticket>
<revision>00A</revision>
<delivered>2022-08-01T06:34:07</delivered>
</audit>
<audit id="15">
<member>MBRCODE</member>
<seq_num>15</seq_num>
<ticket>A123456789</ticket>
<revision>00A</revision>
<delivered>2022-08-01T06:35:38</delivered>
</audit>
<audit id="16">
<member>MBRCODE</member>
<seq_num>16</seq_num>
<ticket>A123456789</ticket>
<revision>00A</revision>
<delivered>2022-08-01T06:37:21</delivered>
</audit>
<audit id="17">
<member>MBRCODE</member>
<seq_num>17</seq_num>
<ticket>A123456789</ticket>
<revision>00A</revision>
<delivered>2022-08-01T06:53:38</delivered>
</audit>
<audit id="18">
<member>MBRCODE</member>
<seq_num>18</seq_num>
<ticket>A123456789</ticket>
<revision>00A</revision>
<delivered>2022-08-01T06:54:36</delivered>
</audit>
<audit id="19">
<member>MBRCODE</member>
<seq_num>19</seq_num>
<ticket>A123456789</ticket>
<revision>02A</revision>
<delivered>2022-08-01T06:55:43</delivered>
</audit>
<audit id="20">
<member>MBRCODE</member>
<seq_num>20</seq_num>
<ticket>A123456789</ticket>
<revision>01A</revision>
<delivered>2022-08-01T07:00:41</delivered>
</audit>
<printable_text xml:space="preserve" >
MBRCODE *SUM*A USAS 08/02/22 16:03:08
*****************************************************************************
THIS IS YOUR DAILY AUDIT FOR 08/01/22. IF THERE ARE ANY DISCREPANCIES PLEASE
CALL 951-808-8100 AFTER 7AM AND PRESS # THEN 1 ONCE
THE MESSAGE STARTS. THANK YOU AND GOOD NIGHT.
*****************************************************************************
00001 A123456789-00A 05:29 EN 00002 A123456789-00A 05:53 SN
00003 A123456789-00A 05:55 N 00004 A123456789-00A 05:56 N
00005 A123456789-00A 06:05 EN 00006 A123456789-00A 06:06 N
00007 A123456789-00A 06:13 N 00008 A123456789-00A 06:27 N
00009 A123456789-00A 06:28 SN 00010 A123456789-00A 06:29 N
00011 A123456789-00A 06:29 N 00012 A123456789-00A 06:32 N
00013 A123456789-00A 06:32 EN 00014 A123456789-00A 06:34 EN
00015 A123456789-00A 06:35 EN 00016 A123456789-00A 06:37 EN
00017 A123456789-00A 06:53 N 00018 A123456789-00A 06:54 SN
00019 A123456789-02A 06:55 W 00020 A123456789-01A 07:00 A
------------------------
( ) NORMAL - 00014
(S) SHORT - 00002
(H) RUSH - 00003
(E) EMERGENCY - 00001
TOTAL - 00020
------------------------
(N) NEW - 00018
(A) AMENDMENT - 00001
(C) CANCEL - 00000
(X) DAMAGE/EXPOSE- 00000
(D) DESIGN - 00000
(K) RE-MARK - 00000
(W) RENEWAL - 00001
(P) NO RESPONSE - 00000
(*) RESENT - 00000
------------------------
</printable_text>
</NewDataSet>