Invalid Hash When Initiating a RemoteTransaction


I am trying to initiate an Express Mobile transaction specifically ecocash. I am using postman for testing purposes and i am encountering the following error


Find attachd the code


Hi Mr_D
Lets try eliminate the obvious before we get to the sensitive stuff like id’s. What ever you are using to generate your Harsh try the text below

1201TEST REF99.99A test ticket transaction

Let me know if you get this



Thank you for the prompt response @Harvey . Yes i am getting 2A033FC38798D913D42ECB786B9B19645ADEDBDE788862032F1BD82CF3B92DEF84F316385D5B40DBB35F1A4FD7D5BFE73835174136463CDD48C9366B0749C689


Great so its not your hashing algorithm , I am going to download postman and try duplicate your error . While i do that I notice in your screenshot you used “form-data” option. I just read through this post “in postman, send your key value pairs in the body of the request as `x-www-form-urlencoded” . Try that and let me know .General Discussion - Java Integration.


Thanks @Harvey… Unfortunately i have encountered the same error



I have managed to duplicate your error . I m going to go into the source code and check two things
1.should the auth email be part of the harsh
2.The order of the values in the concatenated string.
Will get back to you soon


I have resolved the error on my end. A few pointers. It is expected that the last key-value pair in your request is the hash. Everything above it is used in generating the hash. In your case the steps would look like this

Step 1
reference:TEST REF
authemail:[email protected]

step 2 concatenate values as a string (note keys are not included)
ecocash0771111111xxxxTEST REF99.99[email protected]

step 3 append integration key
ecocash0771111111xxxxTEST REF99.99[email protected][intergration key]

step 4 - sha512 hash


Thank you Harvey. I have done what you said but still no joy on my side… Same Error


I hope you did not give up on me @Harvey:sweat_smile: . I am still stuck.


Hi there no I have not. I have been trying to figure out a way to share testing info , so far I am looking at Postman’s "share " feature. As a side note why are you not using the SDK’s?


While generating the hash, the order of concatenation of the values matters.
So when generating the hash for initiating mobile money transactions, the order should be:

[Integration ID]TEST REF99.99[email protected][Integration Key]


Continuing the discussion from Invalid Hash When Initiating a RemoteTransaction:

Thank you very much @Harvey… Without getting into details i will just say that my hands are tied, project constraints, therefore i can’t use any of the SDK’s.

I will be patiently waiting for your help.

Express Checkout | Error : Invalid Id

Thanks @lucia. Unfortunately, im still stuck…lol


Hi Mr_D lets give this one more try
Follow this link to import postman collection

Use this details to create a hash , change merchant id and secret

[merchant id]TEST REF99.99A test ticket transaction[email protected][secret key]


That’s a sign of victory… Thanks Harvey… Works like a charm in postman.


I love your persistence @Harvey:raised_hands:


@Harvey … Kindly explain what was wrong with my initial implementation. My goal is that i want to submit the request using Ajax post so i might also be haunted by my previous errors. How best can i perform an ajax post? Regards


Postman has a feature to generate code , just under the save button there is a “code” button


Thanks very much @Harvey … My code is now working!!! Thank you!!!:slightly_smiling_face:

Express Checkout | Error : Invalid Id

It is such an honour seeing @Harvey presenting about Paynow at the 2019 DevFest… Harvey the guy who gets things done!!! Once again, thank you for assisting me solve my problem!!!:sunglasses:

Express Checkout | Error : Invalid Id