> 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.

# Sandbox: Cancel a grant

POST https://api.givechariot.com/v1/simulations/grants/{id}/cancel

Simulates the DAF sponsor canceling the grant. Transitions the grant status to `canceled`.

This API is only available in the sandbox environment.

Reference: https://docs.givechariot.com/api/grants/simulate-grant-cancellation

## Authentication

- `Authorization` header (bearer token, required) — Bearer authentication of the form `Bearer <token>`, where token is your auth token.

## Servers

- `https://api.givechariot.com` (Production, default)
- `https://sandboxapi.givechariot.com` (Sandbox)

## Request

### Path parameters

- `id` (string, required) — The unique identifier for the grant.

## Response

### 200

The updated grant

- `id` (string, required) — The unique identifier for the object
- `workflowSessionId` (string, required) — ID of the Connect Workflow Session associated with this grant
- `fundId` (string, required) — ID of the donor advised fund
- `amount` (double, required) — The grant amount expressed in units of whole cents
- `trackingId` (string, optional) — The tracking ID for the grant
- `donor_account_id` (string, optional) — ID of the [Donor Account](/api/donor-accounts) that this grant was submitted from. Present on grants submitted by donors who authenticated through the DAFpay Donor Account flow. Grants submitted without a linked Donor Account will not have this field set.
- `donation_id` (string, optional) — ID of the [Donation](/api/donations) produced by this grant. Populated once the grant has produced a donation. Newly-created grants and grants that have not yet produced a donation do not have this field set.
- `externalGrantId` (string, optional) — ID of the grant associated with the donor advised fund
- `createdAt` (datetime, optional) — Time when this object was created; expressed in RFC 3339 format
- `updatedAt` (datetime, optional) — Time when this object was last updated; expressed in RFC 3339 format
- `status` (string, optional) — The status of the grant
- `feeDetail` (GrantFeeDetail, optional) — The fee detail of the grant
- `metadata` (map from string to string, optional) — A map of arbitrary string keys and values to store information about the object
- `firstName` (string, optional) — The donor's first name
- `lastName` (string, optional) — The donor's last name
- `phone` (string, optional) — The donor's phone number
- `email` (string, optional) — The donor's email
- `note` (string, optional) — An note inputted by the user at submisson
- `statuses` (list of GrantStatus, optional) — The list of grant statuses for this grant
- `paymentChannel` (enum, optional) — The payment channel for the grant. This is useful to know how the grant will be sent. The payment channel will be one of the following: - dafpay_network: Grant will be sent to the DAFPay Network 501(c)(3) nonprofit organization (EIN: 93-1372175). The DAFPay Network will then review and process the grant and send the funds to the intended recipient. - direct: Grant will be sent directly to the intended recipient.
  - Allowed values: `dafpay_network`, `direct`
- `address` (GrantAddress, optional)
- `userFriendlyId` (string, optional, deprecated) — Often referred to as the "Chariot ID", this is the ID that will be included in the payment from the DAF provider.

## Errors

### 400 Bad Request Error

The request is invalid or contains invalid parameters

- `type` (string, required) — A URI reference identifying the problem type.
- `title` (string, required) — A short, human-readable summary of the problem type.
- `status` (integer, required) — The HTTP status code for this error.
- `detail` (string, required) — A human-readable explanation specific to this occurrence.

### 401 Unauthorized Error

Unauthorized. The request is missing the security (OAuth2 Bearer token) requirements and the server is unable to verify the identify of the caller.

- `type` (string, required) — A URI reference identifying the problem type.
- `title` (string, required) — A short, human-readable summary of the problem type.
- `status` (integer, required) — The HTTP status code for this error.
- `detail` (string, required) — A human-readable explanation specific to this occurrence.

### 403 Forbidden Error

Access denied

- `type` (string, required) — A URI reference identifying the problem type.
- `title` (string, required) — A short, human-readable summary of the problem type.
- `status` (integer, required) — The HTTP status code for this error.
- `detail` (string, required) — A human-readable explanation specific to this occurrence.

### 404 Not Found Error

Resource Not Found

- `type` (string, required) — A URI reference identifying the problem type.
- `title` (string, required) — A short, human-readable summary of the problem type.
- `status` (integer, required) — The HTTP status code for this error.
- `detail` (string, required) — A human-readable explanation specific to this occurrence.

### 500 Internal Server Error

Internal Server Error

- `type` (string, required) — A URI reference identifying the problem type.
- `title` (string, required) — A short, human-readable summary of the problem type.
- `status` (integer, required) — The HTTP status code for this error.
- `detail` (string, required) — A human-readable explanation specific to this occurrence.

## Types

### GrantFeeDetail

The fee detail of the grant

- `total` (double, optional) — The total fee amount expressed in units of cents
- `contributions` (list of ContributionFeeDetail, optional) — The list of fee contributions for this grant

### GrantStatus

- `id` (string, required) — The unique identifier for the object
- `createdAt` (datetime, required) — Time when this object was created; expressed in RFC 3339 format
- `status` (enum, required) — The status of the grant. * awaiting_account_approval: The linked Donor Account is not yet `approved`. The grant advances automatically when the Account is approved. * awaiting_daf_submission: The Account is approved and the grant is ready for the DAF to submit in their system. * initiated: The DAF has submitted the grant. Terminal. * canceled: The DAF has canceled the grant. Terminal.
  - Allowed values: `awaiting_account_approval`, `awaiting_daf_submission`, `initiated`, `canceled`
- `comment` (string, optional) — The user comment for the update

### GrantAddress

- `line1` (string, optional) — Address line 1 (e.g. street, PO Box, or company name). Maximum length: 255 characters.
- `line2` (string, optional) — Address line 2 (e.g. apartment, suite, unit, or building). Maximum length: 255 characters.
- `city` (string, optional) — City, district, suburb, town, or village.. Maximum length: 255 characters.
- `state` (string, optional) — State, county, province, or region. Maximum length: 255 characters.
- `postalCode` (string, optional) — ZIP or postal code. Maximum length: 255 characters.

### ContributionFeeDetail

- `name` (string, required) — The name of the party charging the fee. This is an informational field. If you need to differentiate between fees charged by different parties, you should use the `feeType` field.
- `amount` (double, required) — The fee contribution amount expressed in units of cents
- `feeType` (enum, optional) — This indicates the source of a fee contribution. * chariot: Chariot's processing fee * daf: The DAF's processing fee * fundraising_application: The fundraising application's processing fee
  - Allowed values: `chariot`, `daf`, `fundraising_application`

## Examples

**Response**

```json
{
  "id": "cfe09e64-6a74-4dab-a565-361185a6f248",
  "workflowSessionId": "2d4b2a43-a5b4-4be1-ad1f-f932016ca4a6",
  "fundId": "daf-id",
  "amount": 15000,
  "trackingId": "L9E182VBGP",
  "donor_account_id": "donor_account_01jpjenf5q6cawy43yxfcrxhct",
  "donation_id": "donation_01j8rs605a4gctmbm58d87mvsj",
  "externalGrantId": "897823sdjf8sfjs",
  "createdAt": "2020-01-31T23:00:00Z",
  "updatedAt": "2020-01-31T23:59:59Z",
  "status": "Initiated",
  "feeDetail": {
    "total": 1500,
    "contributions": [
      {
        "name": "Chariot",
        "amount": 1500,
        "feeType": "chariot"
      }
    ]
  },
  "metadata": {},
  "firstName": "Warren",
  "lastName": "Buffet",
  "phone": "1237861020",
  "email": "warrenBuffet@example.com",
  "note": "Please dedicate in memory of grandma",
  "statuses": [
    {
      "id": "cfe09e64-6a74-4dab-a565-361185a6f248",
      "createdAt": "2020-01-31T23:00:00Z",
      "status": "awaiting_daf_submission",
      "comment": "The grant has been received by the nonprofit"
    }
  ],
  "paymentChannel": "direct",
  "address": {
    "line1": "string",
    "line2": "string",
    "city": "string",
    "state": "string",
    "postalCode": "string"
  },
  "userFriendlyId": "chariot-1234455"
}
```