Skip to main content

Outcome

A grant recommendation is submitted from the user’s fund to a selected nonprofit. Your app stores the async grant ID for status tracking.

When

After the user has: Trigger when the user recommends a grant from their fund.

Auth

HeaderValue
AuthorizationBearer <access_token>
Proxy from your backend. See Integration Patterns.

Endpoint

POST /v1/transfers/async-grants API reference: Create async grant See also: Grant Transfers in API reference.

Required inputs

FieldDescription
originFundIdSource fund ID
destinationOrgIdDestination organization ID
requestedAmountGrant amount in microdollars
idempotencyKeyNew UUID per submission
purposeGrant purpose / memo
See the API reference for optional fields.

Example request

curl -X POST "https://api.dev.endaoment.org/v1/transfers/async-grants" \
  -H "Authorization: Bearer $ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "originFundId": "FUND_UUID",
    "destinationOrgId": "ORG_UUID",
    "requestedAmount": "1000000",
    "idempotencyKey": "550e8400-e29b-41d4-a716-446655440001",
    "purpose": "General operating support"
  }'

Response you need

FieldUse
Grant idTrack async grant status
asyncStatusInitial processing state (status is deprecated — use asyncStatus)
List grants for a fund: List fund grants.

Common mistakes

  • Using fundId / orgId / amount field names (API expects originFundId / destinationOrgId / requestedAmount)
  • Reading status instead of asyncStatus on async grant responses
  • Using dollar amounts instead of microdollars
  • Reusing idempotencyKey for different grant attempts
  • Re-implementing org search here instead of linking to Find a Nonprofit

Full sample

Reference implementation: GitHub quickstart — grant. Next: Going to Production