1 User web services specification
2 ===============================
4 Source: Provozní řád ISDS, version 2009-10-30, Pages 13–14
5 Source: Webové služby ISDS pro manipulaci s datovými zprávami,
6 version 2.1 (2009-10-30)
7 Source: Webové služby ISDS pro vyhledávání datových schránek,
12 These services are intended for working with messages inside a box by
15 SOAP web services defined in: dm_operations.wsdl, dm_info.wsdl, db_search.wsdl
16 (Appendix 2 of Provozní řád ISDS)
18 Data types: dmBaseTypes.xsd (Appendix 1)
20 Documentation: DataMessage_ws.pdf, DBSearch_ws.pdf (Appendix 2)
22 List of SOAP requests follows. Those marked with asterisk DOES NOT MARK
23 incoming messages as delivered.
30 Constraints: Client must be autenticated in Access Manager
33 Create and send a message
34 CreateMultipleMessage (*)
35 Create and send a message to multiple recipients
37 Download incoming message
39 Download incoming message with digital signature of ministery of interiors
40 SignedSentMessageDownload
41 Download outgoing message with digital signature of ministery of interiors
43 Void operation used to log in and to keep connection alive
50 Constraints: Client must be autenticated in Access Manager
53 Verify local copy of message with remote original stored in ISDS
54 MessageEnvelopeDownload
55 Download envelope of incoming message
56 MarkMessageAsDownloaded
59 Download infosheet about message post and delivery
61 Download infosheet about message post and delivery with signature of
62 ministery of interiors
63 GetListOfRecievedMessages
64 Download list of incoming messages
66 Download list of outgoing messages
75 Find boxes conforming to serch criteria
77 Return state of given box
84 Mark commercial message as accepted by recipient
90 Create and send a message.
92 Envelope of outgoing message must contain dbIDRecipient and dmAnnotation.
93 Other elements are optional (dmRecipientOrgUnit, dmRecipientOrgUnitNum,
94 dmSenderOrgUnit, dmSenderOrgUnitNum, dmToHands, dmPersonalDelivery,
95 dmAllowSubstDelivery, dmRecipientRefNumber, dmRecipientIdent,
96 dmSenderRefNumber, dmSenderIdent, dmLegalTitleLaw, dmLegalTitleYear,
97 dmLegalTitleSect, dmLegalTitlePar, dmLegalTitlePoint, dmOVM).
99 Constraints: Sender must have PRIVIL_CREATE_DM permission.
100 Constraints: Exactly one document in message must be main type.
101 Constraints: Total size of all documents must not be bigger than 10 MB.
103 Identifier of just sent message assigned by system is returned.
106 0000 Message sent successfully
107 Non-normative error codes:
108 1214 Document desciption is not a filename with acceptable file name
110 1214 Document description extension does not match document content
111 1214 Provided MIME type does not match document
112 2010 First document structure invalid
113 2032 Message does not carry any document
114 9005 Message not valid (probably)
116 In case of positive virus detection (processed after sending), infected
117 document is removed, message state is set to value 3 (from point of view of
118 recipient) and sender get new message originated by server.
121 CreateMultipleMessage (*)
122 =====================
124 Create and send a message to multiple recipients.
126 Input composes of nonempty list of recipients (maximal count is 50),
127 one envelope (different from envelope for CreateMessage, misses elements from
128 dmRecipient) and list of documents to send to all of them to each recipient.
130 Only dmRecipient and dmToHands are mandatory. Other dmRecipient childs are
134 CreateMultipleMessage
137 | | + dbIDRecipient – recipient box ID
138 | | + dmRecipientOrgUnit
139 | | + dmRecipientOrgUnitNum
140 | | + dmRecipientOrgUnitNum
141 | | + dmToHands – can be empty, but must not missing
145 | + <other elements, usually empty>: dmSenderOrgUnit, dmSenderOrgUnitNum,
146 | | dmAnnotation, dmRecipientRefNumber, dmSenderRefNumber,
147 | | dmRecipientIdent, dmSenderIdent, dmLegalTitleLaw,
148 | | dmLegalTitleYear, dmLegalTitleSect, dmLegalTitlePar,
149 | | dmLegalTitlePoint, dmPersonalDelivery, dmAllowSubstDelivery
153 ISDS outputs list of assigned message IDs (each copy gets independent ID),
154 list of sent status for each message ID and one cumulative status of
155 whole CreateMultipleMessage operation.
157 If operation failes before replicating messages for each recipient
158 (i.e. sending), global error code will be non-zero. If operation fails on some
159 message copies (i.e. while sending) special global error code 0004 will be
160 returned and errornous recipients can be gather by recipient specific error
161 code (failed ones will have non-zero code). If all messages are sent
162 successfully, global error code will be 0000.
165 CreateMultipleMessageResponse
168 | | + dmID – assigned message ID, optional, missing if error occured
169 | | + dmStatus – message local error code and textual desciption
172 + dmStatus – global error code and textual description
175 0000 Messages sent successfully
176 0004 Some message failed while sending
182 Retrieve incoming message identified by message ID.
184 Commercial message must be accepted manually by ConfirmDelivery before.
187 0000 Message sent successfully
188 Non-normative error codes:
189 1219 Message with ID does not exist in ISDS in current box.
192 SignedMessageDownload
193 =====================
195 Download incoming message with digital signature of ministery of interiors
196 identified by message ID.
198 Return PKCS#7 structure containing data as defined in MessageDownload and
199 digital signature of the message by ministery.
201 The data are XML document with mangled ISDS name space:
202 http://isds.czechpoint.cz/v20/ vs. http://isds.czechpoint.cz/v20/message:
204 <q:MessageDownloadResponse
205 xmlns:q="http://isds.czechpoint.cz/v20/message">
206 <q:dmReturnedMessage>
207 <p:dmDm xmlns:p="http://isds.czechpoint.cz/v20">
208 <p:dmID>151916</p:dmID>
211 <q:dmHash algorithm="SHA-1">...</q:dmHash>
213 <q:dmAttachmentSize>260</q:dmAttachmentSize>
214 </q:dmReturnedMessage>
215 </q:MessageDownloadResponse>
217 Commercial message must be accepted manually by ConfirmDelivery before.
220 SignedSentMessageDownload
221 =========================
223 Download outgoing message with digital signature of ministery of interiors
226 Return PKCS#7 structure containing data as defined in MessageDownload and
227 digital signature of the message by ministery.
229 The data are XML document with mangled ISDS name space:
230 http://isds.czechpoint.cz/v20/ vs. http://isds.czechpoint.cz/v20/SentMessage:
232 <q:MessageDownloadResponse
233 xmlns:q="http://isds.czechpoint.cz/v20/SentMessage">
234 <q:dmReturnedMessage>
235 <p:dmDm xmlns:p="http://isds.czechpoint.cz/v20">
236 <p:dmID>151916</p:dmID>
239 <q:dmHash algorithm="SHA-1">...</q:dmHash>
241 <q:dmAttachmentSize>260</q:dmAttachmentSize>
242 </q:dmReturnedMessage>
243 </q:MessageDownloadResponse>
246 GetListOfRecievedMessages
247 =========================
249 Download list of incoming messages matching search criteria.
251 See GetListOfSentMessages for more details.
254 GetListOfSentMessages
255 =====================
257 Download list of outgoing messages matching search criteria.
259 Non-normative error codes:
260 2017 Syntax error in date-time
266 Retrieve message hash (dmHash element) for given message from ISDS.
268 Works for not yet deleted messages only.
270 Only SHA-1 algorithm is in use currently. SHA-2 family is expected after
273 Hash input is isds:dmDM subtree procesed as raw bit stream without XML
274 canonicalization. Authoritative isds:dmDM element can be get via
275 MessageDownload service. God bless ISDS developers to not change XML
278 Non-normative error codes:
279 1219 Message with ID does not exist in ISDS.
282 MessageEnvelopeDownload
283 =======================
285 Download envelope of incoming message. That is message without documents.
287 Returend hash and timestamp are computed from whole message. You must get
288 complete message inluding documents to be able to verify them.
291 MarkMessageAsDownloaded
292 =======================
294 Change status of a message identidied by its ID as read.
296 That means next GetListOfRecievedMessages service can exclude such message if
297 only unread messages requested.
303 Download infosheet about incoming or outgoing message post and delivery or
304 deliver impossibility. The message is specified by message ID.
306 It returns complete message envelope, hash, timestamp. Delivery time and
307 acceptance time only if message has been delivered to recipient box or
308 accepted by recipient. Precise status of message is returned too.
310 In addition, non-empty list of events is attached. Each event compounds of
311 ISO time and text description. The text description has well-known prefix to
312 distinguishe the event meaning. Following prefixes are defined:
315 -----------------------------------------------------
316 EV1: Message has been accepted by recipient action
317 EV2: Message has been delivered to box and is considered as accepted by
318 no-user-action time out (through fiction)
319 EV3: Recipient box has been made unaccessible retrospectively
320 (even after successful delivery or acceptance,
321 this event is retroactive). In this case special system-generated
322 message is sent to sender in addition.
325 GetSignedDeliveryInfo
326 =====================
328 Download infosheet about incoming or outgoing message post and delivery or
329 deliver impossibility as signed PKCS#7 structure. See GetDeliveryInfo for
330 details about returned data.
332 The PKCS#7 structure carries digital signature made by ministery of interiours.
334 There is mangled namespace again: http://isds.czechpoint.cz/v20/ vs.
335 http://isds.czechpoint.cz/v20/delivery:
337 <q:GetDeliveryInfoResponse xmlns:q="http://isds.czechpoint.cz/v20/delivery">
339 <p:dmDm xmlns:p="http://isds.czechpoint.cz/v20">
340 <p:dmID>170272</p:dmID>
343 <q:dmHash algorithm="SHA-1">...</q:dmHash>
345 </q:dmEvents>...</q:dmEvents>
347 </q:GetDeliveryInfoResponse>
353 Find boxes conforming to serch criteria or exact ID and returns corresponding
354 (possibly truncated) list of boxes.
356 Returned boxes exist, but it does not mean they can recieve messages. Use
357 CheckDataBox to figure out.
359 If dbID filled in request, search only to exact box.
360 If identifier and registryCode filled, search only to exact box.
361 Otherwise search against other criteria.
363 Returns list of boxes (possibly empty).
366 0002 No box suits to search request (by other criteria)
367 0003 To much boxes suit to search request (by other criteria),
368 response truncated. Returned list of boxes is still valid.
369 5001 No such box exists (by box ID or registry identifier)
370 Non-normative error codes:
371 1101 Box type (dbType) must be specified
372 2017 Syntax error in date (biDate)
378 Return state of one box identified by dbID.
380 State of the box is stored in dbStatus element:
381 0 or empty Error occurred
383 2 Temporarily unaccesible
385 4 Permanently unaccesible
386 5 Box has been removed
388 Only state 1 means box is capable of receiving messages.
391 5001 Box does not exist
393 2011 Box ID malformed
399 Mark commercial message as accepted by recipient.
401 Changes message state from delivered (4) to accepted (6). Appliable only to
402 commercial messages. Messages from public offices (municipalities, government
403 etc.) are accepted automatically by login on interactive web portal or by
404 triggering most of SOAP operations.
406 Must be called before downloading (signed or unsigned) incoming message
407 [Signed]MessageDownload.