Grants

Create Grant

Create and submit a new grant. This should be used to capture a grant intent from an authorized DAFpay workflow session and submit the grant request to the DAF sponsor. On initial creation of the grant, this request will return a 201 Created status. On subsequent requests, the request will return status 200 OK.

<Warning> Error handling: - The grant must be captured within 15 minutes of authorization otherwise the request will return status `410 Gone`. - If this request is submitted while this grant is already being processed, the request will return status `409 Conflict`. - The amount must be in whole dollar increments (rounded to the nearest hundred) as currently DAFs only accept whole dollar grants otherwise the request will return status `400 Bad Request`. - The amount must be greater than or equal to the minimum grant amount for the DAF otherwise the request will return status `400 Bad Request`. - The amount must be less than or equal to the user's DAF account balance otherwise the request will return status `400 Bad Request`. - Any inputs exceeding the maximum allowed length will be automatically truncated. </Warning>
post/v1/grants

Request body

workflowSessionIdstring required

The identifier of the donor's DAFpay Workflow Session. See Capturing Grant Intents for how to get this value from the DAFpay CHARIOT_SUCCESS event.

amountnumber required

The grant amount in cents that will be processed by Chariot and submitted to the DAF. This amount must be in whole dollar increments (rounded to the nearest hundred) as currently all DAFs only accept whole dollar grant amounts.

applicationFeeAmountnumber

This parameter specifies the fee your platform plans to take from the grant in cents. This is a fee in addition to Chariot's processing fee. With application fees, Chariot collects the fee you determine from the nonprofit and passes it to your platform. Please note that platform fees are only taken when the grant is successfully received by the nonprofit. The sum of Chariot's fee and the applicationFeeAmount cannot exceed 5% of the grant's amount. If the fee limit is exceeded, a 400 Bad Request error will be returned.

notestring

A note the donor wants to send to the nonprofit. Maximum length: 400 characters.

designationstring

The designation to include on the grant. If this is left blank, "Where needed most" will be used. Note that including a custom designation may cause the grant approval process to take longer. Maximum length: 100 characters.

Example request

{
  "amount": 15000,
  "applicationFeeAmount": 3000
}

Response

The grant

idstring uuid required

The unique identifier for the object

userFriendlyIdstring

Often referred to as the "Chariot ID", this is the ID that will be included in the payment from the DAF provider.

trackingIdstring

The tracking ID for the grant

workflowSessionIdstring uuid required

ID of the Connect Workflow Session associated with this grant

fundIdstring required

ID of the donor advised fund

donor_account_idstring

ID of the Donor Account 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.

externalGrantIdstring

ID of the grant associated with the donor advised fund

createdAtstring date-time

Time when this object was created; expressed in RFC 3339 format

updatedAtstring date-time

Time when this object was last updated; expressed in RFC 3339 format

amountnumber required

The grant amount expressed in units of whole cents

statusstring

The status of the grant

metadataobject

A map of arbitrary string keys and values to store information about the object

firstNamestring

The donor's first name

lastNamestring

The donor's last name

phonestring

The donor's phone number

emailstring

The donor's email

notestring

An note inputted by the user at submisson

paymentChannel'dafpay_network' | 'direct'

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.

Example response

{
  "id": "cfe09e64-6a74-4dab-a565-361185a6f248",
  "userFriendlyId": "chariot-1234455",
  "trackingId": "L9E182VBGP",
  "workflowSessionId": "2d4b2a43-a5b4-4be1-ad1f-f932016ca4a6",
  "fundId": "daf-id",
  "donor_account_id": "donor_account_01jpjenf5q6cawy43yxfcrxhct",
  "externalGrantId": "897823sdjf8sfjs",
  "createdAt": "2020-01-31T23:00:00Z",
  "updatedAt": "2020-01-31T23:59:59Z",
  "amount": 15000,
  "status": "Initiated",
  "feeDetail": {
    "total": 1500,
    "contributions": [
      {
        "name": "Chariot",
        "amount": 1500,
        "feeType": "chariot"
      }
    ]
  },
  "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"
}

Changes

Changed in 5 of the 41 revisions of this API.281853

  • 90671617b8252835See the full diff
    • removed the required property code from the response with the 400 status

      response-required-property-removed

    • removed the required property code from the response with the 401 status

      response-required-property-removed

    • removed the required property code from the response with the 403 status

      response-required-property-removed

    • removed the required property code from the response with the 404 status

      response-required-property-removed

    • removed the required property code from the response with the 409 status

      response-required-property-removed

    • removed the required property code from the response with the 410 status

      response-required-property-removed

    • removed the required property code from the response with the 500 status

      response-required-property-removed

    • removed the required property error from the response with the 400 status

      response-required-property-removed

    • removed the required property error from the response with the 401 status

      response-required-property-removed

    • removed the required property error from the response with the 403 status

      response-required-property-removed

    • removed the required property error from the response with the 404 status

      response-required-property-removed

    • removed the required property error from the response with the 409 status

      response-required-property-removed

    • removed the required property error from the response with the 410 status

      response-required-property-removed

    • removed the required property error from the response with the 500 status

      response-required-property-removed

    • removed the required property message from the response with the 400 status

      response-required-property-removed

    • removed the required property message from the response with the 401 status

      response-required-property-removed

    • removed the required property message from the response with the 403 status

      response-required-property-removed

    • removed the required property message from the response with the 404 status

      response-required-property-removed

    • removed the required property message from the response with the 409 status

      response-required-property-removed

    • removed the required property message from the response with the 410 status

      response-required-property-removed

    • removed the required property message from the response with the 500 status

      response-required-property-removed

    • removed the required property timestamp from the response with the 400 status

      response-required-property-removed

    • removed the required property timestamp from the response with the 401 status

      response-required-property-removed

    • removed the required property timestamp from the response with the 403 status

      response-required-property-removed

    • removed the required property timestamp from the response with the 404 status

      response-required-property-removed

    • removed the required property timestamp from the response with the 409 status

      response-required-property-removed

    • removed the required property timestamp from the response with the 410 status

      response-required-property-removed

    • removed the required property timestamp from the response with the 500 status

      response-required-property-removed

    • media type application/json was changed to a more specific media type application/problem+json for the response status 400

      response-media-type-name-specialized

    • media type application/json was changed to a more specific media type application/problem+json for the response status 401

      response-media-type-name-specialized

    • media type application/json was changed to a more specific media type application/problem+json for the response status 403

      response-media-type-name-specialized

    • media type application/json was changed to a more specific media type application/problem+json for the response status 404

      response-media-type-name-specialized

    • media type application/json was changed to a more specific media type application/problem+json for the response status 409

      response-media-type-name-specialized

    • media type application/json was changed to a more specific media type application/problem+json for the response status 410

      response-media-type-name-specialized

    • media type application/json was changed to a more specific media type application/problem+json for the response status 500

      response-media-type-name-specialized

    • added the required property detail to the response with the 400 status

      response-required-property-added

    • added the required property detail to the response with the 401 status

      response-required-property-added

    • added the required property detail to the response with the 403 status

      response-required-property-added

    • added the required property detail to the response with the 404 status

      response-required-property-added

    • added the required property detail to the response with the 409 status

      response-required-property-added

    • added the required property detail to the response with the 410 status

      response-required-property-added

    • added the required property detail to the response with the 500 status

      response-required-property-added

    • added the required property status to the response with the 400 status

      response-required-property-added

    • added the required property status to the response with the 401 status

      response-required-property-added

    • added the required property status to the response with the 403 status

      response-required-property-added

    • added the required property status to the response with the 404 status

      response-required-property-added

    • added the required property status to the response with the 409 status

      response-required-property-added

    • added the required property status to the response with the 410 status

      response-required-property-added

    • added the required property status to the response with the 500 status

      response-required-property-added

    • added the required property title to the response with the 400 status

      response-required-property-added

    • added the required property title to the response with the 401 status

      response-required-property-added

    • added the required property title to the response with the 403 status

      response-required-property-added

    • added the required property title to the response with the 404 status

      response-required-property-added

    • added the required property title to the response with the 409 status

      response-required-property-added

    • added the required property title to the response with the 410 status

      response-required-property-added

    • added the required property title to the response with the 500 status

      response-required-property-added

    • added the required property type to the response with the 400 status

      response-required-property-added

    • added the required property type to the response with the 401 status

      response-required-property-added

    • added the required property type to the response with the 403 status

      response-required-property-added

    • added the required property type to the response with the 404 status

      response-required-property-added

    • added the required property type to the response with the 409 status

      response-required-property-added

    • added the required property type to the response with the 410 status

      response-required-property-added

    • added the required property type to the response with the 500 status

      response-required-property-added

    This revision also has 1 change that name no endpoint, such as unreferenced schemas being removed. See the revision's changelog

  • 412b6fc0ed4e22See the full diff
    • added the new canceled enum value to the statuses/items/status response property for the response status 200

      response-property-enum-value-added

    • added the new canceled enum value to the statuses/items/status response property for the response status 201

      response-property-enum-value-added

    • removed the cancelled enum value from the statuses/items/status response property for the response status 200

      response-property-enum-value-removed

    • removed the cancelled enum value from the statuses/items/status response property for the response status 201

      response-property-enum-value-removed

  • e82b2918c9fb812See the full diff
    • added the new awaiting_account_approval enum value to the statuses/items/status response property for the response status 200

      response-property-enum-value-added

    • added the new awaiting_account_approval enum value to the statuses/items/status response property for the response status 201

      response-property-enum-value-added

    • added the new awaiting_daf_submission enum value to the statuses/items/status response property for the response status 200

      response-property-enum-value-added

    • added the new awaiting_daf_submission enum value to the statuses/items/status response property for the response status 201

      response-property-enum-value-added

    • added the new cancelled enum value to the statuses/items/status response property for the response status 200

      response-property-enum-value-added

    • added the new cancelled enum value to the statuses/items/status response property for the response status 201

      response-property-enum-value-added

    • added the new initiated enum value to the statuses/items/status response property for the response status 200

      response-property-enum-value-added

    • added the new initiated enum value to the statuses/items/status response property for the response status 201

      response-property-enum-value-added

    • removed the Approved enum value from the statuses/items/status response property for the response status 200

      response-property-enum-value-removed

    • removed the Approved enum value from the statuses/items/status response property for the response status 201

      response-property-enum-value-removed

    • removed the Canceled enum value from the statuses/items/status response property for the response status 200

      response-property-enum-value-removed

    • removed the Canceled enum value from the statuses/items/status response property for the response status 201

      response-property-enum-value-removed

    • removed the Completed enum value from the statuses/items/status response property for the response status 200

      response-property-enum-value-removed

    • removed the Completed enum value from the statuses/items/status response property for the response status 201

      response-property-enum-value-removed

    • removed the Initiated enum value from the statuses/items/status response property for the response status 200

      response-property-enum-value-removed

    • removed the Initiated enum value from the statuses/items/status response property for the response status 201

      response-property-enum-value-removed

    • removed the PendingDonorAccountApproval enum value from the statuses/items/status response property for the response status 200

      response-property-enum-value-removed

    • removed the PendingDonorAccountApproval enum value from the statuses/items/status response property for the response status 201

      response-property-enum-value-removed

    • removed the Rejected enum value from the statuses/items/status response property for the response status 200

      response-property-enum-value-removed

    • removed the Rejected enum value from the statuses/items/status response property for the response status 201

      response-property-enum-value-removed

    • removed the optional property donorAccountId from the response with the 200 status

      response-optional-property-removed

    • removed the optional property donorAccountId from the response with the 201 status

      response-optional-property-removed

    • added the optional property donor_account_id to the response with the 200 status

      response-optional-property-added

    • added the optional property donor_account_id to the response with the 201 status

      response-optional-property-added

    • added the new Approved enum value to the statuses/items/status response property for the response status 200

      response-property-enum-value-added

    • added the new Approved enum value to the statuses/items/status response property for the response status 201

      response-property-enum-value-added

    • added the new PendingDonorAccountApproval enum value to the statuses/items/status response property for the response status 200

      response-property-enum-value-added

    • added the new PendingDonorAccountApproval enum value to the statuses/items/status response property for the response status 201

      response-property-enum-value-added

    • added the new Rejected enum value to the statuses/items/status response property for the response status 200

      response-property-enum-value-added

    • added the new Rejected enum value to the statuses/items/status response property for the response status 201

      response-property-enum-value-added

    • added the optional property donorAccountId to the response with the 200 status

      response-optional-property-added

    • added the optional property donorAccountId to the response with the 201 status

      response-optional-property-added