Can cash or $0 transaction refund trigger v2 webhook "refund.created" or "refund.updated"

We use createOrderV2 API to create a 0 total amount order to square and we want to log it in case people refund this order on ipad.

Unfortunately not. If you create a $0 order (using PayOrder), it will not actually show up in your payments (API - it will show up in the Square Dashboard), due to no payment taking place, thus you won’t be able to refund anything.