When all needed information is ready, make an estimation for this transfer first. Then, submit an on-chain send transaction. Poll getTransferStatus for this transaction until the transfer is complete or needs a refund.
When the transfer status is TRANSFER_TO_BE_REFUNDED, cBridge gateway will prepare on-chain refund transaction info automatically within several minutes. Polling getTransferStatus and submit on-chain transaction based on failed transfer type.