mtnPay use's a new concept of "intents" to validate a transactions authenticity as part of our security model. Inputs to your /pay api call are hashed into a public key and included onto your transaction. The public key is deterministic based on your input which means that transactions can be deemed secure by checking a transaction against your refrence key + intent key, pair.
The /intent endpoint matches the /pay endpoint query parameters 1:1. You should use it by passing the same query parameters you intend to pass along to your /pay api call.
This call should be made before you make the call to your /pay api call.
import requests #make HTTP requestswallet='Ar7XrWtrGsB2xCnrTFLs9HyJ1bA62gXCAUZa8Fa7VMc5'#receiverpayerToken ='usdc'size =0.1#base URLapi_url ='http://api.mtnapi.com/intent'#query string parametersparams ={'wallet': wallet,'size': size,'payerToken': payerToken}#make the GET requestintent_req = requests.get(url= api_url,params=params)# get the intent valueintent = intent_req.json()['intent']print(intent.xyz)