You can not craft a link that contains a POST body. So you will have to go a somewhat different route.
You will need to create your own page that contains the payload:
<form action="http://target.com" method="post" onload="this.submit()">
<input type="hidden" value="payload" name="fieldname">
</form>
Or you can achieve the same effect just using the JavaScript fetch API. Then you need to trick the victim into visiting this page.
This will be a little bit harder since the URL will be different and perhaps look a bit fishy. If you want to avoid that, you can go looking for open redirect vulnerabilities and leverage them to take the victim to your page.
Of course, if the payload is stored on the server, and displayed on a page that can be visited later, this is much simpler - just make the victim visit that page. This is what is called stored XSS.