If I want to give a new payment ID to each customer what tools can I use to do so automatically?

Is there a way to generate a (random) payment ID using simplewallet or bitmonerod?

What are the benefits of using integrated addresses instead of a separate Monero address and payment ID?

4 Answers 4


simplewallet will create a random payment id for you with the "integrated_address" command (and give you the matching integrated address too). This is available via RPC as well if you want this automated.

The advantage of integrated addresses are (1) convenience of having one piece of data instead of two, and (2) familiarity with people who never saw anything but Bitcoin and its clones, where the concept of payment id seems difficult to get. Integrated addresses carry all information while not straying from the familiar at first look.

The GUI will automatically generate a random payment ID when you click on the matching button on the receive page, and display it along the resulting integrated address.

Note the included payment tracking feature in the GUI, where a QR code with that address and optional amount is displayed: the GUI will automatically track and report incoming payments using that payment ID, so that screen can be used as a simple "point of sale" payment terminal (just click to regenerate a new payment id for each customer).


See Creating a Payment ID

On GNU/Linux just type openssl rand 32 -hex on a terminal.

  • 1
    This is a great solution, but the correct command is openssl rand -hex 32. Pay attention to the position of -hex. Otherwise you will see this error message rand: Use -help for summary..
    – rocksteady
    Commented Jul 20, 2018 at 7:59

Here are a couple other methods you can use in linux to generate payment ids.

od -N32 -An -tx1 < /dev/random | tr -d '[:space:]

and if you want to use as few linux dependencies as possible, you can use,

rand=$(awk 'BEGIN{srand();for(i=1;i<=64;i++)printf "%x", int(rand()*16)}')
echo $rand

if you are really lazy, you could also use the website here that generates random strings of the appropriate format.

Conversely you can now use the wallet itself to generate an address with the payment id integrated into it, This is called an "integrated address".

In the CLI wallet simply use the command,


the GUI also has integrated addresses as an option when sending funds.


The easiest way to generate a payment ID is with Monero Core, the official Monero GUI. You can download it here for many different systems.

Under "transfer", you can generate a payment ID easily.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.