This page covers all resource namespaces available on UqpayClient. Each namespace maps to a UQPAY product.
Banking
Balances
import com.uqpay.sdk.v2.banking.model.*;
ListBalancesResponse balances = client.banking().getBalances().list(
new ListBalancesRequest().setPageSize(20).setPageNumber(1)
);
Balance balance = client.banking().getBalances().get("SGD");
// Balance transactions
ListBalanceTransactionsRequest txReq = new ListBalanceTransactionsRequest();
txReq.setPageSize(20);
txReq.setPageNumber(1);
ListBalanceTransactionsResponse txns = client.banking().getBalances().listTransactions(txReq);
Transfers
CreateTransferRequest transferReq = new CreateTransferRequest();
transferReq.setSourceAccountId("acc-123");
transferReq.setDestinationAccountId("acc-456");
transferReq.setCurrency("SGD");
transferReq.setAmount("100.00");
CreateTransferResponse transfer = client.banking().getTransfers().create(transferReq);
ListTransfersResponse transfers = client.banking().getTransfers().list(
new ListTransfersRequest().setPageSize(20).setPageNumber(1)
);
Transfer retrieved = client.banking().getTransfers().get("transfer-id");
Deposits
ListDepositsResponse deposits = client.banking().getDeposits().list(
new ListDepositsRequest().setPageSize(20).setPageNumber(1)
);
Deposit deposit = client.banking().getDeposits().get("deposit-id");
Beneficiaries
CreateBeneficiaryResponse beneficiary = client.banking().getBeneficiaries().create(createBeneficiaryReq);
ListBeneficiariesResponse beneficiaries = client.banking().getBeneficiaries().list(listBeneficiaryReq);
Beneficiary ben = client.banking().getBeneficiaries().get("ben-id");
Payouts
CreatePayoutRequest payoutReq = new CreatePayoutRequest();
payoutReq.setBeneficiaryId("ben-123");
payoutReq.setCurrency("SGD");
payoutReq.setAmount("50.00");
payoutReq.setPurposeCode("PERSONAL");
CreatePayoutResponse payout = client.banking().getPayouts().create(payoutReq);
Virtual accounts
CreateVirtualAccountResponse va = client.banking().getVirtualAccounts().create(createVaReq);
ListVirtualAccountsResponse vas = client.banking().getVirtualAccounts().list(listVaReq);
Conversions
CreateConversionQuoteResponse quote = client.banking().getConversions().createQuote(quoteReq);
CreateConversionResponse conversion = client.banking().getConversions().create(createConversionReq);
Exchange rates
ListExchangeRatesResponse rates = client.banking().getExchangeRates().list(listRatesReq);
Issuing
Cardholders
The SDK supports three KYC tiers — simplified, standard, and enhanced.
Simplified KYC — basic fields only:
import com.uqpay.sdk.v2.issuing.model.*;
CreateCardholderRequest request = new CreateCardholderRequest();
request.setEmail("user@example.com");
request.setFirstName("Jane");
request.setLastName("Smith");
request.setCountryCode("SG");
request.setPhoneNumber("+6512345678");
request.setDateOfBirth("1990-01-01");
CreateCardholderResponse cardholder = client.issuing().getCardholders().create(request);
Standard KYC — includes gender, nationality, identity document, and address:
CreateCardholderRequest standardReq = new CreateCardholderRequest();
standardReq.setEmail("user@example.com");
standardReq.setFirstName("Bob");
standardReq.setLastName("Lee");
standardReq.setCountryCode("SG");
standardReq.setPhoneNumber("+6598765432");
standardReq.setDateOfBirth("1988-11-03");
standardReq.setGender("MALE");
standardReq.setNationality("SG");
Identity identity = new Identity();
identity.setType("PASSPORT");
identity.setNumber("E1234567");
standardReq.setIdentity(identity);
ResidentialAddress addr = new ResidentialAddress();
addr.setCountry("SG");
addr.setState("Singapore");
addr.setCity("Singapore");
addr.setLine1("1 Raffles Place");
addr.setLineEn("1 Raffles Place");
addr.setPostalCode("048616");
standardReq.setResidentialAddress(addr);
CreateCardholderResponse stdCardholder = client.issuing().getCardholders().create(standardReq);
Enhanced KYC — SUMSUB redirect, returns an IDV verification URL:
KycVerification kyc = new KycVerification();
kyc.setMethod("SUMSUB_REDIRECT");
request.setKycVerification(kyc);
CreateCardholderResponse enhanced = client.issuing().getCardholders().create(request);
System.out.println("IDV URL: " + enhanced.getIdvVerificationUrl());
Get / list / update:
Cardholder ch = client.issuing().getCardholders().get("ch-id");
ListCardholdersResponse list = client.issuing().getCardholders().list(
new ListCardholdersRequest().setPageSize(20).setPageNumber(1).setCardholderStatus("SUCCESS")
);
UpdateCardholderRequest updateReq = new UpdateCardholderRequest();
updateReq.setResidentialAddress(addr);
client.issuing().getCardholders().update("ch-id", updateReq);
Cards
// Create a card
CreateCardRequest cardReq = new CreateCardRequest();
cardReq.setCardCurrency("SGD");
cardReq.setCardholderId(cardholder.getCardholderId());
cardReq.setCardProductId("prod-123");
CardCreationResponse card = client.issuing().getCards().create(cardReq);
// Create a ONE_TIME card with auto-cancel trigger
CreateCardRequest oneTimeReq = new CreateCardRequest();
oneTimeReq.setCardCurrency("SGD");
oneTimeReq.setCardholderId(cardholder.getCardholderId());
oneTimeReq.setCardProductId("prod-123");
oneTimeReq.setUsageType("ONE_TIME");
oneTimeReq.setAutoCancelTrigger("ON_AUTH");
// Create a card with supplemental KYC fields
CardholderRequiredFields fields = new CardholderRequiredFields();
fields.setGender("FEMALE");
fields.setNationality("SG");
fields.setIdentity(identity);
fields.setResidentialAddress(addr);
cardReq.setCardholderRequiredFields(fields);
// Get, list
RetrieveCardResponse retrieved = client.issuing().getCards().get("card-id");
ListCardsResponse cards = client.issuing().getCards().list(
new ListCardsRequest().setPageSize(20).setPageNumber(1)
);
// Freeze / unfreeze
UpdateCardStatusRequest freeze = new UpdateCardStatusRequest();
freeze.setCardStatus("FROZEN");
client.issuing().getCards().updateStatus("card-id", freeze);
// Recharge and withdraw
CardOrderRequest rechargeReq = new CardOrderRequest();
rechargeReq.setAmount(100.00);
CardOrder recharge = client.issuing().getCards().recharge("card-id", rechargeReq);
CardOrderRequest withdrawReq = new CardOrderRequest();
withdrawReq.setAmount(50.00);
CardOrder withdraw = client.issuing().getCards().withdraw("card-id", withdrawReq);
Transactions, products, balances, and transfers
// Transactions
ListTransactionsResponse txns = client.issuing().getTransactions().list(
new ListTransactionsRequest().setPageSize(20).setPageNumber(1).setCardId("card-id")
);
Transaction txn = client.issuing().getTransactions().get("txn-id");
// Products
ListProductsResponse products = client.issuing().getProducts().list(
new ListProductsRequest().setPageSize(20).setPageNumber(1)
);
// Issuing balances
ListIssuingBalancesResponse issuingBalances = client.issuing().getBalances().list(listReq);
IssuingBalance issuingBalance = client.issuing().getBalances().get("SGD");
// Issuing transfers
CreateIssuingTransferResponse issuingTransfer = client.issuing().getTransfers().create(createIssuingTransferReq);
Connect
import com.uqpay.sdk.v2.connect.model.*;
ListAccountsResponse accounts = client.connect().getAccounts().list(
new ListAccountsRequest().setPageSize(20).setPageNumber(1)
);
Account account = client.connect().getAccounts().get("acc-id");
Account accountByBizCode = client.connect().getAccounts().get("acc-id", "BUSINESS_CODE");
Payment
Payment intents
import com.uqpay.sdk.v2.payment.model.*;
CreatePaymentIntentRequest intentReq = new CreatePaymentIntentRequest();
intentReq.setAmount("100.00");
intentReq.setCurrency("SGD");
CreatePaymentIntentResponse intent = client.payment().getPaymentIntents().create(intentReq);
client.payment().getPaymentIntents().confirm(intent.getPaymentIntentId(), confirmReq);
client.payment().getPaymentIntents().capture(intent.getPaymentIntentId(), captureReq);
client.payment().getPaymentIntents().cancel(intent.getPaymentIntentId());
ListPaymentIntentsResponse intents = client.payment().getPaymentIntents().list(listIntentsReq);
Refunds
CreateRefundRequest refundReq = new CreateRefundRequest();
refundReq.setPaymentIntentId(intent.getPaymentIntentId());
refundReq.setAmount("50.00");
CreateRefundResponse refund = client.payment().getRefunds().create(refundReq);
Bank accounts
CreateBankAccountResponse bankAccount = client.payment().getBankAccounts().create(bankAccountReq);
Payouts
CreatePayoutResponse payout = client.payment().getPayouts().create(payoutReq);
Balances and attempts
ListPaymentBalancesResponse paymentBalances = client.payment().getBalances().list(listBalReq);
ListPaymentAttemptsResponse attempts = client.payment().getPaymentAttempts().list(listAttemptsReq);
Supporting (file upload / download)
import com.uqpay.sdk.v2.supporting.model.*;
import java.io.File;
// Upload a file
File doc = new File("kyc-document.pdf");
UploadFileResponse uploaded = client.supporting().getFiles().upload(doc, "KYC document");
System.out.println("File ID: " + uploaded.getFileId());
// Get download links
DownloadLinksRequest dlReq = new DownloadLinksRequest(List.of(uploaded.getFileId()));
DownloadLinksResponse links = client.supporting().getFiles().getDownloadLinks(dlReq);
links.getFiles().forEach(f -> System.out.println("URL: " + f.getUrl()));
Simulator (sandbox only)
The simulator is only available in the sandbox environment. Calling simulator methods in production throws a UqpayException.
import com.uqpay.sdk.v2.simulator.model.*;
// Simulate a card authorization
SimulateAuthorizationRequest authReq = new SimulateAuthorizationRequest();
authReq.setCardId("card-123");
authReq.setTransactionAmount(25.00);
authReq.setTransactionCurrency("SGD");
authReq.setMerchantName("Coffee Shop");
SimulateAuthorizationResponse auth = client.simulator().getIssuing().authorize(authReq);
// Simulate a reversal
SimulateReversalRequest revReq = new SimulateReversalRequest();
revReq.setTransactionId(auth.getTransactionId());
client.simulator().getIssuing().reverse(revReq);
// Simulate a deposit
SimulateDepositRequest depositReq = new SimulateDepositRequest();
depositReq.setCurrency("SGD");
depositReq.setAmount(500.00);
SimulateDepositResponse deposit = client.simulator().getDeposits().simulate(depositReq);
API coverage
Banking API
| Resource | Operations |
|---|
| Balances | Get, List, ListTransactions |
| Transfers | Create, List, Get |
| Deposits | List, Get |
| Beneficiaries | Create, List, Get, Update, Delete, ListPaymentMethods, Check |
| Payouts | Create, List, Get |
| Virtual Accounts | Create, List |
| Conversions | CreateQuote, Create, List, Get, ListConversionDates |
| Exchange Rates | List |
Issuing API
| Resource | Operations |
|---|
| Cardholders | Create (Simplified/Standard/Enhanced KYC), Get, List, Update |
| Cards | Create, Get, GetSecure, List, Recharge, Withdraw, UpdateStatus |
| Transactions | Get, List |
| Products | List |
| Balances | Get, List, ListTransactions |
| Transfers | Create, List, Get |
| Reports | Create, Get |
| Auth Decision | PGP-based real-time authorization |
Connect API
| Resource | Operations |
|---|
| Accounts | Get, List |
Payment API
| Resource | Operations |
|---|
| Payment Intents | Create, Confirm, Capture, Cancel, List, Get |
| Refunds | Create, List, Get |
| Bank Accounts | Create, List, Get |
| Payouts | Create, List, Get |
| Balances | List |
| Payment Attempts | List, Get |
| Settlements | List |
Supporting API
| Resource | Operations |
|---|
| Files | Upload, GetDownloadLinks |
Simulator (sandbox only)
| Resource | Operations |
|---|
| Issuing | Authorize, Reverse |
| Deposits | Simulate |