Skip to main content
Cardless Withdrawal lets your customers withdraw cash at supported ATMs without a physical card. Your platform requests a withdrawal on behalf of the customer, SingaPay locks the merchant balance and issues an OTP, and the customer redeems it at the ATM using their phone number and OTP code.
This is a Money Out operation. Each successful withdrawal debits funds from your Singapay Payment Gateway merchant balance.

No card required

Customers withdraw using only their phone number and a one-time OTP — no physical card needed.

Balance locked on issuance

Merchant balance is locked immediately when the OTP is generated — guaranteeing funds are available at ATM redemption.

Auto-reverse on failure

If the OTP expires or the ATM rejects the transaction, SingaPay automatically reverses the locked balance back to the merchant.

Withdrawal Flow


Transaction Status

StatusDescription
OPENOTP issued and active — awaiting customer ATM input. Merchant balance is locked.
SUCCESSCash dispensed at ATM. Funds deducted from merchant balance.
FAILEDATM rejected the transaction — invalid OTP or CustID. Merchant balance reversed.
EXPIREDOTP expired before ATM redemption. Merchant balance automatically reversed.

1

Customer initiates withdrawal

Customer submits a cardless withdrawal request on your platform — providing the desired amount and their registered phone number (CustID).
2

Request OTP from SingaPay

Call Create Cardless Withdrawal with the bank type, amount, and CustID. SingaPay locks the merchant balance and returns an OTP with an expiry time.
3

Deliver credentials to customer

Forward the OTP, CustID, and expiry time to the customer along with ATM usage instructions.
4

Customer redeems at ATM

Customer visits the supported ATM, selects the cardless withdrawal menu, and enters their CustID and OTP.
5

Receive webhook notification

SingaPay sends a webhook callback to your system with the final transaction status — SUCCESS, FAILED, or EXPIRED.
6

Verify status (optional)

Call Show Cardless Withdrawal or List Cardless Withdrawals to confirm the final status and reconcile your records.

Important Notes

The merchant balance is locked the moment a withdrawal request is created. If the transaction fails or expires, SingaPay automatically reverses the locked amount back to the merchant balance — no manual action required.
Each OTP has a fixed expiry defined by the expired_at field returned in the API response. Customers must redeem the OTP at an ATM before this timestamp. Expired transactions cannot be re-used — create a new withdrawal request instead.
Only ATMs from the bank specified in the bank_type parameter can process the withdrawal. Ensure customers are directed to the correct ATM network.
Only transactions with status OPEN can be cancelled. Once a transaction reaches SUCCESS, FAILED, or EXPIRED, it cannot be cancelled.
If your platform maintains an internal customer balance, remember to refund it when a transaction results in FAILED or EXPIRED — SingaPay reverses the merchant balance, but internal platform balance adjustments are the merchant’s responsibility.

Available Endpoints

Create Cardless Withdrawal

Initiate a withdrawal request and receive the OTP and CustID credentials to deliver to the customer.

List Cardless Withdrawals

Retrieve a paginated list of all cardless withdrawal transactions for an account.

Show Cardless Withdrawal

Get detailed information about a specific cardless withdrawal transaction.

Cancel Cardless Withdrawal

Cancel an OPEN cardless withdrawal transaction before it is redeemed at an ATM.
All endpoints require authentication. See Authentication.