How To Cancel A Multisig Transaction

To cancel a multi-sig transaction, submit a transaction to the cancel action of the eosio.msig account.

In the example shown below useraaaaaaaa cancels the changeowner proposal, previously proposed by useraaaaaaaa.

(async () => {
  await api.transact({
    actions: [{
      account: 'eosio.msig',
      name: 'cancel',
      authorization: [{
        actor: 'useraaaaaaaa',
        permission: 'active',
      }],
      data: {
        proposer: 'useraaaaaaaa',
        proposal_name: 'changeowner',
        canceler: 'useraaaaaaaa'
      },
    }]
  }, {
    blocksBehind: 3,
    expireSeconds: 30,
    broadcast: true,
    sign: true
  });
})();

Note that if a previously proposed transaction has yet to expire, only the proposer of the transaction can cancel it.