Event Subscriptions

Document Event Subscriptions

There are two methods that are supported for notifying your application of these status change events: (1) HTTP POST, and (2) HTTP GET.

If using HTTP POST, data elements are sent via a standard HTTP(S) POST of urlencoded name value pairs as an “application/x-www-form-urlencoded” mime type. This is the same format used by standard HTTP form post actions, so most server side processors understand how to parse form posts.

For information about controlling event behavior, timeout settings, and retry configuration, see Webhook Configuration.

Common Data Elements

Below are common data elements that will be included in all Participants Event Subscriptions.

NameValue
TransIDThe TransID is a standard 10 digit ID used for a transaction as discussed elsewhere. Example: 1234567890
PartIDThe PartID is a standard 10 digit ID used for a participant as discussed elsewhere. Example: 1234567890
PartStatusThe PartStatus will be one of the following one-digit integer values:
  • 2 Pending
  • 4 Complete
  • 6 Email sent - Participant has been notified by email but is still in the Pending status. You will receive a notification every time an email notice is sent to the participant. So if there are three email notices sent, then you will receive three status update messages related to it. This value is only valid for PartStatus and SigStatus.
  • 7 Closed
  • 8 Cancelled
  • 9 Expired
TXStatusThe TXStatus will be one of the following one-digit integer values:
  • 2 Pending
  • 4 Complete
  • 7 Closed
  • 8 Cancelled
  • 9 Expired
  • 10 Voided
PartAccessTokenDEPRECATED
ps_securitytokenguid

Status Change

You can subscribe to Document status change events by adding a Workflow Action to the Document.

The data elements sent in the GET or POST are all the common data elements plus the following:

NameValue
EventTypedocument

If the Participant's CancelledTaskBehaviorType is set to AutomaticCancel or DisplayCancelOrSuspendOption and they cancel a transaction, the notification will be sent and the returned TXStatus and DocStatus values for the transaction will be 8. If the Participant's CancelledTaskBehavior is set to AutomaticSuspend, no notification will be sent because the status stays as a 2 which is the pending status. Likewise, if the Participant's CancelledTaskBehavior is set to DisplayCancelOrSuspend and they choose to only suspend their process after hitting the initial cancel button, no notification will be sent because the status stays in a 2 pending status.

document = new DocumentInsertModel()
           {
               ...
               WorkflowActions = new List<object>
                                 {
                                     new DocumentWorkflowActionModel()
                                     {
                                         Type = DocumentWorkflowActionModel.TypeEnum.SubscribeToStatusChangeNotificationsByPost,
                                         Data = "required-response-text=RECEIVED", // Note: timeout and retry parameters are now server-configured
                                         Url = "https://myapp.mydomain.com/statuslistener.php"
                                     }
                                 }
               ...
           }

A completed document from that uses the above code would see something like the following as the posted status notification values:

{
    "TransID": "1234567890",
    "DocID": "1234567890",
    "TXStatus": 2,
    "DocStatus": 4,
    "EventType": "document",
    "ps_securitytoken": "4bf44fb0-f695-40b5-821d-c22273e11c30"
}

Likewise, if the document was using a SubscribeToStatusChangeNotificationsByGet method type, the posted status notification value might look something like this:

https://myapp.mydomain.com/statuslistener.aspx?TransID=1234567890&DocID=1234567890&TXStatus=2&DocStatus=4EventType=document&ps_securitytoken=4bf44fb0-f695-40b5-821d-c22273e11c30

Skipped Document

You can subscribe to Skipped-Document events by adding a Workflow Action to the Document.

The data elements sent in the GET or POST are all the common data elements plus the following:

NameValue
PartIDThe PartID is a standard 10 digit ID used for a document as discussed elsewhere and is the participant ID for the participant that skipped the document.

Example: 1234567890
EventTypeskipped-document
document = new DocumentInsertModel()
           {
               ...
               WorkflowActions = new List<object>
                                 {
                                     new DocumentWorkflowActionModel()
                                     {
                                         Type = DocumentWorkflowActionModel.TypeEnum.SubscribeToSkippedDocumentNotificationsByPost, //or ...ByGet
                                         Data = "required-response-text=RECEIVED", // Note: timeout and retry parameters are now server-configured
                                         Url = "https://myapp.mydomain.com/statuslistener.php"
                                     }
                                 }
               ...
           }

A completed document from that uses the above code would see something like the following as the posted status notification values:

{
    "TransID": "1234567890",
    "DocID": "1234567890",
    "TXStatus": 2,
    "DocStatus": 4,
    "EventType": "skipped-document",
    "PartID": "1234567890",
    "ps_securitytoken": "4bf44fb0-f695-40b5-821d-c22273e11c30"
}

Likewise, if the document was using a SubscribeToSkippedDocumentNotificationsByGet method type, the posted status notification value might look something like this:

https://myapp.mydomain.com/statuslistener.aspx?TransID=1234567890&DocID=1234567890&TXStatus=2&DocStatus=4&EventType=skipped-document&PartID=1234567890&ps_securitytoken=4bf44fb0-f695-40b5-821d-c22273e11c30

Document Seal

You can subscribe to Document Seal events by adding a Workflow Action to the Document.

The data elements sent in the GET or POST are all the common data elements plus the following:

NameValue
EventTypedocument-seal
document = new DocumentInsertModel()
           {
               ...
               WorkflowActions = new List<object>
                                 {
                                     new DocumentWorkflowActionModel()
                                     {
                                         Type = DocumentWorkflowActionModel.TypeEnum.SubscribeToSealStatusNotificationsByPost,
                                         Data = "required-response-text=RECEIVED", // Note: timeout and retry parameters are now server-configured
                                         Url = "https://myapp.mydomain.com/statuslistener.php"
                                     }
                                 }
               ...
           }

A completed document from that uses the above code would see something like the following as the posted status notification values:

{
    "TransID": "1234567890",
    "DocID": "1234567890",
    "TXStatus": 2,
    "DocStatus": 4,
    "EventType": "document-seal",
    "ps_securitytoken": "4bf44fb0-f695-40b5-821d-c22273e11c30"
}

Likewise, if the document was using a SubscribeToSealStatusNotificationsByGet method type, the posted status notification value might look something like this:

https://myapp.mydomain.com/statuslistener.aspx?TransID=1234567890&DocID=1234567890&TXStatus=2&DocStatus=4EventType=document-seal&ps_securitytoken=4bf44fb0-f695-40b5-821d-c22273e11c30

Document Certification

WARNING Document Certification has been deprecated in v5.16+.

You can subscribe to Document Certification events by adding a Workflow Action to the Document.

The data elements sent in the GET or POST are all the common data elements plus the following:

NameValue
EventTypedocument-certify
document = new DocumentInsertModel()
           {
               ...
               WorkflowActions = new List<object>
                                 {
                                     new DocumentWorkflowActionModel()
                                     {
                                         Type = DocumentWorkflowActionModel.TypeEnum.SubscribeToCertifyStatusNotificationsByPost,
                                         Data = "required-response-text=RECEIVED", // Note: timeout and retry parameters are now server-configured
                                         Url = "https://myapp.mydomain.com/statuslistener.php"
                                     }
                                 }
               ...
           }

A completed document from that uses the above code would see something like the following as the posted status notification values:

{
    "TransID": "1234567890",
    "DocID": "1234567890",
    "TXStatus": 2,
    "DocStatus": 4,
    "EventType": "document-certify",
    "ps_securitytoken": "4bf44fb0-f695-40b5-821d-c22273e11c30"
}

Likewise, if the document was using a SubscribeToCertifyStatusNotificationsByGet method type, the posted status notification value might look something like this:

https://myapp.mydomain.com/statuslistener.aspx?TransID=1234567890&DocID=1234567890&TXStatus=2&DocStatus=4EventType=document-certify&ps_securitytoken=4bf44fb0-f695-40b5-821d-c22273e11c30