POST
/
v1
/
transfers
/
async-grants
curl --request POST \
  --url https://api.endaoment.org/v1/transfers/async-grants \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '{
  "idempotencyKey": "123e4567-e89b-12d3-a456-426614174000",
  "originFundId": "123e4567-e89b-12d3-a456-426614174000",
  "destinationOrgId": "123e4567-e89b-12d3-a456-426614174000",
  "destinationSubprojectId": "123e4567-e89b-12d3-a456-426614174000",
  "requestedAmount": "1000000",
  "purpose": "Supporting educational programs",
  "recommender": "John Doe",
  "specialInstructions": "Funds must be used exclusively for the summer education program",
  "shareMyEmail": false,
  "recommendationIds": [
    "123e4567-e89b-12d3-a456-426614174000"
  ]
}'
{
  "id": "123e4567-e89b-12d3-a456-426614174000",
  "type": "grant",
  "status": "approved",
  "transactionHash": "0x1234567890abcdef",
  "netAmount": "1000000",
  "fee": "10000",
  "createdAtUtc": "2024-03-20T10:30:00Z",
  "requestedAmount": "1000000",
  "updatedAtUtc": "2024-03-20T10:30:00Z",
  "asyncStatus": "pending",
  "chainId": 1,
  "destinationOrg": {
    "id": "123e4567-e89b-12d3-a456-426614174000",
    "ein": "530196605",
    "name": "American Red Cross",
    "description": "Providing disaster relief and emergency assistance",
    "address": {
      "line1": "123 Main St",
      "city": "San Francisco",
      "state": "CA",
      "zip": "94105",
      "country": "USA"
    },
    "contactInfo": {
      "email": "contact@organization.org",
      "name": "John Doe",
      "phone": "+1 (555) 123-4567",
      "title": "Executive Director"
    },
    "website": "https://www.redcross.org",
    "logo": "https://example.com/logo.png",
    "nteeCode": "E91",
    "nteeDescription": "Nursing, Convalescent (Geriatric and Nursing)",
    "featuredIndex": 100,
    "claimedDateUtc": "2024-03-20T10:30:00Z",
    "claimedType": "DIRECT",
    "claimed": true,
    "contractAddress": "0x1234567890123456789012345678901234567890",
    "deployments": [
      {
        "chainId": 1,
        "contractAddress": "0x1234567890123456789012345678901234567890",
        "usdcBalance": "2000000"
      }
    ]
  },
  "destinationSubproject": {
    "id": "123e4567-e89b-12d3-a456-426614174000",
    "sponsorOrgId": "123e4567-e89b-12d3-a456-426614174000",
    "sponsorOrgEin": "123456789",
    "ein": "123456789",
    "name": "Education Initiative",
    "description": "Supporting educational programs in underserved communities",
    "website": "https://example.org/initiative",
    "logo": "https://example.org/images/logo.png",
    "nteeCode": "E91",
    "nteeDescription": "Nursing, Convalescent (Geriatric and Nursing)",
    "featuredIndex": 100,
    "lifetimeContributionsUsdc": "1000000"
  },
  "recommender": "John Doe",
  "purpose": "Supporting educational programs",
  "specialInstructions": "Funds must be used exclusively for the summer education program"
}

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Body

application/json
idempotencyKey
string
required

Unique identifier to prevent duplicate grant requests

Example:

"123e4567-e89b-12d3-a456-426614174000"

originFundId
string
required

ID of the fund that is the origin of the grant

Example:

"123e4567-e89b-12d3-a456-426614174000"

destinationOrgId
string
required

ID of the organization that will receive the grant

Example:

"123e4567-e89b-12d3-a456-426614174000"

requestedAmount
string
required

The amount in USDC to be granted

Example:

"1000000"

purpose
string
required

Public declaration of the grant purpose

Maximum length: 511
Example:

"Supporting educational programs"

destinationSubprojectId
string

ID of the subproject that will receive the grant. Must be sponsored by the destination organization

Example:

"123e4567-e89b-12d3-a456-426614174000"

recommender
string

Name of the person recommending the grant

Maximum length: 255
Example:

"John Doe"

specialInstructions
string

Binding instructions for the use of granted assets that the receiving organization must accept

Example:

"Funds must be used exclusively for the summer education program"

shareMyEmail
boolean
default:false

Indicates if the donor agrees to share their email with the receiving organization

recommendationIds
string[]

List of recommendation IDs associated with the grant

Example:
["123e4567-e89b-12d3-a456-426614174000"]

Response

200
application/json
Async grant request successfully created
id
string
required

Unique identifier of the transfer

Example:

"123e4567-e89b-12d3-a456-426614174000"

type
enum<string>
required

Type of transfer, always "grant" for GrantTransferDto

Available options:
GrantTransfer,
EntityTransfer
Example:

"grant"

status
enum<string>
required
deprecated

Status of the transfer (deprecated)

Available options:
PendingReview,
Approved,
Rejected
Example:

"approved"

transactionHash
object | null
required

Transaction hash of the donation made to the target entity

Example:

"0x1234567890abcdef"

netAmount
object | null
required

Net output amount for the transfer (total - fees) in USDC units

Example:

"1000000"

fee
object | null
required

Fee charged on this transfer in USDC units

Example:

"10000"

createdAtUtc
string
required

UTC timestamp when the transfer was created

Example:

"2024-03-20T10:30:00Z"

requestedAmount
object | null
required

Requested amount for the transfer in USDC units (only for async transfers)

Example:

"1000000"

updatedAtUtc
string
required

UTC timestamp when the transfer was last updated

Example:

"2024-03-20T10:30:00Z"

asyncStatus
enum<string>
required

Current status of the async transfer request

Available options:
PendingLiquidation,
Liquidated,
Cancelled
Example:

"pending"

chainId
object | null
required

Chain ID where the transfer occurred (null for async transfers)

Example:

1

destinationOrg
object
required

Organization receiving the grant. Null if the grant is for a subproject.

destinationSubproject
object
required

Subproject receiving the grant. Null if the grant is for an organization.

recommender
object | null
required

Name of the person who recommended the grant

Example:

"John Doe"

purpose
object | null
required

Purpose of the grant

Example:

"Supporting educational programs"

specialInstructions
object | null
required

Special instructions for the use of granted assets

Example:

"Funds must be used exclusively for the summer education program"