PAYMENT_ROUTING_ERROR banking protocol_error ai_generated true

AI tells a Singapore user that they can transfer funds to an EU account using FAST/PayNow without providing an IBAN, assuming SWIFT is optional

ID: banking/singapore-fast-paynow-iban-requirement

Also available as: JSON · Markdown · 中文
85%Fix Rate
87%Confidence
1Evidence
2023-11-05First Seen

Version Compatibility

VersionStatusIntroducedDeprecatedNotes
FAST v2.0 (2023) active
PayNow v1.5 active
SWIFT MT103 2024 active

Root Cause

FAST and PayNow are domestic Singapore payment systems that only support SGD transactions to local bank accounts; transfers to EU accounts require SWIFT/IBAN routing, and omitting the IBAN causes the payment to be rejected or misrouted.

generic

中文

FAST 和 PayNow 是新加坡国内支付系统,仅支持向本地银行账户的新元交易;向欧盟账户转账需要 SWIFT/IBAN 路由,省略 IBAN 会导致支付被拒绝或路由错误。

Official Documentation

https://www.abs.org.sg/consumer-banking/pay-now

Workarounds

  1. 95% success Obtain the recipient's full IBAN and BIC, then initiate a SWIFT transfer via your Singapore bank's online banking portal.
    Obtain the recipient's full IBAN and BIC, then initiate a SWIFT transfer via your Singapore bank's online banking portal.
  2. 90% success Use a multi-currency account like Wise or Revolut that supports both FAST (for SGD) and SWIFT/IBAN (for EUR) conversions.
    Use a multi-currency account like Wise or Revolut that supports both FAST (for SGD) and SWIFT/IBAN (for EUR) conversions.
  3. 85% success Example code to validate IBAN before sending (Python): import schwifty iban = 'DE89370400440532013000' try: iban_obj = schwifty.IBAN(iban) print(f'Valid IBAN: {iban_obj.country_code} {iban_obj.bank_code}') except ValueError as e: print(f'Invalid IBAN: {e}')
    Example code to validate IBAN before sending (Python):
    import schwifty
    iban = 'DE89370400440532013000'
    try:
        iban_obj = schwifty.IBAN(iban)
        print(f'Valid IBAN: {iban_obj.country_code} {iban_obj.bank_code}')
    except ValueError as e:
        print(f'Invalid IBAN: {e}')

中文步骤

  1. Obtain the recipient's full IBAN and BIC, then initiate a SWIFT transfer via your Singapore bank's online banking portal.
  2. Use a multi-currency account like Wise or Revolut that supports both FAST (for SGD) and SWIFT/IBAN (for EUR) conversions.
  3. Example code to validate IBAN before sending (Python):
    import schwifty
    iban = 'DE89370400440532013000'
    try:
        iban_obj = schwifty.IBAN(iban)
        print(f'Valid IBAN: {iban_obj.country_code} {iban_obj.bank_code}')
    except ValueError as e:
        print(f'Invalid IBAN: {e}')

Dead Ends

Common approaches that don't work:

  1. 90% fail

    EU banks require IBAN for SEPA and SWIFT transfers; a local account number without the country code and check digits is not recognized.

  2. 80% fail

    FAST does not support cross-border routing; the intermediary bank would need a SWIFT MT103, which requires IBAN.

  3. 95% fail

    PayNow proxies are only registered with Singapore banks; EU recipients cannot have a PayNow proxy.