> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.givechariot.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.givechariot.com/_mcp/server.

# Getting Started

This guide will walk you through setting up Chariot to start receiving and processing offline donations from multiple sources.

## Prerequisites

Before you begin, you'll need:

* A verified 501(c)(3) nonprofit organization
* EIN (Employer Identification Number)
* Authorized officer or director to complete onboarding

## Step 1: Create Your Chariot Account

### Sign Up

Visit [givechariot.com](https://givechariot.com) and click "Get Started" to create your nonprofit account.

You'll need to be a control person for the organization to claim the account.

### Complete Verification

Chariot will verify your nonprofit status and may collect additional information.

This verification process typically takes 3-10 business days.

> **Note**
>
> Chariot verifies nonprofit eligibility and control person identification to ensure compliance with banking regulations and prevent fraud.

### Access Your Dashboard

Once approved, you'll receive access to your Chariot Dashboard where you can:

* View all incoming donations
* Manage Payment Sources
* Generate and manage API keys
* Export data to your systems

## Step 2: Set Up Payment Sources

Payment Sources provide segregated addresses (electronic or physical) for receiving donations from different sources.

#### Electronic Payment Sources

Electronic Payment Sources provide unique bank account and routing numbers for receiving ACH transfers.

**Use cases:**

* Dedicated payment source for Fidelity Charitable grants
* Dedicated payment source for PayPal Giving Fund distributions
* Dedicated payment source for workplace giving platforms, e.g. Benevity

**How to set up:**

1. Log into your Chariot Dashboard
2. Navigate to "Payment Sources"
3. Click on a Payment Source and follow the instructions to connect it.

#### Lockbox Payment Sources

Lockbox Payment Sources provide physical mailing addresses for processing checks and physical mail.

**Use cases:**

* Dedicated PO Box for direct mail campaigns
* Dedicated address for major DAF sponsors that mail checks
* Consolidated check processing from multiple sources

**How to set up:**

1. Contact Chariot support to enable lockbox services
2. Chariot will provision a dedicated mailing address
3. Configure processing rules (appeal codes, etc.)
4. Update your portal and/or donor communications with the new address

Checks mailed to your lockbox are automatically deposited and the donation data is captured in Chariot.

> **Note**
>
> Lockbox services may incur additional fees. Contact [support@givechariot.com](mailto:support@givechariot.com) for pricing.

## Step 3: Retrieve Donations

Once donations start flowing in, you can retrieve them via API.

### List Recent Donations

Retrieve donations filtered by Payment Source, date range, or Deposit:

### Request

GET [https://api.givechariot.com/v1/donations](https://api.givechariot.com/v1/donations)

```curl
curl -G https://api.givechariot.com/v1/donations \
     -H "Authorization: Bearer <token>" \
     -d deposit_id=deposit_01j8rs605a4gctmbm58d87mvsj \
     -d payment_source_id=payment_source_01j8rs605a4gctmbm58d87mvsj
```

```typescript
import { ChariotClient } from "@chariot-giving/typescript-sdk";

async function main() {
    const client = new ChariotClient({
        token: "YOUR_TOKEN_HERE",
    });
    await client.donations.list({
        depositId: "deposit_01j8rs605a4gctmbm58d87mvsj",
        paymentSourceId: "payment_source_01j8rs605a4gctmbm58d87mvsj",
    });
}
main();

```

### Get Detailed Donation Information

Retrieve a specific donation with all attribution and metadata:

### Request

GET [https://api.givechariot.com/v1/donations/\{id}](https://api.givechariot.com/v1/donations/\{id})

```curl
curl https://api.givechariot.com/v1/donations/donation_01j8rs605a4gctmbm58d87mvsj \
     -H "Authorization: Bearer <token>"
```

```typescript
import { ChariotClient } from "@chariot-giving/typescript-sdk";

async function main() {
    const client = new ChariotClient({
        token: "YOUR_TOKEN_HERE",
    });
    await client.donations.get({
        id: "donation_01j8rs605a4gctmbm58d87mvsj",
    });
}
main();

```

### Sync data with your systems (CRM, accounting, etc.)

Use the donations data to:

* Create constituent records in your CRM
* Update donor acknowledgment systems
* Reconcile with your accounting system

You can also use Properties to extend donation data with your own custom fields:

### Request

POST [https://api.givechariot.com/v1/properties/\{id}/assign](https://api.givechariot.com/v1/properties/\{id}/assign)

```curl
curl -X POST https://api.givechariot.com/v1/properties/prop_01j8rs605a4gctmbm58d87mvsj/assign \
     -H "Authorization: Bearer <token>" \
     -H "Content-Type: application/json" \
     -d '{
  "value": {
    "type": "text"
  },
  "resources": {
    "ids": [
      "donation_01j8rs605a4gctmbm58d87mvsj"
    ]
  }
}'
```

```typescript
import { ChariotClient } from "@chariot-giving/typescript-sdk";

async function main() {
    const client = new ChariotClient({
        token: "YOUR_TOKEN_HERE",
    });
    await client.properties.assign({
        id: "prop_01j8rs605a4gctmbm58d87mvsj",
        value: {
            type: "text",
        },
        resources: {
            ids: [
                "donation_01j8rs605a4gctmbm58d87mvsj",
            ],
        },
    });
}
main();

```

This allows you to:

* Map to your CRM's custom fields
* Track internal campaign codes
* Add processing notes
* Maintain audit trails

## Step 4: Configure Webhooks (Optional)

For real-time notification of new donations:

### Create an Event Subscription

Subscribe to donation events to receive webhooks:

### Request

POST [https://api.givechariot.com/v1/event\_subscriptions](https://api.givechariot.com/v1/event_subscriptions)

```curl
curl -X POST https://api.givechariot.com/v1/event_subscriptions \
     -H "Authorization: Bearer <token>" \
     -H "Content-Type: application/json" \
     -d '{
  "url": "https://example.com/webhook",
  "category": "grant.created"
}'
```

```typescript
import { ChariotClient } from "@chariot-giving/typescript-sdk";

async function main() {
    const client = new ChariotClient({
        token: "YOUR_TOKEN_HERE",
    });
    await client.eventSubscriptions.create({
        url: "https://example.com/webhook",
        category: "grant.created",
    });
}
main();

```

### Subscribe to Key Events

Important events for gift processing:

* `donation.created` - New donation received
* `donation.updated` - Donation details updated
* `deposit.completed` - Deposit settled to your account
* `deposit.returned` - Deposit was returned/rejected

### Process Webhooks

When you receive a webhook, you can:

* Automatically create CRM records
* Trigger thank you emails
* Update your accounting system
* Flag for manual review if needed

## Need Help?

If you have questions or need assistance setting up Chariot:

* **Email**: [support@givechariot.com](mailto:support@givechariot.com)
* **Help Center**: [help.givechariot.com](https://help.givechariot.com/)
* **Dashboard**: [dashboard.givechariot.com](https://dashboard.givechariot.com)

> **Info**
>
> Chariot is a financial technology company, not a bank. Chariot Accounts come with a Demand Deposit Account through our banking services partner, Column N.A., Member FDIC. Deposits in Chariot Accounts are eligible for FDIC insurance up to \$250,000 per depositor, for each insurable capacity in which the account is held.