Xero's App Store Partner certification checkpoints
A guide to getting Xero's App Store Partner certification with Codat
To receive the Xero App Store Partner certification, you must comply with Xero's certification checkpoints. You can review these in detail in Xero's own documentation.
This is Codat's companion guide on how to comply with these requirements. We strongly advise that you discuss Xero compliance with your Codat implementation specialist before starting to work on any of the points below.
Certification checkpoints
1. Sign up with Xero
Action required: significant
All apps seeking certification must create a user journey that takes potential customers from the Xero App Store to their app. The purpose of this is two-fold:
- It creates a quick and easy user experience for Xero users.
- It enables Xero to track which Xero users discover your app in the Xero App Store. Xero then charges a 15% referral fee for sign-ups generated by their App Store but does not monetise Xero connections that originate through your other customer acquisition channels.
You can use our Sign Up with Xero guide to decide which type of journey to build and how to do it with Codat.
2. Xero App Store
Action required: minimal or significant
Xero’s minimal requirements to your app are as follows:
- Provide your billing details.
- Create and submit your app listing for review.
- Implement App Store subscriptions.
The amount of work required to comply with this checkpoint depends on the nature of your app. The first two requirements are administrative and do not take long to complete. The third item requires engineering work to comply if you operate in UK, Australia, and New Zealand and have a commercial model that fits Xero’s criteria.
Speak with your Codat account team to check whether you should implement Commercial Billing or App Store subscriptions before you take any action.
3. Connection
Action required: significant
While Codat handles the initial connection to Xero via the Codat Link UI, Xero requires that you enable your user to manage this connection on an ongoing basis. Best practice is to create an "Integration settings" page to satisfy these requirements.
Requirement | Recommendations |
---|---|
Display the name of the tenant that has been connected | This can be retrieved from our Get company info endpoint. |
Display the current status of the connection. If disconnected, provide a button to reconnect to Xero | Use our Get connection endpoint to check the status of the connection and use the linkUrl to reconnect. |
Provide a button to terminate the connection | When a user clicks on the button, use our Delete connection endpoint to disconnect from Xero. |
Handle a disconnect from Xero's side | Use a webhook to listen to our DataConnectionStatusChanged event that identifies when a disconnect happens. When the alert is triggered, change the connection status in your UI and display a "Reconnect" or "Connect" button. Xero recommends setting a regular daily sync of light data types so you can check each connected company's connection status every day. |
Support one-to-one or multi-organizational connection | Codat allows your customers to select their Xero organization using the native Xero UI. You can enable them to connect to multiple organizations within Xero by creating a separate Codat company per organization. |
Provide a disconnection process for off-boarding | Use our Delete connection endpoint to prevent further syncs and querying of historically synced data. |
4. Branding and naming
Action required: minimal
You must be compliant with Xero's guidance wherever you mention your Xero Partnership or use their brand assets. To ensure compliance, review Xero's Brand guidelines and their Branding how-to-guide.
Xero recommends you use their own Connect and Disconnect buttons, but you can use a standard set of buttons for style consistency if your app has multiple integrations.
5. Scopes
Action required: minimal
Xero requires that apps have access strictly to the data they need, so you should only enable the scopes that are required to access data relevant to your use case. We provide a scopes guide to explain which scopes typically correspond to which use cases. Speak with your Codat implementation specialist and they will adjust your scopes appropriately once you have agreed on what is needed.
6. Error handling
Action required: moderate
If an error occurs, your app's UI should communicate that fact to the user. It is best practice to provide them with detailed error messages or logs. Codat provides detailed error messaging for any issues with the integration, including status codes, as listed in our Status codes and errors.
7. Data integrity
Action required: none or minimal
Most Codat implementations are fully compliant with this checkpoint without any additional work required. However, if your app handles multiple currencies, you should verify that you are handling multicurrency scenarios appropriately.
Before creating or updating transactional data, such as a payment in another currency, use our Get push options endpoint to see which currencies have been set up by your customer in Xero. Then proceed with creating or updating that transactional data.
You can also read more about creating, updating or deleting data with Codat.
8. Account and payment mapping
Action required: none or significant
This checkpoint is only relevant to certain apps that create, update or delete data in Xero.
Relevant apps must create an account mapping interface for their users. In preparation, we recommend you review Xero's best practice guide and Codat's implementation guide on account mapping interfaces.
9. Taxes
Action required: none or minimal
If your app handles tax, you need to ensure the correct tax rate is used on invoices, quotes, etc.
Codat can read tax rates as individual tax rates and on transactions, like invoices or payments. We also handle tax rate calculation when creating or updating transactions with tax rates where multiple tax components are applied to the effective tax rates (e.g. compound tax rates).
We do not currently support the creation of new tax rates, so you can only use existing rates in a SMB's Xero account. You may need to allow for mapping of tax rates in your account mapping page.