Crypto Top-ups

Overview

A first-party crypto top-up allows a merchant to fund their own Confirmo account balance with cryptocurrency via the Confirmo API. This is useful for pre-loading your Confirmo account to cover payouts.

Generating top-up wallets

To generate static wallet addresses to which you can deposit funds, make a POST request to the https://confirmo.net/api/v3/topups/crypto/accounts endpoint.

curl --location 'https://confirmo.net/api/v3/topups/crypto/accounts' \
--header 'Authorization: Bearer <YOUR_CONFIRMO_API_KEY>' \
--header 'Content-Type: application/json' \
--data '<REQUEST_BODY>'

The body can look like the example below.

{
	"notifyUrl": "https://yourEShop.com/payoutProcess",
	"balanceAsset": "USD",
}

The notifyUrl field accepts a URL address to which you will receive all webhook notifications relating to incoming top-ups. Confirmo will send you a webhook for each new top-up and then each subsequent top-up state. The balanceAsset field specifies the target asset in which all top-ups will be settled. If you send a request without specifying this field then no conversion will take place on that set of wallets (top-ups will be settled to your Confirmo balance in the asset in which they were sent).

The response can look like in the example below.

{
  "addresses": [
    {
      "address": "0xd46faFF817D27c8C10edC580eB573cd4E8fC424d",
      "paymentMethodIds": [
        "ETHEREUM_BLOCKCHAIN_MAINNET_ETH_CURRENCY",
        "ETHEREUM_BLOCKCHAIN_MAINNET_USDC_STANDARD"
      ]
    }
  ],
  "createdAt": "2025-01-21T10:15:30Z",
  "id": "cda1a2b3c4d5e7f8",
  "updatedAt": "2025-02-01T08:00:00Z",
  "notifyUrl": "https://yourEShop.com/payoutProcess",
  "balanceAsset": "USD"
}

By calling this endpoint you will generate a set of addresses that are all linked with the id parameter. Each address then also contains a property paymentMethodIds which lists the available tokens and blockchain combinations that can be sent to that address.

💡

You can only generate one set of addresses for top-ups. This set will automatically contain all supported blockchains and payment methods.

Viewing top-up wallets

Once you have generated your vault with wallets you can view them by sending a GET request to https://confirmo.net/api/v3/topups/crypto/accounts.

curl --location 'https://confirmo.net/api/v3/topups/crypto/accounts' \
--header 'Authorization: Bearer <YOUR_CONFIRMO_API_KEY>' \
--header 'Content-Type: application/json' \
--data '<REQUEST_BODY>'

Sending a crypto top-up

Once you are ready to send a payment you can simply make a blockchain transaction to one of the addresses you generated. Double check the paymentMethodIds parameter for the correct blockchain and token combination to make sure you send the funds to the correct address.

When Confirmo recognises the payment on the blockchain we will send you a webhook to the address you specified in the notifyUrl parameter if provided during wallet creation. An example webhook can be seen below.

{
  "accountId": "dacybRnOmQ4JHX7",
  "paymentAmount": "0.01",
  "paymentAsset": "ETH",
  "balanceAmount": "7.4",
  "balanceAsset": "USD",
  "chain": "ETHEREUM-BLOCKCHAIN-SEPOLIA",
  "address": "0x55746A23De8F8bC0E1D583e6c60220CCaD89a82E",
  "receivedAt": 1773844921,
  "txHash": "0x9035acc2ec63bfb0b5852eba6ca872a33b9e85bfc7d83b60a1e81a6fb37418c1",
  "status": "CONFIRMING",
  "notifyUrl": "https://yourEShop.com/payoutProcess"
}

Once received, your payment will automatically be credited to your Confirmo balance and the funds will be made available to you. We will also send a webhook for this event with the status DONE.

The wallets you generate are permanent and unique to you. You can therefore generate them once, save them and reuse them for future top-ups.

❗️

Confirmo supports only first-party top-ups through this endpoint. We will only accept payments from parties that are associated with the given Confirmo account.