Can I use CompleteSale API to mark Paid and Shipped flags for a specific transaction that is part of the Order ?
You can use CompleteSale mark each individual transaction of an Order as Paid and Shipped at a time if you are not shipping the Order in one package. Doing so only changes the status for that individual transaction.
Keep in mind that even though you have marked every single transaction as Paid and Shipped for that Order, PaidTime (report in GetOrders or GetOrderTransactions response) will not be set for the Order in question.
In order to have both PaidTime and ShippedTime properties marked, you will need to pass the OrderID in the request and make the CompleteSale call once all the transactions have been shipped.