Whenever you issue loyalty to a customer in Vend, you should see this posted as an expense to your designated expense account in Xero. You should also see this amount accrue in your current liability account.
Once a customer redeems the loyalty, this will then be posted as a sale, and the loyalty payment will also be sent to your liability account in Xero to reduce it by the redeemed amount.
The loyalty expense account will track the full amount of loyalty that has been issued to customers. The liability account will increase as loyalty is issued, but when loyalty is redeemed the account will be debited - this account will track how much un-redeemed loyalty has been accrued (and can therefore also tell you how much has been redeemed).
However, loyalty is gained on every sale regardless if a customer is attached to the sale or not. So although no customer is associated with the sale at the time of processing, they can sign up later to claim the loyalty points which they would have accrued in store.
Vend sends this loyalty to Xero because it is possible for a customer to sign up for your loyalty program and redeem the loyalty "earned" on their most recent sale. This loyalty sign up expires in Vend after a certain number of days, but Vend doesn't reflect this expired loyalty in Xero.