Skip to content

Profiles

Profiles define which wallet will be used for address generation and to which callback URL related events should be sent.

List Profiles

This endpoint retrieves all profiles.

HTTP Request

GET /v1/profiles/

python
profiles = uniwire_api_request('/v1/profiles/')
javascript
uniwire_api_request('/v1/profiles/').then(function (response) {
    console.log(response);
}).catch(function (error) {
    console.log(error);
});

The above command returns JSON structured like this:

json
{
  "result": [
    {
      "id": "<id>",
      "account": "SUB ACCOUNT",
      "account_id": "<account-id>",
      "name": "My Profile",
      "invoice_expiration": 600,
      "addresses_expiration": 3600,
      "allow_smart_contract_payouts": false,
      "stablecoin_precision": 6,
      "currencies": [
        {
          "kind": "BTC",
          "network": "mainnet",
          "wallet_id": "<wallet_id>",
          "custom_fee": null,
          "min_confirmations": 6,
          "zero_conf_max_amount": "100000000000000000000"
        },
        {
          "kind": "BTC_LIGHTNING",
          "network": "mainnet",
          "wallet_id": "<wallet_id>",
          "custom_fee": null,          "min_confirmations": 6
        },
        {
          "kind": "TRX",
          "network": "mainnet",
          "wallet_id": "<wallet_id>",
          "custom_fee": null,
          "min_confirmations": 20
        },
        {
          "kind": "USDC-TRX",
          "network": "mainnet",
          "wallet_id": "<wallet_id>",
          "custom_fee": null,
          "min_confirmations": 20
        }
      ],
      "reserve_wallet": {
        "kind": "TRX",
        "network": "mainnet",
        "wallet_id": "<wallet_id>"
      },
      "acceptance_range": {
        "positive_difference": "0.0010",
        "negative_difference": "10.0000"
      },
      "notification_email": null,
      "notification_email_kinds": [
        "payout_complete",
        "payout_confirmed"
      ],
      "callback_url": "https://localhost:8000",
      "onramper_api_key": "<api-key>"
    }
  ]
}

Get Profile

This endpoint retrieves a specific profile.

HTTP Request

GET /v1/profiles/<ID>/

URL Parameters

ParameterDescription
IDThe ID of the profile to retrieve
python
profiles = uniwire_api_request('/v1/profiles/123/')
javascript
uniwire_api_request('/v1/profiles/123/').then(function (response) {
    console.log(response);
}).catch(function (error) {
    console.log(error);
});

The above command returns JSON structured like this:

json
{
  "result": {
    "id": "<id>",
      "account": "SUB ACCOUNT",
      "account_id": "<account-id>",
      "name": "My Profile",
      "invoice_expiration": 600,
      "addresses_expiration": 3600,
      "allow_smart_contract_payouts": false,
      "stablecoin_precision": 6,
      "currencies": [
        {
          "kind": "BTC",
          "network": "mainnet",
          "wallet_id": "<wallet_id>",
          "custom_fee": null,
          "min_confirmations": 6,
          "zero_conf_max_amount": "100000000000000000000"
        },
        {
          "kind": "BTC_LIGHTNING",
          "network": "mainnet",
          "wallet_id": "<wallet_id>",
          "custom_fee": null,
          "min_confirmations": 6
        },
        {
          "kind": "TRX",
          "network": "mainnet",
          "wallet_id": "<wallet_id>",
          "custom_fee": null,
          "min_confirmations": 20
        },
        {
          "kind": "USDC-TRX",
          "network": "mainnet",
          "wallet_id": "<wallet_id>",
          "custom_fee": null,
          "min_confirmations": 20
        }
      ],
      "reserve_wallet": {
        "kind": "TRX",
        "network": "mainnet",
        "wallet_id": "<wallet_id>"
      },
      "acceptance_range": {
        "positive_difference": "0.0010",
        "negative_difference": "10.0000"
      },
      "notification_email": null,
      "notification_email_kinds": [
        "payout_complete",
        "payout_confirmed"
      ],
      "callback_url": "https://localhost:8000",
      "onramper_api_key": "<api-key>"
  }
}

Create Profile

This endpoint allows creating profile. Editable fields: name,notification_email,invoice_expiration,addresses_expiration,notification_email_kinds,onramper_api_key,allow_smart_contract_payouts,stablecoin_precision,acceptance_range,reserve_wallet,callback_url,currencies.

HTTP Request

POST /v1/profiles/

Payload Parameters

ParameterDescriptionRequired
nameText field maximum length 256Yes
notification_emailMust be valid emailNo
invoice_expirationInteger representing value in seconds. Valid values are:
60 – 1 min
120 – 2 min
300 – 5 min
600 – 10 min
900 – 15 min
1800 – 30 min
3600 – 1 hours
7200 – 2 hours
21600 – 6 hours
43200 – 12 hours
86400 – 24 hours
172800 – 2 days
604800 – 7 days
1209600 – 14 days
No
addresses_expirationInteger representing value in seconds. Valid values are:
3600 – 1 hour
7200 – 2 hours
21600 – 6 hours
43200 – 12 hours
86400 – 24 hours
172800 – 2 days
604800 – 7 days
1209600 – 14 days
No
notification_email_kindsString representing notification email triggers. Valid values are invoice_pending, invoice_confirmed, invoice_complete, invoice_incomplete, transaction_pending, transaction_confirmed, transaction_complete, payout_pending, payout_confirmed, payout_complete
Multiple values can be separated by comma. To clear set value to null
No
onramper_api_keyString representing API key. To enable Onramper integration for IFRAME widget provide https://www.onramper.com/ API key. To clear set value to nullNo
allow_smart_contract_payoutsBoolean, True/FalseNo
stablecoin_precisionInteger, Range: 0-6No
acceptance_rangeObject representing negative and positive % difference of Acceptance Range.No
reserve_walletObject representing reserve wallet. If there are not sufficient funds for requested payout then specified reserve wallet will be used to perform an auto conversion into necessary cryptocurrency and once done payout will be auto processed.No
callback_urlString representing valid URL where callbacks will be sentNo
currenciesObject representing enabled currencies in profile. Must contain currency kind key object with keys wallet,custom_fee, min_confirmations.

Available values for currency key:
BTC – Bitcoin On-chain conversion.
BTC_LIGHTNING_TO_BTC – Lightning Network to On-Chain.
LTC – Litecoin.
ETH – Ethereum.
BNB – Binance Coin (on BSC).
TRX – Tron.
SOL – Solana.
XRP – Ripple.
DOGE – Dogecoin.

Liquid network:
L-BTC – Liquid Bitcoin.
L-USDT – Tether on Liquid.

Ethereum ERC-20 Tokens:
ETH_USDT – Tether.
ETH_TUSD – True USD.
ETH_USDC – USD Coin.
ETH_PAX – Paxos Standard.
ETH_GUSD – Gemini Dollar.
ETH_DAI – DAI.
ETH_SAND – The Sandbox.
ETH_SHIB – Shiba Inu.
ETH_BUSD – Binance USD

Binance Smart Chain (BSC) BEP-20 Tokens:
ETH-BSC – Binance-pegged Ethereum.
USDC-BSC – USD Coin.
DAI-BSC – DAI.
SHIB-BSC – Shiba Inu.
BUSD – Binance USD.
WBNB – Wrapped BNB.

Tron TRC-20 Tokens:
USDT-TRX – Tether.
USDC-TRX – USD Coin.

Solana SPL Tokens:
USDT-SOL – Tether.
USDC-SOL – USD Coin.

Not provided currencies will be disabled.
Yes
python
import json

payload = {
    'name': 'My Profile',
    'invoice_expiration': 600,
    'addresses_expiration': 3600,
    'notification_email_kinds': 'payout_complete,payout_confirmed',
    'onramper_api_key': 'XXXXXXXXXXXXXX',
    'allow_smart_contract_payouts': False,
    'stablecoin_precision': 6,
    'acceptance_range': {
        'negative_difference': 10,
        'positive_difference': '0.001',
    },
    'callback_url': 'https://localhost:8000',
    'reserve_wallet': {
        'wallet': '<wallet_id>',
        'kind': 'TRX',
    },
    'currencies': [
        {
            'kind': 'BTC',
            'wallet_id': '<wallet_id>',
            'custom_fee': None,
            'min_confirmations': 6,
            'zero_conf_max_amount': '1000',
        },
        {
            'kind': 'BTC_LIGHTNING',
            'wallet_id': '<wallet_id>',
            'custom_fee': None,
            'min_confirmations': 6,
        },
        {
            'kind': 'TRX',
            'wallet_id': '<wallet_id>',
            'custom_fee': None,
            'min_confirmations': 20,
        },
        {
            'kind': 'USDC-TRX',
            'wallet_id': '<wallet_id>',
            'custom_fee': None,
            'min_confirmations': 20,
        },
    ],
}
profile = uniwire_api_request('/v1/profiles/', payload, 'POST')
print(json.dumps(profile, indent=2))
javascript
let payload = {
  name: 'My Profile',
  invoice_expiration: 600,
  addresses_expiration: 3600,
  notification_email_kinds: 'payout_complete,payout_confirmed',
  onramper_api_key: 'XXXXXXXXXXXXXX',
  allow_smart_contract_payouts: false,
  stablecoin_precision: 6,
  acceptance_range: {
    'negative_difference': 10,
    'positive_difference': '0.001',
  },
  callback_url: 'https://localhost:8000',
  reserve_wallet: {
    wallet: '<wallet_id>',
    kind: 'TRX',
  },
  currencies: [
    {
      'kind': 'BTC',
      'wallet_id': '<wallet_id>',
      'custom_fee': None,
      'min_confirmations': 6,
      'zero_conf_max_amount': '1000',
    },
    {
      'kind': 'BTC_LIGHTNING',
      'wallet_id': '<wallet_id>',
      'custom_fee': None,
      'min_confirmations': 6,
    },
    {
      'kind': 'TRX',
      'wallet_id': '<wallet_id>',
      'custom_fee': None,
      'min_confirmations': 20,
    },
    {
      'kind': 'USDC-TRX',
      'wallet_id': '<wallet_id>',
      'custom_fee': None,
      'min_confirmations': 20,
    },
  ],
}
uniwire_api_request('/v1/profiles/', payload, 'POST').then(function(response) {
  console.log(response)
}).catch(function(error) {
  console.log(error)
})

JSON response for Create profile endpoint:

json
{
  "result": {
    "id": "<id>",
    "account": "SUB ACCOUNT",
    "account_id": "<account-id>",
    "name": "My Profile",
    "notification_email": null,
    "invoice_expiration": 600,
    "addresses_expiration": 3600,
    "notification_email_kinds": [
      "payout_complete",
      "payout_confirmed"
    ],
    "onramper_api_key": "XXXXXXXXXXXXXX",
    "allow_smart_contract_payouts": false,
    "stablecoin_precision": 6,
    "acceptance_range": {
      "positive_difference": "0.0010",
      "negative_difference": "10.0000"
    },
    "reserve_wallet": {
      "kind": "TRX",
      "network": "mainnet",
      "wallet": "<wallet_id>"
    },
    "callback_url": "https://localhost:8000",
    "currencies": [
      {
        "kind": "BTC",
        "network": "mainnet",
        "wallet_id": "<wallet_id>",
        "custom_fee": null,
        "min_confirmations": 6
      },
      {
        "kind": "TRX",
        "network": "mainnet",
        "wallet_id": "<wallet_id>",
        "custom_fee": null,
        "min_confirmations": 20
      },
      {
        "kind": "USDC-TRX",
        "network": "mainnet",
        "wallet_id": "<wallet_id>",
        "custom_fee": null,
        "min_confirmations": 20
      },
      {
        "kind": "BTC_LIGHTNING",
        "network": "mainnet",
        "wallet_id": "<wallet_id>",
        "custom_fee": null,
        "min_confirmations": 6
      }
    ]
  }
}

Update Profile

This endpoint allows updating profile. Editable fields: name,notification_email,invoice_expiration,addresses_expiration,notification_email_kinds,onramper_api_key,allow_smart_contract_payouts,stablecoin_precision,acceptance_range,reserve_wallet,callback_url,currencies.

HTTP Request

PUT https://api.uniwire.com/v1/profiles/<ID>/

URL Parameters

ParameterDescription
IDThe ID of the profile to retrieve

Payload Parameters

ParameterDescription
nameText field maximum length 256
notification_emailMust be valid email
invoice_expirationInteger representing value in seconds. Valid values are:
60 – 1 min
120 – 2 min
300 – 5 min
600 – 10 min
900 – 15 min
1800 – 30 min
3600 – 1 hours
7200 – 2 hours
21600 – 6 hours
43200 – 12 hours
86400 – 24 hours
172800 – 2 days
604800 – 7 days
1209600 – 14 days
addresses_expirationInteger representing value in seconds. Valid values are:
3600 – 1 hour
7200 – 2 hours
21600 – 6 hours
43200 – 12 hours
86400 – 24 hours
172800 – 2 days
604800 – 7 days
1209600 – 14 days
notification_email_kindsString representing notification email triggers. Valid values are invoice_pending, invoice_confirmed, invoice_complete, invoice_incomplete, transaction_pending, transaction_confirmed, transaction_complete, payout_pending, payout_confirmed, payout_complete
Multiple values can be separated by comma. To clear set value to null
onramper_api_keyString representing API key. To enable Onramper integration for IFRAME widget provide https://www.onramper.com/ API key. To clear set value to null
allow_smart_contract_payoutsBoolean, True/False
stablecoin_precisionInteger, Range: 0-6
acceptance_rangeObject representing negative and positive % difference of Acceptance Range.
reserve_walletObject representing reserve wallet. If there are not sufficient funds for requested payout then specified reserve wallet will be used to perform an auto conversion into necessary cryptocurrency and once done payout will be auto processed.
callback_urlString representing valid URL where callbacks will be sent
currenciesObject representing enabled currencies in profile. Must contain currency kind key object with keys wallet,custom_fee, min_confirmations.

Available values for currency key:
BTC – Bitcoin On-chain conversion.
BTC_LIGHTNING_TO_BTC – Lightning Network to On-Chain.
LTC – Litecoin.
ETH – Ethereum.
BNB – Binance Coin (on BSC).
TRX – Tron.
SOL – Solana.
XRP – Ripple.
DOGE – Dogecoin.

Liquid network:
L-BTC – Liquid Bitcoin.
L-USDT – Tether on Liquid.

Ethereum ERC-20 Tokens:
ETH_USDT – Tether.
ETH_TUSD – True USD.
ETH_USDC – USD Coin.
ETH_PAX – Paxos Standard.
ETH_GUSD – Gemini Dollar.
ETH_DAI – DAI.
ETH_SAND – The Sandbox.
ETH_SHIB – Shiba Inu.
ETH_BUSD – Binance USD

Binance Smart Chain (BSC) BEP-20 Tokens:
ETH-BSC – Binance-pegged Ethereum.
USDC-BSC – USD Coin.
DAI-BSC – DAI.
SHIB-BSC – Shiba Inu.
BUSD – Binance USD.
WBNB – Wrapped BNB.

Tron TRC-20 Tokens:
USDT-TRX – Tether.
USDC-TRX – USD Coin.

Solana SPL Tokens:
USDT-SOL – Tether.
USDC-SOL – USD Coin.

Not provided currencies will be disabled.
python
import json

payload = {
    'name': 'My Profile',
    'invoice_expiration': 600,
    'addresses_expiration': 3600,
    'notification_email_kinds': 'payout_complete,payout_confirmed',
    'onramper_api_key': 'XXXXXXXXXXXXXX',
    'allow_smart_contract_payouts': False,
    'stablecoin_precision': 6,
    'acceptance_range': {
        'negative_difference': 10,
        'positive_difference': '0.001',
    },
    'callback_url': 'https://localhost:8000',
    'reserve_wallet': {
        'wallet': '<wallet_id>',
        'kind': 'TRX',
    },
    'currencies': [
        {
            'kind': 'BTC',
            'wallet_id': '<wallet_id>',
            'custom_fee': None,
            'min_confirmations': 6,
            'zero_conf_max_amount': '1000',
        },
        {
            'kind': 'BTC_LIGHTNING',
            'wallet_id': '<wallet_id>',
            'custom_fee': None,
            'min_confirmations': 6,
        },
        {
            'kind': 'TRX',
            'wallet_id': '<wallet_id>',
            'custom_fee': None,
            'min_confirmations': 20,
        },
        {
            'kind': 'USDC-TRX',
            'wallet_id': '<wallet_id>',
            'custom_fee': None,
            'min_confirmations': 20,
        },
    ],
}
profile = uniwire_api_request('/v1/profiles/<id>', payload, 'PUT')
print(json.dumps(profile, indent=2))
javascript
let payload = {
  name: 'My Profile',
  invoice_expiration: 600,
  addresses_expiration: 3600,
  notification_email_kinds: 'payout_complete,payout_confirmed',
  onramper_api_key: 'XXXXXXXXXXXXXX',
  allow_smart_contract_payouts: false,
  stablecoin_precision: 6,
  acceptance_range: {
    'negative_difference': 10,
    'positive_difference': '0.001',
  },
  callback_url: 'https://localhost:8000',
  reserve_wallet: {
    wallet: '<wallet_id>',
    kind: 'TRX',
  },
  currencies: [
    {
      'kind': 'BTC',
      'wallet_id': '<wallet_id>',
      'custom_fee': None,
      'min_confirmations': 6,
      'zero_conf_max_amount': '1000',
    },
    {
      'kind': 'BTC_LIGHTNING',
      'wallet_id': '<wallet_id>',
      'custom_fee': None,
      'min_confirmations': 6,
    },
    {
      'kind': 'TRX',
      'wallet_id': '<wallet_id>',
      'custom_fee': None,
      'min_confirmations': 20,
    },
    {
      'kind': 'USDC-TRX',
      'wallet_id': '<wallet_id>',
      'custom_fee': None,
      'min_confirmations': 20,
    },
  ],
}
uniwire_api_request('/v1/profiles/<id>', payload, 'PUT').then(function(response) {
  console.log(response)
}).catch(function(error) {
  console.log(error)
})

JSON response for Create profile endpoint:

json
{
  "result": {
    "id": "<id>",
    "account": "SUB ACCOUNT",
    "account_id": "<account-id>",
    "name": "My Profile",
    "notification_email": null,
    "invoice_expiration": 600,
    "addresses_expiration": 3600,
    "notification_email_kinds": [
      "payout_complete",
      "payout_confirmed"
    ],
    "onramper_api_key": "XXXXXXXXXXXXXX",
    "allow_smart_contract_payouts": false,
    "stablecoin_precision": 6,
    "acceptance_range": {
      "positive_difference": "0.0010",
      "negative_difference": "10.0000"
    },
    "reserve_wallet": {
      "kind": "TRX",
      "network": "mainnet",
      "wallet": "<wallet_id>"
    },
    "callback_url": "https://localhost:8000",
    "currencies": [
      {
        "kind": "BTC",
        "network": "mainnet",
        "wallet_id": "<wallet_id>",
        "custom_fee": null,
        "min_confirmations": 6
      },
      {
        "kind": "TRX",
        "network": "mainnet",
        "wallet_id": "<wallet_id>",
        "custom_fee": null,
        "min_confirmations": 20
      },
      {
        "kind": "USDC-TRX",
        "network": "mainnet",
        "wallet_id": "<wallet_id>",
        "custom_fee": null,
        "min_confirmations": 20
      },
      {
        "kind": "BTC_LIGHTNING",
        "network": "mainnet",
        "wallet_id": "<wallet_id>",
        "custom_fee": null,
        "min_confirmations": 6
      }
    ]
  }
}

Delete Profile

This endpoint allows delete profile.

HTTP Request

DELETE https://api.uniwire.com/v1/profiles/<ID>/

URL Parameters

ParameterDescription
IDThe ID of the profile to delete
python
import json

payload = None
profile = uniwire_api_request('/v1/profiles/<id>', payload, 'DELETE')
print(json.dumps(profile, indent=2))
javascript
var payload = null
uniwire_api_request('/v1/profiles/<id>', payload, 'DELETE').then(function(response) {
  //
}).catch(function(error) {
  console.log(error);
});