Polling Payment Response

As an alternative to webhook, which is based on sending notifications from InstaMed to an application, applications can receive real-time notifications by polling InstaMed about a specific transaction. This allows for real-time notification without requiring unsolicited messaging from an outside system that may be blocked by firewalls and security features. Using a token generated through an SSO session, an application can determine whether a transaction has been processed or updated.

Initiating a polling response is done by getting the status of the token and then getting the transaction details once the token is complete.

Get Token Status

  1. URL: https://online.instamed.com/Forms/WebServices/SSOService.asmx
  2. Method: GetSSOTokenStatus
  3. Logic:
    • After performing SSO and loading a page to the RelayStateURL, poll https://online.instamed.com/Forms/WebServices/SSOService.asmx every 10 seconds for up to 15 minutes (token expiration time limit)
    • While the token status = NEW, sleep for 10 seconds
    • If the taken status = EXPIRED, the SSO session expired before the transaction was completed
    • If the token status = complete, retrieve the payment details (see the following example)
  4. Polling can be implemented in javascript or client’s specific code.

Sample SOAP 1.1 request and response

Sample SOAP 1.2 request and response

Get Transaction Details

  • URL: https://online.instamed.com/payment/NVP.aspx

Example:

Request merchantID=6011000551245&storeID=001&terminalID=002&transactionAction=ViewReceipt&requestToken=false&allowPartialPayment=false&singleSignOnToken=NTJmY2Y5NmMtOTg2Yi00NDM0LTk2ZWYtZjc3OGE1OTVhN2Qz&
Response IsEMVVerifiedByPIN=false&isEMVTransaction=false&EMVCardEntryMode=Swiped&cardBrand=VISA&cardExpirationMonth=6&cardExpirationYear=2017&cardBINNumber=411111&cardHolderName= &lastFourDigits=1111&authorizationNumber=A3807B&responseCode=010&responseMessage=Partially Approved $1.00&transactionStatus=D&primaryTransactionID=0ca7530a86084b468fff132ab7f04491&authorizationText=I AGREE TO PAY THE ABOVE AMOUNT ACCORDING TO MY CARD HOLDER AGREEMENT.&transactionID=0ca7530a86084b468fff132ab7f04491&transactionDate=2016-01-15T20:37:21.5238539Z