### Install Node.js SDK
Source: https://github.com/chariot-giving/chariot-openapi/blob/main/fern/versions/v2026-01-15/pages/api/sdk-1.mdx
Install the Node.js SDK using npm or yarn. The SDK provides typed interfaces for request parameters, response bodies, and error details.
```bash
$ npm install --save @chariot-giving/typescript-sdk
# or
$ yarn add @chariot-giving/typescript-sdk
```
--------------------------------
### Install Chariot Connect JavaScript Package
Source: https://github.com/chariot-giving/chariot-openapi/blob/main/fern/versions/v2026-01-15/pages/integrating-dafpay/installation.mdx
Choose one of the following methods to install the Chariot Connect JavaScript package: load from CDN, install via NPM, or add using Yarn.
```html
```
```shell
npm install --save react-chariot-connect
```
```shell
yarn add react-chariot-connect
```
--------------------------------
### API Access Example
Source: https://github.com/chariot-giving/chariot-openapi/blob/main/fern/versions/v2026-01-15/pages/api/authentication-1.mdx
Examples of how to authenticate API requests using a Bearer Token. Replace 'sk_test_4eC39HqLyjWDarjtT1zdp7dc' with your actual secret API key.
```APIDOC
## API access
The Chariot API uses API keys to authenticate requests.
Your API keys carry many privileges, so be sure to keep them secure! Do not share your secret API keys in publicly accessible areas such as GitHub, client-side code, and so forth.
Authentication to the API is performed via HTTP Bearer Token. Provide your API key as the `Authentication: Bearer {TOKEN}` value.
All API requests must be made over HTTPS. Calls made over plain HTTP will fail. API requests without authentication will also fail.
### Example Request
```curl
curl https://api.givechariot.com/v1/nonprofit/530196605 \
-H "Authorization: Bearer sk_test_4eC39HqLyjWDarjtT1zdp7dc"
```
### Request Details
- **Method**: GET
- **Endpoint**: `https://api.givechariot.com/v1/nonprofit/{id}`
- **Headers**:
- `Authorization`: `Bearer {YOUR_API_KEY}`
### Response
- **Success Response**: Returns the requested resource if authentication is successful.
- **Error Response**: Returns an error if authentication fails (e.g., invalid or missing token).
```
--------------------------------
### Webhook Signature Header Example
Source: https://github.com/chariot-giving/chariot-openapi/blob/main/fern/versions/v2026-01-15/pages/api/webhooks-and-events.mdx
This example shows the format of the `Chariot-Webhook-Signature` header. It contains a timestamp prefixed with `t=` and one or more signatures, each prefixed by a scheme like `v1`.
```text
Chariot-Webhook-Signature: t=2024-01-19T18:48:56Z,v1=e0632fb61f7d1068ecbde75410d5c3cc152926f97eaacf53c6228624647329da
```
--------------------------------
### Authenticate API Request with NodeJS
Source: https://github.com/chariot-giving/chariot-openapi/blob/main/fern/versions/v2026-01-15/pages/api/authentication-1.mdx
This NodeJS example uses the 'request' library to make an authenticated GET request. The API key is included in the Authorization header as a Bearer token.
```javascript
var request = require("request");
var options = { method: 'GET',
url: 'https://api.givechariot.com/v1/nonprofit/530196605',
headers: { 'Authorization': 'Bearer sk_test_4eC39HqLyjWDarjtT1zdp7dc' } };
request(options, function (error, response, body) {
if (error) throw new Error(error);
console.log(body);
});
```
--------------------------------
### Authenticate API Request with Python
Source: https://github.com/chariot-giving/chariot-openapi/blob/main/fern/versions/v2026-01-15/pages/api/authentication-1.mdx
This Python example shows how to authenticate an API request using the http.client library. The Authorization header is set with the Bearer token.
```python
import http.client
conn = http.client.HTTPSConnection("api.givechariot.com")
headers = { 'Authorization': "Bearer sk_test_4eC39HqLyjWDarjtT1zdp7dc" }
conn.request("GET", "/v1/nonprofit/530196605", headers=headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))
```
--------------------------------
### Batch ZIP Structure Example
Source: https://github.com/chariot-giving/chariot-openapi/blob/main/fern/versions/v2026-01-15/pages/lockbox-providers/batch-format.mdx
Illustrates the expected file structure within a batch ZIP archive. It should contain one CSV index file and one TIFF file per mail item, with filenames corresponding to mail_item_id values.
```text
batch.zip
├── index.csv
├── mail_a1b2c3.tiff
├── mail_d4e5f6.tiff
└── mail_g7h8i9.tiff
```
--------------------------------
### Authenticate API Request with C#
Source: https://github.com/chariot-giving/chariot-openapi/blob/main/fern/versions/v2026-01-15/pages/api/authentication-1.mdx
This C# example demonstrates how to authenticate an API request using the RestSharp library. The API key is added as a Bearer token in the Authorization header.
```csharp
var client = new RestClient("https://api.givechariot.com/v1/nonprofit/530196605");
var request = new RestRequest(Method.GET);
request.AddHeader("Authorization", "Bearer sk_test_4eC39HqLyjWDarjtT1zdp7dc");
IRestResponse response = client.Execute(request);
```
--------------------------------
### Authenticate API Request with Go
Source: https://github.com/chariot-giving/chariot-openapi/blob/main/fern/versions/v2026-01-15/pages/api/authentication-1.mdx
This Go program shows how to make an authenticated GET request to the Chariot API. It includes setting the Authorization header with your Bearer token.
```go
package main
import (
"fmt"
"net/http"
"io/ioutil"
)
func main() {
url := "https://api.givechariot.com/v1/nonprofit/530196605"
req, _ := http.NewRequest("GET", url, nil)
// Add the Authorization header with the Bearer token
req.Header.Add("Authorization", "Bearer sk_test_4eC39HqLyjWDarjtT1zdp7dc")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := ioutil.ReadAll(res.Body)
fmt.Println(res)
fmt.Println(string(body))
}
```
--------------------------------
### Get Financial Account Balance
Source: https://context7.com/chariot-giving/chariot-openapi/llms.txt
Retrieve current and available balances for a financial account in USD cents. Note that values are in cents, e.g., 500000 cents equals $5,000.00.
```bash
curl -X GET "https://api.givechariot.com/v1/financial_accounts/account_01jpjenf5q6cawy43yxfcrxhct/balance" \
-H "Authorization: Bearer $CHARIOT_API_KEY"
```
--------------------------------
### Get Organization Details
Source: https://context7.com/chariot-giving/chariot-openapi/llms.txt
Retrieve comprehensive details for a specific organization using its ID. This includes compliance, classification, brand information, and officers.
```bash
curl -X GET "https://api.givechariot.com/v1/organizations/org_01j8rs605a4gctmbm58d87mvsj" \
-H "Authorization: Bearer $CHARIOT_API_KEY"
```
```json
# Expected 200 response:
# {
# "id": "org_01j8rs605a4gctmbm58d87mvsj",
# "ein": "530196605",
# "name": "American Red Cross",
# "physical_address": { "line1": "431 18th St NW", "city": "Washington", "state": "DC", "postal_code": "20006", "country": "US" },
# "compliance": { "daf_eligible": true, "irs_pub_78": { "compliant": true } },
# "web": { "domain": "redcross.org" },
# "brand": { "logo_url": "https://cdn.givechariot.com/logos/redcross.png" },
# "claimed": true
# }
```
--------------------------------
### Authenticate API Request with jQuery
Source: https://github.com/chariot-giving/chariot-openapi/blob/main/fern/versions/v2026-01-15/pages/api/authentication-1.mdx
This example shows how to authenticate an API request using jQuery's AJAX method. The Authorization header is configured with the Bearer token.
```javascript
var settings = {
"async": true,
"crossDomain": true,
"url": "https://api.givechariot.com/v1/nonprofit/530196605",
"method": "GET",
"headers": {
"Authorization": "Bearer sk_test_4eC39HqLyjWDarjtT1zdp7dc"
}
}
$.ajax(settings).done(function (response) {
console.log(response);
});
```
--------------------------------
### Get Batch Mailbox Upload URL
Source: https://context7.com/chariot-giving/chariot-openapi/llms.txt
For lockbox providers: obtain a presigned S3 URL to upload a ZIP batch of TIFF check images and a CSV index file. The URL is valid for 15 minutes.
```APIDOC
## POST /v1/mailbox/upload_url
### Description
For lockbox providers: obtain a presigned S3 URL to upload a ZIP batch of TIFF check images + CSV index file.
### Method
POST
### Endpoint
/v1/mailbox/upload_url
### Parameters
#### Request Body
- **location_id** (string) - Required - The identifier for the location associated with the mailbox.
### Request Example
```bash
curl -X POST "https://api.givechariot.com/v1/mailbox/upload_url" \
-H "Authorization: Bearer $CHARIOT_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "location_id": "po_543" }'
```
### Response
#### Success Response (200)
- **url** (string) - The presigned S3 URL for uploading the batch. This URL is valid for 15 minutes.
### Uploading the Batch
After obtaining the upload URL, use an HTTP PUT request to upload the batch ZIP file:
```bash
curl -X PUT "https://storage.example.com/upload?token=abc123" \
-H "Content-Type: application/zip" \
--data-binary @batch.zip
```
```
--------------------------------
### Get Mailbox Upload URL for Lockbox Providers
Source: https://context7.com/chariot-giving/chariot-openapi/llms.txt
For lockbox providers, obtain a presigned S3 URL to upload a ZIP batch of TIFF check images and a CSV index file. The URL is valid for 15 minutes.
```bash
curl -X POST "https://api.givechariot.com/v1/mailbox/upload_url" \
-H "Authorization: Bearer $CHARIOT_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "location_id": "po_543" }'
```
```bash
curl -X PUT "https://storage.example.com/upload?token=abc123" \
-H "Content-Type: application/zip" \
--data-binary @batch.zip
```
--------------------------------
### List Grants for a Connect Instance
Source: https://context7.com/chariot-giving/chariot-openapi/llms.txt
Retrieve a paginated list of all grants associated with a specific Connect instance. Use the `connect_id` and `pageLimit` query parameters to filter and paginate results.
```bash
curl -X GET "https://api.givechariot.com/v1/grants?connect_id=live_xJd0lUrvpDkzeGBWZbuI2wbvEdM&pageLimit=25" \
-H "Authorization: Bearer $CHARIOT_API_KEY"
```
--------------------------------
### List Payment Sources
Source: https://github.com/chariot-giving/chariot-openapi/blob/main/fern/versions/v2026-01-15/pages/processing/how-it-works.mdx
Retrieve a list of all configured payment sources. This is useful for managing how funds are received.
```bash
curl -X GET \
"https://api.chariot.com/v1/payment_sources" \
-H "Authorization: Bearer YOUR_API_KEY"
```
--------------------------------
### Webhook Event Payload Example
Source: https://github.com/chariot-giving/chariot-openapi/blob/main/fern/versions/v2026-01-15/pages/api/webhooks-and-events.mdx
This is an example of the JSON payload structure that Chariot sends to your webhook endpoint when a noteworthy event occurs. It includes event identifiers, timestamps, category, and associated object details.
```json
{
"id": "event_123abc",
"created_at": "2023-01-31T23:59:59Z",
"category": "grant.created",
"associated_object_type": "grant",
"associated_object_id": "67d66b89-51a0-4f17-a7b3-18c5dbac5361"
}
```
--------------------------------
### Sandbox: Simulate Inbound Transfer Lifecycle
Source: https://context7.com/chariot-giving/chariot-openapi/llms.txt
Test the complete inbound transfer lifecycle in the sandbox environment without real bank operations. Supports simulating both successful completion and failure.
```bash
curl -X POST "https://sandboxapi.givechariot.com/v1/simulations/inbound_transfers/inbound_transfer_01j8rs605a4gctmbm58d87mvsj/complete" \
-H "Authorization: Bearer $SANDBOX_API_KEY"
```
```bash
curl -X POST "https://sandboxapi.givechariot.com/v1/simulations/inbound_transfers/inbound_transfer_01j8rs605a4gctmbm58d87mvsj/fail" \
-H "Authorization: Bearer $SANDBOX_API_KEY"
```
--------------------------------
### Get Organization
Source: https://context7.com/chariot-giving/chariot-openapi/llms.txt
Retrieve full details for a known organization ID.
```APIDOC
## GET /v1/organizations/{organization_id}
### Description
Retrieve full details (compliance, classification, brand, officers) for a known organization ID.
### Method
GET
### Endpoint
/v1/organizations/{organization_id}
#### Path Parameters
- **organization_id** (string) - Required - The unique identifier of the organization.
### Request Example
```bash
curl -X GET "https://api.givechariot.com/v1/organizations/org_01j8rs605a4gctmbm58d87mvsj" \
-H "Authorization: Bearer $CHARIOT_API_KEY"
```
### Response
#### Success Response (200)
- **id** (string) - The unique identifier for the organization.
- **ein** (string) - The organization's Employer Identification Number.
- **name** (string) - The name of the organization.
- **physical_address** (object) - The physical address of the organization.
- **line1** (string)
- **city** (string)
- **state** (string)
- **postal_code** (string)
- **country** (string)
- **compliance** (object) - Compliance information.
- **daf_eligible** (boolean)
- **irs_pub_78** (object)
- **compliant** (boolean)
- **web** (object)
- **domain** (string)
- **brand** (object)
- **logo_url** (string)
- **claimed** (boolean) - Indicates if the organization profile has been claimed.
#### Response Example
```json
{
"id": "org_01j8rs605a4gctmbm58d87mvsj",
"ein": "530196605",
"name": "American Red Cross",
"physical_address": { "line1": "431 18th St NW", "city": "Washington", "state": "DC", "postal_code": "20006", "country": "US" },
"compliance": { "daf_eligible": true, "irs_pub_78": { "compliant": true } },
"web": { "domain": "redcross.org" },
"brand": { "logo_url": "https://cdn.givechariot.com/logos/redcross.png" },
"claimed": true
}
```
```
--------------------------------
### Create Connect
Source: https://context7.com/chariot-giving/chariot-openapi/llms.txt
Create a Chariot Connect instance for a nonprofit.
```APIDOC
## POST /v1/connects
### Description
Create (or retrieve existing) a Chariot Connect instance for a nonprofit. The returned `id` (CID) is used to initialize the client-side DAFpay widget.
### Method
POST
### Endpoint
/v1/connects
#### Request Body
- **organization_id** (string) - Required - The ID of the organization.
- **contact** (object) - Required - Contact information for the Connect.
- **email** (string) - Required.
- **first_name** (string) - Required.
- **last_name** (string) - Required.
- **phone** (string) - Required.
- **name** (string) - Required - A name for the Connect instance (e.g., 'main-website').
### Request Example
```bash
curl -X POST "https://api.givechariot.com/v1/connects" \
-H "Authorization: Bearer $CHARIOT_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"organization_id": "org_01j8rs605a4gctmbm58d87mvsj",
"contact": {
"email": "ben.give@redcross.org",
"first_name": "Ben",
"last_name": "Give",
"phone": "2025551234"
},
"name": "main-website"
}'
```
### Response
#### Success Response (200 or 201)
- **id** (string) - The unique identifier for the Connect instance.
- **name** (string) - The name of the Connect instance.
- **apiKey** (string) - The API key associated with the Connect.
- **active** (boolean) - Indicates if the Connect is active.
- **createdAt** (string) - The timestamp when the Connect was created.
- **updatedAt** (string) - The timestamp when the Connect was last updated.
#### Response Example
```json
{
"id": "live_xJd0lUrvpDkzeGBWZbuI2wbvEdM",
"name": "main-website",
"apiKey": "live_98235982835",
"active": true,
"createdAt": "2024-03-01T10:00:00Z",
"updatedAt": "2024-03-01T10:00:00Z"
}
```
```
--------------------------------
### Get Grant
Source: https://context7.com/chariot-giving/chariot-openapi/llms.txt
Retrieve details for a specific grant using its unique identifier.
```APIDOC
## GET /v1/grants/{grant_id}
### Description
Retrieve a single grant by its UUID.
### Method
GET
### Endpoint
/v1/grants/{grant_id}
### Parameters
#### Path Parameters
- **grant_id** (string) - Required - The UUID of the grant to retrieve.
### Response
#### Success Response (200)
- **id** (string) - The unique identifier for the grant.
- **amount** (integer) - The amount of the grant.
- **status** (string) - The current status of the grant.
- **statuses** (array) - A history of the grant's statuses.
- **status** (string) - The status of the grant at a specific point in time.
- **createdAt** (string) - The timestamp when the status was set.
- **feeDetail** (object) - Details about the fees associated with the grant.
- **total** (integer) - The total fee amount.
- **contributions** (array) - A list of fee contributions.
- **name** (string) - The name of the contributor.
- **amount** (integer) - The amount contributed.
- **feeType** (string) - The type of fee.
### Request Example
```bash
curl -X GET "https://api.givechariot.com/v1/grants/1e60800e-849b-43d1-870e-57afc8d75473" \
-H "Authorization: Bearer $CHARIOT_API_KEY"
```
```
--------------------------------
### Create Connect for Organization (JavaScript)
Source: https://github.com/chariot-giving/chariot-openapi/blob/main/fern/versions/v2026-01-15/pages/integrating-dafpay/set-up.mdx
Use this JavaScript code to create a Connect for an organization. Provide the organization's ID and a unique contact email. Replace API_KEY with your token.
```javascript
const options = {
method: 'POST',
headers: {
accept: 'application/json',
'content-type': 'application/json',
authorization: 'Bearer API_KEY'
},
body: JSON.stringify({
organization_id: 'ORGANIZATION_ID',
contact: {
email: 'me@example.com',
}
})
};
fetch('https://sandboxapi.givechariot.com/v1/connects', options)
.then(response => response.json())
.then(response => console.log(response))
.catch(err => console.error(err));
```
--------------------------------
### Get Detailed Donation Information
Source: https://github.com/chariot-giving/chariot-openapi/blob/main/fern/versions/v2026-01-15/pages/processing/getting-started.mdx
Retrieve all attribution and metadata for a specific donation using its ID.
```APIDOC
## GET /v1/donations/{id}
### Description
Retrieves detailed information for a specific donation, including all attribution and metadata.
### Method
GET
### Endpoint
/v1/donations/{id}
### Parameters
#### Path Parameters
- **id** (string) - Required - The unique identifier of the donation.
```
--------------------------------
### Get Financial Account Balance
Source: https://context7.com/chariot-giving/chariot-openapi/llms.txt
Retrieve current and available balances for a financial account (in USD cents).
```APIDOC
## GET /v1/financial_accounts/{account_id}/balance
### Description
Retrieves the current and available balances for a specific financial account in USD cents.
### Method
GET
### Endpoint
https://api.givechariot.com/v1/financial_accounts/{account_id}/balance
### Parameters
#### Path Parameters
- **account_id** (string) - Required - The ID of the financial account.
### Response
#### Success Response (200)
- **current_balance** (integer) - The current balance of the account in cents.
- **available_balance** (integer) - The available balance of the account in cents.
- **timestamp** (string) - The timestamp when the balance was recorded.
```
--------------------------------
### Create Disbursement
Source: https://context7.com/chariot-giving/chariot-openapi/llms.txt
Create a disbursement to send funds to a verified nonprofit. Transactions must sum to the disbursement amount, net of fees. Requires `organization_id`, `amount`, `description`, and a list of `transactions`.
```bash
curl -X POST "https://api.givechariot.com/v1/disbursements" \
-H "Authorization: Bearer $CHARIOT_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"organization_id": "org_01j8rs605a4gctmbm58d87mvsj",
"amount": 25000,
"description": "Q1 2024 grants batch",
"transactions": [
{
"amount": 15000,
"fee_amount": 0,
"description": "Grant from Doe Family Fund",
"type": "donor_advised_fund_grant",
"donor_advised_fund_grant": {
"grant_id": "grant_1234567890",
"organization_name": "Miami Charitable",
"fund_name": "Doe Family Charitable Fund",
"purpose": "General Operating Support",
"donors": [{ "first_name": "Jane", "last_name": "Doe", "email": "jane.doe@example.com" }]
}
},
{
"amount": 10000,
"fee_amount": 0,
"description": "Grant from Smith Family Fund",
"type": "donor_advised_fund_grant",
"donor_advised_fund_grant": {
"organization_name": "LA Charitable",
"fund_name": "Smith Family Legacy Fund",
"purpose": "Program Support"
}
}
]
}'
```
--------------------------------
### Get Detailed Donation Information API
Source: https://github.com/chariot-giving/chariot-openapi/blob/main/fern/versions/v2026-01-15/pages/processing/getting-started.mdx
Retrieve all attribution and metadata for a specific donation using its ID. This is useful for detailed record-keeping.
```bash
GET /v1/donations/{id}
```
--------------------------------
### Sandbox: Simulate Disbursement Completion
Source: https://context7.com/chariot-giving/chariot-openapi/llms.txt
Force a 'submitted' disbursement to 'completed' status in the sandbox environment for testing. Also includes simulation for failure.
```bash
curl -X POST "https://sandboxapi.givechariot.com/v1/simulations/disbursements/disbursement_01jpjen1s23s29kkmnjsb6fzga/complete" \
-H "Authorization: Bearer $SANDBOX_API_KEY"
```
```bash
curl -X POST "https://sandboxapi.givechariot.com/v1/simulations/disbursements/disbursement_01jpjen1s23s29kkmnjsb6fzga/fail" \
-H "Authorization: Bearer $SANDBOX_API_KEY"
```
--------------------------------
### Create Verification Request
Source: https://context7.com/chariot-giving/chariot-openapi/llms.txt
Submit an unlisted nonprofit for compliance review so disbursements can be made to it. The status transitions from `needs_review` to `verified` or `failed`.
```bash
curl -X POST "https://api.givechariot.com/v1/verification_requests" \
-H "Authorization: Bearer $CHARIOT_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"ein": "123456789",
"organization_name": "Local Community Foundation",
"website": "https://localfoundation.org",
"contact_email": "contact@localfoundation.org",
"recommended_mailing_address": {
"line1": "123 Main St",
"city": "San Francisco",
"state": "CA",
"zip_code": "94105"
}
}'
```
--------------------------------
### Sandbox test credentials
Source: https://github.com/chariot-giving/chariot-openapi/blob/main/fern/versions/v2026-01-15/pages/integrating-dafpay/faq.mdx
use these username and password for testing in the sandbox environment.
```text
Username: good-user
Password: password123
```
--------------------------------
### Get Single Grant by UUID
Source: https://context7.com/chariot-giving/chariot-openapi/llms.txt
Retrieve details for a specific grant using its unique identifier (UUID). The response includes status history and fee details.
```bash
curl -X GET "https://api.givechariot.com/v1/grants/1e60800e-849b-43d1-870e-57afc8d75473" \
-H "Authorization: Bearer $CHARIOT_API_KEY"
```
--------------------------------
### Create Connect for Organization (cURL)
Source: https://github.com/chariot-giving/chariot-openapi/blob/main/fern/versions/v2026-01-15/pages/integrating-dafpay/set-up.mdx
This cURL command creates a Connect for a given organization ID. Replace ORGANIZATION_ID with the actual ID and API_KEY with your authorization token. A unique contact email for the nonprofit is required.
```curl
curl --request POST \
--url 'https://sandboxapi.givechariot.com/v1/connects' \
--header 'accept: application/json' \
--header 'authorization: Bearer API_KEY' \
--header 'content-type: application/json' \
-d '{
"organization_id": "ORGANIZATION_ID",
"contact": {
"email": "me@example.com"
}
}'
```
--------------------------------
### Create a Verification Request
Source: https://github.com/chariot-giving/chariot-openapi/blob/main/fern/versions/v2026-01-15/pages/disbursements/how-it-works.mdx
Submit a verification request for an organization not found in Chariot's search. You can track the request status using the GET Verification Request endpoint.
```javascript
const verificationRequest = await chariot.verificationRequests.create({
"organization": {
"name": "Example Charity",
"ein": "12-3456789",
"mailing_address": {
"street_address": "123 Main St",
"city": "Anytown",
"state": "CA",
"postal_code": "90210",
"country_code": "US"
}
}
});
```
--------------------------------
### Authenticate API Request with Java
Source: https://github.com/chariot-giving/chariot-openapi/blob/main/fern/versions/v2026-01-15/pages/api/authentication-1.mdx
This Java snippet uses Unirest to make an authenticated GET request. The API key is passed in the Authorization header as a Bearer token.
```java
HttpResponse response = Unirest.get("https://api.givechariot.com/v1/nonprofit/530196605")
.header("Authorization", "Bearer sk_test_4eC39HqLyjWDarjtT1zdp7dc")
.asString();
```
--------------------------------
### Create Connect
Source: https://github.com/chariot-giving/chariot-openapi/blob/main/fern/versions/v2026-01-15/pages/integrating-dafpay/set-up.mdx
Creates a Connect record for an organization or retrieves it if one already exists. Requires the organization's ID obtained from the search step and a unique contact email address for the nonprofit.
```APIDOC
## Create Connect
### Description
Creates a Connect record for an organization or retrieves it if one already exists. Requires the organization's ID and a contact email.
### Method
POST
### Endpoint
/v1/connects
### Request Body
- **organization_id** (string) - Required - The unique identifier of the organization.
- **contact** (object) - Required - Information about the organization's contact person.
- **email** (string) - Required - The contact email address for the nonprofit. Must be unique to the nonprofit.
### Request Example
```curl
curl --request POST \
--url 'https://sandboxapi.givechariot.com/v1/connects' \
--header 'accept: application/json' \
--header 'authorization: Bearer API_KEY' \
--header 'content-type: application/json' \
-d '{ \
"organization_id": "ORGANIZATION_ID", \
"contact": { \
"email": "me@example.com" \
} \
}'
```
### Response
#### Success Response (200)
- **id** (string) - The unique identifier for the Connect record.
- **organization_id** (string) - The ID of the organization associated with this Connect.
- **status** (string) - The current status of the Connect.
#### Response Example
```json
{
"id": "conn_abc",
"organization_id": "org_123",
"status": "active"
}
```
```
```APIDOC
## Create Connect (JavaScript)
### Description
Creates a Connect record for an organization or retrieves it if one already exists using JavaScript. Requires the organization's ID and a contact email.
### Method
POST
### Endpoint
/v1/connects
### Request Body
- **organization_id** (string) - Required - The unique identifier of the organization.
- **contact** (object) - Required - Information about the organization's contact person.
- **email** (string) - Required - The contact email address for the nonprofit. Must be unique to the nonprofit.
### Request Example
```javascript
const options = {
method: 'POST',
headers: {
accept: 'application/json',
'content-type': 'application/json',
authorization: 'Bearer API_KEY'
},
body: JSON.stringify({
organization_id: 'ORGANIZATION_ID',
contact: {
email: 'me@example.com',
}
})
};
fetch('https://sandboxapi.givechariot.com/v1/connects', options)
.then(response => response.json())
.then(response => console.log(response))
.catch(err => console.error(err));
```
```
--------------------------------
### Sandbox: Simulate Inbound Transfer Events
Source: https://context7.com/chariot-giving/chariot-openapi/llms.txt
Test the complete inbound transfer lifecycle in sandbox without real bank operations. You can simulate both successful completion and failure scenarios.
```APIDOC
## POST /v1/simulations/inbound_transfers/{id}/complete
### Description
Simulate the successful completion of an inbound transfer.
### Method
POST
### Endpoint
/v1/simulations/inbound_transfers/{id}/complete
### Parameters
#### Path Parameters
- **id** (string) - Required - The ID of the inbound transfer to complete.
### Request Example
```bash
curl -X POST "https://sandboxapi.givechariot.com/v1/simulations/inbound_transfers/inbound_transfer_01j8rs605a4gctmbm58d87mvsj/complete" \
-H "Authorization: Bearer $SANDBOX_API_KEY"
```
### Response
#### Success Response (202)
- Accepted — status transitions to "completed"
## POST /v1/simulations/inbound_transfers/{id}/fail
### Description
Simulate the failure of an inbound transfer (e.g., due to insufficient funds at the originating bank).
### Method
POST
### Endpoint
/v1/simulations/inbound_transfers/{id}/fail
### Parameters
#### Path Parameters
- **id** (string) - Required - The ID of the inbound transfer to fail.
### Request Example
```bash
curl -X POST "https://sandboxapi.givechariot.com/v1/simulations/inbound_transfers/inbound_transfer_01j8rs605a4gctmbm58d87mvsj/fail" \
-H "Authorization: Bearer $SANDBOX_API_KEY"
```
### Response
#### Success Response (202)
- Accepted — status transitions to "failed"
```
--------------------------------
### Create Chariot Connect Instance
Source: https://context7.com/chariot-giving/chariot-openapi/llms.txt
Create a new Chariot Connect instance for a nonprofit or retrieve an existing one. The returned `id` (CID) is used to initialize the client-side DAFpay widget. Ensure the `organization_id` is valid.
```bash
curl -X POST "https://api.givechariot.com/v1/connects" \
-H "Authorization: Bearer $CHARIOT_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"organization_id": "org_01j8rs605a4gctmbm58d87mvsj",
"contact": {
"email": "ben.give@redcross.org",
"first_name": "Ben",
"last_name": "Give",
"phone": "2025551234"
},
"name": "main-website"
}'
```
```json
# 200 (existing) or 201 (new) response:
# {
# "id": "live_xJd0lUrvpDkzeGBWZbuI2wbvEdM",
# "name": "main-website",
# "apiKey": "live_98235982835",
# "active": true,
# "createdAt": "2024-03-01T10:00:00Z",
# "updatedAt": "2024-03-01T10:00:00Z"
# }
```
--------------------------------
### Authenticate API Request with Ruby
Source: https://github.com/chariot-giving/chariot-openapi/blob/main/fern/versions/v2026-01-15/pages/api/authentication-1.mdx
This Ruby script demonstrates how to make an authenticated GET request to the Chariot API using Net::HTTP. The Authorization header is configured with the Bearer token.
```ruby
require 'uri'
require 'net/http'
url = URI("https://api.givechariot.com/v1/nonprofit/530196605")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer sk_test_4eC39HqLyjWDarjtT1zdp7dc'
response = http.request(request)
puts response.read_body
```
--------------------------------
### List Donor Advised Funds (DAFs)
Source: https://context7.com/chariot-giving/chariot-openapi/llms.txt
List all DAFs in Chariot's system. Use `supportedOnly=true` to filter for directly integrated DAFs or `query` to search by name.
```bash
# List only directly integrated DAFs
curl -X GET "https://api.givechariot.com/v1/dafs?supportedOnly=true&pageLimit=20" \
-H "Authorization: Bearer $CHARIOT_API_KEY"
```
```bash
# Search by name
curl -X GET "https://api.givechariot.com/v1/dafs?query=Fidelity&pageLimit=10" \
-H "Authorization: Bearer $CHARIOT_API_KEY"
```
--------------------------------
### Create Grant with application fee
Source: https://github.com/chariot-giving/chariot-openapi/blob/main/fern/versions/v2026-01-15/pages/integrating-dafpay/faq.mdx
Use the `applicationFeeAmount` parameter in the Create Grant endpoint to pass in a processing fee for the grant. Chariot will handle the deduction or invoicing.
```api
POST /apiapi/grants/create
```
--------------------------------
### Authenticate API Request with cURL
Source: https://github.com/chariot-giving/chariot-openapi/blob/main/fern/versions/v2026-01-15/pages/api/authentication-1.mdx
Use this command to make an authenticated GET request to the Chariot API using cURL. Ensure your API key is correctly formatted as a Bearer token.
```curl
curl https://api.givechariot.com/v1/nonprofit/530196605 \
-H "Authorization: Bearer sk_test_4eC39HqLyjWDarjtT1zdp7dc"
```
--------------------------------
### Bulk Create Disbursements
Source: https://context7.com/chariot-giving/chariot-openapi/llms.txt
Create multiple disbursements in a single atomic request. If any disbursement fails validation, the entire batch is rejected.
```bash
curl -X POST "https://api.givechariot.com/v1/disbursements/bulk" \
-H "Authorization: Bearer $CHARIOT_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"disbursements": [
{
"organization_id": "org_01j8rs605a4gctmbm58d87mvsj",
"amount": 10000,
"transactions": [{ "amount": 10000, "type": "donor_advised_fund_grant" }]
},
{
"organization_id": "org_02k9st716b5hdtncn69e98nwtk",
"amount": 5000,
"transactions": [{ "amount": 5000, "type": "donor_advised_fund_grant" }]
}
]
}'
```
--------------------------------
### Upload Batch via PUT Request
Source: https://github.com/chariot-giving/chariot-openapi/blob/main/fern/versions/v2026-01-15/pages/lockbox-providers/mail-uploads.mdx
Upload the prepared ZIP file containing mail items and the index file to the presigned URL obtained from the `/mailbox/upload_url` endpoint using a PUT request.
```APIDOC
## PUT [presigned_url]
### Description
Uploads the batch ZIP file to the provided presigned URL.
### Method
PUT
### Endpoint
[presigned_url]
### Parameters
#### Request Body
- **batch.zip** (file) - Required - The ZIP file containing TIFF images and the CSV index file.
```
--------------------------------
### Paginate Through Grants
Source: https://context7.com/chariot-giving/chariot-openapi/llms.txt
Use this endpoint to retrieve grants with pagination. Specify `pageLimit` and `pageToken` for navigating through results.
```bash
curl -X GET "https://api.givechariot.com/v1/grants?connect_id=live_xJd0lUrvpDkzeGBWZbuI2wbvEdM&pageLimit=25&pageToken=c3f685f2-2dda-4956-815b-39867a5e5638" \
-H "Authorization: Bearer $CHARIOT_API_KEY"
```
--------------------------------
### List Grants
Source: https://context7.com/chariot-giving/chariot-openapi/llms.txt
Retrieve a paginated list of all grants for a Connect instance.
```APIDOC
## GET /v1/grants
### Description
Retrieve a paginated list of all grants for a Connect instance.
### Method
GET
### Endpoint
/v1/grants
#### Query Parameters
- **connect_id** (string) - Required - The ID of the Connect instance.
- **pageLimit** (integer) - Optional - The maximum number of grants to return per page. Defaults to 25.
### Request Example
```bash
curl -X GET "https://api.givechariot.com/v1/grants?connect_id=live_xJd0lUrvpDkzeGBWZbuI2wbvEdM&pageLimit=25" \
-H "Authorization: Bearer $CHARIOT_API_KEY"
```
```
--------------------------------
### Bulk Approve Disbursements
Source: https://context7.com/chariot-giving/chariot-openapi/llms.txt
Approve multiple `pending_approval` disbursements at once. All must be in `pending_approval` state or the entire request fails.
```bash
curl -X POST "https://api.givechariot.com/v1/disbursements/approve" \
-H "Authorization: Bearer $CHARIOT_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"disbursement_ids": [
"disbursement_01jpjen1s23s29kkmnjsb6fzga",
"disbursement_02kqkfo2t34t3alkno7f9gwxlb"
]
}'
```
--------------------------------
### Integrate DAFpay Button with Theme (HTML)
Source: https://github.com/chariot-giving/chariot-openapi/blob/main/fern/versions/v2026-01-15/pages/integrating-dafpay/installation.mdx
Add the `theme` parameter to the `chariot-connect` component in HTML to apply a pre-defined theme. If no theme is specified, `DefaultTheme` is used.
```html
```
--------------------------------
### Create a Connect for nonprofit registration
Source: https://github.com/chariot-giving/chariot-openapi/blob/main/fern/versions/v2026-01-15/pages/integrating-dafpay/faq.mdx
Use this to create a Connect for a nonprofit after searching for it. Ensure the email provided is unique to the nonprofit.
```api
POST /api/connects/create
```
--------------------------------
### Create Event Subscription (Webhook)
Source: https://context7.com/chariot-giving/chariot-openapi/llms.txt
Subscribe to a specific event category to receive HTTPS POST webhook notifications. A signing secret is strongly recommended for payload verification.
```bash
curl -X POST "https://api.givechariot.com/v1/event_subscriptions" \
-H "Authorization: Bearer $CHARIOT_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"url": "https://yourapp.com/webhooks/chariot",
"category": "grant.updated",
"signing_secret": "your-secret-key-for-hmac-verification"
}'
```
--------------------------------
### List Payment Sources
Source: https://context7.com/chariot-giving/chariot-openapi/llms.txt
List payment sources (ACH bank addresses or lockbox mailing addresses) associated with your financial account.
```bash
curl -X GET "https://api.givechariot.com/v1/payment_sources?limit=20" \
-H "Authorization: Bearer $CHARIOT_API_KEY"
```
--------------------------------
### Pre-populate Donation Data with JavaScript
Source: https://github.com/chariot-giving/chariot-openapi/blob/main/fern/versions/v2026-01-15/pages/integrating-dafpay/integration.mdx
Use the `onDonationRequest` callback to return a JavaScript object containing donation details. This ensures that fields are correctly recorded and displayed in the DAFpay modal.
```javascript
// get the element from the DOM
const chariot = document.getElementById("chariot")
// provide a callback that returns the donation data
chariot.onDonationRequest(async () => {
return {
amount: 25000, //this is $250.00 USD
firstName: "Michael",
lastName: "Scott",
email: "michaelScott@theoffice.com",
address: {
line1: "123 Main St",
line2: "Suite 4",
city: "New York",
state: "NY",
postalCode: "12345"
},
designation: "My Special Designation",
metadata: {
fundraiserTag: "marathon"
},
}
})
```
--------------------------------
### Search Organization by EIN (JavaScript)
Source: https://github.com/chariot-giving/chariot-openapi/blob/main/fern/versions/v2026-01-15/pages/integrating-dafpay/set-up.mdx
Implement this JavaScript code to search for an organization using its EIN. Ensure you replace with your actual API key.
```javascript
const options = {
method: 'GET',
headers: {
accept: 'application/json',
authorization: 'Bearer '
}
};
fetch('https://sandboxapi.givechariot.com/v1/organizations/search?ein=123456789', options)
.then(response => response.json())
.then(response => console.log(response))
.catch(err => console.error(err));
```