Outcome
An authenticated user has a new Endaoment fund. Your app stores the fundid for donations and grants.
When
After Authenticate. Trigger when the user opens their first fund or creates an additional one. The authenticated user becomes the fund manager. See the glossary for DAF terminology.Choose your route
Fund creation depends on how the caller authenticated:
Check
GET /v1/auth/whoami if unsure: OIDC callers include clientId when issued through a registered OAuth client.
Proxy all calls from your backend. See Integration Patterns.
Option A: Registered OAuth client → POST /v1/funds/partner
Use this path for standard OAuth quickstart integrators.
Prerequisite: The acting user must have saved identity (PII) on Endaoment before this call. The partner route builds the fund advisor from stored identity — if none exists, the API returns 400: “User must be provisioned with PII before creating a partner fund.” Complete Authenticate with profile/address data, or Provision user on the partner track first.
Auth
Pick one acting-user path (see Partner auth options):
The registered OAuth user token path is the standard quickstart flow after Authenticate. Server-to-server partner flows use
x-api-key (see Partner Journey).
Required inputs
Flat body (PartnerCreateFundInputDto) — no fundInput wrapper:
API reference: Create fund
Example request (registered OAuth user token)
Example request (API key + impersonation header)
Option B: First-party token → POST /v1/funds
Use only when the access token has no clientId (not a registered OAuth client token).
Auth
API reference: Create fund
Required inputs
MinimumfundInput fields:
Example request
Response you need
Common mistakes
- Calling
POST /v1/fundswith a registered OAuth client token (returns400— use/v1/funds/partner) - Creating a partner fund before the acting user has saved PII/identity on Endaoment
- Using
fundInput/advisor.*schema on the partner route (partner route expects a flat body) - Using partner identifiers shorter than 16 characters (validation rejects them)
- Omitting
partnerAccountIdentifieron the partner route - Calling the API from the browser with a Bearer token