Event Subscriptions

Transaction 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.

Status Change

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

The data elements sent in the GET or POST are:

NameValue
TransIDThe TransID is a standard 10 digit ID used for a transaction as discussed elsewhere. Example: 1234567890
TXStatusThe TXStatus will be one of the following one-digit integer values:
  • 2 Pending
  • 4 Complete
  • 7 Closed
  • 8 Cancelled
  • 9 Expired
  • 10 Voided
EventTypetransaction
ps_securitytokenguid

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 value 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.

transaction = new TransactionCreateModel()
              {

                  ...

                  WorkflowActions = new List<object>
                                    {
                                        new TransactionWorkflowActionModel()
                                        {
                                            Type = TransactionWorkflowActionModel.TypeEnum.SubscribeToStatusChangeNotificationsByPost, //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 transaction from that uses the above code would see something like the following as the posted status notification values:

{
    "TransID": "1234567890",
    "TXStatus": 4,
    "EventType": "transaction",
    "ps_securitytoken": "4bf44fb0-f695-40b5-821d-c22273e11c30"
}

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

https://myapp.mydomain.com/statuslistener.aspx?TransID=1000123456&TXStatus=4&EventType=transaction&ps_securitytoken=4bf44fb0-f695-40b5-821d-c22273e11c30