Hey Catalin!
The problem is that I don’t assume anything on the method contract B, as I do not own it.
I can only assume that I own contract A, and that the method of contract B sends tokens to the caller.
Is there a way for contract A to detect which tokens are received?
There's not really any way, as the transfers and the callback happen independently