1 User web services specification
2 ===============================
4 Source: Provozní řád ISDS, version 2010-01-22, Pages 14–15
5 Source: Webové služby ISDS pro manipulaci s datovými zprávami,
6 version 2.6 (2010-01-18)
7 Source: Webové služby ISDS pro vyhledávání datových schránek,
8 version 2.7 (2009-12-18)
11 These services are intended for working with messages inside a box by
14 SOAP web services defined in: dm_operations.wsdl, dm_info.wsdl, db_search.wsdl
15 (Appendix 2 of Provozní řád ISDS)
17 Data types: dmBaseTypes.xsd (Appendix 1)
19 Documentation: DataMessage_ws.pdf, DBSearch_ws.pdf (Appendix 2)
21 List of SOAP requests follows. Those marked with asterisk DOES NOT MARK
22 noncommercial incoming messages as delivered.
29 Constraints: Client must be authenticated in Access Manager
32 Create and send a message
33 CreateMultipleMessage (*)
34 Create and send a message to multiple recipients
36 Download incoming message
38 Download incoming message with digital signature of ministery of interiors
39 SignedSentMessageDownload
40 Download outgoing message with digital signature of ministery of interiors
42 Void operation used to log in and to keep connection alive
49 Constraints: Client must be authenticated in Access Manager
52 Verify local copy of message with remote original stored in ISDS
53 MessageEnvelopeDownload
54 Download envelope of incoming message
55 MarkMessageAsDownloaded
58 Mark commercial message as accepted by recipient
60 Download infosheet about message post and delivery
62 Download infosheet about message post and delivery with signature of
63 ministery of interiors
64 GetListOfRecievedMessages
65 Download list of incoming messages
67 Download list of outgoing messages
76 Find boxes conforming to serch criteria
78 Return state of given box
84 Create and send a message.
86 Envelope of outgoing message must contain dbIDRecipient and dmAnnotation.
87 Other elements are optional (dmRecipientOrgUnit, dmRecipientOrgUnitNum,
88 dmSenderOrgUnit, dmSenderOrgUnitNum, dmToHands, dmPersonalDelivery,
89 dmAllowSubstDelivery, dmRecipientRefNumber, dmRecipientIdent,
90 dmSenderRefNumber, dmSenderIdent, dmLegalTitleLaw, dmLegalTitleYear,
91 dmLegalTitleSect, dmLegalTitlePar, dmLegalTitlePoint, dmOVM).
93 Constraints: Sender must have PRIVIL_CREATE_DM permission.
94 Constraints: Exactly one document in message must be main type.
95 Constraints: Total size of all documents must not be bigger than 10 MB.
97 Identifier of just sent message assigned by system is returned.
100 0000 Message sent successfully
101 Non-normative error codes:
102 1214 Document desciption is not a filename with acceptable file name
104 1214 Document description extension does not match document content
105 1214 Provided MIME type does not match document
106 2010 First document structure invalid
107 2032 Message does not carry any document
108 9005 Message not valid (probably)
110 In case of positive virus detection (processed after sending), infected
111 document is removed, message state is set to value 3 (from point of view of
112 recipient) and sender get new message originated by server.
115 CreateMultipleMessage (*)
116 =====================
118 Create and send a message to multiple recipients.
120 Input composes of nonempty list of recipients (maximal count is 50),
121 one envelope (different from envelope for CreateMessage, misses elements from
122 dmRecipient) and list of documents to send to all of them to each recipient.
124 Only dbIDRecipient and dmToHands are mandatory. Other dmRecipient childs are
128 CreateMultipleMessage
131 | | + dbIDRecipient – recipient box ID
132 | | + dmRecipientOrgUnit
133 | | + dmRecipientOrgUnitNum
134 | | + dmToHands – can be empty, but must not missing
138 | + <other elements, usually empty>: dmSenderOrgUnit, dmSenderOrgUnitNum,
139 | | dmAnnotation, dmRecipientRefNumber, dmSenderRefNumber,
140 | | dmRecipientIdent, dmSenderIdent, dmLegalTitleLaw,
141 | | dmLegalTitleYear, dmLegalTitleSect, dmLegalTitlePar,
142 | | dmLegalTitlePoint, dmPersonalDelivery, dmAllowSubstDelivery
146 ISDS outputs list of assigned message IDs (each copy gets independent ID),
147 list of sent status for each message ID and one cumulative status of
148 whole CreateMultipleMessage operation.
150 If operation failes before replicating messages for each recipient
151 (i.e. sending), global error code will be non-zero. If operation fails on some
152 message copies (i.e. while sending) special global error code 0004 will be
153 returned and errornous recipients can be gather by recipient specific error
154 code (failed ones will have non-zero code). If all messages are sent
155 successfully, global error code will be 0000.
158 CreateMultipleMessageResponse
161 | | + dmID – assigned message ID, optional, missing if error occured
162 | | + dmStatus – message local error code and textual desciption
165 + dmStatus – global error code and textual description
168 0000 Messages sent successfully
169 0004 Some message failed while sending
175 Retrieve incoming message identified by message ID.
177 Commercial message must be accepted manually by ConfirmDelivery before.
178 Commetcial message has set dmReturnedMessage/@dmType="K".
181 0000 Message sent successfully
182 Non-normative error codes:
183 1219 Message with ID does not exist in ISDS in current box.
186 SignedMessageDownload
187 =====================
189 Download incoming message with digital signature of ministery of interiors
190 identified by message ID.
192 Return PKCS#7 structure containing data as defined in MessageDownload and
193 digital signature of the message by ministery.
195 The data are XML document with mangled ISDS name space:
196 http://isds.czechpoint.cz/v20/ vs. http://isds.czechpoint.cz/v20/message:
198 <q:MessageDownloadResponse
199 xmlns:q="http://isds.czechpoint.cz/v20/message">
200 <q:dmReturnedMessage>
201 <p:dmDm xmlns:p="http://isds.czechpoint.cz/v20">
202 <p:dmID>151916</p:dmID>
205 <q:dmHash algorithm="SHA-1">...</q:dmHash>
207 <q:dmAttachmentSize>260</q:dmAttachmentSize>
208 </q:dmReturnedMessage>
209 </q:MessageDownloadResponse>
211 Commercial message must be accepted manually by ConfirmDelivery before.
214 SignedSentMessageDownload
215 =========================
217 Download outgoing message with digital signature of ministery of interiors
220 Return PKCS#7 structure containing data as defined in MessageDownload and
221 digital signature of the message by ministery.
223 The data are XML document with mangled ISDS name space:
224 http://isds.czechpoint.cz/v20/ vs. http://isds.czechpoint.cz/v20/SentMessage:
226 <q:MessageDownloadResponse
227 xmlns:q="http://isds.czechpoint.cz/v20/SentMessage">
228 <q:dmReturnedMessage>
229 <p:dmDm xmlns:p="http://isds.czechpoint.cz/v20">
230 <p:dmID>151916</p:dmID>
233 <q:dmHash algorithm="SHA-1">...</q:dmHash>
235 <q:dmAttachmentSize>260</q:dmAttachmentSize>
236 </q:dmReturnedMessage>
237 </q:MessageDownloadResponse>
240 GetListOfRecievedMessages
241 =========================
243 Download list of incoming messages matching search criteria.
245 See GetListOfSentMessages for more details.
248 GetListOfSentMessages
249 =====================
251 Download list of outgoing messages matching search criteria.
253 Criteria are: delivery time not before, not after, organisation unit number of
254 sender, message status filter, offset of first message in a list and limit on
255 number of messages to get.
257 Message status filter is union of distinct message states expressed as
258 exponents of 2. Effectively it's a polynom \sum_{x \in message_statux} 2^x.
259 Special value -1 means all messages. Meaning for value 1 or 0 is undefined.
261 Messages are sorted in order of delivery time. Message type is stored in
264 Offset starts on 1. Limit defaults to 1000.
266 Non-normative error codes:
267 2017 Syntax error in date-time
273 Retrieve message hash (dmHash element) for given message from ISDS.
275 Works for not yet deleted messages only.
277 Only SHA-1 algorithm is in use currently. SHA-2 family is expected after
280 Hash input is isds:dmDM subtree procesed as raw bit stream without XML
281 canonicalization. Authoritative isds:dmDM element can be get via
282 MessageDownload service. God bless ISDS developers to not change XML
285 Non-normative error codes:
286 1219 Message with ID does not exist in ISDS.
289 MessageEnvelopeDownload
290 =======================
292 Download envelope of incoming message. That is message without documents.
293 Message type is stored in dmReturnedMessageEnvelope/@dmType.
295 Returend hash and timestamp are computed from whole message. You must get
296 complete message inluding documents to be able to verify them.
299 MarkMessageAsDownloaded
300 =======================
302 Change status of a message identidied by its ID as read.
304 That means next GetListOfRecievedMessages service can exclude such message if
305 only unread messages requested.
311 Mark commercial message as accepted by recipient.
313 Changes message state from delivered (4) to accepted (6). Appliable only to
314 commercial messages. Messages from public offices (municipalities, government
315 etc.) are accepted automatically by login on interactive web portal or by
316 triggering most of SOAP operations.
318 Must be called before downloading (signed or unsigned) incoming message
319 [Signed]MessageDownload.
325 Download infosheet about incoming or outgoing message post and delivery or
326 deliver impossibility. The message is specified by message ID.
328 It returns complete message envelope, hash, timestamp. Delivery time and
329 acceptance time only if message has been delivered to recipient box or
330 accepted by recipient. Precise status of message is returned too.
332 In addition, non-empty list of events is attached. Each event compounds of
333 ISO time and text description. The text description has well-known prefix to
334 distinguishe the event meaning. Following prefixes are defined:
337 -----------------------------------------------------
338 EV1: Message has been accepted by recipient action
339 EV2: Message has been delivered to box and is considered as accepted by
340 no-user-action time out (through fiction)
341 EV3: Recipient box has been made unaccessible retrospectively
342 (even after successful delivery or acceptance,
343 this event is retroactive). In this case special system-generated
344 message is sent to sender in addition.
345 EV4: Commercial message has been accepted by recipient confirmation
348 GetSignedDeliveryInfo
349 =====================
351 Download infosheet about incoming or outgoing message post and delivery or
352 deliver impossibility as signed PKCS#7 structure. See GetDeliveryInfo for
353 details about returned data.
355 The PKCS#7 structure carries digital signature made by ministery of interiours.
357 There is mangled namespace again: http://isds.czechpoint.cz/v20/ vs.
358 http://isds.czechpoint.cz/v20/delivery:
360 <q:GetDeliveryInfoResponse xmlns:q="http://isds.czechpoint.cz/v20/delivery">
362 <p:dmDm xmlns:p="http://isds.czechpoint.cz/v20">
363 <p:dmID>170272</p:dmID>
366 <q:dmHash algorithm="SHA-1">...</q:dmHash>
368 </q:dmEvents>...</q:dmEvents>
370 </q:GetDeliveryInfoResponse>
376 Find boxes conforming to serch criteria or exact ID and returns corresponding
377 (possibly truncated) list of boxes.
379 Returned boxes exist, but it does not mean they can recieve messages. Use
380 CheckDataBox to figure out.
382 There are three different search cases distinguished in this order:
384 – If dbID is filled in request, will search only for exact box, other
385 criteria will be ignored.
387 – If identifier and registryCode are filled, will search only for exact
388 box, other criteria will be ignored.
390 – Otherwise search against other criteria.
392 Returns list of boxes (possibly empty).
394 List can be truncated or search request refused because of not enought
395 specific criteria to protect user privacy. There are following contrains
396 differentiated by box type now:
398 Gross Box type Constraints (requried search criteria)
399 ------------------------------------------------------
400 FO pnLastName or pnLastNameAtBirth
401 PFO ic or pnLastName or pnLastNameAtBirth
402 PO ic or prefix (at least 3 characters) of firmName
403 OVM ic or prefix of firmName
405 String search criteria are matched case insensitive.
407 Search results depends or logged-in user type. Users of boxes with open
408 addressing can search other open-addressing boxes, otherwise only OVM type
409 boxes can be searched. Search based on exact box identifier finder unlimited.
412 0002 No box suits to search request (by other criteria)
413 0003 To much boxes suit to search request (by other criteria),
414 response truncated. Returned list of boxes is still valid.
415 5001 No such box exists (by box ID or registry identifier)
416 Non-normative error codes:
417 1101 Box type (dbType) must be specified
418 2017 Syntax error in date (biDate)
424 Return state of one box identified by dbID.
426 State of the box is stored in dbStatus element. Only state 1 means box is
427 capable of receiving messages.
430 5001 Box does not exist
432 2011 Box ID malformed