There are two types of integration, when the partner has a custodial wallet and when it is not.
1. Instead of the usual deposit addresses for tokens, the platform generates special addresses for users, called ICAP addresses, they look like this: XE00USXLATK123123123 ( can be generated for free as much as needed, on the platform side). When a user makes a withdrawal to such an address from the Orderbook or from Raison, the tokens will come directly to your operational wallet (you specify which one, this is configured in the contract). And in the token transfer transaction itself, there will be a TransferToICAP event (XE00USXLATK123123123, amount, ...). Thus, tokens will always come immediately to your wallet, and by the unique ICAP you will understand which user to replenish. In this case, you do not need to engage in any forwarding of tokens, everything happens automatically.
2. When a user has passed KYC, from your operational address you send data about the country and KYC status of this user address to a special contract, after which Utoken can be transferred to the user's address.