Your request, at least how you describe it, isn't authenticated. This means that anyone at any time can send such a request and trigger a transaction.
I assume that TLS is a given, as you are using HTTPS in your example URL. This is of course a must have.
You need to implement the following mechanisms to protect your API against this problem:
Authentication: You should authenticate the user sending the request. There are many different authentication protocols available and the right choice depends on your architecture. It can be something straight forward like basic authentication or something more complex like a token based OAuth implementation.
CSRF Preotection: Again, I don't know your application architecture, but in case you have a web-frontend that triggers the API calls, CSRF might become an issue. In this case you must also ensure that CSRF protection is in place to avoid missuse.
Replay Protection: After implementing 1. and 2., you have to evaluate, if there is still a risk of replay attacks. If that's the case, you have to implement a scheme that ensures that a duplicate gets detected (e.g. every request has a random id that gets tracked).