> For the complete documentation index, see [llms.txt](https://docs.anedot.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.anedot.com/integrations/ecommerce-financial-membership/planning-center.md).

# Planning Center

Connect Anedot to Planning Center to sync donation data using App ID, Batch ID, Payment Source, and relay settings under Settings → Integrations.

> For the complete documentation index, see [llms.txt](https://anedot.gitbook.io/anedot-docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://anedot.gitbook.io/anedot-docs/integrations/ecommerce-financial-membership/planning-center.md).

## Planning Center

**Planning Center** is a Church Management System (CHMS) designed to help churches and ministries manage data, coordinate events, streamline internal communication, and stay connected with their congregants.

### Connecting Anedot to Planning Center

#### Step 1: Find Your Planning Center Credentials

To connect Anedot to Planning Center, you'll need the following credentials:

#### Get Your Application ID and Secret

1. Visit [Planning Center Applications](https://api.planningcenteronline.com/oauth/applications).
2. Scroll down to **Personal Access Tokens**.
3. Click **New Personal Access Token** and complete the form.
4. Once saved, copy your **App ID** and **App Secret**-you'll need these for the Anedot integration.

#### Locate Your Batch ID

1. Click on **Developer API** to open the drop-down.
2. Select **Giving**, then go to the **Batches** page.
3. Use an existing batch or create a new one.
4. Click on the batch you'd like to use. The **Batch ID** is the number at the end of the URL.

#### Step 2: Complete Connection in Anedot

1. Go to **Settings -> Integrations -> Directory**in your Anedot account.
2. Choose **Planning Center** from the list of integrations.
3. Select the **Action Pages** to sync (default: all Action Pages).
   * To exclude certain pages, enter a **comma-separated list of Action Page IDs**.
   * Optionally, you can **limit the integration to a specific team**. If no team is selected, all listed pages will sync.
4. Enter the following credentials:

* **Application ID**
* **Application Secret**
* **Batch ID**
* **Payment Source ID**

5. Click **Save** to complete setup.

*You can update Action Pages, Teams, and credentials at any time.*

### Data Relays

* **Supported Relays**: Only **financial Action Pages** are supported for relay.
* **Relay Management**: Use the **Push Unsent** feature to resend failed or unsent donations by selecting a **date range**.
* **Failure Handling**: If there are **five consecutive failed relay attempts**, the integration will be marked **inactive**, and relays will stop until reactivated.

### Viewing Relayed Data in Planning Center

Once donations are successfully relayed, they appear in the **Planning Center Giving** product:

* **Donations Queue**:
* Navigate to **Reports -> By Donation** or **Reports -> By Donor** to view individual donations.
* **Batches Queue**:
* Find donations under the **Batch queue** matching the **Batch ID** used in the connection.
* Click any donation to view full transaction details.

### Donation Fields

| Anedot Field                      | Planning Center Field                   |
| --------------------------------- | --------------------------------------- |
| Donation                          | type                                    |
| created\_at payMethod             | attributes received\_at payment\_method |
| person\_id Person                 | relationships person data id type       |
| payment\_source\_id PaymentSource | payment\_source data id type            |
| Designation amount                | included type attributes amount\_cents  |
| fund\_id Fund                     | relationships fund data id type         |

### Payload Data

#### Request Headers

```
{}
```

#### Request Body

```json
{"data":{"type":"Donation","attributes":{"received_at":"2022-12-22T16:45:39.785-05:00","payment_method":"card"},"relationships":{"person":{"data":{"id":"119129352","type":"Person"}},"payment_source":{"data":{"id":"6509","type":"PaymentSource"}}}},"included":[{"type":"Designation","attributes":{"amount_cents":2200},"relationships":{"fund":{"data":{"id":"108452","type":"Fund"}}}}]}
```

#### Response Body (Success)

```json
{"data":{"id":"156732250","type":"Donation","links":{"note":null,"self":"https://api.planningcenteronline.com/giving/v2/donations/156732250","campus":null,"labels":"https://api.planningcenteronline.com/giving/v2/donations/156732250/labels","refund":"https://api.planningcenteronline.com/giving/v2/donations/156732250/refund","designations":"https://api.planningcenteronline.com/giving/v2/donations/156732250/designations","issue_refund":"https://api.planningcenteronline.com/giving/v2/donations/156732250/issue_refund"},"attributes":{"refunded":false,"fee_cents":0,"created_at":"2022-12-22T21:45:52Z","refundable":false,"updated_at":"2022-12-22T21:45:52Z","received_at":"2022-12-22T21:45:39Z","amount_cents":2200,"completed_at":null,"fee_currency":"USD","payment_brand":null,"payment_last4":null,"payment_method":"card","payment_status":"pending","amount_currency":"USD","payment_method_sub":null,"payment_check_number":null,"payment_check_dated_at":null},"relationships":{"batch":{"data":{"id":"2","type":"Batch"}},"campus":{"data":null},"labels":{"data":[]},"person":{"data":{"id":"119129352","type":"Person"}},"payment_source":{"data":{"id":"6509","type":"PaymentSource"}},"recurring_donation":{"data":null}}},"meta":{"parent":{"id":"2","type":"Batch"},"can_include":["designations","labels","note","refund"]},"included":[]}
```

#### Response Body (Failure)

```json
{"errors":[{"code":"attribute_resource_not_found","title":"Attribute Resource Not Found","detail":"Error setting payment_source_id. The underlying resource couldn't be found.","source":{"parameter":"payment_source_id"},"status":"422"}]}
```

#### Response Body (Error)

```
{}
```

#### Response Status (Success)

```
201
```

#### Response Status (Failure)

```
422
```

#### Response Status (Error)

```
null
```

***

## Agent Instructions

This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

### Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://anedot.gitbook.io/anedot-docs/integrations/ecommerce-financial-membership/planning-center.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language. `goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.anedot.com/integrations/ecommerce-financial-membership/planning-center.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
