Outbound: Webhooks Archive Estimated reading: 5 minutes 220 views When a business processes is completed there are couple of options to send process products to your application. One way to do that is by using Archive webhook.Archive is a standard Post request that includes all the process data. Among other bits of data, it includes:Data from the submitted form Attachments that were added to the process Signed and locked PDF document Information regards the client and moreWhy do I need this?Archive webhook can be very useful when you need a resilient method to accept session product. Other methods, such as storage or SMTP are typically a-synchronous and not as much resilient as an API because it provides a real time acknowledge. This method also includes a fail over and alert mechanism.To add an archive webhook:follow Webhook guide to add new webhook. See below a guide for archive body request and expected response. See below Setting up an explicit archive connectorArchive request and responseThis is a description for Body request posted from Cellosign to your API.ElementWhat it’s for?EventObject that includes Event type: WHP_ARCHIVE and time stampSession This object includes complete details on the session(s). Since business process may include number of sessions, all the sessions that has been taken place with this process are listed here. Each session includes the following elements: “id”: session token“author”: User who created the session“reference”: aggregator ID for business process.“transaction_number”: ID for transaction that can be located in cellosign UI application“recipient”: full disclosure on where invitation and OTP were posted as well as, also in case of a workflow this will indicate the recipient id in the process and it’s convention name“submission_details”: Client browser details, IP, User agent and Geo location details when collected and applicable“labels”: This is a key value object in reference to values injected to labels. See API documentation for details“created_at”: Time this session created“submitted_at”: Time this session submitted by client“template”: Template id“integrations”: List of integrations that were executed in this sessionsignaturesArray of each signatures. For each signature element1. Field ID2. When signature pad was signed3. Signer details: id and convention4. Key/value labels that are attached to signature pad, if anydataList of all form elements , each form element includes:1. element id2. value3. element type4. visible on final pdf true or false5. page and coordinates [top,left, width, height]: these values represents the absolute position of the element on the PDF fileattachmentsList of attachments being collected throughout the process. each element on the list includes:1. Form element id2. Filename3. mime type4. Base64 string of the filesigned_documentSigned and locked PDF document. includes: file name, mime type [application/pdf] and base64 string of the file{ "event": { "type": "WHP_ARCHIVE", "timestamp": "2022-12-21T22:29:17.603248" }, "reference": "f51c66ba-d33a-4c59-b63a-aa270383fb9e", "sessions": [ { "id": "wSYqmI4xsE", "author": "john@example.com", "reference": "f51c66ba-d33a-4c59-b63a-aa270383fb9e", "process_id": "f51c66ba-d33a-4c59-b63a-aa270383fb9e", "process_number": 100, "transaction_number": 30, "recipient": { "id": 1, "name": "client", "otp_destination": { "address": "client@example.com", "type": "email", "provider": null, "status": "sent" }, "invitations": [ { "address": "client@example.com", "type": "email", "provider": null, "status": "sent" } ] }, "submission_details": { "ip": "127.0.0.1", "user_agent": "Best browser ever", "device": "mobile", "latitude": 33.196944, "longitude": 35.543705, "accuracy": 1000 }, "labels": { "CUSTOMER_TAG": "CUSTOMER_VALUE" }, "created_at": "2022-12-21T22:29:17.603287", "submitted_at": "2022-12-21T22:29:17.603290", "template": { "id": "9fa70d4ccea84262b1ed2308a07a3fb4" }, "integrations": [ { "id": "861c85ff-ba57-4679-8a63-c731d4e7b10b", "type": "EF_CLIENT_LOGGED_IN", "status": "success", "executed_at": "2022-12-21T22:29:17.603312", "payload": null, "error": null } ] } ], "signatures": [ { "id": "SIGNATURE1", "signed_at": "2022-12-21T22:29:17.603330", "signed_by": { "id": "1", "name": "client" }, "labels": { "SOME_TAG": "SOME_VALUE" } } ], "data": [ { "id": "SOMEFIELD1", "value": "SOMEVALUE1", "top": 65.91806722689076, "left": 8.194774346793352, "width": 28.8781512605042, "height": 2.048693586698337, "page": 1, "type": "text", "visible": true, "meta": {} }, { "id": "SOMEFIELD2", "value": "SOMEVALUE2", "top": 65.91806722689076, "left": 8.194774346793352, "width": 28.8781512605042, "height": 2.048693586698337, "page": 3, "type": "text", "visible": true, "meta": {} }, { "id": "SOMEFIELD3", "value": "SOMEVALUE3", "top": 65.91806722689076, "left": 8.194774346793352, "width": 28.8781512605042, "height": 2.048693586698337, "page": 0, "type": "select", "visible": true, "meta": {} }, { "id": "SOMEFIELD4", "value": "4a45b2df-f7bd-48bf-a2b4-b8405eb51194", "top": 65.91806722689076, "left": 8.194774346793352, "width": 28.8781512605042, "height": 2.048693586698337, "page": 0, "type": "payment", "visible": true, "meta": {} }, { "id": "SOMEFIELD5", "value": "32.001186,34.9413393", "top": 65.91806722689076, "left": 8.194774346793352, "width": 28.8781512605042, "height": 2.048693586698337, "page": 0, "type": "location", "visible": true, "meta": { "geocoder": "Arlozorov St 160, Tel Aviv-Yafo, Israel" } } ], "attachments": [ { "id": "ATTACHMENT_FIELD_ID", "filename": "SOMEFILENAME1.png", "mimetype": "image/png", "content": "BASE64 file content" } ], "payments": [ { "status": "success", "type": "verify_credit_card", "transaction_id": "4a45b2df-f7bd-48bf-a2b4-b8405eb51194", "session_id": "wSYqmI4xsE", "provider_transaction_reference": "4f33600c-34bf-4cb1-af3a-52237b1ecc5a", "provider_transaction_result": { "currency": "ILS", "card_mask": "458045******4580", "internal_transaction_id": "69703676", "club_code": "", "credit_company": "Visa", "club_id": "", "card_id": "1080131215624580", "session_cd": "414ecb3e88ac0148eaec9c5efbad68a8a3fb60674b4e5f92ec0c0d9a709d5039", "card_expiration": "0724", "card_brand": "Visa", "card_aquirer": "Alphacard", "total": "2100", "card_no": "xxxxxxxxxxxx4580", "life_style": "1", "cguid": "69796709", "auth_number": "1579133" }, "amount": 2100 } ], "signed_document": { "filename": "SIGNEDDOCUMENT.pdf", "mimetype": "application/pdf", "content": "BASE64 file content" } }Archive responseA response from the API should include:status: “0” for success or “-1” for an error . In case of an error, please provide enough details in “errordesc” key. In case of success you may response with reference or/and a url to any object/file. This can be convenient for tracking or debugging in case an issue is raised{ "status": "0", "document": { "reference": "1bbc36dd-6e6b-4ab2-bb97-4ee46627bcab", "public_link": "https://mystorage.example.com/1bbc36dd-6e6b-4ab2-bb97-4ee46627bcab" }, "errordesc": "" }{ "status": "-1", "document": null, "errordesc": "Something goes wrong" } Next - Outbound: Webhooks Field change