a mi me da lo mismo que a ti!!, así que comunicate con ellos para que te digan como lo hacen ellos ya que ellos no lo estan haciendo igual que tu, o bien que se adapten ellos a tu manera de hacerlo.
Vale! ya lo he encontrado como lo hacen ellos, tú mismo me has dado la respuesta.
"Me dicen que debo codificar estos campos “ApiKey~merchantId~referenceCode~amount~currency”. "
Codificalo así:
Código PHP:
$signatu = md5($ApiKey."~".$merchantId."~".$referenceCode."~".$amount."~".$currency);