Thanks for exploring out Visa Direct functionalities.
Below are the replies to your queries.
1. If our service gateway times out while calling Push Funds/Pull Funds API is there anyway to get the status of the submitted(but unknown status) transaction?
Yes. If your gateway connection terminated abrubtly due to any reason before receiving any response from Visa, what you can do is to to re-submit the same request with exact request payload values. Visa will send you a response with "StatusIdentifier" value if the initial transaction you submitted is still processing at Visa.
Otherwise it will send the transactionIdentifier.
By re-submitting the exact payload, it does not make duplicated the transaction. Instead it will only return the status of the initial request.
Alternatively you can use the Reports API to retrieve status of all the transactions you have submitted to Visa.
2. As per the GET API doc, it says need to pass "StatusIdentifier", is it same as RetrievalReferenceNumber sent in the POST API request?
No. Status identifier is a value returns by the Visa if the api call you make times out at the Visa end. It is not same as the RetrievalReferenceNumber.
Hope my answers helps. Please let us know if require further clarifications/information.