user2751: AFAIU, copay's server implementation is bitcore-wallet-service.
From its README, I can deduce that a multi-sig wallet will use the /v1/txproposals/ endpoint to create a new transaction proposal that the other co-signers will receive.
But, if the wallet is not multi-sig, what's the endpoint for broadcasting a transaction?

user85073: I think I should leave a comment with a small correction to the flow ematiu posted after 1 day trying to figure out why I couldn't sign my transaction.
the actual flow is:
create => publish => get published => sign => broadcast.
this is because, in order to sign a transaction proposal we need a proposalSignature in the txProposal object. We only get this signature by fetching from the bws
Bitcore-wallet-client "Server response could not be verified"

user12146: Multisig and singlesig wallets use the same flow. A Tx proposal need to be created in singlesig wallets also. Copay syncronize across devices, so you can have a non-signing copayers in a 1-1 wallet that submit proposals, for later approval.
The flow is:
create => publish => sign => broadcast.
You can check the official client https://github.com/bitpay/bitcore-wallet-client for details, and also the CLI client should be useful to see examples:
https://github.com/bitpay/bitcore-wallet

2751: <p>AFAIU, copay's server implementation is <a href="https://github.com/bitpay/bitcore-wallet-service" rel="nofollow">bitcore-wallet-service</a>.</p>

<p>From its README, I can deduce that a multi-sig wallet will use the <a href="https://github.com/bitpay/bitcore-wallet-service/blob/master/lib/model/txproposal.js" rel="nofollow"><code>/v1/txproposals/</code></a> endpoint to create a new transaction proposal that the other co-signers will receive.</p>

<p>But, if the wallet is not multi-sig, what's the endpoint for broadcasting a transaction?</p>
 85073: <p>I think I should leave a comment with a small correction to the flow ematiu posted after 1 day trying to figure out why I couldn't sign my transaction.</p>

<p>the actual flow is:
create => publish => get published => sign => broadcast.</p>

<p>this is because, in order to sign a transaction proposal we need a proposalSignature in the txProposal object. We only get this signature by fetching from the bws</p>

<p><a href="https://bitcoin.stackexchange.com/questions/77160/bitcore-wallet-client-server-response-could-not-be-verified/77175#77175">Bitcore-wallet-client &quot;Server response could not be verified&quot;</a></p>
 12146: <p>Multisig and singlesig wallets use the same flow. A Tx proposal need to be created in singlesig wallets also. Copay syncronize across devices, so you can have a non-signing copayers in a 1-1 wallet that submit proposals, for later approval.</p>

<p>The flow is:</p>

<p>create => publish => sign => broadcast.</p>

<p>You can check the official client <a href="https://github.com/bitpay/bitcore-wallet-client">https://github.com/bitpay/bitcore-wallet-client</a> for details, and also the CLI client should be useful to see examples:
<a href="https://github.com/bitpay/bitcore-wallet">https://github.com/bitpay/bitcore-wallet</a></p>
