import cobo_waas2
from cobo_waas2.models.top_up_address import TopUpAddress
from cobo_waas2.rest import ApiException
from pprint import pprint
# See configuration.py for a list of all supported configurations.
configuration = cobo_waas2.Configuration(
# Replace `<YOUR_PRIVATE_KEY>` with your private key
api_private_key="<YOUR_PRIVATE_KEY>",
# Select the development environment. To use the production environment, change the URL to https://api.cobo.com/v2.
host="https://api.dev.cobo.com/v2",
)
# Enter a context with an instance of the API client
with cobo_waas2.ApiClient(configuration) as api_client:
# Create an instance of the API class
api_instance = cobo_waas2.PaymentApi(api_client)
token_id = "ETH_USDT"
custom_payer_id = "payer_0001"
merchant_id = "M1001"
try:
# Get top-up address
api_response = api_instance.get_top_up_address(
token_id, custom_payer_id, merchant_id=merchant_id
)
print("The response of PaymentApi->get_top_up_address:\n")
pprint(api_response)
except Exception as e:
print("Exception when calling PaymentApi->get_top_up_address: %s\n" % e)
// Import classes:
import com.cobo.waas2.ApiClient;
import com.cobo.waas2.ApiException;
import com.cobo.waas2.Configuration;
import com.cobo.waas2.Env;
import com.cobo.waas2.api.PaymentApi;
import com.cobo.waas2.model.*;
public class Example {
public static void main(String[] args) {
ApiClient defaultClient = Configuration.getDefaultApiClient();
// Select the development environment. To use the production environment, replace `Env.DEV` with
// `Env.PROD
defaultClient.setEnv(Env.DEV);
// Replace `<YOUR_PRIVATE_KEY>` with your private key
defaultClient.setPrivKey("<YOUR_PRIVATE_KEY>");
PaymentApi apiInstance = new PaymentApi();
String tokenId = "ETH_USDT";
String customPayerId = "payer_0001";
String merchantId = "M1001";
try {
TopUpAddress result = apiInstance.getTopUpAddress(tokenId, customPayerId, merchantId);
System.out.println(result);
} catch (ApiException e) {
System.err.println("Exception when calling PaymentApi#getTopUpAddress");
System.err.println("Status code: " + e.getCode());
System.err.println("Reason: " + e.getResponseBody());
System.err.println("Response headers: " + e.getResponseHeaders());
e.printStackTrace();
}
}
}
package main
import (
"context"
"fmt"
coboWaas2 "github.com/CoboGlobal/cobo-waas2-go-sdk/cobo_waas2"
"github.com/CoboGlobal/cobo-waas2-go-sdk/cobo_waas2/crypto"
"os"
)
func main() {
tokenId := "ETH_USDT"
customPayerId := "payer_0001"
merchantId := "M1001"
configuration := coboWaas2.NewConfiguration()
// Initialize the API client
apiClient := coboWaas2.NewAPIClient(configuration)
ctx := context.Background()
// Select the development environment. To use the production environment, replace coboWaas2.DevEnv with coboWaas2.ProdEnv
ctx = context.WithValue(ctx, coboWaas2.ContextEnv, coboWaas2.DevEnv)
// Replace `<YOUR_PRIVATE_KEY>` with your private key
ctx = context.WithValue(ctx, coboWaas2.ContextPortalSigner, crypto.Ed25519Signer{
Secret: "<YOUR_PRIVATE_KEY>",
})
resp, r, err := apiClient.PaymentAPI.GetTopUpAddress(ctx).
TokenId(tokenId).
CustomPayerId(customPayerId).
MerchantId(merchantId).
Execute()
if err != nil {
fmt.Fprintf(os.Stderr, "Error when calling `PaymentAPI.GetTopUpAddress``: %v\n", err)
fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
}
// response from `GetTopUpAddress`: TopUpAddress
fmt.Fprintf(os.Stdout, "Response from `PaymentAPI.GetTopUpAddress`: %v\n", resp)
}
const CoboWaas2 = require("@cobo/cobo-waas2");
// Initialize the API client
const apiClient = CoboWaas2.ApiClient.instance;
// Select the development environment. To use the production environment, replace `Env.DEV` with `Env.PROD`
apiClient.setEnv(CoboWaas2.Env.DEV);
// Replace `<YOUR_PRIVATE_KEY>` with your private key
apiClient.setPrivateKey("<YOUR_PRIVATE_KEY>");
// Call the API
const apiInstance = new CoboWaas2.PaymentApi();
const token_id = "ETH_USDT";
const custom_payer_id = "payer_0001";
const opts = {
merchant_id: "M1001",
};
apiInstance.getTopUpAddress(token_id, custom_payer_id, opts).then(
(data) => {
console.log("API called successfully. Returned data: " + data);
},
(error) => {
console.error(error);
},
);
{
"address": "0x1234567890abcdef...",
"payer_id": "P20250619T0310056d7aa",
"custom_payer_id": "user_abc_10001",
"merchant_id": "M1001",
"token_id": "ETH_USDT",
"min_amount": "0.1",
"chain": "ETH",
"developer_fee_rate": "0.01",
"created_timestamp": 1744689600,
"updated_timestamp": 1744689600
}{
"error_code": 123,
"error_message": "<string>",
"error_id": "0b6ddf19083c4bd1a9ca01bec44b24dd"
}{
"error_code": 123,
"error_message": "<string>",
"error_id": "0b6ddf19083c4bd1a9ca01bec44b24dd"
}Create/Get top-up address
This operation creates or retrieves a unique top-up address for a payer.
In the request, you need to provide the custom_payer_id parameter to identify the payer in your system and link them to the top-up address.
- If no address exists for the payer on the specified chain, a new address will be created and returned.
- If an address already exists for the payer on the specified chain, the existing address details will be returned.
You can also provide the merchant_id parameter to specify the merchant to which the payer belongs. If not provided, the default merchant will be used.
import cobo_waas2
from cobo_waas2.models.top_up_address import TopUpAddress
from cobo_waas2.rest import ApiException
from pprint import pprint
# See configuration.py for a list of all supported configurations.
configuration = cobo_waas2.Configuration(
# Replace `<YOUR_PRIVATE_KEY>` with your private key
api_private_key="<YOUR_PRIVATE_KEY>",
# Select the development environment. To use the production environment, change the URL to https://api.cobo.com/v2.
host="https://api.dev.cobo.com/v2",
)
# Enter a context with an instance of the API client
with cobo_waas2.ApiClient(configuration) as api_client:
# Create an instance of the API class
api_instance = cobo_waas2.PaymentApi(api_client)
token_id = "ETH_USDT"
custom_payer_id = "payer_0001"
merchant_id = "M1001"
try:
# Get top-up address
api_response = api_instance.get_top_up_address(
token_id, custom_payer_id, merchant_id=merchant_id
)
print("The response of PaymentApi->get_top_up_address:\n")
pprint(api_response)
except Exception as e:
print("Exception when calling PaymentApi->get_top_up_address: %s\n" % e)
// Import classes:
import com.cobo.waas2.ApiClient;
import com.cobo.waas2.ApiException;
import com.cobo.waas2.Configuration;
import com.cobo.waas2.Env;
import com.cobo.waas2.api.PaymentApi;
import com.cobo.waas2.model.*;
public class Example {
public static void main(String[] args) {
ApiClient defaultClient = Configuration.getDefaultApiClient();
// Select the development environment. To use the production environment, replace `Env.DEV` with
// `Env.PROD
defaultClient.setEnv(Env.DEV);
// Replace `<YOUR_PRIVATE_KEY>` with your private key
defaultClient.setPrivKey("<YOUR_PRIVATE_KEY>");
PaymentApi apiInstance = new PaymentApi();
String tokenId = "ETH_USDT";
String customPayerId = "payer_0001";
String merchantId = "M1001";
try {
TopUpAddress result = apiInstance.getTopUpAddress(tokenId, customPayerId, merchantId);
System.out.println(result);
} catch (ApiException e) {
System.err.println("Exception when calling PaymentApi#getTopUpAddress");
System.err.println("Status code: " + e.getCode());
System.err.println("Reason: " + e.getResponseBody());
System.err.println("Response headers: " + e.getResponseHeaders());
e.printStackTrace();
}
}
}
package main
import (
"context"
"fmt"
coboWaas2 "github.com/CoboGlobal/cobo-waas2-go-sdk/cobo_waas2"
"github.com/CoboGlobal/cobo-waas2-go-sdk/cobo_waas2/crypto"
"os"
)
func main() {
tokenId := "ETH_USDT"
customPayerId := "payer_0001"
merchantId := "M1001"
configuration := coboWaas2.NewConfiguration()
// Initialize the API client
apiClient := coboWaas2.NewAPIClient(configuration)
ctx := context.Background()
// Select the development environment. To use the production environment, replace coboWaas2.DevEnv with coboWaas2.ProdEnv
ctx = context.WithValue(ctx, coboWaas2.ContextEnv, coboWaas2.DevEnv)
// Replace `<YOUR_PRIVATE_KEY>` with your private key
ctx = context.WithValue(ctx, coboWaas2.ContextPortalSigner, crypto.Ed25519Signer{
Secret: "<YOUR_PRIVATE_KEY>",
})
resp, r, err := apiClient.PaymentAPI.GetTopUpAddress(ctx).
TokenId(tokenId).
CustomPayerId(customPayerId).
MerchantId(merchantId).
Execute()
if err != nil {
fmt.Fprintf(os.Stderr, "Error when calling `PaymentAPI.GetTopUpAddress``: %v\n", err)
fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
}
// response from `GetTopUpAddress`: TopUpAddress
fmt.Fprintf(os.Stdout, "Response from `PaymentAPI.GetTopUpAddress`: %v\n", resp)
}
const CoboWaas2 = require("@cobo/cobo-waas2");
// Initialize the API client
const apiClient = CoboWaas2.ApiClient.instance;
// Select the development environment. To use the production environment, replace `Env.DEV` with `Env.PROD`
apiClient.setEnv(CoboWaas2.Env.DEV);
// Replace `<YOUR_PRIVATE_KEY>` with your private key
apiClient.setPrivateKey("<YOUR_PRIVATE_KEY>");
// Call the API
const apiInstance = new CoboWaas2.PaymentApi();
const token_id = "ETH_USDT";
const custom_payer_id = "payer_0001";
const opts = {
merchant_id: "M1001",
};
apiInstance.getTopUpAddress(token_id, custom_payer_id, opts).then(
(data) => {
console.log("API called successfully. Returned data: " + data);
},
(error) => {
console.error(error);
},
);
{
"address": "0x1234567890abcdef...",
"payer_id": "P20250619T0310056d7aa",
"custom_payer_id": "user_abc_10001",
"merchant_id": "M1001",
"token_id": "ETH_USDT",
"min_amount": "0.1",
"chain": "ETH",
"developer_fee_rate": "0.01",
"created_timestamp": 1744689600,
"updated_timestamp": 1744689600
}{
"error_code": 123,
"error_message": "<string>",
"error_id": "0b6ddf19083c4bd1a9ca01bec44b24dd"
}{
"error_code": 123,
"error_message": "<string>",
"error_id": "0b6ddf19083c4bd1a9ca01bec44b24dd"
}import cobo_waas2
from cobo_waas2.models.top_up_address import TopUpAddress
from cobo_waas2.rest import ApiException
from pprint import pprint
# See configuration.py for a list of all supported configurations.
configuration = cobo_waas2.Configuration(
# Replace `<YOUR_PRIVATE_KEY>` with your private key
api_private_key="<YOUR_PRIVATE_KEY>",
# Select the development environment. To use the production environment, change the URL to https://api.cobo.com/v2.
host="https://api.dev.cobo.com/v2",
)
# Enter a context with an instance of the API client
with cobo_waas2.ApiClient(configuration) as api_client:
# Create an instance of the API class
api_instance = cobo_waas2.PaymentApi(api_client)
token_id = "ETH_USDT"
custom_payer_id = "payer_0001"
merchant_id = "M1001"
try:
# Get top-up address
api_response = api_instance.get_top_up_address(
token_id, custom_payer_id, merchant_id=merchant_id
)
print("The response of PaymentApi->get_top_up_address:\n")
pprint(api_response)
except Exception as e:
print("Exception when calling PaymentApi->get_top_up_address: %s\n" % e)
// Import classes:
import com.cobo.waas2.ApiClient;
import com.cobo.waas2.ApiException;
import com.cobo.waas2.Configuration;
import com.cobo.waas2.Env;
import com.cobo.waas2.api.PaymentApi;
import com.cobo.waas2.model.*;
public class Example {
public static void main(String[] args) {
ApiClient defaultClient = Configuration.getDefaultApiClient();
// Select the development environment. To use the production environment, replace `Env.DEV` with
// `Env.PROD
defaultClient.setEnv(Env.DEV);
// Replace `<YOUR_PRIVATE_KEY>` with your private key
defaultClient.setPrivKey("<YOUR_PRIVATE_KEY>");
PaymentApi apiInstance = new PaymentApi();
String tokenId = "ETH_USDT";
String customPayerId = "payer_0001";
String merchantId = "M1001";
try {
TopUpAddress result = apiInstance.getTopUpAddress(tokenId, customPayerId, merchantId);
System.out.println(result);
} catch (ApiException e) {
System.err.println("Exception when calling PaymentApi#getTopUpAddress");
System.err.println("Status code: " + e.getCode());
System.err.println("Reason: " + e.getResponseBody());
System.err.println("Response headers: " + e.getResponseHeaders());
e.printStackTrace();
}
}
}
package main
import (
"context"
"fmt"
coboWaas2 "github.com/CoboGlobal/cobo-waas2-go-sdk/cobo_waas2"
"github.com/CoboGlobal/cobo-waas2-go-sdk/cobo_waas2/crypto"
"os"
)
func main() {
tokenId := "ETH_USDT"
customPayerId := "payer_0001"
merchantId := "M1001"
configuration := coboWaas2.NewConfiguration()
// Initialize the API client
apiClient := coboWaas2.NewAPIClient(configuration)
ctx := context.Background()
// Select the development environment. To use the production environment, replace coboWaas2.DevEnv with coboWaas2.ProdEnv
ctx = context.WithValue(ctx, coboWaas2.ContextEnv, coboWaas2.DevEnv)
// Replace `<YOUR_PRIVATE_KEY>` with your private key
ctx = context.WithValue(ctx, coboWaas2.ContextPortalSigner, crypto.Ed25519Signer{
Secret: "<YOUR_PRIVATE_KEY>",
})
resp, r, err := apiClient.PaymentAPI.GetTopUpAddress(ctx).
TokenId(tokenId).
CustomPayerId(customPayerId).
MerchantId(merchantId).
Execute()
if err != nil {
fmt.Fprintf(os.Stderr, "Error when calling `PaymentAPI.GetTopUpAddress``: %v\n", err)
fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
}
// response from `GetTopUpAddress`: TopUpAddress
fmt.Fprintf(os.Stdout, "Response from `PaymentAPI.GetTopUpAddress`: %v\n", resp)
}
const CoboWaas2 = require("@cobo/cobo-waas2");
// Initialize the API client
const apiClient = CoboWaas2.ApiClient.instance;
// Select the development environment. To use the production environment, replace `Env.DEV` with `Env.PROD`
apiClient.setEnv(CoboWaas2.Env.DEV);
// Replace `<YOUR_PRIVATE_KEY>` with your private key
apiClient.setPrivateKey("<YOUR_PRIVATE_KEY>");
// Call the API
const apiInstance = new CoboWaas2.PaymentApi();
const token_id = "ETH_USDT";
const custom_payer_id = "payer_0001";
const opts = {
merchant_id: "M1001",
};
apiInstance.getTopUpAddress(token_id, custom_payer_id, opts).then(
(data) => {
console.log("API called successfully. Returned data: " + data);
},
(error) => {
console.error(error);
},
);
Authorizations
The API key. For more details, refer to API key.
In the API playground, enter your API secret, and your API key will be accordingly calculated.
Query Parameters
The token ID, which is a unique identifier that specifies both the blockchain network and cryptocurrency token in the format {CHAIN}_{TOKEN}. Supported values include:
- USDC:
ETH_USDC,ARBITRUM_USDCOIN,SOL_USDC,BASE_USDC,MATIC_USDC2,BSC_USDC - USDT:
TRON_USDT,ETH_USDT,ARBITRUM_USDT,SOL_USDT,BASE_USDT,MATIC_USDT,BSC_USDT
Unique customer identifier on the merchant side, used to allocate a dedicated top-up address
The merchant ID.
Response
The request was successful.
The dedicated top-up address assigned to a specific payer under a merchant on a specified chain.
"0x1234567890abcdef..."
A unique identifier assigned by Cobo to track and identify individual payers.
"P20250619T0310056d7aa"
A unique identifier assigned by the developer to track and identify individual payers in their system.
"user_abc_10001"
The merchant ID.
"M1001"
The token ID, which is a unique identifier that specifies both the blockchain network and cryptocurrency token in the format {CHAIN}_{TOKEN}.
"ETH_USDT"
The minimum top-up amount allowed for this address. Top-ups below this threshold will not be credited to merchant or developer funds.
"0.1"
The chain ID.
"ETH"
The developer fee rate applied to top-up transactions made to this address. Expressed as a decimal string where "0.1" represents 10%.
"0.01"
The creation time of the top-up address, represented as a UNIX timestamp in seconds.
1744689600
The last update time of the top-up address, represented as a UNIX timestamp in seconds.
1744689600
