If an unsupported currency is set the error is confusingly general saying "Rejected by bank".
Suggestion for improvements:
Return a specific error message: USD is not a supported currency for this method.
Ability to return available currencies e.g. getCardPayCurrencies(). That way we can just validate against a returned list of currencies. And new currencies would automatically be enabled dynamically by modules.
If an unsupported currency is set the error is confusingly general saying "Rejected by bank".
Suggestion for improvements: