Sage Pay Pi - the RESTful Sage Pay gateway - uses ISO 4217 currency codes. What is not clear to me from the documentation is what the full range of supported currencies are.
Does the gateway support ALL ISO 4217 currencies, so long as the attached merchant account supports it? Or can Sage Pay only deal with a subset of these currencies regardless of what the merchant account is capable of?
I believe the Sage Pay Pi gateway is a wrapper around the Sage Pay Direct gateway, so knowing what currencies that gateway is capable of supporting would be sufficient.
The reason for asking is for deciding how currencies will be supported and validated in a PHP package for this gateway. A follow-on question would be recommendations for a composer package that provides support for currency value objects.
Sage Pay's gateway supports around 160 currencies.
You are right in assuming that these need to be supported by the acquirer.
There is also a limitation on card type eg: JCB just supports EUR,GBP,JPY,USD as opposed to AMEX which supports AUD, CAD, CHF, CYP, DKK, EUR, GBP, HKD, INR, JPY, MTL, NOK, NZD, RUB, SEK, SGD, THB, TRY, USD, ZAR and so on with minor variations between card types.
I would start by contacting your acquirer, and find out what currencies they support.