A rail is the scheme on which a payout is settled. Each corridor is served by one or more local rails, together with swift for international transfers. A rail may be specified when creating a payout, or taken from a quote where one is bound. Where no rail is specified, swift is used.
| Rail | Name | Currency | Minimum | Maximum | Identifier |
|---|---|---|---|---|---|
upi | UPI | INR | ₹1 | ₹1,00,000 | UPI ID (VPA) |
imps | IMPS | INR | ₹1 | ₹5,00,000 | Account number and IFSC |
rtgs | RTGS | INR | ₹2,00,000 | ₹50,00,000 | Account number and IFSC |
neft | NEFT | INR | ₹1 | ₹1,00,00,000 | Account number and IFSC |
ipp | IPP | AED | AED 1 | AED 50,000 | IBAN |
fts | FTS | AED | AED 50,000 | No limit | IBAN |
sepa | SEPA | EUR | €1 | No limit | IBAN |
fps | Faster Payments | GBP | £1 | £1,000,000 | Account number and sort code |
swift | SWIFT | Any | No limit | No limit | Account number and SWIFT/BIC |
A rail is available only where the destination currency corresponds to that rail and the beneficiary holds the identifier on which the rail routes. A request for sepa on a GBP payout, or for fps against a beneficiary without a sort code, is rejected.
Where no rail is specified, swift is used. A local rail is not selected automatically; to settle on one, specify it explicitly or bind a quote.
A rail is not an input to a quote. A quote request returns one option for each rail that serves the corridor and admits the amount, each carrying its rail in payment_method.rail.
Currency refers to the destination currency, and the limits apply to the destination amount expressed in it.
| Corridor | Required fields |
|---|---|
| INR | account_number and the IFSC in local_routing_number; or a UPI ID for upi |
| AED | The IBAN in account_number; neither swift_code nor local_routing_number |
| EUR | The IBAN in account_number, issued in a SEPA scheme country; neither swift_code nor local_routing_number |
| GBP | The domestic account_number and the 6-digit sort code in local_routing_number |
| International | account_number and the swift_code |
Note: SEPA is IBAN-only. A EUR beneficiary is identified by its IBAN alone. A EUR account held outside the IBAN zone, such as a EUR account maintained at a US bank, remains supported: supply the
swift_codeand the account is treated as a SWIFT beneficiary.
Note: Faster Payments requires the domestic account number rather than a GB IBAN. The scheme routes on the sort code together with the account number, and a
GBIBAN supplied inaccount_numberdoes not qualify forfpseven where a valid sort code is present.
| Message | Description |
|---|---|
payment_rail is not available for <CURRENCY> payouts | The rail does not serve the specified destination currency |
Destination amount is outside the <Rail> limits | The amount falls above or below the limits for the rail |
No rails available for this beneficiary | The beneficiary does not hold the identifier on which the rail routes |
No available options for this amount | Every eligible rail was excluded by its limits |
local_transfer is not supported for <CURRENCY> destination | The corridor has no local rail |
account_number must be a SEPA IBAN | The IBAN is valid but was issued outside the SEPA scheme area |
account_number must be a valid IBAN | The account number is blank, contains spaces, or fails its checksum |