Call this method if the only way to initiate a Payjoin with this receiver requires manual intervention, as in most consumer wallets.
So-called “non-interactive” receivers, like payment processors,
that allow arbitrary requests are otherwise vulnerable to probing attacks.
Call after checking that the Original PSBT can be broadcast.
Receiver MUST check that the Original PSBT from the sender can be broadcast, i.e. testmempoolaccept bitcoind rpc returns { “allowed”: true,.. } for gettransactiontocheckbroadcast() before calling this method.
Do this check if you generate bitcoin uri to receive Payjoin on sender request without manual human approval, like a payment processor. Such so called “non-interactive” receivers are otherwise vulnerable to probing attacks. If a sender can make requests at will, they can learn which bitcoin the receiver owns at no cost. Broadcasting the Original PSBT after some time in the failure case makes incurs sender cost and prevents probing.
Call this after checking downstream.