T&Cs acceptance conventionally takes the form of a required checkbox on the payment screen, typically the last element on the page before the call to action. This is also how we do it in our apps.
I think this makes more sense than anywhere else, because the T&Cs apply specifically to the transaction, and while the entire process could be defined as a "transaction", the actual transaction takes place when the customer clicks the "Buy now" (or whatever) button.
I have countless times been flying through a checkout process, entered c/c info, clicked to buy, and received the error "You must accept the Terms & Conditions". Some designers might consider this a snag, or a point of friction in the flow, but I'd argue that this is exactly when and where you need friction like this.
I think it's a mistake to separate the acceptance of T&Cs from the actual transaction, just for the sake of saving the user a single click in the middle of a purchase flow.