Documentation Index
Fetch the complete documentation index at: https://developers-sandbox.uqpaytech.com/llms.txt
Use this file to discover all available pages before exploring further.
本页覆盖 UqpayClient 上所有资源命名空间,每个命名空间对应一条 UQPAY 产品线。
Banking
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");
// 余额流水
ListBalanceTransactionsRequest txReq = new ListBalanceTransactionsRequest();
txReq.setPageSize(20);
txReq.setPageNumber(1);
ListBalanceTransactionsResponse txns = client.banking().getBalances().listTransactions(txReq);
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");
ListDepositsResponse deposits = client.banking().getDeposits().list(
new ListDepositsRequest().setPageSize(20).setPageNumber(1)
);
Deposit deposit = client.banking().getDeposits().get("deposit-id");
受益人
CreateBeneficiaryResponse beneficiary = client.banking().getBeneficiaries().create(createBeneficiaryReq);
ListBeneficiariesResponse beneficiaries = client.banking().getBeneficiaries().list(listBeneficiaryReq);
Beneficiary ben = client.banking().getBeneficiaries().get("ben-id");
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);
虚拟账户
CreateVirtualAccountResponse va = client.banking().getVirtualAccounts().create(createVaReq);
ListVirtualAccountsResponse vas = client.banking().getVirtualAccounts().list(listVaReq);
CreateConversionQuoteResponse quote = client.banking().getConversions().createQuote(quoteReq);
CreateConversionResponse conversion = client.banking().getConversions().create(createConversionReq);
ListExchangeRatesResponse rates = client.banking().getExchangeRates().list(listRatesReq);
Issuing
持卡人
SDK 支持三档 KYC——Simplified、Standard 与 Enhanced。
Simplified KYC——仅需基础字段:
import com.uqpay.sdk.v2.issuing.model.*;
CreateCardholderRequest request = new CreateCardholderRequest();
request.setEmail("[email protected]");
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——增加性别、国籍、身份证件和居住地址:
CreateCardholderRequest standardReq = new CreateCardholderRequest();
standardReq.setEmail("[email protected]");
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 跳转,返回 IDV 验证 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());
读取 / 列表 / 更新:
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);
// 创建卡片
CreateCardRequest cardReq = new CreateCardRequest();
cardReq.setCardCurrency("SGD");
cardReq.setCardholderId(cardholder.getCardholderId());
cardReq.setCardProductId("prod-123");
CardCreationResponse card = client.issuing().getCards().create(cardReq);
// 创建 ONE_TIME 卡,配置自动取消触发
CreateCardRequest oneTimeReq = new CreateCardRequest();
oneTimeReq.setCardCurrency("SGD");
oneTimeReq.setCardholderId(cardholder.getCardholderId());
oneTimeReq.setCardProductId("prod-123");
oneTimeReq.setUsageType("ONE_TIME");
oneTimeReq.setAutoCancelTrigger("ON_AUTH");
// 创建卡片并补充 KYC 字段
CardholderRequiredFields fields = new CardholderRequiredFields();
fields.setGender("FEMALE");
fields.setNationality("SG");
fields.setIdentity(identity);
fields.setResidentialAddress(addr);
cardReq.setCardholderRequiredFields(fields);
// 读取、列表
RetrieveCardResponse retrieved = client.issuing().getCards().get("card-id");
ListCardsResponse cards = client.issuing().getCards().list(
new ListCardsRequest().setPageSize(20).setPageNumber(1)
);
// 冻结 / 解除冻结
UpdateCardStatusRequest freeze = new UpdateCardStatusRequest();
freeze.setCardStatus("FROZEN");
client.issuing().getCards().updateStatus("card-id", freeze);
// 充值与提现
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);
交易、产品、余额与转账
// 交易
ListTransactionsResponse txns = client.issuing().getTransactions().list(
new ListTransactionsRequest().setPageSize(20).setPageNumber(1).setCardId("card-id")
);
Transaction txn = client.issuing().getTransactions().get("txn-id");
// 产品
ListProductsResponse products = client.issuing().getProducts().list(
new ListProductsRequest().setPageSize(20).setPageNumber(1)
);
// Issuing 余额
ListIssuingBalancesResponse issuingBalances = client.issuing().getBalances().list(listReq);
IssuingBalance issuingBalance = client.issuing().getBalances().get("SGD");
// Issuing 转账
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 intent
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);
CreateRefundRequest refundReq = new CreateRefundRequest();
refundReq.setPaymentIntentId(intent.getPaymentIntentId());
refundReq.setAmount("50.00");
CreateRefundResponse refund = client.payment().getRefunds().create(refundReq);
银行账户
CreateBankAccountResponse bankAccount = client.payment().getBankAccounts().create(bankAccountReq);
CreatePayoutResponse payout = client.payment().getPayouts().create(payoutReq);
余额与 Attempt
ListPaymentBalancesResponse paymentBalances = client.payment().getBalances().list(listBalReq);
ListPaymentAttemptsResponse attempts = client.payment().getPaymentAttempts().list(listAttemptsReq);
Supporting(文件上传与下载)
import com.uqpay.sdk.v2.supporting.model.*;
import java.io.File;
// 上传文件
File doc = new File("kyc-document.pdf");
UploadFileResponse uploaded = client.supporting().getFiles().upload(doc, "KYC document");
System.out.println("File ID: " + uploaded.getFileId());
// 获取下载链接
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()));
模拟器(仅沙盒)
模拟器仅在 sandbox 环境可用。在生产环境调用模拟器方法会抛出 UqpayException。
import com.uqpay.sdk.v2.simulator.model.*;
// 模拟一次卡授权
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);
// 模拟一次冲正
SimulateReversalRequest revReq = new SimulateReversalRequest();
revReq.setTransactionId(auth.getTransactionId());
client.simulator().getIssuing().reverse(revReq);
// 模拟一笔充值
SimulateDepositRequest depositReq = new SimulateDepositRequest();
depositReq.setCurrency("SGD");
depositReq.setAmount(500.00);
SimulateDepositResponse deposit = client.simulator().getDeposits().simulate(depositReq);
API 覆盖范围
Banking API
| 资源 | 操作 |
|---|
| 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
| 资源 | 操作 |
|---|
| 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 的实时授权 |
Connect API
Payment API
| 资源 | 操作 |
|---|
| 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
| 资源 | 操作 |
|---|
| Files | Upload、GetDownloadLinks |
模拟器(仅沙盒)
| 资源 | 操作 |
|---|
| Issuing | Authorize、Reverse |
| Deposits | Simulate |