I have integrated Xero on our internal system (non blesta) and the flow is normally like this:
Choose your API application type (private, public, partner). The partner application type is normally best to use for integration as you can swap expired OAUTH tokens for new ones; public does not allow this so access is limited to 30 minutes then you have to re-auth
When creating an invoice (you can pass the Blesta Invoice Number into Xero to keep the Invoice Number's in sycn), first check if client email exists as a contact on Xero, if it does not create a new contact in Xero and store the Xero Contact GUID, else get the Xero Contact GUID if exists
Pass the stored Xero Contact GUID when creating the invoice and store the Xero Invoice GUID
When recording a transaction you will need to create an Xero Payment record and Xero Invoice GUID, the Xero Account ID (the bank account ID or the account code) and the payment date and amount
Calls are GET, PUT, POST when connecting to the Xero XPI
If you have any questions just get in touch via private message or here