Skip to main content
This page covers all resource namespaces available on the UQPAY Go client. Each namespace maps to a UQPAY product.

Issuing

Create a cardholder

cardholder, err := client.Issuing.Cardholders.Create(ctx, &issuing.CreateCardholderRequest{
    Email:       "user@example.com",
    PhoneNumber: "1234567890",
    FirstName:   "John",
    LastName:    "Doe",
    CountryCode: "US",
})
if err != nil {
    log.Fatal(err)
}
fmt.Printf("Cardholder ID: %s\n", cardholder.CardholderID)

List card products

products, err := client.Issuing.Products.List(ctx, &issuing.ListProductsRequest{
    PageSize:   10,
    PageNumber: 1,
})
if err != nil {
    log.Fatal(err)
}

for _, product := range products.Data {
    fmt.Printf("Product: %s (%s)\n", product.ProductID, product.CardScheme)
}

Create a card

card, err := client.Issuing.Cards.Create(ctx, &issuing.CreateCardRequest{
    CardCurrency:  "USD",
    CardholderID:  cardholder.CardholderID,
    CardProductID: "product-id",
})
if err != nil {
    log.Fatal(err)
}
fmt.Printf("Card ID: %s (Status: %s)\n", card.CardID, card.CardStatus)

Get secure card details

secureInfo, err := client.Issuing.Cards.GetSecure(ctx, card.CardID)
if err != nil {
    log.Fatal(err)
}
fmt.Printf("Card Number: %s\n", secureInfo.CardNumber)
fmt.Printf("CVV: %s\n", secureInfo.CVV)
fmt.Printf("Expiry: %s\n", secureInfo.ExpiryDate)

Recharge a card

order, err := client.Issuing.Cards.Recharge(ctx, card.CardID, &issuing.CardOrderRequest{
    Amount: 100.50,
})
if err != nil {
    log.Fatal(err)
}
fmt.Printf("Recharge Order ID: %s\n", order.OrderID)

Withdraw from a card

order, err := client.Issuing.Cards.Withdraw(ctx, card.CardID, &issuing.CardOrderRequest{
    Amount: 50.00,
})
if err != nil {
    log.Fatal(err)
}
fmt.Printf("Withdraw Order ID: %s (Status: %s)\n", order.OrderID, order.Status)

Update card status

// Freeze a card
err = client.Issuing.Cards.UpdateStatus(ctx, card.CardID, &issuing.UpdateCardStatusRequest{
    CardStatus: "FROZEN",
})
if err != nil {
    log.Fatal(err)
}

// Unfreeze a card
err = client.Issuing.Cards.UpdateStatus(ctx, card.CardID, &issuing.UpdateCardStatusRequest{
    CardStatus: "ACTIVE",
})

List transactions

transactions, err := client.Issuing.Transactions.List(ctx, &issuing.ListTransactionsRequest{
    PageSize:   10,
    PageNumber: 1,
    CardID:     card.CardID,
})
if err != nil {
    log.Fatal(err)
}

for _, txn := range transactions.Data {
    fmt.Printf("Transaction: %s - %s %s\n",
        txn.TransactionID,
        txn.TransactionAmount,
        txn.TransactionCurrency,
    )
}

Banking

Balances

balances, err := client.Banking.Balances.List(ctx, &banking.ListBalancesRequest{
    PageSize:   20,
    PageNumber: 1,
})

balance, err := client.Banking.Balances.Get(ctx, "SGD")

txns, err := client.Banking.Balances.ListTransactions(ctx, &banking.ListBalanceTransactionsRequest{
    PageSize: 20,
})

Transfers

transfer, err := client.Banking.Transfers.Create(ctx, &banking.CreateTransferRequest{
    SourceAccountID:      "acc-123",
    DestinationAccountID: "acc-456",
    Currency:             "SGD",
    Amount:               "100.00",
})

transfers, err := client.Banking.Transfers.List(ctx, &banking.ListTransfersRequest{
    PageSize: 20,
})

transfer, err := client.Banking.Transfers.Get(ctx, "transfer-id")

Deposits

deposits, err := client.Banking.Deposits.List(ctx, &banking.ListDepositsRequest{
    PageSize: 20,
})

deposit, err := client.Banking.Deposits.Get(ctx, "deposit-id")

Beneficiaries

beneficiary, err := client.Banking.Beneficiaries.Create(ctx, &banking.CreateBeneficiaryRequest{
    // ... set fields
})

list, err := client.Banking.Beneficiaries.List(ctx, &banking.ListBeneficiariesRequest{
    PageSize: 20,
})

beneficiary, err := client.Banking.Beneficiaries.Get(ctx, "ben-id")
beneficiary, err = client.Banking.Beneficiaries.Update(ctx, "ben-id", updateRequest)
err = client.Banking.Beneficiaries.Delete(ctx, "ben-id")
err = client.Banking.Beneficiaries.Check(ctx, checkRequest)

Payouts

payout, err := client.Banking.Payouts.Create(ctx, &banking.CreatePayoutRequest{
    BeneficiaryID: "ben-123",
    Currency:      "SGD",
    Amount:        "50.00",
    PurposeCode:   "PERSONAL",
})

Virtual accounts

va, err := client.Banking.VirtualAccounts.Create(ctx, &banking.CreateVirtualAccountRequest{
    Currency: "SGD",
})

list, err := client.Banking.VirtualAccounts.List(ctx, &banking.ListVirtualAccountsRequest{
    PageSize: 20,
})

Conversions

quote, err := client.Banking.Conversions.CreateQuote(ctx, &banking.CreateQuoteRequest{
    SellCurrency: "SGD",
    BuyCurrency:  "USD",
    Amount:       "100",
    FixedSide:    "SELL",
})

conversion, err := client.Banking.Conversions.Create(ctx, &banking.CreateConversionRequest{
    QuoteID: quote.QuoteID,
})

conversions, err := client.Banking.Conversions.List(ctx, &banking.ListConversionsRequest{
    PageSize: 20,
})

dates, err := client.Banking.Conversions.ListConversionDates(ctx, nil)

Exchange rates

rates, err := client.Banking.ExchangeRates.List(ctx, &banking.ListExchangeRatesRequest{})