SG PSA compliance for wallet-based programs

Payment Services Act (PSA) scope

PSA definition

Any wallet-based program, contracted in Singapore, regardless of wallet funding source, as long as it is cardholder entitled – meaning the cardholder has the freedom to choose how the funds residing in the wallet are being spent – is subjected to PSA compliance.

The legislation applies to all Singapore Residents:

  • Singapore Citizen
  • Singapore Permanent Resident
  • Holder of a valid Employment Pass issued by the authorities in Singapore

If you are unsure whether your e-wallet program is subjected to PSA compliance, reach out to your respective Nium representatives for more information.

System-level limits

In compliance with PSA, Nium implements measures where Nium-issued Singapore-based e-wallets can hold the following maximums:

S$ maximumTimeframeWalletsReferred to as
S$5,000At any timePer wallet
  • Wallet balance limit
  • Stock cap
  • S$30,000Calendar yearTotal across all e-wallets
  • Annual load limit
  • Flow cap
  • These system-level limits apply to all Singapore residents holding a PSA-compliant e-wallet issued by Nium.

    Client-level limits

    In addition to the system-level wallet balance limit and annual loading limit, Nium's e-wallet program lets you set any client-level limits according to your risk tolerance.

    When lower than system limits

    If your configured wallet balance limit or annual loading limit is lower than the system-level limits, then your configured limit or limits apply to all of your customers.

    For example, If your configured annual loading limit is S$25,000 (while the system level limit is S$30,000), then the S$25,000 annual loading limit takes precedence for all of your customers.

    When higher than system limits

    If your configured wallet balance limit or annual loading limit is higher than the system-level limits, then your configured limit or limits apply to only non-Singapore resident e-wallet customers while system-level limits still apply to Singapore Resident e-wallet customers.

    For example, If your configured wallet balance limit is S$8,000 and annual loading limit is S$45,000, then these limits apply to non-Singapore Resident e-wallet customers. Singapore Resident e-wallet customers are bound by system-level limits of S$5,000 and S$30,000 respectively.

    Unique Customer ID (UCI)

    Unique Customer refers to the single individual customer who may hold one or more e-wallets with Nium Singapore. Each unique customer under a PSA-compliant e-wallet program is assigned a Unique Customer ID (UCI).

    When a customer is onboarded via the Unified Add Customer API onto PSA-compliant e-wallet programs, Nium One attempts to match the newly onboarded customer against Nium One’s existing customer base by using the following customer data:

    • Identification Type (identificationValue)
      • National ID (NRIC)
      • Foreign Identification Number (FIN)
      • SingPass ID
      • Passport Number
    • Full customer Name
      • First name (given name)
      • Middle name
      • Last Name (family name)
    • Date of Birth
    • Nationality

    If Nium One is able to find a match against an existing customer from another e-wallet program, the newly onboarded customer is assigned the same UCI as the existing customer. Otherwise, a new UCI is assigned to the newly onboarded customer.

    Identifying unique customers

    To identify unique customers across PSA clients, ensure the UCI flag is enabled. Then, when a customer is onboarded via the Unified Add Customer API, the following checks are performed:

    1. Is billingAddressCountry = SG?

      • If No, onboard the customer without UCI.

      • If Yes, refer to #2.

    2. Does their identificationValue exist in the system?

      • If Yes, retrieve the UCI from the existing customer record and assign that UCI to the current onboarded customer.

      • If No, refer to #3.

    3. Does an existing customer record match all three of the following characteristics?

      Characteristic
      The First name and the Last name both exist in any of the three name fields: firstName, middleName, and LastName.
      Date of Birth (DOB)
      Nationality
      • If yes, retrieve the UCI from the existing customer record and assign that UCI to the current onboarded customer.

      • If no, generate and assign new UCI to onboarded customer.

    When billing country is updated via RFI

    When a customer's KYC expires and their billing country is updated through an RFI, the following happens in different scenarios.

    Scenario 1 – Cardholder moves out of Singapore:

    • Cardholder's residency status updates to non-resident.
    • Cardholder's UCI value is removed.

    Scenario 2 – Cardholder moves into Singapore

    • Cardholder's residency status updates to resident.
    • Cardholder's UCI value is generated as per the current generation logic.

    Limit calculation mechanism

    Default balance limit

    The default balance limit – legally called stock cap – is the maximum total wallet balance that a customer under the same UCI can hold at any point of time. This limit is currently set at SGD5,000 as per the regulation. This means that customer’s maximum total wallet balance at any point of time cannot go beyond SGD5,000.

    Multicurrency wallet handling

    While calculating the EOD balance limit, balances in multicurrency wallets are included. Balances from non-SGD wallets are included in the balance calculation by converting their value to the SGD equivalent value. However, no physical conversion of currencies between the wallets takes place at that point until the actual refund is carried out.

    Annual loading limit

    The annual loading limit is also called the flow cap. The flow cap of S$30,000 legally refers to the cardholder's spending limit. Due to this system limitation, you can only limit the cardholder's funding limit since a cardholder can load only S$30,000 and cannot spend more than S$30,000.

    The annual loading limit has a starting balance of S$30,000 at the system level or a lower limit at the client level.

    Transactions that reduce annual loading limit

    The following transactions reduce the annual loading limit, making it closer to 0. When this limit reaches 0, your customer can no longer load any credits to the wallet.

    Transaction typeDescription
    Cashback_CreditCashback transaction.
    Customer_Wallet_Credit_Fund_TransferThe funds received in the wallet from another customer's wallet of the same client.
    Fee_ReversalFee reversed in an online reversal. If online reversal is triggered, the corresponding fees applied on transaction are released or reversed.
    Fee_WaiverFee waiver transaction.
    Incremental_Auth_ReversalReversal for incremental auth transactions.
    Original_CreditReceived incoming Original Credit Transfer (OCT) and credited to the wallet linked to the cardholder's card.
    Partial_ReversalOnline partial reversal of a transaction.
    ReversalOnline reversal of a transaction.
    Reversal_AdviceReversal initiated when a timeout scenario happens. If Visa or MasterCard time-out the transaction, they generate a reversal advice to roll back the transaction. In the case of Wallet Clients, Nium applies the reversal advice and provides the credit back to the customer. In the case of RHA clients, Nium reverses funds on your prefund account and forwards the reversal advice to the RHA client for crediting funds back to the customer.
    Settlement_CreditThe difference in amount during transaction and settlement to be credited to the cardholder. The settlement amount is less than transaction amount.
    Settlement_Direct_ReversalOffline reversal unlinked to any original debit transaction.
    Settlement_ReversalOffline reversal of original debit transaction.
    Wallet_Credit_Mode_CardThe fund credit to a wallet using a card.
    Wallet_Credit_Mode_OfflineThe fund credit to a wallet using an offline mode, such as a bank transfer, from the customer's own account.
    Wallet_Credit_Mode_Offline_Cross_CurrencyThe cross-currency fund credit to a wallet using an offline mode, such as a bank transfer, from the customer's own account.
    Wallet_Credit_Mode_Offline_ThirdPartyThe fund credit to wallet, in the same currency, using an offline mode, such as a bank transfer, from a third party.
    Wallet_Credit_Mode_PrefundThe fund credit to a wallet using a client prefund.
    Wallet_Credit_Mode_Prefund_Cross_CurrencyThe cross-currency fund credit to a wallet using a client prefund.

    NOTE: There is no transaction type that would increase the remaining available annual inflow, also called the annual load limit.

    Limit configurations

    PSA limit configurations

    Both the default balance limit and annual limit are not visible on the Nium One Platform and can be changed only by the technical team whenever there’s a change in the regulatory limit.

    This configuration is internal to Nium and is applied by default for customers under client programs with assignUniqueCustomerId = true.

    Client-level limit configurations

    You may configure different wallet balance limit and annual limit amounts for their wallet program which are not PSA related.

    If the client program has assignUniqueCustomerId = true, these limits apply to non-SG residents; whereas SG residents are subject to the PSA default balance limit and annual limit amounts, whichever is lower.