> ## Documentation Index
> Fetch the complete documentation index at: https://memberpulseptyltd.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Xero

> Accounting synchronization and financial reporting

## Overview

Xero integration keeps your financial records synchronized between MemberPulse and your Xero accounting software.

## Features

| Feature                | Description                         |
| ---------------------- | ----------------------------------- |
| Invoice Sync           | Automatically push invoices to Xero |
| Contact Sync           | Keep member records synchronized    |
| Payment Reconciliation | Match payments with invoices        |
| Revenue Recognition    | Track unearned and earned revenue   |

## Configuration

### Prerequisites

1. Create a Xero account at [xero.com](https://xero.com)
2. Set up a Xero app in the developer portal
3. Obtain OAuth2 credentials

#### Acceptance Criteria

##### Frontend

* [ ] Prerequisites workflow is implemented in the UI as described.

##### Backend / API

* [ ] Backend behavior supports Prerequisites as documented.

##### Permissions

* [ ] Access is restricted per the Capabilities matrix on this page (or equivalent role rules).

##### Business Rules

* [ ] All business rules for this feature are enforced.

##### Error Handling

* [ ] Error states return clear messages and appropriate HTTP status codes.

### Environment Variables

```bash theme={null}
XERO_CLIENT_ID=xxxxxxxxxxxx
XERO_CLIENT_SECRET=xxxxxxxxxxxx
XERO_REDIRECT_URI=https://app.memberpulse.com/auth/callback/xero
```

#### Acceptance Criteria

##### Frontend

* [ ] Environment Variables workflow is implemented in the UI as described.

##### Backend / API

* [ ] Backend behavior supports Environment Variables as documented.

##### Permissions

* [ ] Access is restricted per the Capabilities matrix on this page (or equivalent role rules).

##### Business Rules

* [ ] All business rules for this feature are enforced.

##### Error Handling

* [ ] Error states return clear messages and appropriate HTTP status codes.

### Platform Settings

Navigate to **Client Portal > Settings > Integrations > Xero**

| Setting            | Type   | Required | Description                     |
| ------------------ | ------ | -------- | ------------------------------- |
| Client ID          | Text   | Yes      | OAuth2 client ID                |
| Client Secret      | Secret | Yes      | OAuth2 client secret            |
| Default Tax Rate   | Text   | No       | Default tax rate code           |
| Auto-sync Invoices | Toggle | No       | Automatically sync new invoices |

#### Acceptance Criteria

##### Frontend

* [ ] Platform Settings workflow is implemented in the UI as described.

##### Backend / API

* [ ] Backend behavior supports Platform Settings as documented.

##### Permissions

* [ ] Access is restricted per the Capabilities matrix on this page (or equivalent role rules).

##### Business Rules

* [ ] All business rules for this feature are enforced.

##### Error Handling

* [ ] Error states return clear messages and appropriate HTTP status codes.

## Sync Operations

| Operation | Direction          | Description                  |
| --------- | ------------------ | ---------------------------- |
| Contacts  | MemberPulse → Xero | Sync member data as contacts |
| Invoices  | MemberPulse → Xero | Push invoices to Xero        |
| Payments  | Xero → MemberPulse | Update payment status        |

## Troubleshooting

For Xero integration issues, see the [Admin Troubleshooting Guide](/admin/xero-troubleshooting).

#### Acceptance Criteria

##### Frontend

* [ ] UI provides configuration controls and status/health indicators for this integration.

##### Backend / API

* [ ] Integration can be connected, configured, and exercised end-to-end (auth + sync/webhooks).

##### Permissions

* [ ] Only `ROLE_CLIENT_ADMIN` (or equivalent) can configure the integration.

##### Business Rules

* [ ] Data sync respects tenant isolation and mapping rules.

##### Error Handling

* [ ] Auth and sync failures are surfaced with actionable messages and retry behavior.
