# Agent Primitives Source: https://api-docs.helpyousponsor.com/agent-primitives Use Gratona MCP tools and primitive APIs from ChatGPT, Codex, and other agent clients. Gratona exposes a read-only agent surface for authenticated admins. Agent clients can search and summarize donor, recipient, sponsorship, donation, dashboard, note, activity, saved-view, and report data that the connected admin is already allowed to view in their Gratona workspace. The same backend primitive registry powers REST, MCP, and the repo-local CLI. Do not build integrations that pass a user-supplied `client_id`; Gratona derives the workspace boundary from the authenticated admin or API key and applies primitive scopes plus Gratona permission sets for every request. ## Current MCP Tool Surface | Tool | What it does | Required access | | - | - | - | | `search` | Standard connector-style search across permitted donor and recipient records. | Search scope plus donor-form or program permission. | | `hys_donors_lookup` | Finds a donor by name, email, or text and returns a bounded donor snapshot. | Donor search/get scopes plus donor-form permission. | | `hys_records_get` | Fetches a returned `donor:{id}`, `entity:{id}`, or `donation:{id}` record. | Matching primitive scope plus record-level Gratona permission. | | `hys_donors_list` | Lists permitted donors with filters, pagination, and optional includes. | Donor list scope plus donor-form permission. | | `hys_donors_search` | Searches permitted donors. | Donor search scope plus donor-form permission. | | `hys_donors_get` | Fetches one permitted donor with optional related records. | Donor get scope plus donor-form permission. | | `hys_entities_list` | Lists permitted recipients/entities by program, visibility, and sponsorship state. | Entity list scope plus program permission. | | `hys_entities_get` | Fetches one permitted recipient/entity. | Entity get scope plus program permission. | | `hys_donations_list` | Lists permitted donation records. | Donation list scope plus donation/report visibility. | | `hys_donations_get` | Fetches one permitted donation record. | Donation get scope plus donation/report visibility. | | `hys_donations_summary` | Summarizes giving in a permitted date range. | Donation summary scope plus donation/report visibility. | | `hys_sponsorships_summary` | Summarizes sponsorship health across permitted donors and programs. | Sponsorship scope plus donor and program visibility. | | `hys_notes_list` | Lists full permitted notes for a donor or recipient. | Notes scope plus target record permission. | | `hys_activity_logs_list` | Lists permitted activity history and metadata for a donor or recipient. | Activity-log scope plus target record permission. | | `hys_filters_list` | Lists saved views and report filters available to the admin. | Filter scope plus module/form/program permission. | | `hys_reports_list` | Lists saved report definitions, schedules, and recipient metadata available to the admin. | Report scope plus report/module/form/program permission. | | `hys_dashboard_snapshot` | Returns high-level workspace metrics and signals. | Dashboard scope plus filtered aggregate visibility. | | `hys_dashboard_brief` | Returns a concise board-prep or staff-summary brief. | Dashboard scope plus filtered aggregate visibility. | | `hys_forms_list` | Lists forms the admin can use for donor or program workflows. | Forms scope plus form/program permission. | | `hys_programs_list` | Lists programs visible to the admin. | Program scope plus program permission. | | `hys_system_context` | Shows connected admin, workspace, scopes, and permission keys without secrets. | System context scope. | | `hys_snapshot_widget_render` | Renders a compact ChatGPT snapshot from already fetched permitted data. | Render-only; it does not fetch broader data. | Create, update, delete, and archive tools are hidden by default. Mutation tools should only be enabled after explicit scopes, idempotency keys, audit metadata, confirmation UX, and production tests are complete. ## ChatGPT And Codex Use the production MCP endpoint for public ChatGPT and Codex connections: ```text theme={null} https://api.helpyousponsor.com/mcp ``` Use staging or a short-lived HTTPS tunnel for private Developer Mode tests: ```text theme={null} https://api-staging.helpyousponsor.com/mcp ``` ChatGPT should authenticate with OAuth 2.1 account linking in production. Private developer-mode smoke tests may use a scoped Gratona API key or bearer token, but production API keys must not be placed in query strings. Useful admin prompts: * "Find Mattie Charles and summarize her profile, giving, sponsorships, notes, and recent activity." * "Summarize donations for the last 90 days and fetch one donation record." * "Show sponsorship health for Education and one sponsored recipient." * "List saved views and reports that would help me plan today's follow-up work." * "Show notes and activity for donor 26303." * "What can I access in this Gratona workspace?" When a prompt does not include enough information for a record-specific lookup, the assistant should ask a short follow-up question instead of guessing. ## MCP Endpoints | Endpoint | Purpose | | - | - | | `GET /mcp/health` | Public health check for the MCP server. | | `GET /mcp/manifest` | Server metadata, public endpoints, and authentication summary. | | `POST /mcp` | Primary Streamable HTTP JSON-RPC endpoint. | | `GET /mcp/sse` | SSE transport compatibility endpoint. | | `POST /mcp/messages` | JSON-RPC compatibility endpoint. | | `GET /.well-known/oauth-protected-resource` | OAuth protected-resource metadata for ChatGPT discovery. | | `GET /.well-known/oauth-authorization-server` | OAuth authorization-server metadata. | Every unauthenticated MCP request returns an OAuth bearer challenge with the protected-resource metadata URL so compatible clients can discover the auth configuration. ## Auth And Permissions Gratona enforces access in layers: 1. Authentication resolves the admin, API key or OAuth token, scopes, and Gratona workspace. 2. The primitive registry filters discovery and invocation by primitive scope. 3. Each primitive applies Gratona group permission sets such as donor forms, program access, reports, notes, activity logs, and dashboard permissions. 4. Record queries always use the server-derived workspace boundary. Admins can receive donor PII, custom fields, notes, activity, reports, and saved views when their Gratona permissions allow them. The connector does not redact permitted admin data at the app layer; it avoids exposing secrets, request tokens, API keys, payment processor identifiers, trace IDs, and unrelated internal diagnostics. ## REST Primitive API Use REST when you need direct HTTP access from scripts or services. * Base URL: `https://api.helpyousponsor.com` * Auth header: `X-HYS-API-Key: hys_...` * Discovery: `GET /v3/primitives` * Primitive schema: `GET /v3/primitives/{name}/schema` * Invoke: `POST /v3/primitives/{name}/invoke` * Dry-run validation: `POST /v3/primitives/{name}/validate` Example: ```bash theme={null} curl --request POST \ --url https://api.helpyousponsor.com/v3/primitives/donors.search/invoke \ --header 'Content-Type: application/json' \ --header 'X-HYS-API-Key: hys_your_key_here' \ --data '{ "query": "smith", "limit": 10 }' ``` ## Schema Discovery Agents can inspect the Gratona data model surface when granted `schema:read`. * `GET /v3/schema/models` * `GET /v3/schema/models/{name}` * `GET /v3/schema/enums` * `GET /v3/schema/capabilities` The MCP server exposes model schemas through `resources/list` and `resources/read`. Current resources include donor, entity, donation, commitment, program, household, donor-entity relationship, soft credit, form, field, and donor-field schemas. ## Scope Planning Use the smallest key or OAuth grant that still lets the agent do the job. | Use case | Recommended scopes | | - | - | | Donor lookup only | `primitives:donors:search`, `primitives:donors:get` | | Donor and recipient read-only workflows | `primitives:donors:*`, `primitives:entities:*` | | Giving summaries | `primitives:donations:list`, `primitives:donations:get`, `primitives:donations:summary` | | Staff brief with notes and activity | `primitives:dashboard:*`, `primitives:notes:list`, `primitives:activity_logs:list` | | Saved views and reports | `primitives:filters:list`, `primitives:reports:list` | | Broad internal admin smoke testing | `primitives:*`, `schema:read` | Tool discovery only returns operations the current credentials can use. A broad primitive scope does not bypass Gratona group permissions. # Get admin dashboard data Source: https://api-docs.helpyousponsor.com/api-reference/admin-dashboard/get-admin-dashboard-data get /dashboard Returns aggregated dashboard statistics for the authenticated admin's client (organization): commitment and donation counts, per-program breakdowns, billing plan, last payment, and Stripe gateway health. Results are cached for one week. On a cache miss the endpoint dispatches a background reload job and returns a partial payload (data.org plus a 'reloaded' flag); subsequent calls return the fully populated dashboard once the job finishes. # Add new setting Source: https://api-docs.helpyousponsor.com/api-reference/admin/add-new-setting post /admin/settings # Admin details Source: https://api-docs.helpyousponsor.com/api-reference/admin/admin-details get /client/admins/{id} # Bootstrap data for the new-settings form Source: https://api-docs.helpyousponsor.com/api-reference/admin/bootstrap-data-for-the-new-settings-form get /admin/add_settings Returns the active payment-gateway snapshot for the caller's client (`Donation::checkUseCC`) so the new-settings form can decide whether to render the CC payment-method options. The `donation` field is a fresh, unsaved Donation instance kept for legacy template ergonomics. Requires permission: `manage_programs`. # Change a role access level for a program Source: https://api-docs.helpyousponsor.com/api-reference/admin/change-a-role-access-level-for-a-program put /admin/access/resources/{resource_type}/{resource_id}/roles/{role_id} Requires a signed-in team user, the team_access_roles_v1 rollout and Manage Access roles (`groups`). API keys remain accepted by route middleware but cannot replace the user actor required by this controller. Use a level from the resource response allowed_levels and its role version as expected_version. Full-access roles and derived sponsorship access cannot be edited here. Program changes that couple several programs must use the central editor. Mutation and access safeguards are rechecked; response refreshes all roles for this resource. # Change a role access level for an organization feature Source: https://api-docs.helpyousponsor.com/api-reference/admin/change-a-role-access-level-for-an-organization-feature put /admin/access/resources/{resource_type}/roles/{role_id} Requires a signed-in team user, the team_access_roles_v1 rollout and Manage Access roles (`groups`). API keys remain accepted by route middleware but cannot replace the user actor required by this controller. Use a level from the resource response allowed_levels and its role version as expected_version. Full-access roles and derived sponsorship access cannot be edited here. Program changes that couple several programs must use the central editor. Mutation and access safeguards are rechecked; response refreshes all roles for this resource. # Confirm workspace setup choices Source: https://api-docs.helpyousponsor.com/api-reference/admin/confirm-workspace-setup-choices post /admin/workspace-setup Requires workspace setup rollout. Confirms registered answers once and pins the selected recipes in durable bootstrap work. Repeating identical choices is safe; conflicting confirmations are rejected. A successful confirmation can precede background starter preparation; use activation/starter-preview to read progress. # Create an empty access role Source: https://api-docs.helpyousponsor.com/api-reference/admin/create-an-empty-access-role post /admin/access/roles Requires a signed-in team user, the team_access_roles_v1 rollout and Manage Access roles (`groups`). API keys remain accepted by route middleware but cannot replace the user actor required by this controller. Creates a deny-by-default role at version 1. Permissions are not accepted by this operation; configure them through the role update after creation. Records an audit event. # Create my customer feedback provider session Source: https://api-docs.helpyousponsor.com/api-reference/admin/create-my-customer-feedback-provider-session post /admin/customer-feedback/session Creates Featurebase and/or Intercom identity tokens for the current user and organization, with no-store, private caching. Default token lifetime is 15 minutes, configurable from 5 to 60 minutes. Disabled providers return enabled false without token fields. Both providers disabled returns 404; incomplete enabled-provider setup returns 503; missing user/organization identity returns 403. # Decommission the current organization account Source: https://api-docs.helpyousponsor.com/api-reference/admin/decommission-the-current-organization-account post /admin/account/decommission Requires explicit access_delete_account permission unless the caller has the platform lifecycle capability. Immediately closes the workspace, disables administrator access, revokes credentials and cancels active subscriptions; durable archival is queued separately. Repeating a decommission returns the existing snapshot and already_decommissioned true. This route always targets the caller organization. Platform administrator membership safety can prevent closure with 409. # Delete a setting Source: https://api-docs.helpyousponsor.com/api-reference/admin/delete-a-setting delete /admin/settings/{settings_id} # Delete an empty access role Source: https://api-docs.helpyousponsor.com/api-reference/admin/delete-an-empty-access-role delete /admin/access/roles/{role_id} Requires a signed-in team user, the team_access_roles_v1 rollout and Manage Access roles (`groups`). API keys remain accepted by route middleware but cannot replace the user actor required by this controller. Requires the current role version. The role must contain no members and cannot be assigned to the actor. The actor ceiling still applies; records the deletion at the next version. # Edit a setting Source: https://api-docs.helpyousponsor.com/api-reference/admin/edit-a-setting put /admin/settings/{settings_id} # Edit an existing admin Source: https://api-docs.helpyousponsor.com/api-reference/admin/edit-an-existing-admin put /client/admins/{id} # Get all settings Source: https://api-docs.helpyousponsor.com/api-reference/admin/get-all-settings get /admin/settings # Get details for a setting Source: https://api-docs.helpyousponsor.com/api-reference/admin/get-details-for-a-setting get /admin/settings/{settings_id} # Get details for campaign settings Source: https://api-docs.helpyousponsor.com/api-reference/admin/get-details-for-campaign-settings get /admin/campaign/settings/{settings_id} # Invite a team member Source: https://api-docs.helpyousponsor.com/api-reference/admin/invite-a-team-member post /client/admin/{client_id} # Issue a new API key for the current admin Source: https://api-docs.helpyousponsor.com/api-reference/admin/issue-a-new-api-key-for-the-current-admin post /admin/generate_api_key Creates a new `ApiKey` row scoped to the calling admin and their client via `ApiKeyService::generate`, then returns the **plain-text key once** alongside the persisted metadata. Subsequent reads only see the `key_prefix`. The legacy `token` field is kept as an alias of `api_key` for older admin-UI clients. Requires permission: `developer_settings` (also satisfied by `group_all`); user `id=1` is unconditionally allowed. # List organization access roles Source: https://api-docs.helpyousponsor.com/api-reference/admin/list-organization-access-roles get /admin/access/roles Requires a signed-in team user, the team_access_roles_v1 rollout and Manage Access roles (`groups`). API keys remain accepted by route middleware but cannot replace the user actor required by this controller. Returns member details and server-derived access/editor metadata for every role, ordered by name. # List permission sets or admin groups Source: https://api-docs.helpyousponsor.com/api-reference/admin/list-permission-sets-or-admin-groups get /client/admin/{client_id} # List the calling admin's API keys Source: https://api-docs.helpyousponsor.com/api-reference/admin/list-the-calling-admins-api-keys get /admin/api_keys Returns the API keys belonging to the authenticated admin within the active client, ordered newest first. Plain-text key material is never returned — only the `key_prefix` is included so users can identify each key. Includes `revoked_at` and `last_used_at` for housekeeping. Requires permission: `developer_settings` (also satisfied by `group_all`); user `id=1` is unconditionally allowed. # Manually deactivate an admin Source: https://api-docs.helpyousponsor.com/api-reference/admin/manually-deactivate-an-admin get /admin/account/{id}/deactivate # Mark a legacy onboarding checklist step complete Source: https://api-docs.helpyousponsor.com/api-reference/admin/mark-a-legacy-onboarding-checklist-step-complete patch /admin/onboarding_checklist Requires existing organization checklist metadata; read the checklist first to initialize it. Marks the submitted step key as 1 and records activity on its first completion. Common keys: org_profile program_forms payments_gateways test_donation tailor_programs sender_email auto_emails iframe_embed_code verify_donation_process admin_accounts set_permissions upload_donor_db import_program_info admin_training review_documentation. The validator requires a value but does not enforce an allowlist. # Patch a campaign's default amount and/or frequency Source: https://api-docs.helpyousponsor.com/api-reference/admin/patch-a-campaigns-default-amount-andor-frequency patch /admin/settings/{settings_id}/defaults Lightweight patch for campaign-style program settings — updates only `default_amount` and/or `default_frequency` inside the setting's `program_settings` JSON without touching the rest of the configuration. Restricted to settings whose `program_settings.program_type` is `campaign` or `peer_to_peer` (returns 422 otherwise). The supplied `default_amount` must match one of the values in the setting's existing `transaction_amount` list (returns 422 when not). `default_frequency` must be `one_time`, `recurring`, or empty/null. The caller must own a program that uses this setting (returns 403 otherwise). Flushes the affected programs' caches on save. Requires permission: `manage_programs`. # Prepare an administrator for mailbox reactivation Source: https://api-docs.helpyousponsor.com/api-reference/admin/prepare-an-administrator-for-mailbox-reactivation get /admin/account/{id}/activate # Preview private workspace starters Source: https://api-docs.helpyousponsor.com/api-reference/admin/preview-private-workspace-starters get /admin/workspace-activation/starter-preview Returns verified private sample summaries selected by the confirmed setup. Preparing, needs_review and unavailable are normal 200 states with null cards and empty sponsorship_models. Ready state includes privacy labels and any selected campaign, sponsorship, trip and recipient-form previews. Unexpected service failures return 503. # Queue dashboard statistics refresh Source: https://api-docs.helpyousponsor.com/api-reference/admin/queue-dashboard-statistics-refresh get /admin/reload_stats Queues a dashboard statistics rebuild for the current organization and writes a short-lived reloading marker. The success response acknowledges queueing; calculations can still be running. # Read access change audit history Source: https://api-docs.helpyousponsor.com/api-reference/admin/read-access-change-audit-history get /admin/access/history Requires a signed-in team user, the team_access_roles_v1 rollout and Manage Access roles (`groups`). API keys remain accepted by route middleware but cannot replace the user actor required by this controller. Returns the newest audit entries first, including before/after semantic snapshots and source/request correlation. # Read access roles for a feature or program Source: https://api-docs.helpyousponsor.com/api-reference/admin/read-access-roles-for-a-feature-or-program get /admin/access/resources/{resource_type} Requires a signed-in team user, the team_access_roles_v1 rollout and Manage Access roles (`groups`). API keys remain accepted by route middleware but cannot replace the user actor required by this controller. Global types activity_logs, donors, donations and sponsorships use the shorter route with no resource ID. Type program requires the longer route with an organization-owned, non-synthetic program ID. sponsorships is derived from programs and has no contextual editing. # Read access roles for a feature or program Source: https://api-docs.helpyousponsor.com/api-reference/admin/read-access-roles-for-a-feature-or-program-1 get /admin/access/resources/{resource_type}/{resource_id} Requires a signed-in team user, the team_access_roles_v1 rollout and Manage Access roles (`groups`). API keys remain accepted by route middleware but cannot replace the user actor required by this controller. Global types activity_logs, donors, donations and sponsorships use the shorter route with no resource ID. Type program requires the longer route with an organization-owned, non-synthetic program ID. sponsorships is derived from programs and has no contextual editing. # Read activity action and table facet counts Source: https://api-docs.helpyousponsor.com/api-reference/admin/read-activity-action-and-table-facet-counts get /admin/activityLogs/facets Requires activity_logs_view, interactions_manage or donors_manage. Results enforce current program, participation-site/cohort, owner-only, restricted SMS-line and manual-interaction privacy access. Page mentions appear only on accessible donor/recipient timelines and may record exposure for normal user requests. Email Intelligence V2 removes legacy provider rows from the broad timeline. Email body text and preview pointers follow the current body policy, including mailbox, program and private-owner restrictions where applicable. Returns count maps keyed by action and table_name. General/donor facets ignore actions and table_names so the sidebar retains every choice within the remaining scopes; they apply the other privacy/exclusion/unmatched scopes. A nonblank query/search/q returns counts for current authorized metadata/body search matches. Recipient facets use the database row filters and ignore text search. Unknown recipient or search failure, including an over-broad query, returns an empty facets array with HTTP 200. # Read an access role and allowed transitions Source: https://api-docs.helpyousponsor.com/api-reference/admin/read-an-access-role-and-allowed-transitions get /admin/access/roles/{role_id} Requires a signed-in team user, the team_access_roles_v1 rollout and Manage Access roles (`groups`). API keys remain accepted by route middleware but cannot replace the user actor required by this controller. The editor schema describes current capabilities, restrictions, scopes and advisory transition choices; mutations recheck all decisions. # Read my effective access manifest Source: https://api-docs.helpyousponsor.com/api-reference/admin/read-my-effective-access-manifest get /admin/access/manifest Requires a signed-in team user. This read does not require the role-management rollout or the groups permission. Returns the current role authority and restrictions; a missing tenant role returns null role, empty access/authority and can_manage false. Use refresh_url after an access change. # Read my workspace activation guide Source: https://api-docs.helpyousponsor.com/api-reference/admin/read-my-workspace-activation-guide get /admin/workspace-activation Returns the confirmed setup projection for the current user, including available tasks, safe completion summaries and next action. No V2 profile returns 404. A disabled rollout or invalid track returns a successful unavailable projection; it does not fall back to the legacy checklist. # Read organization or record activity Source: https://api-docs.helpyousponsor.com/api-reference/admin/read-organization-or-record-activity get /admin/activityLogs Requires activity_logs_view, interactions_manage or donors_manage. Results enforce current program, participation-site/cohort, owner-only, restricted SMS-line and manual-interaction privacy access. Page mentions appear only on accessible donor/recipient timelines and may record exposure for normal user requests. Email Intelligence V2 removes legacy provider rows from the broad timeline. Email body text and preview pointers follow the current body policy, including mailbox, program and private-owner restrictions where applicable. Returns activity rows and pagination; per_page accepts 10, 15 or 20, otherwise defaults to 10. General/donor feeds without a search phrase use current database rows. Nonblank query/search/q searches metadata and authorized email bodies through the index, then rechecks current rows and disclosure before returning results. More than 20,000 indexed candidates returns 422 with empty activities and null pagination; narrow the phrase or date range. Recipient activity reads the database and ignores text search. Other search failures return an empty 200 response with message. additional_data remains a JSON-encoded string. fresh=true reads the newest ten committed donor entries directly with a fixed 90-day window; it ignores text search and requires the other documented filters to be absent. # Read the canonical permissions editor schema Source: https://api-docs.helpyousponsor.com/api-reference/admin/read-the-canonical-permissions-editor-schema get /admin/permissions/schema Returns the configured permission schema directly, including sections, presets and the server access registry. Dynamic items refer to choices supplied by the group editor; use the Access role detail for actor-specific allowed transitions. If configuration is unavailable returns version 1 with empty sections and presets. # Read the legacy onboarding checklist Source: https://api-docs.helpyousponsor.com/api-reference/admin/read-the-legacy-onboarding-checklist get /admin/onboarding_checklist Initializes missing checklist metadata and records completion evidence from configured payment gateways, sender email and multiple team accounts/roles. The checklist property is a JSON-encoded map of step keys to 0 or 1. completion_percentage uses all current map entries. # Read the team access matrix Source: https://api-docs.helpyousponsor.com/api-reference/admin/read-the-team-access-matrix get /admin/access/overview Requires a signed-in team user, the team_access_roles_v1 rollout and Manage Access roles (`groups`). API keys remain accepted by route middleware but cannot replace the user actor required by this controller. Includes organization feature areas and each non-synthetic program, with contextual role levels and available edits. # Read workspace plan entitlements and AI usage Source: https://api-docs.helpyousponsor.com/api-reference/admin/read-workspace-plan-entitlements-and-ai-usage get /admin/entitlements Returns current feature availability, lock state, source and optional quota/trial data. Quota usage enrichment can be absent on failure; a complete resolution failure returns data null so clients can fail open. Degraded pricing resolution is marked in the payload. # Read workspace setup choices Source: https://api-docs.helpyousponsor.com/api-reference/admin/read-workspace-setup-choices get /admin/workspace-setup Requires workspace setup rollout. An existing confirmation returns confirmed true and its safe profile summary. Otherwise returns the primary goal question and, when primary_goal is provided, its dependent starting-point question. Choice values come from the active versioned setup definition. # Record a manual activation step event Source: https://api-docs.helpyousponsor.com/api-reference/admin/record-a-manual-activation-step-event post /admin/workspace-activation/tasks/{taskKey} Only tasks with the returned can_complete_manually, can_skip or can_reopen capability accept the corresponding event. Submit current projection/task identities and a stable idempotency key; replay requires the same command. Stale projection, task version or digest returns 409. Automatic or unavailable tasks cannot be completed manually. Returns the refreshed projection after recording the event. # Remove an admin Source: https://api-docs.helpyousponsor.com/api-reference/admin/remove-an-admin delete /client/admins/{id} # Retired legacy client archive endpoint Source: https://api-docs.helpyousponsor.com/api-reference/admin/retired-legacy-client-archive-endpoint post /admin/clients/archive This compatibility endpoint no longer mutates organization lifecycle. Use the account decommission and restore endpoints instead. # Retired legacy teammate enrollment endpoint Source: https://api-docs.helpyousponsor.com/api-reference/admin/retired-legacy-teammate-enrollment-endpoint post /admin_login This numeric client/group enrollment endpoint is permanently retired. Use the current teammate invitation flow. # Revoke an API key or a Passport access token Source: https://api-docs.helpyousponsor.com/api-reference/admin/revoke-an-api-key-or-a-passport-access-token post /admin/revoke_api_token Dual-purpose endpoint. When `api_key_id` is supplied, marks the matching `ApiKey` as revoked via `ApiKeyService::revoke` (after the `developer_settings` permission check); the key must belong to the calling admin within the active client. When `token_id` is supplied instead, looks up the token on `request->user()->tokens` and calls `revoke()` on the Passport access token (no extra permission gate). Exactly one of `api_key_id` / `token_id` is required. # Update an access role with version protection Source: https://api-docs.helpyousponsor.com/api-reference/admin/update-an-access-role-with-version-protection put /admin/access/roles/{role_id} Requires a signed-in team user, the team_access_roles_v1 rollout and Manage Access roles (`groups`). API keys remain accepted by route middleware but cannot replace the user actor required by this controller. Omitted name/permissions retain their existing values; a null name becomes empty and is rejected. Permissions must satisfy registered prerequisites and the actor ceiling. Full-access inherited positives stay locked; self-lockout is refused. A no-op retains the version. # View all admins Source: https://api-docs.helpyousponsor.com/api-reference/admin/view-all-admins get /admins # Admin user login Source: https://api-docs.helpyousponsor.com/api-reference/auth/admin-user-login post /login Authenticates an admin user (a staff member of a client organization) and returns a Passport access token plus billing, entitlement and access snapshots for the organization. This is the entry point for the admin web app. The login flow also refuses logins for incomplete registrations, archived/decommissioned clients, inactive staff memberships, or users without an access role. A temporary organization lifecycle lock returns a retryable 409 response. # Check a retired teammate enrollment link Source: https://api-docs.helpyousponsor.com/api-reference/auth/check-a-retired-teammate-enrollment-link get /admin_signup/{client_id}/{group_id} The numeric client/group enrollment endpoint is permanently retired. Request a current teammate invitation from the organization administrator. # Check User Activation Status Source: https://api-docs.helpyousponsor.com/api-reference/auth/check-user-activation-status get /user/{id}/activation/status Checks the activation status of a user based on the user ID. # Complete an administrator account setup link Source: https://api-docs.helpyousponsor.com/api-reference/auth/complete-an-administrator-account-setup-link post /password/setup Uses the users_setup password broker and its setup expiry window. Valid mailbox proof activates only an eligible pending membership before setting the password. Invalid/expired token, unknown mailbox or blocked membership returns400. For compatibility, success returns HTTP200 with status=error; use the HTTP result and message to interpret it. # Get a legacy organization logout flag Source: https://api-docs.helpyousponsor.com/api-reference/auth/get-a-legacy-organization-logout-flag get /logout_status/{client_id} Returns the legacy clients.logout value when the column and organization exist, otherwise null. This compatibility read does not revoke credentials or end a session. # Get the currently authenticated admin user Source: https://api-docs.helpyousponsor.com/api-reference/auth/get-the-currently-authenticated-admin-user get /user Returns the authenticated admin user along with current permissions, feature entitlements and the server-derived access manifest. Used by the admin web app on app boot / route guard checks. Requires authentication via Passport bearer token or API key. Returns 401 if unauthenticated and 403 when onboarding, workspace, membership or access-role eligibility blocks access. # Redeem an administrator activation link Source: https://api-docs.helpyousponsor.com/api-reference/auth/redeem-an-administrator-activation-link post /user/email/verification Consumes a one-time, purpose-bound invitation credential. Successful redemption proves mailbox ownership, activates the member, and returns the same authenticated administrator session payload used by passwordless sign-in. # Redeem an administrator email sign-in link Source: https://api-docs.helpyousponsor.com/api-reference/auth/redeem-an-administrator-email-sign-in-link get /admin/passwordless_verify/{token} Consumes the one-time passwordless challenge shared by the email link and verification-code transports. Exactly one redemption can create a session. A valid mailbox proof must still pass current organization, membership and access-role eligibility. Successful redemption issues a bearer token and returns the authenticated user, access manifest, entitlements and billing context. A lifecycle lock conflict returns409 with Retry-After30seconds. # Request an admin passwordless sign-in Source: https://api-docs.helpyousponsor.com/api-reference/auth/request-an-admin-passwordless-sign-in post /admin/passwordless_login For an operational admin account, issues a six-digit numeric code and magic link. The newest challenge for the admin account and normalized email invalidates the previous code and expires after 15 minutes. Unknown and non-operational accounts receive the same generic response without issuing a challenge. # Resend a team invitation or mailbox verification email Source: https://api-docs.helpyousponsor.com/api-reference/auth/resend-a-team-invitation-or-mailbox-verification-email post /user/{id}/send_verification_email For a pending team member, revokes the previous invitation and sends a new one-time passwordless workspace invitation. For an active legacy member still awaiting mailbox verification, sends the compatibility verification email. # Reset a password using a reset token Source: https://api-docs.helpyousponsor.com/api-reference/auth/reset-a-password-using-a-reset-token post /password/reset Public endpoint that completes the password-reset flow started by `POST /password/forgot`. Consumes the signed token emailed to the user and updates the password hash. Legacy alias: `POST /reset-password`. Note: the `Password::PASSWORD_RESET` success branch returns HTTP 200 with `status=error` due to a long-standing bug in the controller — preserved here for backwards compatibility; integrators should treat HTTP 200 as success regardless of the `status` field. # Send a password reset link Source: https://api-docs.helpyousponsor.com/api-reference/auth/send-a-password-reset-link post /password/forgot Public endpoint that triggers Laravel's password broker to email a reset link to the supplied address. Used by the admin login page when an admin user clicks 'Forgot password?'. Always returns 200 with a generic success message when the email is well-formed (regardless of whether the address exists in the database) so that callers cannot enumerate registered users; only validator errors return non-200. Legacy alias: `POST /password/remind`. # Send an administrator activation email Source: https://api-docs.helpyousponsor.com/api-reference/auth/send-an-administrator-activation-email post /email/verification-notification Checks the supplied mailbox password and administrator eligibility, then sends a purpose-only activation credential. Resending revokes older activation credentials. This request does not create a web session. An already verified email returns400; invalid credentials or an ineligible membership return401. # User Logout Source: https://api-docs.helpyousponsor.com/api-reference/auth/user-logout get /logout Returns a logout confirmation. When the request has an authenticated user with a Passport access token, that token is revoked; requests without a resolved user also receive a successful confirmation. # Verify an admin passwordless code Source: https://api-docs.helpyousponsor.com/api-reference/auth/verify-an-admin-passwordless-code post /admin/passwordless_verify_code Accepts the latest six-digit numeric code. Five failed well-formed attempts burn the active challenge across source IPs; success also invalidates its magic link and challenge state. # Verify my administrator email Source: https://api-docs.helpyousponsor.com/api-reference/auth/verify-my-administrator-email post /email/verify Requires an authenticated administrator activation/bearer credential or accepted API key. The supplied id must equal the authenticated user. Already verified returns200 with status=error; newly verified returns200 with status=success. Requires permission: one of admins, manage_programs, donors_manage, manage_settings, access_account_settings, access_payment_gateways, imports_manage. # Get an automation primitive schema Source: https://api-docs.helpyousponsor.com/api-reference/automation/get-an-automation-primitive-schema get /primitives/{name}/schema Returns the selected operation input/output JSON Schemas, required scope, permission groups, feature flags and mutation decision metadata. The caller needs the primitive required_scope (or primitives:*) and the current Gratona permission groups. This endpoint only discovers the contract and does not execute it. # Invoke an automation primitive Source: https://api-docs.helpyousponsor.com/api-reference/automation/invoke-an-automation-primitive post /primitives/{name}/invoke Executes the named operation in the authenticated organization after checking its scope, feature availability and input-dependent Gratona permissions. Obtain the operation-specific body and output schema from the schema endpoint first. Mutation side effects and replay/idempotency behavior are defined by that primitive; Idempotency-Key is made available to implementations that support it. # List available automation primitives Source: https://api-docs.helpyousponsor.com/api-reference/automation/list-available-automation-primitives get /primitives Lists registered operations filtered by credential scopes, current Gratona permissions and feature availability. Each summary links to a complete input/output schema and invocation endpoint. Discovery is read-only and is not authorization to execute a mutation. # Validate an automation primitive input Source: https://api-docs.helpyousponsor.com/api-reference/automation/validate-an-automation-primitive-input post /primitives/{name}/validate Checks the selected primitive input through its validation implementation after scope and input-dependent permission checks. The body follows the same discovered input schema as invocation; the operation itself is not invoked. A valid result normally contains data.valid=true and meta.dry_run=true, while validation failures identify the offending fields. # Client payment Source: https://api-docs.helpyousponsor.com/api-reference/client/client-payment post /client/pay # Edit client account Source: https://api-docs.helpyousponsor.com/api-reference/client/edit-client-account put /client # Edit client integration Source: https://api-docs.helpyousponsor.com/api-reference/client/edit-client-integration post /integrations/{name} # Get client card details Source: https://api-docs.helpyousponsor.com/api-reference/client/get-client-card-details get /client/credit-card # Get client payment status Source: https://api-docs.helpyousponsor.com/api-reference/client/get-client-payment-status get /client/{id}/payment-status # Get client payments Source: https://api-docs.helpyousponsor.com/api-reference/client/get-client-payments get /client/payments # Get client subscriptions by module Source: https://api-docs.helpyousponsor.com/api-reference/client/get-client-subscriptions-by-module get /client/subscriptions # Get details of an integration Source: https://api-docs.helpyousponsor.com/api-reference/client/get-details-of-an-integration get /integrations/{name} # Get payment intent Source: https://api-docs.helpyousponsor.com/api-reference/client/get-payment-intent get /client/payment-intent # Get price for client to pay Source: https://api-docs.helpyousponsor.com/api-reference/client/get-price-for-client-to-pay get /client/{id}/price # Get the public organization theme Source: https://api-docs.helpyousponsor.com/api-reference/client/get-the-public-organization-theme get /color_theme Resolves a public numeric organization ID or unique organization slug. Optionally applies a current-organization program’s color override; unknown/archived/foreign programs fall back to the organization theme. Returns normalized colors, display identity and accessible color tokens. The enabled flag reports branding rollout availability. # List organization donor or recipient tags Source: https://api-docs.helpyousponsor.com/api-reference/client/list-organization-donor-or-recipient-tags get /client_tags Returns active organization-owned tags ordered by name. Optional tag_type is trimmed and case-normalized to donor or entity; omission/empty string lists both types. Requires permission: one of access_account_settings. # Migrate from Stripe Connect to Stripe API keys Source: https://api-docs.helpyousponsor.com/api-reference/client/migrate-from-stripe-connect-to-stripe-api-keys post /admin/client/{client_id}/migrate-stripe-connect Removes Stripe Connect configuration and sets up Stripe API keys for a client # Read retired organization-switching response Source: https://api-docs.helpyousponsor.com/api-reference/client/read-retired-organization-switching-response post /admin/switch_client Direct organization switching has been retired. Every request returns410 with SUPPORT_SESSION_REQUIRED; authorized cross-organization support must use the approved Support Session workflow. Requires permission: one of email_manager, manage_email. # Save organization custom pricing configuration Source: https://api-docs.helpyousponsor.com/api-reference/client/save-organization-custom-pricing-configuration post /client/client-custom/{client_id} Requires the path organization to match the authenticated user; an optional body client_id must also match. Saves custom pricing configuration and increments its version under a lifecycle lock. It does not collect or record a payment. Decommissioned organizations are rejected; a temporarily unavailable lock returns409, retryable:true and Retry-After30. Requires permission: one of access_payment_gateways. # Update client credit card Source: https://api-docs.helpyousponsor.com/api-reference/client/update-client-credit-card post /client/credit-card # Update the organization default accent Source: https://api-docs.helpyousponsor.com/api-reference/client/update-the-organization-default-accent put /admin/color_theme Requires an authenticated user with permission to manage the organization default color. At least color or color_level must be present; unspecified values retain the current normalized theme. Accepts configured palette/shade pairs or six-digit hex with level600. A program_id is rejected; program overrides use program launch settings. Requires permission: one of manage_settings. # View Integrations Source: https://api-docs.helpyousponsor.com/api-reference/client/view-integrations get /integrations # Activate verified email sending Source: https://api-docs.helpyousponsor.com/api-reference/communications/activate-verified-email-sending post /admin/email/settings/sending-domains/{domainId}/activate Requires provisioning ready, verified DNS, and a successful test at or after verified_at. The saved From address must match the base or sending domain. Activates managed sending for new donor emails and retains the prior transport as fallback; email sets on other domains are listed in other_domain_senders. Requires verified_sending_domains enabled for the organization and the current user/group to have manage_email, email_manager or group_all. Requires permission: one of manage_email. # Add a new email set Source: https://api-docs.helpyousponsor.com/api-reference/communications/add-a-new-email-set post /admin/auto_emails/emailset # Apply a mailbox one-click unsubscribe Source: https://api-docs.helpyousponsor.com/api-reference/communications/apply-a-mailbox-one-click-unsubscribe post /unsubscribe/one-click Mailbox providers submit the List-Unsubscribe form value and a category-scoped signed token in the query. Opts the address out of that source category. Legacy whole-email links are rejected. Requires no bearer token or cookies. Responses use Cache-Control: no-store. # Approve a draft message Source: https://api-docs.helpyousponsor.com/api-reference/communications/approve-a-draft-message post /admin/message/approve/draft/{email_id} Approves a draft in the caller's organization. Donor-originated drafts are marked sent into the recipient mailbox without sending email or reading body IDs. Other drafts use entity_id and donor_id to deliver to one donor or all current sponsors. Requires email_manager or manage_email; the disable_message_send_without_approval restriction is enforced. # Approve a pending recipient message Source: https://api-docs.helpyousponsor.com/api-reference/communications/approve-a-pending-recipient-message post /admin/recipient-messages/{id}/approve Only pending_approval messages can be approved. Records approval, creates the local Conversations mirror and attempts email queue publication in a transaction. Local source status becomes sent after preparation; provider delivery is asynchronous and recipient preferences may suppress mail. Missing recipient/donor/thread or queue failures revert the source to pending_approval and return422. Versioned access: requires permission: one of email_manager, manage_email. # Approve and send a draft newsletter Source: https://api-docs.helpyousponsor.com/api-reference/communications/approve-and-send-a-draft-newsletter post /admin/newsLetters/{id}/approve Atomically claims a draft, stamps the current actor, clears any scheduling and queues the saved current eligible audience. Any non-draft state returns400; concurrent claim returns409. Suppressed/empty audiences become skipped; large-audience eligibility is deferred. The receipt does not confirm final delivery. Requires permission: one of newsletter. # Approve and send a draft response Source: https://api-docs.helpyousponsor.com/api-reference/communications/approve-and-send-a-draft-response put /admin/message/draft/response/{email_id}/approve Marks a saved draft response as sent and queues the response email to the donor attached to the parent thread. Admin users call this from the message detail view after composing a draft response. Requires the admin API auth middleware and user permission checks. # Approve and send multiple draft messages Source: https://api-docs.helpyousponsor.com/api-reference/communications/approve-and-send-multiple-draft-messages post /admin/message/drafts/approve Approves multiple donor-message draft records and sends each draft to its resolved donor recipients. Admin users call this from the email manager bulk actions; each draft is scoped by the authenticated client and activity logging is attempted for sent messages. Requires the admin API auth middleware and user permission checks. # Archive a custom mailing template Source: https://api-docs.helpyousponsor.com/api-reference/communications/archive-a-custom-mailing-template delete /admin/mailing_templates/{id} Soft-deletes the tenant-owned custom template. System templates cannot be archived; existing generated records remain separate. Requires permission: one of mailings_manage, manage_email. # Archive a profile-note category Source: https://api-docs.helpyousponsor.com/api-reference/communications/archive-a-profile-note-category delete /admin/notes/categories/{category_id} Requires notes_manage and donor-context/recipient-program access. Soft-deletes the category; existing notes retain category_id but resolve the category as null and display Uncategorized. Does not delete note bodies. Requires permission: one of notes_manage. # Assign an email to an admin Source: https://api-docs.helpyousponsor.com/api-reference/communications/assign-an-email-to-an-admin put /admin/email/assign_admin # Assign an SMS conversation Source: https://api-docs.helpyousponsor.com/api-reference/communications/assign-an-sms-conversation post /admin/sms_inbox/conversations/{conversation_id}/assign Sets an organization team member or clears assignment when assigned_user_id is omitted/null/zero. With Team and access enforcement enabled, the assignee must be active and have sms_inbox_reply or sms_inbox_manage. Does not change the line owner or its visibility. Conversations and available lines respect line visibility: restricted lines require assignment to the viewer or sms_inbox_manage/group_all. Requires permission: one of sms_inbox_manage; plus one of beta_features. # Assign multiple emails to an admin Source: https://api-docs.helpyousponsor.com/api-reference/communications/assign-multiple-emails-to-an-admin put /admin/emails/assign_admin # Cancel a scheduled newsletter Source: https://api-docs.helpyousponsor.com/api-reference/communications/cancel-a-scheduled-newsletter post /admin/newsLetters/{id}/cancel Atomically converts a future scheduled newsletter to draft and clears timezone, schedule source, recommendation and claim metadata. Already-due schedules and all other states conflict. No recipient email is sent by this operation. Requires permission: one of newsletter. # Change an SMS conversation inbox status Source: https://api-docs.helpyousponsor.com/api-reference/communications/change-an-sms-conversation-inbox-status post /admin/sms_inbox/conversations/{conversation_id}/status Moves the conversation to open, closed, spam or archived and records activity when changed. This inbox state does not change SMS consent, messaging_status or provider delivery state. Conversations and available lines respect line visibility: restricted lines require assignment to the viewer or sms_inbox_manage/group_all. Requires permission: one of sms_inbox_manage; plus one of beta_features. # Check a mailing generation audience Source: https://api-docs.helpyousponsor.com/api-reference/communications/check-a-mailing-generation-audience post /admin/mailing_templates/{id}/preflight Resolves the source-specific audience and classifies every record ready/warning/skipped without creating a run. Custom print mail skips postal opt-outs and master communication pauses; tax summaries also require a ready contribution statement. Label data decides address warnings/skips. Returns all counts plus one preflight page (default 20/max 100). Custom templates support only delivery_mode=none; email modes are reserved for system Tax Summary mailings. Requires permission: one of mailings_manage, manage_email. # Check sending domain DNS verification Source: https://api-docs.helpyousponsor.com/api-reference/communications/check-sending-domain-dns-verification post /admin/email/settings/sending-domains/{domainId}/check Requires provisioning ready. Refreshes provider DNS status; verified requires an active provider domain and a nonempty set of valid sending records. If an active domain loses verification, clears managed delivery and marks degraded, restoring the saved delivery path. Checking does not activate a newly verified domain. Requires verified_sending_domains enabled for the organization and the current user/group to have manage_email, email_manager or group_all. Requires permission: one of manage_email. # Clone an auto-email set Source: https://api-docs.helpyousponsor.com/api-reference/communications/clone-an-auto-email-set post /admin/auto_emails/emailset/{emailset_id}/clone Copies the tenant set and all active tenant templates transactionally; copied templates retain their content, triggers, disabled state and other settings. Optional name is trimmed and truncated to255, otherwise Copy of source name. Journey-library sets are unavailable when the organization hides them from legacy auto pages. Returns the new set under both emailset and data and records one clone activity. Does not send email or assign the new set to programs. Requires permission: one of manage_email. # Clone newsletter content or audience Source: https://api-docs.helpyousponsor.com/api-reference/communications/clone-newsletter-content-or-audience post /admin/newsLetters/{id}/clone Creates a new draft from any existing tenant newsletter. clone_scope=everything copies template and saved audience, template copies content/design/attachment/sender only, audience copies the saved recipient snapshot/rule only. Clears all schedule/claim metadata. Title defaults to Copy of source title and trims to255. Current story evidence is checked when copied HTML contains story markers; no email is sent. Requires permission: one of newsletter. # Count organization donor records Source: https://api-docs.helpyousponsor.com/api-reference/communications/count-organization-donor-records get /admin/donors/count Counts active tenant donor records including records without an email or with communication opt-outs. This is not the eligible newsletter recipient count. Requires permission: one of donors_view, donors_manage, donor-all. # Create a custom automated SMS template Source: https://api-docs.helpyousponsor.com/api-reference/communications/create-a-custom-automated-sms-template post /admin/auto_sms/template Requires configured Sendblue and a tenant-owned set. Supports notify_donor_photo, notify_donor_future_sponsorship or a Journeys-library trigger. Rejects an existing trigger in the set. Creates an empty disabled default variant. name is used in the receipt message rather than persisted as a template attribute. Requires permission: one of manage_sms. # Create a custom mailing template Source: https://api-docs.helpyousponsor.com/api-reference/communications/create-a-custom-mailing-template post /admin/mailing_templates Creates a custom donor/sponsorship template with at least one letter/label document. Household scope, tax_summary preset/renderer are reserved. Document kinds are upsert keys; repeated kinds retain the last supplied document. CanvaClone requires a letter, supported letter/postcard/card page preset, nonblank HTML and settings_json.editor_ui=canvaclone. Program bindings and current Impact Story evidence are stored transactionally. Requires permission: one of mailings_manage, manage_email. # Create a donation-type email template variant Source: https://api-docs.helpyousponsor.com/api-reference/communications/create-a-donation-type-email-template-variant post /admin/auto_emails/template/variant Creates or returns a donation-type-specific automated email template. Ordinary variants clone the default; DAF grant, IRA / QCD and explicitly contextual DAF advisor acknowledgments start with source-specific content and remain turned off until reviewed. DAF advisor and Direct soft-credit uses share the soft_credit template. Requires the admin API auth middleware and user permission checks. # Create a draft message Source: https://api-docs.helpyousponsor.com/api-reference/communications/create-a-draft-message post /admin/message/draft/{entity_id}/{from}/{file_id} # Create a draft, send, or schedule a newsletter Source: https://api-docs.helpyousponsor.com/api-reference/communications/create-a-draft-send-or-schedule-a-newsletter post /admin/send/newsLetter Creates a newsletter from content and a server-resolved audience or legacy email list. Requires nonempty selected email addresses even for a draft. status=sent becomes sending and queues durable recipient deliveries; suppression, marketing preferences, deduplication and current donor addresses are checked. Audiences over500 defer eligibility and report nullable counts. Scheduling resolves exact time at least five minutes ahead, matches any legacy fields, verifies current recommendations and permits at most10 scheduled newsletters. Draft save returns200; scheduled creation returns201. A queue receipt does not promise inbox delivery. Requires permission: one of newsletter. # Create a new email template Source: https://api-docs.helpyousponsor.com/api-reference/communications/create-a-new-email-template post /admin/auto_emails/template # Create a new note Source: https://api-docs.helpyousponsor.com/api-reference/communications/create-a-new-note post /admin/notes/{type}/{program_id} # Create a new note Source: https://api-docs.helpyousponsor.com/api-reference/communications/create-a-new-note-1 post /notes Creates a donor or recipient note and resolves its category within the organization. Requires notes_manage and access to the linked donor form or program. # Create a profile-note category Source: https://api-docs.helpyousponsor.com/api-reference/communications/create-a-profile-note-category post /admin/notes/categories/{type}/{program_id} Supports donor-wide categories using the literal donor bucket or recipient categories for one accessible tenant program. Requires notes_manage and appropriate context access. Trims the name and rejects case-insensitive duplicates in that active bucket. Requires permission: one of notes_manage. # Create an automated SMS receipt variant Source: https://api-docs.helpyousponsor.com/api-reference/communications/create-an-automated-sms-receipt-variant post /admin/auto_sms/template/variant Creates an enabled in_kind or soft_credit variant, copying message and administrator numbers from the default when available. An existing matching variant is returned with 200; a newly created one returns 201. The controller accepts the supplied trigger/set without requiring an existing default. Requires permission: one of manage_sms. # Create an automated SMS set Source: https://api-docs.helpyousponsor.com/api-reference/communications/create-an-automated-sms-set post /admin/auto_sms/smsset Requires enabled, configured Sendblue credentials. Creates the named set with the supplied E.164 sender number or the integration default, and provisions disabled starter templates. Returns 200 with the created raw set. Requires permission: one of manage_sms. # Deactivate verified email sending Source: https://api-docs.helpyousponsor.com/api-reference/communications/deactivate-verified-email-sending post /admin/email/settings/sending-domains/{domainId}/deactivate Clears managed sending for an active domain and returns it to verified state, restoring the saved delivery path. Repeated deactivation of an inactive setup returns its current state. Requires verified_sending_domains enabled for the organization and the current user/group to have manage_email, email_manager or group_all. Requires permission: one of manage_email. # Delete a custom automated SMS template Source: https://api-docs.helpyousponsor.com/api-reference/communications/delete-a-custom-automated-sms-template delete /admin/auto_sms/template/{id} Soft-deletes only custom notification/Journeys triggers. Built-in transactional templates cannot be deleted by this operation. Requires permission: one of manage_sms. # Delete a draft newsletter Source: https://api-docs.helpyousponsor.com/api-reference/communications/delete-a-draft-newsletter delete /admin/newsLetters/{id} Permanently removes the tenant draft and records its deletion activity. Any non-draft state conflicts; this does not cancel sending or a future schedule. Requires permission: one of newsletter. # Delete a note Source: https://api-docs.helpyousponsor.com/api-reference/communications/delete-a-note delete /admin/notes/{note_id} Soft-deletes a staff note by ID (sets `deleted_at`; the record is retained and recoverable). The note must belong to the authenticated user's client. Admin users call this from the notes panel when removing donor or recipient notes. Requires the admin API auth middleware and user permission checks. # Delete a note Source: https://api-docs.helpyousponsor.com/api-reference/communications/delete-a-note-1 delete /notes/{id} Soft-deletes a note while retaining the recoverable record, including notes on archived profiles. Requires notes_manage and profile access. Supplying expected_updated_at prevents deleting a changed note. # Delete a template image Source: https://api-docs.helpyousponsor.com/api-reference/communications/delete-a-template-image get /admin/remove_template_pic/{id} Deletes a template image object from S3 and permanently removes the corresponding upload record. Admin users call this from the template asset picker. Requires the admin API auth middleware and user permission checks. # Delete draft donor messages Source: https://api-docs.helpyousponsor.com/api-reference/communications/delete-draft-donor-messages delete /admin/messages/drafts/delete Permanently deletes selected draft donor messages for the authenticated client and writes an activity log entry for each removed draft. Admin users call this from the email manager bulk draft actions. Requires the admin API auth middleware and user permission checks. # Delete email template Source: https://api-docs.helpyousponsor.com/api-reference/communications/delete-email-template delete /admin/auto_emails/template/{id} Delete an email template. Only allows deletion of supported custom templates. # Download a communication coverage export Source: https://api-docs.helpyousponsor.com/api-reference/communications/download-a-communication-coverage-export get /admin/communications/coverage/exports/{exportId} Streams the requesting user ready private CSV as communications-coverage.csv. Requires unchanged permissions and an available stored artifact; pending/failed or missing artifacts return 404. Requires communications_coverage enabled (or the configured explicit environment opt-in), an active non-disabled user and communications_coverage_view. Program and donor-form access restrict every surface; mailbox quick links additionally require email_manager/manage_email. Requires permission: one of communications_coverage_view. # Download a generated mailing export Source: https://api-docs.helpyousponsor.com/api-reference/communications/download-a-generated-mailing-export get /admin/mailings/exports/{uploadId} Streams the tenant-owned export ZIP as an attachment, checking current Impact Story evidence and file availability. Does not wait for queued generation or regenerate a missing export. Requires permission: one of mailings_view, mailings_generate, mailings_manage, manage_email, reports_view, reports_manage. # Download a mailing run ZIP Source: https://api-docs.helpyousponsor.com/api-reference/communications/download-a-mailing-run-zip get /admin/mailing_runs/{id}/download-zip Streams the run ZIP as an attachment after checking current approved Impact Story evidence. Does not regenerate absent files. Requires permission: one of mailings_view, mailings_generate, mailings_manage, manage_email, reports_view, reports_manage. # Duplicate a custom mailing template Source: https://api-docs.helpyousponsor.com/api-reference/communications/duplicate-a-custom-mailing-template post /admin/mailing_templates/{id}/duplicate Copies the template, documents and program bindings with a Copy suffix, current actor ownership and freshly validated Impact Story evidence. System templates cannot be duplicated. Requires permission: one of mailings_manage, manage_email. # Edit a draft donor message Source: https://api-docs.helpyousponsor.com/api-reference/communications/edit-a-draft-donor-message patch /admin/message/draft/{email_id}/edit Updates the subject, message body, and optional S3 attachment marker for an existing draft donor message. Admin users call this before approving draft communications in the email manager. Requires the admin API auth middleware and user permission checks. # Edit a note Source: https://api-docs.helpyousponsor.com/api-reference/communications/edit-a-note put /admin/notes/{note_id}/{program_id} # Edit an email set Source: https://api-docs.helpyousponsor.com/api-reference/communications/edit-an-email-set put /admin/auto_emails/emailset # Edit an email template Source: https://api-docs.helpyousponsor.com/api-reference/communications/edit-an-email-template put /admin/auto_emails/template # Edit newsletter content or scheduling Source: https://api-docs.helpyousponsor.com/api-reference/communications/edit-newsletter-content-or-scheduling patch /admin/newsLetters/{id}/edit Atomically edits only draft/future scheduled newsletters. Supplied audience intent replaces the snapshot; nullable content/sender values handled by isset retain stored values. A nonempty schedule or scheduled_at schedules the newsletter at least five minutes ahead and enforces the10 scheduled limit; status alone is validated but does not change lifecycle. attachment empty string clears it; fileName is the legacy fallback. Returns detail, adding eligibility counts when scheduled. Requires permission: one of newsletter. # Email template Details Source: https://api-docs.helpyousponsor.com/api-reference/communications/email-template-details get /admin/auto_emails/template/{emailset_id}/{trigger} # Export notes as PDF Source: https://api-docs.helpyousponsor.com/api-reference/communications/export-notes-as-pdf get /admin/notes/{type}/{id}/export Generates a PDF export of notes for a donor or recipient entity, optionally filtered by note category. Admin users call this from the notes panel to download a human-readable record of staff notes. Requires the admin API auth middleware and user permission checks. # Find newsletter donors by tag Source: https://api-docs.helpyousponsor.com/api-reference/communications/find-newsletter-donors-by-tag get /admin/donors/by-tag Returns active organization donors with nonblank emails matching ANY supplied comma-separated tag. Results order by donor id. Optional limit clamps1..100; omitted limit returns every match. Empty tag returns an empty data array. Email suppression is applied later when dispatching. Requires permission: one of donors_view, donors_manage, donor-all. # Generate a mailing run Source: https://api-docs.helpyousponsor.com/api-reference/communications/generate-a-mailing-run post /admin/mailing_templates/{id}/generate Creates a durable run and per-recipient snapshots after preflight/evidence checks. More than one audience item queues processing; zero/one item runs synchronously. Returns 200 with run_id and current status, which may be queued/processing/completed/partially_failed/failed. Default delivery_mode=none produces artifacts; tax-summary email modes send to admin, selected donors or explicit recipients with current suppression/preferences checks. Poll run progress separately from delivery status. Requires permission: one of mailings_generate, mailings_manage, manage_email. # Get a specific note Source: https://api-docs.helpyousponsor.com/api-reference/communications/get-a-specific-note get /notes/{id} Returns a note resource for a donor or recipient, including archived profiles. Requires notes_view or notes_manage and access to the linked donor form or program. # Get all admins Source: https://api-docs.helpyousponsor.com/api-reference/communications/get-all-admins get /admin/email_manager/admins # Get all notes for an entity or donor Source: https://api-docs.helpyousponsor.com/api-reference/communications/get-all-notes-for-an-entity-or-donor get /notes Returns notes for a donor or recipient, including archived profiles. Requires notes_view or notes_manage and access to the linked donor form or program. # Get available entities Source: https://api-docs.helpyousponsor.com/api-reference/communications/get-available-entities get /admin/email_manager/entities # Get available note categories Source: https://api-docs.helpyousponsor.com/api-reference/communications/get-available-note-categories get /notes/categories Returns category objects and a parallel list of names. Requires notes_view or notes_manage and access to donor forms or the requested program. # Get details of an emailset Source: https://api-docs.helpyousponsor.com/api-reference/communications/get-details-of-an-emailset get /admin/auto_emails/emailset/{emailset_id} # Get email category statistics Source: https://api-docs.helpyousponsor.com/api-reference/communications/get-email-category-statistics post /admin/email_manager/stats # Get note details Source: https://api-docs.helpyousponsor.com/api-reference/communications/get-note-details get /admin/notes/{note_id}/{program_id} # Get sponsors of an entity Source: https://api-docs.helpyousponsor.com/api-reference/communications/get-sponsors-of-an-entity get /admin/email_manager/entities/{id}/sponsors # Get unique donor or entity names for email filtering Source: https://api-docs.helpyousponsor.com/api-reference/communications/get-unique-donor-or-entity-names-for-email-filtering post /admin/email_manager/filter_names Get unique donor or entity names for filtering # Link an SMS conversation to a donor Source: https://api-docs.helpyousponsor.com/api-reference/communications/link-an-sms-conversation-to-a-donor post /admin/sms_inbox/conversations/{conversation_id}/link-donor Links a donor from this organization, marks routing matched, and backfills inbound/opt-state activity. A nonempty resolved donor phone must match the participant phone; a donor without a resolved phone can be linked. A saved conversation opt-in/opt-out state is applied to donor can_receive_sms while the master communication pause remains effective. Conversations and available lines respect line visibility: restricted lines require assignment to the viewer or sms_inbox_manage/group_all. Requires permission: one of sms_inbox_manage; plus one of beta_features. # List attachments on an email activity Source: https://api-docs.helpyousponsor.com/api-reference/communications/list-attachments-on-an-email-activity get /activities/{id}/attachments Returns the file attachments parsed from an inbound email Activity, each with an unsigned public S3 download URL. Errors generating individual download URLs are logged but do not fail the request — the affected attachment will be returned without a `download_url`. # List automated SMS sets Source: https://api-docs.helpyousponsor.com/api-reference/communications/list-automated-sms-sets get /admin/auto_sms Returns compact sets/templates, program association, trigger catalog and template validation results. include_template_content optionally includes bodies. Can lazily initialize disabled default SMS templates and hides the Journeys library when configured. The current authenticated sendblue response includes sensitive credential fields. Requires permission: one of manage_sms. # List generated mailings Source: https://api-docs.helpyousponsor.com/api-reference/communications/list-generated-mailings get /admin/mailings Lists newest organization mailing records with template/run summaries. Filters status, delivery_status, run/template/donor/household, template preset, run source and run selection year. delivery_status=print_only selects not_requested delivery excluding tax-summary templates/runs. per_page is clamped to 1..100, default 10. Artifact availability uses stored Upload records without remote existence checks. Requires permission: one of mailings_view, mailings_generate, mailings_manage, manage_email, reports_view, reports_manage. # List mailing templates Source: https://api-docs.helpyousponsor.com/api-reference/communications/list-mailing-templates get /admin/mailing_templates Returns organization templates, newest update first, with compact document metadata. Can create/restore the system Tax Summary template. With scope_type, filters to that scope; tax_summary selects its system preset. Program applicability is checked only when a scope and nonempty program_ids are supplied. Requires permission: one of mailings_view, mailings_generate, mailings_manage, manage_email, reports_view, reports_manage. # List mailing visual design assets Source: https://api-docs.helpyousponsor.com/api-reference/communications/list-mailing-visual-design-assets get /admin/mailing_design_assets/{assetType} Returns built-in fonts/templates/texts/shapes/frames, or matching stock images plus up to 20 newest organization image uploads. q filters names for non-images, stock names/tags and upload file/name for images. Generated mailing artifacts are excluded from uploads. remote_search_enabled is true, but this handler uses the built-in stock catalog and organization uploads without a third-party search request. Requires permission: one of mailings_manage. # List newsletters with delivery summaries Source: https://api-docs.helpyousponsor.com/api-reference/communications/list-newsletters-with-delivery-summaries post /admin/newsLetters Returns newsletters newest updated_at/id first. Pagination is clamped; title search is trimmed to255 characters. Invalid filterData becomes no filter. statusView=overview collapses partially_sent/unconfirmed to sent, except explicit filters for those states force detailed view. status_counts includes all tenant newsletters before title/status filtering. Requires permission: one of newsletter. # List note category names Source: https://api-docs.helpyousponsor.com/api-reference/communications/list-note-category-names get /admin/notes/categories/{type}/{program_id} Returns the category names available for donor or entity notes in the requested program context. Admin users call this when rendering category filters and note forms. Requires the admin API auth middleware and user permission checks. # List organization email sending domains Source: https://api-docs.helpyousponsor.com/api-reference/communications/list-organization-email-sending-domains get /admin/email/settings/sending-domains Returns safe DNS/provisioning/delivery state, newest setup first. Does not query the provider. Requires verified_sending_domains enabled for the organization and the current user/group to have manage_email, email_manager or group_all. Requires permission: one of manage_email. # List organization Sendblue lines Source: https://api-docs.helpyousponsor.com/api-reference/communications/list-organization-sendblue-lines get /admin/sendblue/lines Returns registered Sendblue lines for this organization, default first then phone number. Includes saved ownership/visibility and provisioning metadata without sending a message. Requires permission: one of sendblue_lines_view, sendblue_manage, access_account_settings. # List recent mailing runs Source: https://api-docs.helpyousponsor.com/api-reference/communications/list-recent-mailing-runs get /admin/mailing_runs Returns at most 100 organization runs, newest id first. Queued/processing runs use live generated-record counters; finished runs use stored totals. Progress describes document processing separately from delivery status. Requires permission: one of mailings_view, mailings_generate, mailings_manage, manage_email, reports_view, reports_manage. # List recipient messages for moderation Source: https://api-docs.helpyousponsor.com/api-reference/communications/list-recipient-messages-for-moderation get /admin/recipient-messages Lists recipient-authored messages in this organization, pending_approval by default. status=all or blank removes the status filter. Pending/queued/rejected messages sort first, then newest updated; optional program/entity/search filters narrow the list. per_page is clamped to 1..100, default 20. Versioned access: requires permission: one of email_manager, manage_email. # List SMS inbox conversations Source: https://api-docs.helpyousponsor.com/api-reference/communications/list-sms-inbox-conversations get /admin/sms_inbox/conversations Lists newest message conversations in the selected tab, default open. Tabs unread/mine/unassigned/triage further restrict open conversations; closed includes archived; spam selects spam. Unknown tabs use the open filter. per_page is clamped to 10..100 (default 25). Counts cover all visible conversations before list filters; assignable_users retain any current ineligible assignee for reassignment. Conversations and available lines respect line visibility: restricted lines require assignment to the viewer or sms_inbox_manage/group_all. Requires permission: one of sms_inbox_view, sms_inbox_reply, sms_inbox_manage; plus one of beta_features. # Log a donor mailing manually Source: https://api-docs.helpyousponsor.com/api-reference/communications/log-a-donor-mailing-manually post /admin/donors/{donor_id}/mailings Records a manual mailing activity for this organization active donor, with an optional historical logged_at (defaults now), notes and label layout. Creates an activity record without generating or sending artifacts. Requires permission: one of mailings_generate, mailings_manage, manage_email. # Manage auto emails Source: https://api-docs.helpyousponsor.com/api-reference/communications/manage-auto-emails get /admin/auto_emails # Manually associate an email activity with a donor Source: https://api-docs.helpyousponsor.com/api-reference/communications/manually-associate-an-email-activity-with-a-donor patch /activities/{id}/associate-donor Admin tool: links an inbound-email Activity to a Donor (e.g. after the auto-matcher failed or matched the wrong donor). The activity row is updated and re-indexed in Meilisearch. # Mark an SMS conversation read Source: https://api-docs.helpyousponsor.com/api-reference/communications/mark-an-sms-conversation-read post /admin/sms_inbox/conversations/{conversation_id}/mark-read Sets the shared conversation last_read_at and resets unread_count to zero. Does not clear the needs_reply flag and does not send a provider read receipt. Conversations and available lines respect line visibility: restricted lines require assignment to the viewer or sms_inbox_manage/group_all. Requires permission: one of sms_inbox_reply, sms_inbox_manage; plus one of beta_features. # Mark email as read Source: https://api-docs.helpyousponsor.com/api-reference/communications/mark-email-as-read put /admin/email/mark_read/{email_id} # Page saved newsletter recipients Source: https://api-docs.helpyousponsor.com/api-reference/communications/page-saved-newsletter-recipients get /admin/newsLetters/{id}/recipients Pages the saved donor-id snapshot, clamping page to the last page and pageSize1..100. Resolves current/deleted tenant donor display context, preferring the stored address and reporting drift. Blank addresses are omitted from donors while total still counts ids; legacy email-only entries without saved donor ids do not appear. Requires permission: one of newsletter. # Post Template Source: https://api-docs.helpyousponsor.com/api-reference/communications/post-template post /admin/template Handles saving or updating a template with provided CSS, * JavaScript, and HTML content based on the client ID. # Preview a mailing PDF Source: https://api-docs.helpyousponsor.com/api-reference/communications/preview-a-mailing-pdf post /admin/mailing_templates/{id}/preview Returns an inline letter/label PDF for the first printable audience record, or one printable label sheet. Uses the same audience, opt-out, template applicability and current Impact Story checks as preflight; no generation run is stored. A missing requested document or empty printable audience returns 422. Requires permission: one of mailings_manage, manage_email. # Preview persisted auto-email content Source: https://api-docs.helpyousponsor.com/api-reference/communications/preview-persisted-auto-email-content get /admin/auto_emails/template/{emailset_id}/{trigger}/preview Returns the subject and message for one configured auto-email template so an administrator can review it from a donor record. This read-only path never creates or changes template configuration, and both the email set and template reads are scoped to the authenticated organization. Requires the `manage_email` permission. # Preview signed email preferences Source: https://api-docs.helpyousponsor.com/api-reference/communications/preview-signed-email-preferences post /unsubscribe/preview Validates the signed token and returns organization branding and effective email category choices. The token scopes the address and organization; no bearer session is needed. Does not change preferences. # Queue a commitment-based SMS test or live send Source: https://api-docs.helpyousponsor.com/api-reference/communications/queue-a-commitment-based-sms-test-or-live-send post /admin/test_smsset Uses a tenant-owned commitment to render the trigger. test defaults true and sends to test_number or the current admin phone; test=false uses the donor actual number and current SMS readiness/consent. Requires an attached/resolved SMS set and configured Sendblue. pay_receipt resolves an in-kind/soft-credit variant by commitment method with enabled-default fallback. The receipt says sent but provider delivery is queued and rechecks consent. Requires permission: one of manage_sms. # Queue a communication coverage CSV export Source: https://api-docs.helpyousponsor.com/api-reference/communications/queue-a-communication-coverage-csv-export post /admin/communications/coverage/export Queues targets or rollups with normalized filters and selected recognized columns. Stores a private artifact owned by the requesting user and the exact permission fingerprint. The worker rechecks access before and after generation. Returns 200 with queued/export_id; poll status before download. Requires communications_coverage enabled (or the configured explicit environment opt-in), an active non-disabled user and communications_coverage_view. Program and donor-form access restrict every surface; mailbox quick links additionally require email_manager/manage_email. Requires permission: one of communications_coverage_view. # Queue a generated mailing ZIP export Source: https://api-docs.helpyousponsor.com/api-reference/communications/queue-a-generated-mailing-zip-export post /admin/mailings/bulk-export Selects tenant-owned generated records from the supplied positive ids, dropping duplicates and ignoring unavailable ids. Queues a ZIP of all/letter/label artifacts and returns 200 with an export Upload id and status path. Checks current Impact Story evidence before queueing and again in the worker. Poll status before downloading. Requires permission: one of mailings_generate, mailings_manage, manage_email. # Queue a manual SMS reply Source: https://api-docs.helpyousponsor.com/api-reference/communications/queue-a-manual-sms-reply post /admin/sms_inbox/conversations/{conversation_id}/messages Requires an active Sendblue line and a conversation that is neither blocked nor opted out. Supply nonblank text or unused outbound attachment ids uploaded for this organization. Creates one queued SMS per attachment, attaching text to the first; text-only sends create one message. Attachments are claimed atomically before jobs dispatch. Returns refreshed detail with HTTP 200; queued status does not establish provider delivery, and the worker rechecks donor consent. Conversations and available lines respect line visibility: restricted lines require assignment to the viewer or sms_inbox_manage/group_all. Requires permission: one of sms_inbox_reply, sms_inbox_manage; plus one of beta_features. # Queue an automated SMS trigger Source: https://api-docs.helpyousponsor.com/api-reference/communications/queue-an-automated-sms-trigger get /admin/auto_sms/send/{program_id}/{trigger}/{to} Executes the selected program default SMS template. Requires a program SMS set, active sender line, configured Sendblue, enabled template and nonempty rendered message. to=donor uses the selected donor and requires current SMS consent/readiness; to=admin uses comma-separated template to_numbers. Returns 200 after queueing; it does not establish delivery. A missing program/set returns 500; unavailable recipients/template/consent returns 422. Requires permission: one of manage_sms. # Queue an automated SMS trigger Source: https://api-docs.helpyousponsor.com/api-reference/communications/queue-an-automated-sms-trigger-1 get /admin/auto_sms/send/{program_id}/{trigger}/{to}/{donor_id} Executes the selected program default SMS template. Requires a program SMS set, active sender line, configured Sendblue, enabled template and nonempty rendered message. to=donor uses the selected donor and requires current SMS consent/readiness; to=admin uses comma-separated template to_numbers. Returns 200 after queueing; it does not establish delivery. A missing program/set returns 500; unavailable recipients/template/consent returns 422. Requires permission: one of manage_sms. # Queue an automated SMS trigger Source: https://api-docs.helpyousponsor.com/api-reference/communications/queue-an-automated-sms-trigger-2 get /admin/auto_sms/send/{program_id}/{trigger}/{to}/{donor_id}/{entity_id} Executes the selected program default SMS template. Requires a program SMS set, active sender line, configured Sendblue, enabled template and nonempty rendered message. to=donor uses the selected donor and requires current SMS consent/readiness; to=admin uses comma-separated template to_numbers. Returns 200 after queueing; it does not establish delivery. A missing program/set returns 500; unavailable recipients/template/consent returns 422. Requires permission: one of manage_sms. # Read a generated mailing Source: https://api-docs.helpyousponsor.com/api-reference/communications/read-a-generated-mailing get /admin/mailings/{id} Returns the organization compact generated mailing, template/run summary and artifact paths after checking current storage availability. Does not expose rendered HTML or frozen address/merge snapshots. Requires permission: one of mailings_view, mailings_generate, mailings_manage, manage_email, reports_view, reports_manage. # Read a generated mailing export status Source: https://api-docs.helpyousponsor.com/api-reference/communications/read-a-generated-mailing-export-status get /admin/mailings/exports/{uploadId}/status Returns persisted/cache job progress and verifies stored availability before declaring ready. A ready progress record with a missing file becomes failed. Checks current Impact Story evidence. The ready download_url omits v1; use the corresponding documented download endpoint. Requires permission: one of mailings_view, mailings_generate, mailings_manage, manage_email, reports_view, reports_manage. # Read a generated mailing PDF Source: https://api-docs.helpyousponsor.com/api-reference/communications/read-a-generated-mailing-pdf get /admin/mailings/{id}/artifact/{kind} Streams the selected letter or label inline. Requires the generated mailing, Upload record and stored file in this organization. Rechecks approved Impact Story evidence and can withdraw a run when evidence is invalid. Requires permission: one of mailings_view, mailings_generate, mailings_manage, manage_email, reports_view, reports_manage. # Read a mailing run label sheet Source: https://api-docs.helpyousponsor.com/api-reference/communications/read-a-mailing-run-label-sheet get /admin/mailing_runs/{id}/artifact/{kind} Streams a run label_sheet PDF inline after checking current approved Impact Story evidence. Only label_sheet is supported. Requires permission: one of mailings_view, mailings_generate, mailings_manage, manage_email, reports_view, reports_manage. # Read a mailing run progress Source: https://api-docs.helpyousponsor.com/api-reference/communications/read-a-mailing-run-progress get /admin/mailing_runs/{id} Returns this organization run with live generated-record counts and progress. total/ready/skipped/failed/queued and processed counts are distinct from delivery status. Requires permission: one of mailings_view, mailings_generate, mailings_manage, manage_email, reports_view, reports_manage. # Read a mailing template editor Source: https://api-docs.helpyousponsor.com/api-reference/communications/read-a-mailing-template-editor get /admin/mailing_templates/{id} Returns the tenant-owned template with full HTML/serialized design/settings, bindings, form-aware merge groups and latest-record preview context. System templates can be read but cannot be edited, archived or duplicated. Requires permission: one of mailings_view, mailings_generate, mailings_manage, manage_email, reports_view, reports_manage. # Read a newsletter and audience snapshot Source: https://api-docs.helpyousponsor.com/api-reference/communications/read-a-newsletter-and-audience-snapshot get /admin/newsLetters/{id} Returns stored content without raw recipient arrays, derived delivery totals, current-versus-snapshot audience explanation, and the first50 recipient ids. Saved addresses remain visible with email drift flags; sending resolves current tenant donor addresses. Missing record returns404 with status=success in the legacy envelope. Requires permission: one of newsletter. # Read a newsletter send-time recommendation Source: https://api-docs.helpyousponsor.com/api-reference/communications/read-a-newsletter-send-time-recommendation get /admin/newsLetters/timing-recommendation Returns a cached unexpired recommendation or computes one from tenant newsletter aggregates over the last 180days. Requires at least 50 delivered messages, 4 campaigns and 2 comparison slots with at least 2 campaigns each; latest delivery must be within 45days. The next winning local two-hour slot is at least 30minutes ahead. Results expire after one day. Insufficient/stale data and unexpected failures, including an invalid timezone, return 200 with a non-ready status; manual scheduling remains available. Requires permission: one of newsletter. # Read a recipient message mailbox detail Source: https://api-docs.helpyousponsor.com/api-reference/communications/read-a-recipient-message-mailbox-detail get /admin/recipient-messages/{id} Returns a tenant-owned recipient-authored message in the legacy mailbox shape, including sender/donor details and attachment availability. No attachment yields null availability; an unavailable attachment reports false and a reason. admins and responses are empty in this projection. Versioned access: requires permission: one of email_manager, manage_email. # Read an automated SMS set Source: https://api-docs.helpyousponsor.com/api-reference/communications/read-an-automated-sms-set get /admin/auto_sms/smsset/{smsset_id} Returns the tenant-owned stored set, without provisioning templates or sending messages. Requires permission: one of manage_sms. # Read an automated SMS template editor Source: https://api-docs.helpyousponsor.com/api-reference/communications/read-an-automated-sms-template-editor get /admin/auto_sms/template/{smsset_id}/{trigger} Reads the selected trigger/variant, default donation_type=default, and creates an enabled empty template when absent. Returns known/unknown shortcodes, eligible form fields, validation results and three latest commitment preview options. Receipt triggers include all variant records. The current authenticated sendblue projection contains credential fields. Requires permission: one of manage_sms. # Read an SMS conversation Source: https://api-docs.helpyousponsor.com/api-reference/communications/read-an-sms-conversation get /admin/sms_inbox/conversations/{conversation_id} Returns a newest-first page of message records, ordered chronologically inside that page (default 50, maximum 100), plus current line/donor reply eligibility. Reading can refresh saved messaging_status but does not mark the conversation read. Conversations and available lines respect line visibility: restricted lines require assignment to the viewer or sms_inbox_manage/group_all. Requires permission: one of sms_inbox_view, sms_inbox_reply, sms_inbox_manage; plus one of beta_features. # Read communication coverage export status Source: https://api-docs.helpyousponsor.com/api-reference/communications/read-communication-coverage-export-status get /admin/communications/coverage/exports/{exportId}/status Requires this organization export, the original requesting user and an unchanged permission fingerprint. Returns queued/processing/ready/failed. download_url is an API path without the version prefix; use the documented v1 download endpoint when ready. Requires communications_coverage enabled (or the configured explicit environment opt-in), an active non-disabled user and communications_coverage_view. Program and donor-form access restrict every surface; mailbox quick links additionally require email_manager/manage_email. Requires permission: one of communications_coverage_view. # Read communication coverage target history Source: https://api-docs.helpyousponsor.com/api-reference/communications/read-communication-coverage-target-history get /admin/communications/coverage/targets/{coverageTargetId} Finds a permitted target across all target types/statuses while respecting program/source/channel context. Returns its projection, current queue summary and one newest-first timeline page; there is no timeline total/page metadata. A full timeline event can be context-only, so check qualifies_for_target. Requires communications_coverage enabled (or the configured explicit environment opt-in), an active non-disabled user and communications_coverage_view. Program and donor-form access restrict every surface; mailbox quick links additionally require email_manager/manage_email. Requires permission: one of communications_coverage_view. # Read communication coverage totals Source: https://api-docs.helpyousponsor.com/api-reference/communications/read-communication-coverage-totals get /admin/communications/coverage/summary Returns selected audience totals, effective normalized filter defaults and quick-view counts. Defaults to sponsorship_pair, active/due, message_manager and email/print. Written coverage requires a successful/logged outbound email/print from staff/recipient within the target eligibility period and matching target scope; broadcasts/transactional touches are context. Work-queue filters do not reduce summary totals. Requires communications_coverage enabled (or the configured explicit environment opt-in), an active non-disabled user and communications_coverage_view. Program and donor-form access restrict every surface; mailbox quick links additionally require email_manager/manage_email. Requires permission: one of communications_coverage_view. # Read donor communication preferences Source: https://api-docs.helpyousponsor.com/api-reference/communications/read-donor-communication-preferences get /donor/{id}/communication-preferences Returns effective delivery states and underlying saved choices for this donor primary email, including archived donor records. Requires access to every donor form with a record sharing the address. A donor master do-not-email block also pauses SMS/postal delivery without losing saved choices. Requires permission: one of donors_view, donors_manage, donor-all. # Read donor mailing activity Source: https://api-docs.helpyousponsor.com/api-reference/communications/read-donor-mailing-activity get /admin/donors/{donor_id}/mailings Returns recent manual/generated mailing logs for an active tenant-owned donor. per_page is clamped to 1..100, default 25; reads up to four times that many newest activities then selects the most recent by logged_at when present. This is a bounded recent list, without page cursors or totals. Artifact flags probe current storage. Requires permission: one of mailings_view, mailings_generate, mailings_manage, manage_email, reports_view, reports_manage. # Read donor portal notification preferences Source: https://api-docs.helpyousponsor.com/api-reference/communications/read-donor-portal-notification-preferences get /frontend/donor/dashboard/notification-preferences/{client_id}/{program_id}/{session_id} Requires a valid logged-in donor session for the client, and a program in that client or the global none context. The session lifetime refreshes for one hour on use. Returns category/event catalog overrides and address-level effective/saved communication choices. # Read mailing template merge options Source: https://api-docs.helpyousponsor.com/api-reference/communications/read-mailing-template-merge-options get /admin/mailing_templates/meta/options Returns organization programs excluding the synthetic root, form-aware merge schema, Unlayer tag groups and a latest-record preview context. scope_type defaults donor; program_ids narrows form groups, while preview context independently selects the latest suitable record. No mailing is generated. Requires permission: one of mailings_view, mailings_generate, mailings_manage, manage_email, reports_view, reports_manage. # Read newsletter composer merge tags Source: https://api-docs.helpyousponsor.com/api-reference/communications/read-newsletter-composer-merge-tags get /admin/newsLetters/composer-metadata Returns merge availability and one selected donor-form field set. No donor form disables profile tags; multiple forms require all standardized. The system unsubscribe_url shortcode remains available regardless. Does not return donor records. Requires permission: one of newsletter. # Read per-recipient newsletter delivery results Source: https://api-docs.helpyousponsor.com/api-reference/communications/read-per-recipient-newsletter-delivery-results get /admin/newsLetters/{id}/delivery-results Returns durable delivery rows oldest id first with derived summary and pagination. pending combines queued/sending; unconfirmed represents ambiguous provider handoff and should be reconciled before retry. sent confirms provider acceptance; separate delivered evidence can still show unknown/not_delivered. Error explanations are safe descriptions rather than raw provider messages. Requires permission: one of newsletter. # Reconcile email sending domain provisioning Source: https://api-docs.helpyousponsor.com/api-reference/communications/reconcile-email-sending-domain-provisioning post /admin/email/settings/sending-domains/{domainId}/reconcile Rechecks an incomplete/uncertain setup under its provisioning lock, recovering only the same ambiguous create attempt. A ready setup returns saved state. Before next_reconcile_at, creation waits while discovery can still run. An unresolved outcome returns 202; an external conflict returns 409. Does not activate sending. Requires verified_sending_domains enabled for the organization and the current user/group to have manage_email, email_manager or group_all. Requires permission: one of manage_email. # Record mailing delivery statuses Source: https://api-docs.helpyousponsor.com/api-reference/communications/record-mailing-delivery-statuses patch /admin/mailings/delivery-status Updates matching tenant-owned mailing delivery_status to sent or not_sent, ignores unavailable ids, sets/clears delivered_at and clears delivery errors. Recalculates each affected run delivery summary. This records the operator decision without sending mail. Requires permission: one of groups, admins, new_form, forms, manage_programs, donors_manage, donations, manage_email, email_manager, manage_sms, sms_manager, sms_inbox_view, sms_inbox_reply, sms_inbox_manage, sendblue_manage, mailings_view, mailings_generate, mailings_manage, manage_settings, access_account_settings, access_payment_gateways, tasks_manage, trips_manage, events_manage, events_sponsor_manage, imports_manage, households_manage, notes_manage, reports_manage. # Refresh a saved tag newsletter audience Source: https://api-docs.helpyousponsor.com/api-reference/communications/refresh-a-saved-tag-newsletter-audience post /admin/newsLetters/{id}/audience/refresh Rebuilds the saved ANY-tag snapshot from current tenant donors, preserving explicit additions and manual removals. Only editable draft/future scheduled newsletters with saved tags can refresh. Does not dispatch email; returns refreshed detail and first50 recipient ids. Requires permission: one of newsletter. # Reject a pending recipient message Source: https://api-docs.helpyousponsor.com/api-reference/communications/reject-a-pending-recipient-message post /admin/recipient-messages/{id}/reject Only pending_approval messages can be rejected. Stores the trimmed rejection reason, current actor/time and rejected status, and records activity. Does not send the message. Versioned access: requires permission: one of email_manager, manage_email. # Remove an automated SMS set Source: https://api-docs.helpyousponsor.com/api-reference/communications/remove-an-automated-sms-set delete /admin/auto_sms/smsset/{smsset_id} Soft-deletes this organization set and all its non-deleted templates in a transaction. Does not remove historical messages or provider phone lines. Requires permission: one of manage_sms. # Remove an email set Source: https://api-docs.helpyousponsor.com/api-reference/communications/remove-an-email-set delete /admin/auto_emails/emailset/{emailset_id} # Remove an inactive sending domain Source: https://api-docs.helpyousponsor.com/api-reference/communications/remove-an-inactive-sending-domain delete /admin/email/settings/sending-domains/{domainId} Requires the setup to be inactive. Deletes a ready domain from the provider before removing its local setup; non-ready provisioning/conflict records are removed locally. Refuses concurrent setup activity. Does not remove an active domain. Requires verified_sending_domains enabled for the organization and the current user/group to have manage_email, email_manager or group_all. Requires permission: one of manage_email. # Rename a profile-note category Source: https://api-docs.helpyousponsor.com/api-reference/communications/rename-a-profile-note-category put /admin/notes/categories/{category_id} Requires notes_manage plus access to the donor category context or recipient program. Trims the supplied name and rejects a case-insensitive duplicate in the same organization/program bucket. Notes retain their category relationship. Requires permission: one of notes_manage. # Resolve donor and recipient message context Source: https://api-docs.helpyousponsor.com/api-reference/communications/resolve-donor-and-recipient-message-context get /admin/message-context Checks requested profiles against current organization, donor-form and program visibility. Returns visible names and allowed scopes plus can_compose when both profiles have a completed relationship. Omitting both ids returns an empty data array. This context endpoint does not send, create or assign a message; can_compose does not by itself grant other operation permissions. Requires permission: one of email_manager, manage_email, send_status. # Retrieve Template Source: https://api-docs.helpyousponsor.com/api-reference/communications/retrieve-template get /admin/template Fetches a specific template and associated pictures based on the client ID. # Retry failed newsletter deliveries Source: https://api-docs.helpyousponsor.com/api-reference/communications/retry-failed-newsletter-deliveries post /admin/newsLetters/{id}/retry Requires overall failed state. With send_immediately=true or no schedule, claims and retries only failed durable rows after current address/preferences checks; sent and ambiguous rows remain untouched. Otherwise reschedules at least five minutes ahead subject to the10 scheduled limit and current recommendation checks. Large-audience eligibility may be pending.200 reports current state rather than completion. Requires permission: one of newsletter. # Save an automated SMS template Source: https://api-docs.helpyousponsor.com/api-reference/communications/save-an-automated-sms-template put /admin/auto_sms/template Updates the tenant-owned template selected by id, or creates one for smsset_id/trigger/donation_type. Known program/donor/recipient/participant shortcodes are checked; unrecognized codes return 400. Omitted message clears it, omitted to_numbers clears administrator recipients, and omitted disabled enables the template. Use a supported trigger from the catalog. Requires permission: one of manage_sms. # Save newsletter content and audience Source: https://api-docs.helpyousponsor.com/api-reference/communications/save-newsletter-content-and-audience post /admin/save/recipients Creates a NEW newsletter and snapshot; it does not update an existing newsletter. Requires from/title/message; status is consumed directly from the payload without enum validation. log_activity optionally records a draft action. Does not dispatch email or validate a send schedule. Returns detail plus the first50 saved recipient ids. Tag/all selection is resolved server-side rather than trusting a parallel email list. Requires permission: one of groups, admins, new_form, forms, manage_programs, donors_manage, donations, manage_email, email_manager, manage_sms, sms_manager, sms_inbox_view, sms_inbox_reply, sms_inbox_manage, sendblue_manage, mailings_view, mailings_generate, mailings_manage, manage_settings, access_account_settings, access_payment_gateways, tasks_manage, trips_manage, events_manage, events_sponsor_manage, imports_manage, households_manage, notes_manage, reports_manage. # Save preferences from a signed email link Source: https://api-docs.helpyousponsor.com/api-reference/communications/save-preferences-from-a-signed-email-link post /unsubscribe The signed token scopes the email address and organization. With only token, a category link opts out of its source category; a legacy link stops all email. Explicit changes apply only the named categories. Individual account_security changes are forbidden, and category links cannot disable all email. restore_all_email is exclusive of individual changes/disable_all_email; disable_all_email cannot be combined with enabling categories. SMS/postal changes are rejected. Restore clears stored opt-outs while donor/form suppression remains. # Search automated SMS commitment preview options Source: https://api-docs.helpyousponsor.com/api-reference/communications/search-automated-sms-commitment-preview-options get /admin/auto_sms/template/{smsset_id}/{trigger}/sponsorships Returns latest commitment choices attached through a recipient relationship to programs using this SMS set. Search matches donor/profile names, recipient title fields and numeric commitment/relationship ids. limit defaults 20, maximum 50. No attached program returns an empty array. Requires permission: one of manage_sms. # Search commitment preview options Source: https://api-docs.helpyousponsor.com/api-reference/communications/search-commitment-preview-options get /admin/auto_emails/template/{emailset_id}/{trigger}/sponsorships Returns donor-to-recipient sponsorship options that can be used to preview shortcode output for an automated email template. Admin users call this from the template editor; results are scoped to programs attached to the email set and filtered by the authenticated client. Requires the admin API auth middleware and user permission checks. # Search communication coverage rollups Source: https://api-docs.helpyousponsor.com/api-reference/communications/search-communication-coverage-rollups post /admin/communications/coverage/rollups/search Returns program groups by default, or recipient/program groups when rollup_type=recipient. Counts aggregate all permitted audience rows in each group; at least one row must match work filters. Defaults sort coverage_rate_30d ascending, independent of the target-list severity default. Requires communications_coverage enabled (or the configured explicit environment opt-in), an active non-disabled user and communications_coverage_view. Program and donor-form access restrict every surface; mailbox quick links additionally require email_manager/manage_email. Requires permission: one of communications_coverage_view. # Search communication coverage targets Source: https://api-docs.helpyousponsor.com/api-reference/communications/search-communication-coverage-targets post /admin/communications/coverage/targets/search Returns a page of permitted target projections matching coverage-status/assignment/unread/approval/no-thread filters, with audience totals before those work filters. Defaults page 1/per_page 25, severity descending. A welcome gap means no qualifying touch in a target period begun within 7 days; staleness uses selected 30/60/90 day threshold. Requires communications_coverage enabled (or the configured explicit environment opt-in), an active non-disabled user and communications_coverage_view. Program and donor-form access restrict every surface; mailbox quick links additionally require email_manager/manage_email. Requires permission: one of communications_coverage_view. # Search emails using Meilisearch Source: https://api-docs.helpyousponsor.com/api-reference/communications/search-emails-using-meilisearch post /admin/email_manager/search # Send a message Source: https://api-docs.helpyousponsor.com/api-reference/communications/send-a-message get /admin/message/send/{entity_id}/{donor_id}/{from}/{file_id} # Send a message Source: https://api-docs.helpyousponsor.com/api-reference/communications/send-a-message-1 post /admin/message/send/{entity_id}/{from}/{file_id} # Send a recipient profile-update email Source: https://api-docs.helpyousponsor.com/api-reference/communications/send-a-recipient-profile-update-email post /admin/auto_emails/send/{program_id}/profile_update/donor/{donor_id}/{entity_id} Explicitly queues profile-update email for ALL distinct current sponsors of the selected recipient, including relationships funded separately. The donor_id is required context and idempotency scope; it does not narrow delivery to that donor. Requires active recipient in the selected tenant program and enabled/available template, current donor/form/category preferences and valid address. Companion SMS is disabled.200 means all eligible attempts were queued;207 reports partial queueing;422 means no eligible sends or invalid context;500 reports zero-delivery failures. Idempotency-Key is actor/organization/program/donor/recipient scoped, cached24 hours: completed calls replay the same status/body, in-flight calls409; zero-send server failures release the key. A partial receipt must not be retried with a new key to avoid duplicates. Requires permission: one of manage_programs, manage_email. # Send a test automated email Source: https://api-docs.helpyousponsor.com/api-reference/communications/send-a-test-automated-email post /admin/test_emailset Queues an automated email using a tenant-owned commitment and trigger. Tests go only to the authenticated admin, bypass sample donor/form email restrictions, and do not notify the donor. A test can target one donation-type variant; it is sent only when that variant and the standard template are both on, and source details such as the DAF sponsor or IRA custodian use clearly labeled sample values. With `test` false, donor email preferences apply and successful queueing records donor activity. Requires admin API authentication and user permission checks. # Send a verified-domain test email Source: https://api-docs.helpyousponsor.com/api-reference/communications/send-a-verified-domain-test-email post /admin/email/settings/sending-domains/{domainId}/test Sends a real verification message to the organization saved From address over the candidate managed SMTP transport. Requires provisioning ready, verified DNS and an aligned From domain. Records tested_at only after the transport accepts the message. The organization delivery configuration is unchanged until activation; acceptance does not establish inbox delivery. Requires verified_sending_domains enabled for the organization and the current user/group to have manage_email, email_manager or group_all. Requires permission: one of manage_email. # Send an email Source: https://api-docs.helpyousponsor.com/api-reference/communications/send-an-email get /admin/auto_emails/send/{program_id}/{trigger}/{to}/{donor_id}/{entity_id} # Send an email response Source: https://api-docs.helpyousponsor.com/api-reference/communications/send-an-email-response post /admin/email/response # Send an existing newsletter now Source: https://api-docs.helpyousponsor.com/api-reference/communications/send-an-existing-newsletter-now post /admin/send/newsLetter/{id}/send Atomically claims the current saved audience, clears scheduling and dispatches current eligible recipients. Sending/sent newsletters return400; failed state retries only failed deliveries. Durable sent/ambiguous rows are not resent. Audiences over500 defer eligibility. Other non-sending/sent lifecycle states may be claimed; the receipt reports current sending/sent/skipped/failed state. Requires permission: one of newsletter. # Start or reuse a donor SMS conversation Source: https://api-docs.helpyousponsor.com/api-reference/communications/start-or-reuse-a-donor-sms-conversation post /admin/sms_inbox/conversations/start Reuses the latest visible donor conversation, on the selected line when supplied; otherwise creates a conversation on an active visible Sendblue line. New conversations require donor SMS consent, no do-not-email master pause and an SMS-ready phone. Existing conversations can still return with can_reply=false. Returns a warning if another visible line already has a conversation. Does not send a message. Conversations and available lines respect line visibility: restricted lines require assignment to the viewer or sms_inbox_manage/group_all. Requires permission: one of sms_inbox_reply, sms_inbox_manage; plus one of beta_features. # Start verified email domain setup Source: https://api-docs.helpyousponsor.com/api-reference/communications/start-verified-email-domain-setup post /admin/email/settings/sending-domains Derives the base domain from the organization saved From address and creates the prefix subdomain, default mg with us region. Public mailbox domains are rejected. Setup is idempotent for the same subdomain; a normal receipt returns 201 even when reusing an existing setup. Add the returned sending DNS records, then check verification. An ambiguous provider outcome returns 202 with code/data and can reconcile later; existing externally claimed domains return 409 with a suggested prefix. Existing active/ready setup must be removed before changing prefixes. Requires verified_sending_domains enabled for the organization and the current user/group to have manage_email, email_manager or group_all. Requires permission: one of manage_email. # Synchronize organization Sendblue lines Source: https://api-docs.helpyousponsor.com/api-reference/communications/synchronize-organization-sendblue-lines post /admin/sendblue/lines/sync Synchronizes configured Sendblue lines from client-managed provider credentials or managed assignment settings. Disabled mode marks registered lines disabled and returns an empty list. Client-managed sync disables lines no longer configured; an unset default is selected from synced lines. Refuses cross-organization phone reassignment. Incomplete client-managed credentials or ownership conflicts return 422. Requires permission: one of sendblue_manage. # Update a custom mailing template Source: https://api-docs.helpyousponsor.com/api-reference/communications/update-a-custom-mailing-template put /admin/mailing_templates/{id} Rejects system templates. Updates supplied scalar fields; omitted/null nullable scalar values retain the prior value. Supplied program_ids replaces all bindings. Supplied documents replaces the set of kinds and removes omitted kinds; at least one is required when present. Document/visual-designer and current Impact Story rules also apply. Requires permission: one of mailings_manage, manage_email. # Update a note Source: https://api-docs.helpyousponsor.com/api-reference/communications/update-a-note put /notes/{id} Updates a note body and optionally its category, including notes on archived profiles. Requires notes_manage and profile access. Supplying expected_updated_at prevents overwriting a changed note. # Update an automated SMS set Source: https://api-docs.helpyousponsor.com/api-reference/communications/update-an-automated-sms-set put /admin/auto_sms/smsset Updates the tenant-owned set name and sender number. Omitted/null from_number clears the override. Nonempty from_number must use E.164 format. Does not synchronize registered provider lines. Requires permission: one of manage_sms. # Update donor communication preferences Source: https://api-docs.helpyousponsor.com/api-reference/communications/update-donor-communication-preferences patch /donor/{id}/communication-preferences Updates only supplied fields. Email categories, master do_not_email and postal choices apply across donor records sharing the normalized primary address; SMS consent changes only this donor. Enabling SMS requires sms_consent_confirmed=true. account_security cannot be disabled individually. restore_email_delivery clears address-level/email-event blocks and donor master flags, preserving form-level suppression. Requires access to every matching donor form. Requires permission: one of donors_manage. # Update donor portal notification preferences Source: https://api-docs.helpyousponsor.com/api-reference/communications/update-donor-portal-notification-preferences put /frontend/donor/dashboard/notification-preferences/{client_id}/{program_id}/{session_id} Requires a valid donor session and client-owned program or none context. Saves catalog category/event overrides atomically with channel choices. Valid email categories are returned by GET; email event changes are mirrored to donor records sharing the address. Account access cannot be disabled individually. sms_opt_out=true opts matching records out; false does not grant SMS consent. restore_all_email clears stored email opt-outs and event overrides while donor/form master suppression remains unless do_not_email is separately cleared. Postal changes apply to every matching donor. # Update the status of an email Source: https://api-docs.helpyousponsor.com/api-reference/communications/update-the-status-of-an-email put /admin/email/status/{email_id}/update # Update the status of multiple emails Source: https://api-docs.helpyousponsor.com/api-reference/communications/update-the-status-of-multiple-emails put /admin/emails/status/{mail_status}/update # Upload a pending SMS attachment Source: https://api-docs.helpyousponsor.com/api-reference/communications/upload-a-pending-sms-attachment post /admin/sms_inbox/attachments Uploads a JPG/JPEG/PNG/GIF image or PDF directly to Sendblue, maximum 10 MiB, and creates an unclaimed tenant-owned outbound attachment. Supply the returned id to a manual reply. Optional donor_id is recorded only when found in this organization; an unknown donor is ignored. Does not send a message. Requires permission: one of sms_inbox_reply, sms_inbox_manage; plus one of beta_features. # Upload a template image Source: https://api-docs.helpyousponsor.com/api-reference/communications/upload-a-template-image post /admin/upload_pic_to_template Uploads a client template image to the Gratona S3 bucket and records the public upload as a template asset. Admin users call this while editing HTML email/page templates. Requires the admin API auth middleware and user permission checks. # Upload an auto-email editor image to S3 Source: https://api-docs.helpyousponsor.com/api-reference/communications/upload-an-auto-email-editor-image-to-s3 get /admin/auto_email_s3_upload Uploads the `file` entry from the raw multipart request into the public Gratona S3 bucket and echoes a TinyMCE-compatible `filelink` JSON payload. This legacy endpoint reads `$_FILES` directly even though the route is registered as GET. Requires the admin API auth middleware and user permission checks. # View a specific email Source: https://api-docs.helpyousponsor.com/api-reference/communications/view-a-specific-email get /admin/emails/{email_id} # View all admin emails Source: https://api-docs.helpyousponsor.com/api-reference/communications/view-all-admin-emails post /admin/email_manager/admin/{id}/emails # View email manager Source: https://api-docs.helpyousponsor.com/api-reference/communications/view-email-manager post /admin/email_manager # View notes Source: https://api-docs.helpyousponsor.com/api-reference/communications/view-notes post /admin/notes # Add a commitment donation Source: https://api-docs.helpyousponsor.com/api-reference/donations/add-a-commitment-donation post /admin/commitment/{commitment_id}/donation # Add a new designation Source: https://api-docs.helpyousponsor.com/api-reference/donations/add-a-new-designation post /admin/designation # Add a new donation Source: https://api-docs.helpyousponsor.com/api-reference/donations/add-a-new-donation post /admin/donation # Add manual donation recognition credits Source: https://api-docs.helpyousponsor.com/api-reference/donations/add-manual-donation-recognition-credits post /admin/donations/{donation_id}/soft-credits Creates a manual recognition credit for a Direct gift, or atomically creates credits for split_donations. Each allocation must belong to this organization, be Direct, have a unique donor credit and an amount no greater than the donation. Duplicate split IDs and existing donor credits return400. A recognition credit does not add financial revenue. DAF/QCD managed recognition must be changed through the gift source fields. Requires permission: one of donations, reports_view, reports_manage. # Attach a credit card to a donor on the active gateway Source: https://api-docs.helpyousponsor.com/api-reference/donations/attach-a-credit-card-to-a-donor-on-the-active-gateway post /admin/add_cc Sends raw card details (or a tokenized `payment_method`) through `Donation::createCustomer` to register the card with the client's active payment gateway and store the resulting reference on the donor. Refreshes the donor cache on success. Note: returns HTTP 200 even on gateway failure (failure message is returned in the body); caller must inspect the message text. Validation: `donor_id required`. Requires permission: `donations_manage`. # Ccommitment details Source: https://api-docs.helpyousponsor.com/api-reference/donations/ccommitment-details get /admin/commitment/{commitment_id}/donation # Change an organization giving-institution role Source: https://api-docs.helpyousponsor.com/api-reference/donations/change-an-organization-giving-institution-role patch /admin/donors/{donorId}/giving-institution Requires daf_qcd_giving_v1 and donor mutation access. Enabling requires an organization donor. Omitted role preserves current role; disabling clears role and directory key. Directory-linked records retain their directory role. DAF financial ownership, recommending-advisor credits and recorded custodian relationships prevent incompatible flag/role changes with409. Saves and logs only actual changes. Requires permission: one of donors_manage. # Combined hard- and soft-credit transaction history for a donor Source: https://api-docs.helpyousponsor.com/api-reference/donations/combined-hard-and-soft-credit-transaction-history-for-a-donor get /admin/donors/{donor_id}/all-credits Returns the donor's full giving history — both direct donations (`hard_credit`) and soft credits (`soft_credit`) — merged and sorted by date desc, then paginated. Soft-credited rows whose underlying donation has been soft-deleted are filtered out. Also returns top-level `totals` for hard credits, soft credits, and influenced (sum) so the UI can show the donor scoreboard without a second request. Requires permission: `donors_view` (also satisfied by `donors_manage`). # Create a custom donation field Source: https://api-docs.helpyousponsor.com/api-reference/donations/create-a-custom-donation-field post /admin/donation-fields Creates a server-keyed donation field in the current organization and queues search-field refresh. Select fields require at least one nonblank option; options are trimmed and deduplicated. Supports required/visibility and conditional display controls. Conditions must reference an earlier select field with sufficient visibility and matching options; only registered input types support required/conditional controls. Requires permission: one of manage_settings. # Create, link, or convert a giving institution Source: https://api-docs.helpyousponsor.com/api-reference/donations/create-link-or-convert-a-giving-institution post /admin/donors/{hysform_id}/giving-institutions Requires daf_qcd_giving_v1 and donor-form mutation access. Supply at least one of existing_donor_id, catalog_key, organization_name; conversion takes priority, then catalog key, then manual name. New directory/manual organization records have no personal/login identity and email is suppressed. Reuses compatible accessible existing institutions; a deleted linked record is not restored. Conversion preserves history/contact details and disables portal eligibility; already-marked institutions are reused without changing role. Directory role must match; saved grant/advisor/custodian relationships can prevent conversion. Returns201 only for a new record, otherwise200 with created=false. Requires permission: one of donors_manage. # Delete a scheduled report (and its filter preference) Source: https://api-docs.helpyousponsor.com/api-reference/donations/delete-a-scheduled-report-and-its-filter-preference delete /admin/reports/schedule/{id} Removes a `ScheduledReport` row, then force-deletes its associated `FilterPreference` row when one exists. Idempotent at the schedule level — returns 404 only if the schedule itself is missing. Requires permission: `donations_manage` (also satisfied by `reports_manage`). # Designation Details Source: https://api-docs.helpyousponsor.com/api-reference/donations/designation-details get /admin/designation/{designation_id} # Donation count + amount roll-up for a date window Source: https://api-docs.helpyousponsor.com/api-reference/donations/donation-count-+-amount-roll-up-for-a-date-window get /admin/donations/statistics Returns counted and summed donation totals scoped to the caller's client across the supplied date range. Splits monetary versus in-kind donations (in-kind is detected by the `IN_KIND` method constant) so the dashboard can render them separately. Excludes refunded rows from `donations`/totals; counts zero-amount rows and `transaction_status = failed` rows as `failed`. Defaults `date_from` and `date_to` to today when omitted. Requires permission: `donations_view` (also satisfied by `donations_manage`). # Donation details Source: https://api-docs.helpyousponsor.com/api-reference/donations/donation-details get /admin/donation/{donation_id} # Donation view options Source: https://api-docs.helpyousponsor.com/api-reference/donations/donation-view-options get /admin/donations/options # Download a finished donation/soft-credit export Source: https://api-docs.helpyousponsor.com/api-reference/donations/download-a-finished-donationsoft-credit-export get /admin/donations/exports/{uploadId} Resolves the export's S3 link. Default behavior issues an HTTP 302 redirect to a short-lived presigned URL, suitable for `` links. When called with `?resolve=1`, returns the URL as JSON instead so SPA code can handle the download itself. The upload must belong to the caller's client. Requires permission: `donations_view` (also satisfied by `donations_manage`). # Edit a commitment Source: https://api-docs.helpyousponsor.com/api-reference/donations/edit-a-commitment get /admin/commitments/{commitment_id} # Edit a commitment Source: https://api-docs.helpyousponsor.com/api-reference/donations/edit-a-commitment-1 put /admin/commitments/{commitment_id} # Edit a designation Source: https://api-docs.helpyousponsor.com/api-reference/donations/edit-a-designation put /admin/designation/{designation_id} # Edit a donation Source: https://api-docs.helpyousponsor.com/api-reference/donations/edit-a-donation put /admin/donation/{donation_id} # Edit multiple commitments Source: https://api-docs.helpyousponsor.com/api-reference/donations/edit-multiple-commitments patch /admin/commitments # Email tax summaries (selected donors or admin recipients) Source: https://api-docs.helpyousponsor.com/api-reference/donations/email-tax-summaries-selected-donors-or-admin-recipients post /admin/donors/send_tax_summary Generates and queues delivery of year-end tax summary letters via `MailingGenerationService`. The delivery mode is derived from inputs: `email_selected_donors` when `send_to_selected_donors=true`, `email_explicit` when an explicit `recipients` list is supplied, otherwise `email_admin` (the calling admin gets the summary). `donor_ids` accepts an array of integer ids OR the literal string `all`; when `all` is combined with `send_to_selected_donors=true`, `hysform_id` becomes required. Returns 200 once the generation is queued. Requires permission: `mailings_generate` (also satisfied by `mailings_manage` or `manage_email`). # Email year-end statements to households Source: https://api-docs.helpyousponsor.com/api-reference/donations/email-year-end-statements-to-households post /admin/households/send_year_end Companion to `sendYearEndDonors` that operates on tenant-owned `Household` rows instead of individual donors. For each household ID provided, queues `Household::queueSendYearEndDonor` against a tenant-validated primary contact and donor set. The authenticated tenant is authoritative; any payload `client_id` is ignored. Requires `donors_manage` or `group_all`. # Fetch a single saved report definition Source: https://api-docs.helpyousponsor.com/api-reference/donations/fetch-a-single-saved-report-definition get /admin/donation-reports/{id} Returns one `Report` row by id (404 when missing). Used by the scheduled-report editor to load the source report before scheduling. Requires permission: `donations_view` (also satisfied by `donations_manage`). # Find giving-source people and advisors Source: https://api-docs.helpyousponsor.com/api-reference/donations/find-giving-source-people-and-advisors get /admin/donations/giving-people Returns at most25 suggestions from the first100 active accessible donor candidates ordered by id. Blank search returns an empty array. All search words narrow email/name/identity fields; final resolved-profile substring matching can further reduce results. Excludes giving institutions. Default role=person excludes organization records; advisor also allows ordinary organizations. Respects donor-form scope and returns private,no-store cache policy. Requires permission: one of donations, reports_view, reports_manage. # Get a donation worksheet with query filters Source: https://api-docs.helpyousponsor.com/api-reference/donations/get-a-donation-worksheet-with-query-filters get /admin/donations GET variant of the donation worksheet, with the same organization/form scope and tab-specific projection as POST. Date defaults use organization time. Saved views fill omitted filters/columns and date presets. Search, filtering and sorting use the registered field contracts; totals and graphs can be skipped with includeSummary=false. Supplying report_name creates a saved report even through GET, so omit it for a read-only request. Prefer POST for large nested filter/column payloads. Requires permission: one of donations, reports_view, reports_manage. # Get a donation’s recognition credits Source: https://api-docs.helpyousponsor.com/api-reference/donations/get-a-donation’s-recognition-credits get /admin/donations/{donation_id}/soft-credits Returns the organization-owned donation, its active soft credits with donor/type relations and the active manual credit types. Automatically managed DAF/QCD recognition types are omitted from the type picker, while existing managed credits remain visible. Requires permission: one of donations, reports_view, reports_manage. # Get all donations by a specific donor Source: https://api-docs.helpyousponsor.com/api-reference/donations/get-all-donations-by-a-specific-donor get /admin/donors/{donor_id}/donations # Get all donations by donors Source: https://api-docs.helpyousponsor.com/api-reference/donations/get-all-donations-by-donors get /admin/donors/donations # Get commitments graph Source: https://api-docs.helpyousponsor.com/api-reference/donations/get-commitments-graph get /commitments/{date_from}/{date_to}/graph # Get donations graph Source: https://api-docs.helpyousponsor.com/api-reference/donations/get-donations-graph get /donations/{date_from}/{date_to}/graph # Get form fields for a specific donor group Source: https://api-docs.helpyousponsor.com/api-reference/donations/get-form-fields-for-a-specific-donor-group get /admin/form/{donor_group}/fields # Init the legacy add-credit-card form Source: https://api-docs.helpyousponsor.com/api-reference/donations/init-the-legacy-add-credit-card-form get /admin/add_cc Bootstrap call for the legacy 'admin adds a credit card on behalf of a donor' UI. Returns the donor record and resolved display name so the form can render the donor banner before posting card details to `postAddCC`. Validation: `donor_id required`. Requires permission: `donations_manage`. # List a donor’s sponsorship coverage options Source: https://api-docs.helpyousponsor.com/api-reference/donations/list-a-donor’s-sponsorship-coverage-options get /admin/donations/coverage-options Returns current sponsorship suggestions separately from eligible recurring commitment options for the active organization donor. Recipient programs are permission scoped, including explicit denials; archived recipients on existing relationships can remain available historically. available/unavailable_reason describe each schedule’s eligibility and do not apply any coverage. Requires permission: one of donations, reports_view, reports_manage. # List custom donation field definitions Source: https://api-docs.helpyousponsor.com/api-reference/donations/list-custom-donation-field-definitions get /admin/donation-fields Returns all custom donation input definitions for the current organization, including stable keys, renderer codes and select options. Definitions determine valid custom_fields values on gift-entry requests. Requires permission: one of donations, manage_settings. # List donation/soft-credit export jobs currently queued or processing Source: https://api-docs.helpyousponsor.com/api-reference/donations/list-donationsoft-credit-export-jobs-currently-queued-or-processing get /admin/donations/exports/active Returns up to 10 donation- and soft-credit-export `Upload` rows from the last 24 hours whose status is `queued` or `processing`. Powers the `Active exports` indicator in the admin UI so users can resume polling without losing the upload id. Each row is enriched with `PdfRenderService::queuedUploadStatus`. Requires permission: `donations_view` (also satisfied by `donations_manage`). # List emailsets and program forms when creating a designation Source: https://api-docs.helpyousponsor.com/api-reference/donations/list-emailsets-and-program-forms-when-creating-a-designation get /admin/designation # List organization recognition credits Source: https://api-docs.helpyousponsor.com/api-reference/donations/list-organization-recognition-credits get /admin/soft-credits Returns active soft credits with organization-bound donations, donor/type relations, designation and donor-name summaries, ordered newest first. date_from/date_to filter the donation’s creation date, not the credit date. pageIndex is one-based and at least1; pageSize is clamped1–100. Requires permission: one of donations, reports_view, reports_manage. # List the distinct years that have donation activity Source: https://api-docs.helpyousponsor.com/api-reference/donations/list-the-distinct-years-that-have-donation-activity get /admin/donors/donation_years Returns the descending list of tax period years for which the caller's client has donation activity, using its jurisdiction profile and organization timezone. Fiscal periods are labelled by the year they end in. Backs the tax-summary year picker. Requires permission: `donors_view` (also satisfied by `donors_manage`). # Patch a scheduled report's cadence or recipients Source: https://api-docs.helpyousponsor.com/api-reference/donations/patch-a-scheduled-reports-cadence-or-recipients put /admin/reports/schedule/{id} Selectively updates `frequency`, `start_date`, and/or `recipient_emails` on an existing `ScheduledReport`. Each field is only written when present in the request. Enforces tenant scope — returns 403 when the schedule does not belong to the caller's client. Requires permission: `donations_manage` (also satisfied by `reports_manage`). # Poll a single donation/soft-credit export Source: https://api-docs.helpyousponsor.com/api-reference/donations/poll-a-single-donationsoft-credit-export get /admin/donations/exports/{uploadId}/status Returns the current state of one donation/soft-credit export `Upload` (scoped to the caller's client, 404 otherwise). Mirrors a row of `activeDonationExports` but works for any status — including `completed` so the UI can flip to a download button. Requires permission: `donations_view` (also satisfied by `donations_manage`). # Poll donations that were updated after creation Source: https://api-docs.helpyousponsor.com/api-reference/donations/poll-donations-that-were-updated-after-creation get /admin/donations/updated-feed Returns active organization donations whose updated_at is later than created_at, newest update first with ID as a tie breaker. updated_after defaults to the UTC start of day90 days ago and is inclusive. For subsequent pages send both next_cursor values as cursor_updated_at and cursor_id; the cursor moves backwards within the update window. This is a current-state update feed, not an immutable event history. Includes recognition credits and disclosure-aware source summaries. Requires permission: one of donations, reports_view, reports_manage. # Preview a commitment payment receipt Source: https://api-docs.helpyousponsor.com/api-reference/donations/preview-a-commitment-payment-receipt post /admin/commitment/{commitment_id}/donation/receipt-preview Resolves donor and designation from the organization-owned commitment and renders the actual receipt plan for the proposed payment. Amount may be zero, selecting pay_fail rather than pay_receipt. Does not create a payment, advance the commitment, charge or send email. Honors manual recognition requirements, configured templates, suppression and preferences. Requires permission: one of donations, reports_view, reports_manage. # Preview a staff-entered donation receipt Source: https://api-docs.helpyousponsor.com/api-reference/donations/preview-a-staff-entered-donation-receipt post /admin/donations/receipt-preview Validates the proposed gift and renders the actual receipt plan without creating a donation, charging, advancing a commitment or sending email. Split amounts must align and sum to the gift total. Plans honor suppression, notification preferences, source-specific templates, disclosure and recipient selection. HTTP200 may report skipped/suppressed/unavailable. DAF/QCD source preview requires the organization rollout and eligible owner/advisor/custodian records. Requires permission: one of donations, reports_view, reports_manage. # Preview gift ownership and sponsorship coverage Source: https://api-docs.helpyousponsor.com/api-reference/donations/preview-gift-ownership-and-sponsorship-coverage post /admin/donations/giving-preview Validates base gift fields, then returns the financial owner, advisor/IRA owner, custodian, tax treatment and optional commitment coverage plan without writing. Source or coverage problems are returned in data.errors with HTTP200; base field validation returns422. Only already-received cash/check/wire/external gifts can cover existing schedules. Scope and currency must match; no currency conversion is performed. Caller commitment_id is ignored; use commitment_links. Requires permission: one of donations, reports_view, reports_manage. # Queue a CSV export of donations or soft credits (async) Source: https://api-docs.helpyousponsor.com/api-reference/donations/queue-a-csv-export-of-donations-or-soft-credits-async get /admin/export_donations Reserves an `Upload` row to back the export, marks it `queued`, then dispatches `ProcessDonations`. Returns 200 immediately with the upload id and a `status_url` to poll. Pass `export_type=soft_credits` to switch the file stem (and underlying query) to soft credits; otherwise produces `donations-export.csv`. Any additional filter inputs (date range, filter groups, etc.) are forwarded to the job verbatim. Requires permission: `donations_view` (also satisfied by `donations_manage`). # Queue a single donor's donation history export Source: https://api-docs.helpyousponsor.com/api-reference/donations/queue-a-single-donors-donation-history-export get /admin/export_donor_donations Donor-scoped export — reserves an upload, dispatches `ProcessDonations` with the request's `donor_id` (and any other filters), and returns a status URL to poll while the CSV is generated. Requires permission: `donations_view` (also satisfied by `donations_manage`). # Read a donor tax-summary contribution projection Source: https://api-docs.helpyousponsor.com/api-reference/donations/read-a-donor-tax-summary-contribution-projection get /admin/tax-summaries/donors/{donor_id} Returns one active organization donor statement in organization timezone and resolved jurisdiction period. Omitted year selects the most recent available year, not necessarily the current year. Includes settled positive deductible contributions; fully refunded/nonsettled/zero/non-deductible gifts are excluded, while ambiguous partial refunds/currency/status require review. QCD IRA-owner gifts are retained as non-deductible reconciliation rows. Optional other-owner soft-credit recognition remains separate and never increases deductible totals. Totals remain grouped by currency; no conversion, PDF, email or mutation is performed. Requires permission: one of donors_view, donors_manage, donor-all. # Read a household tax-summary contribution projection Source: https://api-docs.helpyousponsor.com/api-reference/donations/read-a-household-tax-summary-contribution-projection get /admin/tax-summaries/households/{household_id} Returns a statement for the household current active donor members and organization jurisdiction/timezone. Household permission and every member donor-form scope are required. Omitted year selects the most recent available period. Gifts within the household scope are counted once; recognition on already-owned gifts and QCD IRA-owner reconciliation gifts is omitted from soft credits. Deductible cash/in-kind totals and recognition totals stay separate per currency. Ambiguous evidence marks review_required; an empty statement can have null year/period/fingerprint. No PDF, email or mutation is performed. Requires permission: one of households_view, households_manage. # Read an institution historical QCD custody activity Source: https://api-docs.helpyousponsor.com/api-reference/donations/read-an-institution-historical-qcd-custody-activity get /admin/donors/{donor_id}/custodian-activity Requires a visible organization donor marked as a giving institution. Returns historical QCD gifts naming it as intermediary while another donor is financial owner, newest created_at/id first; institution-owned gifts remain in normal giving. Financial owners are narrowed by donor-form visibility. Only primary designation is projected, and recipient names require program view/manage plus program access. Shows recorded history including nonqualified/refunded statuses; no credit is reassigned and amounts are not converted. Requires permission: one of donors_view, donors_manage. # Refresh donation status from Stripe Source: https://api-docs.helpyousponsor.com/api-reference/donations/refresh-donation-status-from-stripe get /admin/donations/{donation_id}/refresh # Refund a donation Source: https://api-docs.helpyousponsor.com/api-reference/donations/refund-a-donation post /admin/donation/{donation_id}/refund # Remove a designation Source: https://api-docs.helpyousponsor.com/api-reference/donations/remove-a-designation delete /admin/designation/{designation_id} # Remove a donation Source: https://api-docs.helpyousponsor.com/api-reference/donations/remove-a-donation delete /admin/donation/{donation_id} # Remove a donor card on the active gateway Source: https://api-docs.helpyousponsor.com/api-reference/donations/remove-a-donor-card-on-the-active-gateway get /admin/delete_cc Calls `Donation::deleteCard` to remove the donor's stored card on the active gateway and refreshes the donor cache on success. Verb is GET (legacy ergonomics) — newer integrations should prefer the donor-scoped `DELETE /admin/donor-credit-card/{donor_id}`. Returns 200 even on gateway failure — caller must inspect the message. Validation: `donor_id required`. Requires permission: `donations_manage`. # Remove a manual recognition credit Source: https://api-docs.helpyousponsor.com/api-reference/donations/remove-a-manual-recognition-credit delete /admin/donations/{donation_id}/soft-credits/{id} Soft-deletes a credit that belongs to the current organization and the route donation, after recording the activity. Automatic DAF/QCD credits cannot be removed through manual controls. Requires permission: one of donations, reports_view, reports_manage. # Reorder custom donation fields Source: https://api-docs.helpyousponsor.com/api-reference/donations/reorder-custom-donation-fields put /admin/donation-fields/order Requires every current organization field ID exactly once, plus expected_field_ids in the previously observed order. A changed order returns409. Revalidates conditional dependencies and visibility against the new order; invalid graphs return422. Requires permission: one of manage_settings. # Repair a sponsorship missing its commitment record Source: https://api-docs.helpyousponsor.com/api-reference/donations/repair-a-sponsorship-missing-its-commitment-record get /admin/commitment/fix Recovery tool for sponsorships (`DonorEntity` rows) that ended up without a matching `Commitment`. Creates a minimal placeholder commitment (type=monthly, frequency=1, method=manual, designation = entity_id, funding flag derived from the program type) so admins can edit it back into a usable state via `editCommitment`. Persists immediately. Currently reads `client_id` from the legacy session — caller must have an active admin session even though the route is also bearer-protected. Validation: `donor_entity_id required`. Requires permission: `donations_manage`. # Schedule a saved report for recurring delivery Source: https://api-docs.helpyousponsor.com/api-reference/donations/schedule-a-saved-report-for-recurring-delivery post /admin/reports/schedule Creates a `ScheduledReport` row tying a `Report` to a delivery cadence. Refuses to create a duplicate when the report already has a scheduled-report row (returns HTTP 409). The new schedule inherits the report's `client_id`. Requires permission: `donations_manage` (also satisfied by `reports_manage`). # Search donation designation recipients Source: https://api-docs.helpyousponsor.com/api-reference/donations/search-donation-designation-recipients get /admin/donations/designations/search Returns entity-type designation options for the admin Add/Edit Donation drawers. Uses a client-scoped cached recipient list so admins can search across all recipients, including fully sponsored ones, without loading thousands of rows into the initial form payload. # Search giving institutions and the starter directory Source: https://api-docs.helpyousponsor.com/api-reference/donations/search-giving-institutions-and-the-starter-directory get /admin/donations/giving-institutions Requires daf_qcd_giving_v1; unavailable workspaces return404. Lists accessible tenant institution records plus unlinked reviewed directory suggestions, maximum25 in each section. With role, accepts that role or legacy unrecorded roles. id lookup ignores role/search and returns at most one accessible institution with no other suggestions. Search of two or more characters can also suggest ordinary organizations for explicit conversion; directory reads make no external provider call. Requires permission: one of donations, reports_view, reports_manage. # Soft-delete a single commitment by id Source: https://api-docs.helpyousponsor.com/api-reference/donations/soft-delete-a-single-commitment-by-id delete /admin/commitments Soft-deletes one `Commitment` row. The route handler is registered under both `/admin/commitments` (DELETE, v1) and `/admin/remove_commitment` (GET, legacy) and the case-mismatched `RemoveCommitment` symbol — neither route declares a path param so the `commitment_id` is read from the request (body or query). Requires permission: `donations_manage`. # Suggest previously disclosed DAF fund names Source: https://api-docs.helpyousponsor.com/api-reference/donations/suggest-previously-disclosed-daf-fund-names get /admin/donations/daf-fund-names Requires daf_qcd_giving_v1. Returns up to20 distinct nonblank fund names from active DAF gifts for this exact sponsor/advisor pair with named disclosure and active automatic advisor recognition. Both parties must be visible in the staff donor-form scope; inaccessible/missing parties return an empty list. Requires permission: one of donations, reports_view, reports_manage. # Top 10 most recent commitments (dashboard widget) Source: https://api-docs.helpyousponsor.com/api-reference/donations/top-10-most-recent-commitments-dashboard-widget get /admin/10_commitments Returns the 10 most-recently-created commitments for the caller's client, augmented with display names for the donor and entity. Donor and entity names are extracted from each row's `json_fields` by walking keys that contain `name` and using the first match — this is the legacy display logic the dashboard still relies on. Requires permission: `donations_view` (also satisfied by `donations_manage`). # Update a custom donation field Source: https://api-docs.helpyousponsor.com/api-reference/donations/update-a-custom-donation-field put /admin/donation-fields/{fieldId} Updates the current organization’s field label; input type, options and stable field key remain fixed. Required/visibility and conditional display controls can also be updated, with the whole ordered dependency graph validated. Requires permission: one of manage_settings. # Update a manual recognition credit Source: https://api-docs.helpyousponsor.com/api-reference/donations/update-a-manual-recognition-credit put /admin/donations/{donation_id}/soft-credits/{id} Updates the organization-owned credit on this donation. soft_credit_donor_id takes precedence over donor_id; omitted/empty donor IDs retain the current donor. Amount must be positive and no greater than the donation. A donor can have only one active credit per gift. Automatic DAF/QCD recognition is read-only here. Relationship attribution changes only when an override or reason is supplied. Requires permission: one of donations, reports_view, reports_manage. # Update an existing donor card on the active gateway Source: https://api-docs.helpyousponsor.com/api-reference/donations/update-an-existing-donor-card-on-the-active-gateway post /admin/update_cc Forwards the supplied card data to `Donation::updateCard` to mutate the donor's existing card on the active payment gateway (e.g. expiry rotation). Returns 200 even on gateway failure — the failure message lands in the response body. Validation: `donor_id required`. Requires permission: `donations_manage`. # View all designations Source: https://api-docs.helpyousponsor.com/api-reference/donations/view-all-designations get /admin/designations # View all donations Source: https://api-docs.helpyousponsor.com/api-reference/donations/view-all-donations post /admin/donations/{all} # Add a one-time donation from the donor dashboard Source: https://api-docs.helpyousponsor.com/api-reference/donor-portal/add-a-one-time-donation-from-the-donor-dashboard post /frontend/donor/dashboard/{client_id}/{program_id}/{session_id} Creates an additional donation from the donor portal — a logged-in donor adds a one-off gift on top of (or independent of) their existing commitments. Requires an authenticated Redis donor session. # Apply a modify-commitment-amount change Source: https://api-docs.helpyousponsor.com/api-reference/donor-portal/apply-a-modify-commitment-amount-change post /frontend/modify_amount Companion POST for `modifyCommitmentAmount`. Saves the new amount on the commitment when the magic-link token validates. Used by the donor's email-driven amount-change flow. # Approve a PayPal payment from the donor dashboard Source: https://api-docs.helpyousponsor.com/api-reference/donor-portal/approve-a-paypal-payment-from-the-donor-dashboard post /frontend/donor/dashboard/approve_paypal/{client_id}/{program_id}/{session_id} Completes a PayPal authorization initiated from the donor dashboard. Requires a logged-in Redis donor session. # Check donor bank verification completion Source: https://api-docs.helpyousponsor.com/api-reference/donor-portal/check-donor-bank-verification-completion post /frontend/donor/dashboard/bank-verification/{client_id}/{program_id}/{session_id} Uses the logged-in session donor within the client path, refreshes session TTL to one hour, and rechecks owned pending Stripe bank authorizations against their original processor, customer, payment method and active mandate. A verified chargeable US bank account is saved and the original due checkout collection may be queued exactly once through the shared handoff. Provider failures/pending authorizations remain a successful check with updated=false and a message; this response does not prove a queued charge settled. # Continue 3DS card verification Source: https://api-docs.helpyousponsor.com/api-reference/donor-portal/continue-3ds-card-verification put /frontend/donor/dashboard/card-verify/{client_id}/{program_id}/{charge_id}/{session_id} Resumes a Stripe SetupIntent / charge that requires 3D Secure customer authentication. Called by the donor-portal Stripe Elements flow after the user completes the 3DS challenge. The `charge_id` is the Stripe SetupIntent / PaymentIntent id returned by `postUpdateCard`. Requires a logged-in donor session. # Delete a file Source: https://api-docs.helpyousponsor.com/api-reference/donor-portal/delete-a-file delete /frontend/donor/dashboard/file/{client_id}/{program_id}/{id}/{entity_id}/{session_id} # Donor Credit Card Information Source: https://api-docs.helpyousponsor.com/api-reference/donor-portal/donor-credit-card-information get /frontend/donor/dashboard/card/{client_id}/{program_id}/{session_id} Allows a donor to update their credit card information. # Donor View Source: https://api-docs.helpyousponsor.com/api-reference/donor-portal/donor-view get /frontend/donor/dashboard/{client_id}/{program_id}/{session_id} Displays the donor's profile and related information, * handling the retrieval of donor data based on session ID. # Donor View Entity Source: https://api-docs.helpyousponsor.com/api-reference/donor-portal/donor-view-entity get /frontend/donor/dashboard/entity/{client_id}/{program_id}/{entity_id}/{session_id} Displays a specific entity's profile and related information to the donor. # Donor View Entity Message History Source: https://api-docs.helpyousponsor.com/api-reference/donor-portal/donor-view-entity-message-history get /frontend/donor/dashboard/entity/messages/{client_id}/{program_id}/{entity_id}/{session_id} Returns message history for a specific donor entity. # Forgot Username Source: https://api-docs.helpyousponsor.com/api-reference/donor-portal/forgot-username get /frontend/forgot_username/{client_id}/{program_id}/{session_id} Handles the process for users who have forgotten their username by initiating a new session. # Get Donor Information Source: https://api-docs.helpyousponsor.com/api-reference/donor-portal/get-donor-information get /frontend/donor/dashboard/details/{client_id}/{program_id}/{session_id} Allows a donor to get their information. # Get files for a donor Source: https://api-docs.helpyousponsor.com/api-reference/donor-portal/get-files-for-a-donor get /frontend/donor/dashboard/files/{client_id}/{program_id}/{id}/{entity_id}/{session_id} # Get Login Information Source: https://api-docs.helpyousponsor.com/api-reference/donor-portal/get-login-information get /frontend/login/{client_id}/{program_id}/{session_id} Retrieves login information and related details for a specific client and program. # Get PayPal credentials Source: https://api-docs.helpyousponsor.com/api-reference/donor-portal/get-paypal-credentials get /donor/paypal # Handle Donor File Uploads Source: https://api-docs.helpyousponsor.com/api-reference/donor-portal/handle-donor-file-uploads get /frontend/donor/dashboard/uploads/{client_id}/{program_id}/{entity_id}/{session_id} # List eligible one-time donation designations Source: https://api-docs.helpyousponsor.com/api-reference/donor-portal/list-eligible-one-time-donation-designations get /frontend/donor/dashboard/donation-designations/{client_id}/{program_id}/{session_id} Requires an active donor session in the requested organization. Returns current sponsorship recipients and other recipients or campaign designations allowed by the organization, independently of dashboard history pagination. # Log in a donor across organizations Source: https://api-docs.helpyousponsor.com/api-reference/donor-portal/log-in-a-donor-across-organizations post /frontend/global_donor/login Authenticates a donor by username or email across all clients rather than a single client/program route. If multiple donor accounts match the credentials, the endpoint creates a short-lived Redis account-selection token and returns `selection_required`; otherwise it creates a donor Redis session and returns the donor, client, program context, and redirect URL. Public donor portal clients use this endpoint when scoped login route parameters are unavailable. # Mark email as read Source: https://api-docs.helpyousponsor.com/api-reference/donor-portal/mark-email-as-read put /frontend/donor/dashboard/entity/mark_read/{client_id}/{program_id}/{entity_id}/{email_id}/{session_id} # Post Donor View Entity Message Source: https://api-docs.helpyousponsor.com/api-reference/donor-portal/post-donor-view-entity-message post /frontend/donor/dashboard/entity/compose_message/{client_id}/{program_id}/{entity_id}/{parent_id}/{session_id} Allows a donor to send a message to an entity. # Post Forgot Username Source: https://api-docs.helpyousponsor.com/api-reference/donor-portal/post-forgot-username post /frontend/forgot_username/{client_id}/{program_id}/{session_id} Handles the process for users who have forgotten their username * by verifying the email and sending the username to the user. # Post Login Source: https://api-docs.helpyousponsor.com/api-reference/donor-portal/post-login post /frontend/login/{client_id}/{program_id}/{session_id} Handles the login process for a user, including validation and authentication. # Post Logout Source: https://api-docs.helpyousponsor.com/api-reference/donor-portal/post-logout get /frontend/logout/{client_id}/{program_id}/{session_id} Handles user logout by terminating the session and clearing related data. # Post Reset Password Source: https://api-docs.helpyousponsor.com/api-reference/donor-portal/post-reset-password post /frontend/reset_password/{client_id}/{program_id}/{session_id} Handles the password reset process including * verification and sending a temporary password to the user. # Remove a saved donor payment method Source: https://api-docs.helpyousponsor.com/api-reference/donor-portal/remove-a-saved-donor-payment-method delete /frontend/donor/dashboard/card/{client_id}/{program_id}/{session_id} Uses the logged-in donor session within the requested client. Removes an owned Stripe payment method/legacy source or the donor’s saved Flutterwave v4 method. A current default or active saved bank method cannot be removed while an unexpired active card/bank commitment (methods3,8,9,10,12) depends on payment details; update that method first. Stripe origin/customer ownership is checked and a concurrent verified replacement is preserved. Missing/blank card_id returns404; unsupported gateway returns422. # Render compose-message-to-entity page payload Source: https://api-docs.helpyousponsor.com/api-reference/donor-portal/render-compose-message-to-entity-page-payload get /frontend/donor_view_entity_compose_message/{client_id}/{program_id}/{entity_id}/{parent_id}/{session_id} Returns the data needed for the donor-portal compose-message screen — recipient entity, the parent thread message (if replying), the donor's profile, and form constraints. Requires a logged-in Redis donor session. # Render modify-commitment-amount page payload Source: https://api-docs.helpyousponsor.com/api-reference/donor-portal/render-modify-commitment-amount-page-payload get /frontend/modify_amount Public donor-portal endpoint that returns the data needed to render the modify-commitment-amount UI from a magic-link email (donor + commitment context). Authentication is via signed query parameters in the link, not a session. # Request a global donor passwordless sign-in Source: https://api-docs.helpyousponsor.com/api-reference/donor-portal/request-a-global-donor-passwordless-sign-in post /frontend/global_donor/passwordless_login Returns a generic result and, for matching accounts, issues a six-digit numeric code plus magic link. The newest code for the normalized global email scope invalidates its predecessor and expires after 15 minutes. # Reset Password Source: https://api-docs.helpyousponsor.com/api-reference/donor-portal/reset-password get /frontend/reset_password/{client_id}/{program_id}/{session_id} Initiates a password reset process by generating a new session and returning session details. # Resolve forms attached to a donor or entity Source: https://api-docs.helpyousponsor.com/api-reference/donor-portal/resolve-forms-attached-to-a-donor-or-entity get /frontend/get_forms/{type}/{id}/{hysform_id}/{client_id} Read-only donor-session compatibility endpoint for historical archived updates, formerly called Progress Reports. The `session_id` header must identify a logged-in donor in the requested client, and entity results are limited to updates created during that donor's current or archived recipient relationship. # Retrieve 3DS card verification state Source: https://api-docs.helpyousponsor.com/api-reference/donor-portal/retrieve-3ds-card-verification-state get /frontend/donor/dashboard/card-verify/{client_id}/{program_id}/{charge_id}/{session_id} Returns the current Stripe verification state for a card-update flow. Used by the donor-portal Stripe Elements view to poll/resume after the 3DS challenge. # Save file upload to database Source: https://api-docs.helpyousponsor.com/api-reference/donor-portal/save-file-upload-to-database post /frontend/donor/recordUpload/{client_id}/{session_id} # Select a global donor account Source: https://api-docs.helpyousponsor.com/api-reference/donor-portal/select-a-global-donor-account post /frontend/global_donor/select_account Completes global donor login after a password or passwordless flow returns `selection_required`. The controller validates the selection token and account id, loads the selected donor scoped by client and donor id from Redis, deletes the selection token, then creates a donor session and redirect for the selected account. # Start Email Sign-In Source: https://api-docs.helpyousponsor.com/api-reference/donor-portal/start-email-sign-in post /frontend/passwordless_login/{client_id}/{program_id}/{session_id} Starts the email-based sign-in flow with a six-digit numeric code and magic link. A new issue invalidates the previous code for the tenant, program, donor, and email scope. # Update Donor Information Source: https://api-docs.helpyousponsor.com/api-reference/donor-portal/update-donor-information put /frontend/donor/dashboard/details/{client_id}/{program_id}/{session_id} Allows a donor to update their information. # Update donor PayPal credentials Source: https://api-docs.helpyousponsor.com/api-reference/donor-portal/update-donor-paypal-credentials post /donor/{donor_id}/paypal # Update Donor's Credit Card Information Source: https://api-docs.helpyousponsor.com/api-reference/donor-portal/update-donors-credit-card-information post /frontend/donor/dashboard/card/{client_id}/{program_id}/{session_id} # Update the donor's PayPal email Source: https://api-docs.helpyousponsor.com/api-reference/donor-portal/update-the-donors-paypal-email post /frontend/donor/dashboard/paypal/{client_id}/{program_id}/{session_id} Donor-portal endpoint that saves the donor's PayPal address. Requires a logged-in Redis donor session in the `{session_id}` path parameter — when missing/expired the response is 422 with a `redirect` to the login page (legacy behavior). # Uploads a file for a donor Source: https://api-docs.helpyousponsor.com/api-reference/donor-portal/uploads-a-file-for-a-donor post /frontend/donor/dashboard/upload/{client_id}/{program_id}/{entity_id}/{session_id} # Verify a global donor magic link Source: https://api-docs.helpyousponsor.com/api-reference/donor-portal/verify-a-global-donor-magic-link get /frontend/global_donor/passwordless_verify/{token} Consumes a global donor passwordless magic-link token from Redis. A valid token resolves the donor accounts cached for the email, deletes the token and clears the active verification challenge, then either completes donor login or returns an account-selection response. The endpoint also caches successful verification results for 60 seconds so repeated browser loads of the same link can return the same response. # Verify a global donor passwordless code Source: https://api-docs.helpyousponsor.com/api-reference/donor-portal/verify-a-global-donor-passwordless-code post /frontend/global_donor/passwordless_verify_code Accepts only the latest six-digit numeric code. Five failed well-formed attempts burn the active challenge across source IPs. # Verify Email Sign-In Source: https://api-docs.helpyousponsor.com/api-reference/donor-portal/verify-email-sign-in get /frontend/passwordless_verify/{client_id}/{program_id}/{token} Verifies the email sign-in token and logs in the donor. # Verify the donor passwordless verification code Source: https://api-docs.helpyousponsor.com/api-reference/donor-portal/verify-the-donor-passwordless-verification-code post /frontend/passwordless_verify_code/{client_id}/{program_id} Second step of the donor-portal passwordless login flow. Only the latest six-digit numeric code is accepted. Five failed well-formed attempts burn the active challenge across source IPs. On success returns the donor record, client info, session id, and saved-payment snapshot, then clears challenge state. # View an archived form submission Source: https://api-docs.helpyousponsor.com/api-reference/donor-portal/view-an-archived-form-submission get /frontend/view_forms/{archived_form_id} Returns a privacy-minimized, read-only historical archived update for a logged-in donor. The `session_id` header must identify a donor in `client_id`, and the archive must belong to that donor or have been created during one of their current or archived recipient relationships. # Add a new donor Source: https://api-docs.helpyousponsor.com/api-reference/donor-signup/add-a-new-donor post /frontend/signup_donor/{client_id}/{program_id}/{session_id} # Sign up a new donor Source: https://api-docs.helpyousponsor.com/api-reference/donor-signup/sign-up-a-new-donor get /frontend/signup_donor/{client_id}/{program_id}/{session_id} # Activate donors Source: https://api-docs.helpyousponsor.com/api-reference/donors/activate-donors post /admin/donors/activate # Add a new donor Source: https://api-docs.helpyousponsor.com/api-reference/donors/add-a-new-donor post /admin/donor/{hysform_id} # Add multiple donors to a household Source: https://api-docs.helpyousponsor.com/api-reference/donors/add-multiple-donors-to-a-household post /admin/households/{household_id}/donors Reviews all supplied rows, accepting active organization donors with no household and collecting row-level errors for unavailable/already-linked donors. Accepted members persist together; success can contain errors. Explicit primary_contact_id takes precedence over the first make_primary row and is used only if present in the final member set. Material stewardship impact returns 409 with an expiring confirmation token and required contact/archive repairs; resubmit the same reviewed change with plan_impact_version and plan_repairs. # Add one donor to a household Source: https://api-docs.helpyousponsor.com/api-reference/donors/add-one-donor-to-a-household post /admin/households/{household_id}/donors/{donor_id} Requires an active donor outside any household; already-present or other-household membership returns 422. Stores the requested relationship. Literal boolean make_primary=true selects this donor as primary; optional primary_relationship updates the existing household primary (or fallback primary) relationship. Material stewardship impact returns 409 with an expiring confirmation token and required contact/archive repairs; resubmit the same reviewed change with plan_impact_version and plan_repairs. # Archive a single donor Source: https://api-docs.helpyousponsor.com/api-reference/donors/archive-a-single-donor get /admin/donor/archive Soft-deletes one donor and cascades the archive to their sponsorships and commitments: every `DonorEntity` is deleted (and the entity's status recalculated), every `Commitment` is deleted, then the donor itself. Sponsorship and donor caches are warmed afterwards. Same handler is mounted at `/admin/donor/archive` (`v1/admin`) and the legacy `/admin/archive_donor`. Requires permission: `donors_manage` and is gated by the `disable_donor_archive` client restriction. # Archive donors Source: https://api-docs.helpyousponsor.com/api-reference/donors/archive-donors post /admin/donors/archive # Assign or clear a donor relationship manager Source: https://api-docs.helpyousponsor.com/api-reference/donors/assign-or-clear-a-donor-relationship-manager patch /admin/donor/{donor_id}/assignment Changes direct donor or household assignment after checking all affected donor-form scopes and assignee eligibility. A direct donor manager continues to override household fallback. Household scope requires membership. Material open-plan authority changes return 409 with a five-minute impact token; resubmit the same assignment with that plan_impact_version. Plan ownership and open tasks are preserved for review; projection warnings can accompany success. # Assign relationship managers to selected donors Source: https://api-docs.helpyousponsor.com/api-reference/donors/assign-relationship-managers-to-selected-donors patch /admin/donors/assignment Updates explicit active donors or all matching records. Explicit cross-organization/unavailable IDs reject the request. All-results mode requires an authorized form context and resolves saved/search/date filters; unresolved search fails safely. Household scope requires every selected donor to have a household and updates each household once after checking all active member forms. Returns the selected donor count, including unchanged assignments. Material plan impact requires a confirmed token before this atomic mutation. # Bulk-edit fields across many donors (async) Source: https://api-docs.helpyousponsor.com/api-reference/donors/bulk-edit-fields-across-many-donors-async patch /admin/program/donors Queues a `bulkEditDonors` job for each targeted donor that applies the supplied field/value updates (admin name is captured for the activity log). Use `donor_ids` as an array of IDs to target a specific set, or the literal string `all` (with `hysform_id`) to operate on every donor of that form. The handler returns immediately once the jobs are dispatched; updates land asynchronously through the queue worker. Requires permission: `donors_manage`. # Calculate donor worksheet footer totals Source: https://api-docs.helpyousponsor.com/api-reference/donors/calculate-donor-worksheet-footer-totals post /admin/donors/{hysform_id}/footer-calculations Aggregates every matching donor, independently of pagination, using SQL aggregates or bounded row projection. Validates the calculation array, then keeps allowed field keys/operations, case-normalizes operations and deduplicates by field. Invalid entries can leave an empty calculations array with length0. Filled checks ignore blank, HTML-only and No data values; date results use Unix seconds and display formatting. Requires permission: one of donors_manage. # Clear the default donor saved view Source: https://api-docs.helpyousponsor.com/api-reference/donors/clear-the-default-donor-saved-view delete /admin/donors/default-saved-view Preference belongs to the authenticated user and organization. Only active saved view/report definitions in a valid existing context are eligible; current context permission is checked. Campaign and recipient surfaces remain separate. Idempotently removes the personal default; the saved definition remains available. # Clear the default worksheet saved view Source: https://api-docs.helpyousponsor.com/api-reference/donors/clear-the-default-worksheet-saved-view delete /admin/saved-view-defaults/{module} Module path accepts recipients, campaigns, sponsorships or donations. Preference belongs to the authenticated user and organization. Only active saved view/report definitions in a valid existing context are eligible; current context permission is checked. Campaign and recipient surfaces remain separate. Idempotently removes the personal default; the saved definition remains available. # Count donors matching worksheet filters Source: https://api-docs.helpyousponsor.com/api-reference/donors/count-donors-matching-worksheet-filters post /admin/donors/filter-count Counts the same active/archive, saved view, search and advanced-filter donor scope without materializing a page. hysform_id is supplied in the body; omission selects all forms. Invalid sponsoring-program filters are rejected. A search that cannot be evaluated safely while the index is unavailable returns422 instead of an inaccurate count. Requires permission: one of donors_manage. # Create a household Source: https://api-docs.helpyousponsor.com/api-reference/donors/create-a-household post /admin/households Creates an active household and attaches the primary plus deduplicated additional donors under one membership lock. Every member must be active in this organization and outside any existing household. Material stewardship impact returns 409 with an expiring confirmation token and required contact/archive repairs; resubmit the same reviewed change with plan_impact_version and plan_repairs. # Create a household from two donor records Source: https://api-docs.helpyousponsor.com/api-reference/donors/create-a-household-from-two-donor-records post /admin/households/create-from-donor Creates an active household from distinct primary and related donors, both active in this organization and outside any household. Stores the related donor relationship and optional primary relationship, address and custom fields. Material stewardship impact returns 409 with an expiring confirmation token and required contact/archive repairs; resubmit the same reviewed change with plan_impact_version and plan_repairs. # Delete a saved donation definition Source: https://api-docs.helpyousponsor.com/api-reference/donors/delete-a-saved-donation-definition delete /admin/donationFilter/saved_filters Permanently removes a source-matching saved definition after permission/context checks. The endpoint source must match module_id and the saved definition context/scope. Source view management or reports management plus context access is required. client_id is required for compatibility but always replaced by the authenticated organization. Deletion returns 422 while any organization schedule references it; delete the schedule first. # Delete an empty household Source: https://api-docs.helpyousponsor.com/api-reference/donors/delete-an-empty-household delete /admin/households/{household_id} Requires every active donor to be removed first; otherwise 422 includes donor_count. Deletes the household row after confirming archival decisions for any open stewardship plans. Donors are not deleted. Material stewardship impact returns 409 with an expiring confirmation token and required contact/archive repairs; resubmit the same reviewed change with plan_impact_version and plan_repairs. # Delete donor card details Source: https://api-docs.helpyousponsor.com/api-reference/donors/delete-donor-card-details delete /admin/donor-credit-card/{donor_id} # Delete donors Source: https://api-docs.helpyousponsor.com/api-reference/donors/delete-donors delete /admin/delete/donors # Delete donors saved definition Source: https://api-docs.helpyousponsor.com/api-reference/donors/delete-donors-saved-definition delete /admin/donors/saved_filters Permanently removes a source-matching saved definition after permission/context checks. The endpoint source must match module_id and the saved definition context/scope. Source view management or reports management plus context access is required. client_id is required for compatibility but always replaced by the authenticated organization. Deletion returns 422 while any organization schedule references it; delete the schedule first. # Delete entities saved definition Source: https://api-docs.helpyousponsor.com/api-reference/donors/delete-entities-saved-definition delete /admin/entities/saved_filters Permanently removes a source-matching saved definition after permission/context checks. The endpoint source must match module_id and the saved definition context/scope. Source view management or reports management plus context access is required. client_id is required for compatibility but always replaced by the authenticated organization. Deletion returns 422 while any organization schedule references it; delete the schedule first. # Delete files saved definition Source: https://api-docs.helpyousponsor.com/api-reference/donors/delete-files-saved-definition delete /admin/files/saved_filters Permanently removes a source-matching saved definition after permission/context checks. The endpoint source must match module_id and the saved definition context/scope. Source view management or reports management plus context access is required. client_id is required for compatibility but always replaced by the authenticated organization. Deletion returns 422 while any organization schedule references it; delete the schedule first. # Delete sponsorships saved definition Source: https://api-docs.helpyousponsor.com/api-reference/donors/delete-sponsorships-saved-definition delete /admin/sponsorships/saved_filters Permanently removes a source-matching saved definition after permission/context checks. The endpoint source must match module_id and the saved definition context/scope. Source view management or reports management plus context access is required. client_id is required for compatibility but always replaced by the authenticated organization. Deletion returns 422 while any organization schedule references it; delete the schedule first. # Dismiss one duplicate donor pair Source: https://api-docs.helpyousponsor.com/api-reference/donors/dismiss-one-duplicate-donor-pair post /admin/donors/duplicates/mark-not-duplicate Creates or refreshes a durable suppression for one canonical donor pair from the current published scan. Only that pair is dismissed; other suggestions involving either donor remain available. The suppression survives rescans. A stale scan or unknown pair is rejected. Idempotent — calling twice is safe. Requires permission: `duplicates_manage` (also satisfied by `donors_manage`). # Donors table headers Source: https://api-docs.helpyousponsor.com/api-reference/donors/donors-table-headers get /admin/donors/{hysform_id}/headers/{trashed} # Download a finished donor export Source: https://api-docs.helpyousponsor.com/api-reference/donors/download-a-finished-donor-export get /admin/donors/exports/{uploadId} Resolves the export's S3 link. Default behavior issues an HTTP 302 redirect to a short-lived presigned URL, suitable for `` links. When called with `?resolve=1`, returns the URL as JSON instead so SPA code can handle the download itself. The upload must belong to the caller's client. Requires permission: `donors_view` (also satisfied by `donors_manage`). # Edit a donor Source: https://api-docs.helpyousponsor.com/api-reference/donors/edit-a-donor patch /donor/{id}/edit Updates a donor in the authenticated organization, including archived donors while preserving their archived state. Send configured donor-form fields as top-level properties; required fields and conditional visibility depend on the donor form. A donor type change requires the loaded type, profile revision, and explicit confirmation. Requires permission: `donors_manage`. # Field-mapping options for the migrate-fields tool Source: https://api-docs.helpyousponsor.com/api-reference/donors/field-mapping-options-for-the-migrate-fields-tool get /admin/donors/migrate-fields/options Returns the standardized field catalog (key + display label from `DonorStandardFieldSetting`), the donor form's custom fields (`Donorfield` rows ordered by `field_order`), and the default custom-key mapping that `postMigrateDonorFields` would apply if no `mapping` override is supplied. Used by the admin UI to render the migration dialog. Requires permission: `donors_manage`. # Filter donor worksheet rows Source: https://api-docs.helpyousponsor.com/api-reference/donors/filter-donor-worksheet-rows post /admin/all_donors/filter/{hysform_id} Searches active or archived organization donors in one form or all forms. Resolves saved views, allowed filters and selected columns, retaining canonical identity/photo fields. Returns a paged configurable projection and full matching count. Uses current search/SQL fallbacks; an advanced date field can override the top-level creation-date range. Dates in row projections follow organization display formatting. Requires permission: one of donors_manage. # Get a donor Source: https://api-docs.helpyousponsor.com/api-reference/donors/get-a-donor get /donor/{id} # Get a donor relationship schedule and history Source: https://api-docs.helpyousponsor.com/api-reference/donors/get-a-donor-relationship-schedule-and-history get /donors/{donorId}/relationship-context Combines accessible upcoming tasks, meetings, confirmed event attendance and active/requested trips. Dates use the resolved organization/admin timezone; pending trip requests remain in upcoming but do not become next_scheduled_moment. Activity includes event/trip/invitation state history. Task, calendar, event and trip permissions/privacy filter their own projections. # Get all donors Source: https://api-docs.helpyousponsor.com/api-reference/donors/get-all-donors get /admin/all_donors # Get all donors with pagination, search and sort Source: https://api-docs.helpyousponsor.com/api-reference/donors/get-all-donors-with-pagination-search-and-sort get /admin/donors/{hysform_id} # Get donor card details Source: https://api-docs.helpyousponsor.com/api-reference/donors/get-donor-card-details get /admin/donor-credit-card/{donor_id} # Get donor form fields Source: https://api-docs.helpyousponsor.com/api-reference/donors/get-donor-form-fields get /admin/donor/{hysform_id} # Get field options for donors Source: https://api-docs.helpyousponsor.com/api-reference/donors/get-field-options-for-donors get /admin/donors/{hysform_id}/fields/{type} # Get household details Source: https://api-docs.helpyousponsor.com/api-reference/donors/get-household-details get /admin/households/{household_id} Returns primary contact, current member donor summaries, address/custom fields and gross donation totals. This summary uses household donation records without qualified-payment filtering or subtracting refunds. # Get personal donation worksheet columns Source: https://api-docs.helpyousponsor.com/api-reference/donors/get-personal-donation-worksheet-columns get /admin/donations/{hysform_id}/column-preferences Personal organization/user preferences are scoped to the form/program path context or all. Donation tab_scope selects a separate preference. Unavailable stored fields are removed; no effective preference returns exists=false with empty arrays. # Get personal donor worksheet columns Source: https://api-docs.helpyousponsor.com/api-reference/donors/get-personal-donor-worksheet-columns get /admin/donors/{hysform_id}/column-preferences Personal organization/user preferences are scoped to the form/program path context or all. Unavailable stored fields are removed; no effective preference returns exists=false with empty arrays. # Get personal sponsorship worksheet columns Source: https://api-docs.helpyousponsor.com/api-reference/donors/get-personal-sponsorship-worksheet-columns get /admin/sponsorships/{program_id}/column-preferences Personal organization/user preferences are scoped to the form/program path context or all. Unavailable stored fields are removed; no effective preference returns exists=false with empty arrays. # Get statistics of donors Source: https://api-docs.helpyousponsor.com/api-reference/donors/get-statistics-of-donors get /admin/statistics/donors # Get the active duplicate-detection ruleset for a form Source: https://api-docs.helpyousponsor.com/api-reference/donors/get-the-active-duplicate-detection-ruleset-for-a-form get /admin/donors/{hysform_id}/duplicates/rules Returns the configured `DuplicateRule` for the given donor form (matcher fields, comparators, threshold, enabled flag). Used by the admin UI to populate the rule editor before a scan. Requires permission: `duplicates_manage` (also satisfied by `donors_manage`). # Get the default donor saved view Source: https://api-docs.helpyousponsor.com/api-reference/donors/get-the-default-donor-saved-view get /admin/donors/default-saved-view Preference belongs to the authenticated user and organization. Only active saved view/report definitions in a valid existing context are eligible; current context permission is checked. Campaign and recipient surfaces remain separate. Returns null when unset or unavailable; structurally invalid stale defaults are cleared. # Get the default worksheet saved view Source: https://api-docs.helpyousponsor.com/api-reference/donors/get-the-default-worksheet-saved-view get /admin/saved-view-defaults/{module} Module path accepts recipients, campaigns, sponsorships or donations. Preference belongs to the authenticated user and organization. Only active saved view/report definitions in a valid existing context are eligible; current context permission is checked. Campaign and recipient surfaces remain separate. Returns null when unset or unavailable; structurally invalid stale defaults are cleared. # Hard-delete a single archived donor Source: https://api-docs.helpyousponsor.com/api-reference/donors/hard-delete-a-single-archived-donor delete /admin/donor/delete Permanently removes one previously-archived donor along with their trashed sponsorships and all commitments — uses `forceDelete()` on `DonorEntity`, `Commitment`, and the donor record itself, then evicts the row from the trashed-donor cache. The donor must already be archived (`withTrashed()` lookup) and must belong to the `client_id` supplied via the `client_id` request header. Same handler is mounted at `/admin/donor/delete` (DELETE) and the legacy `/admin/delete_donor` (GET). Requires permission: `donors_manage` and is gated by the `disable_donor_delete` client restriction. # Kick off a legacy duplicate-detection scan (async) Source: https://api-docs.helpyousponsor.com/api-reference/donors/kick-off-a-legacy-duplicate-detection-scan-async post /admin/donors/{hysform_id}/duplicates/{trashed} Creates a `DuplicateScanRun` row and dispatches `CheckDuplicateDonorsJob` to scan the form for duplicate donors in the background. Returns the scan run ID immediately (HTTP 202) — poll `/admin/duplicates/scans/{scan_run_id}/progress` to watch progress, then read results from `/admin/donors/duplicates/results`. Use `startEnhancedDuplicateScan` for the newer rule-based flow. Requires permission: `duplicates_manage` (also satisfied by `donors_manage`). # Kick off the rule-based duplicate scan (async) Source: https://api-docs.helpyousponsor.com/api-reference/donors/kick-off-the-rule-based-duplicate-scan-async post /admin/donors/{hysform_id}/duplicates/enhanced Newer scan flow that uses the configured `DuplicateRule` ruleset. Creates a `DuplicateScanRun` row (with `scan_settings.enhanced=true`) and dispatches `EnhancedDuplicateDetectionJob`. Returns the scan run ID immediately (HTTP 202) — poll `/admin/duplicates/scans/{scan_run_id}/progress` and read results from `/admin/donors/duplicates/results`. Requires permission: `duplicates_manage` (also satisfied by `donors_manage`). # Legacy donor payment-source refresh (disabled) Source: https://api-docs.helpyousponsor.com/api-reference/donors/legacy-donor-payment-source-refresh-disabled post /admin/client-donor-update-sources This legacy route is disabled. Payment-source reconciliation must be implemented as an explicit, audited platform billing operation. # Link reciprocal donor contacts Source: https://api-docs.helpyousponsor.com/api-reference/donors/link-reciprocal-donor-contacts post /admin/donors/{donor_id}/relationships Creates the forward and reverse donor-contact links using their independent relationship labels. Both donors must be active in this organization, and payload primary must match the route donor. Donors in the same nonempty household cannot be external related contacts. Identical existing links are retained. # List active households Source: https://api-docs.helpyousponsor.com/api-reference/donors/list-active-households get /admin/households Searches active organization households by partial name/address and exact primary contact. Returns household summaries plus organization email sets with their templates and linked program; summaries use current donor membership. # List all donors for a form (legacy unpaginated table) Source: https://api-docs.helpyousponsor.com/api-reference/donors/list-all-donors-for-a-form-legacy-unpaginated-table get /admin/show_all_donors/{client_id}/{hysform_id}/{trashed} Returns every donor for the given hysform via `Donor::getDonors()`. Pre-dates the paginated `showAllDonorsAjax` listing — kept for legacy admin UIs and CSV-style exports that need the full set in one shot. Same handler is mounted at `/admin/show_all_donors/...` (legacy `routes/api.php`) and `/v1/admin/show_all_donors/...`. Requires permission: `donors_view`. # List donation saved definitions Source: https://api-docs.helpyousponsor.com/api-reference/donors/list-donation-saved-definitions get /admin/donationFilter/saved_filters/{hysform_id} Lists active donation definitions for the normalized donor form/all context, newest first. Optional tab scope zero includes legacy null scope; absent scope lists all tabs. Nonnegative numeric scopes are accepted. # List donor-export jobs currently queued or processing Source: https://api-docs.helpyousponsor.com/api-reference/donors/list-donor-export-jobs-currently-queued-or-processing get /admin/donors/exports/active Returns up to 10 donor-export `Upload` rows from the last 24 hours whose status is `queued` or `processing`. Powers the `Active exports` indicator in the admin UI so users can resume polling without losing the upload id. Each row is enriched with `PdfRenderService::queuedUploadStatus` (progress %, last status message, etc.). Requires permission: `donors_view` (also satisfied by `donors_manage`). # List donor household and external contacts Source: https://api-docs.helpyousponsor.com/api-reference/donors/list-donor-household-and-external-contacts get /admin/donors/{donor_id}/relationships Returns other members of the donor household and forward external contact links. External relationships include current primary-contact state and raw synchronization configuration. The relationship labels are directional; household rows exclude the donor itself. # List donor saved definitions Source: https://api-docs.helpyousponsor.com/api-reference/donors/list-donor-saved-definitions get /admin/donors/saved_filters/{hysform_id} Lists active saved donor definitions for a donor-form or all-records context, newest first, including legacy null module definitions. # List eligible donor relationship managers Source: https://api-docs.helpyousponsor.com/api-reference/donors/list-eligible-donor-relationship-managers get /admin/donors/assignees Returns eligible team members for the current role rollout, retaining a requested current assignee even when replacement is needed. donor_id can reference an archived donor for eligibility review; donor/household resource scopes require the actor to access every affected donor form. include_inactive defaults true; when enforcement is enabled, ineligible users are excluded except the current assignee. # List fields and comparators available to the rule editor Source: https://api-docs.helpyousponsor.com/api-reference/donors/list-fields-and-comparators-available-to-the-rule-editor get /admin/donors/{hysform_id}/duplicates/field-types Returns the union of system fields (`email`, `username`), standardized title fields (from `DonorStandardFieldSetting`), and form-specific title fields (`Donorfield` rows where `is_title=1`) — keyed by `field_key` and deduplicated. Also returns the supported comparator and field-type vocabularies so the admin UI can render rule pickers without hard-coding the choices. Requires permission: `duplicates_manage` (also satisfied by `donors_manage`). # List file saved definitions Source: https://api-docs.helpyousponsor.com/api-reference/donors/list-file-saved-definitions get /admin/files/saved_filters/{program_id} Lists active saved upload definitions for the exact supplied program context, newest first. This read endpoint does not normalize all to zero. # List grouped duplicate-donor results Source: https://api-docs.helpyousponsor.com/api-reference/donors/list-grouped-duplicate-donor-results get /admin/donors/duplicates/results Returns paginated groups of likely-duplicate donors. Each group is an array of `Donor` objects (primary donor first, then linked duplicates) reconstructed from the `DuplicateDonor` link table; groups where the user has marked donors as not-duplicate are filtered out automatically. Supports both `page` and `pageIndex` query keys for backwards compatibility. Free-text `search` matches the primary donor or any of its linked duplicates across username, email, and form `is_title` fields. `fieldFilters` and `filterRules` further narrow the result set on standardized columns, custom JSON fields, or year-to-date contribution buckets. Requires permission: `duplicates_manage` (also satisfied by `donors_manage`). # List household custom form fields Source: https://api-docs.helpyousponsor.com/api-reference/donors/list-household-custom-form-fields get /admin/household/fields Returns active fields from all organization forms whose type is household, ordered by field_order. Returns 404 with status=error when no household form exists. # List household donations Source: https://api-docs.helpyousponsor.com/api-reference/donors/list-household-donations get /admin/households/{household_id}/donations Returns newest-first donation rows from current household donors and totals over all rows, independent of pagination. Amounts are formatted strings; the summary is gross and separately reports refunds, without qualified-payment filtering. # List household member donors Source: https://api-docs.helpyousponsor.com/api-reference/donors/list-household-member-donors get /admin/households/{household_id}/donors Returns paginated current members with identity, contact preference and relationship labels; the primary flag is derived from the household primary donor. # List merge batches (paginated) Source: https://api-docs.helpyousponsor.com/api-reference/donors/list-merge-batches-paginated get /admin/duplicates/merge/batches Returns a paginated list of `DuplicateMergeBatch` records for the caller's client. Each batch includes bounded donor, operator, field-name, and relationship-count summaries for admin review. Restore ledgers, field values, processor identifiers, and internal errors are never returned. Standard Laravel pagination envelope (20 per page). Requires permission: `duplicates_manage` (also satisfied by `donors_manage`). # List recipient/campaign saved definitions Source: https://api-docs.helpyousponsor.com/api-reference/donors/list-recipientcampaign-saved-definitions get /admin/entities/saved_filters/{program_id} Lists active recipient/campaign definitions with null sponsorship scope, newest first. For all/zero context, program_surface optionally separates campaigns and recipients; recipients include legacy missing surface metadata. # List sponsorship saved definitions Source: https://api-docs.helpyousponsor.com/api-reference/donors/list-sponsorship-saved-definitions get /admin/sponsorships/saved_filters/{program_id}/{sponsorship} Lists active sponsorship definitions with effective normalized context/sponsorship scope, including compatible null-module legacy definitions. all normalizes to zero. # Merge donors (single-shot, async) Source: https://api-docs.helpyousponsor.com/api-reference/donors/merge-donors-single-shot-async post /admin/donors/merge Retired unsafe merge endpoint. Always returns 410 without dispatching a job or changing donor data. Run a current duplicate scan and use the tracked merge-batch endpoint instead. Requires permission: `donors_manage`. # Migrate donor field data between custom JSON and standardized columns Source: https://api-docs.helpyousponsor.com/api-reference/donors/migrate-donor-field-data-between-custom-json-and-standardized-columns post /admin/donors/migrate-fields Kicks off a background migration that copies donor field values either from per-form `json_fields` into the standardized donor columns (e.g. `first_name`, `phone`, `street`) or vice versa. The `custom_to_standardized` direction routes through `DonorStandardizationService::startMigration` (returns the run record); `standardized_to_custom` dispatches `MigrateDonorFieldsJob` directly. Optional `mapping` overrides the default custom-key mapping. Requires permission: `donors_manage`. # Poll a duplicate-scan run's status Source: https://api-docs.helpyousponsor.com/api-reference/donors/poll-a-duplicate-scan-runs-status get /admin/duplicates/scans/{scan_run_id}/progress Returns the current state of a `DuplicateScanRun` so the admin UI can render a progress bar and stop polling when the job completes. Scoped to the caller's client. Requires permission: `duplicates_manage` (also satisfied by `donors_manage`). # Poll a merge batch's status Source: https://api-docs.helpyousponsor.com/api-reference/donors/poll-a-merge-batchs-status get /admin/duplicates/merge/batches/{batch_id}/progress Returns the current state of a `DuplicateMergeBatch`, including aggregate post-merge refresh counts. Operation ledgers and internal ancillary errors are never returned. Scoped to the authenticated user's client. Requires permission: `duplicates_manage` (also satisfied by `donors_manage`). # Poll a single donor-export job Source: https://api-docs.helpyousponsor.com/api-reference/donors/poll-a-single-donor-export-job get /admin/donors/exports/{uploadId}/status Returns the current state of one donor-export `Upload` (scoped to the caller's client, 404 otherwise). Mirrors a row of `activeDonorExports` but works for any status — including `completed` so the UI can flip to a download button. Requires permission: `donors_view` (also satisfied by `donors_manage`). # Post field options for donors Source: https://api-docs.helpyousponsor.com/api-reference/donors/post-field-options-for-donors post /admin/donors/field_options # Preview existing donor tags before replacement Source: https://api-docs.helpyousponsor.com/api-reference/donors/preview-existing-donor-tags-before-replacement post /admin/program/donors/tags/replacement-preview Returns current tags/counts for selected active tenant donors without changing them. donor_ids=all requires hysform_id and selects that entire form, ignoring current worksheet search/filter fields. Explicit arrays select matching active organization donors and ignore missing ids. values is optional but must be an array/object when supplied; only values.tags comma validation is used. Proposed replacement values do not affect the returned counts. Requires permission: one of manage_programs. # Preview field-level conflicts before merging donors Source: https://api-docs.helpyousponsor.com/api-reference/donors/preview-field-level-conflicts-before-merging-donors post /admin/donors/duplicates/preview-merge Dry-run for a current published duplicate group. Returns conflicts only for profile columns whose winner can be selected by the merge endpoint; custom values and tags follow deterministic fill-empty/union behavior. Full donor records, credentials, and payment-provider identifiers are never returned. Requires permission: `duplicates_manage` (also satisfied by `donors_manage`). # Preview sponsorship archive or restoration Source: https://api-docs.helpyousponsor.com/api-reference/donors/preview-sponsorship-archive-or-restoration post /admin/sponsorships/lifecycle-preview Requires configured sponsorship lifecycle rollout (or the legacy lifecycle-controls flag) and access to every selected effective program. Resolves explicit ids or current filtered all selection; restore always selects archived relationships. At most250 relationship ids may be previewed. Returns one row per associated commitment, or a relationship-only row where none exists, so count is preview row count and can exceed relationship count. Produces a10-minute encrypted token bound to organization, actor, action, exact relationship ids and current relationship/commitment state. No archive, restore or charge is applied. Requires permission: one of manage_programs. # Queue a confirmed manual donor merge Source: https://api-docs.helpyousponsor.com/api-reference/donors/queue-a-confirmed-manual-donor-merge post /admin/donors/duplicates/manual-merge Consumes a current actor-owned review after confirming same-person identity and a trimmed 10–2,000 character reason. Rechecks permissions, profile/dependency snapshot and stewardship impact before admitting exactly one queued merge. Same review and identical command recover the original batch; changed, expired or stale reviews return 409. Dependencies can return 422 blockers. Worker execution rechecks authority and snapshot before merging; HTTP 202 confirms admission, not completion. # Queue a CSV export of donors (async) Source: https://api-docs.helpyousponsor.com/api-reference/donors/queue-a-csv-export-of-donors-async post /admin/donors/{hysform_id}/export Reserves an `Upload` row to back the export, marks it `queued`, then dispatches `GenerateDonorExportJob`. Returns 200 immediately with the upload id and a `status_url` to poll. The `hysform_id` may be the literal string `all` to export every donor across the caller's client (file stem becomes `all-donors-export`); otherwise the form must exist. Pass any additional filter inputs in the body — they're forwarded verbatim to the job. Requires permission: `donors_view` (also satisfied by `donors_manage`). # Queue a tracked, undoable batch of donor merges Source: https://api-docs.helpyousponsor.com/api-reference/donors/queue-a-tracked-undoable-batch-of-donor-merges post /admin/duplicates/merge/batch Creates a `DuplicateMergeBatch` row, then dispatches a single `ProcessMergeBatchJob` that processes every merge in the supplied `merges[]` array. Per-merge `field_choices` let the caller resolve conflicts surfaced by `previewMerge`. Unlike `mergeDonors`, this flow tracks original assignments so the batch can later be undone via `undoMergeBatch` and re-applied via `restoreMergeBatch`. Same handler is mounted at `/admin/duplicates/merge/batch` and `/admin/donors/duplicates/merge-batch`. Requires permission: `duplicates_manage` (also satisfied by `donors_manage`). # Re-apply a previously undone merge batch Source: https://api-docs.helpyousponsor.com/api-reference/donors/re-apply-a-previously-undone-merge-batch post /admin/duplicates/merge/batches/{batch_id}/restore Reverses an `undone` merge batch in a single transaction: re-assigns donations / commitments / sponsorships / activity logs onto the primary donor, soft-deletes the secondary donors again, removes the duplicate-link rows, and flips the batch + operations back to `completed` (clearing `undone_at` / `undone_by`). The batch must currently be in `undone` status. Requires permission: `duplicates_manage` (also satisfied by `donors_manage`). # Reconcile a donor pending bank verification Source: https://api-docs.helpyousponsor.com/api-reference/donors/reconcile-a-donor-pending-bank-verification post /admin/donor-credit-card/{donor_id}/reconcile-bank-verification Rechecks the donor original owned Stripe SetupIntents and chargeable US bank payment methods, finalizes a verified method and resumes pending checkout authorizations. Successful claimed handoffs can seed due anchors and QUEUE first due commitment charges, individually or batched; this is not merely a provider status lookup. Webhook/manual attempts share a guarded handoff claim. Individual provider errors are caught and reported within HTTP200 success with updated=false/message and remaining pending_count. Counts describe handoff completion, not settled donations. Requires permission: one of donors_manage. # Remove a donor from a household Source: https://api-docs.helpyousponsor.com/api-reference/donors/remove-a-donor-from-a-household delete /admin/households/{household_id}/donors/{donor_id} Detaches the member and preserves its donor record. Removing the primary requires a new_primary_contact_id from this household or a force key; the current controller checks force presence. Replacement must remain in the proposed member set. A missing confirmation returns 422 with requires_confirmation/is_primary_contact. Material stewardship impact returns 409 with an expiring confirmation token and required contact/archive repairs; resubmit the same reviewed change with plan_impact_version and plan_repairs. # Remove a saved donor view Source: https://api-docs.helpyousponsor.com/api-reference/donors/remove-a-saved-donor-view delete /admin/donor/view/{report_id}/{hysform_id} # Remove reciprocal donor contact links Source: https://api-docs.helpyousponsor.com/api-reference/donors/remove-reciprocal-donor-contact-links delete /admin/donors/{donor_id}/relationships Removes both directions of the pair within the organization. Returns success when no pair exists. Omitted/null related_contact does not remove a populated pair. # Replace the duplicate-detection ruleset for a form Source: https://api-docs.helpyousponsor.com/api-reference/donors/replace-the-duplicate-detection-ruleset-for-a-form put /admin/donors/{hysform_id}/duplicates/rules Persists a new ruleset for the donor form via `DuplicateRule::setRulesForForm` (records the editing user). Optional `threshold` (0–1 confidence floor) and `enabled` flag are written in a follow-up update on the same row when present. Returns the freshly-loaded rule. Requires permission: `duplicates_manage` (also satisfied by `donors_manage`). # Restore a single archived donor Source: https://api-docs.helpyousponsor.com/api-reference/donors/restore-a-single-archived-donor get /admin/donor/activate Restores one previously-archived donor (`Donor::restore()`), re-indexes them in Meilisearch, and refreshes the donor cache + Mailchimp sync. Cascading restoration of sponsorships/commitments is wired but disabled at the handler level (`with_commitments = false`); the input flag is currently ignored. Same handler is mounted at `/admin/donor/activate` (`v1/admin`) and the legacy `/admin/activate_donor`. Requires permission: `donors_manage` and is gated by the `disable_donor_restore` client restriction. # Retry post-merge donor refresh work Source: https://api-docs.helpyousponsor.com/api-reference/donors/retry-post-merge-donor-refresh-work post /admin/duplicates/merge/batches/{batch_id}/retry-refresh Queues an idempotent retry of donor totals and cache refreshes for committed merge operations whose ancillary refresh has not completed. Completed batches recalculate active primary donors and refresh the full donor cache set; undone batches recalculate all active primary and secondary donors. This never repeats donor merge mutations. Requires permission: `duplicates_manage` (also satisfied by `donors_manage`). # Review selected donor records for manual merge Source: https://api-docs.helpyousponsor.com/api-reference/donors/review-selected-donor-records-for-manual-merge post /admin/donors/duplicates/manual-review Requires the manual merge rollout plus duplicates_manage or donors_manage and access to the donor form. Select two to twenty-five distinct active donors in the same form and one primary to keep. Creates a fifteen-minute actor-bound snapshot review with current profile conflicts, qualified lifetime giving and dependency blockers. Does not merge records. Locked relationship work returns 409 with Retry-After: 15. # Save a donation worksheet definition Source: https://api-docs.helpyousponsor.com/api-reference/donors/save-a-donation-worksheet-definition post /admin/donationFilter/saved_filters Creates or updates a raw saved view/report definition. The endpoint source must match module_id and the saved definition context/scope. Source view management or reports management plus context access is required. client_id is required for compatibility but always replaced by the authenticated organization. Donor/donation view validators discard unavailable columns/filter/footer keys; report definitions strictly validate field capabilities, operators, values and date presets. Existing reports stay reports. Initial report creation also creates an entitled schedule; later edits here preserve its schedule. Column identity/order are normalized for report updates. A schedule rejection can occur after the definition is saved. # Save a donor worksheet definition Source: https://api-docs.helpyousponsor.com/api-reference/donors/save-a-donor-worksheet-definition post /admin/donors/saved_filters Creates or updates a raw saved view/report definition. The endpoint source must match module_id and the saved definition context/scope. Source view management or reports management plus context access is required. client_id is required for compatibility but always replaced by the authenticated organization. Donor/donation view validators discard unavailable columns/filter/footer keys; report definitions strictly validate field capabilities, operators, values and date presets. Existing reports stay reports. Initial report creation also creates an entitled schedule; later edits here preserve its schedule. Column identity/order are normalized for report updates. A schedule rejection can occur after the definition is saved. # Save a file worksheet definition Source: https://api-docs.helpyousponsor.com/api-reference/donors/save-a-file-worksheet-definition post /admin/files/saved_filters Creates or updates a raw saved view/report definition. The endpoint source must match module_id and the saved definition context/scope. Source view management or reports management plus context access is required. client_id is required for compatibility but always replaced by the authenticated organization. Donor/donation view validators discard unavailable columns/filter/footer keys; report definitions strictly validate field capabilities, operators, values and date presets. Existing reports stay reports. Initial report creation also creates an entitled schedule; later edits here preserve its schedule. Column identity/order are normalized for report updates. A schedule rejection can occur after the definition is saved. # Save a recipient or campaign worksheet definition Source: https://api-docs.helpyousponsor.com/api-reference/donors/save-a-recipient-or-campaign-worksheet-definition post /admin/entities/saved_filters Creates or updates a raw saved view/report definition. The endpoint source must match module_id and the saved definition context/scope. Source view management or reports management plus context access is required. client_id is required for compatibility but always replaced by the authenticated organization. Donor/donation view validators discard unavailable columns/filter/footer keys; report definitions strictly validate field capabilities, operators, values and date presets. Existing reports stay reports. Initial report creation also creates an entitled schedule; later edits here preserve its schedule. Column identity/order are normalized for report updates. A schedule rejection can occur after the definition is saved. # Save a sponsorship worksheet definition Source: https://api-docs.helpyousponsor.com/api-reference/donors/save-a-sponsorship-worksheet-definition post /admin/sponsorships/saved_filters Creates or updates a raw saved view/report definition. The endpoint source must match module_id and the saved definition context/scope. Source view management or reports management plus context access is required. client_id is required for compatibility but always replaced by the authenticated organization. Donor/donation view validators discard unavailable columns/filter/footer keys; report definitions strictly validate field capabilities, operators, values and date presets. Existing reports stay reports. Initial report creation also creates an entitled schedule; later edits here preserve its schedule. Column identity/order are normalized for report updates. A schedule rejection can occur after the definition is saved. # Save personal donation worksheet columns Source: https://api-docs.helpyousponsor.com/api-reference/donors/save-personal-donation-worksheet-columns put /admin/donations/{hysform_id}/column-preferences Personal organization/user preferences are scoped to the form/program path context or all. Donation tab_scope selects a separate preference. Unavailable stored fields are removed; no effective preference returns exists=false with empty arrays. Select 1–100 available keys; aliases are normalized, duplicate keys removed, and omitted selected keys appended to the order. Unavailable selected keys fail validation. Sponsorship identity aliases and donation donor_name are returned in worksheet-local form. # Save personal donor worksheet columns Source: https://api-docs.helpyousponsor.com/api-reference/donors/save-personal-donor-worksheet-columns put /admin/donors/{hysform_id}/column-preferences Personal organization/user preferences are scoped to the form/program path context or all. Unavailable stored fields are removed; no effective preference returns exists=false with empty arrays. Select 1–100 available keys; aliases are normalized, duplicate keys removed, and omitted selected keys appended to the order. Unavailable selected keys fail validation. Sponsorship identity aliases and donation donor_name are returned in worksheet-local form. # Save personal sponsorship worksheet columns Source: https://api-docs.helpyousponsor.com/api-reference/donors/save-personal-sponsorship-worksheet-columns put /admin/sponsorships/{program_id}/column-preferences Personal organization/user preferences are scoped to the form/program path context or all. Unavailable stored fields are removed; no effective preference returns exists=false with empty arrays. Select 1–100 available keys; aliases are normalized, duplicate keys removed, and omitted selected keys appended to the order. Unavailable selected keys fail validation. Sponsorship identity aliases and donation donor_name are returned in worksheet-local form. # Search donors by name (typeahead) Source: https://api-docs.helpyousponsor.com/api-reference/donors/search-donors-by-name-typeahead get /admin/donors Returns up to 10 donors matching the search query across the donor's indexed standard and custom fields, scoped to the authenticated client and permitted donor forms. Backed by Meilisearch (`Donor::search`) for fast typeahead lookups; empty `search` returns the top 10 by relevance for the empty token. Each result is enriched with resolved display-name, location, and donor-type context. Existing consumers receive the full donor rows; `projection=quick_actions` returns only compact display fields. Requires permission: `donors_view` (also satisfied by `donors_manage` or `donor-all`). # Select a saved donor report Source: https://api-docs.helpyousponsor.com/api-reference/donors/select-a-saved-donor-report post /admin/donor/view/{report_id}/{hysform_id} Loads a saved donor report into the administrator display preferences. The donor form must match the report; use `all` for a report saved for the all-donors view. Requires permission: `donors_manage`. The final trashed path segment may be omitted. # Select a saved donor report for the archived view Source: https://api-docs.helpyousponsor.com/api-reference/donors/select-a-saved-donor-report-for-the-archived-view post /admin/donor/view/{report_id}/{hysform_id}/{trashed} Loads a saved donor report into the administrator display preferences. The donor form must match the report; use `all` for a report saved for the all-donors view. Requires permission: `donors_manage`. The final segment selects the archived-view response message. # Send notification to donors Source: https://api-docs.helpyousponsor.com/api-reference/donors/send-notification-to-donors post /admin/donors/notify # Send signup email to a donor Source: https://api-docs.helpyousponsor.com/api-reference/donors/send-signup-email-to-a-donor post /admin/donor/{commitment_id}/email # Send year end statements to donors Source: https://api-docs.helpyousponsor.com/api-reference/donors/send-year-end-statements-to-donors post /admin/donors/send_year_end # Set a donor primary external contact Source: https://api-docs.helpyousponsor.com/api-reference/donors/set-a-donor-primary-external-contact patch /admin/donors/{donor_id}/relationships/primary Requires an existing forward link to the active related donor. Replaces any other primary link, stores the requested synchronization keys and immediately copies supported values from the related donor. Future source updates synchronize those keys. id/client_id and internal attributes are ignored, tags/household_relationship are skipped, and dn-prefixed keys address custom profile fields. # Set a donor's default Stripe card Source: https://api-docs.helpyousponsor.com/api-reference/donors/set-a-donors-default-stripe-card post /admin/make_default_card/{donor_id} Updates the donor's `default_source` on Stripe (when the active gateway is Stripe) and persists the chosen `card_id` to `donors.stripe_card_id`. The donor's `stripe_cust_id` is read from the `donors` row to address the Stripe customer. Requires permission: `donors_manage`. # Set the default donor saved view Source: https://api-docs.helpyousponsor.com/api-reference/donors/set-the-default-donor-saved-view put /admin/donors/default-saved-view Preference belongs to the authenticated user and organization. Only active saved view/report definitions in a valid existing context are eligible; current context permission is checked. Campaign and recipient surfaces remain separate. Replaces this user’s default with an accessible definition, including legacy donor definitions. Returns 404 when the saved definition is unavailable. # Set the default worksheet saved view Source: https://api-docs.helpyousponsor.com/api-reference/donors/set-the-default-worksheet-saved-view put /admin/saved-view-defaults/{module} Module path accepts recipients, campaigns, sponsorships or donations. Preference belongs to the authenticated user and organization. Only active saved view/report definitions in a valid existing context are eligible; current context permission is checked. Campaign and recipient surfaces remain separate. Replaces this user’s default with an accessible definition, including legacy donor definitions. Returns 404 when the saved definition is unavailable. # Set the organization primary donor profile Source: https://api-docs.helpyousponsor.com/api-reference/donors/set-the-organization-primary-donor-profile put /admin/forms/{hysform_id}/primary Sets the organization’s primary donor HysForm. The profile must be active, organization-owned and type donor. Repeated selection retains that primary profile; unavailable profiles return 404. # Stop using a related donor as primary contact Source: https://api-docs.helpyousponsor.com/api-reference/donors/stop-using-a-related-donor-as-primary-contact patch /admin/donors/{donor_id}/relationships/remove_primary Clears is_primary and synchronization fields on the existing forward primary link. Values previously copied into the donor remain stored. Returns 422 when that contact is not the donor’s current primary external contact. # Sync the donor's default Stripe source (or read it back) Source: https://api-docs.helpyousponsor.com/api-reference/donors/sync-the-donors-default-stripe-source-or-read-it-back post /admin/donor-credit-card-details/{donor_id}/{action} Reconciles the donor's Stripe customer with the `donors.stripe_card_id` we have stored locally. When `action=update`, calls `Stripe::customers->update` to set `default_source` to the donor's stored card; for any other action value, reads the customer from Stripe instead. Returns 200 only when Stripe confirms `default_source` matches our stored card. The route is registered twice in `routes/v1/admin.php` with the same path/handler (legacy duplicate). Requires permission: `donors_manage`. # Undo a completed merge batch Source: https://api-docs.helpyousponsor.com/api-reference/donors/undo-a-completed-merge-batch delete /admin/duplicates/merge/batches/{batch_id} Reverses a `completed` merge batch in a single transaction: restores soft-deleted secondary donors, reassigns donations / commitments / sponsorships / activity logs back to their original donors using `original_donor_assignments`, recreates the duplicate-link rows, and marks the batch + operations as `undone`. The batch must have `can_be_undone=true`. Requires permission: `duplicates_manage` (also satisfied by `donors_manage`). # Update a household member relationship Source: https://api-docs.helpyousponsor.com/api-reference/donors/update-a-household-member-relationship patch /admin/households/{household_id}/donors/{donor_id} Requires donor_id in the body to match the path and an active member of this organization/household. Updates the member relationship; primary_relationship can separately change the household primary (or fallback primary) donor relationship. This endpoint preserves household membership and primary selection. # Update donor credit card details Source: https://api-docs.helpyousponsor.com/api-reference/donors/update-donor-credit-card-details post /admin/donor-credit-card/{donor_id} # Update donor profile fields inline Source: https://api-docs.helpyousponsor.com/api-reference/donors/update-donor-profile-fields-inline patch /donor/{id}/field Updates one through eight allowlisted canonical/compatibility fields on an organization donor, including archived donors while retaining archive status. Resolved donor type rejects incompatible personal/organization identity. Legacy donor forms require full edit for address fields. Enforces email/username uniqueness, country/subdivision and preferred-contact rules; normalizes tags, geo labels and phone. Saves immediately, synchronizes configured primary-contact fields to related donors, records activity/notification and refreshes search. Does not accept profile_revision optimistic concurrency; response includes directly applied canonical fields rather than every derived/synchronized change. Requires permission: one of donors_manage. # Update household and membership Source: https://api-docs.helpyousponsor.com/api-reference/donors/update-household-and-membership patch /admin/households/{household_id} Applies supplied household properties. donor_ids replaces membership while omitted membership stays intact; primary changes can attach the new primary. Referenced donors are checked in the organization before mutation, and existing membership in another household is rejected. Material stewardship impact returns 409 with an expiring confirmation token and required contact/archive repairs; resubmit the same reviewed change with plan_impact_version and plan_repairs. # Add a plain-text donor comment Source: https://api-docs.helpyousponsor.com/api-reference/email-calendar/add-a-plain-text-donor-comment post /donors/{donor_id}/comments Compatibility donor-comment interface backed by the collaboration thread. IDs can be positive legacy IDs or negative IDs for newer comments; zero is invalid. Requires current donor/thread access. Support sessions can read but cannot write. Requires contribution access and creates a collaboration plain-text document. # Add an email privacy rule Source: https://api-docs.helpyousponsor.com/api-reference/email-calendar/add-an-email-privacy-rule post /email-calendar/policies Requires email/calendar availability and the email intelligence v2 workspace rollout. Review and body operations are private to the current mailbox owner and current preview generation under the active privacy policy. Account-scoped rules require mailbox ownership; omitting account_id creates a workspace rule and requires workspace manager plus confirmed true. Value is lowercased/trimmed; leading @ is removed for domains. A matching existing rule is reactivated; classification runs asynchronously. # Approve my historical email import Source: https://api-docs.helpyousponsor.com/api-reference/email-calendar/approve-my-historical-email-import post /email-calendar/accounts/{account_id}/approve-import Requires email/calendar availability and the email intelligence v2 workspace rollout. Review and body operations are private to the current mailbox owner and current preview generation under the active privacy policy. Requires explicit confirmed acceptance after preview reaches awaiting_approval. Connection generation, policy/classifier versions and live sync authority must still match. Approval is mailbox-owner only; shared mailboxes are currently rejected. Queues promotion and returns approved with requires_workspace_admin_approval false. # Change legacy email body visibility Source: https://api-docs.helpyousponsor.com/api-reference/email-calendar/change-legacy-email-body-visibility patch /interactions/email/{activity_id}/visibility Requires email/calendar deployment availability and the route permissions. Connected account operations use the authenticated tenant and mailbox owner; body/metadata sharing remains separately authorized. Only the connected account owner may change visibility. V2 bodies remain private to their owner and always reject this operation with409. # Create a calendar event for a donor Source: https://api-docs.helpyousponsor.com/api-reference/email-calendar/create-a-calendar-event-for-a-donor post /donors/{donor_id}/interactions/calendar/events Requires email/calendar deployment availability and the route permissions. Connected account operations use the authenticated tenant and mailbox owner; body/metadata sharing remains separately authorized. Uses an owned connected calendar-enabled account; end_at must follow start_at. Writes the event to the provider and links it to the donor. # Delete a donor comment Source: https://api-docs.helpyousponsor.com/api-reference/email-calendar/delete-a-donor-comment delete /donors/{donor_id}/comments/{comment_id} Compatibility donor-comment interface backed by the collaboration thread. IDs can be positive legacy IDs or negative IDs for newer comments; zero is invalid. Requires current donor/thread access. Support sessions can read but cannot write. Requires contribution access plus author or thread-management authority. Optional revision detects concurrent changes. # Delete a manual interaction Source: https://api-docs.helpyousponsor.com/api-reference/email-calendar/delete-a-manual-interaction delete /interactions/manual/{activity_id} Requires manual_interactions and current interaction/record authority. Body visibility can restrict read/edit/delete even when timeline metadata is visible. Shared visibility requires a valid organization shared_group_id. Event invitation participants and related tasks require access and current version boundaries. Requires body access and all existing relationship access; acknowledgement-linked interactions may be protected from deletion. Related event invitation state is reconciled. # Disconnect my email/calendar account Source: https://api-docs.helpyousponsor.com/api-reference/email-calendar/disconnect-my-emailcalendar-account delete /email-calendar/accounts/{account_id} Requires email/calendar deployment availability and the route permissions. Connected account operations use the authenticated tenant and mailbox owner; body/metadata sharing remains separately authorized. Optional delete_synced_data attempts cleanup after disconnect. Deletion failure does not undo disconnection: inspect delete_synced_data_failed and message; deleted_data holds cleanup counters when available. # Edit my donor comment Source: https://api-docs.helpyousponsor.com/api-reference/email-calendar/edit-my-donor-comment patch /donors/{donor_id}/comments/{comment_id} Compatibility donor-comment interface backed by the collaboration thread. IDs can be positive legacy IDs or negative IDs for newer comments; zero is invalid. Requires current donor/thread access. Support sessions can read but cannot write. Only the author may edit. Optional revision detects concurrent changes and returns409 when stale. # Link an email interaction to a donor Source: https://api-docs.helpyousponsor.com/api-reference/email-calendar/link-an-email-interaction-to-a-donor patch /interactions/email/{activity_id}/link Requires email/calendar deployment availability and the route permissions. Connected account operations use the authenticated tenant and mailbox owner; body/metadata sharing remains separately authorized. V2 requires current donor visibility and ownership of an eligible ingress copy, then promotes that copy through the current policy. Legacy email sets its donor and linked match metadata. # List a donor comments Source: https://api-docs.helpyousponsor.com/api-reference/email-calendar/list-a-donor-comments get /donors/{donor_id}/comments Compatibility donor-comment interface backed by the collaboration thread. IDs can be positive legacy IDs or negative IDs for newer comments; zero is invalid. Requires current donor/thread access. Support sessions can read but cannot write. Returns the newest100 comments and current edit/delete capabilities; ordinary reads reconcile legacy comments into the collaboration thread. # List donor gifts eligible for acknowledgement Source: https://api-docs.helpyousponsor.com/api-reference/email-calendar/list-donor-gifts-eligible-for-acknowledgement get /donors/{donor_id}/interactions/manual/acknowledgement-candidates Requires manual_interactions and current interaction/record authority. Body visibility can restrict read/edit/delete even when timeline metadata is visible. Shared visibility requires a valid organization shared_group_id. Event invitation participants and related tasks require access and current version boundaries. Requires donation acknowledgement permission. Lists unacknowledged qualified payments excluding in-kind gifts, at or before occurred_at (clamped to the current minute). Cursor pagination; dates follow the resolved administrator timezone. # List email privacy policy rules Source: https://api-docs.helpyousponsor.com/api-reference/email-calendar/list-email-privacy-policy-rules get /email-calendar/policies Requires email/calendar availability and the email intelligence v2 workspace rollout. Review and body operations are private to the current mailbox owner and current preview generation under the active privacy policy. Returns active rules plus removals still processing. Owners see rules for their accounts; workspace managers also see workspace rules. # List legacy unmatched email interactions Source: https://api-docs.helpyousponsor.com/api-reference/email-calendar/list-legacy-unmatched-email-interactions get /interactions/unmatched Requires email/calendar deployment availability and the route permissions. Connected account operations use the authenticated tenant and mailbox owner; body/metadata sharing remains separately authorized. This legacy queue is unavailable with404 when email intelligence v2 is enabled. Returns email rows with unreviewed, no_match or ambiguous match status. # List my connected email/calendar accounts Source: https://api-docs.helpyousponsor.com/api-reference/email-calendar/list-my-connected-emailcalendar-accounts get /email-calendar/accounts Requires email/calendar deployment availability and the route permissions. Connected account operations use the authenticated tenant and mailbox owner; body/metadata sharing remains separately authorized. Workspace managers additionally receive other active owners alias-only records, without their private sync/preview/body controls. Returns current provider drivers, defaults and workspace capabilities. # List my private email review queue Source: https://api-docs.helpyousponsor.com/api-reference/email-calendar/list-my-private-email-review-queue get /email-calendar/review Requires email/calendar availability and the email intelligence v2 workspace rollout. Review and body operations are private to the current mailbox owner and current preview generation under the active privacy policy. Only approved/complete mailbox preview generations are eligible. Without classification, lists review disposition; a classification filter matches that class instead. Rows never include full body text. # List permission groups for shared interactions Source: https://api-docs.helpyousponsor.com/api-reference/email-calendar/list-permission-groups-for-shared-interactions get /interactions/manual/shared-visibility-options Returns organization permission-group IDs/names and the current user group ID for choosing a shared body audience. # Log a donor manual interaction Source: https://api-docs.helpyousponsor.com/api-reference/email-calendar/log-a-donor-manual-interaction post /donors/{donor_id}/interactions/manual Requires manual_interactions and current interaction/record authority. Body visibility can restrict read/edit/delete even when timeline metadata is visible. Shared visibility requires a valid organization shared_group_id. Event invitation participants and related tasks require access and current version boundaries. type, occurred_at and a nonblank subject are required. A body idempotency_key or fallback Idempotency-Key header reuses the interaction without replaying acknowledgement mutations. Donation acknowledgement needs donations/full-organization permission; selected gifts must qualify and occur no later than the interaction. Attachments use multipart form data. # Preview donor email merge text Source: https://api-docs.helpyousponsor.com/api-reference/email-calendar/preview-donor-email-merge-text post /donors/{donor_id}/email-compose/preview Requires email/calendar deployment availability and the route permissions. Connected account operations use the authenticated tenant and mailbox owner; body/metadata sharing remains separately authorized. Renders donor merge fields in subject/body without sending. # Preview email retention changes Source: https://api-docs.helpyousponsor.com/api-reference/email-calendar/preview-email-retention-changes post /email-calendar/settings/impact Requires email/calendar deployment availability and the route permissions. Connected account operations use the authenticated tenant and mailbox owner; body/metadata sharing remains separately authorized. Requires workspace manager authority. In intelligence v2, matching_mode accepts only existing_records_only and auto_create_donors is forced false. Metadata sharing needs an explicit confirm_metadata_sharing attestation. Disabling bodies or shortening retention can remove retained content: preview returns a fifteen-minute actor/settings/count-bound token, then save must supply that token and confirmed_retention_impact true. Changing the proposal or concurrent settings invalidates confirmation. # Preview historical mailbox import Source: https://api-docs.helpyousponsor.com/api-reference/email-calendar/preview-historical-mailbox-import post /email-calendar/accounts/{account_id}/preview Requires email/calendar availability and the email intelligence v2 workspace rollout. Review and body operations are private to the current mailbox owner and current preview generation under the active privacy policy. Owned individual accounts must be connected, email-sync enabled and in not_previewed or awaiting_approval state. Starts a fresh preview generation and queues scanning;202 is an acknowledgement, not a finished preview. # Preview the effect of an email privacy rule Source: https://api-docs.helpyousponsor.com/api-reference/email-calendar/preview-the-effect-of-an-email-privacy-rule post /email-calendar/policies/preview Requires email/calendar availability and the email intelligence v2 workspace rollout. Review and body operations are private to the current mailbox owner and current preview generation under the active privacy policy. Uses the same account-owner/workspace-manager boundary as saving a rule. Returns current counts of eligible emails newly hidden by the proposal; preview is advisory and does not grant write authority. # Promote or exclude an owned email candidate Source: https://api-docs.helpyousponsor.com/api-reference/email-calendar/promote-or-exclude-an-owned-email-candidate patch /email-calendar/review/{ingress_id} Requires email/calendar availability and the email intelligence v2 workspace rollout. Review and body operations are private to the current mailbox owner and current preview generation under the active privacy policy. Promote requires donor_id, interactions_manage and access to that donor form. Current policy and account state are checked before promotion. Exclude records the owner decision. Neither action changes mailbox ownership or body sharing. # Queue a validated manual-interaction import Source: https://api-docs.helpyousponsor.com/api-reference/email-calendar/queue-a-validated-manual-interaction-import post /interactions/manual/imports/{import_id}/process Requires manual_interactions and current interaction/record authority. Body visibility can restrict read/edit/delete even when timeline metadata is visible. Shared visibility requires a valid organization shared_group_id. Event invitation participants and related tasks require access and current version boundaries. Also requires manual_interactions_import. Validate at least one valid or skipped duplicate row first. Production queues processing; local/sync environments may process immediately. Receipt status and counts describe the current job state rather than guaranteeing completion. # Read a donor unified interaction timeline Source: https://api-docs.helpyousponsor.com/api-reference/email-calendar/read-a-donor-unified-interaction-timeline get /donors/{donor_id}/interactions Requires current donor visibility. Email/calendar and manual sections are enabled independently by their flags; imported CRM relationship activities remain available. Legacy and connected-source email rows retain metadata under their current body policy. Legacy local_body/snippet can be null and can_view_body false when current mailbox, program or owner access does not permit reading the body. Authorized message-center legacy rows can resolve the original message body even after it was scrubbed from the activity log. Returns up to ten upcoming calendar events plus recent events, at most 25 combined. Email filters do not filter the separate manual/CRM pagination. # Read a manual interaction body Source: https://api-docs.helpyousponsor.com/api-reference/email-calendar/read-a-manual-interaction-body get /interactions/manual/{activity_id}/body Requires manual_interactions and current interaction/record authority. Body visibility can restrict read/edit/delete even when timeline metadata is visible. Shared visibility requires a valid organization shared_group_id. Event invitation participants and related tasks require access and current version boundaries. Returns body_plain only after current body-visibility authorization. # Read accessible interaction relationships Source: https://api-docs.helpyousponsor.com/api-reference/email-calendar/read-accessible-interaction-relationships get /interactions/manual/{activity_id}/relationships Requires manual_interactions and current interaction/record authority. Body visibility can restrict read/edit/delete even when timeline metadata is visible. Shared visibility requires a valid organization shared_group_id. Event invitation participants and related tasks require access and current version boundaries. Returns the visible event, donor participants and related task summaries. # Read an owned email review item Source: https://api-docs.helpyousponsor.com/api-reference/email-calendar/read-an-owned-email-review-item get /email-calendar/review/{ingress_id} Requires email/calendar availability and the email intelligence v2 workspace rollout. Review and body operations are private to the current mailbox owner and current preview generation under the active privacy policy. Returns subject/participant metadata, current classification and body-fetch state; full body retrieval uses the separate body operation. # Read donor email compose options Source: https://api-docs.helpyousponsor.com/api-reference/email-calendar/read-donor-email-compose-options get /donors/{donor_id}/email-compose-context Requires email/calendar deployment availability and the route permissions. Connected account operations use the authenticated tenant and mailbox owner; body/metadata sharing remains separately authorized. Returns owned writable Google/Microsoft accounts and whether the donor can be emailed under suppression, communication preferences and intelligence recording policy. # Read or fetch a private email body Source: https://api-docs.helpyousponsor.com/api-reference/email-calendar/read-or-fetch-a-private-email-body get /interactions/email/{activity_id}/body Requires email/calendar deployment availability and the route permissions. Connected account operations use the authenticated tenant and mailbox owner; body/metadata sharing remains separately authorized. For v2 the caller must own the selected donor-specific ingress copy and see the donor; unowned/missing copies are concealed with404. Workspace body policy may forbid retrieval; expired retained content returns410.202 queues fetching;200 returns available body fields. donor_id selects the relevant promoted relationship. # Read or queue a retained private review body Source: https://api-docs.helpyousponsor.com/api-reference/email-calendar/read-or-queue-a-retained-private-review-body post /email-calendar/review/{ingress_id}/body Requires email/calendar availability and the email intelligence v2 workspace rollout. Review and body operations are private to the current mailbox owner and current preview generation under the active privacy policy. 200 returns available plain/html text and purge deadline. Otherwise202 returns status fetching. Workspace disabled-body policy forbids retrieval; retention-purged content returns410 and must be opened in the original mailbox. # Read workspace email ingestion health Source: https://api-docs.helpyousponsor.com/api-reference/email-calendar/read-workspace-email-ingestion-health get /email-calendar/health Requires email/calendar availability and the email intelligence v2 workspace rollout. Review and body operations are private to the current mailbox owner and current preview generation under the active privacy policy. Requires workspace manager authority. Returns account-state and ingress-status counts without exposing another owner private email content. # Read workspace email/calendar settings Source: https://api-docs.helpyousponsor.com/api-reference/email-calendar/read-workspace-emailcalendar-settings get /email-calendar/settings Requires email/calendar deployment availability and the route permissions. Connected account operations use the authenticated tenant and mailbox owner; body/metadata sharing remains separately authorized. Creates default settings if none exist. # Reconnect my email/calendar account Source: https://api-docs.helpyousponsor.com/api-reference/email-calendar/reconnect-my-emailcalendar-account post /email-calendar/accounts/{account_id}/reconnect Requires email/calendar deployment availability and the route permissions. Connected account operations use the authenticated tenant and mailbox owner; body/metadata sharing remains separately authorized. Returns an authorization URL with state lifetime and optional redirect URI for the selected available driver. Managed provider-start failures return502 with a reason. # Remove an email privacy policy rule Source: https://api-docs.helpyousponsor.com/api-reference/email-calendar/remove-an-email-privacy-policy-rule delete /email-calendar/policies/{policy_id} Requires email/calendar availability and the email intelligence v2 workspace rollout. Review and body operations are private to the current mailbox owner and current preview generation under the active privacy policy. Requires mailbox ownership for account rules or workspace manager for workspace rules. Revokes the rule and queues review holds for newly eligible content; repeating while removal is pending schedules reconciliation again. # Return an email donor relationship to review Source: https://api-docs.helpyousponsor.com/api-reference/email-calendar/return-an-email-donor-relationship-to-review patch /interactions/email/{activity_id}/unlink Requires email/calendar deployment availability and the route permissions. Connected account operations use the authenticated tenant and mailbox owner; body/metadata sharing remains separately authorized. For v2 choose donor_id or use its primary donor: only an owned eligible metadata copy can be returned to review and the response is moved_to_review plus ingress_id. Legacy emails clear their donor match and return the updated activity. # Save workspace email/calendar settings Source: https://api-docs.helpyousponsor.com/api-reference/email-calendar/save-workspace-emailcalendar-settings put /email-calendar/settings Requires email/calendar deployment availability and the route permissions. Connected account operations use the authenticated tenant and mailbox owner; body/metadata sharing remains separately authorized. Requires workspace manager authority. In intelligence v2, matching_mode accepts only existing_records_only and auto_create_donors is forced false. Metadata sharing needs an explicit confirm_metadata_sharing attestation. Disabling bodies or shortening retention can remove retained content: preview returns a fifteen-minute actor/settings/count-bound token, then save must supply that token and confirmed_retention_impact true. Changing the proposal or concurrent settings invalidates confirmation. # Send donor email through my connected account Source: https://api-docs.helpyousponsor.com/api-reference/email-calendar/send-donor-email-through-my-connected-account post /donors/{donor_id}/email-compose/send Requires email/calendar deployment availability and the route permissions. Connected account operations use the authenticated tenant and mailbox owner; body/metadata sharing remains separately authorized. Requires an owned connected/sync-enabled email account, donor email and allowed message preferences. account_id may select it; otherwise the first writable account is used.201 returns the recorded email.202 means the provider accepted the send but recording donor history remains pending; avoid blindly resending. # Send donor email through my connected account Source: https://api-docs.helpyousponsor.com/api-reference/email-calendar/send-donor-email-through-my-connected-account-1 post /donors/{donor_id}/interactions/email/send Requires email/calendar deployment availability and the route permissions. Connected account operations use the authenticated tenant and mailbox owner; body/metadata sharing remains separately authorized. Requires an owned connected/sync-enabled email account, donor email and allowed message preferences. account_id may select it; otherwise the first writable account is used.201 returns the recorded email.202 means the provider accepted the send but recording donor history remains pending; avoid blindly resending. # Start a new email/calendar connection Source: https://api-docs.helpyousponsor.com/api-reference/email-calendar/start-a-new-emailcalendar-connection post /email-calendar/accounts/{provider}/connect Requires email/calendar deployment availability and the route permissions. Connected account operations use the authenticated tenant and mailbox owner; body/metadata sharing remains separately authorized. Returns an authorization URL with state lifetime and optional redirect URI for the selected available driver. Managed provider-start failures return502 with a reason. # Suggest a summary for a manual interaction Source: https://api-docs.helpyousponsor.com/api-reference/email-calendar/suggest-a-summary-for-a-manual-interaction post /interactions/manual/summarize Requires manual_interactions and current interaction/record authority. Body visibility can restrict read/edit/delete even when timeline metadata is visible. Shared visibility requires a valid organization shared_group_id. Event invitation participants and related tasks require access and current version boundaries. Also requires manual_interactions_ai_summary. Uses note/body/title text without saving an interaction. Empty text returns empty_source; unavailable AI returns a local fallback summary with ai_unavailable true. # Update a Gratona-created calendar event Source: https://api-docs.helpyousponsor.com/api-reference/email-calendar/update-a-gratona-created-calendar-event patch /email-calendar/events/{event_id} Requires email/calendar deployment availability and the route permissions. Connected account operations use the authenticated tenant and mailbox owner; body/metadata sharing remains separately authorized. Only the connected owner can update an event created from Gratona. Submitted end/start values must remain ordered; provider write failures return422. # Update a manual interaction Source: https://api-docs.helpyousponsor.com/api-reference/email-calendar/update-a-manual-interaction patch /interactions/manual/{activity_id} Requires manual_interactions and current interaction/record authority. Body visibility can restrict read/edit/delete even when timeline metadata is visible. Shared visibility requires a valid organization shared_group_id. Event invitation participants and related tasks require access and current version boundaries. Partial update retains omitted fields; resulting subject must stay nonblank. The body owner/visibility gate applies before mutation. Existing acknowledged gifts constrain occurrence-date changes. New/removal attachments must leave no more than ten files. # Update connected account settings or aliases Source: https://api-docs.helpyousponsor.com/api-reference/email-calendar/update-connected-account-settings-or-aliases patch /email-calendar/accounts/{account_id} Requires email/calendar deployment availability and the route permissions. Connected account operations use the authenticated tenant and mailbox owner; body/metadata sharing remains separately authorized. Only the owner may change sync/body settings. An explicit workspace manager may edit aliases on another account; that request can contain only aliases_json and aliases_confirmed. Any alias update requires explicit manager authority and aliases_confirmed true. Aliases are normalized/deduplicated; identity/source changes queue reclassification in v2. # Upload a manual-interaction CSV Source: https://api-docs.helpyousponsor.com/api-reference/email-calendar/upload-a-manual-interaction-csv post /interactions/manual/imports Requires manual_interactions and current interaction/record authority. Body visibility can restrict read/edit/delete even when timeline metadata is visible. Shared visibility requires a valid organization shared_group_id. Event invitation participants and related tasks require access and current version boundaries. Also requires manual_interactions_import. Accepts CSV/TXT up to10MiB and previews headers/first row and mappable fields. Shared storage must be configured when production processing is asynchronous. # Validate a manual-interaction import mapping Source: https://api-docs.helpyousponsor.com/api-reference/email-calendar/validate-a-manual-interaction-import-mapping post /interactions/manual/imports/{import_id}/validate Requires manual_interactions and current interaction/record authority. Body visibility can restrict read/edit/delete even when timeline metadata is visible. Shared visibility requires a valid organization shared_group_id. Event invitation participants and related tasks require access and current version boundaries. Also requires manual_interactions_import. Donors must resolve by ID/email; ID disambiguates duplicate email matches. Required type/occurred_at mappings and valid row content determine readiness. Historical backfill defaults source_system to generic_csv, duplicate mode to skip and disables AI summary/title generation. # Verify a managed connection callback identity Source: https://api-docs.helpyousponsor.com/api-reference/email-calendar/verify-a-managed-connection-callback-identity post /email-calendar/composio/complete-auth Requires email/calendar deployment availability and the route permissions. Connected account operations use the authenticated tenant and mailbox owner; body/metadata sharing remains separately authorized. Consumes the managed connection session URI and returns the verified callback URL for completing this user connection. # Get email settings Source: https://api-docs.helpyousponsor.com/api-reference/email-settings/get-email-settings get /admin/email/settings # Get export completion email preference Source: https://api-docs.helpyousponsor.com/api-reference/email-settings/get-export-completion-email-preference get /admin/export-email-settings Returns the current organization’s manual export completion email preference, defaulting to true when no explicit preference is stored. Requires permission: one of manage_email. # Get legacy delivery-log configuration Source: https://api-docs.helpyousponsor.com/api-reference/email-settings/get-legacy-delivery-log-configuration get /admin/mailgun_logs Returns the current organization, its raw email-setting record and the selected Mailgun log source. Requires organization Mailgun credentials or configured platform delivery and a sender address. The authenticated response can contain saved credential fields; treat the payload as confidential. Requires permission: one of email_manager, manage_email. # Get sender email delivery health Source: https://api-docs.helpyousponsor.com/api-reference/email-settings/get-sender-email-delivery-health get /admin/email/settings/delivery-health Returns sender identity and projected transport health for the current organization, or emailsettings:null when no settings row exists. Stored health from another transport becomes unknown. Incomplete custom SMTP activates fallback; responsibility and action_required indicate who can resolve it. Requires permission: one of manage_email. # Get the first sender delivery log page Source: https://api-docs.helpyousponsor.com/api-reference/email-settings/get-the-first-sender-delivery-log-page get /admin/mailgun_logs_data Returns up to five normalized Mailgun analytics events using organization credentials, or platform credentials filtered by the configured sender address. Looks back30 days with a provider-retention fallback. Missing configuration returns HTTP200 with a message. The response repeats items/data and total_count/total for older clients. Requires permission: one of email_manager, manage_email. # Page through sender delivery logs Source: https://api-docs.helpyousponsor.com/api-reference/email-settings/page-through-sender-delivery-logs post /admin/mailgun_logs_data Retrieves the requested one-based analytics page by following provider tokens. pageIndex is clamped1–20 and pageSize1–10. Uses organization credentials or sender-filtered platform credentials and provider retention limits. Missing configuration returns HTTP200 with a message. Requires permission: one of email_manager, manage_email. # Post email settings Source: https://api-docs.helpyousponsor.com/api-reference/email-settings/post-email-settings post /admin/email/settings # Read legacy Mailgun event results Source: https://api-docs.helpyousponsor.com/api-reference/email-settings/read-legacy-mailgun-event-results get /admin/mailgun_logs/{message_id} Fetches the configured organization Mailgun domain’s legacy events response. The message_id path segment is currently not applied as a filter: the handler returns the full provider payload immediately. Empty upstream content returns data as an empty array. Prefer the normalized delivery-log endpoints for the current UI contract. Requires permission: one of email_manager, manage_email. # Save and verify email transport settings Source: https://api-docs.helpyousponsor.com/api-reference/email-settings/save-and-verify-email-transport-settings post /integrations/mailgun Builds candidate email delivery settings, sends a real verification email to from_address and saves only after successful delivery and a concurrent-change check. Custom SMTP host, login and password must be complete together. Omitted settings preserve saved values; clear_mailgun removes the custom transport. Provider verification failures include EMAIL_DELIVERY_VERIFICATION_FAILED, attempted_transport and responsibility. Requires permission: one of manage_email, access_account_settings. # Update export completion email preference Source: https://api-docs.helpyousponsor.com/api-reference/email-settings/update-export-completion-email-preference put /admin/export-email-settings Saves whether manually requested exports send completion emails and records an activity entry when the preference changes. This does not alter scheduled or other transactional email delivery. Requires permission: one of manage_email. # Activate Entity Source: https://api-docs.helpyousponsor.com/api-reference/entities/activate-entity get /admin/entity/{entity_id}/activate Handles the activation (restoration) of an archived entity based on the provided entity ID. # Activate Multiple Entities Source: https://api-docs.helpyousponsor.com/api-reference/entities/activate-multiple-entities post /admin/entities/{program_id}/activate Handles the activation (restoration) of multiple archived entities within a specific program. # Add New Entity Source: https://api-docs.helpyousponsor.com/api-reference/entities/add-new-entity post /admin/entity/{program_id} Posts data to add a new entity based on the provided program ID. # Archive Entities Source: https://api-docs.helpyousponsor.com/api-reference/entities/archive-entities delete /admin/entities/{program_id} Handles the removal (archival) of one or multiple entities, * including archival of sponsorships, removal of commitments, and updates to the cache. # Archive Entity Source: https://api-docs.helpyousponsor.com/api-reference/entities/archive-entity delete /admin/entity/{entity_id} Handles the removal (archival) of an entity based on the provided entity ID. # Download a finished recipient export Source: https://api-docs.helpyousponsor.com/api-reference/entities/download-a-finished-recipient-export get /admin/entities/exports/{uploadId} Resolves the export's S3 link. Default behavior issues an HTTP 302 redirect to a short-lived presigned URL, suitable for `` links. When called with `?resolve=1`, returns the URL as JSON instead so SPA code can handle the download itself. The upload must belong to the caller's client. Requires permission: `manage_programs`. # Edit a recipient Source: https://api-docs.helpyousponsor.com/api-reference/entities/edit-a-recipient patch /admin/program/entity Updates a recipient in the authenticated organization and preserves its archived state. Send configured recipient-form fields as top-level properties. Set `partial_update` to true to preserve omitted profile values and existing sponsorship relationships; full profile submissions replace the custom profile. Requires permission: `manage_programs`. # Entity table headers Source: https://api-docs.helpyousponsor.com/api-reference/entities/entity-table-headers get /admin/entities/{program_id}/headers/{trashed} # Generate Entity Status Report Source: https://api-docs.helpyousponsor.com/api-reference/entities/generate-entity-status-report get /admin/entities/{program_id}/status-report Generates a report of entities based on their status for a given time period # Get Detailed Field Options Source: https://api-docs.helpyousponsor.com/api-reference/entities/get-detailed-field-options get /admin/fields/options/{program_id}/{type} Retrieves detailed field options for a specific program and type, * including program information, fields, reports, and details. # Get program recipient form Source: https://api-docs.helpyousponsor.com/api-reference/entities/get-program-recipient-form get /admin/entity/{program_id} Gets the program recipient form based on the provided program ID and client information. # Get Program Statistics Source: https://api-docs.helpyousponsor.com/api-reference/entities/get-program-statistics get /admin/program/{program_id}/statistics Retrieves statistical data for a specific program based on the provided program ID. # List all entities for a program (legacy unpaginated) Source: https://api-docs.helpyousponsor.com/api-reference/entities/list-all-entities-for-a-program-legacy-unpaginated post /admin/show_all_entities Returns every entity for the given program via `Entity::getEntities()`. Pre-dates the paginated `showAllEntitiesAjax` listing — kept for legacy admin UIs and CSV-style exports that need the full set in one shot. When the underlying `getEntities()` call signals an error in its return shape, the handler returns that error verbatim. Requires permission: `manage_programs`. # List recipient-export jobs currently queued or processing Source: https://api-docs.helpyousponsor.com/api-reference/entities/list-recipient-export-jobs-currently-queued-or-processing get /admin/entities/exports/active Returns up to 10 recipient-export `Upload` rows from the last 24 hours whose status is `queued` or `processing`. Powers the `Active exports` indicator in the admin UI so users can resume polling without losing the upload id. Each row is enriched with `PdfRenderService::queuedUploadStatus`. Requires permission: `manage_programs`. # Look up entities by their unique-field value within a program Source: https://api-docs.helpyousponsor.com/api-reference/entities/look-up-entities-by-their-unique-field-value-within-a-program get /admin/get-entity/{program_id} Resolves the program's recipient form, finds the field flagged `is_unique=1`, and returns every entity in the program whose `json_fields[]` matches the supplied `search` value. Used by import workflows to detect existing recipients before creating duplicates. Returns 400 when the recipient form has no unique field. Validation: `program_id required`, `search required`. Requires permission: `manage_programs`. # Move and entity to a different program Source: https://api-docs.helpyousponsor.com/api-reference/entities/move-and-entity-to-a-different-program post /admin/move/{entity_id} Handles the process of moving an entity to a different program, * including updating entity records and clearing relevant caches. # Move Multiple Entities Source: https://api-docs.helpyousponsor.com/api-reference/entities/move-multiple-entities put /admin/entities/move Handles the process of moving multiple entities to a different program, * including updating entity records and clearing relevant caches. # Permanently delete an entity Source: https://api-docs.helpyousponsor.com/api-reference/entities/permanently-delete-an-entity delete /admin/entity/{entity_id}/delete # Permanently delete entities Source: https://api-docs.helpyousponsor.com/api-reference/entities/permanently-delete-entities delete /admin/entities/{program_id}/delete # Poll a single recipient export Source: https://api-docs.helpyousponsor.com/api-reference/entities/poll-a-single-recipient-export get /admin/entities/exports/{uploadId}/status Returns the current state of one recipient-export `Upload` (scoped to the caller's client, 404 otherwise). Mirrors a row of `activeEntityExports` but works for any status — including `completed` so the UI can flip to a download button. Requires permission: `manage_programs`. # Post Edit Multiple Entities Source: https://api-docs.helpyousponsor.com/api-reference/entities/post-edit-multiple-entities patch /admin/program/entities Handles the submission of edited data for multiple entities, * including updating various fields and maintaining archival status if applicable. # Post Field Options Source: https://api-docs.helpyousponsor.com/api-reference/entities/post-field-options post /admin/fields/options/{program_id}/{type} Saves field options for a specific program, and optionally, a specific type. * This includes saving preferences in Redis and handling report saving. # Queue a CSV export of recipients (async) Source: https://api-docs.helpyousponsor.com/api-reference/entities/queue-a-csv-export-of-recipients-async get /admin/entities/{program_id}/export Reserves an `Upload` row to back the export, marks it `queued`, then dispatches `GenerateEntityExportJob`. Returns 200 immediately with the upload id and a `status_url` to poll. The program must belong to the caller's client (404 otherwise). Any extra body parameters (filters, column overrides) are forwarded to the job verbatim. Requires permission: `manage_programs`. # Remove a saved report Source: https://api-docs.helpyousponsor.com/api-reference/entities/remove-a-saved-report delete /admin/view/{report_id}/{program_id} # Select a saved program report Source: https://api-docs.helpyousponsor.com/api-reference/entities/select-a-saved-program-report get /admin/programs/view/{report_id}/{program_id} Loads a saved recipient or sponsorship report into the administrator display preferences and clears the program table cache. Selecting a sponsorship report also makes it the default sponsorship report. A specific program is required. The final trashed path segment may be omitted. # Select a saved program report for the archived view Source: https://api-docs.helpyousponsor.com/api-reference/entities/select-a-saved-program-report-for-the-archived-view get /admin/programs/view/{report_id}/{program_id}/{trashed} Loads a saved recipient or sponsorship report into the administrator display preferences and clears the program table cache. Selecting a sponsorship report also makes it the default sponsorship report. A specific program is required. The optional final route segment is accepted for compatibility; it does not change report selection. # Show All Entities for a specific program Source: https://api-docs.helpyousponsor.com/api-reference/entities/show-all-entities-for-a-specific-program get /admin/entities/{program_id} Shows all entities for a given program ID, * with various filtering, sorting, and pagination options. # View compatible programs when moving entities Source: https://api-docs.helpyousponsor.com/api-reference/entities/view-compatible-programs-when-moving-entities get /admin/move/{entity_id}/compatible_programs Moves an entity to a different program, * retrieves necessary details for the move operation including compatible programs, * entity details, and more. # View Entity Details Source: https://api-docs.helpyousponsor.com/api-reference/entities/view-entity-details get /admin/program/entities/{id} Retrieves details of an entity for editing, * including its profile, fields, sponsors, donations, and more. # Add a donor to an event invite list Source: https://api-docs.helpyousponsor.com/api-reference/events/add-a-donor-to-an-event-invite-list post /admin/events/{eventId}/invitees Adds an accessible donor once per event. Existing active rows return already_active; removed rows reactivate, retaining prior owner unless a new one is supplied. Idempotent replay retains the original response status; reusing a key with different choices returns 409. Requires event setup management; archived event invitation history is read-only (409). # Add a hosted-table guest Source: https://api-docs.helpyousponsor.com/api-reference/events/add-a-hosted-table-guest post /frontend/public/events/{clientSlugOrId}/{eventSlug}/tables/{tableId}/host/{sessionId}/guests Requires the donor portal session in the path and that donor must be the table host. Event management stays available for completed/unpublished events unless the event is unavailable. Adds a standalone registered attendee without an order or donor identity. Capacity counts all non-cancelled table guests. Seat labels may be recorded for the host guest. # Add an event person Source: https://api-docs.helpyousponsor.com/api-reference/events/add-an-event-person post /admin/events/{eventId}/people Adds one accessible donor or staff member with a role. Exactly one donor_id/user_id is required, and duplicate identity/role combinations are rejected. Requires the event management capability; all referenced records must belong to this event and organization. # Archive an event Source: https://api-docs.helpyousponsor.com/api-reference/events/archive-an-event post /admin/events/{id}/archive Sets archived status and records event activity. Requires the event management capability; all referenced records must belong to this event and organization. # Archive event setup Source: https://api-docs.helpyousponsor.com/api-reference/events/archive-event-setup post /admin/events/{eventId}/setup/{setup}/{id}/archive Archives setup, disables its operational state, and removes affected scope references. Activity dependencies are preserved. Requires grouped event registration features. Requires the event management capability; all referenced records must belong to this event and organization. # Archive event setup Source: https://api-docs.helpyousponsor.com/api-reference/events/archive-event-setup-1 post /admin/events/{eventId}/sponsor-packages/{id}/archive Archives setup, disables its operational state, and removes affected scope references. Activity dependencies are preserved. Requires grouped event registration features. Requires the event management capability; all referenced records must belong to this event and organization. # Assign or clear an event attendee seat Source: https://api-docs.helpyousponsor.com/api-reference/events/assign-or-clear-an-event-attendee-seat put /admin/events/{eventId}/attendees/{attendeeId}/seat Updates the table and optional seat label, replacing the previous seat assignment. Omitting/nulling the table clears it. An occupied seat label is rejected within the selected table. Requires events_manage. # Assign owners to selected event invitees Source: https://api-docs.helpyousponsor.com/api-reference/events/assign-owners-to-selected-event-invitees patch /admin/events/{eventId}/invitees/bulk-owner Updates up to 100 distinct active invitees atomically. Every row must be accessible and its version current; any failure rolls back all owner changes. Owner null unassigns. Requires event setup management; archived event invitation history is read-only (409). # Award an active event auction bid Source: https://api-docs.helpyousponsor.com/api-reference/events/award-an-active-event-auction-bid post /admin/events/{eventId}/auction-bids/{bidId}/award Marks a placed, winning or already-won bid as won, stores the award time/user and creates a checkout token if needed. Other active bids for the item become outbid. Requires events_manage. # Cancel a hosted-table guest Source: https://api-docs.helpyousponsor.com/api-reference/events/cancel-a-hosted-table-guest delete /frontend/public/events/{clientSlugOrId}/{eventSlug}/tables/{tableId}/host/{sessionId}/guests/{attendeeId} Requires the donor portal session in the path and that donor must be the table host. Event management stays available for completed/unpublished events unless the event is unavailable. Cancels only a host-console guest, retaining its audit metadata and releasing any assigned seat. Ticket-order guests must be managed through their order. # Cancel a waitlist signup Source: https://api-docs.helpyousponsor.com/api-reference/events/cancel-a-waitlist-signup delete /frontend/public/events/{clientSlugOrId}/{eventSlug}/waitlist/{token} Cancels a waiting/offered signup, releases held inventory and attempts to offer the next signup. Cancelled/expired entries are replayed; a signup already converted to an order cannot be cancelled here. # Cancel an event auction bid Source: https://api-docs.helpyousponsor.com/api-reference/events/cancel-an-event-auction-bid post /admin/events/{eventId}/auction-bids/{bidId}/cancel Sets bid status cancelled and stores cancellation time/user; repeated cancellation preserves its state. Returns the bid with item, order and donor relations. Requires events_manage. # Cancel or record a refund for event registration Source: https://api-docs.helpyousponsor.com/api-reference/events/cancel-or-record-a-refund-for-event-registration post /admin/events/{eventId}/orders/{orderId}/cancel Cancels registration/groups/attendees/sponsors, releases seats and inventory, updates receipt and recorded donation refund state, and queues lifecycle follow-up. This endpoint records a refund; it does not submit a provider refund. refund_amount defaults to the total and is clamped to 0–total. Repeated cancellation/refund returns the existing state. Unresolved saved-method charges must be reconciled first. A bank payment awaiting settlement cannot be manually completed or cancelled. # Charge an explicitly authorized saved event card Source: https://api-docs.helpyousponsor.com/api-reference/events/charge-an-explicitly-authorized-saved-event-card post /admin/events/{eventId}/orders/{orderId}/charge-saved-payment-method Attempts an off-session Stripe card charge for a pending positive order after recording the donor authorization. The donor must match the purchaser, the reference must remain eligible, and reviewed amount must match. Confirmed success completes the order; failure leaves it pending. An indeterminate or concurrent result returns 409 and requires reconciliation. Retry the same authorization key and method; a new key cannot bypass an unresolved attempt. # Check in a complete event order Source: https://api-docs.helpyousponsor.com/api-reference/events/check-in-a-complete-event-order post /admin/events/{eventId}/check-ins/group Checks in every attendee on the selected order in one transaction. An ineligible attendee rejects the group transaction; repeat admissions produce duplicate logs. Order lifecycle, configured blocked payment statuses and registration-group completeness are checked before admission. Processing payments are also ineligible. Requires events_checkin or events_manage. Check-in mode must be enabled on the event. # Check in an attendee manually Source: https://api-docs.helpyousponsor.com/api-reference/events/check-in-an-attendee-manually post /admin/events/{eventId}/check-ins/manual Checks in the selected attendee and creates a manual or duplicate log. Order lifecycle, configured blocked payment statuses and registration-group completeness are checked before admission. Processing payments are also ineligible. Requires events_checkin or events_manage. Check-in mode must be enabled on the event. # Check in an event QR ticket Source: https://api-docs.helpyousponsor.com/api-reference/events/check-in-an-event-qr-ticket post /admin/events/{eventId}/check-ins/scan Resolves a ticket only within this event and creates a check-in or duplicate log. Order lifecycle, configured blocked payment statuses and registration-group completeness are checked before admission. Processing payments are also ineligible. Requires events_checkin or events_manage. Check-in mode must be enabled on the event. # Complete a staff event payment Source: https://api-docs.helpyousponsor.com/api-reference/events/complete-a-staff-event-payment post /admin/events/{eventId}/orders/{orderId}/complete-payment Marks a pending registration completed using supplied or retained payment references; this staff endpoint does not itself verify or charge a processor. Free totals become free; cash/check/offline become offline, other positive totals become paid. Repeats of paid/free/offline are idempotent. Expired reservations return 409. Unresolved saved-method charges must be reconciled first. A bank payment awaiting settlement cannot be manually completed or cancelled. # Create a staff event registration Source: https://api-docs.helpyousponsor.com/api-reference/events/create-a-staff-event-registration post /admin/events/{eventId}/orders Requires event registration permission. Creates a legacy registration using event ticket prices, donor access rules and capacity. Select at least a ticket, package, auction item or positive donation. Existing retry key returns its order. Staff defaults create_donor and send_confirmation to false. Closed RSVPs require registration_override_confirmed. Pending payments remain pending until completed or charged; this endpoint does not start browser checkout. # Create an event Source: https://api-docs.helpyousponsor.com/api-reference/events/create-an-event post /admin/events Creates a draft by default, resolves a unique slug and organization timezone, normalizes event dates to UTC and applies an optional starter preset. Historical templates are archived with public registration and messaging disabled. Requires the event management capability; all referenced records must belong to this event and organization. # Create an event auction item Source: https://api-docs.helpyousponsor.com/api-reference/events/create-an-event-auction-item post /admin/events/{eventId}/auction-items Configures bidding prices, stock, visibility and auction status. Omitted fields are preserved when updating. Requires the event management capability; all referenced records must belong to this event and organization. # Create an event communication Source: https://api-docs.helpyousponsor.com/api-reference/events/create-an-event-communication post /admin/events/{eventId}/communications Saves a communication template with normalized shortcodes, notification preferences and Message Manager approval metadata. Scheduled messages are later handled by the queue; only email is automatically delivered. Communications hold blocks scheduling. Relative schedules require a dated event and resolve in its timezone. The structured schedule must match legacy send_at when both are supplied. Requires events_manage. # Create an event preview link Source: https://api-docs.helpyousponsor.com/api-reference/events/create-an-event-preview-link post /admin/events/{eventId}/preview-links Issues a read-only preview capability. Expiry defaults to 168 hours; explicit null means no expiry. The returned URL stores its secret in a fragment rather than a query parameter. # Create an event promo code Source: https://api-docs.helpyousponsor.com/api-reference/events/create-an-event-promo-code post /admin/events/{eventId}/promo-codes Codes are normalized to uppercase and percentages cannot exceed 100. Omitted fields are preserved when updating. Requires the event management capability; all referenced records must belong to this event and organization. # Create an event question Source: https://api-docs.helpyousponsor.com/api-reference/events/create-an-event-question post /admin/events/{eventId}/questions A reused field_key updates an existing active question or restores an unused archived question; an archived question with saved answers returns 409. Omitted fields are preserved when updating. Requires the event management capability; all referenced records must belong to this event and organization. # Create an event settings profile Source: https://api-docs.helpyousponsor.com/api-reference/events/create-an-event-settings-profile post /admin/events/settings Creates reusable event defaults with program_type events. Nonpositive donation ask amounts are removed; defaults apply to omitted settings. Requires the event management capability; all referenced records must belong to this event and organization. # Create an event sponsor package Source: https://api-docs.helpyousponsor.com/api-reference/events/create-an-event-sponsor-package post /admin/events/{eventId}/sponsor-packages Configures benefits, included tickets/tables and optional deliverable definitions. Omitted fields are preserved when updating. Requires the event management capability; all referenced records must belong to this event and organization. # Create an event table Source: https://api-docs.helpyousponsor.com/api-reference/events/create-an-event-table post /admin/events/{eventId}/tables Configures seating capacity and an optional existing donor host. Omitted fields are preserved when updating. Requires the event management capability; all referenced records must belong to this event and organization. # Create an event ticket type Source: https://api-docs.helpyousponsor.com/api-reference/events/create-an-event-ticket-type post /admin/events/{eventId}/ticket-types Dates use the event timezone. Maximum per order must be at least the effective minimum. Omitted fields are preserved when updating. Requires the event management capability; all referenced records must belong to this event and organization. # Create or rotate an event invitation link Source: https://api-docs.helpyousponsor.com/api-reference/events/create-or-rotate-an-event-invitation-link post /admin/events/{eventId}/invitation-links Available only for invite-only events. An optional donor binding must be accessible to the caller. Binding an active invitee requires its current version, revokes older links for that invitee and increments its version. Lifetime defaults to 720 hours; null means no expiry. # Create public event registration Source: https://api-docs.helpyousponsor.com/api-reference/events/create-public-event-registration post /frontend/public/events/{clientSlugOrId}/{eventSlug}/orders Creates a registration and starts a processor handoff when money remains due. V2 requires a current quote and stable retry key, validates all group slots/required questions and reserves inventory for the event reservation window (5–60 minutes, default 15). Legacy retries return the order for the same key; V2 rejects a changed cart. Free/approved check orders complete immediately. Public donor identity fields follow event form context; event settings suppress disabled giving asks. # Create reviewed invitation staff tasks Source: https://api-docs.helpyousponsor.com/api-reference/events/create-reviewed-invitation-staff-tasks post /admin/events/{eventId}/invitees/{inviteeId}/plans Applies the reviewed saved plan using current invitee version, plan revision and hash. Creates canonical donor/event-linked staff tasks only for steps without existing mappings; accepted definition/dates are snapshotted. Does not contact invitees. Requires an event start and accessible active invitee. Requires event setup management; archived event invitation history is read-only (409). Also requires task management permission. # Delete an event Source: https://api-docs.helpyousponsor.com/api-reference/events/delete-an-event delete /admin/events/{id} Soft-deletes the event. Requires the event management capability; all referenced records must belong to this event and organization. # Delete an unused event auction item Source: https://api-docs.helpyousponsor.com/api-reference/events/delete-an-unused-event-auction-item delete /admin/events/{eventId}/auction-items/{id} Permanently deletes only a record without direct activity dependencies and removes references from related setup. Used setup must be archived instead. Requires the event management capability; all referenced records must belong to this event and organization. # Delete an unused event communication Source: https://api-docs.helpyousponsor.com/api-reference/events/delete-an-unused-event-communication delete /admin/events/{eventId}/communications/{id} Permanently deletes only communication setup without a recorded delivery timestamp. Used communication records return a setup-in-use conflict and must be archived. Requires events_manage. # Delete an unused event promo code Source: https://api-docs.helpyousponsor.com/api-reference/events/delete-an-unused-event-promo-code delete /admin/events/{eventId}/promo-codes/{id} Permanently deletes only a record without direct activity dependencies and removes references from related setup. Used setup must be archived instead. Requires the event management capability; all referenced records must belong to this event and organization. # Delete an unused event question Source: https://api-docs.helpyousponsor.com/api-reference/events/delete-an-unused-event-question delete /admin/events/{eventId}/questions/{id} Permanently deletes only a record without direct activity dependencies and removes references from related setup. Used setup must be archived instead. Requires the event management capability; all referenced records must belong to this event and organization. # Delete an unused event sponsor package Source: https://api-docs.helpyousponsor.com/api-reference/events/delete-an-unused-event-sponsor-package delete /admin/events/{eventId}/sponsor-packages/{id} Permanently deletes only a record without direct activity dependencies and removes references from related setup. Used setup must be archived instead. Requires the event management capability; all referenced records must belong to this event and organization. # Delete an unused event table Source: https://api-docs.helpyousponsor.com/api-reference/events/delete-an-unused-event-table delete /admin/events/{eventId}/tables/{id} Permanently deletes only a record without direct activity dependencies and removes references from related setup. Used setup must be archived instead. Requires the event management capability; all referenced records must belong to this event and organization. # Delete an unused event ticket type Source: https://api-docs.helpyousponsor.com/api-reference/events/delete-an-unused-event-ticket-type delete /admin/events/{eventId}/ticket-types/{id} Permanently deletes only a record without direct activity dependencies and removes references from related setup. Used setup must be archived instead. Requires the event management capability; all referenced records must belong to this event and organization. # Download an event export Source: https://api-docs.helpyousponsor.com/api-reference/events/download-an-event-export get /admin/events/exports/{uploadId} Streams the organization-scoped artifact as an attachment. Returns 404 if the file is unavailable; protected report artifacts enforce their report access policy. # Download an event ticket wallet pass Source: https://api-docs.helpyousponsor.com/api-reference/events/download-an-event-ticket-wallet-pass get /frontend/public/events/{clientSlugOrId}/{eventSlug}/orders/{token}/attendees/{attendeeId}/wallet-pass The order magic token authorizes this attendee. Ticket activation and group-detail checks match the QR endpoint. Returns a signed Apple Wallet pass attachment, or a configuration-required JSON response when signing is unavailable. # Duplicate event setup Source: https://api-docs.helpyousponsor.com/api-reference/events/duplicate-event-setup post /admin/events/{id}/duplicate Creates a draft copy with a unique slug, clearing event/registration dates, publication/completion state and scheduled address release. Copies setup, seats without guests, communications as drafts, automation rules as paused, and saved reports; resets inventory/redemption counts. Requires the event management capability; all referenced records must belong to this event and organization. # Export event attendees as CSV Source: https://api-docs.helpyousponsor.com/api-reference/events/export-event-attendees-as-csv get /admin/events/{eventId}/reports/attendees.csv Streams an attendee CSV including contact details, registration-group/attendee answers, purchaser, table, attendance time, ticket code and QR status. Requires report or check-in capability; formatted dates use the event timezone. # Export event orders as CSV Source: https://api-docs.helpyousponsor.com/api-reference/events/export-event-orders-as-csv get /admin/events/{eventId}/reports/orders.csv Streams orders and purchaser contacts, registration unit/admission counts, monetary amounts, gateway/transaction and receipt details, sponsor packages, QuickBooks event-revenue status and conversion interests. Requires events_finance or events_manage. # Get a hosted event table Source: https://api-docs.helpyousponsor.com/api-reference/events/get-a-hosted-event-table get /frontend/public/events/{clientSlugOrId}/{eventSlug}/tables/{tableId}/host/{sessionId} Requires the donor portal session in the path and that donor must be the table host. Event management stays available for completed/unpublished events unless the event is unavailable. Returns active guests with editable flags; ticket-order guests are visible but cannot be edited by the host. # Get a public event HTML document Source: https://api-docs.helpyousponsor.com/api-reference/events/get-a-public-event-html-document get /frontend/public/events/{clientId}/{eventSlug}/document Returns crawlable HTML with event title, date in event timezone, privacy-filtered location and canonical/Open Graph/schema.org metadata where permitted. Invite-only events require X-Event-Invitation; unavailable events return 404. # Get a public event page Source: https://api-docs.helpyousponsor.com/api-reference/events/get-a-public-event-page get /frontend/public/events/{clientSlugOrId}/{eventSlug} Returns public registration information, inventory, form policy, payment choices and privacy-filtered location. Invite-only pages require an invitation capability or a valid waitlist offer; inaccessible events return 404. Search and caching headers follow event visibility. # Get a staff event order Source: https://api-docs.helpyousponsor.com/api-reference/events/get-a-staff-event-order get /admin/events/{eventId}/orders/{orderId} Returns the raw organization/event order, registration, attendees with ticket/table, promo code, and sponsor packages. Raw Eloquent monetary values are decimal strings; this differs from the management projection returned by mutation endpoints. # Get a waitlist signup Source: https://api-docs.helpyousponsor.com/api-reference/events/get-a-waitlist-signup get /frontend/public/events/{clientSlugOrId}/{eventSlug}/waitlist/{token} Resolves a management or offer token within this event. Returns the safe signup projection with no raw management token. Requires grouped registration features; completed/unpublished event management is supported. # Get an event export status Source: https://api-docs.helpyousponsor.com/api-reference/events/get-an-event-export-status get /admin/events/exports/{uploadId}/status Returns progress/failure status for an organization-scoped export upload, including the download path when ready. Protected report artifacts also enforce their report access policy. # Get an event report summary Source: https://api-docs.helpyousponsor.com/api-reference/events/get-an-event-report-summary get /admin/events/{eventId}/reports/summary Returns attendance, registration groups, waitlist, donation conversion, attribution, sponsor/bid breakdowns and check-in timeline. The revenue block is null without finance capability; revenue aggregation includes pending orders only when the event setting permits it. # Get an event ticket QR image Source: https://api-docs.helpyousponsor.com/api-reference/events/get-an-event-ticket-qr-image get /frontend/public/events/{clientSlugOrId}/{eventSlug}/orders/{token}/attendees/{attendeeId}/qr.svg The order magic token authorizes this ticket. The order must be completed and paid/free/offline, the attendee must not be cancelled, and required registration-group details must be complete. Returns a private SVG image cached for five minutes. # Get checkout data for a waitlist offer Source: https://api-docs.helpyousponsor.com/api-reference/events/get-checkout-data-for-a-waitlist-offer post /frontend/public/events/{clientSlugOrId}/{eventSlug}/waitlist/{token}/accept Validates the current, unexpired offer token and returns ticket/quantity checkout parameters. This request does not create the order; submit its waitlist_offer_token with checkout. Grouped registration features are required. # Get event check-in context Source: https://api-docs.helpyousponsor.com/api-reference/events/get-event-check-in-context get /admin/events/{eventId}/check-ins/context Returns minimal event, attendance counts and available walk-in ticket choices. Requires events_checkin or events_manage. Check-in mode must be enabled on the event. # Get event details Source: https://api-docs.helpyousponsor.com/api-reference/events/get-event-details get /admin/events/{id} Returns private event details, setup, user capabilities, availability and optional invitation-date review notice. compact=true suppresses the setup arrays and readiness work. Requires the event view capability; all records are scoped to the authenticated organization. # Get event registration management details Source: https://api-docs.helpyousponsor.com/api-reference/events/get-event-registration-management-details get /frontend/public/events/{clientSlugOrId}/{eventSlug}/orders/{token} The secret order token authorizes access. Management remains available for completed/unpublished events when the event is available. Returns guest groups, question snapshots/answers, sponsors, receipts and payment state; active ticket links require completed payment and complete or optional group details. # Get event registration setup Source: https://api-docs.helpyousponsor.com/api-reference/events/get-event-registration-setup get /admin/events/{eventId}/registration-setup Returns tickets, questions, promotions, sponsorship packages, seating tables and auction items together; auction items include bid_summary. Requires the event view capability; all records are scoped to the authenticated organization. # Get event setup overview Source: https://api-docs.helpyousponsor.com/api-reference/events/get-event-setup-overview get /admin/events/{eventId}/overview Returns setup and communication counts, reminder/follow-up indicators and readiness checks for this event. Requires the event view capability; all records are scoped to the authenticated organization. # Get event setup selectors Source: https://api-docs.helpyousponsor.com/api-reference/events/get-event-setup-selectors get /admin/events/setup-options Returns event settings, programs/campaigns, up to 250 trips and designations, up to 500 recipient-group records, 50 cover images and 500 email templates. section=email_templates returns only the email template list. Sample trip-linked records are excluded. Requires event-view permission or a route-authorized Events role. # Get the event invitation plan Source: https://api-docs.helpyousponsor.com/api-reference/events/get-the-event-invitation-plan get /admin/events/{eventId}/invitation-plan Returns the saved plan or an unmaterialized starter definition with id=null, revision=0 and lock_version=0. Requires event view capability and organization/donor visibility. Also requires task view permission. # Get the organization event sitemap Source: https://api-docs.helpyousponsor.com/api-reference/events/get-the-organization-event-sitemap get /frontend/public/events/{clientId}/sitemap.xml Returns a sitemap containing only public, published, search-indexing-eligible events. Unlisted, invite-only, internal and unavailable events are excluded. Cache lifetime is five minutes and the response itself is noindex,follow. # Get the public event URL Source: https://api-docs.helpyousponsor.com/api-reference/events/get-the-public-event-url get /admin/events/{id}/public-url Returns an enabled public URL only when the access policy allows an unauthenticated public page. Invite-only events require invitation access and therefore have no enabled public URL here. Requires the event view capability; all records are scoped to the authenticated organization. # Import offline event check-ins Source: https://api-docs.helpyousponsor.com/api-reference/events/import-offline-event-check-ins post /admin/events/{eventId}/check-ins/offline-import Processes up to 1,000 array rows in order. Rows not marked present are skipped, then identity resolves by attendee ID, event ticket code or email. Valid original timestamps replace the check-in timestamp; invalid timestamps are ignored. A service validation error stops the request after earlier successful rows. Requires events_checkin or events_manage. Check-in mode must be enabled on the event. # Join an event waitlist Source: https://api-docs.helpyousponsor.com/api-reference/events/join-an-event-waitlist post /frontend/public/events/{clientSlugOrId}/{eventSlug}/waitlist Adds or replays an active waitlist signup only when the selected option is sold out, active and waitlist-enabled. An existing active email/ticket entry is returned rather than duplicated. Requires grouped registration features and an accessible public event. # List an event waitlist Source: https://api-docs.helpyousponsor.com/api-reference/events/list-an-event-waitlist get /admin/events/{eventId}/waitlist Lists staff waitlist records by waiting, offered, converted, expired and cancelled state, then signup time. Includes ticket and converted-order summaries. Requires grouped registration features and authorized Events view access. # List donor event registrations Source: https://api-docs.helpyousponsor.com/api-reference/events/list-donor-event-registrations get /frontend/events/{client_id}/{session_id} Requires the donor portal session in the path. Lists that donor’s organization-scoped registrations with monetary/receipt/ticket/sponsor projections and available giving next steps, plus tables hosted by the donor. Sample-linked events are excluded; hosted tables are restricted to public lifecycle statuses. # List event attendees Source: https://api-docs.helpyousponsor.com/api-reference/events/list-event-attendees get /admin/events/{eventId}/attendees Returns attendees with ticket/table, purchaser-order summaries and registration-group/question answers. Searches first name, last name or email and sorts by surname then first name. Requires event-view permission or a route-authorized Events role. # List event auction bids Source: https://api-docs.helpyousponsor.com/api-reference/events/list-event-auction-bids get /admin/events/{eventId}/auction-bids Returns bids with item, order and donor summaries ordered by amount descending, then newest first. Requires event-view permission or a route-authorized Events role. # List event auction item records Source: https://api-docs.helpyousponsor.com/api-reference/events/list-event-auction-item-records get /admin/events/{eventId}/auction-items Returns event-owned setup records; auction rows include current bid aggregates. Requires the event view capability; all records are scoped to the authenticated organization. # List event communications Source: https://api-docs.helpyousponsor.com/api-reference/events/list-event-communications get /admin/events/{eventId}/communications Returns communication templates and manually targeted records newest first, excluding per-recipient fanout copies. Template shortcodes are normalized to bracket form. Requires an authorized Events view role. # List event invitation links Source: https://api-docs.helpyousponsor.com/api-reference/events/list-event-invitation-links get /admin/events/{eventId}/invitation-links Returns invitation-link metadata newest first. Donor-bound links are visible only when the caller can access that donor; raw tokens are never listed. # List event invitation-plan presets Source: https://api-docs.helpyousponsor.com/api-reference/events/list-event-invitation-plan-presets get /admin/events/{eventId}/invitation-plans/presets Returns the read-only Personal invitation preset: personal call 28 days, handwritten note 21 days, follow-up 10 days and final logistics call 3 days before the event. Requires event view capability and organization/donor visibility. # List event invitees Source: https://api-docs.helpyousponsor.com/api-reference/events/list-event-invitees get /admin/events/{eventId}/invitees Returns active invitees with masked donor contacts, computed stages, visible plan tasks/interactions and actions. Summary respects search/owner visibility before stage, method, plan-state and work-scope filters. Task and interaction projections follow their separate record visibility rules. Requires event view capability and organization/donor visibility. # List event-linked interactions Source: https://api-docs.helpyousponsor.com/api-reference/events/list-event-linked-interactions get /admin/events/{eventId}/interactions Returns up to 50 newest visible event-linked interactions. Records are omitted when any manually linked donor is inaccessible; snippets follow interaction body-sharing policy. Requires both an authorized Events view role and activity_logs_view, interactions_manage or donors_manage. # List event orders Source: https://api-docs.helpyousponsor.com/api-reference/events/list-event-orders get /admin/events/{eventId}/orders Returns newest event orders with attendee counts and promo-code summaries. Monetary values on raw order records are decimal strings. Requires events_finance, events_reports or events_manage. # List event people Source: https://api-docs.helpyousponsor.com/api-reference/events/list-event-people get /admin/events/{eventId}/people Lists event roles backed by donors the caller can access or staff in the same organization, ordered by sort_order. Requires the event view capability; all records are scoped to the authenticated organization. # List event preview links Source: https://api-docs.helpyousponsor.com/api-reference/events/list-event-preview-links get /admin/events/{eventId}/preview-links Returns preview-link metadata newest first. Raw tokens/URLs are only available when a link is initially issued. # List event promo code records Source: https://api-docs.helpyousponsor.com/api-reference/events/list-event-promo-code-records get /admin/events/{eventId}/promo-codes Returns event-owned setup records. Requires the event view capability; all records are scoped to the authenticated organization. # List event question records Source: https://api-docs.helpyousponsor.com/api-reference/events/list-event-question-records get /admin/events/{eventId}/questions Returns event-owned setup records. Requires the event view capability; all records are scoped to the authenticated organization. # List event settings profiles Source: https://api-docs.helpyousponsor.com/api-reference/events/list-event-settings-profiles get /admin/events/settings Lists reusable events settings profiles and usage counts. Returns compact records without readiness and timestamps. Requires the event view capability; all records are scoped to the authenticated organization. # List event setup with lifecycle metadata Source: https://api-docs.helpyousponsor.com/api-reference/events/list-event-setup-with-lifecycle-metadata get /admin/events/{eventId}/setup/{setup} Returns typed setup rows plus deletion/archive eligibility and dependency counts. Requires grouped event registration features. Requires the event view capability; all records are scoped to the authenticated organization. # List event sponsor package records Source: https://api-docs.helpyousponsor.com/api-reference/events/list-event-sponsor-package-records get /admin/events/{eventId}/sponsor-packages Returns event-owned setup records. Requires the event view capability; all records are scoped to the authenticated organization. # List event sponsors Source: https://api-docs.helpyousponsor.com/api-reference/events/list-event-sponsors get /admin/events/{eventId}/sponsors Returns newest sponsors with package, donor, logo, deliverables, logo URL and included guest/seat summaries. Included guests match the sponsor ticket-slot metadata. Requires event-view permission or a route-authorized Events role. # List event starter presets Source: https://api-docs.helpyousponsor.com/api-reference/events/list-event-starter-presets get /admin/events/templates Returns the configured preset manifests keyed by stable preset key. Historical-event creation is supported separately and is deliberately excluded from the starter selector. Requires event-view permission or a route-authorized Events role. # List event table records Source: https://api-docs.helpyousponsor.com/api-reference/events/list-event-table-records get /admin/events/{eventId}/tables Returns event-owned setup records. Requires the event view capability; all records are scoped to the authenticated organization. # List event ticket type records Source: https://api-docs.helpyousponsor.com/api-reference/events/list-event-ticket-type-records get /admin/events/{eventId}/ticket-types Returns event-owned setup records. Requires the event view capability; all records are scoped to the authenticated organization. # List events Source: https://api-docs.helpyousponsor.com/api-reference/events/list-events get /admin/events Lists events by lifecycle view, text search and sortable fields. include_summary adds organization-wide counts and the next event, rather than counts restricted by list filters. Requires the event view capability; all records are scoped to the authenticated organization. # List masked donor payment methods for an event Source: https://api-docs.helpyousponsor.com/api-reference/events/list-masked-donor-payment-methods-for-an-event get /admin/events/{eventId}/donors/{donorId}/saved-payment-methods Returns at most 100 masked Stripe cards for a donor the staff actor can access. Opaque references are event/donor scoped and expire; use a freshly selected eligible reference for an authorized charge. Provider/configuration failure returns an empty methods list with an explanatory message. # Mark an event attendee as a no-show Source: https://api-docs.helpyousponsor.com/api-reference/events/mark-an-event-attendee-as-a-no-show post /admin/events/{eventId}/check-ins/no-show Only registered or already no-show attendees on completed registrations can be marked. The event must have a start date and must already have started; repeat calls retain no-show status. Requires events_checkin or events_manage. Check-in mode must be enabled on the event. # Offer the next event waitlist place Source: https://api-docs.helpyousponsor.com/api-reference/events/offer-the-next-event-waitlist-place post /admin/events/{eventId}/waitlist/{entryId}/offer Reserves ticket units and event admissions for the next waiting signup for that ticket, then queues its offer email. An active offer is replayed; communication holds and out-of-order offers return 409. Expiry defaults to the event reservation policy, clamped to 5–60 minutes. # Place a public event auction bid Source: https://api-docs.helpyousponsor.com/api-reference/events/place-a-public-event-auction-bid post /frontend/public/events/{clientSlugOrId}/{eventSlug}/auction-bids Places a winning bid on an open, public item with sufficient stock and marks earlier winning bids outbid. Amount must reach the next minimum: starting bid or at least one currency unit, then current high bid plus a configured increment of at least one. Returns a secret bid-specific checkout capability; payment occurs separately. # Preview adding selected donors to an event invite list Source: https://api-docs.helpyousponsor.com/api-reference/events/preview-adding-selected-donors-to-an-event-invite-list post /admin/events/{eventId}/invitees/selection/preview Resolves explicit rows or all donor-worksheet matches with current donor visibility. Default maximum is 5,000 donors; empty/inaccessible explicit selections fail. Returns up to five masked samples and a single-use actor/event-bound preview (default expiry 15 minutes). Optional reviewed plan requires saved current definition, event start, future dates and assignees able to see every selected donor. Performs no invitations, task creation or communication. Requires event setup management; archived event invitation history is read-only (409). # Preview an event communication Source: https://api-docs.helpyousponsor.com/api-reference/events/preview-an-event-communication post /admin/events/{eventId}/communications/preview Reviews selected, eligible, suppressed and missing-email recipient counts, sender, schedule and private-address effects without creating or sending anything. The structured schedule must match legacy send_at when both are supplied. Requires events_manage. # Preview an event page Source: https://api-docs.helpyousponsor.com/api-reference/events/preview-an-event-page get /admin/events/{eventId}/preview Returns a read-only public projection for event staff, including drafts. Preview writes, payment gateways and payment-method choices are disabled. Location respects public disclosure policy; headers prevent indexing and caching. # Preview invitation tasks for an invitee Source: https://api-docs.helpyousponsor.com/api-reference/events/preview-invitation-tasks-for-an-invitee post /admin/events/{eventId}/invitees/{inviteeId}/plan-preview Requires an event start and saved plan. Resolves selected enabled steps, due dates and assignees, counts mapped versus new tasks, and sends no communication. Dates must be today/future in event timezone; assignees must access both event and donor. Requires event view capability and organization/donor visibility. Also requires task view permission. # Publish an event Source: https://api-docs.helpyousponsor.com/api-reference/events/publish-an-event post /admin/events/{id}/publish Enables the public page, checks every required readiness item and sets published status for a draft. Records its initial publication timestamp; missing setup or payment paths block publication. Requires the event management capability; all referenced records must belong to this event and organization. # Queue a reviewed event invite-list selection Source: https://api-docs.helpyousponsor.com/api-reference/events/queue-a-reviewed-event-invite-list-selection post /admin/events/{eventId}/invitees/selection/apply Consumes the unexpired preview and verifies actor/event binding and current plan definition. Queues add/reactivate/owner changes and optional staff tasks, rechecking donor access per record. Repeat the same Idempotency-Key and preview token to recover its operation. A consumed/expired preview, concurrent application or changed definition returns 409. Does not send communication. Requires event setup management; archived event invitation history is read-only (409). # Queue failed event invite-list records for retry Source: https://api-docs.helpyousponsor.com/api-reference/events/queue-failed-event-invite-list-records-for-retry post /admin/events/{eventId}/invitees/selection/operations/{operationId}/retry Only the initiating actor may retry an event_invitees operation for this event in failed/completed_with_errors state. Verifies durable failed donor IDs, then queues a new operation for failed rows only using the original accepted context. A stable retry key recovers the same new operation. Successful/skipped rows are not retried. Requires event setup management; archived event invitation history is read-only (409). # Quote public event registration Source: https://api-docs.helpyousponsor.com/api-reference/events/quote-public-event-registration post /frontend/public/events/{clientSlugOrId}/{eventSlug}/quote Requires grouped-registration V2 to be enabled. Prices active available tickets/packages, promo discount, donation and optional fees in event currency; reserves no stock. Quote expires after five minutes. A waitlist offer credits pre-reserved matching ticket units. Check payment requires the event offline option and disables fee coverage. # Register and check in an event walk-in Source: https://api-docs.helpyousponsor.com/api-reference/events/register-and-check-in-an-event-walk-in post /admin/events/{eventId}/check-ins/walk-in Requires events_checkin or events_manage and enabled check-in mode. Creates one legacy ticket registration with offline payment and no donor creation, then checks its attendee in with walk_in source. Ticket availability and event capacity are enforced. Reuse the same idempotency key to avoid another registration; repeated admission creates a duplicate check-in log. # Remove a donor from an event invite list Source: https://api-docs.helpyousponsor.com/api-reference/events/remove-a-donor-from-an-event-invite-list delete /admin/events/{eventId}/invitees/{inviteeId} Marks the invitee removed without deleting invitation history or registration. Invitation access links remain valid unless revoke_access_link=true. Version always increments; stale writes return 409. Requires event setup management; archived event invitation history is read-only (409). # Remove an event person Source: https://api-docs.helpyousponsor.com/api-reference/events/remove-an-event-person delete /admin/events/{eventId}/people/{personId} Soft-deletes the caller-accessible event person and records activity. Requires the event management capability; all referenced records must belong to this event and organization. # Reorder event setup rows Source: https://api-docs.helpyousponsor.com/api-reference/events/reorder-event-setup-rows put /admin/events/{eventId}/setup/{setup}/reorder Saves zero-based sort positions in the supplied order. Every ID must be active in this event; only tickets, questions, sponsorship packages, tables and auction items support sorting. Requires grouped registration features. Requires the event management capability; all referenced records must belong to this event and organization. # Repair a missing invitation staff task Source: https://api-docs.helpyousponsor.com/api-reference/events/repair-a-missing-invitation-staff-task post /admin/events/{eventId}/invitees/{inviteeId}/plan-tasks/{stepKey}/repair Returns an existing available task, restores its deleted canonical task, or recreates a missing task from its accepted snapshot and generated date. Invalidated original assignees become unassigned. Requires event start, saved plan and current active invitee version. Sends no communication. Requires event setup management; archived event invitation history is read-only (409). Also requires task management permission. # Reschedule reviewed event invitation tasks Source: https://api-docs.helpyousponsor.com/api-reference/events/reschedule-reviewed-event-invitation-tasks post /admin/events/{eventId}/invitation-task-date-review Atomically reschedules up to 1,000 distinct open canonical invitation-plan tasks. Every task must be mutable, its expected version current, and proposed date exactly match the current event/snapshot calculation; stale dates/versions return 409. Completed/deleted/unavailable tasks reject the batch. Requires event setup management; archived event invitation history is read-only (409). Also requires task management permission. # Reset an event invitation plan to the preset Source: https://api-docs.helpyousponsor.com/api-reference/events/reset-an-event-invitation-plan-to-the-preset post /admin/events/{eventId}/invitation-plan/reset Saves a new revision of the Personal invitation definition. confirm_reset must be true; generated staff tasks retain their accepted snapshots. Requires event setup management; archived event invitation history is read-only (409). Also requires task management permission. # Resolve an event preview link Source: https://api-docs.helpyousponsor.com/api-reference/events/resolve-an-event-preview-link post /frontend/public/event-previews/{clientId}/resolve Exchanges the secret preview token for a read-only event page in the specified organization. Expired, revoked or mismatched tokens return 404. Payment methods and registration writes stay disabled, with private/no-store and noindex headers. # Restore an event invitee Source: https://api-docs.helpyousponsor.com/api-reference/events/restore-an-event-invitee post /admin/events/{eventId}/invitees/{inviteeId}/restore Clears removed metadata and increments version, preserving disposition, owner and invitation history. Requires current version and donor access. Requires event setup management; archived event invitation history is read-only (409). # Restore event setup Source: https://api-docs.helpyousponsor.com/api-reference/events/restore-event-setup post /admin/events/{eventId}/sponsor-packages/{id}/restore Restores archived setup and re-enables its operational state; auction and communication rows return as drafts. Requires grouped event registration features. Requires the event management capability; all referenced records must belong to this event and organization. # Restore event setup Source: https://api-docs.helpyousponsor.com/api-reference/events/restore-event-setup-1 post /admin/events/{eventId}/setup/{setup}/{id}/restore Restores archived setup and re-enables its operational state; auction and communication rows return as drafts. Requires grouped event registration features. Requires the event management capability; all referenced records must belong to this event and organization. # Review event invitation task dates Source: https://api-docs.helpyousponsor.com/api-reference/events/review-event-invitation-task-dates get /admin/events/{eventId}/invitation-task-date-review Recomputes proposed dates from the current event start and each applied snapshot offset. Lists only visible tasks; missing tasks require task management. Edited baseline dates are flagged and not selected by default. Requires an event start. Requires event view capability and organization/donor visibility. Also requires task view permission. # Revoke accessible event invitation links Source: https://api-docs.helpyousponsor.com/api-reference/events/revoke-accessible-event-invitation-links delete /admin/events/{eventId}/invitation-links Revokes active invitation capabilities the caller can access, returning the count and incrementing affected invitee versions. Inaccessible donor-bound links are excluded. # Revoke all event preview links Source: https://api-docs.helpyousponsor.com/api-reference/events/revoke-all-event-preview-links delete /admin/events/{eventId}/preview-links Revokes every still-active preview capability for this event and returns the affected count. # Revoke an event invitation link Source: https://api-docs.helpyousponsor.com/api-reference/events/revoke-an-event-invitation-link delete /admin/events/{eventId}/invitation-links/{linkId} Revokes one accessible invitation link. If it is tied to an invitee, increments the invitee version. Donor visibility is required for donor-bound links. # Revoke an event preview link Source: https://api-docs.helpyousponsor.com/api-reference/events/revoke-an-event-preview-link delete /admin/events/{eventId}/preview-links/{linkId} Revokes the selected organization/event preview capability. Repeat revocation preserves the unavailable state. # Save the event invitation plan Source: https://api-docs.helpyousponsor.com/api-reference/events/save-the-event-invitation-plan put /admin/events/{eventId}/invitation-plan Replaces the definition and increments revision/lock. Existing applied task snapshots remain unchanged. Supply the current lock, or zero for first save. One to ten steps must be enabled; offsets are 0–365 days, titles allow only donor_name/event_name tokens, specific assignees must be active and see this event. Unknown or duplicate step keys become new generated keys. Requires event setup management; archived event invitation history is read-only (409). Also requires task management permission. # Search event attendees for check-in Source: https://api-docs.helpyousponsor.com/api-reference/events/search-event-attendees-for-check-in get /admin/events/{eventId}/check-ins/search Searches names, email, QR token, order number and table name. Filter issues includes cancelled/transferred attendees and groups with missing required details. Requires events_checkin or events_manage. Check-in mode must be enabled on the event. # Start winning auction bid checkout Source: https://api-docs.helpyousponsor.com/api-reference/events/start-winning-auction-bid-checkout post /frontend/public/events/{clientSlugOrId}/{eventSlug}/auction-bids/{bidId}/checkout Requires auction availability and the bid-specific checkout token; this is separate from the order management token. Only winning/awarded unpurchased bids can begin checkout. Missing purchaser contact defaults from the bid. Creates a legacy auction registration even when grouped registration is enabled, bypassing the public registration window, and returns a provider handoff when pending. A bid already linked to an order returns that existing registration with HTTP 200. # Unpublish an event Source: https://api-docs.helpyousponsor.com/api-reference/events/unpublish-an-event post /admin/events/{id}/unpublish Disables the public page and search indexing, clears publication time, and places communications on hold. A future scheduled address release is disabled. Completed, reconciled and archived events cannot be unpublished. Requires the event management capability; all referenced records must belong to this event and organization. # Update a hosted-table guest Source: https://api-docs.helpyousponsor.com/api-reference/events/update-a-hosted-table-guest put /frontend/public/events/{clientSlugOrId}/{eventSlug}/tables/{tableId}/host/{sessionId}/guests/{attendeeId} Requires the donor portal session in the path and that donor must be the table host. Event management stays available for completed/unpublished events unless the event is unavailable. Only a guest created from the host console without an order can be changed. Omitted contact fields are preserved, while explicit null email/phone clears them. # Update a sponsor deliverable Source: https://api-docs.helpyousponsor.com/api-reference/events/update-a-sponsor-deliverable put /admin/events/{eventId}/sponsors/{sponsorId}/deliverables/{deliverableId} Updates deliverable status and optional notes/due date. Completing sets the completion timestamp/user; any other status clears those completion fields. Null notes/due_at retain previous values. Requires events_sponsor_manage or events_manage. # Update an event auction item Source: https://api-docs.helpyousponsor.com/api-reference/events/update-an-event-auction-item put /admin/events/{eventId}/auction-items/{id} Configures bidding prices, stock, visibility and auction status. Omitted fields are preserved when updating. Requires the event management capability; all referenced records must belong to this event and organization. # Update an event communication Source: https://api-docs.helpyousponsor.com/api-reference/events/update-an-event-communication put /admin/events/{eventId}/communications/{id} Saves a communication template with normalized shortcodes, notification preferences and Message Manager approval metadata. Scheduled messages are later handled by the queue; only email is automatically delivered. Communications hold blocks scheduling. Relative schedules require a dated event and resolve in its timezone. The structured schedule must match legacy send_at when both are supplied. Requires events_manage. # Update an event invitee Source: https://api-docs.helpyousponsor.com/api-reference/events/update-an-event-invitee patch /admin/events/{eventId}/invitees/{inviteeId} Checks expected_version before supplied changes. Null owner unassigns; null response clears it. Declined/closed disposition or a declined response requires confirm_disposition=true. Reopening a previously declined invitee requires explicitly clearing/replacing the declined response. Attendance remains derived from registration. Requires event setup management; archived event invitation history is read-only (409). # Update an event person Source: https://api-docs.helpyousponsor.com/api-reference/events/update-an-event-person put /admin/events/{eventId}/people/{personId} Updates supplied role/name/visibility/order values and revalidates the resulting identity. Exactly one donor or staff identity must remain; the identity/role combination must be unique. Requires the event management capability; all referenced records must belong to this event and organization. # Update an event promo code Source: https://api-docs.helpyousponsor.com/api-reference/events/update-an-event-promo-code put /admin/events/{eventId}/promo-codes/{id} Codes are normalized to uppercase and percentages cannot exceed 100. Omitted fields are preserved when updating. Requires the event management capability; all referenced records must belong to this event and organization. # Update an event question Source: https://api-docs.helpyousponsor.com/api-reference/events/update-an-event-question put /admin/events/{eventId}/questions/{id} A reused field_key updates an existing active question or restores an unused archived question; an archived question with saved answers returns 409. Omitted fields are preserved when updating. Requires the event management capability; all referenced records must belong to this event and organization. # Update an event settings profile Source: https://api-docs.helpyousponsor.com/api-reference/events/update-an-event-settings-profile put /admin/events/settings/{settingId} Merges supplied values into the existing events profile, preserving other settings. Profiles of other program types return 404. Requires the event management capability; all referenced records must belong to this event and organization. # Update an event sponsor package Source: https://api-docs.helpyousponsor.com/api-reference/events/update-an-event-sponsor-package put /admin/events/{eventId}/sponsor-packages/{id} Configures benefits, included tickets/tables and optional deliverable definitions. Omitted fields are preserved when updating. Requires the event management capability; all referenced records must belong to this event and organization. # Update an event table Source: https://api-docs.helpyousponsor.com/api-reference/events/update-an-event-table put /admin/events/{eventId}/tables/{id} Configures seating capacity and an optional existing donor host. Omitted fields are preserved when updating. Requires the event management capability; all referenced records must belong to this event and organization. # Update an event ticket type Source: https://api-docs.helpyousponsor.com/api-reference/events/update-an-event-ticket-type put /admin/events/{eventId}/ticket-types/{id} Dates use the event timezone. Maximum per order must be at least the effective minimum. Omitted fields are preserved when updating. Requires the event management capability; all referenced records must belong to this event and organization. # Update event details Source: https://api-docs.helpyousponsor.com/api-reference/events/update-event-details put /admin/events/{id} Updates supplied fields, normalizes dates in the effective event timezone and recomputes relative communication schedules when event dates/timezone change. Communications hold release requires explicit confirmation, and scheduled address release requires a release date. Requires the event management capability; all referenced records must belong to this event and organization. # Update event registration guest details Source: https://api-docs.helpyousponsor.com/api-reference/events/update-event-registration-guest-details put /frontend/public/events/{clientSlugOrId}/{eventSlug}/orders/{token} The secret order token authorizes changes when magic-link management is enabled. Cancelled/refunded/expired registrations cannot be edited. V2 requires the current version or returns 409 with current_version. Only guests, groups and sponsors on this order are mutable; applicable active question types/options are validated and blank answers removed. Sponsor logo upload must belong to the organization; supplied contact nulls clear values. Group completeness and ticket readiness are recalculated. # Upload an event sponsor logo Source: https://api-docs.helpyousponsor.com/api-reference/events/upload-an-event-sponsor-logo post /frontend/public/events/{clientSlugOrId}/{eventSlug}/orders/{token}/storage/uploads Uploads the multipart file and returns its final public URL/key. Active HTML, JavaScript, XML and SVG content/extensions are rejected. HEIC/HEIF images are converted to JPEG, so use the returned key and filename. Storage or receipt failures return500; invalid files, MIME/key mismatches or conversion failures return422. Requires a valid event registration magic token and enabled magic-link order management. The event must be available and not a sample-trip target. The key must begin event-sponsor-logos/{clientSlugOrId}/{eventSlug}/ after slash sanitization. Only supported PNG/JPEG/GIF/WebP/HEIC/HEIF images are accepted. # Verify public registration payment Source: https://api-docs.helpyousponsor.com/api-reference/events/verify-public-registration-payment post /frontend/public/events/{clientSlugOrId}/{eventSlug}/orders/{token}/complete-payment The secret order token authorizes access. Repeated paid/free/offline completion returns the existing registration. PayPal captures and verifies the provider order. Stripe reconciliation verifies ownership, amount, currency and provider state; a bank payment can remain processing until settlement, and late/refunded evidence can require reconciliation without activating tickets. # Abort an import upload session Source: https://api-docs.helpyousponsor.com/api-reference/files/abort-an-import-upload-session post /admin/import_files/upload-sessions/{upload_session_id}/abort Marks the user-owned session and files aborted and attempts deletion of temporary storage objects. Storage deletion failures are logged while the abort still succeeds. Validation/processing/consumption or a validation job prevents abort with409. Requires permission: one of imports_manage. # Complete Box OAuth for file uploads Source: https://api-docs.helpyousponsor.com/api-reference/files/complete-box-oauth-for-file-uploads get /admin/box_response Exchanges a Box authorization code for access and refresh tokens and stores them on the target client account. The endpoint is used after an admin authorizes Box for upload storage integration. Requires admin file access through `user.permissions`. # Confirm a staged import file upload Source: https://api-docs.helpyousponsor.com/api-reference/files/confirm-a-staged-import-file-upload post /admin/import_files/upload-sessions/{upload_session_id}/files/{file_id}/complete Call after PUT completes. size_bytes must match the original selection and verified storage size. Declared MIME must agree with verified MIME. Photos require successful storage verification; documents may be marked uploaded with verification=deferred when storage inspection is unavailable. Reconfirming an already uploaded file returns a smaller200 receipt containing only message and file_id. An expired session returns410. Requires permission: one of imports_manage. # Create an import upload session Source: https://api-docs.helpyousponsor.com/api-reference/files/create-an-import-upload-session post /admin/import_files/{program_id}/upload-sessions Creates a user-owned24hour staging session for a program in the current organization. Submit1–1000 unique filenames, then PUT each file to its returned signed upload_url with the exact Content-Type header. URLs expire after60minutes; the advertised parallel limit is3. Photos permit JPG/JPEG/PNG/GIF up to10MiB each. Document per-file and all batch limits follow deployed PHP upload/post limits. donors is normalized to donor. This step creates staging records; it does not import records. Requires permission: one of imports_manage. # Delete a file Source: https://api-docs.helpyousponsor.com/api-reference/files/delete-a-file delete /file/{id} # Download a prepared file bundle Source: https://api-docs.helpyousponsor.com/api-reference/files/download-a-prepared-file-bundle get /files/download-bundle/{token} Streams a completed ZIP bundle for a token created by the file download bundle job. The token must belong to the authenticated admin's client and user, and expired tokens return gone. The response is an `application/zip` file when successful. # Edit a file Source: https://api-docs.helpyousponsor.com/api-reference/files/edit-a-file put /file/{id} # Fetch files for multiple recipients Source: https://api-docs.helpyousponsor.com/api-reference/files/fetch-files-for-multiple-recipients post /files/entities/batch Returns non-mailing-artifact uploads grouped by recipient for the authenticated admin's client. The bulk file permissions drawer uses this endpoint before applying a batch permission change. The request body determines which recipient IDs to inspect and whether current profile images should be included. # Filter recipient files in a program Source: https://api-docs.helpyousponsor.com/api-reference/files/filter-recipient-files-in-a-program post /files/filter/{program_id} Applies advanced recipient filters and returns matching recipients with their file counts for the authenticated admin's client. The file-management UI uses this endpoint to build scoped selections for bulk permission changes and file bundles. Requires admin file access through `user.permissions`. # Get an import upload session Source: https://api-docs.helpyousponsor.com/api-reference/files/get-an-import-upload-session get /admin/import_files/upload-sessions/{upload_session_id} Returns the authenticated user’s staging session and per-file status. Expired sessions are marked expired before the response. A session owned by another user or organization returns404. Requires permission: one of imports_view, imports_manage. # Get bulk operation progress Source: https://api-docs.helpyousponsor.com/api-reference/files/get-bulk-operation-progress get /admin/bulk-edit-operations/{operationId} Returns an organization-visible bulk operation, including progress and paginated failed-record labels. Any authorized admin in the same organization may view it. failed_record_ids is a compatibility sample of at most100 and is empty for event invitations; use failed_records_pagination for the complete failure list. retry_selection is returned only for failed/completed-with-errors commitment or invitation operations whose persisted failure identities are complete. Requires permission: one of groups, admins, forms, manage_programs, programs_view, donors_view, donations, manage_email, email_manager, manage_sms, sms_manager, sms_inbox_view, sms_inbox_reply, sms_inbox_manage, sendblue_manage, mailings_view, mailings_generate, mailings_manage, manage_settings, access_account_settings, access_payment_gateways, tasks_view, tasks_manage, trips_view, events_view, events_checkin, events_finance, events_reports, events_sponsor_manage, imports_view, activity_logs_view, households_view, notes_view, reports_view. # Get CSV import progress Source: https://api-docs.helpyousponsor.com/api-reference/files/get-csv-import-progress get /admin/import/csv/{import_id}/progress Returns the authenticated user’s CSV import progress and bounded waiting-since warnings. Warning details are limited to100; total_warnings and waiting_since_skip_counts preserve overall counts. Completed or failed imports report progress100 even when some rows were skipped or failed. Requires permission: one of imports_view, imports_manage. # Get document upload validation progress Source: https://api-docs.helpyousponsor.com/api-reference/files/get-document-upload-validation-progress get /admin/import_files/document-validation-progress/{validation_job_id} Returns progress and completed validation issues for a document validation job owned by the authenticated admin and client. Completed and failed jobs include file-level validation errors and warnings when present. Requires admin file access through `user.permissions`. # Get donor/recipient import batch progress (deprecated - use /import/batch/{batch_id}/progress) Source: https://api-docs.helpyousponsor.com/api-reference/files/get-donorrecipient-import-batch-progress-deprecated--use-importbatch-progress get /admin/import/donors-recipients/batch/{batch_id}/progress # Get file details Source: https://api-docs.helpyousponsor.com/api-reference/files/get-file-details get /file/{id} # Get files table Source: https://api-docs.helpyousponsor.com/api-reference/files/get-files-table get /files/{type}/{id}/table # Get import batch progress for any batch type, including attendance and enrollment Source: https://api-docs.helpyousponsor.com/api-reference/files/get-import-batch-progress-for-any-batch-type-including-attendance-and-enrollment get /admin/import/batch/{batch_id}/progress # Get import validation progress for recipients and donors Source: https://api-docs.helpyousponsor.com/api-reference/files/get-import-validation-progress-for-recipients-and-donors get /admin/import/validation-progress/{validation_job_id} # Get list of all import batches (payments, donors, recipients) Source: https://api-docs.helpyousponsor.com/api-reference/files/get-list-of-all-import-batches-payments-donors-recipients get /admin/import/batches # Get list of donor/recipient import batches (deprecated) Source: https://api-docs.helpyousponsor.com/api-reference/files/get-list-of-donorrecipient-import-batches-deprecated get /admin/import/donors-recipients/batches Deprecated. Use GET /import/batches with type=donors or type=recipients. # Get list of payment import batches (deprecated) Source: https://api-docs.helpyousponsor.com/api-reference/files/get-list-of-payment-import-batches-deprecated get /admin/import/payments/batches Deprecated. Use GET /import/batches with type=payments. # Get payment import batch progress Source: https://api-docs.helpyousponsor.com/api-reference/files/get-payment-import-batch-progress get /admin/import/payments/batch/{batch_id}/progress # Get payment validation progress Source: https://api-docs.helpyousponsor.com/api-reference/files/get-payment-validation-progress get /admin/import/payments/validation-progress/{validation_job_id} # Get photo upload validation progress Source: https://api-docs.helpyousponsor.com/api-reference/files/get-photo-upload-validation-progress get /admin/import_files/validation-progress/{validation_job_id} Returns progress and completed validation issues for a photo validation job owned by the authenticated admin and client. Completed and failed jobs include row/file-level validation errors and warnings when present. Requires admin file access through `user.permissions`. # Import CSV for a specific program Source: https://api-docs.helpyousponsor.com/api-reference/files/import-csv-for-a-specific-program get /csv_import/{program_id} # Import CSV for a specific program Source: https://api-docs.helpyousponsor.com/api-reference/files/import-csv-for-a-specific-program-1 post /csv_import/{program_id} # Make placeholder picture Source: https://api-docs.helpyousponsor.com/api-reference/files/make-placeholder-picture get /picture/{id}/placeholder # Make profile picture Source: https://api-docs.helpyousponsor.com/api-reference/files/make-profile-picture get /picture/{id}/profile # Post a record upload Source: https://api-docs.helpyousponsor.com/api-reference/files/post-a-record-upload post /admin/recordUpload # Preview a saved import CSV Source: https://api-docs.helpyousponsor.com/api-reference/files/preview-a-saved-import-csv get /admin/import/batch/{batch_id}/csv-preview Returns normalized headers and at most100 data rows from the user-owned saved CSV, respecting the batch’s saved row offset. With no batch_type, IDs are resolved in payments, donors_recipients, then relationships order; specify the family to avoid ambiguity. Remote URLs and unsafe paths are rejected. No records are imported by this request. Requires permission: one of imports_view, imports_manage. # Process the import job for donors and recipients Source: https://api-docs.helpyousponsor.com/api-reference/files/process-the-import-job-for-donors-and-recipients post /csv_process/{program_id} # Process the import job for payments Source: https://api-docs.helpyousponsor.com/api-reference/files/process-the-import-job-for-payments post /csv_process/{program_id}/payments # Process validated document uploads Source: https://api-docs.helpyousponsor.com/api-reference/files/process-validated-document-uploads post /admin/import_files/process-validated-documents/{validation_job_id} Queues the document import job from a completed and valid document validation job owned by the authenticated admin and client. The validation job is deleted after dispatch, and upload-session state is advanced when staged uploads are used. Requires admin file access through `user.permissions`. # Process validated photo uploads Source: https://api-docs.helpyousponsor.com/api-reference/files/process-validated-photo-uploads post /admin/import_files/process-validated/{validation_job_id} Queues upload jobs from a completed and valid photo validation job owned by the authenticated admin and client. The validation job is deleted after jobs are queued, and upload-session state is advanced when staged uploads are used. Requires admin file access through `user.permissions`. # Queue a bulk file permission update Source: https://api-docs.helpyousponsor.com/api-reference/files/queue-a-bulk-file-permission-update patch /files/permissions/bulk Queues a background selection job that updates upload permissions for explicitly selected files, selected recipients, a search result, or an advanced filter. The job may schedule the permission change, generate blurred thumbnails, and notify donors depending on the payload. Requires admin file access through `user.permissions`. # Queue a bulk profile-file assignment Source: https://api-docs.helpyousponsor.com/api-reference/files/queue-a-bulk-profile-file-assignment post /files/profile/bulk Queues a background job that sets or unsets recipient profile photos for the authenticated admin's client. The controller validates that all selected uploads belong to the client, are image files, belong to recipients, and include at most one file per recipient. Requires admin file access through `user.permissions`. # Queue a recipient file deletion bundle Source: https://api-docs.helpyousponsor.com/api-reference/files/queue-a-recipient-file-deletion-bundle post /files/delete-bundle Creates a deletion-history activity for the authenticated admin's client and dispatches a queued job to soft-delete the selected recipient files. The confirmation email is sent after the background deletion finishes. Same handler is mounted on the canonical `/files/delete-bundle` route and requires file access through `user.permissions`. # Queue a recipient file download bundle Source: https://api-docs.helpyousponsor.com/api-reference/files/queue-a-recipient-file-download-bundle post /files/download-bundle Queues a background job that gathers recipient files for the authenticated admin's client and emails the admin a tokenized ZIP download link when the bundle is ready. The endpoint accepts either all files for a program or an explicit list of upload IDs. Same handler is mounted on the canonical `/files/download-bundle` route and requires file access through `user.permissions`. # Queue document imports from a CSV mapping Source: https://api-docs.helpyousponsor.com/api-reference/files/queue-document-imports-from-a-csv-mapping post /admin/import_files/{type}/{program_id}/import-documents Stages uploaded document files and dispatches `ImportDocumentsWithCsvJob` to attach them to recipients or donors using a previously uploaded CSV. The request identifies CSV columns for unique-field matching, source filenames, and permissions. Requires admin file access through `user.permissions`. # Queue photo files for import Source: https://api-docs.helpyousponsor.com/api-reference/files/queue-photo-files-for-import post /admin/import_files/{type}/{program_id} Stages uploaded photo files and dispatches one `UploadSingleFileJob` per file so admins can attach images to recipients or donors by a unique field. The endpoint validates file size and image MIME rules through the photo upload helper before queueing. Requires admin file access through `user.permissions`. # Queue the import job for commitment relationships Source: https://api-docs.helpyousponsor.com/api-reference/files/queue-the-import-job-for-commitment-relationships post /csv_process/{program_id}/relationships # Queue thumbnails for existing uploads Source: https://api-docs.helpyousponsor.com/api-reference/files/queue-thumbnails-for-existing-uploads get /admin/create_thumbnails Finds image uploads without thumbnails and dispatches a thumbnail-generation job for each one. This is an authenticated admin maintenance endpoint exposed in the admin route group, not a cron route. Requires admin file access through `user.permissions`. # Reconcile a legacy payment import summary Source: https://api-docs.helpyousponsor.com/api-reference/files/reconcile-a-legacy-payment-import-summary post /admin/import/payments/batch/{batch_id}/reconcile Queues summary reconciliation for a completed payment batch with skipped rows that actually belong to this batch. Available only when persisted donation counts reveal missing created-row counters; imports with refund or soft-credit inclusion are excluded. Requires permission: one of imports_manage. # Restore an undone import batch Source: https://api-docs.helpyousponsor.com/api-reference/files/restore-an-undone-import-batch post /admin/import/batch/{batch_type}/{batch_id}/restore Restores an eligible user-owned undone batch from soft deletion. payments restores imported gifts and associated source/refund/soft-credit lifecycle rows; donors_recipients restores donors or recipients; relationships restores commitment relationships and recurring mappings. Parent records must be restored first, later source identities/refunds/commitments must not conflict, and pending recipient refresh may block payment restores. Derived search and related-record work is queued. Returns an empty204 response on success. Requires permission: one of imports_manage. # Resume a stalled payment import Source: https://api-docs.helpyousponsor.com/api-reference/files/resume-a-stalled-payment-import post /admin/import/payments/batch/{batch_id}/resume Requeues a pending/processing payment import only after at least two minutes without a progress update. Uses an optimistic claim to reject a concurrent change. Resumes the existing batch, including derived finalization when applicable; no new import batch is created. Requires permission: one of imports_manage. # Resume saved commitment import finalization Source: https://api-docs.helpyousponsor.com/api-reference/files/resume-saved-commitment-import-finalization post /admin/import/relationships/batch/{batch_id}/resume Queues finalization for a failed, non-undone relationship import whose source records are already persisted. It finishes derived search/related-record updates without requiring another CSV upload. Requires permission: one of imports_manage. # Retry payment import recipient reconciliation Source: https://api-docs.helpyousponsor.com/api-reference/files/retry-payment-import-recipient-reconciliation post /admin/import/payments/batch/{batch_id}/retry-recipient-refresh Queues only derived recipient sponsorship refresh work for a previously committed import lifecycle action. Donation mutations are not replayed. Already up-to-date returns200 and queued=false. A refresh currently processing returns409 and queued=false. A newly dispatched retry returns202 and queued=true; the included summary is the pre-dispatch snapshot. Requires permission: one of imports_manage. # Rotate picture Source: https://api-docs.helpyousponsor.com/api-reference/files/rotate-picture get /picture/{id}/rotate # Search recipient files in a program Source: https://api-docs.helpyousponsor.com/api-reference/files/search-recipient-files-in-a-program get /files/search/{program_id} Searches recipients in a program and returns their matching non-mailing-artifact files for the authenticated admin's client. The endpoint is used by file-management drawers to locate uploads by recipient title fields and file metadata. Requires admin file access through `user.permissions`. # Start a batch import for donors or recipients Source: https://api-docs.helpyousponsor.com/api-reference/files/start-a-batch-import-for-donors-or-recipients post /admin/import/donors-recipients/batch # Start a batch import for relationships Source: https://api-docs.helpyousponsor.com/api-reference/files/start-a-batch-import-for-relationships post /admin/import/relationships/batch # Start a batch payment import Source: https://api-docs.helpyousponsor.com/api-reference/files/start-a-batch-payment-import post /admin/import/payments/batch # Undo a donor/recipient import batch (deprecated - use /import/batch/{batch_id}) Source: https://api-docs.helpyousponsor.com/api-reference/files/undo-a-donorrecipient-import-batch-deprecated--use-importbatch- delete /admin/import/donors-recipients/batch/{batch_id} # Undo a payment import batch Source: https://api-docs.helpyousponsor.com/api-reference/files/undo-a-payment-import-batch delete /admin/import/payments/batch/{batch_id} # Undo an import batch for a specific batch type Source: https://api-docs.helpyousponsor.com/api-reference/files/undo-an-import-batch-for-a-specific-batch-type delete /admin/import/batch/{batch_type}/{batch_id} # Upload a file Source: https://api-docs.helpyousponsor.com/api-reference/files/upload-a-file get /file/{type}/{id}/upload # Upload a file Source: https://api-docs.helpyousponsor.com/api-reference/files/upload-a-file-1 post /file/{type}/{id}/upload # Upload a portal session file Source: https://api-docs.helpyousponsor.com/api-reference/files/upload-a-portal-session-file post /frontend/storage/uploads/{client_id}/{session_id} Uploads the multipart file and returns its final public URL/key. Active HTML, JavaScript, XML and SVG content/extensions are rejected. HEIC/HEIF images are converted to JPEG, so use the returned key and filename. Storage or receipt failures return500; invalid files, MIME/key mismatches or conversion failures return422. Requires a current donor/recipient portal session in the URL, or the matching public-add-recipient upload session. Only approved generated basenames, matching entity image keys and trip-task-completions UUID keys are allowed. Valid sessions refresh their lifetime to one hour. Recipient sessions with valid workspace/program/recipient/user context receive an upload_receipt for a subsequent recipient message. # Upload an authenticated workspace file Source: https://api-docs.helpyousponsor.com/api-reference/files/upload-an-authenticated-workspace-file post /storage/uploads Uploads the multipart file and returns its final public URL/key. Active HTML, JavaScript, XML and SVG content/extensions are rejected. HEIC/HEIF images are converted to JPEG, so use the returned key and filename. Storage or receipt failures return500; invalid files, MIME/key mismatches or conversion failures return422. Accepts approved generated basename keys and shared trip/sticker namespaces, current-workspace newsletter keys, validated account-logo/program-placeholder/email-template image keys, and current-workspace donation attachment keys. Donation attachments permit PDF, office documents, text/CSV and common images up to10MiB. This endpoint stores bytes; callers attach the returned key through the owning feature API. Requires permission: one of admins, manage_programs, donors_manage, manage_settings, access_account_settings, access_payment_gateways, imports_manage. # Validate document uploads before import Source: https://api-docs.helpyousponsor.com/api-reference/files/validate-document-uploads-before-import post /admin/import_files/{type}/{program_id}/validate-documents Creates or reuses a document validation job for CSV-mapped document imports without attaching files to records. The endpoint can validate direct multipart files or files already staged in an upload session. Requires admin file access through `user.permissions`. # Validate donor data without persisting to database Source: https://api-docs.helpyousponsor.com/api-reference/files/validate-donor-data-without-persisting-to-database post /admin/import/donors/dry-run # Validate payment data without persisting to database Source: https://api-docs.helpyousponsor.com/api-reference/files/validate-payment-data-without-persisting-to-database post /admin/import/payments/dry-run # Validate photo uploads before import Source: https://api-docs.helpyousponsor.com/api-reference/files/validate-photo-uploads-before-import post /admin/import_files/{program_id}/validate Creates or reuses a file validation job for staged photo imports without persisting uploads to recipient or donor records. The endpoint can validate direct multipart files or files already staged in an upload session. Requires admin file access through `user.permissions`. # Validate recipient data without persisting to database Source: https://api-docs.helpyousponsor.com/api-reference/files/validate-recipient-data-without-persisting-to-database post /admin/import/recipients/dry-run # Validate relationship data without persisting to database Source: https://api-docs.helpyousponsor.com/api-reference/files/validate-relationship-data-without-persisting-to-database post /admin/import/relationships/dry-run # Add a form field Source: https://api-docs.helpyousponsor.com/api-reference/forms/add-a-form-field post /admin/form/field/{id}/{type} Add a new field to a form # Bootstrap data for the edit-form-field UI Source: https://api-docs.helpyousponsor.com/api-reference/forms/bootstrap-data-for-the-edit-form-field-ui get /admin/edit_form_field/{id}/{type} Returns the field record (`Donorfield` when `type=donor`, otherwise `Field`) along with the catalog of allowed field types for that bucket and the active payment gateway snapshot (used to gate credit-card-related field types). Powers the field edit modal in the admin form builder. Requires permission: `manage_programs`. # Bulk-create or bulk-update form fields Source: https://api-docs.helpyousponsor.com/api-reference/forms/bulk-create-or-bulk-update-form-fields post /admin/form/bulk_edit Walks the request body (an array of field-data rows), and per row either creates a new field (`id` missing or 0) or updates the matching field. Stops short and returns the first error response if any single row update/create fails. Queues the tenant-scoped Meilisearch filter refresh and reindex after the database change commits. The exact field-data shape mirrors the single-field create/update payloads (label, key, type, data, permissions, required, is_title, sortable, filter, field_order, etc.). Requires permission: `manage_programs`. # Create a new form Source: https://api-docs.helpyousponsor.com/api-reference/forms/create-a-new-form post /admin/forms # Delete a form Source: https://api-docs.helpyousponsor.com/api-reference/forms/delete-a-form delete /admin/forms/{hysform_id} Delete a form by its id # Delete a form field Source: https://api-docs.helpyousponsor.com/api-reference/forms/delete-a-form-field delete /admin/form/field Delete an existing field in a form # Donor field permissions with per-program overrides Source: https://api-docs.helpyousponsor.com/api-reference/forms/donor-field-permissions-with-per-program-overrides get /admin/program/{program_id}/donor-field-overrides Returns the donor form's full field catalog (custom `Donorfield` rows + standardized fields when `standardizedFieldsEnabled`) with each row's default permissions plus any per-program override stored in `program_permissions`. Powers the per-program permission editor on the program settings screen. Requires permission: `manage_programs`. # Edit a form field Source: https://api-docs.helpyousponsor.com/api-reference/forms/edit-a-form-field put /admin/form/field Edit an existing field in a form # Form Details Source: https://api-docs.helpyousponsor.com/api-reference/forms/form-details get /admin/forms/{hysform_id} Form Details # Form field types Source: https://api-docs.helpyousponsor.com/api-reference/forms/form-field-types get /admin/form/field/{id}/{type} # Get all donor forms by client id Source: https://api-docs.helpyousponsor.com/api-reference/forms/get-all-donor-forms-by-client-id get /donors/{client_id}/forms List donor forms for a client. # Get all forms Source: https://api-docs.helpyousponsor.com/api-reference/forms/get-all-forms get /admin/forms Returns a list of all forms for a specific client # Get donor standardization run status Source: https://api-docs.helpyousponsor.com/api-reference/forms/get-donor-standardization-run-status get /admin/forms/{hysform_id}/standardization/runs/{run_id} Returns one tenant-scoped diagnostic run. By default the response is compact for polling. Set include_results=true to include the summary and at most 100 issue rows. # Get form fields for a program Source: https://api-docs.helpyousponsor.com/api-reference/forms/get-form-fields-for-a-program get /admin/program/{program_id}/form-fields Returns both donor fields and entity fields for a specific program # Get the standardized donor field settings for a donor form Source: https://api-docs.helpyousponsor.com/api-reference/forms/get-the-standardized-donor-field-settings-for-a-donor-form get /admin/forms/{hysform_id}/standard-field-settings Returns the ordered server-authoritative donor field registry with applicability, presentation kind, capabilities, effective configuration, revisions, email policy, and rollout state. Requires form access. # Manage a form Source: https://api-docs.helpyousponsor.com/api-reference/forms/manage-a-form get /admin/forms/{hysform_id}/manage # Persist a reordered form-field list Source: https://api-docs.helpyousponsor.com/api-reference/forms/persist-a-reordered-form-field-list get /admin/form/fields/order/{type} Walks `item[]` from the request and writes its index back to each field's `field_order`, in order. Operates on `Donorfield` rows when `type=donor`, otherwise `Field` rows. Refuses to reorder donor fields that are locked compatibility fields (returns 422). Flushes the relevant per-form caches, clears the cached entity/donor data, and queues the tenant-scoped entity/sponsorship search refresh so title-field display-name order remains current. Verb is GET (legacy ergonomics) — newer integrations should expect this to migrate to PUT/PATCH. Requires permission: `manage_programs`. # Queue a donor standardization audit Source: https://api-docs.helpyousponsor.com/api-reference/forms/queue-a-donor-standardization-audit post /admin/forms/{hysform_id}/standardization/audit Queues the tenant-scoped donor audit and returns its pending run immediately. Poll GET /admin/forms/{hysform_id}/standardization/runs/{run_id} for completion. The legacy GET route remains synchronous for compatibility. # Reset program donor-field visibility overrides Source: https://api-docs.helpyousponsor.com/api-reference/forms/reset-program-donor-field-visibility-overrides delete /admin/program/{program_id}/donor-field-overrides Removes this program’s custom and standardized donor-field permission overrides so inherited donor-form settings apply again. Requires the current expected_program_revision; a stale revision returns409 with the current program_revision. Changed field rows increment their revisions and the program revision increments only when at least one override was removed. Refreshes cached donor field options after commit. Requires permission: one of manage_programs. # Standardization step 1 — audit current state Source: https://api-docs.helpyousponsor.com/api-reference/forms/standardization-step-1-—-audit-current-state get /admin/forms/{hysform_id}/standardization/audit First step of the donor-form standardization rollout. Runs `DonorStandardizationService::audit` to inventory current custom fields against the standardized field catalog, returning the resulting run record plus a fresh rollout payload. Caller's user id is logged on the run. Form must be a donor form belonging to the active client (404 otherwise). Requires permission: `manage_programs`. # Standardization step 2 — preview the migration with a candidate mapping Source: https://api-docs.helpyousponsor.com/api-reference/forms/standardization-step-2-—-preview-the-migration-with-a-candidate-mapping post /admin/forms/{hysform_id}/standardization/preview Dry-run for the standardization migration. Runs `DonorStandardizationService::preview` against the supplied custom-field → standardized-field `mapping` (or empty) and returns the resulting preview run record. No data is written. Body field `mapping` is silently ignored when not an array. Requires permission: `manage_programs`. # Standardization step 3 — queue the data migration Source: https://api-docs.helpyousponsor.com/api-reference/forms/standardization-step-3-—-queue-the-data-migration post /admin/forms/{hysform_id}/standardization/migrate Live migration. Runs `DonorStandardizationService::startMigration` to queue the background job that copies legacy custom-field values into the standardized columns using the supplied mapping. Returns the run record so the UI can poll progress. Mirrors the `previewStandardization` body shape. Requires permission: `manage_programs`. # Standardization step 4 — verify the migrated data Source: https://api-docs.helpyousponsor.com/api-reference/forms/standardization-step-4-—-verify-the-migrated-data post /admin/forms/{hysform_id}/standardization/verify Post-migration verification. Runs `DonorStandardizationService::verify` to compare standardized columns against their legacy custom-field sources for drift, returning the verification run plus a fresh rollout payload. Required to flip the form into the `verified` state before `finalize`. Requires permission: `manage_programs`. # Standardization step 5 — finalize and lock the form Source: https://api-docs.helpyousponsor.com/api-reference/forms/standardization-step-5-—-finalize-and-lock-the-form post /admin/forms/{hysform_id}/standardization/finalize Final step. Pre-checks `buildRolloutEligibility` (returns 422 with the failing reasons when the form is not ready) and then calls `DonorStandardizationService::finalize` to lock the form into the standardized state. Returns the run plus a fresh rollout payload. After this point the legacy custom fields participating in the migration are read-only. Requires permission: `manage_programs`. # Standardization step 6 — roll back the rollout Source: https://api-docs.helpyousponsor.com/api-reference/forms/standardization-step-6-—-roll-back-the-rollout post /admin/forms/{hysform_id}/standardization/rollback Reverses an earlier standardization rollout step. Runs `DonorStandardizationService::rollback` to unlock the form and restore the previous custom-field configuration, returning the rollback run plus a fresh rollout payload. Generally only safe before `finalize` — post-finalize rollback may leave gaps. Requires permission: `manage_programs`. # Update a form Source: https://api-docs.helpyousponsor.com/api-reference/forms/update-a-form put /admin/forms/{hysform_id} Update a form # Upsert a per-program donor-field permission override Source: https://api-docs.helpyousponsor.com/api-reference/forms/upsert-a-per-program-donor-field-permission-override put /admin/program/{program_id}/donor-field-overrides Sets the per-program permission override on a single donor field — either a custom field (via `donorfield_id`) or a standardized field (via `standard_field_key`). Exactly one identifier is required. Null or the field default removes the override. Loaded field and program revisions are required for stale-write protection. Requires permission: `manage_programs`. # Upsert one standardized donor field setting Source: https://api-docs.helpyousponsor.com/api-reference/forms/upsert-one-standardized-donor-field-setting put /admin/forms/{hysform_id}/standard-field-settings Partially updates one configurable standardized donor field. Invalid values return 422; omitted attributes, compatibility mappings, and program overrides are preserved. `expected_revision` is required for stale-write protection. Requires the `forms` permission. # Add a designation to the checkout Source: https://api-docs.helpyousponsor.com/api-reference/frontend/add-a-designation-to-the-checkout post /frontend/checkout/designation/{client_id}/{program_id}/{currency}/{session_id} # Checkout Source: https://api-docs.helpyousponsor.com/api-reference/frontend/checkout get /frontend/order/{client_id}/{program_id}/{session_id} Order to sponsor an entity # Create a new donor and process their donation Source: https://api-docs.helpyousponsor.com/api-reference/frontend/create-a-new-donor-and-process-their-donation post /frontend/checkout/signup/{client_id}/{program_id}/{session_id} # Handle the checkout process for sponsorships Source: https://api-docs.helpyousponsor.com/api-reference/frontend/handle-the-checkout-process-for-sponsorships get /frontend/order/sponsorships/{client_id}/{program_id}/{session_id} # Login a donor and process their donation Source: https://api-docs.helpyousponsor.com/api-reference/frontend/login-a-donor-and-process-their-donation post /frontend/checkout/login/{client_id}/{program_id}/{session_id} # Update the frequency for a specific designation in the checkout Source: https://api-docs.helpyousponsor.com/api-reference/frontend/update-the-frequency-for-a-specific-designation-in-the-checkout put /frontend/checkout/designation/frequency/{client_id}/{program_id}/{designation_id}/{frequency}/{session_id} # View a random entity Source: https://api-docs.helpyousponsor.com/api-reference/frontend/view-a-random-entity get /frontend/entities/random/{client_id}/{program_id} Returns a random entity from a specific client and program # View entity details Source: https://api-docs.helpyousponsor.com/api-reference/frontend/view-entity-details get /frontend/entity/{client_id}/{program_id}/{entity_id}/{session_id} # Acknowledge a fundraising gift Source: https://api-docs.helpyousponsor.com/api-reference/fundraising/acknowledge-a-fundraising-gift post /admin/donation/{donation_id}/acknowledge Records acknowledgement evidence for one readable organization gift and closes matching acknowledgement Work. Do Not Acknowledge gifts are rejected. The operation records work already performed and does not send a receipt. Requires permission: one of donations. # Add a stewardship-plan move Source: https://api-docs.helpyousponsor.com/api-reference/fundraising/add-a-stewardship-plan-move post /admin/fundraising/stewardship-plans/{plan_id}/moves Creates a planned move. The contact defaults to the plan contact and must be eligible; owner must be an active organization user. A supplied version is validated but is not used for creation concurrency. The status field is prohibited. Requires stewardship_major_donor_plans_v1. Relationship-group subjects also require stewardship_relationship_groups_v1. Subject access respects the viewer's donor visibility. Management requires donors_manage/group_all, or donors_view with assignment as this subject's fundraiser; strategy fields follow the same authority. Requires permission: donors_view; plus one of donors_view, donors_manage. # Apply selected relationship-provisioning candidates Source: https://api-docs.helpyousponsor.com/api-reference/fundraising/apply-selected-relationship-provisioning-candidates post /admin/fundraising/relationship-provisioning/apply Requires stewardship_relationship_groups_v1 and unrestricted donor-form visibility. Revalidates the exact preview fingerprint and applies 1–100 available candidate keys independently; failures are reported per candidate and successful accounts are retained. Requires permission: donors_view; plus one of manage_settings, access_account_settings; plus one of donors_manage. # Approve a handwritten-card order Source: https://api-docs.helpyousponsor.com/api-reference/fundraising/approve-a-handwritten-card-order post /admin/handwrytten/orders/{handwryttenOrderId}/approve Approves a current, unblocked commercial quote and records approval evidence. Rejected cards require a new draft; submitted orders cannot gain a new local approval. An already-approved submitted order is returned unchanged. Requires the configured Handwrytten feature (normally handwrytten_mailings). Requires permission: one of mailings_manage, manage_email. # Archive a stewardship plan Source: https://api-docs.helpyousponsor.com/api-reference/fundraising/archive-a-stewardship-plan post /admin/fundraising/stewardship-plans/{plan_id}/archive Uses the plan version and required reason. Archives the plan and saves an annual review; history is retained. Requires stewardship_major_donor_plans_v1. Relationship-group subjects also require stewardship_relationship_groups_v1. Subject access respects the viewer's donor visibility. Management requires donors_manage/group_all, or donors_view with assignment as this subject's fundraiser; strategy fields follow the same authority. Requires permission: donors_view; plus one of donors_view, donors_manage. # Assign a donor or household relationship manager Source: https://api-docs.helpyousponsor.com/api-reference/fundraising/assign-a-donor-or-household-relationship-manager put /admin/fundraising/caseload/{donor_id}/assignment Assigns an eligible resource-authorized fundraiser; relationship_manager_user_id takes precedence over legacy assigned_fundraiser_user_id. Null/omitted clears assignment. Household scope applies to the whole household. Reconciles plan authority and owners; a committed assignment can return projection_refresh_pending. Requires permission: donors_view; plus one of donors_manage. # Assign a donor or household relationship manager Source: https://api-docs.helpyousponsor.com/api-reference/fundraising/assign-a-donor-or-household-relationship-manager-1 put /admin/fundraising/portfolio/{donor_id}/assignment Assigns an eligible resource-authorized fundraiser; relationship_manager_user_id takes precedence over legacy assigned_fundraiser_user_id. Null/omitted clears assignment. Household scope applies to the whole household. Reconciles plan authority and owners; a committed assignment can return projection_refresh_pending. Requires permission: donors_view; plus one of donors_manage. # Assign a giving-anniversary owner Source: https://api-docs.helpyousponsor.com/api-reference/fundraising/assign-a-giving-anniversary-owner post /admin/giving-anniversaries/opportunities/{id}/assign Assigns a tenant-owned staff user as the manual owner; omit or set owner_user_id=null to clear the owner. Requires permission: donors_view; plus one of donors_manage, donations, interactions_manage, mailings_generate, mailings_manage, manage_email. # Assign a stewardship-relationship manager Source: https://api-docs.helpyousponsor.com/api-reference/fundraising/assign-a-stewardship-relationship-manager put /admin/fundraising/relationship-groups/{relationship_group_id}/assignment Requires stewardship_relationship_groups_v1. Assigns an eligible fundraiser across the relationship's governed donor resources; null clears explicit assignment. Rechecks plan impact and refreshes projection/owners; committed recovery warnings may be included. Requires permission: donors_view; plus one of donors_manage. # Cancel a stewardship-plan move Source: https://api-docs.helpyousponsor.com/api-reference/fundraising/cancel-a-stewardship-plan-move post /admin/fundraising/stewardship-plans/{plan_id}/moves/{move_id}/cancel Uses the move version and requires a non-empty reason. Only planned/in-progress moves can be canceled; cancellation retains immutable history. Requires stewardship_major_donor_plans_v1. Relationship-group subjects also require stewardship_relationship_groups_v1. Subject access respects the viewer's donor visibility. Management requires donors_manage/group_all, or donors_view with assignment as this subject's fundraiser; strategy fields follow the same authority. Requires permission: donors_view; plus one of donors_view, donors_manage. # Cancel a submitted handwritten-card order Source: https://api-docs.helpyousponsor.com/api-reference/fundraising/cancel-a-submitted-handwritten-card-order post /admin/handwrytten/orders/{handwryttenOrderId}/cancel Requests provider cancellation for an order not yet sent/delivered/completed. Local drafts cannot use this operation. Confirmed cancellation updates status and restores eligible reserved/spent balance; provider refusal returns validation error. Requires the configured Handwrytten feature (normally handwrytten_mailings). Requires permission: one of mailings_manage, manage_email. # Complete a stewardship-plan move Source: https://api-docs.helpyousponsor.com/api-reference/fundraising/complete-a-stewardship-plan-move post /admin/fundraising/stewardship-plans/{plan_id}/moves/{move_id}/complete Uses the move version. Completion defaults to manual; task requires a completed linked Task and interaction requires linked completion evidence. Requires stewardship_major_donor_plans_v1. Relationship-group subjects also require stewardship_relationship_groups_v1. Subject access respects the viewer's donor visibility. Management requires donors_manage/group_all, or donors_view with assignment as this subject's fundraiser; strategy fields follow the same authority. Requires permission: donors_view; plus one of donors_view, donors_manage. # Create a handwritten-card draft and quote Source: https://api-docs.helpyousponsor.com/api-reference/fundraising/create-a-handwritten-card-draft-and-quote post /admin/handwrytten/drafts Requires message_template or message. Resolves optional donor/mailing/Work sources, eligible country, sender defaults, card/font, merge fields, suppression, budget and current customer price. A created blocked draft returns 201 with blocking reasons; it has not been approved or sent. Source recipients must agree and active duplicates are refused. Requires the configured Handwrytten feature (normally handwrytten_mailings). Requires permission: one of mailings_generate, mailings_manage, manage_email. # Create a handwritten-card stewardship rule Source: https://api-docs.helpyousponsor.com/api-reference/fundraising/create-a-handwritten-card-stewardship-rule post /admin/handwrytten/rules Creates a rule, inactive by default. Trigger/action/approval/budget configurations are saved as supplied. Giving and sponsorship anniversary triggers belong to the canonical anniversary queue. Requires the configured Handwrytten feature (normally handwrytten_mailings). Requires permission: one of account, manage_settings, mailings_manage, access_account_settings (raw capability). # Create a stewardship plan Source: https://api-docs.helpyousponsor.com/api-reference/fundraising/create-a-stewardship-plan post /admin/fundraising/stewardship-plans Creates a draft qualifying or managed plan for one relationship and period. Qualifying plans apply the ten-step qualification template by default. Overlapping non-archived subject scope conflicts; action_donor_id must be eligible for this subject. Requires stewardship_major_donor_plans_v1. Relationship-group subjects also require stewardship_relationship_groups_v1. Subject access respects the viewer's donor visibility. Management requires donors_manage/group_all, or donors_view with assignment as this subject's fundraiser; strategy fields follow the same authority. Requires permission: donors_view; plus one of donors_view, donors_manage. # Create a stewardship relationship Source: https://api-docs.helpyousponsor.com/api-reference/fundraising/create-a-stewardship-relationship post /admin/fundraising/relationship-groups Requires stewardship_relationship_groups_v1. Creates an active group with one unique donor/household core and up to100 distinct links. All-qualified giving vehicles can belong to one active group only. Material plan impact requires a current lifecycle preview and explicit repairs. Requires permission: donors_view; plus one of donors_manage. # Deactivate a stewardship relationship Source: https://api-docs.helpyousponsor.com/api-reference/fundraising/deactivate-a-stewardship-relationship delete /admin/fundraising/relationship-groups/{relationship_group_id} Requires stewardship_relationship_groups_v1. Deactivates while retaining historical links, removes live portfolio projection and reconciles affected plans/owners. Plan repairs/confirmation are required when material impact exists. Requires permission: donors_view; plus one of donors_manage. # Dismiss a giving-anniversary opportunity Source: https://api-docs.helpyousponsor.com/api-reference/fundraising/dismiss-a-giving-anniversary-opportunity post /admin/giving-anniversaries/opportunities/{id}/dismiss Marks the work item dismissed and records the supplied reason/note in lifecycle evidence. Requires permission: donors_view; plus one of donors_manage, donations, interactions_manage, mailings_generate, mailings_manage, manage_email. # Download a handwriting-preview font Source: https://api-docs.helpyousponsor.com/api-reference/fundraising/download-a-handwriting-preview-font get /admin/handwrytten/orders/{handwryttenOrderId}/proof/font Streams the available font for the order from its matching active catalog; returns 404 when no preview asset exists and 502 when the provider asset cannot be downloaded. Requires the configured Handwrytten feature (normally handwrytten_mailings). Requires permission: one of groups, admins, forms, manage_programs, programs_view, donors_view, donations, manage_email, email_manager, manage_sms, sms_manager, sms_inbox_view, sms_inbox_reply, sms_inbox_manage, sendblue_manage, mailings_view, mailings_generate, mailings_manage, manage_settings, access_account_settings, access_payment_gateways, tasks_view, tasks_manage, trips_view, events_view, events_checkin, events_finance, events_reports, events_sponsor_manage, imports_view, activity_logs_view, households_view, notes_view, reports_view. # Export a fundraising cohort bucket Source: https://api-docs.helpyousponsor.com/api-reference/fundraising/export-a-fundraising-cohort-bucket get /admin/fundraising/cohorts/{bucket}/export Streams the entire permitted bucket as CSV with donor/household and comparison amount fields. Requires permission: one of donors_view. # Export a personal engagement worksheet Source: https://api-docs.helpyousponsor.com/api-reference/fundraising/export-a-personal-engagement-worksheet get /admin/fundraising/portfolio/md-pep/export Requires stewardship_major_donor_plans_v1. Downloads an XLSX for the complete permitted portfolio selection, with the same year, 2,000-row, currency and private-strategy rules as the worksheet. Requires permission: one of donors_view. # Export fundraising relationship contacts Source: https://api-docs.helpyousponsor.com/api-reference/fundraising/export-fundraising-relationship-contacts get /admin/fundraising/interactions/export Streams all permitted canonical contact rows as CSV with meaningfulness and manager fields. Respects current viewer privacy; does not send communications. Requires permission: one of donors_view. # Export fundraising stewardship Work Source: https://api-docs.helpyousponsor.com/api-reference/fundraising/export-fundraising-stewardship-work get /admin/fundraising/work-items/export Streams the full permitted Work selection as CSV with owner/source fields, respecting relationship and plan-feature visibility. Requires permission: one of donors_view. # Export fundraising transactions Source: https://api-docs.helpyousponsor.com/api-reference/fundraising/export-fundraising-transactions get /admin/fundraising/transactions/export Streams the entire permitted transaction selection as CSV, including acknowledgement and method fields. Formula-leading cells are escaped. Requires permission: one of donors_view. # Export giving-anniversary opportunities Source: https://api-docs.helpyousponsor.com/api-reference/fundraising/export-giving-anniversary-opportunities get /admin/giving-anniversaries/opportunities/export Downloads CSV rows for the same permitted anniversary, relationship, milestone and giving-gap filters as the queue. Cells are escaped against spreadsheet formula execution. Requires permission: one of donors_view. # Install fundraising default saved views Source: https://api-docs.helpyousponsor.com/api-reference/fundraising/install-fundraising-default-saved-views post /admin/fundraising/install-default-views Creates or restores the Upcoming Giving Anniversaries view, idempotently by organization/name/module; returns ids and which views were newly created. Requires permission: donors_view; plus one of reports_manage, manage_settings. # Link a Task to a stewardship move Source: https://api-docs.helpyousponsor.com/api-reference/fundraising/link-a-task-to-a-stewardship-move put /admin/fundraising/stewardship-plans/{plan_id}/moves/{move_id}/task Uses the move version. The Task must be visible, belong to this organization and have the move action contact as its primary donor. Synchronizes task completion evidence. Requires stewardship_major_donor_plans_v1. Relationship-group subjects also require stewardship_relationship_groups_v1. Subject access respects the viewer's donor visibility. Management requires donors_manage/group_all, or donors_view with assignment as this subject's fundraiser; strategy fields follow the same authority. Requires permission: donors_view; plus one of donors_view, donors_manage. # Link interaction evidence to a stewardship move Source: https://api-docs.helpyousponsor.com/api-reference/fundraising/link-interaction-evidence-to-a-stewardship-move post /admin/fundraising/stewardship-plans/{plan_id}/moves/{move_id}/evidence Uses the move version. Evidence must be accessible and linked to its action contact. Completion evidence completes the move; future or canceled calendar events cannot provide completion. Linking an existing record updates its role. Requires stewardship_major_donor_plans_v1. Relationship-group subjects also require stewardship_relationship_groups_v1. Subject access respects the viewer's donor visibility. Management requires donors_manage/group_all, or donors_view with assignment as this subject's fundraiser; strategy fields follow the same authority. Requires permission: donors_view; plus one of donors_view, donors_manage. # List available handwritten-card catalog items Source: https://api-docs.helpyousponsor.com/api-reference/fundraising/list-available-handwritten-card-catalog-items get /admin/handwrytten/catalog Returns active catalog items grouped by item_type, optionally filtered by type. Managed catalog uses public stock; no active catalog returns an empty array. Requires the configured Handwrytten feature (normally handwrytten_mailings). Requires permission: one of access_account_settings, manage_settings, mailings_view, mailings_generate, mailings_manage, manage_email. # List eligible relationship managers Source: https://api-docs.helpyousponsor.com/api-reference/fundraising/list-eligible-relationship-managers get /admin/fundraising/fundraisers Returns role/resource-eligible candidates, retaining current assignees who now need reassignment. Optional donor/household/group scope requires matching donor visibility. Requires permission: one of donors_view. # List eligible relationship managers Source: https://api-docs.helpyousponsor.com/api-reference/fundraising/list-eligible-relationship-managers-1 get /admin/fundraising/relationship-managers Returns role/resource-eligible candidates, retaining current assignees who now need reassignment. Optional donor/household/group scope requires matching donor visibility. Requires permission: one of donors_view. # List eligible unacknowledged gifts Source: https://api-docs.helpyousponsor.com/api-reference/fundraising/list-eligible-unacknowledged-gifts get /admin/fundraising/unacknowledged-gifts Returns the transaction contract with unacknowledged and qualified scope enforced, excluding Do Not Acknowledge gifts and respecting the stewardship work policy. Requires permission: one of donors_view. # List fundraising caseload Source: https://api-docs.helpyousponsor.com/api-reference/fundraising/list-fundraising-caseload get /admin/fundraising/caseload Legacy alias of the portfolio list with the same projection, household, relationship, planning and donor-visibility rules. Requires permission: one of donors_view. # List fundraising portfolio relationships Source: https://api-docs.helpyousponsor.com/api-reference/fundraising/list-fundraising-portfolio-relationships get /admin/fundraising/portfolio Lists ready projected donors, households or relationship groups with attributed giving, retention, contact risk and optional planning summaries. Defaults to configured household grouping. Planning filters apply only with the plan feature enabled. Requires permission: one of donors_view. # List fundraising relationship contacts Source: https://api-docs.helpyousponsor.com/api-reference/fundraising/list-fundraising-relationship-contacts get /admin/fundraising/interactions Lists canonical qualifying contacts with viewer-specific privacy filtering; optional meaningful filter narrows rows while summary retains the contact scope. Returns comparison statistics when a comparison period was selected. Requires permission: one of donors_view. # List fundraising stewardship Work Source: https://api-docs.helpyousponsor.com/api-reference/fundraising/list-fundraising-stewardship-work get /admin/fundraising/work-items Pages persisted Work with status/type facets and projection freshness. Plan move Work is included only when its feature is enabled and plan summary is readable; can_manage_plan controls the permitted action. Requires permission: one of donors_view. # List fundraising transactions Source: https://api-docs.helpyousponsor.com/api-reference/fundraising/list-fundraising-transactions get /admin/fundraising/transactions Lists scoped gift ledger rows and complete filtered net totals. Qualified/exceptions/all status scopes and acknowledgement backlog/period scope are distinct. Currency and resolved method labels are returned per gift. Requires permission: one of donors_view. # List giving-anniversary opportunities Source: https://api-docs.helpyousponsor.com/api-reference/fundraising/list-giving-anniversary-opportunities get /admin/giving-anniversaries/opportunities Lists permission-scoped anniversary work items, due items first. Default status includes active opportunities; status=all includes terminal items. Timing narrows the active tab while summary counts retain the wider status scope. Requires permission: one of donors_view. # List handwritten-card orders Source: https://api-docs.helpyousponsor.com/api-reference/fundraising/list-handwritten-card-orders get /admin/handwrytten/queue Returns newest-first order projections with approval/status/queue-state filters and current operational readiness. Practice verification appears as verification_complete in item status. Requires the configured Handwrytten feature (normally handwrytten_mailings). Requires permission: one of mailings_view, mailings_generate, mailings_manage, manage_email. # List handwritten-card stewardship rules Source: https://api-docs.helpyousponsor.com/api-reference/fundraising/list-handwritten-card-stewardship-rules get /admin/handwrytten/rules Lists organization-owned first/major-gift and lapsed-donor rules, newest first. Giving anniversaries use the canonical anniversary queue. Requires the configured Handwrytten feature (normally handwrytten_mailings). Requires permission: one of account, manage_settings, mailings_manage, access_account_settings (raw capability). # List one fundraising cohort bucket Source: https://api-docs.helpyousponsor.com/api-reference/fundraising/list-one-fundraising-cohort-bucket get /admin/fundraising/cohorts/{bucket} Pages one financial-ledger cohort. include_transactions adds up to100 gift rows per side to each row. An unknown bucket returns an empty selection. Requires permission: one of donors_view. # List stewardship-plan reviews Source: https://api-docs.helpyousponsor.com/api-reference/fundraising/list-stewardship-plan-reviews get /admin/fundraising/stewardship-plans/{plan_id}/reviews Requires can_view_strategy in addition to summary access. Returns newest review first; redacted summaries remain placeholders. Requires stewardship_major_donor_plans_v1. Relationship-group subjects also require stewardship_relationship_groups_v1. Subject access respects the viewer's donor visibility. Requires permission: one of donors_view. # List stewardship relationships Source: https://api-docs.helpyousponsor.com/api-reference/fundraising/list-stewardship-relationships get /admin/fundraising/relationship-groups Requires stewardship_relationship_groups_v1. Lists active readable relationships, core members and typed links, ordered by display name. Requires permission: one of donors_view. # Mark a giving anniversary acted Source: https://api-docs.helpyousponsor.com/api-reference/fundraising/mark-a-giving-anniversary-acted post /admin/giving-anniversaries/opportunities/{id}/mark-acted Records the staff action and note, sets acted status and timestamp and clears snooze/dismissal state. This marks work performed; it does not send a message. Requires permission: donors_view; plus one of donors_manage, donations, interactions_manage, mailings_generate, mailings_manage, manage_email. # Prepare a lost-donor reactivation action Source: https://api-docs.helpyousponsor.com/api-reference/fundraising/prepare-a-lost-donor-reactivation-action post /admin/fundraising/cohorts/{bucket}/reactivation Only bucket=lost_donors is supported. Enabled action may prepare an audience, install a saved cohort view or create deduplicated reactivation Work, optionally routed to relationship managers. Does not send outreach. Requires permission: donors_view; plus one of donors_manage. # Preview a fundraising stewardship digest Source: https://api-docs.helpyousponsor.com/api-reference/fundraising/preview-a-fundraising-stewardship-digest get /admin/fundraising/digest/preview Returns current configured digest settings, overview metrics/alerts and25 Work rows. This operation does not send a digest. Requires permission: one of donors_view. # Preview relationship changes affecting stewardship plans Source: https://api-docs.helpyousponsor.com/api-reference/fundraising/preview-relationship-changes-affecting-stewardship-plans post /admin/fundraising/stewardship-plans/lifecycle-impact Requires the relationship-groups feature and donors_manage. Command and operation must match. Returns affected scopes, collisions and repairs plus a five-minute impact_version; this preview does not perform the proposed mutation. Requires stewardship_major_donor_plans_v1. Relationship-group subjects also require stewardship_relationship_groups_v1. Subject access respects the viewer's donor visibility. Requires permission: donors_view; plus one of donors_manage. # Preview stewardship relationship provisioning Source: https://api-docs.helpyousponsor.com/api-reference/fundraising/preview-stewardship-relationship-provisioning get /admin/fundraising/relationship-provisioning/preview Requires stewardship_relationship_groups_v1 and unrestricted donor-form visibility. Reads enabled reciprocal relationship mappings and soft-credit evidence, returning available/blocked/review candidates with a policy/evidence fingerprint. Does not create groups. Requires permission: one of donors_view. # Purchase or resume a Postal Mail balance pack Source: https://api-docs.helpyousponsor.com/api-reference/fundraising/purchase-or-resume-a-postal-mail-balance-pack post /admin/handwrytten/credits/purchase Charges the organization saved billing method for a configured pack and returns its successful ledger entry. Requires raw access_payment_gateways and complete funding readiness. Reuse idempotency_key, or pending_purchase_reference from credits, to resume an existing attempt; pending/manual-review/terminal payment outcomes return 422 rather than a successful top-up. Requires the configured Handwrytten feature (normally handwrytten_mailings). Requires permission: access_payment_gateways (raw capability). # Queue bulk fundraising gift acknowledgement Source: https://api-docs.helpyousponsor.com/api-reference/fundraising/queue-bulk-fundraising-gift-acknowledgement post /admin/donations/acknowledge Returns202 with a durable operation receipt. Supply donation_ids, or select_all_matching=true with validated transaction filters. Selection is restricted to readable unacknowledged gifts and excludes Do Not Acknowledge. Poll status_url for completion; queue acceptance does not imply gifts are already updated. Requires permission: one of donations. # Read a donor comparison-period gift evidence Source: https://api-docs.helpyousponsor.com/api-reference/fundraising/read-a-donor-comparison-period-gift-evidence get /admin/fundraising/transactions/donor/{donor_id}/evidence Returns up to100 individual donor gift rows per current/comparison window plus complete summaries. Defaults status_scope to all; does not expand to household sibling gifts. Requires permission: one of donors_view. # Read a donor giving-anniversary summary Source: https://api-docs.helpyousponsor.com/api-reference/fundraising/read-a-donor-giving-anniversary-summary get /admin/donors/{donor_id}/giving-anniversaries Returns canonical milestone signals and up to ten readable opportunities for this donor. Shared household/relationship evidence is exposed only when the viewer can read the whole subject. Requires permission: one of donors_view. # Read a donor stewardship-relationship memberships Source: https://api-docs.helpyousponsor.com/api-reference/fundraising/read-a-donor-stewardship-relationship-memberships get /admin/fundraising/relationship-groups/for-donor/{donor_id} Returns readable core, household and linked relationships for a live donor. The first relationship is ranked by current donor role. This method has no direct relationship-feature gate. Requires permission: one of donors_view. # Read a fundraising donor profile Source: https://api-docs.helpyousponsor.com/api-reference/fundraising/read-a-fundraising-donor-profile get /admin/fundraising/caseload/{donor_id} Returns ready donor relationship facts, eligible action contacts and recent gifts/attribution/interactions. Requires readable donor relationship closure; private email details and unreadable linked groups are excluded. Requires permission: one of donors_view. # Read a fundraising donor profile Source: https://api-docs.helpyousponsor.com/api-reference/fundraising/read-a-fundraising-donor-profile-1 get /admin/fundraising/portfolio/{donor_id} Returns ready donor relationship facts, eligible action contacts and recent gifts/attribution/interactions. Requires readable donor relationship closure; private email details and unreadable linked groups are excluded. Requires permission: one of donors_view. # Read a fundraising household profile Source: https://api-docs.helpyousponsor.com/api-reference/fundraising/read-a-fundraising-household-profile get /admin/fundraising/portfolio/household/{household_id} Returns aggregated ready household facts, member contacts and recent relationship evidence. Every household member must be readable. Requires permission: one of donors_view. # Read a fundraising relationship profile Source: https://api-docs.helpyousponsor.com/api-reference/fundraising/read-a-fundraising-relationship-profile get /admin/fundraising/relationship-groups/{relationship_group_id}/profile Requires stewardship_relationship_groups_v1 and a ready portfolio projection. Returns relationship-attributed facts and permitted contact evidence for the core and giving vehicles. Requires permission: one of donors_view. # Read a giving-anniversary opportunity Source: https://api-docs.helpyousponsor.com/api-reference/fundraising/read-a-giving-anniversary-opportunity get /admin/giving-anniversaries/opportunities/{id} Reads one permitted work item with refreshed action-contact readiness, source giving information and reverse-chronological lifecycle events. Requires permission: one of donors_view. # Read a handwritten-card proof Source: https://api-docs.helpyousponsor.com/api-reference/fundraising/read-a-handwritten-card-proof get /admin/handwrytten/orders/{handwryttenOrderId}/proof Returns resolved message, address checks, matching artwork/handwriting preview and blocking reasons for one organization-owned order. Requires the configured Handwrytten feature (normally handwrytten_mailings). Requires permission: one of mailings_view, mailings_generate, mailings_manage, manage_email. # Read a personal engagement worksheet Source: https://api-docs.helpyousponsor.com/api-reference/fundraising/read-a-personal-engagement-worksheet get /admin/fundraising/portfolio/md-pep Requires stewardship_major_donor_plans_v1. Reads the complete selected portfolio to calculate currency-aware totals, then pages worksheet rows. Plan period must stay within one calendar year; at most 2,000 complete search matches. Strategy/month moves appear only for manageable plans. Requires permission: one of donors_view. # Read a stewardship-plan workspace Source: https://api-docs.helpyousponsor.com/api-reference/fundraising/read-a-stewardship-plan-workspace get /admin/fundraising/stewardship-plans/{plan_id} Returns summary metrics and permission-dependent strategy, move and review detail. Opening records a workspace telemetry event. Requires stewardship_major_donor_plans_v1. Relationship-group subjects also require stewardship_relationship_groups_v1. Subject access respects the viewer's donor visibility. Requires permission: one of donors_view. # Read a stewardship relationship Source: https://api-docs.helpyousponsor.com/api-reference/fundraising/read-a-stewardship-relationship get /admin/fundraising/relationship-groups/{relationship_group_id} Requires stewardship_relationship_groups_v1 and full subject readability. Returns core, links and detailed missing-attribution evidence. Requires permission: one of donors_view. # Read fundraising donor cohorts Source: https://api-docs.helpyousponsor.com/api-reference/fundraising/read-fundraising-donor-cohorts get /admin/fundraising/cohorts Compares qualified financial-ledger donor/household totals across current and comparison windows using configured upgrade/downgrade thresholds. Returns summaries/explanation and up to50 rows per bucket. Requires permission: one of donors_view. # Read fundraising filter options Source: https://api-docs.helpyousponsor.com/api-reference/fundraising/read-fundraising-filter-options get /admin/fundraising/filter-options Returns visible states, comparison modes, manager candidates, acknowledgement sources and reporting field definitions. Requires permission: one of donors_view. # Read fundraising hub settings Source: https://api-docs.helpyousponsor.com/api-reference/fundraising/read-fundraising-hub-settings get /admin/fundraising/settings Returns canonical settings, normalized defaults, setup state and this user's comparison default. Requires permission: one of donors_view. # Read fundraising overview metrics Source: https://api-docs.helpyousponsor.com/api-reference/fundraising/read-fundraising-overview-metrics get /admin/fundraising/overview Computes current/comparison financial-ledger and contact metrics, stewardship alerts and cohort summaries. Uses a short user/filter/settings cache; refresh bypasses it. Relationship donor visibility and plan feature permissions apply. Requires permission: one of donors_view. # Read fundraising reporting field definitions Source: https://api-docs.helpyousponsor.com/api-reference/fundraising/read-fundraising-reporting-field-definitions get /admin/fundraising/reporting-fields Returns supported donor-report fields and the default giving-anniversary saved-view specification. Requires permission: one of donors_view. # Read giving-anniversary settings Source: https://api-docs.helpyousponsor.com/api-reference/fundraising/read-giving-anniversary-settings get /admin/giving-anniversaries/settings Returns canonical anniversary configuration with organization timezone, milestone and digest defaults. Requires permission: one of donors_view. # Read handwritten-card outcome attribution Source: https://api-docs.helpyousponsor.com/api-reference/fundraising/read-handwritten-card-outcome-attribution get /admin/handwrytten/attribution Defaults to the last 90 days and governance outcome window. Refreshes stored gift associations on a cache miss; refresh bypasses the configured short cache. Reports observed subsequent giving and a matched-control comparison, excluding failed/refunded/nonpositive gifts. Requires the configured Handwrytten feature (normally handwrytten_mailings). Requires permission: one of mailings_view, mailings_generate, mailings_manage, manage_email, reports_view, reports_manage. # Read handwritten-card spending governance Source: https://api-docs.helpyousponsor.com/api-reference/fundraising/read-handwritten-card-spending-governance get /admin/handwrytten/governance Returns workspace spend caps, approval requirements, suppression, deduplication and address-verification policy; creates defaults when absent. Requires the configured Handwrytten feature (normally handwrytten_mailings). Requires permission: one of account, manage_settings, mailings_manage, access_account_settings (raw capability). # Read handwritten-card workspace settings Source: https://api-docs.helpyousponsor.com/api-reference/fundraising/read-handwritten-card-workspace-settings get /admin/handwrytten/settings Returns saved defaults, spending governance, catalog counts and Postal Mail balance with separate funding/fulfillment readiness. May create default preference/governance rows; reading does not grant balance. Requires the configured Handwrytten feature (normally handwrytten_mailings). Requires permission: one of access_account_settings, manage_settings, mailings_view, mailings_generate, mailings_manage, manage_email. # Read plans for a relationship subject Source: https://api-docs.helpyousponsor.com/api-reference/fundraising/read-plans-for-a-relationship-subject get /admin/fundraising/stewardship-plans/subjects/{subject_type}/{subject_id} Returns the latest non-archived matching plan and ten-plan history. The date overlap filter applies only when both period dates are supplied. Requires stewardship_major_donor_plans_v1. Relationship-group subjects also require stewardship_relationship_groups_v1. Subject access respects the viewer's donor visibility. Requires permission: one of donors_view. # Read Postal Mail balance Source: https://api-docs.helpyousponsor.com/api-reference/fundraising/read-postal-mail-balance get /admin/handwrytten/credits Returns available/reserved cents, configured balance packs, auto-reload state, a resumable pending purchase and monthly activity. Reading does not create a free grant. Requires the configured Handwrytten feature (normally handwrytten_mailings). Requires permission: one of access_account_settings, manage_settings, mailings_view, mailings_generate, mailings_manage, manage_email. # Record a stewardship-plan review Source: https://api-docs.helpyousponsor.com/api-reference/fundraising/record-a-stewardship-plan-review post /admin/fundraising/stewardship-plans/{plan_id}/reviews Uses and increments the plan version. Records an append-only review; strategy reviews also refresh strategy-reviewed timestamps. Requires stewardship_major_donor_plans_v1. Relationship-group subjects also require stewardship_relationship_groups_v1. Subject access respects the viewer's donor visibility. Management requires donors_manage/group_all, or donors_view with assignment as this subject's fundraiser; strategy fields follow the same authority. Requires permission: donors_view; plus one of donors_view, donors_manage. # Record a stewardship Work completion Source: https://api-docs.helpyousponsor.com/api-reference/fundraising/record-a-stewardship-work-completion post /admin/handwrytten/work-items/{workItemId}/complete Requires readable Work/donor scope. Logs a manual interaction and acknowledges eligible selected gifts. For handwritten_card, supply an existing order or draft fields; unaccepted/practice cards return pending_submission and leave work/gifts incomplete until live acceptance. Replays preserve interaction and gift selection. Other channels record work already performed; this operation does not send email or SMS. The Handwrytten feature is required only for channel=handwritten_card or a supplied handwrytten_order_id. Requires permission: donors_view; plus one of donors_manage, donations, interactions_manage, mailings_generate, mailings_manage, manage_email. # Refresh handwritten-card delivery status Source: https://api-docs.helpyousponsor.com/api-reference/fundraising/refresh-handwritten-card-delivery-status post /admin/handwrytten/orders/{handwryttenOrderId}/sync-status Polls the recorded provider connection for an assigned vendor order and reconciles monotonic delivery state, confirmed cancellation/refund and pending work completion. Does not resubmit the card. Requires the configured Handwrytten feature (normally handwrytten_mailings). Requires permission: one of mailings_manage, manage_email. # Refresh the handwritten-card catalog Source: https://api-docs.helpyousponsor.com/api-reference/fundraising/refresh-the-handwritten-card-catalog post /admin/handwrytten/catalog/sync Synchronously fetches and saves the selected provider catalog, country metadata and defaults. Managed artwork is public stock, excluding private designs/inserts/signatures. Changed quote inputs invalidate unapproved drafts. Stale concurrent refreshes cannot replace newer connection state. Requires the configured Handwrytten feature (normally handwrytten_mailings). Requires permission: one of account, manage_settings, mailings_manage, access_account_settings (raw capability). # Reject a handwritten-card order Source: https://api-docs.helpyousponsor.com/api-reference/fundraising/reject-a-handwritten-card-order post /admin/handwrytten/orders/{handwryttenOrderId}/reject Rejects a local order and records the optional reason. Orders already submitted or being submitted cannot be rejected locally. Requires the configured Handwrytten feature (normally handwrytten_mailings). Requires permission: one of mailings_manage, manage_email. # Remove a fundraising gift acknowledgement Source: https://api-docs.helpyousponsor.com/api-reference/fundraising/remove-a-fundraising-gift-acknowledgement post /admin/donation/{donation_id}/unacknowledge Requires a reason, clears the acknowledgement and retains prior evidence in its audit context. Reconciles corresponding acknowledgement Work. Requires permission: one of donations. # Reopen a giving-anniversary opportunity Source: https://api-docs.helpyousponsor.com/api-reference/fundraising/reopen-a-giving-anniversary-opportunity post /admin/giving-anniversaries/opportunities/{id}/reopen Returns a terminal/snoozed item to its date-derived upcoming, due or missed state. Reopening a household or relationship with no available member returns a conflict. Requires permission: donors_view; plus one of donors_manage, donations, interactions_manage, mailings_generate, mailings_manage, manage_email. # Reopen a stewardship-plan move Source: https://api-docs.helpyousponsor.com/api-reference/fundraising/reopen-a-stewardship-plan-move post /admin/fundraising/stewardship-plans/{plan_id}/moves/{move_id}/reopen Uses the move version. Restores planned by default or in_progress when permitted. Canceled moves remain immutable; unlink completion interaction evidence before reopening. Requires stewardship_major_donor_plans_v1. Relationship-group subjects also require stewardship_relationship_groups_v1. Subject access respects the viewer's donor visibility. Management requires donors_manage/group_all, or donors_view with assignment as this subject's fundraiser; strategy fields follow the same authority. Requires permission: donors_view; plus one of donors_view, donors_manage. # Reorder a qualification move Source: https://api-docs.helpyousponsor.com/api-reference/fundraising/reorder-a-qualification-move post /admin/fundraising/stewardship-plans/{plan_id}/moves/{move_id}/reorder Uses the move version. Swaps this qualification phase with its neighbor, increments changed versions and refreshes Work ordering. Requesting an edge beyond the first/last phase conflicts. Requires stewardship_major_donor_plans_v1. Relationship-group subjects also require stewardship_relationship_groups_v1. Subject access respects the viewer's donor visibility. Management requires donors_manage/group_all, or donors_view with assignment as this subject's fundraiser; strategy fields follow the same authority. Requires permission: donors_view; plus one of donors_view, donors_manage. # Restore stewardship-move Work Source: https://api-docs.helpyousponsor.com/api-reference/fundraising/restore-stewardship-move-work post /admin/fundraising/stewardship-plans/{plan_id}/moves/{move_id}/work/reopen Uses the move version. Clears the Work snooze and refreshes its projection without reopening the underlying move status. Requires stewardship_major_donor_plans_v1. Relationship-group subjects also require stewardship_relationship_groups_v1. Subject access respects the viewer's donor visibility. Management requires donors_manage/group_all, or donors_view with assignment as this subject's fundraiser; strategy fields follow the same authority. Requires permission: donors_view; plus one of donors_view, donors_manage. # Retry a failed handwritten-card submission Source: https://api-docs.helpyousponsor.com/api-reference/fundraising/retry-a-failed-handwritten-card-submission post /admin/handwrytten/orders/{handwryttenOrderId}/retry Retries only approved or failed_submission orders with no assigned vendor order. An in-flight or unknown submission outcome must be reconciled first. Applies the same approval, funding, sender and provider gates as submission. Requires the configured Handwrytten feature (normally handwrytten_mailings). Requires permission: one of mailings_manage, manage_email. # Roll a managed plan into its next period Source: https://api-docs.helpyousponsor.com/api-reference/fundraising/roll-a-managed-plan-into-its-next-period post /admin/fundraising/stewardship-plans/{plan_id}/roll-forward Uses the prior plan version. Requires a managed active/paused/completed plan and an annual review. Incomplete moves must all be future-scheduled and explicitly carried, or resolved first. Creates an active managed successor and completes the prior plan. Requires stewardship_major_donor_plans_v1. Relationship-group subjects also require stewardship_relationship_groups_v1. Subject access respects the viewer's donor visibility. Management requires donors_manage/group_all, or donors_view with assignment as this subject's fundraiser; strategy fields follow the same authority. Requires permission: donors_view; plus one of donors_view, donors_manage. # Search donor options for stewardship relationships Source: https://api-docs.helpyousponsor.com/api-reference/fundraising/search-donor-options-for-stewardship-relationships get /admin/fundraising/relationship-groups/donor-options Requires stewardship_relationship_groups_v1. Returns up to the requested readable live donor/organization options (default30, maximum50). Requires permission: one of donors_view. # Search handwritten-card recipients Source: https://api-docs.helpyousponsor.com/api-reference/fundraising/search-handwritten-card-recipients get /admin/handwrytten/recipients Searches readable donor identity and email fields; requires at least two characters. Reviews at most 200 candidates and returns at most 20 matches with donor profile postal fields and resolved provider country. Requires the configured Handwrytten feature (normally handwrytten_mailings). Requires permission: one of mailings_view, mailings_generate, mailings_manage, manage_email; plus one of donors_view, donors_manage. # Skip a stewardship-plan move Source: https://api-docs.helpyousponsor.com/api-reference/fundraising/skip-a-stewardship-plan-move post /admin/fundraising/stewardship-plans/{plan_id}/moves/{move_id}/skip Uses the move version and requires a non-empty reason. Only planned/in-progress moves can be skipped. Requires stewardship_major_donor_plans_v1. Relationship-group subjects also require stewardship_relationship_groups_v1. Subject access respects the viewer's donor visibility. Management requires donors_manage/group_all, or donors_view with assignment as this subject's fundraiser; strategy fields follow the same authority. Requires permission: donors_view; plus one of donors_view, donors_manage. # Snooze a giving-anniversary opportunity Source: https://api-docs.helpyousponsor.com/api-reference/fundraising/snooze-a-giving-anniversary-opportunity post /admin/giving-anniversaries/opportunities/{id}/snooze Defers the work item until the end of the selected date and records its lifecycle note. Requires permission: donors_view; plus one of donors_manage, donations, interactions_manage, mailings_generate, mailings_manage, manage_email. # Snooze stewardship-move Work Source: https://api-docs.helpyousponsor.com/api-reference/fundraising/snooze-stewardship-move-work post /admin/fundraising/stewardship-plans/{plan_id}/moves/{move_id}/work/snooze Uses the move version. Only an active plan's scheduled open move with an eligible action contact can be snoozed. Returns conflict if its Work projection is not available. Requires stewardship_major_donor_plans_v1. Relationship-group subjects also require stewardship_relationship_groups_v1. Subject access respects the viewer's donor visibility. Management requires donors_manage/group_all, or donors_view with assignment as this subject's fundraiser; strategy fields follow the same authority. Requires permission: donors_view; plus one of donors_view, donors_manage. # Submit an approved handwritten card Source: https://api-docs.helpyousponsor.com/api-reference/fundraising/submit-an-approved-handwritten-card post /admin/handwrytten/orders/{handwryttenOrderId}/submit Revalidates provider identity, sender, suppression, budget, approved quote and funding before sending. Live managed submission reserves/spends Postal Mail balance and may trigger authorized auto-reload; practice does not spend balance or complete outreach. Idempotent accepted orders return existing results; an ambiguous provider outcome is retained for reconciliation and returns 422. Requires the configured Handwrytten feature (normally handwrytten_mailings). Requires permission: one of mailings_manage, manage_email. # Transition a stewardship plan Source: https://api-docs.helpyousponsor.com/api-reference/fundraising/transition-a-stewardship-plan post /admin/fundraising/stewardship-plans/{plan_id}/transition Uses the plan version. Activation requires a contact; managed activation/promotion requires tier and goal. Pause requires reason and next review date. Not-qualified and complete-period require reasons; complete-period also requires every move resolved. Adds a stage/annual review. Requires stewardship_major_donor_plans_v1. Relationship-group subjects also require stewardship_relationship_groups_v1. Subject access respects the viewer's donor visibility. Management requires donors_manage/group_all, or donors_view with assignment as this subject's fundraiser; strategy fields follow the same authority. Requires permission: donors_view; plus one of donors_view, donors_manage. # Unlink a Task from a stewardship move Source: https://api-docs.helpyousponsor.com/api-reference/fundraising/unlink-a-task-from-a-stewardship-move delete /admin/fundraising/stewardship-plans/{plan_id}/moves/{move_id}/task Uses the move version. Removes the Task link, preserving explicit manual completion if present; otherwise task-based completion reverts to planned/in_progress. Requires stewardship_major_donor_plans_v1. Relationship-group subjects also require stewardship_relationship_groups_v1. Subject access respects the viewer's donor visibility. Management requires donors_manage/group_all, or donors_view with assignment as this subject's fundraiser; strategy fields follow the same authority. Requires permission: donors_view; plus one of donors_view, donors_manage. # Unlink interaction evidence from a stewardship move Source: https://api-docs.helpyousponsor.com/api-reference/fundraising/unlink-interaction-evidence-from-a-stewardship-move delete /admin/fundraising/stewardship-plans/{plan_id}/moves/{move_id}/evidence/{evidence_id} Uses the move version and the evidence-link id. Removing the last completion evidence falls back to manual or completed-Task proof, otherwise restores planned/in_progress. Requires stewardship_major_donor_plans_v1. Relationship-group subjects also require stewardship_relationship_groups_v1. Subject access respects the viewer's donor visibility. Management requires donors_manage/group_all, or donors_view with assignment as this subject's fundraiser; strategy fields follow the same authority. Requires permission: donors_view; plus one of donors_view, donors_manage. # Update a stewardship-plan move Source: https://api-docs.helpyousponsor.com/api-reference/fundraising/update-a-stewardship-plan-move put /admin/fundraising/stewardship-plans/{plan_id}/moves/{move_id} Uses the move version, not the plan version. Canceled moves cannot be edited. Reopen terminal moves before changing schedule, owner or contact; unlink Task and interaction evidence before changing contact. The status field is prohibited. Requires stewardship_major_donor_plans_v1. Relationship-group subjects also require stewardship_relationship_groups_v1. Subject access respects the viewer's donor visibility. Management requires donors_manage/group_all, or donors_view with assignment as this subject's fundraiser; strategy fields follow the same authority. Requires permission: donors_view; plus one of donors_view, donors_manage. # Update a stewardship relationship Source: https://api-docs.helpyousponsor.com/api-reference/fundraising/update-a-stewardship-relationship put /admin/fundraising/relationship-groups/{relationship_group_id} Requires stewardship_relationship_groups_v1. Replaces authored core/link fields; unchanged archived core and already-retained archived links remain valid, while replacements must be live/readable. Material plan impact requires current confirmation/repairs. Requires permission: donors_view; plus one of donors_manage. # Update fundraising hub settings Source: https://api-docs.helpyousponsor.com/api-reference/fundraising/update-fundraising-hub-settings put /admin/fundraising/settings Updates supplied policies and this user's preference. initialize_stewardship requires an unconfigured organization and start date no later than today; repeated initialization conflicts. Scheduling attribution/caseload/interactions or acknowledgement changes queues refresh; planning changes queue plan reconciliation. Requires permission: donors_view; plus one of manage_settings, access_account_settings. # Update giving-anniversary settings Source: https://api-docs.helpyousponsor.com/api-reference/fundraising/update-giving-anniversary-settings put /admin/giving-anniversaries/settings Updates supplied settings and retains existing values for omitted keys. Invalid timezone identifiers and Factory are refused; an empty milestone selection falls back to the existing configured types. Requires permission: donors_view; plus one of manage_settings, access_account_settings. # Update handwritten-card spending governance Source: https://api-docs.helpyousponsor.com/api-reference/fundraising/update-handwritten-card-spending-governance put /admin/handwrytten/governance Updates supplied governance fields and preserves omitted values. Changing CASS verification invalidates unapproved quotes; approved orders retain their quoted option. Requires the configured Handwrytten feature (normally handwrytten_mailings). Requires permission: one of account, manage_settings, mailings_manage, access_account_settings (raw capability). # Update handwritten-card workspace defaults Source: https://api-docs.helpyousponsor.com/api-reference/fundraising/update-handwritten-card-workspace-defaults put /admin/handwrytten/preferences Saves preferences and optional governance atomically. Changing/clearing auto_reload also requires raw access_payment_gateways. Partner-owned test-mode changes run after commit and return provider_mode_sync; failed, unknown or pending reconciliation outcomes do not roll back saved defaults. Managed practice/live state is controlled by Gratona. Requires the configured Handwrytten feature (normally handwrytten_mailings). Requires permission: one of account, manage_settings, mailings_manage, access_account_settings (raw capability). # Update stewardship-plan strategy Source: https://api-docs.helpyousponsor.com/api-reference/fundraising/update-stewardship-plan-strategy put /admin/fundraising/stewardship-plans/{plan_id} Uses the plan version. Completed or archived plans cannot be edited. Active/paused plans retain an eligible action contact; managed plans require tier, goal and contact. Requires stewardship_major_donor_plans_v1. Relationship-group subjects also require stewardship_relationship_groups_v1. Subject access respects the viewer's donor visibility. Management requires donors_manage/group_all, or donors_view with assignment as this subject's fundraiser; strategy fields follow the same authority. Requires permission: donors_view; plus one of donors_view, donors_manage. # Validate the handwritten-card connection Source: https://api-docs.helpyousponsor.com/api-reference/fundraising/validate-the-handwritten-card-connection post /admin/handwrytten/validate-account Validates and records the selected provider connection and current practice state. Managed mode uses the Gratona key; partner_owned is allowed only when enabled for this organization. include_catalog adds sample counts. A concurrent newer connection change rejects stale validation. Requires the configured Handwrytten feature (normally handwrytten_mailings). Requires permission: one of account, manage_settings, mailings_manage, access_account_settings (raw capability). # List historical archived updates for one donor or recipient Source: https://api-docs.helpyousponsor.com/api-reference/historical-archived-updates/list-historical-archived-updates-for-one-donor-or-recipient get /admin/list_archived_forms/{type}/{id}/{archived_hysform_id} Read-only compatibility endpoint for donor and recipient archive views. Historical rows remain listable even when the submit form was soft-deleted or is no longer attached to the program. # Read one historical archived update Source: https://api-docs.helpyousponsor.com/api-reference/historical-archived-updates/read-one-historical-archived-update get /admin/view_archived_form/{archived_form_id} Read-only compatibility endpoint. Resolves historical field metadata, including soft-deleted submit forms and fields, while scoping every lookup to the authenticated client. # Retired archived-update authoring bootstrap Source: https://api-docs.helpyousponsor.com/api-reference/historical-archived-updates/retired-archived-update-authoring-bootstrap get /admin/submit_form/{type}/{id}/{program_id}/{form_id} Retired with the global legacy Progress Reports authoring workflow. Historical archived updates remain readable through the archive read endpoints. # Retired archived-update edit bootstrap Source: https://api-docs.helpyousponsor.com/api-reference/historical-archived-updates/retired-archived-update-edit-bootstrap get /admin/edit_archived_form/{archived_form_id} # Retired archived-update form attachment Source: https://api-docs.helpyousponsor.com/api-reference/historical-archived-updates/retired-archived-update-form-attachment post /admin/program/form Existing entity_submit and donor_submit references are frozen compatibility metadata. This endpoint does not change them. # Retired archived-update form detachment Source: https://api-docs.helpyousponsor.com/api-reference/historical-archived-updates/retired-archived-update-form-detachment get /admin/remove_submit_form/{type}/{program_id}/{form_id} Existing program references are preserved so historical data can be interpreted and rollback remains possible. # Retired archived-update mutation Source: https://api-docs.helpyousponsor.com/api-reference/historical-archived-updates/retired-archived-update-mutation post /admin/edit_archived_form/{archived_form_id} # Retired archived-update notification configuration Source: https://api-docs.helpyousponsor.com/api-reference/historical-archived-updates/retired-archived-update-notification-configuration get /admin/submit_form_notification/{program_id}/{form_id} # Retired archived-update notification mutation Source: https://api-docs.helpyousponsor.com/api-reference/historical-archived-updates/retired-archived-update-notification-mutation post /admin/submit_form_notification/{program_id}/{form_id} # Retired archived-update submission Source: https://api-docs.helpyousponsor.com/api-reference/historical-archived-updates/retired-archived-update-submission post /admin/submit_form/{type}/{id}/{program_id}/{form_id} No new FormArchive rows are accepted. The endpoint remains during the compatibility window so old consumers receive an intentional retirement response. # Retired global Progress Reports email export Source: https://api-docs.helpyousponsor.com/api-reference/historical-archived-updates/retired-global-progress-reports-email-export post /admin/progress_report/email No new report email jobs are queued. Jobs already in the queue remain executable during the compatibility window. # Retired global Progress Reports list Source: https://api-docs.helpyousponsor.com/api-reference/historical-archived-updates/retired-global-progress-reports-list post /admin/progress_report # Retired global Progress Reports module Source: https://api-docs.helpyousponsor.com/api-reference/historical-archived-updates/retired-global-progress-reports-module get /admin/progress_report Reports Hub is the only global reporting destination. This compatibility endpoint never lists archived data. # Approve a story for reuse Source: https://api-docs.helpyousponsor.com/api-reference/impact-stories/approve-a-story-for-reuse post /admin/impact-stories/{storyId}/approve Validates story consent against privacy and requires consent for every Library source. Rechecks source access, approval authority and story version under a lock; concurrent edits return 409. Requires the impact_stories feature. Requires permission: one of impact_stories_approve. # Approve a story offer Source: https://api-docs.helpyousponsor.com/api-reference/impact-stories/approve-a-story-offer post /admin/impact-stories/{storyId}/offers/{offerId}/approve Marks the selected tenant-owned offer approved and records approval metadata. Requires the impact_stories feature. Requires permission: one of impact_stories_approve. # Archive an Impact Story Source: https://api-docs.helpyousponsor.com/api-reference/impact-stories/archive-an-impact-story post /admin/impact-stories/{storyId}/archive Marks the story archived and records archival evidence. Requires the impact_stories feature. Requires permission: one of impact_stories_manage. # Attach a source or upload to a story Source: https://api-docs.helpyousponsor.com/api-reference/impact-stories/attach-a-source-or-upload-to-a-story post /admin/impact-stories/{storyId}/assets Attaches a tenant-owned upload or source link. Library authorization markers cannot be supplied by the caller; approved stories are requeued when their media changes. Requires the impact_stories feature. Requires permission: one of impact_stories_manage. # Attach authorized Library files to a story Source: https://api-docs.helpyousponsor.com/api-reference/impact-stories/attach-authorized-library-files-to-a-story post /admin/impact-stories/{storyId}/library-assets Resolves every selected Library file, rechecks access under the story lock and avoids duplicate references. Changed media requires review again. Requires the impact_stories feature. Requires permission: one of impact_stories_manage. # Capture a Slack thread permalink as a story draft Source: https://api-docs.helpyousponsor.com/api-reference/impact-stories/capture-a-slack-thread-permalink-as-a-story-draft post /admin/impact-stories/intake/slack Stores the supplied permalink and text as draft provenance, reusing an existing matching source identity. This route does not fetch Slack thread content. Requires the impact_stories feature. Requires permission: one of impact_stories_manage. # Capture a story draft from a shared inbox conversation Source: https://api-docs.helpyousponsor.com/api-reference/impact-stories/capture-a-story-draft-from-a-shared-inbox-conversation post /admin/impact-stories/intake/shared-inbox/{conversationId} Captures permitted conversation content as a draft, reusing the existing story for the same conversation. Requires beta, story-management and SMS inbox access. Requires the impact_stories feature. Requires permission: one of beta_features; plus one of impact_stories_manage; plus one of sms_inbox_view, sms_inbox_reply, sms_inbox_manage. # Create an Impact Story draft Source: https://api-docs.helpyousponsor.com/api-reference/impact-stories/create-an-impact-story-draft post /admin/impact-stories Creates an internal draft by default, records provenance and links permitted primary records. Approval and publication use separate operations. Requires the impact_stories feature. Requires permission: one of impact_stories_manage. # Create an internal story draft from Library files Source: https://api-docs.helpyousponsor.com/api-reference/impact-stories/create-an-internal-story-draft-from-library-files post /admin/impact-stories/library-media-drafts Creates a draft from one to 25 accessible Library files. The UUID request_key makes retries return the same draft when content matches; changed content or a deleted prior draft returns 409. Program mapping is inherited only when the selected files agree. Requires the impact_stories feature. Requires permission: one of impact_stories_manage. # Delete a story intake path Source: https://api-docs.helpyousponsor.com/api-reference/impact-stories/delete-a-story-intake-path delete /admin/impact-stories/intake-paths/{pathId} Deletes the tenant-owned intake path. Requires the impact_stories feature. Requires permission: one of impact_stories_manage. # Download a story consent release Source: https://api-docs.helpyousponsor.com/api-reference/impact-stories/download-a-story-consent-release get /admin/impact-stories/{storyId}/releases/{releaseId}/download Downloads the private consent-release attachment for this story; no file or inaccessible release returns 404. Requires the impact_stories feature. Requires permission: one of impact_stories_view, impact_stories_manage, impact_stories_approve, impact_stories_publish, impact_stories_import. # Draft an offer from a story Source: https://api-docs.helpyousponsor.com/api-reference/impact-stories/draft-an-offer-from-a-story post /admin/impact-stories/{storyId}/offers Creates an unapproved offer with beneficiary, cost, problem/solution and proposed ask copy. Requires the impact_stories feature. Requires permission: one of impact_stories_manage. # Inspect program story coverage Source: https://api-docs.helpyousponsor.com/api-reference/impact-stories/inspect-program-story-coverage get /admin/impact-stories/coverage Returns current approval/consent coverage and stale programs visible to the user. Also reconciles missing/stale story coverage work items for follow-up. Requires the impact_stories feature. Requires permission: one of impact_stories_view, impact_stories_manage, impact_stories_approve, impact_stories_publish, impact_stories_import. # List governed Impact Stories Source: https://api-docs.helpyousponsor.com/api-reference/impact-stories/list-governed-impact-stories get /admin/impact-stories Lists stories using editorial filters and safe sort fields. Prefix sort with - for descending; unsupported fields fall back to updated_at. Each row includes current file-clearance reach. Requires the impact_stories feature. Requires permission: one of impact_stories_view, impact_stories_manage, impact_stories_approve, impact_stories_publish, impact_stories_import. # List saved story import mappings Source: https://api-docs.helpyousponsor.com/api-reference/impact-stories/list-saved-story-import-mappings get /admin/impact-stories/import-mappings Lists mappings for this organization, optionally filtered by source_type, default mappings first. Requires the impact_stories feature. Requires permission: one of impact_stories_import. # List stories related to a donor Source: https://api-docs.helpyousponsor.com/api-reference/impact-stories/list-stories-related-to-a-donor get /admin/impact-stories/donors/{donorId} Returns up to 50 stories linked to the permitted donor, including body and approved offers. Requires the impact_stories feature. Requires permission: one of impact_stories_view, impact_stories_manage, impact_stories_approve, impact_stories_publish, impact_stories_import. # List story intake paths Source: https://api-docs.helpyousponsor.com/api-reference/impact-stories/list-story-intake-paths get /admin/impact-stories/intake-paths Lists configured intake paths and unpersisted default setup choices. Reading does not enable a public intake path. Requires the impact_stories feature. Requires permission: one of impact_stories_view, impact_stories_manage, impact_stories_approve, impact_stories_publish, impact_stories_import. # List story storage provider capabilities Source: https://api-docs.helpyousponsor.com/api-reference/impact-stories/list-story-storage-provider-capabilities get /admin/impact-stories/storage-providers Lists managed upload, consent release, Drive/link and Slack capture capabilities. A link-capable provider is not a connected live importer. Requires the impact_stories feature. Requires permission: one of impact_stories_view, impact_stories_manage, impact_stories_approve, impact_stories_publish, impact_stories_import. # Pick stories eligible for reuse Source: https://api-docs.helpyousponsor.com/api-reference/impact-stories/pick-stories-eligible-for-reuse get /admin/impact-stories/picker Lists approved or published stories. Donor-facing channels require matching consent and current file clearance; public_program additionally requires public-safe consent. Requires the impact_stories feature. Requires permission: one of impact_stories_view, impact_stories_manage, impact_stories_approve, impact_stories_publish, impact_stories_import. # Prepare an approved story for a destination Source: https://api-docs.helpyousponsor.com/api-reference/impact-stories/prepare-an-approved-story-for-a-destination post /admin/impact-stories/{storyId}/handoff/{channel} Checks current source authority and consent, freezes reviewed story evidence and creates or links a newsletter, mailing, report, journey template or export destination. Default status is prepared; preparation does not send a communication. Version changes return 409. Requires the impact_stories feature. Requires permission: one of impact_stories_publish. # Preview a story import batch Source: https://api-docs.helpyousponsor.com/api-reference/impact-stories/preview-a-story-import-batch post /admin/impact-stories/imports/preview Stores an import receipt and at most 25 preview rows. This step does not import stories. Requires the impact_stories feature. Requires permission: one of impact_stories_import. # Preview story reuse for a destination Source: https://api-docs.helpyousponsor.com/api-reference/impact-stories/preview-story-reuse-for-a-destination get /admin/impact-stories/{storyId}/reuse-preview/{channel} Checks current consent, approval and file evidence for the destination before returning a reusable story snapshot. When Spaces clearance is enabled, adds media_clearance. Requires the impact_stories feature. Requires permission: one of impact_stories_publish. # Process a previewed story import Source: https://api-docs.helpyousponsor.com/api-reference/impact-stories/process-a-previewed-story-import post /admin/impact-stories/imports/{batchId}/process Processes supplied rows or the stored preview rows with merged mapping. Skips malformed rows and avoids overwriting approved, published or archived stories; counts and per-row errors are returned synchronously. Requires the impact_stories feature. Requires permission: one of impact_stories_import. # Read a public story intake form Source: https://api-docs.helpyousponsor.com/api-reference/impact-stories/read-a-public-story-intake-form get /frontend/impact-stories/intake/{slug} Resolves an active public intake slug and the owning organization, allowed programs, provider capabilities and signed-release requirements. Requires the impact_stories feature. # Read a story import receipt Source: https://api-docs.helpyousponsor.com/api-reference/impact-stories/read-a-story-import-receipt get /admin/impact-stories/imports/{batchId} Returns preview or processing counts and row errors for the tenant-owned import batch. Requires the impact_stories feature. Requires permission: one of impact_stories_import. # Read an Impact Story Source: https://api-docs.helpyousponsor.com/api-reference/impact-stories/read-an-impact-story get /admin/impact-stories/{storyId} Returns editorial detail, assets, current source previews, related records, offers, publication evidence and consent releases. Requires the impact_stories feature. Requires permission: one of impact_stories_view, impact_stories_manage, impact_stories_approve, impact_stories_publish, impact_stories_import. # Read Library media program context Source: https://api-docs.helpyousponsor.com/api-reference/impact-stories/read-library-media-program-context get /admin/impact-stories/library-media-context Resolves an authorized Library file and its shared-folder program mapping. PUT requires a positive accessible program_id and refuses support sessions; it changes the shared Library folder mapping. Requires the impact_stories feature. Requires permission: one of impact_stories_view, impact_stories_manage, impact_stories_approve, impact_stories_publish, impact_stories_import. # Read public stories for a program Source: https://api-docs.helpyousponsor.com/api-reference/impact-stories/read-public-stories-for-a-program get /frontend/impact-stories/program/{client_id}/{program_id} Returns only approved/published stories with public privacy and public-safe consent. Library references are excluded, media clearance hides or replaces blocked files, and only approved offers are exposed. Requires the impact_stories feature. # Relate a record to a story Source: https://api-docs.helpyousponsor.com/api-reference/impact-stories/relate-a-record-to-a-story post /admin/impact-stories/{storyId}/relations Upserts a relation for the record and role. The record must belong to this organization and be readable by the user. Requires the impact_stories feature. Requires permission: one of impact_stories_manage. # Remove a story asset Source: https://api-docs.helpyousponsor.com/api-reference/impact-stories/remove-a-story-asset delete /admin/impact-stories/{storyId}/assets/{storyAssetId} Removes the selected asset from this story and requeues previously approved content for review. Requires the impact_stories feature. Requires permission: one of impact_stories_manage. # Request context for a story Source: https://api-docs.helpyousponsor.com/api-reference/impact-stories/request-context-for-a-story post /admin/impact-stories/{storyId}/request-context Moves the story to needs_context and records an optional review note. Requires the impact_stories feature. Requires permission: one of impact_stories_manage. # Review story asset consent and caption Source: https://api-docs.helpyousponsor.com/api-reference/impact-stories/review-story-asset-consent-and-caption patch /admin/impact-stories/{storyId}/assets/{storyAssetId} Updates caption and consent for the selected story asset. Library access and story version are rechecked; changes can require story reapproval. Requires the impact_stories feature. Requires permission: one of impact_stories_manage. # Save a story import mapping Source: https://api-docs.helpyousponsor.com/api-reference/impact-stories/save-a-story-import-mapping post /admin/impact-stories/import-mappings Upserts a mapping by source type and name. Selecting a new default clears the prior default for that source type. Requires the impact_stories feature. Requires permission: one of impact_stories_import. # Save a story intake path Source: https://api-docs.helpyousponsor.com/api-reference/impact-stories/save-a-story-intake-path post /admin/impact-stories/intake-paths Creates or updates an intake path by path_key. Public paths use a unique slug and must be active and public before anonymous submissions are accepted. Requires the impact_stories feature. Requires permission: one of impact_stories_manage. # Save Library media program context Source: https://api-docs.helpyousponsor.com/api-reference/impact-stories/save-library-media-program-context put /admin/impact-stories/library-media-context Resolves an authorized Library file and its shared-folder program mapping. PUT requires a positive accessible program_id and refuses support sessions; it changes the shared Library folder mapping. Requires the impact_stories feature. Requires permission: one of impact_stories_manage. # Search records to relate to a story Source: https://api-docs.helpyousponsor.com/api-reference/impact-stories/search-records-to-relate-to-a-story get /admin/impact-stories/related-records Searches currently permitted program, entity or donor records, with at most 20 interleaved results. Reference ids never grant record access. Requires the impact_stories feature. Requires permission: one of impact_stories_view, impact_stories_manage, impact_stories_approve, impact_stories_publish, impact_stories_import. # Submit a story for review Source: https://api-docs.helpyousponsor.com/api-reference/impact-stories/submit-a-story-for-review post /admin/impact-stories/{storyId}/submit-review Moves the story to ready_for_review; this does not approve it. Requires the impact_stories feature. Requires permission: one of impact_stories_manage. # Submit a story with signed consent Source: https://api-docs.helpyousponsor.com/api-reference/impact-stories/submit-a-story-with-signed-consent post /frontend/impact-stories/intake/{slug} Creates a ready_for_review story from an active public intake path, stores the signed consent release privately and records optional media and offer details. It does not approve or publish the story. Limited to 20 submissions per organization per hour as well as the route throttle. Requires the impact_stories feature. # Summarize Impact Stories Source: https://api-docs.helpyousponsor.com/api-reference/impact-stories/summarize-impact-stories get /admin/impact-stories/summary Returns story status, approval, offer, publication and consent-readiness counts. Requires the impact_stories feature. Requires permission: one of impact_stories_view, impact_stories_manage, impact_stories_approve, impact_stories_publish, impact_stories_import. # Update an Impact Story Source: https://api-docs.helpyousponsor.com/api-reference/impact-stories/update-an-impact-story patch /admin/impact-stories/{storyId} Changes validated editable story fields. Source identity/provenance is preserved; edits to an approved or published story requeue it for review. Requires the impact_stories feature. Requires permission: one of impact_stories_manage. # Apply an imported gift-owner decision Source: https://api-docs.helpyousponsor.com/api-reference/integrations/apply-an-imported-gift-owner-decision post /integrations/hub/connections/{connection_id}/historical-gift-owner-decisions/{conflict_id}/resolve Checks the current grouped count, amount, current owner and mapped source owner under lock. keep_hys_owner resolves the conflicts without changing gift ownership; use_source_owner moves only the reviewed local gifts, preserves payment/provider records and refreshes affected fundraising projections. Repeated completed decisions return their recorded result. Verify source records before importing more gifts. Requires the integration platform global/configured client feature gate (normally integration_platform_foundation). Requires permission: one of access_account_settings. # Apply reviewed outgoing gift-owner matches Source: https://api-docs.helpyousponsor.com/api-reference/integrations/apply-reviewed-outgoing-gift-owner-matches post /integrations/hub/connections/{connection_id}/outbound-donation-owner-decisions/resolve Accepts 1 to 100 distinct reviewed groups in one currency. Rechecks token, owner, count, total, selected safe mapped candidate and unreserved/undispatched waiting work under lock, then moves only those local gift allocations. Records a completed local audit run and refreshes fundraising projections; it does not queue provider sends or create donors, gifts, payments or messages. Requires the integration platform global/configured client feature gate (normally integration_platform_foundation). Requires permission: one of access_account_settings. # Apply reviewed outgoing outcomes without sending Source: https://api-docs.helpyousponsor.com/api-reference/integrations/apply-reviewed-outgoing-outcomes-without-sending post /integrations/hub/connections/{connection_id}/outbound-review/apply Requires the current outgoing-review token and matching scope. Records deterministic will_skip, waiting and needs_decision outcomes with a local audit run; ready_to_send and uncheckable rows remain untouched. Work that changed under lock is left unchanged. Sends no provider requests. Requires the integration platform global/configured client feature gate (normally integration_platform_foundation). Requires permission: one of access_account_settings. # Approve a historical QuickBooks preview Source: https://api-docs.helpyousponsor.com/api-reference/integrations/approve-a-historical-quickbooks-preview post /integrations/hub/connections/{connection_id}/quickbooks/historical/previews/{run_id}/approve Approves the exact snapshot_hash for a backfill or correction preview in the same connected QuickBooks company. Rechecks stored-plan integrity and every source fingerprint. Repeated approval reuses the existing execution. Captures/queues checkpoints and returns202; provider completion must be checked from the run. Requires a connected QuickBooks company for mutations. Current user/group permissions must include manage_settings, access_account_settings or group_all in addition to route access. Requires the integration platform global/configured client feature gate (normally integration_platform_foundation). Requires permission: one of access_account_settings. # Approve an integration field mapping Source: https://api-docs.helpyousponsor.com/api-reference/integrations/approve-an-integration-field-mapping post /integrations/hub/field-mappings/{mapping_id}/approve Marks the selected version approved with actor/time and supersedes other approved mappings for the same organization/connection/source/target pair. Does not execute a sync. Requires the integration platform global/configured client feature gate (normally integration_platform_foundation). Requires permission: one of access_account_settings. # Authorize the legacy QuickBooks connection Source: https://api-docs.helpyousponsor.com/api-reference/integrations/authorize-the-legacy-quickbooks-connection get /admin/quickbooks/authorize Returns an OAuth authorization URL and persists a fresh state for this organization. switch_company explicitly allows the callback to replace the connected QuickBooks company; follow authUrl to authorize. Requires permission: one of access_payment_gateways. # Begin Blackbaud authorization Source: https://api-docs.helpyousponsor.com/api-reference/integrations/begin-blackbaud-authorization post /integrations/hub/providers/blackbaud-raisers-edge/connect Starts a15-minute OAuth state for this organization/user, optionally reconnecting an existing Blackbaud connection. Requires enabled/configured Blackbaud OAuth. Opening authorize_url completes the provider authorization through its callback. Requires the integration platform to be enabled globally or by its configured client feature flag (normally integration_platform_foundation). Requires permission: one of access_account_settings. # Begin HubSpot authorization Source: https://api-docs.helpyousponsor.com/api-reference/integrations/begin-hubspot-authorization post /integrations/hub/providers/hubspot/connect Creates an actor/workspace-bound OAuth authorization state lasting 900 seconds and returns the provider URL. Optional connection_id must be an organization-owned HubSpot connection. HubSpot OAuth must be enabled and configured. Opening/finishing the provider authorization flow establishes the connection; this call does not sync records. Requires the integration platform global/configured client feature gate (normally integration_platform_foundation). Requires permission: one of access_account_settings. # Begin QuickBooks hub authorization Source: https://api-docs.helpyousponsor.com/api-reference/integrations/begin-quickbooks-hub-authorization post /integrations/hub/providers/quickbooks/connect Creates/updates legacy QuickBooks OAuth state and returns an authorization URL, optionally for an existing QuickBooks connection. switch_company explicitly permits a company change after authorization. Does not complete OAuth or start a data sync. Requires the integration platform to be enabled globally or by its configured client feature flag (normally integration_platform_foundation). Requires permission: one of access_account_settings. # Begin Salesforce nonprofit authorization Source: https://api-docs.helpyousponsor.com/api-reference/integrations/begin-salesforce-nonprofit-authorization post /integrations/hub/providers/{provider_key}/salesforce/connect Selects NPSP or Nonprofit Cloud and returns a PKCE authorization URL with actor/workspace-bound state valid for 900 seconds. Optional connection_id must belong to this organization and the requested template. The selected provider OAuth must be enabled/configured; completing the provider flow establishes the connection without starting data sync. Requires the integration platform global/configured client feature gate (normally integration_platform_foundation). Requires permission: one of access_account_settings. # Begin Slack private-channel authorization Source: https://api-docs.helpyousponsor.com/api-reference/integrations/begin-slack-private-channel-authorization post /integrations/hub/providers/slack/connect Starts a15-minute OAuth flow for a private staff DM. Requires Slack channel OAuth, Workspace Agent channels and rollout, an active eligible user and one of aida_view/aida_capture/aida_review/aida_settings_manage/group_all in addition to account-setting access. Requires the integration platform to be enabled globally or by its configured client feature flag (normally integration_platform_foundation). Requires permission: one of access_account_settings. # Check integration connection health Source: https://api-docs.helpyousponsor.com/api-reference/integrations/check-integration-connection-health post /integrations/hub/connections/{connection_id}/health-check Calls the registered provider adapter, persists status/check time and current error state, and returns the updated safe connection plus provider-specific result. Requires the integration platform global/configured client feature gate (normally integration_platform_foundation). Requires permission: one of access_account_settings. # Check legacy QuickBooks connection status Source: https://api-docs.helpyousponsor.com/api-reference/integrations/check-legacy-quickbooks-connection-status get /admin/quickbooks/connection-status Refreshes credentials and probes CompanyInfo. Normal disconnected/expired states return200 with connected=false and an explanatory message; needs_reauth indicates whether authorization should be repeated. Unexpected outer failures return500. Requires permission: one of access_payment_gateways. # Check the managed handwritten-card connection Source: https://api-docs.helpyousponsor.com/api-reference/integrations/check-the-managed-handwritten-card-connection post /integrations/handwrytten/readiness Compatibility readiness check for the Gratona-managed provider. Requires configured Handwrytten feature (normally handwrytten_mailings). api_key is prohibited. include_catalog returns existing organization catalog counts; it does not fetch private provider catalog data. Also available through the root unversioned alias. Requires permission: one of account, manage_settings, mailings_manage, access_account_settings (raw capability). # Connect or reconnect Bloomerang with an API key Source: https://api-docs.helpyousponsor.com/api-reference/integrations/connect-or-reconnect-bloomerang-with-an-api-key post /integrations/hub/providers/bloomerang/connect Verifies the key through Bloomerang and stores the connection, enforcing its existing database/account binding. New connections require api_key; a positive connection_id may omit it to reuse the stored key. Supplied replacement credentials must belong to the existing bound database. Returns safe connection state without credentials; no records are synchronized. Requires the integration platform global/configured client feature gate (normally integration_platform_foundation). Requires permission: one of access_account_settings. # Create a Connected Apps connection Source: https://api-docs.helpyousponsor.com/api-reference/integrations/create-a-connected-apps-connection post /integrations/hub/connections Creates one provider record for this organization using registered provider defaults. Credentials are provider-specific JSON and cause initial connected status only when non-empty; creation does not verify them remotely. An existing provider record must be removed before recreating it. Requires the integration platform global/configured client feature gate (normally integration_platform_foundation). Requires permission: one of access_account_settings. # Create an integration field-mapping draft Source: https://api-docs.helpyousponsor.com/api-reference/integrations/create-an-integration-field-mapping-draft post /integrations/hub/connections/{connection_id}/field-mappings Creates a new draft version for the source/target object pair using supplied ownership, fields, defaults and provider metadata. Does not activate it until approval. Requires the integration platform global/configured client feature gate (normally integration_platform_foundation). Requires permission: one of access_account_settings. # Create an integration mapping-preview shell Source: https://api-docs.helpyousponsor.com/api-reference/integrations/create-an-integration-mapping-preview-shell post /integrations/hub/connections/{connection_id}/sync-runs Creates a completed local shell preview even when a manual/reconcile run_type is selected. Locks currently approved mappings to the run and writes preview events/counters; it does not queue provider import/export work. Requires the integration platform global/configured client feature gate (normally integration_platform_foundation). Requires permission: one of access_account_settings. # Create or refresh an SAP setup workspace Source: https://api-docs.helpyousponsor.com/api-reference/integrations/create-or-refresh-an-sap-setup-workspace post /integrations/hub/providers/sap/connect Creates a connected/warning setup workspace or refreshes an existing SAP connection, discovers and stores provider metadata and ensures approved mapping templates. Company/ledger setup must be completed before exports; Connected Apps registration does not post records. New records return201; refreshes return200. Requires the integration platform global/configured client feature gate (normally integration_platform_foundation). Requires permission: one of access_account_settings. # Disconnect a Connected App Source: https://api-docs.helpyousponsor.com/api-reference/integrations/disconnect-a-connected-app delete /integrations/hub/connections/{connection_id} Disables channel bindings and cancels pending outbound work. QuickBooks compatibility performs its provider-specific disconnect. Other object mappings/cursors remain available for reconnect; Slack/Twilio stored channel credentials are cleared. Requires the integration platform global/configured client feature gate (normally integration_platform_foundation). Requires permission: one of access_account_settings. # Disconnect Dropbox Sign Source: https://api-docs.helpyousponsor.com/api-reference/integrations/disconnect-dropbox-sign delete /integrations/dropbox-sign/oauth/disconnect Deletes the current organization’s stored Dropbox Sign OAuth integration locally. Existing signature records are preserved; this operation does not call the provider token-revocation API. Requires permission: one of access_account_settings. # Discover imported historical gift-owner mismatches Source: https://api-docs.helpyousponsor.com/api-reference/integrations/discover-imported-historical-gift-owner-mismatches post /integrations/hub/connections/{connection_id}/historical-gift-owner-decisions/discover For Bloomerang only, reads source transactions to verify imported gift ownership and creates local review conflicts. Ambiguous split-designation groups, missing mappings and unverified source records are excluded. Does not modify gifts, payments, sync cursors or provider records; an empty created_count alone does not mean all source rows were verified. Requires the integration platform global/configured client feature gate (normally integration_platform_foundation). Requires permission: one of access_account_settings. # Discover integration provider metadata Source: https://api-docs.helpyousponsor.com/api-reference/integrations/discover-integration-provider-metadata post /integrations/hub/connections/{connection_id}/metadata/discover Calls the registered adapter with provider-specific options and stores the next active snapshot version and schema hash. Does not approve field mappings or run a data sync. Requires the integration platform global/configured client feature gate (normally integration_platform_foundation). Requires permission: one of access_account_settings. # Discover local donations missing outgoing capture Source: https://api-docs.helpyousponsor.com/api-reference/integrations/discover-local-donations-missing-outgoing-capture get /integrations/hub/connections/{connection_id}/outbound-discovery Reviews qualified local non-CSV payment groups that lack provider identity or uncertain existing work. Excludes imports and fully kept-local groups. Returns grouped counts and a token for staging local review; no provider requests are sent. Only Bloomerang donations are supported; limit defaults to 500. Requires the integration platform global/configured client feature gate (normally integration_platform_foundation). Requires permission: one of access_account_settings. # Enable reviewed future sending to Bloomerang Source: https://api-docs.helpyousponsor.com/api-reference/integrations/enable-reviewed-future-sending-to-bloomerang post /integrations/hub/connections/{connection_id}/bloomerang/ongoing-sync/outbound/activate Requires the opaque token from a ready outgoing activation preview plus selected ready object types. Rechecks token organization/connection, expiry, exact configuration and available types under lock, then authorizes only that future outgoing scope. Imports must already be active; pending/processing/failed history must be cleared and open conflicts resolved. No queued history is replayed and this call sends no provider request. Requires the integration platform global/configured client feature gate (normally integration_platform_foundation). Requires permission: one of access_account_settings. # Ensure SAP mapping templates Source: https://api-docs.helpyousponsor.com/api-reference/integrations/ensure-sap-mapping-templates post /integrations/hub/connections/{connection_id}/sap/bootstrap-mappings Creates missing approved templates using current target context and latest metadata, preserving existing approved mappings. Returns relevant versions ordered by source/target/version; may mutate local mapping configuration. Requires the integration platform global/configured client feature gate (normally integration_platform_foundation). Requires permission: one of access_account_settings. # Keep reviewed outgoing gift groups in Gratona Source: https://api-docs.helpyousponsor.com/api-reference/integrations/keep-reviewed-outgoing-gift-groups-in-gratona post /integrations/hub/connections/{connection_id}/outbound-donation-owner-decisions/keep-local Accepts 1 to 100 distinct safe_to_keep_local groups in one currency using current tokens/counts/totals. Rechecks full payment topology, source mappings and all related outgoing work before installing durable per-record keep-local controls and marking reviewed work skipped. Those controls prevent later edits from recreating outgoing work for this connection. Gift owners, payments and provider records are unchanged. Requires the integration platform global/configured client feature gate (normally integration_platform_foundation). Requires permission: one of access_account_settings. # Leave selected reviewed outgoing donations unsent Source: https://api-docs.helpyousponsor.com/api-reference/integrations/leave-selected-reviewed-outgoing-donations-unsent post /integrations/hub/connections/{connection_id}/outbound-review/leave-unsent Requires the current review token and selected ready_to_send event_ids. Records a local skipped decision and audit run without contacting the provider. A future material edit may create new outgoing work for a donation. Requires the integration platform global/configured client feature gate (normally integration_platform_foundation). Requires permission: one of access_account_settings. # Link a program or recipient to a Bloomerang target Source: https://api-docs.helpyousponsor.com/api-reference/integrations/link-a-program-or-recipient-to-a-bloomerang-target post /integrations/hub/connections/{connection_id}/bloomerang/recipient-mapping Requires a contribution/number/campaign program, optional non-deleted recipient in that program, and an available fund/campaign/appeal target. Atomically saves an active designation_target object link, supersedes previous same-type links and removes stale different-provider-id links for that exact local target/type. Updates selected program context without creating a provider object or syncing records. Requires the integration platform global/configured client feature gate (normally integration_platform_foundation). Requires permission: one of access_account_settings. # List available background-check packages Source: https://api-docs.helpyousponsor.com/api-reference/integrations/list-available-background-check-packages get /integrations/checkr/packages Lists normalized package IDs, names and slugs using the current organization’s stored Checkr credentials. Use the slug when starting an invitation; this request does not order a background check. Requires permission: one of access_account_settings. # List available integration providers Source: https://api-docs.helpyousponsor.com/api-reference/integrations/list-available-integration-providers get /integrations/hub/providers Synchronizes this organization's registry catalog and returns provider capabilities, supported objects, defaults and effective availability. Requires the integration platform global/configured client feature gate (normally integration_platform_foundation). Requires permission: one of access_account_settings. # List background-check work locations Source: https://api-docs.helpyousponsor.com/api-reference/integrations/list-background-check-work-locations get /integrations/checkr/geos Lists normalized Checkr Geo IDs, names, state and country for the current organization’s account. Background-check work_locations must use these IDs. Requires permission: one of access_account_settings. # List Connected Apps Source: https://api-docs.helpyousponsor.com/api-reference/integrations/list-connected-apps get /integrations/hub/connections Returns organization-owned connections after reconciling the legacy QuickBooks compatibility record, newest update first. Credentials are not included in this list. Requires the integration platform global/configured client feature gate (normally integration_platform_foundation). Requires permission: one of access_account_settings. # List donor identity decisions Source: https://api-docs.helpyousponsor.com/api-reference/integrations/list-donor-identity-decisions get /integrations/hub/connections/{connection_id}/donor-identity-decisions Returns the latest reviewable conflicted identity evidence, at most 20 rows, excluding superseded/resolved source decisions and active source mappings except missing-source reviews. Includes explicit candidates, current claims, suggestions and guards; does not choose or apply a match. Requires the integration platform global/configured client feature gate (normally integration_platform_foundation). Requires permission: one of access_account_settings. # List historical QuickBooks runs Source: https://api-docs.helpyousponsor.com/api-reference/integrations/list-historical-quickbooks-runs get /integrations/hub/connections/{connection_id}/quickbooks/historical/runs Returns the latest20 historical preview, backfill, correction-preview and correction runs for this connection, without their events. Requires a connected QuickBooks company for mutations. Current user/group permissions must include manage_settings, access_account_settings or group_all in addition to route access. Requires the integration platform global/configured client feature gate (normally integration_platform_foundation). Requires permission: one of access_account_settings. # List imported historical gift-owner decisions Source: https://api-docs.helpyousponsor.com/api-reference/integrations/list-imported-historical-gift-owner-decisions get /integrations/hub/connections/{connection_id}/historical-gift-owner-decisions Returns open local imported-transaction owner conflicts grouped by source constituent and current Gratona owner, with actual count/total and expected guards. Does not change gift ownership or contact the provider. Requires the integration platform global/configured client feature gate (normally integration_platform_foundation). Requires permission: one of access_account_settings. # List integration conflicts Source: https://api-docs.helpyousponsor.com/api-reference/integrations/list-integration-conflicts get /integrations/hub/connections/{connection_id}/conflicts Returns all stored conflicts for this connection, newest detected first, including resolved records, raw stored snapshots/resolution history and specialized relationship or recurring review details. No filtering or pagination is applied. Requires the integration platform global/configured client feature gate (normally integration_platform_foundation). Requires permission: one of access_account_settings. # List integration field-mapping versions Source: https://api-docs.helpyousponsor.com/api-reference/integrations/list-integration-field-mapping-versions get /integrations/hub/connections/{connection_id}/field-mappings Returns all mapping versions for the selected connection, newest update first. Requires the integration platform global/configured client feature gate (normally integration_platform_foundation). Requires permission: one of access_account_settings. # List integration metadata snapshots Source: https://api-docs.helpyousponsor.com/api-reference/integrations/list-integration-metadata-snapshots get /integrations/hub/connections/{connection_id}/metadata-snapshots Returns newest snapshots for the selected connection. limit defaults to 25 and is passed to the snapshot query. Requires the integration platform global/configured client feature gate (normally integration_platform_foundation). Requires permission: one of access_account_settings. # List integration object links Source: https://api-docs.helpyousponsor.com/api-reference/integrations/list-integration-object-links get /integrations/hub/connections/{connection_id}/object-mappings Returns stored source/provider identity and designation links for the selected connection, newest update first. Requires the integration platform global/configured client feature gate (normally integration_platform_foundation). Requires permission: one of access_account_settings. # List integration sync events Source: https://api-docs.helpyousponsor.com/api-reference/integrations/list-integration-sync-events get /integrations/hub/connections/{connection_id}/sync-events Returns operational event records for the selected connection, newest occurrence first. Includes stored payloads and link metadata; use sync-history for customer-safe summaries. Requires the integration platform global/configured client feature gate (normally integration_platform_foundation). Requires permission: one of access_account_settings. # List integration sync runs Source: https://api-docs.helpyousponsor.com/api-reference/integrations/list-integration-sync-runs get /integrations/hub/connections/{connection_id}/sync-runs Returns stored connection runs, newest first. This compatibility list is unpaginated; use sync-history for paginated safe operational summaries. Requires the integration platform global/configured client feature gate (normally integration_platform_foundation). Requires permission: one of access_account_settings. # List QuickBooks issues or activity Source: https://api-docs.helpyousponsor.com/api-reference/integrations/list-quickbooks-issues-or-activity get /integrations/hub/connections/{connection_id}/quickbooks/issues Defaults to unresolved failed/needs_review/retry_queued customer, item, account, settlement, refund and dispute events, omitting superseded retry sources. scope=all includes financial eligibility and applies status/record_type filters; those filters do not affect scope=issues. Default 15 rows, maximum 50. Requires the integration platform global/configured client feature gate (normally integration_platform_foundation). Requires permission: one of access_account_settings. # List QuickBooks payout account choices Source: https://api-docs.helpyousponsor.com/api-reference/integrations/list-quickbooks-payout-account-choices get /admin/quickbooks/stripe-payouts/accounts Reads active QuickBooks accounts and up to1,000 usable active Service items from the connected company. Requires permission: one of access_payment_gateways. # List QuickBooks settlement issues Source: https://api-docs.helpyousponsor.com/api-reference/integrations/list-quickbooks-settlement-issues get /integrations/hub/connections/{connection_id}/quickbooks/settlement-issues Compatibility alias for the same issue/activity listing, including customer/item/account issues. Defaults to scope=issues; scope=all enables status/record_type filters. Default 15 rows, maximum 50. Requires the integration platform global/configured client feature gate (normally integration_platform_foundation). Requires permission: one of access_account_settings. # List recipient QuickBooks class assignments Source: https://api-docs.helpyousponsor.com/api-reference/integrations/list-recipient-quickbooks-class-assignments get /admin/entities_for_campaign Returns organization recipients/campaigns whose program_id equals the path program. class_id is returned only when entity classes are enabled for that program; otherwise null. The route without a program selects records with null program_id. Requires permission: one of programs_view, manage_programs, program-all. # List recipient QuickBooks class assignments for a program Source: https://api-docs.helpyousponsor.com/api-reference/integrations/list-recipient-quickbooks-class-assignments-for-a-program get /admin/entities_for_campaign/{program_id} Returns organization recipients/campaigns whose program_id equals the path program. class_id is returned only when entity classes are enabled for that program; otherwise null. The route without a program selects records with null program_id. Requires permission: one of programs_view, manage_programs, program-all. # List safe integration sync history Source: https://api-docs.helpyousponsor.com/api-reference/integrations/list-safe-integration-sync-history get /integrations/hub/connections/{connection_id}/sync-history Returns paginated run summaries, default15 maximum 50, excluding healthy completed scheduled reconcile runs with no events. Includes counts/duration rather than raw provider payloads. Requires the integration platform global/configured client feature gate (normally integration_platform_foundation). Requires permission: one of access_account_settings. # List stored integration webhook receipts Source: https://api-docs.helpyousponsor.com/api-reference/integrations/list-stored-integration-webhook-receipts get /integrations/hub/connections/{connection_id}/webhook-events Returns selected connection receipts, newest received first, with headers and payload fields redacted by sensitive-key policy. Requires the integration platform global/configured client feature gate (normally integration_platform_foundation). Requires permission: one of access_account_settings. # Mark an integration webhook for replay Source: https://api-docs.helpyousponsor.com/api-reference/integrations/mark-an-integration-webhook-for-replay post /integrations/hub/webhook-events/{event_id}/replay Updates the stored receipt to replay_queued, increments attempts and records replay time. This endpoint returns that local state; it does not itself dispatch a processing job. Requires the integration platform global/configured client feature gate (normally integration_platform_foundation). Requires permission: one of access_account_settings. # Pause ongoing Bloomerang sync Source: https://api-docs.helpyousponsor.com/api-reference/integrations/pause-ongoing-bloomerang-sync post /integrations/hub/connections/{connection_id}/bloomerang/ongoing-sync/pause Pauses active or prepared automatic movement while preserving mappings, cursors and rollback snapshots. Optional reason is recorded only on first pause. Repeated pauses return already_paused and still quarantine pending outgoing work. Requires connected state; no provider send is performed. Requires the integration platform global/configured client feature gate (normally integration_platform_foundation). Requires permission: one of access_account_settings. # Post a Stripe payout to QuickBooks Source: https://api-docs.helpyousponsor.com/api-reference/integrations/post-a-stripe-payout-to-quickbooks post /admin/quickbooks/stripe-payouts/reconcile Rebuilds the preview and posts only when ready. Uses a per-payout lock, outbox and provider idempotency identity to avoid duplicate Deposits; posted requests return the existing record. Validates current company, currency, account types and fee-recovery item. Review-needed results remain200 with status needs_review; posting failures persist failed and return422. Requires permission: one of access_payment_gateways. # Prepare Bloomerang mapping templates Source: https://api-docs.helpyousponsor.com/api-reference/integrations/prepare-bloomerang-mapping-templates post /integrations/hub/connections/{connection_id}/bloomerang/bootstrap-mappings Creates approved defaults only for object pairs without an approved version, preserving existing approved choices. Includes constituent, household, relationship, transaction, soft-credit and refund templates. Returns matching stored versions, including older versions; it does not import or send records. Requires the integration platform global/configured client feature gate (normally integration_platform_foundation). Requires permission: one of access_account_settings. # Prepare HubSpot mapping templates Source: https://api-docs.helpyousponsor.com/api-reference/integrations/prepare-hubspot-mapping-templates post /integrations/hub/connections/{connection_id}/hubspot/bootstrap-mappings Creates approved defaults only for object pairs without an approved mapping, preserving current approved choices. Includes contact, selected company target, relationship, activity, deal, product and discovered supported custom-object templates. Returns matching stored versions, including older versions. Does not import or send records. Requires the integration platform global/configured client feature gate (normally integration_platform_foundation). Requires permission: one of access_account_settings. # Prepare ongoing Bloomerang sync Source: https://api-docs.helpyousponsor.com/api-reference/integrations/prepare-ongoing-bloomerang-sync post /integrations/hub/connections/{connection_id}/bloomerang/ongoing-sync/activate Applies unambiguous local donor/household identity links, records prior cursor/safeguard snapshots, initializes cursors to cursor_at and quarantines old pending outgoing work. Removes historical field/household protection while retaining notification suppression and enabling future constituent-creation/adoption choices. With readiness review enabled, returns prepared/inactive and requires a fresh inbound preview plus resume; legacy rollout activates immediately. Already-active calls only reconcile newly imported identities without moving the saved baseline. Paused/prepared activations must use resume instead. Requires the integration platform global/configured client feature gate (normally integration_platform_foundation). Requires permission: one of access_account_settings. # Prepare Salesforce mapping templates Source: https://api-docs.helpyousponsor.com/api-reference/integrations/prepare-salesforce-mapping-templates post /integrations/hub/connections/{connection_id}/salesforce/bootstrap-mappings Creates approved defaults only for object pairs lacking an approved version, preserving existing approved choices. Templates match NPSP versus Nonprofit Cloud and include metadata-supported optional objects. Returns matching stored versions, including older versions; it does not import or send records. Requires the integration platform global/configured client feature gate (normally integration_platform_foundation). Requires permission: one of access_account_settings. # Preview a correction to historical QuickBooks sync Source: https://api-docs.helpyousponsor.com/api-reference/integrations/preview-a-correction-to-historical-quickbooks-sync post /integrations/hub/connections/{connection_id}/quickbooks/historical/runs/{run_id}/correction-preview Requires a backfill/correction execution whose provider checkpoints have all finished. Creates a zero-write correction preview from current sources; processed create/update/link checkpoints become corrective updates, while unprocessed writes become conflicts. Separate approval is required. Requires a connected QuickBooks company for mutations. Current user/group permissions must include manage_settings, access_account_settings or group_all in addition to route access. Requires the integration platform global/configured client feature gate (normally integration_platform_foundation). Requires permission: one of access_account_settings. # Preview a historical QuickBooks sync Source: https://api-docs.helpyousponsor.com/api-reference/integrations/preview-a-historical-quickbooks-sync post /integrations/hub/connections/{connection_id}/quickbooks/historical/preview Builds a frozen zero-provider-write plan for selected customers, service items and/or sales receipts, at most500 total records. Program ids must belong to this organization. Eligibility, existing mappings and missing dependencies choose create/update/link/skip/conflict; stores source fingerprints and snapshot_hash. Requires a connected QuickBooks company for mutations. Current user/group permissions must include manage_settings, access_account_settings or group_all in addition to route access. Requires the integration platform global/configured client feature gate (normally integration_platform_foundation). Requires permission: one of access_account_settings. # Preview a Stripe payout reconciliation Source: https://api-docs.helpyousponsor.com/api-reference/integrations/preview-a-stripe-payout-reconciliation post /admin/quickbooks/stripe-payouts/preview Retrieves the payout and automatic payout balance transactions, checks qualified ledger lineage and persists the reconciliation evidence. Only paid automatic standard bank payouts with matching currency/net totals are ready; unsupported or unmatched activity returns needs_review. Does not create a QuickBooks Deposit. Requires permission: one of access_payment_gateways. # Preview ongoing Bloomerang sync preparation Source: https://api-docs.helpyousponsor.com/api-reference/integrations/preview-ongoing-bloomerang-sync-preparation post /integrations/hub/connections/{connection_id}/bloomerang/ongoing-sync/preview Requires a connected Bloomerang connection, approved donor mapping with provider Id, a tenant donor form and a non-future cursor_at. Scans local historical source ids and exact household membership to plan safe identity-link adoption; collisions and non-exact households are counted rather than guessed. Does not adopt mappings, alter cursors/settings or queue record movement. Requires the integration platform global/configured client feature gate (normally integration_platform_foundation). Requires permission: one of access_account_settings. # Preview outgoing Bloomerang donation review Source: https://api-docs.helpyousponsor.com/api-reference/integrations/preview-outgoing-bloomerang-donation-review get /integrations/hub/connections/{connection_id}/outbound-review Classifies failed/waiting and stale unreserved donation work without sending. Returns bounded counts, financial totals, reviewable rows and an opaque token. Only Bloomerang donations are supported; limit defaults to 500. Requires the integration platform global/configured client feature gate (normally integration_platform_foundation). Requires permission: one of access_account_settings. # Queue a Bloomerang inbound preview Source: https://api-docs.helpyousponsor.com/api-reference/integrations/queue-a-bloomerang-inbound-preview post /integrations/hub/connections/{connection_id}/bloomerang/dry-run Requires a connected connection and queues a dry_run with mapping/bootstrap preparation, source-scan completeness checks, dependency predictions and readiness evidence. Does not apply business-record imports or write provider records; it does persist local review/conflict/event state. HTTP 202 confirms queued work, whose completed status may still contain blocked decisions. Full scan defaults page_size 25/max_pages 2; cursor mode defaults 50/10. Caps are 50 records/page and 1000 pages; inspect source_scan_errors if the source total was not reached. Requires the integration platform global/configured client feature gate (normally integration_platform_foundation). Requires permission: one of access_account_settings. # Queue a manual Bloomerang import Source: https://api-docs.helpyousponsor.com/api-reference/integrations/queue-a-manual-bloomerang-import post /integrations/hub/connections/{connection_id}/bloomerang/import Requires a connected connection and queues an actual inbound record import using configured mappings, matching and migration safeguards. Manual imports do not advance recurring cursors; use_cursors optionally limits source reads, and replay_from_baseline needs an active/paused saved baseline. mapped_records_only requires donor-only full scans without a constituent filter and rejects missing source identities. Accepted work can later fail context/source completeness guards. Full scan defaults 25 records/page and 2 pages; cursor reads default50/10. HTTP 202 does not confirm record creation. Requires the integration platform global/configured client feature gate (normally integration_platform_foundation). Requires permission: one of access_account_settings. # Queue a reviewed ongoing Bloomerang poll Source: https://api-docs.helpyousponsor.com/api-reference/integrations/queue-a-reviewed-ongoing-bloomerang-poll post /integrations/hub/connections/{connection_id}/bloomerang/poll Requires connected active ongoing sync and saved required cursors. The worker rechecks current reviewed configuration/scope before applying inbound changes; unreviewed/stale scopes are blocked. Normal polling forces cursor reads/advancement, default 50 records/page and 10 pages. mapped_records_only is a donor-only full-scan remediation that does not advance cursors; optional use_cursors must remain false. HTTP 202 only confirms queued work and does not guarantee a completed import. Requires the integration platform global/configured client feature gate (normally integration_platform_foundation). Requires permission: one of access_account_settings. # Queue an eligible outgoing integration retry Source: https://api-docs.helpyousponsor.com/api-reference/integrations/queue-an-eligible-outgoing-integration-retry post /integrations/hub/sync-events/{event_id}/retry Retries only a retryable outbound Bloomerang event or supported failed/needs_review QuickBooks customer, item or donation-settlement event with linked outbound work. Connection, reviewed outgoing scope, keep-local controls, migration safeguards, automatic-retry timing and settlement feature eligibility are checked. Atomically reserves work and queues a new audit attempt; HTTP 200 confirms queuing rather than provider completion. Requires the integration platform global/configured client feature gate (normally integration_platform_foundation). Requires permission: one of access_account_settings. # Queue an inbound HubSpot poll Source: https://api-docs.helpyousponsor.com/api-reference/integrations/queue-an-inbound-hubspot-poll post /integrations/hub/connections/{connection_id}/hubspot/poll Queues an inbound data poll using current approved mappings and configured company/contact/deal/activity scopes, updating source cursors as records are processed. page_size defaults to 100 and max_pages defaults to 10, maximum 25; accepted refresh_metadata/sample_size options do not alter the poll processing path. HTTP 202 confirms queued work and does not guarantee a successful import. Requires the integration platform global/configured client feature gate (normally integration_platform_foundation). Requires permission: one of access_account_settings. # Queue an inbound Salesforce poll Source: https://api-docs.helpyousponsor.com/api-reference/integrations/queue-an-inbound-salesforce-poll post /integrations/hub/connections/{connection_id}/salesforce/poll Queues inbound donor/recipient/donation work only for approved mappings that allow provider ownership, plus enabled interaction imports. NPSP and Nonprofit Cloud use their corresponding objects. page_size defaults to 100, maximum 200 per object; saved object cursor takes precedence over since, otherwise a new cursor defaults to seven days ago. Processing can change local records and advances eligible source cursors; HTTP 202 only confirms queuing. Requires the integration platform global/configured client feature gate (normally integration_platform_foundation). Requires permission: one of access_account_settings. # Queue donors for QuickBooks customer sync Source: https://api-docs.helpyousponsor.com/api-reference/integrations/queue-donors-for-quickbooks-customer-sync post /admin/sync_donor_to_quickbooks Accepts a nonempty array of tenant-owned donor ids, or all plus hysform_id to select donors in that form. Rejects invalid ids before capture. Requires a connected, non-disconnected QuickBooks Hub connection. Captures durable deduplicated outbox work; provider processing happens later and a relay repairs failed initial queue publication. Requires permission: one of groups, admins, new_form, forms, manage_programs, donors_manage, donations, manage_email, email_manager, manage_sms, sms_manager, sms_inbox_view, sms_inbox_reply, sms_inbox_manage, sendblue_manage, mailings_view, mailings_generate, mailings_manage, manage_settings, access_account_settings, access_payment_gateways, tasks_manage, trips_manage, events_manage, events_sponsor_manage, imports_manage, households_manage, notes_manage, reports_manage. # Queue HubSpot metadata reconciliation Source: https://api-docs.helpyousponsor.com/api-reference/integrations/queue-hubspot-metadata-reconciliation post /integrations/hub/connections/{connection_id}/hubspot/reconcile Queues metadata discovery, template preparation and mapping review without sample record import. The worker updates the metadata cursor after review. sample_size defaults to 5. HTTP 202 confirms queued local work; inspect the returned run for later completion/failure. Requires the integration platform global/configured client feature gate (normally integration_platform_foundation). Requires permission: one of access_account_settings. # Queue HubSpot outgoing sync Source: https://api-docs.helpyousponsor.com/api-reference/integrations/queue-hubspot-outgoing-sync post /integrations/hub/connections/{connection_id}/hubspot/outbound-sync Queues processing of pending/failed outgoing work using current approved provider mappings and settings. limit defaults to 100, maximum 500. The worker may create/update provider records; HTTP 202 confirms queued work and does not report completed sends. Requires the integration platform global/configured client feature gate (normally integration_platform_foundation). Requires permission: one of access_account_settings. # Queue outgoing Salesforce nonprofit sync Source: https://api-docs.helpyousponsor.com/api-reference/integrations/queue-outgoing-salesforce-nonprofit-sync post /integrations/hub/connections/{connection_id}/salesforce/outbound-sync Queues up to limit pending/failed outgoing records using current approved mappings and settings; default 100, maximum 500. Worker processing may create/update provider records. HTTP 202 confirms queued work and does not guarantee provider completion. Requires the integration platform global/configured client feature gate (normally integration_platform_foundation). Requires permission: one of access_account_settings. # Queue recipients for QuickBooks service item sync Source: https://api-docs.helpyousponsor.com/api-reference/integrations/queue-recipients-for-quickbooks-service-item-sync post /admin/sync_entity_to_quickbooks Queues deduplicated durable work for explicit recipient/campaign ids. Current organization and program permissions are checked for found recipients; unavailable ids are skipped. The legacy all selection currently resolves no recipients because this handler forwards only entity_ids to the selection resolver. Selected recipients with unresolved legacy service-item failures also carry recovery context for this connected company; recovery is recorded only after provider-confirmed success. Requires a connected QuickBooks company; accepted receipts do not establish provider completion. Requires permission: one of groups, admins, new_form, forms, manage_programs, donors_manage, donations, manage_email, email_manager, manage_sms, sms_manager, sms_inbox_view, sms_inbox_reply, sms_inbox_manage, sendblue_manage, mailings_view, mailings_generate, mailings_manage, manage_settings, access_account_settings, access_payment_gateways, tasks_manage, trips_manage, events_manage, events_sponsor_manage, imports_manage, households_manage, notes_manage, reports_manage. # Queue reviewed outgoing Bloomerang sync Source: https://api-docs.helpyousponsor.com/api-reference/integrations/queue-reviewed-outgoing-bloomerang-sync post /integrations/hub/connections/{connection_id}/bloomerang/outbound-sync Requires connected active ongoing sync and separately active outgoing authorization. Queues due outgoing work up to limit, default 100 maximum 500. Workers recheck connection/scope/migration suppression before provider changes and quarantine work when sending becomes inactive. HTTP 202 confirms queued work rather than completed provider writes. Requires the integration platform global/configured client feature gate (normally integration_platform_foundation). Requires permission: one of access_account_settings. # Queue Salesforce metadata reconciliation Source: https://api-docs.helpyousponsor.com/api-reference/integrations/queue-salesforce-metadata-reconciliation post /integrations/hub/connections/{connection_id}/salesforce/reconcile Queues metadata discovery, template preparation and mapping review, then advances the org-schema cursor. sample_size defaults to 10. Does not import business records. HTTP 202 confirms queued work; inspect later run/history state for completion or failure. Requires the integration platform global/configured client feature gate (normally integration_platform_foundation). Requires permission: one of access_account_settings. # Queue SAP metadata reconciliation Source: https://api-docs.helpyousponsor.com/api-reference/integrations/queue-sap-metadata-reconciliation post /integrations/hub/connections/{connection_id}/sap/reconcile Queues a durable reconcile run and returns202. The job refreshes provider metadata, ensures templates, repeats readiness/record previews and advances the metadata cursor. This current reconciliation implementation does not post financial exports. Requires the integration platform global/configured client feature gate (normally integration_platform_foundation). Requires permission: one of access_account_settings. # Queue selected reviewed donations for sending Source: https://api-docs.helpyousponsor.com/api-reference/integrations/queue-selected-reviewed-donations-for-sending post /integrations/hub/connections/{connection_id}/outbound-review/send Requires the current review token and distinct event_ids from its ready_to_send rows. Atomically rechecks and reserves the selected work, records retry attempts, then dispatches a Bloomerang outbound job. HTTP 202 means queued; provider completion is reported by sync history. Requires the integration platform global/configured client feature gate (normally integration_platform_foundation). Requires permission: one of access_account_settings. # Read a Connected Apps connection Source: https://api-docs.helpyousponsor.com/api-reference/integrations/read-a-connected-apps-connection get /integrations/hub/connections/{connection_id} Returns detailed organization-owned connection state, redacted credentials and related snapshots/runs/conflicts. Requires the integration platform global/configured client feature gate (normally integration_platform_foundation). Requires permission: one of access_account_settings. # Read a historical QuickBooks run Source: https://api-docs.helpyousponsor.com/api-reference/integrations/read-a-historical-quickbooks-run get /integrations/hub/connections/{connection_id}/quickbooks/historical/runs/{run_id} Returns the tenant/connection-owned QuickBooks run and ordered checkpoint details. Readiness/permission checks apply; this read does not advance execution. Requires a connected QuickBooks company for mutations. Current user/group permissions must include manage_settings, access_account_settings or group_all in addition to route access. Requires the integration platform global/configured client feature gate (normally integration_platform_foundation). Requires permission: one of access_account_settings. # Read an integration sync run Source: https://api-docs.helpyousponsor.com/api-reference/integrations/read-an-integration-sync-run get /integrations/hub/sync-runs/{run_id} Returns one organization-owned run with ordered operational events, preserving provider-dependent context while removing related_outbox_event_snapshots. Requires the integration platform global/configured client feature gate (normally integration_platform_foundation). Requires permission: one of access_account_settings. # Read Bloomerang mapping options Source: https://api-docs.helpyousponsor.com/api-reference/integrations/read-bloomerang-mapping-options get /integrations/hub/connections/{connection_id}/bloomerang/mapping-options Returns tenant form/field choices, source custom fields, current approved mappings/directions, group/interaction settings, historical safeguards, provider designation targets and saved program/recipient links. Provider target retrieval uses live paged reads with snapshot fallback. Setting choices do not by themselves activate record sync. Requires the integration platform global/configured client feature gate (normally integration_platform_foundation). Requires permission: one of access_account_settings. # Read HubSpot mapping options Source: https://api-docs.helpyousponsor.com/api-reference/integrations/read-hubspot-mapping-options get /integrations/hub/connections/{connection_id}/hubspot/mapping-options Returns tenant donor forms/fields, HubSpot contact properties, latest approved contact/company mappings, current settings and eligible program/recipient fields. Selects the requested form if valid, otherwise saved form, otherwise first form by name. Deal pipelines prefer a live provider read with metadata fallback; contact properties use built-in defaults when metadata is absent. Requires the integration platform global/configured client feature gate (normally integration_platform_foundation). Requires permission: one of access_account_settings. # Read QuickBooks accounting attachment settings Source: https://api-docs.helpyousponsor.com/api-reference/integrations/read-quickbooks-accounting-attachment-settings get /admin/fields_to_attach Refreshes the connection and returns provider accounts/classes plus saved program accounting, designation revenue items and resolved override targets. Missing credentials or an expired authorization returns400; provider lookup errors can return500. The route without a program reads legacy empty-suffix settings rather than the unsuffixed global settings written by POST. Requires permission: one of programs_view, manage_programs, program-all. # Read QuickBooks accounting attachment settings for a program Source: https://api-docs.helpyousponsor.com/api-reference/integrations/read-quickbooks-accounting-attachment-settings-for-a-program get /admin/fields_to_attach/{program_id} Refreshes the connection and returns provider accounts/classes plus saved program accounting, designation revenue items and resolved override targets. Missing credentials or an expired authorization returns400; provider lookup errors can return500. The route without a program reads legacy empty-suffix settings rather than the unsuffixed global settings written by POST. Requires permission: one of programs_view, manage_programs, program-all. # Read QuickBooks customer field mappings Source: https://api-docs.helpyousponsor.com/api-reference/integrations/read-quickbooks-customer-field-mappings get /admin/fields_to_sync Returns standard/custom donor fields, provider customer fields and current mappings. Without a program, the configured donor form is required. With a program, its donor form and customer mappings are used; an unavailable program yields empty donor fields. Custom-field discovery refreshes stale cache; refresh_custom_fields requests a refresh even while fresh. Requires permission: one of programs_view, manage_programs, program-all. # Read QuickBooks customer field mappings for a program Source: https://api-docs.helpyousponsor.com/api-reference/integrations/read-quickbooks-customer-field-mappings-for-a-program get /admin/fields_to_sync/{program_id} Returns standard/custom donor fields, provider customer fields and current mappings. Without a program, the configured donor form is required. With a program, its donor form and customer mappings are used; an unavailable program yields empty donor fields. Custom-field discovery refreshes stale cache; refresh_custom_fields requests a refresh even while fresh. Requires permission: one of programs_view, manage_programs, program-all. # Read QuickBooks deletion sync settings Source: https://api-docs.helpyousponsor.com/api-reference/integrations/read-quickbooks-deletion-sync-settings get /admin/quickbooks/delete-sync-settings Returns the selected program override or inherited global deletion settings. Both flags default false. Requires permission: one of access_payment_gateways. # Read QuickBooks duplicate customer policy Source: https://api-docs.helpyousponsor.com/api-reference/integrations/read-quickbooks-duplicate-customer-policy get /admin/quickbooks/customer-sync-settings Returns the selected program override or inherited global duplicate-donor policy, default false. Requires permission: one of access_payment_gateways. # Read QuickBooks service item field mappings Source: https://api-docs.helpyousponsor.com/api-reference/integrations/read-quickbooks-service-item-field-mappings get /admin/program_fields_to_sync Returns the configured program form fields, QuickBooks Name/Description/UnitPrice/Sku target options and saved mappings. Program-specific reads also return provider item categories when available; lookup errors produce an empty category list. Without a program, program_hysform_id is interpreted as a program id. Requires permission: one of programs_view, manage_programs, program-all. # Read QuickBooks service item field mappings for a program Source: https://api-docs.helpyousponsor.com/api-reference/integrations/read-quickbooks-service-item-field-mappings-for-a-program get /admin/program_fields_to_sync/{program_id} Returns the configured program form fields, QuickBooks Name/Description/UnitPrice/Sku target options and saved mappings. Program-specific reads also return provider item categories when available; lookup errors produce an empty category list. Without a program, program_hysform_id is interpreted as a program id. Requires permission: one of programs_view, manage_programs, program-all. # Read QuickBooks Stripe-payout settings Source: https://api-docs.helpyousponsor.com/api-reference/integrations/read-quickbooks-stripe-payout-settings get /admin/quickbooks/stripe-payouts/settings Returns the five account/item mappings for the organization's legacy QuickBooks connection. Requires permission: one of access_payment_gateways. # Read QuickBooks sync direction Source: https://api-docs.helpyousponsor.com/api-reference/integrations/read-quickbooks-sync-direction get /admin/quickbooks/sync-direction Returns the selected program override or inherited global sync direction, default two_way, and display options. Requires permission: one of access_payment_gateways. # Read recent Stripe payout reconciliations Source: https://api-docs.helpyousponsor.com/api-reference/integrations/read-recent-stripe-payout-reconciliations get /admin/quickbooks/stripe-payouts/history Lists recent reconciliations for the current organization QuickBooks connection, newest update first; limit defaults25 and is clamped1–100. Requires permission: one of access_payment_gateways. # Read safe events and readiness for an integration run Source: https://api-docs.helpyousponsor.com/api-reference/integrations/read-safe-events-and-readiness-for-an-integration-run get /integrations/hub/connections/{connection_id}/sync-history/{run_id}/events Returns safe event changes and Bloomerang review readiness. A supplied group_key must exactly match a server-generated group or nested dependency. With group_key results are paginated; without it available readiness returns representative group events, otherwise normal pagination defaults to 25, maximum 100. Requires the integration platform global/configured client feature gate (normally integration_platform_foundation). Requires permission: one of access_account_settings. # Read Salesforce nonprofit mapping options Source: https://api-docs.helpyousponsor.com/api-reference/integrations/read-salesforce-nonprofit-mapping-options get /integrations/hub/connections/{connection_id}/salesforce/mapping-options Returns organization donor forms, compatible contribution/number/campaign programs, writable provider fields, object names/labels, approved mappings and interaction availability. Requested choices fall back to stored choices, then only to a sole available option; multiple choices can leave selection null. Provider fields use stored metadata, live describe and built-in fallback in that order. Requires the integration platform global/configured client feature gate (normally integration_platform_foundation). Requires permission: one of access_account_settings. # Read the connected QuickBooks company name Source: https://api-docs.helpyousponsor.com/api-reference/integrations/read-the-connected-quickbooks-company-name get /admin/quickbooks/organization Refreshes credentials and reads CompanyInfo. Expired authorization can return200 with needs_reauth=true and a message instead of organization_name. Missing credentials return400; absent integration404. Requires permission: one of access_payment_gateways. # Record an integration conflict Source: https://api-docs.helpyousponsor.com/api-reference/integrations/record-an-integration-conflict post /integrations/hub/connections/{connection_id}/conflicts Stores local conflict evidence with open status by default. Optional event and mapping links must belong to this organization and selected connection. Snapshot, field-list and resolution JSON are provider/workflow dependent; recording a conflict does not apply values or contact a provider. Requires the integration platform global/configured client feature gate (normally integration_platform_foundation). Requires permission: one of access_account_settings. # Register a Zapier Connected App Source: https://api-docs.helpyousponsor.com/api-reference/integrations/register-a-zapier-connected-app post /integrations/hub/providers/zapier/connect Creates or reconnects an organization Zapier record using existing active, non-revoked, non-expired API-key count. Returns warning health when none exist. This operation does not issue an API key, create a Zap or authorize Zapier on the user's behalf. Requires the integration platform to be enabled globally or by its configured client feature flag (normally integration_platform_foundation). Requires permission: one of access_account_settings. # Remove a Bloomerang program or recipient link Source: https://api-docs.helpyousponsor.com/api-reference/integrations/remove-a-bloomerang-program-or-recipient-link delete /integrations/hub/connections/{connection_id}/bloomerang/recipient-mapping/{mapping_id} Supersedes the selected active organization/connection-owned designation link. Removing the currently selected program link selects a remaining active target for that program or clears its selected program context. Recipient links do not clear program selection. Does not delete local/provider recipients or transactions. Requires the integration platform global/configured client feature gate (normally integration_platform_foundation). Requires permission: one of access_account_settings. # Remove a disconnected Connected App Source: https://api-docs.helpyousponsor.com/api-reference/integrations/remove-a-disconnected-connected-app delete /integrations/hub/connections/{connection_id}/remove Requires disconnected status. Retires its pending outbound work, mappings and cursors, releases provider identity uniqueness, clears channel credentials and soft-deletes the connection. Requires the integration platform global/configured client feature gate (normally integration_platform_foundation). Requires permission: one of access_account_settings. # Remove the legacy QuickBooks integration Source: https://api-docs.helpyousponsor.com/api-reference/integrations/remove-the-legacy-quickbooks-integration delete /admin/quickbooks/disconnect Deletes this organization selected legacy QuickBooks Integration record and records the disconnect activity. The operation does not call the provider token-revocation endpoint. Requires permission: one of access_payment_gateways. # Replace integration credentials Source: https://api-docs.helpyousponsor.com/api-reference/integrations/replace-integration-credentials post /integrations/hub/connections/{connection_id}/reauthorize Stores supplied provider-specific credential JSON, marks connected and clears prior disconnect/error state. Returns detailed redacted credentials; use provider authorization flows when they are required for that integration. Requires the integration platform global/configured client feature gate (normally integration_platform_foundation). Requires permission: one of access_account_settings. # Request a WhatsApp staff-link code Source: https://api-docs.helpyousponsor.com/api-reference/integrations/request-a-whatsapp-staff-link-code post /integrations/hub/providers/twilio/link Sends an eight-digit code to the supplied E.164 WhatsApp number after checking a recent inbound message (within23 hours) to the configured sender. Requires Workspace Agent channel rollout/use permission, active membership and enabled Twilio setup. Existing workspace links must be changed through support. One request per user/destination per minute; code expires after five minutes. Requires the integration platform to be enabled globally or by its configured client feature flag (normally integration_platform_foundation). Requires permission: one of access_account_settings. # Reset ongoing sync and restore prior safeguards Source: https://api-docs.helpyousponsor.com/api-reference/integrations/reset-ongoing-sync-and-restore-prior-safeguards post /integrations/hub/connections/{connection_id}/bloomerang/ongoing-sync/restore Requires an active, paused or prepared activation with complete prior cursor/context snapshots. Removes only identity links marked as created by that activation, restores or removes saved cursors, restores the three prior migration/creation settings, marks reset/inactive and quarantines pending outgoing work. Does not undo prior donor/gift/provider data changes or replay history. Requires the integration platform global/configured client feature gate (normally integration_platform_foundation). Requires permission: one of access_account_settings. # Resolve a reviewed donor identity collision Source: https://api-docs.helpyousponsor.com/api-reference/integrations/resolve-a-reviewed-donor-identity-collision post /integrations/hub/connections/{connection_id}/donor-identity-decisions/{event_id}/resolve Defaults to match_separate_donor. Uses the expected run/current-donor/claim guards under lock; competing reviews and newer evidence are rejected. Matching writes the source identity mapping and can move an existing claimed mapping only to an explicitly selected separate donor. source_record_merged resolves local evidence; a missing-source decision retires its obsolete mapping and clears only matching legacy source-id fields. Donor records are not merged and gifts/payments/contact details are preserved. Verify returned source identities before resuming sync. Requires the integration platform global/configured client feature gate (normally integration_platform_foundation). Requires permission: one of access_account_settings. # Resume a historical QuickBooks execution Source: https://api-docs.helpyousponsor.com/api-reference/integrations/resume-a-historical-quickbooks-execution post /integrations/hub/connections/{connection_id}/quickbooks/historical/runs/{run_id}/resume Resumes pending/failed backfill or correction checkpoints for the same connected company. Captures current approved work into the durable outbox; source changes can require a fresh preview rather than silently executing changed records. Requires a connected QuickBooks company for mutations. Current user/group permissions must include manage_settings, access_account_settings or group_all in addition to route access. Requires the integration platform global/configured client feature gate (normally integration_platform_foundation). Requires permission: one of access_account_settings. # Resume reviewed inbound Bloomerang sync Source: https://api-docs.helpyousponsor.com/api-reference/integrations/resume-reviewed-inbound-bloomerang-sync post /integrations/hub/connections/{connection_id}/bloomerang/ongoing-sync/resume With readiness review enabled, requires a same-connection reviewed_sync_run_id with current complete/scope-compatible evidence, no newer relevant review and freshness within 24 hours. Selects ready object types or the requested subset, adds required donor/donation dependencies, validates cursors and can partially activate ready scopes; group is review/manual-only. A readiness-bound resume enables imports and leaves outgoing sending paused. Legacy rollout resumes saved cursor state without a review. Already-active requests return existing state unless extending partial activation with a reviewed run. Requires the integration platform global/configured client feature gate (normally integration_platform_foundation). Requires permission: one of access_account_settings. # Retry a historical QuickBooks checkpoint Source: https://api-docs.helpyousponsor.com/api-reference/integrations/retry-a-historical-quickbooks-checkpoint post /integrations/hub/connections/{connection_id}/quickbooks/historical/runs/{run_id}/events/{event_id}/retry Retries only retryable failed/needs_review/skipped execution checkpoints belonging to this run/connection. Requires unchanged approved source and a reviewable outbox attempt; an already queued/processing checkpoint fails validation. Dispatches the retry without assuming provider completion. Requires a connected QuickBooks company for mutations. Current user/group permissions must include manage_settings, access_account_settings or group_all in addition to route access. Requires the integration platform global/configured client feature gate (normally integration_platform_foundation). Requires permission: one of access_account_settings. # Review future sending to Bloomerang Source: https://api-docs.helpyousponsor.com/api-reference/integrations/review-future-sending-to-bloomerang post /integrations/hub/connections/{connection_id}/bloomerang/ongoing-sync/outbound/preview Builds a no-send review of approved outgoing mappings inside active inbound scope. Reports open conflicts, existing actionable outgoing work and historical suppression; ready reviews include an encrypted 24-hour token. Does not activate sending, replay history, charge or contact provider write endpoints. Requires the integration platform global/configured client feature gate (normally integration_platform_foundation). Requires permission: one of access_account_settings. # Review HubSpot mapping and import readiness Source: https://api-docs.helpyousponsor.com/api-reference/integrations/review-hubspot-mapping-and-import-readiness post /integrations/hub/connections/{connection_id}/hubspot/dry-run Synchronously discovers metadata if requested or missing, ensures templates, persists mapping/ownership conflicts and predicts sample company/contact outcomes without creating donor/household records or writing provider records. Completion can include errors/conflicts; inspect counters and summary. Default sample metadata size 5; preview page_size defaults to 25 and max_pages defaults to 1, with preview pages capped at 3 even though validation accepts 25. Requires the integration platform global/configured client feature gate (normally integration_platform_foundation). Requires permission: one of access_account_settings. # Review outgoing donations owned by archived donors Source: https://api-docs.helpyousponsor.com/api-reference/integrations/review-outgoing-donations-owned-by-archived-donors get /integrations/hub/connections/{connection_id}/outbound-donation-owner-decisions Returns local payment groups whose outgoing work is waiting for a missing donor mapping and whose current owner is archived. Exposes actual candidate matching, identity/commitment/payment safety blockers, separate keep-local eligibility, current tokens and a potentially undoable prior resolution. Totals can span currencies while the top-level currency comes from the first group; review each group currency. No provider requests are sent. Requires the integration platform global/configured client feature gate (normally integration_platform_foundation). Requires permission: one of access_account_settings. # Review Salesforce mapping readiness Source: https://api-docs.helpyousponsor.com/api-reference/integrations/review-salesforce-mapping-readiness post /integrations/hub/connections/{connection_id}/salesforce/dry-run Synchronously uses existing metadata or discovers it when refresh_metadata is true or no snapshot exists. Ensures templates, checks org/template shape, required object/field permissions and financial/multiple-provider ownership, and records local review events/conflicts. A completed run may include errors/conflicts. sample_size defaults to 10 for metadata discovery; this is mapping review and does not import sample donors or write provider records. Requires the integration platform global/configured client feature gate (normally integration_platform_foundation). Requires permission: one of access_account_settings. # Review SAP export readiness Source: https://api-docs.helpyousponsor.com/api-reference/integrations/review-sap-export-readiness post /integrations/hub/connections/{connection_id}/sap/dry-run Synchronously reviews metadata, accounting context, ownership conflicts and up to25 latest donations (default10), plus up to10 commitments when enabled. May persist open ownership conflicts and local templates. Predicted create/update counters and completed review status do not represent SAP writes. Requires the integration platform global/configured client feature gate (normally integration_platform_foundation). Requires permission: one of access_account_settings. # Save a program QuickBooks item category Source: https://api-docs.helpyousponsor.com/api-reference/integrations/save-a-program-quickbooks-item-category put /admin/program_item_category/{program_id} Sets the selected program item-category id. Omitted, null or whitespace-only item_category_id removes the override. The program and integration must belong to this organization. Requires permission: one of manage_programs. # Save an integration conflict decision Source: https://api-docs.helpyousponsor.com/api-reference/integrations/save-an-integration-conflict-decision post /integrations/hub/conflicts/{conflict_id}/resolve Behavior depends on conflict type. Ordinary Bloomerang donor conflicts accept hys/provider defaults plus per-field overrides and apply provider values only for conflicted email, first_name, last_name, organization_name, phone, street, city, state, zip or country; unsupported types record status/history only. Inspect resolution_json.applied because a resolved receipt can report skipped/error. Relationship identity decisions keep_separate, same_or_reverse or choose_relationship stage a pending open decision, requiring the current expected_object_mapping_id or expected_stale_mapping_token, and target_hys_object_id for an explicit choice. Recurring schedule decision already_represented_in_hys requires expected_provider_object_id, expected_source_snapshot_token and expected_active_commitment_token from current review; it resolves by preserving existing commitments and payment behavior, followed by verification. Requires the integration platform global/configured client feature gate (normally integration_platform_foundation). Requires permission: one of access_account_settings. # Save Bloomerang constituent-to-donor mapping Source: https://api-docs.helpyousponsor.com/api-reference/integrations/save-bloomerang-constituent-to-donor-mapping post /integrations/hub/connections/{connection_id}/bloomerang/contact-donor-mapping Requires an organization donor form and available field pairs. Each canonical provider field may be used once (Name and FullName collide); an enabled relationship-manager custom field must be available and distinct. Requires a mapped field or enabled manager mapping. Saves historical-backfill protections and notification/outgoing suppression, creation/adoption choices and the next approved mapping without syncing. Creation requires outgoing ownership and explicit creation opt-in; omitted creation/manager enablement is false, omitted email-match/backfill choices preserve stored state. Direction follows sync_direction_control: configurable uses requested/current/default direction, locked_bidirectional forces bidirectional, and unavailable preserves current/default direction. Defaults are bidirectional. Returned context/mapping shows effective flags; saving direction and activating ongoing sync are separate. Requires the integration platform global/configured client feature gate (normally integration_platform_foundation). Requires permission: one of access_account_settings. # Save Bloomerang group tag import Source: https://api-docs.helpyousponsor.com/api-reference/integrations/save-bloomerang-group-tag-import post /integrations/hub/connections/{connection_id}/bloomerang/group-mapping Defaults enabled to true. Saves provider-owned group/tag membership setup for already mapped constituents, superseding prior group versions. Disabling returns mapping=null. Groups import into Gratona donor tags; this setup does not write Gratona tags back as Bloomerang groups or import records immediately. Requires the integration platform global/configured client feature gate (normally integration_platform_foundation). Requires permission: one of access_account_settings. # Save Bloomerang household setup Source: https://api-docs.helpyousponsor.com/api-reference/integrations/save-bloomerang-household-setup post /integrations/hub/connections/{connection_id}/bloomerang/household-mapping Atomically saves the next approved household mapping and mapped-constituents-only membership policy, superseding its previous approved version. Household setup does not create missing donor identities. Direction follows sync_direction_control: configurable uses requested/current/default direction, locked_bidirectional forces bidirectional, and unavailable preserves current/default direction. Defaults are bidirectional. Returned context/mapping shows effective flags; saving direction and activating ongoing sync are separate. Requires the integration platform global/configured client feature gate (normally integration_platform_foundation). Requires permission: one of access_account_settings. # Save Bloomerang interaction and note settings Source: https://api-docs.helpyousponsor.com/api-reference/integrations/save-bloomerang-interaction-and-note-settings post /integrations/hub/connections/{connection_id}/bloomerang/interaction-mapping Either enabled direction requires selected Task, Call, Meeting, Email or Note types. Omitted fields disable both directions and clear selection. Supersedes prior task/interaction/note mappings, creates outbound task/log mappings only when enabled, and creates Note ownership as hys/provider/bidirectional according to enabled directions. Returns first mapping plus all new mappings, without importing records, sending messages or writing provider records. Requires the integration platform global/configured client feature gate (normally integration_platform_foundation). Requires permission: one of access_account_settings. # Save Bloomerang relationship setup Source: https://api-docs.helpyousponsor.com/api-reference/integrations/save-bloomerang-relationship-setup post /integrations/hub/connections/{connection_id}/bloomerang/relationship-mapping Atomically approves the next constituent-relationship mapping and mapped-constituents-only member policy, superseding its previous version. Saving setup does not create donor/relationship records. Direction follows sync_direction_control: configurable uses requested/current/default direction, locked_bidirectional forces bidirectional, and unavailable preserves current/default direction. Defaults are bidirectional. Returned context/mapping shows effective flags; saving direction and activating ongoing sync are separate. Requires the integration platform global/configured client feature gate (normally integration_platform_foundation). Requires permission: one of access_account_settings. # Save Bloomerang transaction setup Source: https://api-docs.helpyousponsor.com/api-reference/integrations/save-bloomerang-transaction-setup post /integrations/hub/connections/{connection_id}/bloomerang/donation-mapping Saves donation direction, fallback, soft-credit and acknowledgement choices with the next approved transaction mapping. Enabling fallback requires an organization program and recipient belonging to it. Each supplied mapped_fields row requires a supported unique source path and non-empty label. Omitted fallback/soft-credit/acknowledgement booleans are false; disabling fallback clears its ids. Setup describes one payment with multiple designation allocations and requires existing donor/target links for future export; no payment/provider transaction is created here. Direction follows sync_direction_control: configurable uses requested/current/default direction, locked_bidirectional forces bidirectional, and unavailable preserves current/default direction. Defaults are bidirectional. Returned context/mapping shows effective flags; saving direction and activating ongoing sync are separate. Requires the integration platform global/configured client feature gate (normally integration_platform_foundation). Requires permission: one of access_account_settings. # Save HubSpot activity sync settings Source: https://api-docs.helpyousponsor.com/api-reference/integrations/save-hubspot-activity-sync-settings post /integrations/hub/connections/{connection_id}/hubspot/activity-mapping Ensures default mapping templates and stores enabled/types/link-policy/body-visibility choices. Omitted fields reset to disabled, empty types, matched_only and team respectively. This endpoint returns connection settings only and does not sync activities. Requires the integration platform global/configured client feature gate (normally integration_platform_foundation). Requires permission: one of access_account_settings. # Save HubSpot company mapping Source: https://api-docs.helpyousponsor.com/api-reference/integrations/save-hubspot-company-mapping post /integrations/hub/connections/{connection_id}/hubspot/company-mapping Selects household or organization_donor target, saves name-matching preference and approves the next company mapping while superseding previous company targets. source_of_truth defaults to bidirectional; omitted company_match_by_name preserves its stored value. Does not import or send company records. Requires the integration platform global/configured client feature gate (normally integration_platform_foundation). Requires permission: one of access_account_settings. # Save HubSpot contact-to-donor fields Source: https://api-docs.helpyousponsor.com/api-reference/integrations/save-hubspot-contact-to-donor-fields post /integrations/hub/connections/{connection_id}/hubspot/contact-donor-mapping Requires a donor form in this organization and at least one available form-field/property pair from mapping options. Creates and immediately approves the next donor/contact version, superseding its approved predecessor. source_of_truth defaults to provider and allow_email_match preserves its existing value when omitted. Saves connection form settings without running sync. Requires the integration platform global/configured client feature gate (normally integration_platform_foundation). Requires permission: one of access_account_settings. # Save HubSpot deal import settings Source: https://api-docs.helpyousponsor.com/api-reference/integrations/save-hubspot-deal-import-settings post /integrations/hub/connections/{connection_id}/hubspot/deal-mapping Stores whether deal import is enabled and selected stage ids, then approves a provider-owned deal/donation mapping. Enabling requires a non-empty stage selection. Omitted fields disable import and clear stages. Mapping defaults mark imported records as one-time donations; this request does not import deals. Requires the integration platform global/configured client feature gate (normally integration_platform_foundation). Requires permission: one of access_account_settings. # Save HubSpot product and outbound deal settings Source: https://api-docs.helpyousponsor.com/api-reference/integrations/save-hubspot-product-and-outbound-deal-settings post /integrations/hub/connections/{connection_id}/hubspot/product-mapping Stores selected program ids and name/description/price/sku recipient field choices, approving the next recipient/product mapping. Product sync or outbound deals require valid organization-owned programs; outbound deals additionally require pipeline and stage ids. Non-empty legacy product_field_mapping also applies to the first selected program. Omitted settings reset to disabled/empty/null; no provider record is sent by this call. Requires the integration platform global/configured client feature gate (normally integration_platform_foundation). Requires permission: one of access_account_settings. # Save legacy QuickBooks form assignments Source: https://api-docs.helpyousponsor.com/api-reference/integrations/save-legacy-quickbooks-form-assignments post /admin/quickbooks/donorform Stores nonempty string donor_form_id as the donor form assignment and program_id as the legacy program assignment. Integer JSON values, blank strings and other payload values are ignored. This operation does not start a sync. Requires permission: one of access_payment_gateways. # Save QuickBooks accounting attachment settings Source: https://api-docs.helpyousponsor.com/api-reference/integrations/save-quickbooks-accounting-attachment-settings post /admin/fields_to_attach Updates only supplied settings, globally or for the selected tenant-owned program. At least one setting is required; null or blank string clears a scalar setting. Nonempty income accounts must be active Income/Other Income; deposit accounts active Bank/Other Current Asset; classes active; revenue items active Service items. Provider validation failures return422 or retryable503. Program overrides retain only applicable desig-/entity- targets; global overrides retain desig- keys only. Requires permission: one of manage_programs. # Save QuickBooks accounting attachment settings for a program Source: https://api-docs.helpyousponsor.com/api-reference/integrations/save-quickbooks-accounting-attachment-settings-for-a-program post /admin/fields_to_attach/{program_id} Updates only supplied settings, globally or for the selected tenant-owned program. At least one setting is required; null or blank string clears a scalar setting. Nonempty income accounts must be active Income/Other Income; deposit accounts active Bank/Other Current Asset; classes active; revenue items active Service items. Provider validation failures return422 or retryable503. Program overrides retain only applicable desig-/entity- targets; global overrides retain desig- keys only. Requires permission: one of manage_programs. # Save QuickBooks customer field mappings Source: https://api-docs.helpyousponsor.com/api-reference/integrations/save-quickbooks-customer-field-mappings post /admin/fields_to_sync Replaces the global mappings or selected program customer mapping with trimmed nonempty string-to-string pairs from the JSON body; program_id is ignored as a body field. Empty sanitized input clears the selected mapping. Does not write provider customers. Requires permission: one of manage_programs. # Save QuickBooks customer field mappings for a program Source: https://api-docs.helpyousponsor.com/api-reference/integrations/save-quickbooks-customer-field-mappings-for-a-program post /admin/fields_to_sync/{program_id} Replaces the global mappings or selected program customer mapping with trimmed nonempty string-to-string pairs from the JSON body; program_id is ignored as a body field. Empty sanitized input clears the selected mapping. Does not write provider customers. Requires permission: one of manage_programs. # Save QuickBooks deletion sync settings Source: https://api-docs.helpyousponsor.com/api-reference/integrations/save-quickbooks-deletion-sync-settings put /admin/quickbooks/delete-sync-settings Updates only supplied deletion flags, globally or for one organization program. At least one flag is required. This changes subsequent sync behavior; it does not immediately delete records. Requires permission: one of access_payment_gateways. # Save QuickBooks duplicate customer policy Source: https://api-docs.helpyousponsor.com/api-reference/integrations/save-quickbooks-duplicate-customer-policy put /admin/quickbooks/customer-sync-settings Sets whether a newly imported QuickBooks customer can create a duplicate local donor, globally or for one organization program. Requires the boolean flag; this operation does not import customers immediately. Requires permission: one of access_payment_gateways. # Save QuickBooks recipient class assignments Source: https://api-docs.helpyousponsor.com/api-reference/integrations/save-quickbooks-recipient-class-assignments put /admin/fields_to_attach Stores use_entity_classes for the selected program and applies each entity_classes pair to the legacy entity-class mapping. Existing mappings omitted from the list are retained. Each pair must contain entity_id and class_id for a recipient and QuickBooks class available to the organization. Requires permission: one of manage_programs. # Save QuickBooks recipient class assignments for a program Source: https://api-docs.helpyousponsor.com/api-reference/integrations/save-quickbooks-recipient-class-assignments-for-a-program put /admin/fields_to_attach/{program_id} Stores use_entity_classes for the selected program and applies each entity_classes pair to the legacy entity-class mapping. Existing mappings omitted from the list are retained. Each pair must contain entity_id and class_id for a recipient and QuickBooks class available to the organization. Requires permission: one of manage_programs. # Save QuickBooks service item field mappings Source: https://api-docs.helpyousponsor.com/api-reference/integrations/save-quickbooks-service-item-field-mappings post /admin/program_fields_to_sync Replaces the global or program-specific item field mapping with trimmed nonempty string-to-string JSON pairs. Sanitized input must not be empty. Does not start a provider sync; requires an existing QuickBooks integration. Requires permission: one of manage_programs. # Save QuickBooks service item field mappings for a program Source: https://api-docs.helpyousponsor.com/api-reference/integrations/save-quickbooks-service-item-field-mappings-for-a-program post /admin/program_fields_to_sync/{program_id} Replaces the global or program-specific item field mapping with trimmed nonempty string-to-string JSON pairs. Sanitized input must not be empty. Does not start a provider sync; requires an existing QuickBooks integration. Requires permission: one of manage_programs. # Save QuickBooks sync direction Source: https://api-docs.helpyousponsor.com/api-reference/integrations/save-quickbooks-sync-direction put /admin/quickbooks/sync-direction Saves a global direction or an organization program override. Changes sync policy; this operation does not immediately synchronize records. Requires permission: one of access_payment_gateways. # Save Salesforce donation sync directions Source: https://api-docs.helpyousponsor.com/api-reference/integrations/save-salesforce-donation-sync-directions post /integrations/hub/connections/{connection_id}/salesforce/donation-mapping A supplied source_of_truth determines directions: hys enables outbound, provider enables inbound, bidirectional enables both. When omitted, derives ownership from the two direction booleans; both omitted/false disable both directions. Supersedes prior donation mappings and returns mapping=null when disabled; otherwise approves the template-specific Opportunity or GiftTransaction mapping. This request does not import, charge or send a gift. Requires the integration platform global/configured client feature gate (normally integration_platform_foundation). Requires permission: one of access_account_settings. # Save Salesforce donor field mapping Source: https://api-docs.helpyousponsor.com/api-reference/integrations/save-salesforce-donor-field-mapping post /integrations/hub/connections/{connection_id}/salesforce/contact-donor-mapping Requires an organization donor form and at least one available form/provider field pair. NPSP maps donors to Contact; Nonprofit Cloud maps to Person Account. Saves form/strategy settings, supersedes prior donor Contact/Account versions and immediately approves the new version. source_of_truth defaults to hys. Does not import or send donors. Requires the integration platform global/configured client feature gate (normally integration_platform_foundation). Requires permission: one of access_account_settings. # Save Salesforce interaction sync settings Source: https://api-docs.helpyousponsor.com/api-reference/integrations/save-salesforce-interaction-sync-settings post /integrations/hub/connections/{connection_id}/salesforce/interaction-mapping Stores outbound/inbound enablement and selected Task, Call, Event or EmailMessage types. Either enabled direction requires a non-empty selection. Omitted fields disable both directions and clear the selection. Ensures mapping templates but does not send or import interactions. Requires the integration platform global/configured client feature gate (normally integration_platform_foundation). Requires permission: one of access_account_settings. # Save Salesforce recipient field mapping Source: https://api-docs.helpyousponsor.com/api-reference/integrations/save-salesforce-recipient-field-mapping post /integrations/hub/connections/{connection_id}/salesforce/recipient-mapping Requires a non-root organization program of contribution, number or campaign type with a recipient form and at least one available field pair. NPSP targets Campaign; Nonprofit Cloud targets GiftDesignation. Defaults to hys ownership; explicit inbound enablement upgrades hys to bidirectional, while provider/bidirectional ownership enables inbound automatically. Saves strategy and approves the next mapping, superseding previous recipient targets without syncing. Requires the integration platform global/configured client feature gate (normally integration_platform_foundation). Requires permission: one of access_account_settings. # Search donation fallback recipients Source: https://api-docs.helpyousponsor.com/api-reference/integrations/search-donation-fallback-recipients get /integrations/hub/connections/{connection_id}/bloomerang/fallback-designations Requires an organization-owned contribution/number/campaign program. Returns local non-deleted recipients cached for 60 seconds, default limit 20 maximum 50, ranked by exact numeric id, exact name, prefix then substring. entity_id directly returns that option or an empty array and takes priority over search/limit. Names use configured title fields and stored fallback labels. Requires the integration platform global/configured client feature gate (normally integration_platform_foundation). Requires permission: one of access_account_settings. # Search QuickBooks revenue mapping targets Source: https://api-docs.helpyousponsor.com/api-reference/integrations/search-quickbooks-revenue-mapping-targets get /admin/quickbooks/designation-revenue-targets/{program_id} Searches applicable designations and recipients/campaigns in the selected program, returning label-sorted options up to limit (default20). Nonempty designation_key takes precedence and resolves one desig- or entity-; an unknown or inapplicable key returns an empty array. This lookup uses local organization records. Requires permission: one of access_payment_gateways. # Search QuickBooks service items Source: https://api-docs.helpyousponsor.com/api-reference/integrations/search-quickbooks-service-items get /admin/quickbooks/items/search Searches active Service items, default limit20. Nonempty item_id takes precedence over search and returns that provider item when found, even when its type differs; unknown ids return an empty data array. Requires a refreshed connected QuickBooks company. Requires permission: one of access_payment_gateways. # Stage discovered donations for outgoing review Source: https://api-docs.helpyousponsor.com/api-reference/integrations/stage-discovered-donations-for-outgoing-review post /integrations/hub/connections/{connection_id}/outbound-discovery/stage Requires the unchanged discovery review_token and matching object_type/limit. Adds safely discoverable groups as terminal local outgoing-review work, skipping uncheckable rows and deduplicating groups. Does not queue or send provider requests. Requires the integration platform global/configured client feature gate (normally integration_platform_foundation). Requires permission: one of access_account_settings. # Start Dropbox Sign authorization Source: https://api-docs.helpyousponsor.com/api-reference/integrations/start-dropbox-sign-authorization get /integrations/dropbox-sign/oauth/connect Creates a one-time OAuth state for the authenticated organization, valid for900seconds, and returns the provider authorization URL. Opening that URL starts the provider consent flow. Requires permission: one of access_account_settings. # Store an integration webhook receipt Source: https://api-docs.helpyousponsor.com/api-reference/integrations/store-an-integration-webhook-receipt post /integrations/hub/connections/{connection_id}/webhook-events Stores supplied provider payload/headers after sensitive-key redaction. A supplied verified flag explicitly records an administrative verification decision; when omitted, the registered adapter verifies the stored receipt. This operation records receipt state and does not execute provider processing. Requires the integration platform global/configured client feature gate (normally integration_platform_foundation). Requires permission: one of access_account_settings. # Undo a local gift-owner or keep-local decision Source: https://api-docs.helpyousponsor.com/api-reference/integrations/undo-a-local-gift-owner-or-keep-local-decision post /integrations/hub/connections/{connection_id}/outbound-donation-owner-resolutions/{run_id}/undo Requires a completed matching local reconcile run that has not already been undone. Rechecks gifts, source mappings, controls and related work under lock. Owner undo restores original donors only while records are still waiting and undispatched. Keep-local undo revokes controls/restores safe local work; recorded deferred refunds keep affected gifts waiting for refund reconciliation and disable their retries. No provider requests are sent; changed or processing records reject the whole batch. Requires the integration platform global/configured client feature gate (normally integration_platform_foundation). Requires permission: one of access_account_settings. # Update a Connected Apps connection Source: https://api-docs.helpyousponsor.com/api-reference/integrations/update-a-connected-apps-connection patch /integrations/hub/connections/{connection_id} Updates validated connection state, credential/settings/context fields and returns the redacted detailed projection. Supplied null values for fields using existing-value fallback retain their stored value; this request does not validate provider credentials remotely. Requires the integration platform global/configured client feature gate (normally integration_platform_foundation). Requires permission: one of access_account_settings. # Update QuickBooks Stripe-payout settings Source: https://api-docs.helpyousponsor.com/api-reference/integrations/update-quickbooks-stripe-payout-settings put /admin/quickbooks/stripe-payouts/settings Requires a connected QuickBooks company, active clearing Bank/Other Current Asset, deposit Bank, fee/dispute Expense/Other Expense accounts and an active Service item with an income account for fee recovery. Saves mappings and refreshes integration compatibility. Requires permission: one of access_payment_gateways. # Upsert an integration object link Source: https://api-docs.helpyousponsor.com/api-reference/integrations/upsert-an-integration-object-link post /integrations/hub/connections/{connection_id}/object-mappings Creates or updates an identity mapping, restoring a matching retired row if needed. An optional field_mapping_id must belong to this connection. QuickBooks metadata is bound to the current company fingerprint. Does not create a provider object. Requires the integration platform global/configured client feature gate (normally integration_platform_foundation). Requires permission: one of access_account_settings. # Verify a recurring-schedule decision Source: https://api-docs.helpyousponsor.com/api-reference/integrations/verify-a-recurring-schedule-decision post /integrations/hub/conflicts/{conflict_id}/verify-recurring-schedule Requires a resolved already_represented_in_hys decision and a completed same-connection dry_run started after review that includes donation objects. Its exact source event must be skipped with matching schedule, source token, commitment token and donor identity. Saves verification evidence; does not create commitments, charges or provider records. Repeating the same verified run returns the stored result. Requires the integration platform global/configured client feature gate (normally integration_platform_foundation). Requires permission: one of access_account_settings. # Verify a WhatsApp staff-link code Source: https://api-docs.helpyousponsor.com/api-reference/integrations/verify-a-whatsapp-staff-link-code post /integrations/hub/providers/twilio/link/verify Verifies this user/workspace five-minute challenge, provisions its private staff channel and activates the connection. A wrong code consumes the challenge; changed setup or an existing link requires recovery. Requires the same current membership, Workspace Agent channel/use and Twilio configuration gates as requesting the code. Requires the integration platform to be enabled globally or by its configured client feature flag (normally integration_platform_foundation). Requires permission: one of access_account_settings. # Verify and apply a staged relationship decision Source: https://api-docs.helpyousponsor.com/api-reference/integrations/verify-and-apply-a-staged-relationship-decision post /integrations/hub/conflicts/{conflict_id}/verify-relationship-identity Requires a saved pending relationship decision and a completed same-connection dry_run started after staging that includes relationship objects. The matching inbound preview event must prove the exact source relationship payload and both donor identities. Rechecks pending fingerprint, mappings and available candidates under lock before applying. keep_separate may create/adopt a forward/reverse relationship pair; choose_relationship links the selected available pair. No provider write or donor merge occurs. Requires the integration platform global/configured client feature gate (normally integration_platform_foundation). Requires permission: one of access_account_settings. # Append a message and start an agent run Source: https://api-docs.helpyousponsor.com/api-reference/intelligence/append-a-message-and-start-an-agent-run post /admin/workspace-agent/runs Requires the workspace-agent deployment, rollout and feature flag plus a current Tali/Aida access permission. Conversation resources require an active human participant in the same tenant; inaccessible resources are concealed. conversation_id must be present: null starts a conversation, an existing UUID requires If-Match with its quoted conversation revision ETag. Only documented input keys and text parts are accepted; caller-authored client/actor/history/tools/state/credentials are rejected. A UUID Idempotency-Key protects exact command replay.202 returns the queued run and event-stream URL, with updated ETag. # Approve and execute a Tali draft Source: https://api-docs.helpyousponsor.com/api-reference/intelligence/approve-and-execute-a-tali-draft post /admin/aida/work-items/{workItemId}/approve Requires the configured Aida workspace feature (aida_workspace by default). View permits aida_view/capture/review/settings_manage or full access; mutation requires the action-specific capture, review or settings permission. All records belong to the current organization. Requires aida_review or full access. Approval executes the registered action, which can send approved external copy or create internal records. Blocked, terminal or stale drafts must be resolved/refreshed first. Already-executed approval is observational. # Cancel a workspace-agent run Source: https://api-docs.helpyousponsor.com/api-reference/intelligence/cancel-a-workspace-agent-run post /admin/workspace-agent/runs/{run}/cancel Requires the workspace-agent deployment, rollout and feature flag plus a current Tali/Aida access permission. Conversation resources require an active human participant in the same tenant; inaccessible resources are concealed. Active runs are marked cancelled, open interrupts are cancelled and workflow control delivery is queued. Already terminal runs return their current resource. client_id/actor_id are prohibited. # Cancel an agent human-input interrupt Source: https://api-docs.helpyousponsor.com/api-reference/intelligence/cancel-an-agent-human-input-interrupt post /admin/workspace-agent/interrupts/{interrupt}/cancel Requires the workspace-agent deployment, rollout and feature flag plus a current Tali/Aida access permission. Conversation resources require an active human participant in the same tenant; inaccessible resources are concealed. Requires an open matching expected_version and the intended participant when one is named. Resolution must satisfy the returned response_schema and payload guard. Accepted command updates the interrupt and queues workflow delivery; caller-supplied client_id/actor_id are prohibited. # Capture a relationship note for Tali Source: https://api-docs.helpyousponsor.com/api-reference/intelligence/capture-a-relationship-note-for-tali post /admin/aida/capture Requires the configured Aida workspace feature (aida_workspace by default). View permits aida_view/capture/review/settings_manage or full access; mutation requires the action-specific capture, review or settings permission. All records belong to the current organization. Requires capture authority and a nonblank trimmed note. Detects or matches the relationship and prepares work for review; relationship_mode new preserves an unmatched relationship instead of assuming an existing donor. # Defer Tali work Source: https://api-docs.helpyousponsor.com/api-reference/intelligence/defer-tali-work post /admin/aida/work-items/{workItemId}/defer Requires the configured Aida workspace feature (aida_workspace by default). View permits aida_view/capture/review/settings_manage or full access; mutation requires the action-specific capture, review or settings permission. All records belong to the current organization. Requires aida_review or full access. Moves nonterminal work to waiting/deferred until defer_until, or now plus cooldown_days (default three). Due work can return to the review inbox. # Delete a workspace-agent conversation Source: https://api-docs.helpyousponsor.com/api-reference/intelligence/delete-a-workspace-agent-conversation delete /admin/workspace-agent/conversations/{conversation} Requires the workspace-agent deployment, rollout and feature flag plus a current Tali/Aida access permission. Conversation resources require an active human participant in the same tenant; inaccessible resources are concealed. Requires If-Match and UUID Idempotency-Key. Marks deletion_pending, cancels active runs, withdraws participants and schedules provider/artifact deletion. Legal hold or stale revision returns409; accepted receipt does not imply downstream deletion has finished. # Delete relationship memory Source: https://api-docs.helpyousponsor.com/api-reference/intelligence/delete-relationship-memory delete /admin/aida/relationship-memories/{memoryId} Requires the configured Aida workspace feature (aida_workspace by default). View permits aida_view/capture/review/settings_manage or full access; mutation requires the action-specific capture, review or settings permission. All records belong to the current organization. Requires aida_review or full access. Marks durable memory deleted and returns the resulting memory and any linked work item. # Download a completed donor intelligence export Source: https://api-docs.helpyousponsor.com/api-reference/intelligence/download-a-completed-donor-intelligence-export get /admin/donor-intelligence/{client_id}/donors/exports/{uploadId} Requires the donor_intelligence feature and route permissions. Every client_id route is restricted to the authenticated organization, including platform administrators using workspace routes. Stored profiles are filtered against current email-privacy state; obsolete privacy snapshots are concealed. Legacy wealth-insights URLs are equivalent aliases. Rechecks current route/report/source authority. Default response redirects to a verified temporary URL or streams CSV when necessary. resolve returns a URL envelope when available; protected reports can reject resolve with404. Unready/missing artifacts return404. # Download a completed donor intelligence export Source: https://api-docs.helpyousponsor.com/api-reference/intelligence/download-a-completed-donor-intelligence-export-1 get /admin/wealth-insights/{client_id}/donors/exports/{uploadId} Requires the donor_intelligence feature and route permissions. Every client_id route is restricted to the authenticated organization, including platform administrators using workspace routes. Stored profiles are filtered against current email-privacy state; obsolete privacy snapshots are concealed. Legacy wealth-insights URLs are equivalent aliases. Rechecks current route/report/source authority. Default response redirects to a verified temporary URL or streams CSV when necessary. resolve returns a URL envelope when available; protected reports can reject resolve with404. Unready/missing artifacts return404. # Download a conversation JSON Lines export Source: https://api-docs.helpyousponsor.com/api-reference/intelligence/download-a-conversation-json-lines-export get /admin/workspace-agent/conversations/{conversation}/export Requires the workspace-agent deployment, rollout and feature flag plus a current Tali/Aida access permission. Conversation resources require an active human participant in the same tenant; inaccessible resources are concealed. Streams one JSON object per line: resource_type and resource. Includes manifest, conversation, participant, message, run, event, interrupt, artifact metadata and feedback. Artifact bytes use their separately authorized content URL. # Download authorized agent artifact content Source: https://api-docs.helpyousponsor.com/api-reference/intelligence/download-authorized-agent-artifact-content get /admin/workspace-agent/artifacts/{artifact}/content Requires the workspace-agent deployment, rollout and feature flag plus a current Tali/Aida access permission. Conversation resources require an active human participant in the same tenant; inaccessible resources are concealed. Returns decrypted verified artifact bytes with the stored media type and attachment disposition. Retention/state/integrity failures reject the read. # Edit a Tali review draft Source: https://api-docs.helpyousponsor.com/api-reference/intelligence/edit-a-tali-review-draft patch /admin/aida/work-items/{workItemId}/draft Requires the configured Aida workspace feature (aida_workspace by default). View permits aida_view/capture/review/settings_manage or full access; mutation requires the action-specific capture, review or settings permission. All records belong to the current organization. Requires aida_review or full access. Updates submitted copy and pending approval text. Executed drafts and closed/suppressed work cannot be edited. # Link Tali work to an existing donor Source: https://api-docs.helpyousponsor.com/api-reference/intelligence/link-tali-work-to-an-existing-donor post /admin/aida/work-items/{workItemId}/link-donor Requires the configured Aida workspace feature (aida_workspace by default). View permits aida_view/capture/review/settings_manage or full access; mutation requires the action-specific capture, review or settings permission. All records belong to the current organization. Requires aida_review or full access. Donor must belong to the organization; already-linked work cannot be relinked through this operation. # List available workspace agents Source: https://api-docs.helpyousponsor.com/api-reference/intelligence/list-available-workspace-agents get /admin/workspace-agent/agents Requires the workspace-agent deployment, rollout and feature flag plus a current Tali/Aida access permission. Conversation resources require an active human participant in the same tenant; inaccessible resources are concealed. Materializes the initial agent release if needed and returns active agent choices. # List conversation messages after a sequence Source: https://api-docs.helpyousponsor.com/api-reference/intelligence/list-conversation-messages-after-a-sequence get /admin/workspace-agent/conversations/{conversation}/messages Requires the workspace-agent deployment, rollout and feature flag plus a current Tali/Aida access permission. Conversation resources require an active human participant in the same tenant; inaccessible resources are concealed. Only committed messages expose content and reaction details; other rows have empty content. Includes aggregated reactions and whether this user reported a response failure. # List donor intelligence prospect rows Source: https://api-docs.helpyousponsor.com/api-reference/intelligence/list-donor-intelligence-prospect-rows get /admin/donor-intelligence/{client_id}/donors Requires the donor_intelligence feature and route permissions. Every client_id route is restricted to the authenticated organization, including platform administrators using workspace routes. Stored profiles are filtered against current email-privacy state; obsolete privacy snapshots are concealed. Legacy wealth-insights URLs are equivalent aliases. Returns latest profile metadata per donor, or donors without a profile for queue no_insights. Sorting applies to numeric estimates with nulls last, then confidence/refresh/name tie-breakers. # List donor intelligence prospect rows Source: https://api-docs.helpyousponsor.com/api-reference/intelligence/list-donor-intelligence-prospect-rows-1 get /admin/wealth-insights/{client_id}/donors Requires the donor_intelligence feature and route permissions. Every client_id route is restricted to the authenticated organization, including platform administrators using workspace routes. Stored profiles are filtered against current email-privacy state; obsolete privacy snapshots are concealed. Legacy wealth-insights URLs are equivalent aliases. Returns latest profile metadata per donor, or donors without a profile for queue no_insights. Sorting applies to numeric estimates with nulls last, then confidence/refresh/name tie-breakers. # List my workspace-agent conversations Source: https://api-docs.helpyousponsor.com/api-reference/intelligence/list-my-workspace-agent-conversations get /admin/workspace-agent/conversations Requires the workspace-agent deployment, rollout and feature flag plus a current Tali/Aida access permission. Conversation resources require an active human participant in the same tenant; inaccessible resources are concealed. Returns recent active-participant conversations ordered by last activity and ID, with an opaque continuation cursor. # List recent Tali source sweeps Source: https://api-docs.helpyousponsor.com/api-reference/intelligence/list-recent-tali-source-sweeps get /admin/aida/runs Requires the configured Aida workspace feature (aida_workspace by default). View permits aida_view/capture/review/settings_manage or full access; mutation requires the action-specific capture, review or settings permission. All records belong to the current organization. Returns the latest ten sweeps and their signal/preview summaries. # List run events after a sequence Source: https://api-docs.helpyousponsor.com/api-reference/intelligence/list-run-events-after-a-sequence get /admin/workspace-agent/runs/{run}/trajectory Requires the workspace-agent deployment, rollout and feature flag plus a current Tali/Aida access permission. Conversation resources require an active human participant in the same tenant; inaccessible resources are concealed. Events are ordered by sequence; redacted events retain identity and expose payload.redacted only. meta reports run status and terminal outcome. # Move a relationship pipeline stage Source: https://api-docs.helpyousponsor.com/api-reference/intelligence/move-a-relationship-pipeline-stage patch /admin/aida/work-items/{workItemId}/pipeline-stage Requires the configured Aida workspace feature (aida_workspace by default). View permits aida_view/capture/review/settings_manage or full access; mutation requires the action-specific capture, review or settings permission. All records belong to the current organization. Requires aida_review or full access. Requires source-backed evidence for the requested stage; stage changes update recommendations and may mark the draft stale. # Preview or queue bulk donor profile generation Source: https://api-docs.helpyousponsor.com/api-reference/intelligence/preview-or-queue-bulk-donor-profile-generation post /admin/donor-intelligence/generations/bulk Requires the donor_intelligence feature and route permissions. Every client_id route is restricted to the authenticated organization, including platform administrators using workspace routes. Stored profiles are filtered against current email-privacy state; obsolete privacy snapshots are concealed. Legacy wealth-insights URLs are equivalent aliases. Explicit positive donor_ids are deduplicated; when empty, filters select donor IDs. With no effective selection, defaults to organization donors ordered by ID. The configured bulk limit (default100) truncates selection and is reported. dry_run estimates eligibility/capacity without queueing; otherwise queues eligible runs and reports skipped capacity/active donors. Both modes return202. # Preview or queue bulk donor profile generation Source: https://api-docs.helpyousponsor.com/api-reference/intelligence/preview-or-queue-bulk-donor-profile-generation-1 post /admin/wealth-insights/generations/bulk Requires the donor_intelligence feature and route permissions. Every client_id route is restricted to the authenticated organization, including platform administrators using workspace routes. Stored profiles are filtered against current email-privacy state; obsolete privacy snapshots are concealed. Legacy wealth-insights URLs are equivalent aliases. Explicit positive donor_ids are deduplicated; when empty, filters select donor IDs. With no effective selection, defaults to organization donors ordered by ID. The configured bulk limit (default100) truncates selection and is reported. dry_run estimates eligibility/capacity without queueing; otherwise queues eligible runs and reports skipped capacity/active donors. Both modes return202. # Purchase shared workspace AI capacity Source: https://api-docs.helpyousponsor.com/api-reference/intelligence/purchase-shared-workspace-ai-capacity post /admin/ai-capacity/top-ups Requires the donor_intelligence feature and route permissions. Every client_id route is restricted to the authenticated organization, including platform administrators using workspace routes. Stored profiles are filtered against current email-privacy state; obsolete privacy snapshots are concealed. Legacy wealth-insights URLs are equivalent aliases. Charges the organization saved payment card for the configured top-up and grants credits only after provider success. Reuse idempotency_key to avoid duplicate purchases; omitted keys create a fresh purchase. Disabled purchases, missing payment setup or insufficient billing success return402. # Queue a donor intelligence CSV export Source: https://api-docs.helpyousponsor.com/api-reference/intelligence/queue-a-donor-intelligence-csv-export get /admin/donor-intelligence/{client_id}/donors/export Requires the donor_intelligence feature and route permissions. Every client_id route is restricted to the authenticated organization, including platform administrators using workspace routes. Stored profiles are filtered against current email-privacy state; obsolete privacy snapshots are concealed. Legacy wealth-insights URLs are equivalent aliases. Starts an asynchronous filtered prospect export. Poll status_url and download only when ready;200 means dispatch succeeded. Failures to prepare/dispatch return500. # Queue a donor intelligence CSV export Source: https://api-docs.helpyousponsor.com/api-reference/intelligence/queue-a-donor-intelligence-csv-export-1 get /admin/wealth-insights/{client_id}/donors/export Requires the donor_intelligence feature and route permissions. Every client_id route is restricted to the authenticated organization, including platform administrators using workspace routes. Stored profiles are filtered against current email-privacy state; obsolete privacy snapshots are concealed. Legacy wealth-insights URLs are equivalent aliases. Starts an asynchronous filtered prospect export. Poll status_url and download only when ready;200 means dispatch succeeded. Failures to prepare/dispatch return500. # Queue a donor intelligence profile generation Source: https://api-docs.helpyousponsor.com/api-reference/intelligence/queue-a-donor-intelligence-profile-generation post /admin/donors/{donor_id}/donor-intelligence/generate Requires the donor_intelligence feature and route permissions. Every client_id route is restricted to the authenticated organization, including platform administrators using workspace routes. Stored profiles are filtered against current email-privacy state; obsolete privacy snapshots are concealed. Legacy wealth-insights URLs are equivalent aliases. Reserves shared AI capacity and queues generation. If this donor already has an active generation, reuses its status. Poll data.poll_url; completion may be ready, insufficient-data, skipped or failed.202 does not mean the profile has finished. # Queue a donor intelligence profile generation Source: https://api-docs.helpyousponsor.com/api-reference/intelligence/queue-a-donor-intelligence-profile-generation-1 post /admin/donors/{donor_id}/wealth-insights/generate Requires the donor_intelligence feature and route permissions. Every client_id route is restricted to the authenticated organization, including platform administrators using workspace routes. Stored profiles are filtered against current email-privacy state; obsolete privacy snapshots are concealed. Legacy wealth-insights URLs are equivalent aliases. Reserves shared AI capacity and queues generation. If this donor already has an active generation, reuses its status. Poll data.poll_url; completion may be ready, insufficient-data, skipped or failed.202 does not mean the profile has finished. # Read a human-input interrupt Source: https://api-docs.helpyousponsor.com/api-reference/intelligence/read-a-human-input-interrupt get /admin/workspace-agent/interrupts/{interrupt} Requires the workspace-agent deployment, rollout and feature flag plus a current Tali/Aida access permission. Conversation resources require an active human participant in the same tenant; inaccessible resources are concealed. Returns the request and response_schema for constructing a resolution, plus current version and expiry. # Read a Tali work item Source: https://api-docs.helpyousponsor.com/api-reference/intelligence/read-a-tali-work-item get /admin/aida/work-items/{workItemId} Requires the configured Aida workspace feature (aida_workspace by default). View permits aida_view/capture/review/settings_manage or full access; mutation requires the action-specific capture, review or settings permission. All records belong to the current organization. Returns current work, source evidence, draft, approval, action timeline, outcome and learning. # Read a workspace-agent conversation Source: https://api-docs.helpyousponsor.com/api-reference/intelligence/read-a-workspace-agent-conversation get /admin/workspace-agent/conversations/{conversation} Requires the workspace-agent deployment, rollout and feature flag plus a current Tali/Aida access permission. Conversation resources require an active human participant in the same tenant; inaccessible resources are concealed. Includes active participants, active/latest run and up to sixteen open interrupts for the current participant. Returns ETag for conditional updates. # Read agent artifact metadata Source: https://api-docs.helpyousponsor.com/api-reference/intelligence/read-agent-artifact-metadata get /admin/workspace-agent/artifacts/{artifact} Requires the workspace-agent deployment, rollout and feature flag plus a current Tali/Aida access permission. Conversation resources require an active human participant in the same tenant; inaccessible resources are concealed. Content bytes are returned only by the content URL after current conversation/run authorization. # Read an agent run Source: https://api-docs.helpyousponsor.com/api-reference/intelligence/read-an-agent-run get /admin/workspace-agent/runs/{run} Requires the workspace-agent deployment, rollout and feature flag plus a current Tali/Aida access permission. Conversation resources require an active human participant in the same tenant; inaccessible resources are concealed. Includes lifecycle/dispatch state, provider/model, grounding/safety and per-attempt usage/cost accounting. # Read bulk donor generation progress Source: https://api-docs.helpyousponsor.com/api-reference/intelligence/read-bulk-donor-generation-progress get /admin/donor-intelligence/generations/bulk/{bulk_generation_id} Requires the donor_intelligence feature and route permissions. Every client_id route is restricted to the authenticated organization, including platform administrators using workspace routes. Stored profiles are filtered against current email-privacy state; obsolete privacy snapshots are concealed. Legacy wealth-insights URLs are equivalent aliases. Returns the cached organization bulk receipt with per-donor state and aggregate counts. Unknown or expired bulk IDs return404. # Read bulk donor generation progress Source: https://api-docs.helpyousponsor.com/api-reference/intelligence/read-bulk-donor-generation-progress-1 get /admin/wealth-insights/generations/bulk/{bulk_generation_id} Requires the donor_intelligence feature and route permissions. Every client_id route is restricted to the authenticated organization, including platform administrators using workspace routes. Stored profiles are filtered against current email-privacy state; obsolete privacy snapshots are concealed. Legacy wealth-insights URLs are equivalent aliases. Returns the cached organization bulk receipt with per-donor state and aggregate counts. Unknown or expired bulk IDs return404. # Read donor intelligence adoption over thirty days Source: https://api-docs.helpyousponsor.com/api-reference/intelligence/read-donor-intelligence-adoption-over-thirty-days get /admin/donor-intelligence/{client_id}/usage Requires the donor_intelligence feature and route permissions. Every client_id route is restricted to the authenticated organization, including platform administrators using workspace routes. Stored profiles are filtered against current email-privacy state; obsolete privacy snapshots are concealed. Legacy wealth-insights URLs are equivalent aliases. Groups current-privacy profile rows by generating user; top_users contains the ten highest counts. # Read donor intelligence adoption over thirty days Source: https://api-docs.helpyousponsor.com/api-reference/intelligence/read-donor-intelligence-adoption-over-thirty-days-1 get /admin/wealth-insights/{client_id}/usage Requires the donor_intelligence feature and route permissions. Every client_id route is restricted to the authenticated organization, including platform administrators using workspace routes. Stored profiles are filtered against current email-privacy state; obsolete privacy snapshots are concealed. Legacy wealth-insights URLs are equivalent aliases. Groups current-privacy profile rows by generating user; top_users contains the ten highest counts. # Read Donor Intelligence coverage and capacity summary Source: https://api-docs.helpyousponsor.com/api-reference/intelligence/read-donor-intelligence-coverage-and-capacity-summary get /admin/donor-intelligence/{client_id}/summary Requires the donor_intelligence feature and route permissions. Every client_id route is restricted to the authenticated organization, including platform administrators using workspace routes. Stored profiles are filtered against current email-privacy state; obsolete privacy snapshots are concealed. Legacy wealth-insights URLs are equivalent aliases. Coverage is the fraction of supporter donors with a current profile. Stale/high-capacity counts use dashboard settings; large workspaces may use a cached summary. # Read Donor Intelligence coverage and capacity summary Source: https://api-docs.helpyousponsor.com/api-reference/intelligence/read-donor-intelligence-coverage-and-capacity-summary-1 get /admin/wealth-insights/{client_id}/summary Requires the donor_intelligence feature and route permissions. Every client_id route is restricted to the authenticated organization, including platform administrators using workspace routes. Stored profiles are filtered against current email-privacy state; obsolete privacy snapshots are concealed. Legacy wealth-insights URLs are equivalent aliases. Coverage is the fraction of supporter donors with a current profile. Stale/high-capacity counts use dashboard settings; large workspaces may use a cached summary. # Read Donor Intelligence dashboard settings Source: https://api-docs.helpyousponsor.com/api-reference/intelligence/read-donor-intelligence-dashboard-settings get /admin/donor-intelligence/{client_id}/settings Requires the donor_intelligence feature and route permissions. Every client_id route is restricted to the authenticated organization, including platform administrators using workspace routes. Stored profiles are filtered against current email-privacy state; obsolete privacy snapshots are concealed. Legacy wealth-insights URLs are equivalent aliases. Returns configured stale and high-capacity thresholds. # Read Donor Intelligence dashboard settings Source: https://api-docs.helpyousponsor.com/api-reference/intelligence/read-donor-intelligence-dashboard-settings-1 get /admin/wealth-insights/{client_id}/settings Requires the donor_intelligence feature and route permissions. Every client_id route is restricted to the authenticated organization, including platform administrators using workspace routes. Stored profiles are filtered against current email-privacy state; obsolete privacy snapshots are concealed. Legacy wealth-insights URLs are equivalent aliases. Returns configured stale and high-capacity thresholds. # Read donor intelligence export progress Source: https://api-docs.helpyousponsor.com/api-reference/intelligence/read-donor-intelligence-export-progress get /admin/donor-intelligence/{client_id}/donors/exports/{uploadId}/status Requires the donor_intelligence feature and route permissions. Every client_id route is restricted to the authenticated organization, including platform administrators using workspace routes. Stored profiles are filtered against current email-privacy state; obsolete privacy snapshots are concealed. Legacy wealth-insights URLs are equivalent aliases. Returns queued/processing/ready/failed progress; download_url is present when generated bytes are available and current authorization permits them. # Read donor intelligence export progress Source: https://api-docs.helpyousponsor.com/api-reference/intelligence/read-donor-intelligence-export-progress-1 get /admin/wealth-insights/{client_id}/donors/exports/{uploadId}/status Requires the donor_intelligence feature and route permissions. Every client_id route is restricted to the authenticated organization, including platform administrators using workspace routes. Stored profiles are filtered against current email-privacy state; obsolete privacy snapshots are concealed. Legacy wealth-insights URLs are equivalent aliases. Returns queued/processing/ready/failed progress; download_url is present when generated bytes are available and current authorization permits them. # Read donor profile generation status Source: https://api-docs.helpyousponsor.com/api-reference/intelligence/read-donor-profile-generation-status get /admin/donors/{donor_id}/donor-intelligence/generations/{generation_id} Requires the donor_intelligence feature and route permissions. Every client_id route is restricted to the authenticated organization, including platform administrators using workspace routes. Stored profiles are filtered against current email-privacy state; obsolete privacy snapshots are concealed. Legacy wealth-insights URLs are equivalent aliases. Generation UUID must belong to this tenant and donor. Completed runs include normalized insights and usage; failed/skipped runs include their lifecycle message. Expired cache or unknown generation returns404. # Read donor profile generation status Source: https://api-docs.helpyousponsor.com/api-reference/intelligence/read-donor-profile-generation-status-1 get /admin/donors/{donor_id}/wealth-insights/generations/{generation_id} Requires the donor_intelligence feature and route permissions. Every client_id route is restricted to the authenticated organization, including platform administrators using workspace routes. Stored profiles are filtered against current email-privacy state; obsolete privacy snapshots are concealed. Legacy wealth-insights URLs are equivalent aliases. Generation UUID must belong to this tenant and donor. Completed runs include normalized insights and usage; failed/skipped runs include their lifecycle message. Expired cache or unknown generation returns404. # Read my donor intelligence usage status Source: https://api-docs.helpyousponsor.com/api-reference/intelligence/read-my-donor-intelligence-usage-status get /admin/donors/{client_id}/donor-intelligence Requires the donor_intelligence feature and route permissions. Every client_id route is restricted to the authenticated organization, including platform administrators using workspace routes. Stored profiles are filtered against current email-privacy state; obsolete privacy snapshots are concealed. Legacy wealth-insights URLs are equivalent aliases. Counts distinct donors with current profiles and computes remaining profile runs from the shared AI credit balance. has_insights on the user-status endpoint reflects this user having a stored profile row. # Read my donor intelligence usage status Source: https://api-docs.helpyousponsor.com/api-reference/intelligence/read-my-donor-intelligence-usage-status-1 get /admin/donors/{client_id}/wealth-insights Requires the donor_intelligence feature and route permissions. Every client_id route is restricted to the authenticated organization, including platform administrators using workspace routes. Stored profiles are filtered against current email-privacy state; obsolete privacy snapshots are concealed. Legacy wealth-insights URLs are equivalent aliases. Counts distinct donors with current profiles and computes remaining profile runs from the shared AI credit balance. has_insights on the user-status endpoint reflects this user having a stored profile row. # Read shared workspace AI capacity Source: https://api-docs.helpyousponsor.com/api-reference/intelligence/read-shared-workspace-ai-capacity get /admin/ai-capacity/summary Requires the donor_intelligence feature and route permissions. Every client_id route is restricted to the authenticated organization, including platform administrators using workspace routes. Stored profiles are filtered against current email-privacy state; obsolete privacy snapshots are concealed. Legacy wealth-insights URLs are equivalent aliases. Returns available/reserved/spent credits, action rates, top-up price, expiry notices and recent ledger entries. # Read Tali workspace policy settings Source: https://api-docs.helpyousponsor.com/api-reference/intelligence/read-tali-workspace-policy-settings get /admin/aida/settings Requires the configured Aida workspace feature (aida_workspace by default). View permits aida_view/capture/review/settings_manage or full access; mutation requires the action-specific capture, review or settings permission. All records belong to the current organization. Merges current source registry rows with saved settings and includes workflows/action availability and experiment governance. # Read the latest stored donor intelligence profile Source: https://api-docs.helpyousponsor.com/api-reference/intelligence/read-the-latest-stored-donor-intelligence-profile get /admin/donor-intelligence/{client_id}/donors/{donor_id}/latest Requires the donor_intelligence feature and route permissions. Every client_id route is restricted to the authenticated organization, including platform administrators using workspace routes. Stored profiles are filtered against current email-privacy state; obsolete privacy snapshots are concealed. Legacy wealth-insights URLs are equivalent aliases. Returns the raw stored profile with JSON-valued data retained as serialized strings and normalized Markdown. Missing donor or current profile returns404. # Read the latest stored donor intelligence profile Source: https://api-docs.helpyousponsor.com/api-reference/intelligence/read-the-latest-stored-donor-intelligence-profile-1 get /admin/wealth-insights/{client_id}/donors/{donor_id}/latest Requires the donor_intelligence feature and route permissions. Every client_id route is restricted to the authenticated organization, including platform administrators using workspace routes. Stored profiles are filtered against current email-privacy state; obsolete privacy snapshots are concealed. Legacy wealth-insights URLs are equivalent aliases. Returns the raw stored profile with JSON-valued data retained as serialized strings and normalized Markdown. Missing donor or current profile returns404. # Read the latest stored donor intelligence profile Source: https://api-docs.helpyousponsor.com/api-reference/intelligence/read-the-latest-stored-donor-intelligence-profile-2 get /admin/donors/{client_id}/donor-intelligence/{donor_id} Requires the donor_intelligence feature and route permissions. Every client_id route is restricted to the authenticated organization, including platform administrators using workspace routes. Stored profiles are filtered against current email-privacy state; obsolete privacy snapshots are concealed. Legacy wealth-insights URLs are equivalent aliases. Returns the raw stored profile with JSON-valued data retained as serialized strings and normalized Markdown. Missing donor or current profile returns404. # Read the latest stored donor intelligence profile Source: https://api-docs.helpyousponsor.com/api-reference/intelligence/read-the-latest-stored-donor-intelligence-profile-3 get /admin/donors/{client_id}/wealth-insights/{donor_id} Requires the donor_intelligence feature and route permissions. Every client_id route is restricted to the authenticated organization, including platform administrators using workspace routes. Stored profiles are filtered against current email-privacy state; obsolete privacy snapshots are concealed. Legacy wealth-insights URLs are equivalent aliases. Returns the raw stored profile with JSON-valued data retained as serialized strings and normalized Markdown. Missing donor or current profile returns404. # Read the Tali work review workspace Source: https://api-docs.helpyousponsor.com/api-reference/intelligence/read-the-tali-work-review-workspace get /admin/aida/workspace Requires the configured Aida workspace feature (aida_workspace by default). View permits aida_view/capture/review/settings_manage or full access; mutation requires the action-specific capture, review or settings permission. All records belong to the current organization. Returns prioritized open work, review inbox, source sweeps, settings and portfolio/learning context. Restricted sources are redacted; configured demo-workspace setup may materialize initial work. # Read workspace donor intelligence usage Source: https://api-docs.helpyousponsor.com/api-reference/intelligence/read-workspace-donor-intelligence-usage get /admin/donors/{client_id}/distinct-usage-insights Requires the donor_intelligence feature and route permissions. Every client_id route is restricted to the authenticated organization, including platform administrators using workspace routes. Stored profiles are filtered against current email-privacy state; obsolete privacy snapshots are concealed. Legacy wealth-insights URLs are equivalent aliases. Counts distinct donors with current profiles and computes remaining profile runs from the shared AI credit balance. has_insights on the user-status endpoint reflects this user having a stored profile row. # Recall approved relationship source evidence Source: https://api-docs.helpyousponsor.com/api-reference/intelligence/recall-approved-relationship-source-evidence post /admin/aida/recall Requires the configured Aida workspace feature (aida_workspace by default). View permits aida_view/capture/review/settings_manage or full access; mutation requires the action-specific capture, review or settings permission. All records belong to the current organization. Searches currently allowed source types using operational search and embedding similarity, with database/deterministic fallback when configured. Restricted/sensitive sources are excluded. limit applies per search channel, default five. # Record a source change on Tali work Source: https://api-docs.helpyousponsor.com/api-reference/intelligence/record-a-source-change-on-tali-work post /admin/aida/work-items/{workItemId}/source-change Requires the configured Aida workspace feature (aida_workspace by default). View permits aida_view/capture/review/settings_manage or full access; mutation requires the action-specific capture, review or settings permission. All records belong to the current organization. Requires aida_review or full access. Adds changed source context and marks affected drafts/review stale so they are refreshed before approval. # Record feedback for an agent run Source: https://api-docs.helpyousponsor.com/api-reference/intelligence/record-feedback-for-an-agent-run post /admin/workspace-agent/runs/{run}/feedback Requires the workspace-agent deployment, rollout and feature flag plus a current Tali/Aida access permission. Conversation resources require an active human participant in the same tenant; inaccessible resources are concealed. Event/message targets must belong to this run/conversation. evidence is limited to16000 serialized bytes and payload safety rules. rubric user-failure-report requires a committed unredacted assistant message from this run; server derives failure evidence and deduplicates per run/user. # Refresh a stale Tali draft Source: https://api-docs.helpyousponsor.com/api-reference/intelligence/refresh-a-stale-tali-draft post /admin/aida/work-items/{workItemId}/refresh-draft Requires the configured Aida workspace feature (aida_workspace by default). View permits aida_view/capture/review/settings_manage or full access; mutation requires the action-specific capture, review or settings permission. All records belong to the current organization. Requires aida_review or full access. Refreshes source/relationship context, rebuilds the latest draft and reopens review under current action permissions. # Reject Tali work Source: https://api-docs.helpyousponsor.com/api-reference/intelligence/reject-tali-work post /admin/aida/work-items/{workItemId}/reject Requires the configured Aida workspace feature (aida_workspace by default). View permits aida_view/capture/review/settings_manage or full access; mutation requires the action-specific capture, review or settings permission. All records belong to the current organization. Requires aida_review or full access. Closes nonterminal work and rejects any pending approval. # Rename, archive or restore a conversation Source: https://api-docs.helpyousponsor.com/api-reference/intelligence/rename-archive-or-restore-a-conversation patch /admin/workspace-agent/conversations/{conversation} Requires the workspace-agent deployment, rollout and feature flag plus a current Tali/Aida access permission. Conversation resources require an active human participant in the same tenant; inaccessible resources are concealed. Requires If-Match and UUID Idempotency-Key, plus at least one of title/status. Empty title normalizes to null. Only active/archived conversations are mutable; revision increments and response includes the new ETag. client_id/actor_id are prohibited. # Request missing context for Tali work Source: https://api-docs.helpyousponsor.com/api-reference/intelligence/request-missing-context-for-tali-work post /admin/aida/work-items/{workItemId}/request-context Requires the configured Aida workspace feature (aida_workspace by default). View permits aida_view/capture/review/settings_manage or full access; mutation requires the action-specific capture, review or settings permission. All records belong to the current organization. Requires aida_review or full access. Marks work as missing input and by default creates a task for the current/selected owner. due_date defaults to two days ahead; create_task false records the request without a task. # Resolve an agent human-input interrupt Source: https://api-docs.helpyousponsor.com/api-reference/intelligence/resolve-an-agent-human-input-interrupt post /admin/workspace-agent/interrupts/{interrupt}/resolve Requires the workspace-agent deployment, rollout and feature flag plus a current Tali/Aida access permission. Conversation resources require an active human participant in the same tenant; inaccessible resources are concealed. Requires an open matching expected_version and the intended participant when one is named. Resolution must satisfy the returned response_schema and payload guard. Accepted command updates the interrupt and queues workflow delivery; caller-supplied client_id/actor_id are prohibited. # Resolve an ambiguous Tali relationship Source: https://api-docs.helpyousponsor.com/api-reference/intelligence/resolve-an-ambiguous-tali-relationship post /admin/aida/work-items/{workItemId}/resolve-match Requires the configured Aida workspace feature (aida_workspace by default). View permits aida_view/capture/review/settings_manage or full access; mutation requires the action-specific capture, review or settings permission. All records belong to the current organization. Requires aida_review or full access. Only work needing relationship resolution can be matched. Confirms the relationship name and optional existing donor ID before preparing external copy. # Run an approved-source work sweep Source: https://api-docs.helpyousponsor.com/api-reference/intelligence/run-an-approved-source-work-sweep post /admin/aida/runs/retry Requires the configured Aida workspace feature (aida_workspace by default). View permits aida_view/capture/review/settings_manage or full access; mutation requires the action-specific capture, review or settings permission. All records belong to the current organization. Requires aida_review or full access. Runs the source sweep immediately, executes permitted policy-bound internal autonomous actions and indexes open recall sources. The201 response contains the completed sweep result, not a queue-only receipt. # Save an authored donor intelligence profile Source: https://api-docs.helpyousponsor.com/api-reference/intelligence/save-an-authored-donor-intelligence-profile post /admin/donors/donor-intelligence/{donor_id} Requires the donor_intelligence feature and route permissions. Every client_id route is restricted to the authenticated organization, including platform administrators using workspace routes. Stored profiles are filtered against current email-privacy state; obsolete privacy snapshots are concealed. Legacy wealth-insights URLs are equivalent aliases. Requires body client_id matching the current organization. snapshotData, askData and relationshipMapData are serialized JSON strings. Reserves and spends donor-profile AI capacity while persisting the profile; the email-privacy stamp is server-authored. # Save an authored donor intelligence profile Source: https://api-docs.helpyousponsor.com/api-reference/intelligence/save-an-authored-donor-intelligence-profile-1 post /admin/donors/wealth-insights/{donor_id} Requires the donor_intelligence feature and route permissions. Every client_id route is restricted to the authenticated organization, including platform administrators using workspace routes. Stored profiles are filtered against current email-privacy state; obsolete privacy snapshots are concealed. Legacy wealth-insights URLs are equivalent aliases. Requires body client_id matching the current organization. snapshotData, askData and relationshipMapData are serialized JSON strings. Reserves and spends donor-profile AI capacity while persisting the profile; the email-privacy stamp is server-authored. # Search donor records for a Tali relationship Source: https://api-docs.helpyousponsor.com/api-reference/intelligence/search-donor-records-for-a-tali-relationship get /admin/aida/relationship-matches Requires the configured Aida workspace feature (aida_workspace by default). View permits aida_view/capture/review/settings_manage or full access; mutation requires the action-specific capture, review or settings permission. All records belong to the current organization. Requires aida_review or full access. Returns up to twelve organization donor matches by identity fields. Supply query or q, each at least two characters. # Stream workspace-agent run events Source: https://api-docs.helpyousponsor.com/api-reference/intelligence/stream-workspace-agent-run-events get /admin/workspace-agent/runs/{run}/events Requires the workspace-agent deployment, rollout and feature flag plus a current Tali/Aida access permission. Conversation resources require an active human participant in the same tenant; inaccessible resources are concealed. SSE emits workspace-agent.event with sequence as id, heartbeats, and workspace-agent.stream-end on terminal/suspended runs or the configured delivery-window boundary. Resume with Last-Event-ID (preferred) or after. Every polling batch rechecks current actor authority; revocation/resource loss emits workspace-agent.access-revoked or workspace-agent.resource-unavailable before closing. # Suppress Tali work Source: https://api-docs.helpyousponsor.com/api-reference/intelligence/suppress-tali-work post /admin/aida/work-items/{workItemId}/suppress Requires the configured Aida workspace feature (aida_workspace by default). View permits aida_view/capture/review/settings_manage or full access; mutation requires the action-specific capture, review or settings permission. All records belong to the current organization. Requires aida_review or full access. Marks nonterminal work suppressed and closed while recording the reviewer reason. # Transcribe a Tali voice note Source: https://api-docs.helpyousponsor.com/api-reference/intelligence/transcribe-a-tali-voice-note post /admin/aida/transcribe Requires the configured Aida workspace feature (aida_workspace by default). View permits aida_view/capture/review/settings_manage or full access; mutation requires the action-specific capture, review or settings permission. All records belong to the current organization. Requires capture authority. Accepts approved audio/video MIME types and no more than8000000 bytes (also8000KiB upload validator). Returns text without capturing a work item. Unsupported/unconfigured/failed transcription returns422, except an explicitly configured local fallback can return empty text plus fallback_message. # Translate text for a public organization Source: https://api-docs.helpyousponsor.com/api-reference/intelligence/translate-text-for-a-public-organization post /frontend/translate/{client_id} Looks up a tenant-scoped translation by normalized text and target language, or generates and caches one. Successful output returns only the translated text and cache indicator. Uses the organization route context when no authenticated user is present. If an authenticated user is present, their organization must match the route. # Translate workspace text Source: https://api-docs.helpyousponsor.com/api-reference/intelligence/translate-workspace-text post /admin/translate Looks up a tenant-scoped translation by normalized text and target language, or generates and caches one. Successful output returns only the translated text and cache indicator. The organization is derived from the authenticated user. Requires permission: one of groups, admins, new_form, forms, manage_programs, donors_manage, donations, manage_email, email_manager, manage_sms, sms_manager, sms_inbox_view, sms_inbox_reply, sms_inbox_manage, sendblue_manage, mailings_view, mailings_generate, mailings_manage, manage_settings, access_account_settings, access_payment_gateways, tasks_manage, trips_manage, events_manage, events_sponsor_manage, imports_manage, households_manage, notes_manage, reports_manage. # Update Donor Intelligence dashboard settings Source: https://api-docs.helpyousponsor.com/api-reference/intelligence/update-donor-intelligence-dashboard-settings put /admin/donor-intelligence/{client_id}/settings Requires the donor_intelligence feature and route permissions. Every client_id route is restricted to the authenticated organization, including platform administrators using workspace routes. Stored profiles are filtered against current email-privacy state; obsolete privacy snapshots are concealed. Legacy wealth-insights URLs are equivalent aliases. Requires full-group or manage_settings authority. Submitted nonnull thresholds override the current values. # Update Donor Intelligence dashboard settings Source: https://api-docs.helpyousponsor.com/api-reference/intelligence/update-donor-intelligence-dashboard-settings-1 put /admin/wealth-insights/{client_id}/settings Requires the donor_intelligence feature and route permissions. Every client_id route is restricted to the authenticated organization, including platform administrators using workspace routes. Stored profiles are filtered against current email-privacy state; obsolete privacy snapshots are concealed. Legacy wealth-insights URLs are equivalent aliases. Requires full-group or manage_settings authority. Submitted nonnull thresholds override the current values. # Update relationship memory Source: https://api-docs.helpyousponsor.com/api-reference/intelligence/update-relationship-memory patch /admin/aida/relationship-memories/{memoryId} Requires the configured Aida workspace feature (aida_workspace by default). View permits aida_view/capture/review/settings_manage or full access; mutation requires the action-specific capture, review or settings permission. All records belong to the current organization. Requires aida_review or full access. Updates only submitted memory fields and records the changed evidence. # Update Tali workspace policy settings Source: https://api-docs.helpyousponsor.com/api-reference/intelligence/update-tali-workspace-policy-settings put /admin/aida/settings Requires the configured Aida workspace feature (aida_workspace by default). View permits aida_view/capture/review/settings_manage or full access; mutation requires the action-specific capture, review or settings permission. All records belong to the current organization. Requires aida_settings_manage or full access. Submitted sources/freshness/notifications/pause replace their stored sections; automation merges. External send always requires approval. Increasing autonomy needs explicit level_change_approval.status approved and cannot exceed the platform routine_internal_autonomy ceiling. Experiments require approved governance before enabled; rejected requests are reflected in returned settings. # Update workspace donor intelligence subscription metadata Source: https://api-docs.helpyousponsor.com/api-reference/intelligence/update-workspace-donor-intelligence-subscription-metadata post /admin/donors/{client_id}/donor-intelligence/subscription Requires the donor_intelligence feature and route permissions. Every client_id route is restricted to the authenticated organization, including platform administrators using workspace routes. Stored profiles are filtered against current email-privacy state; obsolete privacy snapshots are concealed. Legacy wealth-insights URLs are equivalent aliases. Sets the workspace module to paid using supplied or existing payment/metadata/expiry values. A later annual expiry may grant included-plan renewal credits. This operation changes subscription/capacity state; it does not itself charge a payment card. # Update workspace donor intelligence subscription metadata Source: https://api-docs.helpyousponsor.com/api-reference/intelligence/update-workspace-donor-intelligence-subscription-metadata-1 post /admin/donors/{client_id}/wealth-insights/subscription Requires the donor_intelligence feature and route permissions. Every client_id route is restricted to the authenticated organization, including platform administrators using workspace routes. Stored profiles are filtered against current email-privacy state; obsolete privacy snapshots are concealed. Legacy wealth-insights URLs are equivalent aliases. Sets the workspace module to paid using supplied or existing payment/metadata/expiry values. A later annual expiry may grant included-plan renewal credits. This operation changes subscription/capacity state; it does not itself charge a payment card. # API Reference Source: https://api-docs.helpyousponsor.com/api-reference/introduction Gratona REST API authentication, versions, and endpoint reference ## Authentication For server-to-server integrations, generate an API key from **Settings → Account Settings → Developer Settings** in the Gratona dashboard. Send the key in the `X-HYS-API-Key` header on protected admin requests: ```sh theme={null} curl --request GET \ --url https://api.gratona.com/v1/admin/api_keys \ --header 'X-HYS-API-Key: hys_your_key_here' ``` Protected admin endpoints also accept Passport access tokens through `Authorization: Bearer `. These are alternative authentication methods; one valid credential is sufficient. Access is limited to the key or token's organization and the user's permissions. Public endpoints do not require an admin API key. Donor, recipient, and participant portal endpoints have their own sign-in and session requirements. Follow each endpoint's parameters and authentication description; an admin API key does not replace a portal session. ## API Versions Most operations use `https://api.gratona.com/v1`. The v2 notes API uses `/v2`. Schema discovery, primitives and the newer Zapier operations use `/v3`. Public endpoints mounted outside a version prefix use the root API URL. Each endpoint's generated request example includes its correct base URL. The continuing `api.helpyousponsor.com` host supports compatibility integrations. The `X-HYS-API-Key` header remains the API-key header on both hosts. ## Available Workflows The reference includes donors and households, donations and recognition, sponsorships and recipient funding, events, journeys, trips, tasks, fundraising and stewardship, impact stories, communications, reports, integrations, Spaces and Library, and workspace setup. Feature availability depends on your organization's configuration, subscription, permissions and rollout settings. An endpoint's presence in the reference does not grant access to its feature. Read the endpoint's requirements and preview or approval steps before submitting a change. ## Requests And Responses Use the method, path, content type, and required fields shown for each operation. Mutations may require a preview token or an idempotency key. A `202 Accepted` response means work was queued; use the documented status endpoint to observe completion. Retired operations may return `410 Gone`. This reference is generated from controller annotations in the Gratona API repository. Examples describe the API contract; use test data when trying operations that create or change records. # Activate a journey Source: https://api-docs.helpyousponsor.com/api-reference/journeys/activate-a-journey post /admin/journeys/{id}/activate Validates trigger availability, graph reachability, message content, delays, tasks, branches, goals and notifications before setting active status. Drafts copied from legacy automations remain activation locked. Requires journeys_manage or beta_features; records remain organization scoped. # Copy a system automation into a journey draft Source: https://api-docs.helpyousponsor.com/api-reference/journeys/copy-a-system-automation-into-a-journey-draft post /admin/journeys/system-automations/convert Creates a draft with copied source email/SMS steps; this leaves legacy delivery configuration in place. Converted legacy triggers are activation locked until migrated to the Journeys runtime. Requires the workspace bridge and conversion capability. Requires journeys_manage or beta_features; records remain organization scoped. # Create a journey draft Source: https://api-docs.helpyousponsor.com/api-reference/journeys/create-a-journey-draft post /admin/journeys Creates a draft for an available subject type. Event filters must belong to this organization; event triggers require the event-journeys flag. The response omits graph arrays until the journey is fetched or its steps are saved. Requires journeys_manage or beta_features; records remain organization scoped. # Create a journey message template Source: https://api-docs.helpyousponsor.com/api-reference/journeys/create-a-journey-message-template post /admin/journeys/message-templates Creates an enabled source template in the organization library. Email requires a subject; SMS availability depends on installed messaging support. Embedded story reuse validates permission and review evidence. Requires journeys_manage or group_all. # Create an event interest follow-up draft Source: https://api-docs.helpyousponsor.com/api-reference/journeys/create-an-event-interest-follow-up-draft post /admin/journeys/event-follow-ups/{eventId} Creates an event-scoped donor journey with a trigger and an empty email step. Add message content before activation. The default repeat policy is each_order, with reentry disabled; event journeys must be enabled. # Delete a journey Source: https://api-docs.helpyousponsor.com/api-reference/journeys/delete-a-journey delete /admin/journeys/{id} Soft-deletes the journey and exits every active enrollment with exit_reason journey_deleted, clearing its current step and recording an exit log. Requires journeys_manage or beta_features; records remain organization scoped. # Duplicate a journey into a draft Source: https://api-docs.helpyousponsor.com/api-reference/journeys/duplicate-a-journey-into-a-draft post /admin/journeys/{id}/duplicate Copies settings, trigger, steps and edges into a uniquely named draft and records source_journey_id in settings. The source remains unchanged. Requires journeys_manage or beta_features; records remain organization scoped. # Get a journey graph Source: https://api-docs.helpyousponsor.com/api-reference/journeys/get-a-journey-graph get /admin/journeys/{id} Returns the journey, its ordered steps and edges, editability, and activation blockers. Sponsorship journeys return 404 when their lifecycle feature is unavailable. Read access requires journeys_view, journeys_manage or beta_features; records remain organization scoped. # Get a journey message template Source: https://api-docs.helpyousponsor.com/api-reference/journeys/get-a-journey-message-template get /admin/journeys/message-templates/{channel}/{id} Returns the selected organization-owned library template. Email details include designer data, merge tags and rendered previews; SMS details include retained story IDs. Requires journeys_view, journeys_manage or group_all. # Get journey editor options Source: https://api-docs.helpyousponsor.com/api-reference/journeys/get-journey-editor-options get /admin/journeys/options Returns organization-specific trigger, field, assignee, template and editor catalogs. Event and sponsorship choices follow workspace feature flags; this endpoint additionally checks journeys_view, journeys_manage or group_all. # Get journey execution statistics Source: https://api-docs.helpyousponsor.com/api-reference/journeys/get-journey-execution-statistics get /admin/journeys/{id}/stats Returns enrollment totals, messages executed, per-step execution/drop-off counts, branch traffic and health alerts. Recovery rate is nullable outside an overdue-commitment journey with a recovery branch; first-engagement timing is nullable before activity exists. Read access requires journeys_view, journeys_manage or beta_features; records remain organization scoped. # List event follow-up journeys Source: https://api-docs.helpyousponsor.com/api-reference/journeys/list-event-follow-up-journeys get /admin/journeys/event-follow-ups/{eventId} Lists draft, active and paused donor journeys triggered by monthly-giving or sponsorship interest for this event, including journeys configured for all events. Returns 404 when event journeys are disabled. # List journey enrollments Source: https://api-docs.helpyousponsor.com/api-reference/journeys/list-journey-enrollments get /admin/journeys/{id}/enrollments Returns enrollment state, resolved subject names, current-step summaries and execution logs, newest entry first. Event-backed runs include occurrence metadata. Read access requires journeys_view, journeys_manage or beta_features; records remain organization scoped. # List journey message templates Source: https://api-docs.helpyousponsor.com/api-reference/journeys/list-journey-message-templates get /admin/journeys/message-templates Returns email/SMS source templates, setup readiness and editor merge contexts. Reading requires journeys_view, journeys_manage or group_all in addition to route permissions. # List journeys Source: https://api-docs.helpyousponsor.com/api-reference/journeys/list-journeys get /admin/journeys Returns filtered journeys, health indicators, filtered summary counts and starter templates. Default ordering puts journeys needing attention first, followed by lifecycle priority and favorites. Read access requires journeys_view, journeys_manage or beta_features; records remain organization scoped. # List legacy system automations Source: https://api-docs.helpyousponsor.com/api-reference/journeys/list-legacy-system-automations get /admin/journeys/system-automations Returns configured email/SMS system automations, delivery health and the programs affected by shared sources. Returns 404 when the workspace system-automation bridge is disabled. Read access requires journeys_view, journeys_manage or beta_features; records remain organization scoped. # Pause a journey Source: https://api-docs.helpyousponsor.com/api-reference/journeys/pause-a-journey post /admin/journeys/{id}/pause Sets the journey to paused and returns its graph and activation checks. Requires journeys_manage or beta_features; records remain organization scoped. # Provision starter journey templates Source: https://api-docs.helpyousponsor.com/api-reference/journeys/provision-starter-journey-templates post /admin/journeys/message-templates/provision Idempotently creates missing Journeys email/SMS template sets and configured starter templates. Existing source content is preserved. Requires journeys_manage or group_all. # Replace a draft journey graph Source: https://api-docs.helpyousponsor.com/api-reference/journeys/replace-a-draft-journey-graph post /admin/journeys/{id}/steps Atomically replaces all steps and edges and returns the graph with client_step_id_map. Exactly one trigger is required, and every edge must reference a submitted step. Only drafts can be replaced; handwritten cards require donor-backed subjects, while sponsorship journeys prohibit tag, update_field and handwritten-card steps. Requires journeys_manage or beta_features; records remain organization scoped. # Update a shared journey message template Source: https://api-docs.helpyousponsor.com/api-reference/journeys/update-a-shared-journey-message-template put /admin/journeys/message-templates/{channel}/{id} Updates the source library template; every journey step still live-linked to it receives the changes. Email designer data is preserved when omitted; enabled is optional. Embedded story evidence is refreshed. Requires journeys_manage or group_all. # Update journey details Source: https://api-docs.helpyousponsor.com/api-reference/journeys/update-journey-details put /admin/journeys/{id} Updates supplied metadata, trigger configuration and settings. This endpoint preserves omitted properties; replace the graph through the steps endpoint. Event filter ownership and unique name checks still apply. Requires journeys_manage or beta_features; records remain organization scoped. # Authorize an immutable Library source upload Source: https://api-docs.helpyousponsor.com/api-reference/library/authorize-an-immutable-library-source-upload post /admin/workspace-library/upload-admissions Requires current Library authority and tenant ownership. Content directives are full, masked_identifiers or none; masked documents omit protected identity values. Commands accept only their documented JSON keys and reject query-string fields. Required Idempotency-Key is 8-128 URL-safe characters; changed payload under the same key conflicts. Reserves one API-proxied admission, without uploading bytes. Requires storage readiness and current document boundary. Both current-version fields must be present and jointly null or populated. File names cannot contain slashes, backslashes or controls. Google Drive-managed sources reject manual uploads. # Browse folders in an owned Drive account Source: https://api-docs.helpyousponsor.com/api-reference/library/browse-folders-in-an-owned-drive-account get /admin/workspace-library/drive/connections/{connection}/folders Requires workspace_library_manage and manage_settings under the current role. Connections are owned by the connecting user; provider and current-role authority are rechecked around provider I/O. folder defaults to root; page is the provider continuation token returned as next_page. # Complete a Google Drive connection Source: https://api-docs.helpyousponsor.com/api-reference/library/complete-a-google-drive-connection post /admin/workspace-library/drive/connections/{connection}/complete Requires workspace_library_manage and manage_settings under the current role. Connections are owned by the connecting user; provider and current-role authority are rechecked around provider I/O. Consumes a matching unexpired connection flow and verifies the connected account identity. An optional session_uri is checked during that verification. # Correct a current image description and tags Source: https://api-docs.helpyousponsor.com/api-reference/library/correct-a-current-image-description-and-tags patch /admin/workspace-library/files/{file}/analysis Uses the current tenant and Library/linked-record permissions. Private preferences and collections belong to the current user. Mutations are unavailable in support sessions. Requires workspace_library_manage and rollout availability. expected_sha256 must match current bytes and a ready current analyzer result must exist. tags is required but may be empty; editing schedules search reindexing. # Create a draft story from a Library file Source: https://api-docs.helpyousponsor.com/api-reference/library/create-a-draft-story-from-a-library-file post /admin/workspace-library/files/{file}/stories Uses the current tenant and Library/linked-record permissions. Private preferences and collections belong to the current user. Mutations are unavailable in support sessions. Creates an internal, unreviewed story and attaches this file. Requires impact_stories_manage; a matching request_key reuses the draft, while changed content conflicts. Mapped Drive folder program context is inherited. Existing story edits are refused with 409 and must be made in Stories. # Create a personal Library collection Source: https://api-docs.helpyousponsor.com/api-reference/library/create-a-personal-library-collection post /admin/workspace-library/file-collections Uses the current tenant and Library/linked-record permissions. Private preferences and collections belong to the current user. Mutations are unavailable in support sessions. Names must be nonblank and contain no control characters. # Create canonical Library document metadata Source: https://api-docs.helpyousponsor.com/api-reference/library/create-canonical-library-document-metadata post /admin/workspace-library/documents Requires current Library authority and tenant ownership. Content directives are full, masked_identifiers or none; masked documents omit protected identity values. Commands accept only their documented JSON keys and reject query-string fields. Required Idempotency-Key is 8-128 URL-safe characters; changed payload under the same key conflicts. Creates a draft with record_version 1 and no source version. Titles are trimmed, nonblank and free of control characters; domain/type/sensitivity keys use lowercase identifiers. Upload source bytes through a separate admission. # Delete a personal Library collection Source: https://api-docs.helpyousponsor.com/api-reference/library/delete-a-personal-library-collection delete /admin/workspace-library/file-collections/{collection} Uses the current tenant and Library/linked-record permissions. Private preferences and collections belong to the current user. Mutations are unavailable in support sessions. Deleting a collection clears its file assignments; files remain available. # Delete a personal Library filter view Source: https://api-docs.helpyousponsor.com/api-reference/library/delete-a-personal-library-filter-view delete /admin/workspace-library/file-views/{viewId} Uses the current tenant and Library/linked-record permissions. Private preferences and collections belong to the current user. Mutations are unavailable in support sessions. Only the current user own view can be deleted. # Disconnect an owned Drive account Source: https://api-docs.helpyousponsor.com/api-reference/library/disconnect-an-owned-drive-account post /admin/workspace-library/drive/connections/{connection}/disconnect Requires workspace_library_manage and manage_settings under the current role. Connections are owned by the connecting user; provider and current-role authority are rechecked around provider I/O. Disconnects this provider account and withdraws its shared source authority. # Discover available Library filter fields Source: https://api-docs.helpyousponsor.com/api-reference/library/discover-available-library-filter-fields get /admin/workspace-library/file-filter-fields Uses the current tenant and Library/linked-record permissions. Private preferences and collections belong to the current user. Mutations are unavailable in support sessions. Returns field types, selectable options and permitted recipient custom fields. Visibility options follow whether Spaces clearance is enabled; asynchronous linked-record options use the records endpoint. # Get an unadmitted Drive original URL Source: https://api-docs.helpyousponsor.com/api-reference/library/get-an-unadmitted-drive-original-url get /admin/workspace-library/files/{file}/source Uses the current tenant and Library/linked-record permissions. Private preferences and collections belong to the current user. Mutations are unavailable in support sessions. Only drive: prefixed catalog references support this endpoint. Resolves and verifies the provider source before returning its open URL. # Link a canonical document to a record Source: https://api-docs.helpyousponsor.com/api-reference/library/link-a-canonical-document-to-a-record post /admin/workspace-library/documents/{document}/links Requires current Library authority and tenant ownership. Content directives are full, masked_identifiers or none; masked documents omit protected identity values. Commands accept only their documented JSON keys and reject query-string fields. Required Idempotency-Key is 8-128 URL-safe characters; changed payload under the same key conflicts. Both current-version boundary fields must be present and either both null or both populated. subject_id is a string; subject and relationship types must be registered and accessible. is_primary must be a JSON boolean. Stale document boundaries or idempotency conflicts return 409. # List active document links Source: https://api-docs.helpyousponsor.com/api-reference/library/list-active-document-links get /admin/workspace-library/documents/{document}/links Requires current Library authority and tenant ownership. Content directives are full, masked_identifiers or none; masked documents omit protected identity values. Commands accept only their documented JSON keys and reject query-string fields. Required Idempotency-Key is 8-128 URL-safe characters; changed payload under the same key conflicts. Returns up to fifty active links and the current document record version. Continue using next_after_link_id when has_more is true. # List canonical Library documents Source: https://api-docs.helpyousponsor.com/api-reference/library/list-canonical-library-documents get /admin/workspace-library/documents Requires current Library authority and tenant ownership. Content directives are full, masked_identifiers or none; masked documents omit protected identity values. Commands accept only their documented JSON keys and reject query-string fields. Required Idempotency-Key is 8-128 URL-safe characters; changed payload under the same key conflicts. Uses an authority-bound signed cursor. Search matches full-content rows only. Unknown query fields and request bodies are rejected. # List consent evidence for a recipient Source: https://api-docs.helpyousponsor.com/api-reference/library/list-consent-evidence-for-a-recipient get /admin/workspace-library/consent-evidence Uses the current tenant and Library/linked-record permissions. Private preferences and collections belong to the current user. Mutations are unavailable in support sessions. Requires access to the recipient; returns the newest100 releases including valid, scheduled, expired and revoked states. # List failed image analyses in a shared root Source: https://api-docs.helpyousponsor.com/api-reference/library/list-failed-image-analyses-in-a-shared-root get /admin/workspace-library/drive/roots/{root}/analysis-issues Requires workspace_library_manage and manage_settings under the current role. Connections are owned by the connecting user; provider and current-role authority are rechecked around provider I/O. Only accessible ready-image files with failed current analysis appear. Returns twenty files per page. # List immutable source versions Source: https://api-docs.helpyousponsor.com/api-reference/library/list-immutable-source-versions get /admin/workspace-library/documents/{document}/versions Requires current full-content Library document authority; Drive sources additionally recheck provider ownership. Source reads use immutable version and content hashes. Returns up to fifty source versions with their latest text projection state; identity fields follow each version content directive. Cursor is encrypted and bound to current authority. # List my saved Library filter views Source: https://api-docs.helpyousponsor.com/api-reference/library/list-my-saved-library-filter-views get /admin/workspace-library/file-views Uses the current tenant and Library/linked-record permissions. Private preferences and collections belong to the current user. Mutations are unavailable in support sessions. Returns personal views ordered by name. # List record folders containing uploads Source: https://api-docs.helpyousponsor.com/api-reference/library/list-record-folders-containing-uploads get /admin/workspace-library/file-record-folders Uses the current tenant and Library/linked-record permissions. Private preferences and collections belong to the current user. Mutations are unavailable in support sessions. Returns twenty-four accessible donor or recipient folders per page ordered by latest attachment. Search may reject overly broad matches rather than return a partial result. # List saved source excerpts Source: https://api-docs.helpyousponsor.com/api-reference/library/list-saved-source-excerpts get /admin/workspace-library/documents/{document}/excerpts Requires current full-content Library document authority; Drive sources additionally recheck provider ownership. Source reads use immutable version and content hashes. Returns up to fifty active excerpts ordered by UUID. Continue using next_after when present. # List shared Google Drives Source: https://api-docs.helpyousponsor.com/api-reference/library/list-shared-google-drives get /admin/workspace-library/drive/connections/{connection}/drives Requires workspace_library_manage and manage_settings under the current role. Connections are owned by the connecting user; provider and current-role authority are rechecked around provider I/O. Returns provider Drive IDs and names with a continuation token for additional drives. # List stories using a Library file Source: https://api-docs.helpyousponsor.com/api-reference/library/list-stories-using-a-library-file get /admin/workspace-library/files/{file}/stories Uses the current tenant and Library/linked-record permissions. Private preferences and collections belong to the current user. Mutations are unavailable in support sessions. Returns up to fifty newest associated stories, rechecking their program access. Without story access returns an empty list. Continue with next_after even when some rows were concealed. # List the accessible Library file catalog Source: https://api-docs.helpyousponsor.com/api-reference/library/list-the-accessible-library-file-catalog get /admin/workspace-library/files Uses the current tenant and Library/linked-record permissions. Private preferences and collections belong to the current user. Mutations are unavailable in support sessions. Combines native record uploads, canonical Library documents, Drive and supported message/export sources. Content search uses current published analysis; filename search is the default. Source counts may be null while legacy message projection totals are unavailable. # Map a shared Drive folder to a program Source: https://api-docs.helpyousponsor.com/api-reference/library/map-a-shared-drive-folder-to-a-program post /admin/workspace-library/drive/roots/{root}/context Requires workspace_library_manage and manage_settings under the current role. Connections are owned by the connecting user; provider and current-role authority are rechecked around provider I/O. Support sessions cannot mutate mappings. folder_id must be the root or a discovered current child. program_id must be present and may be null to remove the mapping; current and previous mapped programs must be accessible. # Preview or download catalog file bytes Source: https://api-docs.helpyousponsor.com/api-reference/library/preview-or-download-catalog-file-bytes get /admin/workspace-library/files/{file}/preview Uses the current tenant and Library/linked-record permissions. Private preferences and collections belong to the current user. Mutations are unavailable in support sessions. Streams verified source bytes with private no-store and safe content disposition. thumbnail requests a bounded PNG derivative. Unadmitted Drive items return 409 and should use their source URL. Processing or changed originals also conflict. # Queue an HTTPS source capture Source: https://api-docs.helpyousponsor.com/api-reference/library/queue-an-https-source-capture post /admin/workspace-library/documents/{document}/capture-url Requires current full-content Library document authority; Drive sources additionally recheck provider ownership. Source reads use immutable version and content hashes. Requires manage authority and expected_record_version. Queues capture and returns a capture ID; the source may remain pending or fail. Poll source status for progress. Drive-managed documents cannot be manually replaced. # Queue analysis for the current Library image Source: https://api-docs.helpyousponsor.com/api-reference/library/queue-analysis-for-the-current-library-image post /admin/workspace-library/files/{file}/analysis Uses the current tenant and Library/linked-record permissions. Private preferences and collections belong to the current user. Mutations are unavailable in support sessions. Requires workspace_library_manage, rollout availability and shared AI/daily capacity. Only verified JPEG/PNG sources within configured size limits qualify. Existing current analysis is reused or retried.202 acknowledges the request; processing and search publication may still be pending. # Read a catalog file metadata Source: https://api-docs.helpyousponsor.com/api-reference/library/read-a-catalog-file-metadata get /admin/workspace-library/files/{file} Uses the current tenant and Library/linked-record permissions. Private preferences and collections belong to the current user. Mutations are unavailable in support sessions. file is the prefixed catalog identity returned by index, such as upload:123 or document:UUID; source and linked-record authority are rechecked. # Read canonical document metadata Source: https://api-docs.helpyousponsor.com/api-reference/library/read-canonical-document-metadata get /admin/workspace-library/documents/{document} Requires current Library authority and tenant ownership. Content directives are full, masked_identifiers or none; masked documents omit protected identity values. Commands accept only their documented JSON keys and reject query-string fields. Required Idempotency-Key is 8-128 URL-safe characters; changed payload under the same key conflicts. Conceals inaccessible documents with 404; no previous list result grants ongoing access. # Read current file analysis status Source: https://api-docs.helpyousponsor.com/api-reference/library/read-current-file-analysis-status get /admin/workspace-library/files/{file}/analysis Uses the current tenant and Library/linked-record permissions. Private preferences and collections belong to the current user. Mutations are unavailable in support sessions. Only admitted document: references with a current source version support analysis. Returns generated/corrected description, search publication and automatic-source status for the current bytes. # Read current upload and URL-capture status Source: https://api-docs.helpyousponsor.com/api-reference/library/read-current-upload-and-url-capture-status get /admin/workspace-library/documents/{document}/source-status Requires current full-content Library document authority; Drive sources additionally recheck provider ownership. Source reads use immutable version and content hashes. upload_available reflects processing readiness and is false for Drive-managed sources. state can be capturing_url, no_source or the latest admission lifecycle state. # Read Drive folder program mappings Source: https://api-docs.helpyousponsor.com/api-reference/library/read-drive-folder-program-mappings get /admin/workspace-library/drive/roots/{root}/context Requires workspace_library_manage and manage_settings under the current role. Connections are owned by the connecting user; provider and current-role authority are rechecked around provider I/O. Returns the root plus twenty child folders per page and up to twenty accessible program choices. A restricted existing mapping is concealed; replacing it requires access to its prior program. # Read Drive source connections and sync progress Source: https://api-docs.helpyousponsor.com/api-reference/library/read-drive-source-connections-and-sync-progress get /admin/workspace-library/drive Requires workspace_library_manage and manage_settings under the current role. Connections are owned by the connecting user; provider and current-role authority are rechecked around provider I/O. Lists organization connections, live shared roots, up to fifty actionable file issues, provider configuration and daily image-analysis capacity. analysis_progress is omitted outside the rollout. # Read extracted document text and a citation range Source: https://api-docs.helpyousponsor.com/api-reference/library/read-extracted-document-text-and-a-citation-range get /admin/workspace-library/documents/{document}/projections/{projection} Requires current full-content Library document authority; Drive sources additionally recheck provider ownership. Source reads use immutable version and content hashes. The projection must be ready and match its immutable source. Supply start and end together for an optional byte range no longer than16000 bytes. Range must be within text and cannot split a UTF-8 character. The full text is still returned along with before/quote/after. # Read file clearance and consent decisions Source: https://api-docs.helpyousponsor.com/api-reference/library/read-file-clearance-and-consent-decisions get /admin/workspace-library/files/{file}/clearance Uses the current tenant and Library/linked-record permissions. Private preferences and collections belong to the current user. Mutations are unavailable in support sessions. Shows current version safety signals, reachable audiences and available review actions. Noncurrent version signals read as unknown. # Read immutable document source bytes Source: https://api-docs.helpyousponsor.com/api-reference/library/read-immutable-document-source-bytes get /admin/workspace-library/documents/{document}/versions/{version}/preview Requires current full-content Library document authority; Drive sources additionally recheck provider ownership. Source reads use immutable version and content hashes. Returns the source MIME type or a PNG thumbnail. Unsafe inline types download as attachments. Unsupported thumbnail sources or changed generation/hash evidence return 409; processing availability can return503. # Read Library organization and storage summary Source: https://api-docs.helpyousponsor.com/api-reference/library/read-library-organization-and-storage-summary get /admin/workspace-library/file-organization Uses the current tenant and Library/linked-record permissions. Private preferences and collections belong to the current user. Mutations are unavailable in support sessions. Includes personal collections, AI rollout state and informational storage accounting. Schedules storage reconciliation at most once per fifteen minutes per organization. # Record recipient media consent evidence Source: https://api-docs.helpyousponsor.com/api-reference/library/record-recipient-media-consent-evidence post /admin/workspace-library/consent-evidence Uses the current tenant and Library/linked-record permissions. Private preferences and collections belong to the current user. Mutations are unavailable in support sessions. Requires media_clearance_manage and recipient access. valid_from defaults to now; expires_at must be later. Evidence permits supporter/public media use according to its scope. # Redirect edits of existing Library stories Source: https://api-docs.helpyousponsor.com/api-reference/library/redirect-edits-of-existing-library-stories patch /admin/workspace-library/files/{file}/stories/{story} Uses the current tenant and Library/linked-record permissions. Private preferences and collections belong to the current user. Mutations are unavailable in support sessions. Creates an internal, unreviewed story and attaches this file. Requires impact_stories_manage; a matching request_key reuses the draft, while changed content conflicts. Mapped Drive folder program context is inherited. Existing story edits are refused with 409 and must be made in Stories. # Remove a saved source excerpt Source: https://api-docs.helpyousponsor.com/api-reference/library/remove-a-saved-source-excerpt delete /admin/workspace-library/documents/{document}/excerpts/{excerpt} Requires current full-content Library document authority; Drive sources additionally recheck provider ownership. Source reads use immutable version and content hashes. Requires document manage authority. Soft-removes a matching excerpt; no matching excerpt also yields 204. # Remove analysis for the confirmed image bytes Source: https://api-docs.helpyousponsor.com/api-reference/library/remove-analysis-for-the-confirmed-image-bytes delete /admin/workspace-library/files/{file}/analysis Uses the current tenant and Library/linked-record permissions. Private preferences and collections belong to the current user. Mutations are unavailable in support sessions. Requires workspace_library_manage. expected_sha256 guards against replacing another version description. Retires matching descriptions/corrections and schedules removal from search; this remains available when the rollout is disabled. # Rename a canonical Library document Source: https://api-docs.helpyousponsor.com/api-reference/library/rename-a-canonical-library-document patch /admin/workspace-library/documents/{document} Requires current Library authority and tenant ownership. Content directives are full, masked_identifiers or none; masked documents omit protected identity values. Commands accept only their documented JSON keys and reject query-string fields. Required Idempotency-Key is 8-128 URL-safe characters; changed payload under the same key conflicts. Requires expected_record_version from the current document. A successful title change increments record_version; an unchanged title returns unchanged. Stale revisions return a409 command-result receipt. # Rename a personal Library collection Source: https://api-docs.helpyousponsor.com/api-reference/library/rename-a-personal-library-collection patch /admin/workspace-library/file-collections/{collection} Uses the current tenant and Library/linked-record permissions. Private preferences and collections belong to the current user. Mutations are unavailable in support sessions. Names must be nonblank and contain no control characters. # Replace a personal Library filter view Source: https://api-docs.helpyousponsor.com/api-reference/library/replace-a-personal-library-filter-view patch /admin/workspace-library/file-views/{viewId} Uses the current tenant and Library/linked-record permissions. Private preferences and collections belong to the current user. Mutations are unavailable in support sessions. Requires a nonblank name and a nonempty valid filters tree. Maximum 100 views per user. Updating replaces the complete saved definition with submitted supported fields. # Revoke recipient consent evidence Source: https://api-docs.helpyousponsor.com/api-reference/library/revoke-recipient-consent-evidence post /admin/workspace-library/consent-evidence/{evidenceId}/revoke Uses the current tenant and Library/linked-record permissions. Private preferences and collections belong to the current user. Mutations are unavailable in support sessions. Requires workspace_library_manage or media_clearance_manage and current recipient access. Repeating a revocation returns the existing revoked record. # Save a personal Library filter view Source: https://api-docs.helpyousponsor.com/api-reference/library/save-a-personal-library-filter-view post /admin/workspace-library/file-views Uses the current tenant and Library/linked-record permissions. Private preferences and collections belong to the current user. Mutations are unavailable in support sessions. Requires a nonblank name and a nonempty valid filters tree. Maximum 100 views per user. Updating replaces the complete saved definition with submitted supported fields. # Save a verified source excerpt Source: https://api-docs.helpyousponsor.com/api-reference/library/save-a-verified-source-excerpt post /admin/workspace-library/documents/{document}/excerpts Requires current full-content Library document authority; Drive sources additionally recheck provider ownership. Source reads use immutable version and content hashes. Requires document manage authority and a UUID Idempotency-Key. start/end identify UTF-8-safe byte offsets in a ready projection, with end greater than start and range at most 16000 bytes. Replaying the same key/payload returns the same excerpt ID; changed payload conflicts. # Schedule a shared Drive source retry Source: https://api-docs.helpyousponsor.com/api-reference/library/schedule-a-shared-drive-source-retry post /admin/workspace-library/drive/roots/{root}/retry Requires workspace_library_manage and manage_settings under the current role. Connections are owned by the connecting user; provider and current-role authority are rechecked around provider I/O. Schedules synchronization and resets actionable files when no active/recent sync is running. Existing active work is left queued and still returns scheduled. # Search accessible records to link a document Source: https://api-docs.helpyousponsor.com/api-reference/library/search-accessible-records-to-link-a-document get /admin/workspace-library/documents/{document}/link-records Requires current Library authority and tenant ownership. Content directives are full, masked_identifiers or none; masked documents omit protected identity values. Commands accept only their documented JSON keys and reject query-string fields. Required Idempotency-Key is 8-128 URL-safe characters; changed payload under the same key conflicts. Requires document manage authority; offers up to ten accessible donor, recipient or program choices. # Search or hydrate linked-record filter options Source: https://api-docs.helpyousponsor.com/api-reference/library/search-or-hydrate-linked-record-filter-options get /admin/workspace-library/file-filter-records Uses the current tenant and Library/linked-record permissions. Private preferences and collections belong to the current user. Mutations are unavailable in support sessions. Supply search (including an empty value) to search accessible donor, recipient and program options, or supply ids when search is absent. Unavailable hydrated IDs are omitted. # Set automatic image analysis for a shared root Source: https://api-docs.helpyousponsor.com/api-reference/library/set-automatic-image-analysis-for-a-shared-root post /admin/workspace-library/drive/roots/{root}/analysis Requires workspace_library_manage and manage_settings under the current role. Connections are owned by the connecting user; provider and current-role authority are rechecked around provider I/O. Enabling requires rollout availability and configured analysis; disabling parks queued analyses and releases their capacity reservations. # Share a Drive folder with the organization Source: https://api-docs.helpyousponsor.com/api-reference/library/share-a-drive-folder-with-the-organization post /admin/workspace-library/drive/connections/{connection}/roots Requires workspace_library_manage and manage_settings under the current role. Connections are owned by the connecting user; provider and current-role authority are rechecked around provider I/O. Explicitly confirms organization sharing and schedules synchronization. analyze_images opts a newly created/restored root into automatic analysis; an already-active root keeps its existing analysis setting. # Star files or assign a personal collection Source: https://api-docs.helpyousponsor.com/api-reference/library/star-files-or-assign-a-personal-collection patch /admin/workspace-library/file-preferences Uses the current tenant and Library/linked-record permissions. Private preferences and collections belong to the current user. Mutations are unavailable in support sessions. Requires a nonempty selection plus starred or collection_id. All files are authorized before any write. A null collection_id clears the assignment. # Start a Google Drive connection Source: https://api-docs.helpyousponsor.com/api-reference/library/start-a-google-drive-connection post /admin/workspace-library/drive/connect Requires workspace_library_manage and manage_settings under the current role. Connections are owned by the connecting user; provider and current-role authority are rechecked around provider I/O. Returns the redirect URL and state for this user to connect or reconnect their provider account. Complete the flow using the returned connection ID and state. # Stop sharing a Drive folder Source: https://api-docs.helpyousponsor.com/api-reference/library/stop-sharing-a-drive-folder post /admin/workspace-library/drive/roots/{root}/stop Requires workspace_library_manage and manage_settings under the current role. Connections are owned by the connecting user; provider and current-role authority are rechecked around provider I/O. Marks the root removed, withdraws memberships, invalidates sync generation and pauses queued automatic image analysis. # Unlink a canonical document from a record Source: https://api-docs.helpyousponsor.com/api-reference/library/unlink-a-canonical-document-from-a-record delete /admin/workspace-library/documents/{document}/links/{link} Requires current Library authority and tenant ownership. Content directives are full, masked_identifiers or none; masked documents omit protected identity values. Commands accept only their documented JSON keys and reject query-string fields. Required Idempotency-Key is 8-128 URL-safe characters; changed payload under the same key conflicts. Requires the current document boundary and expected_link_record_version. Both current-version boundary fields must be present and jointly null or populated. Returns an immutable unlinked receipt. # Update file clearance or safety signals Source: https://api-docs.helpyousponsor.com/api-reference/library/update-file-clearance-or-safety-signals put /admin/workspace-library/files/{file}/clearance Uses the current tenant and Library/linked-record permissions. Private preferences and collections belong to the current user. Mutations are unavailable in support sessions. Library managers may narrow visibility. Widening, removing linked-supporter restrictions or weakening safety signals requires media_clearance_manage and access to every associated recipient/program. Consent holds reject widening with 409. Record uploads cannot be reset to not_reviewed and people_detected is not persisted for them. # Upload the authorized source bytes Source: https://api-docs.helpyousponsor.com/api-reference/library/upload-the-authorized-source-bytes put /admin/workspace-library/upload-admissions/{admission}/bytes Requires current Library authority and tenant ownership. Content directives are full, masked_identifiers or none; masked documents omit protected identity values. Commands accept only their documented JSON keys and reject query-string fields. Required Idempotency-Key is 8-128 URL-safe characters; changed payload under the same key conflicts. Send raw application/octet-stream bytes using the returned upload_path, generation and session headers. Query fields, Content-Encoding and caller-authored checksum/evidence headers are rejected. The response acknowledges immutable byte storage; scan/extraction/commit processing is queued or deferred as indicated by X-Workspace-Library-Processing. Matching replay resolves the saved receipt. # Get my notification preferences Source: https://api-docs.helpyousponsor.com/api-reference/notifications/get-my-notification-preferences get /admin/notification-preferences Returns the authenticated admin’s category/event switches and optional signed credentials for both the shared workspace feed and personal feed. Credentials are null when subscriber HMAC is unavailable. The response is private and must not be cached. Category/event/channel keys come from this catalog. Requires permission: notification_preferences_self_service. # Get the legacy notification count Source: https://api-docs.helpyousponsor.com/api-reference/notifications/get-the-legacy-notification-count get /notification/count Compatibility endpoint. The current implementation always returns count0; current notification feeds are provided through the notification preference/subscriber integration. Requires permission: one of account, programs_view, donors_view, donations, manage_settings, access_account_settings, access_payment_gateways. # List legacy notifications Source: https://api-docs.helpyousponsor.com/api-reference/notifications/list-legacy-notifications get /notification/list Compatibility endpoint. The current implementation always returns an empty array. Requires permission: one of account, programs_view, donors_view, donations, manage_settings, access_account_settings, access_payment_gateways. # Update my notification preferences Source: https://api-docs.helpyousponsor.com/api-reference/notifications/update-my-notification-preferences put /admin/notification-preferences Saves the authenticated admin’s category/event overrides. Use keys/channels from the catalog; unsupported combinations return422. enabled is required unless reset/default is truthy. Reset deletes the explicit override. Event switches inherit their category unless overridden. Entries are applied in order; a later invalid entry can fail after earlier entries were saved, so validate all keys before submitting. Requires permission: notification_preferences_self_service. # Add a new recipient during participation intake Source: https://api-docs.helpyousponsor.com/api-reference/participation/add-a-new-recipient-during-participation-intake post /admin/programs/{program_id}/participation/sessions/{session_id}/recipients Requires the participation feature, programs_view and access to this organization-owned program. Requires participation_record, participation_submit or participation_configure and access to the check’s site/cohort. Creates a donor-hidden recipient, pending current placement and new-entrant observation in a draft check. A usable recipient title field is required; display_name fills the first title field when no submitted title has a value. Required recipient fields and configured intake fields must be filled; field types/options and unique values are checked, including archived duplicates. Organization-wide idempotency key replays within the same check before stale-version/state validation, returning 200 with the original result (entity may be null if no longer available); new intake returns 201. New-request stale lock_version returns 422. Returns recipient identity and the full updated check. # Add an existing recipient to a draft check Source: https://api-docs.helpyousponsor.com/api-reference/participation/add-an-existing-recipient-to-a-draft-check post /admin/programs/{program_id}/participation/sessions/{session_id}/existing-recipients Requires the participation feature, programs_view and access to this organization-owned program. Requires participation_record, participation_submit or participation_configure and access to the check’s site/cohort. Requires the current version of a draft check; a stale version returns 422. The active recipient must belong to this program and have no current placement elsewhere. Creates a pending placement when unplaced, then adds a new-entrant observation and increments the check version. If already present, returns the same check after version validation. # Add newly available recipients to a draft check Source: https://api-docs.helpyousponsor.com/api-reference/participation/add-newly-available-recipients-to-a-draft-check post /admin/programs/{program_id}/participation/sessions/{session_id}/new-entrants Requires the participation feature, programs_view and access to this organization-owned program. Requires participation_record, participation_submit or participation_configure and access to the check’s site/cohort. Adds recipients whose placement was created since this check began, is active on the check date and matches its location/group, excluding recipients already present. Only draft checks are accepted. A stale version returns 409 when entrants exist; when none remain this is a no-op even with a stale version. Returns the complete updated check. # Commit a reviewed attendance import Source: https://api-docs.helpyousponsor.com/api-reference/participation/commit-a-reviewed-attendance-import post /admin/programs/{program_id}/participation/imports/{participation_import_id}/commit Requires participation_configure, programs_view and access to this organization’s program, with participation enabled. Queues creation/submission of participation checks, observations and approved provisional recipients/placements. Every blocked/review row must be resolved first. Use the same idempotency key for retries; a completed matching batch returns200, otherwise202 reports queued or resumed processing. A failed partial commit retains its original commit key and resumes the same batch. Poll until completed;202 does not mean evidence has finished importing. Requires permission: one of participation_configure. # Configure program participation Source: https://api-docs.helpyousponsor.com/api-reference/participation/configure-program-participation put /admin/programs/{program_id}/participation/setup Requires the participation feature, programs_view and access to this organization-owned program. Requires participation_configure. Upserts locations, groups and non-overlapping periods; provide period or periods (periods wins if both exist). At most one period may be open. IDs update existing rows; absent IDs match normalized location/group names or period names before creating. Omitted locations/groups remain. Current placements or draft checks prevent deactivation. Required/profile field keys must belong to this program and any assignee must be an active organization user. Returns a fresh overview and increments setup revision; revision conflicts return 422. # Create a correction draft for a submitted check Source: https://api-docs.helpyousponsor.com/api-reference/participation/create-a-correction-draft-for-a-submitted-check post /admin/programs/{program_id}/participation/sessions/{session_id}/corrections Requires the participation feature, programs_view and access to this organization-owned program. Requires participation_submit or participation_configure and access to the check’s site/cohort. Only the latest submitted revision may be corrected and its series must not already have a draft. Clones the roster and evidence into a new draft with revision incremented and new observation IDs; the original stays submitted until correction submission. The organization-wide key replays only the matching source check. Returns 201 when created or 200 for replay. source_note defaults to the original when omitted or null. # Create or reuse a recipient participation follow-up Source: https://api-docs.helpyousponsor.com/api-reference/participation/create-or-reuse-a-recipient-participation-follow-up post /admin/programs/{program_id}/participation/recipients/{entity_id}/follow-up Requires the participation feature, programs_view and access to this organization-owned program. Requires participation_record, participation_submit or participation_configure, visible recipient history/placement and access to the supplied check. Requires an active recipient, participation settings and a participation rollup. Manually creates or reuses the open unresolved-enrollment task for this recipient and check period without waiting for configured thresholds. Uses the configured active assignee or the caller, with due date based on follow_up_due_days. Returns 201 for both a new task and reuse. # Find possible existing recipients for check intake Source: https://api-docs.helpyousponsor.com/api-reference/participation/find-possible-existing-recipients-for-check-intake get /admin/programs/{program_id}/participation/sessions/{session_id}/recipient-suggestions Requires the participation feature, programs_view and access to this organization-owned program. Requires participation_record, participation_submit or participation_configure and access to the check’s site/cohort. Returns up to eight candidate names from this program, including archived matches and already-added markers. Search considers up to sixty matching custom-field rows and ranks exact names first. Scoped roles can discover unplaced recipients; current placements outside their scope are excluded. This search does not require the check to remain draft; archived matches cannot be attached through existing-recipients. # Get attendance import review and progress Source: https://api-docs.helpyousponsor.com/api-reference/participation/get-attendance-import-review-and-progress get /admin/programs/{program_id}/participation/imports/{participation_import_id} Requires participation_configure, programs_view and access to this organization’s program, with participation enabled. Returns batch progress, source inspection, recipient field definitions and paged review rows. row_status filters rows; per_page is25,50 or100. Completed/voided batches also include created check summaries. Validation and commit jobs update this receipt asynchronously; no job is started by this read. Requires permission: one of participation_configure. # List participation and profile exceptions Source: https://api-docs.helpyousponsor.com/api-reference/participation/list-participation-and-profile-exceptions get /admin/programs/{program_id}/participation/exceptions Requires the participation feature, programs_view and access to this organization-owned program. Requires participation_view, participation_record, participation_submit or participation_configure. Results follow the caller’s site/cohort scope. Returns up to 500 prioritized recipients with unresolved enrollment or incomplete profiles, plus the uncapped total. Prioritizes sponsored/overdue recipients, then unresolved check count and exception age. Follow-up details are included only when the caller may view that task. No pagination or query filters are applied. # List participation check history Source: https://api-docs.helpyousponsor.com/api-reference/participation/list-participation-check-history get /admin/programs/{program_id}/participation/sessions Requires the participation feature, programs_view and access to this organization-owned program. Requires participation_view, participation_record, participation_submit or participation_configure. Results follow the caller’s site/cohort scope. Returns filtered summaries ordered by scheduled date, revision and ID descending. No filters means all accessible program checks. # List recent participation imports Source: https://api-docs.helpyousponsor.com/api-reference/participation/list-recent-participation-imports get /admin/programs/{program_id}/participation/imports Requires participation_configure, programs_view and access to this organization’s program, with participation enabled. Returns the most recent25 batches for this program, newest first, without paged source rows. Reading a batch does not run validation or commit imported evidence. Requires permission: one of participation_configure. # Preview placement reconciliation Source: https://api-docs.helpyousponsor.com/api-reference/participation/preview-placement-reconciliation get /admin/programs/{program_id}/participation/placement-bootstrap Requires the participation feature, programs_view and access to this organization-owned program. Requires participation_configure. Matches non-archived recipients without a current placement to active locations/groups using configured recipient fields (or school/site and class/cohort/grade field-name discovery), normalized names and legacy aliases. Requires settings and an open period. Ambiguous, missing and unmapped values are counted and skipped; preview writes nothing. # Queue attendance import validation Source: https://api-docs.helpyousponsor.com/api-reference/participation/queue-attendance-import-validation post /admin/programs/{program_id}/participation/imports/{participation_import_id}/validate Requires participation_configure, programs_view and access to this organization’s program, with participation enabled. Saves the exact symbol/worksheet mapping and queues a dry run;202 means validation is pending. Map every enabled worksheet only once, and each attendance date/column once per sheet. Selected field keys must belong to this program; the external ID field must be hysCustomID. Processing/completed/voided or partially committed failed batches cannot be remapped. Poll the batch for row review and failure results; expanded-observation limits can fail asynchronously. Requires permission: one of participation_configure. # Read a participation check and roster Source: https://api-docs.helpyousponsor.com/api-reference/participation/read-a-participation-check-and-roster get /admin/programs/{program_id}/participation/sessions/{session_id} Requires the participation feature, programs_view and access to this organization-owned program. Requires participation_view, participation_record, participation_submit or participation_configure. Results follow the caller’s site/cohort scope. Returns the complete current check representation and name-snapshot ordered observations, including lock_version needed by mutations and the count of eligible entrants not yet added. # Read a recipient participation timeline Source: https://api-docs.helpyousponsor.com/api-reference/participation/read-a-recipient-participation-timeline get /admin/programs/{program_id}/participation/recipients/{entity_id} Requires the participation feature, programs_view and access to this organization-owned program. Requires participation_view, participation_record, participation_submit or participation_configure. Results follow the caller’s site/cohort scope. Requires visible placement or submitted/superseded/voided evidence within the caller’s scope for restricted roles. Includes archived recipients, scoped placement history and finalized evidence; draft observations are omitted. Scoped current state is reconstructed from permitted evidence and conceals program-wide follow-ups; unrestricted callers receive the rollup and any viewable open follow-up. # Read program participation overview Source: https://api-docs.helpyousponsor.com/api-reference/participation/read-program-participation-overview get /admin/programs/{program_id}/participation Requires the participation feature, programs_view and access to this organization-owned program. Requires participation_view, participation_record, participation_submit or participation_configure. Results follow the caller’s site/cohort scope. Returns setup, active scoped locations and groups, period schedule, roster/check totals and caller capabilities. Defaults to the open period, otherwise the newest period. Setup details are returned only to configurators; intake options require record capability. # Reconcile legacy recipient placements Source: https://api-docs.helpyousponsor.com/api-reference/participation/reconcile-legacy-recipient-placements post /admin/programs/{program_id}/participation/placement-bootstrap Requires the participation feature, programs_view and access to this organization-owned program. Requires participation_configure. Applies the same matching plan as the preview. Creates pending current placements beginning on the open period start date, skips recipients already placed and skips ambiguous/missing/unmapped values. The response reports committed placement counts; search-reference synchronization is queued separately. Requires settings, source fields and an open period. # Resolve an imported attendance recipient Source: https://api-docs.helpyousponsor.com/api-reference/participation/resolve-an-imported-attendance-recipient patch /admin/programs/{program_id}/participation/imports/{participation_import_id}/rows/{participation_import_row_id} Requires participation_configure, programs_view and access to this organization’s program, with participation enabled. Only batches in review can be changed. Match selects one of the reviewed candidate IDs and must respect current placement; provisional marks a new recipient for creation at commit, unresolved preserves unresolved evidence, and skip excludes it. Applies the decision to all ready/review/unresolved observations sharing the same source-record fingerprint, then refreshes batch counts. Blocked rows require mapping correction and revalidation. Requires permission: one of participation_configure. # Start or reuse a participation check Source: https://api-docs.helpyousponsor.com/api-reference/participation/start-or-reuse-a-participation-check post /admin/programs/{program_id}/participation/sessions Requires the participation feature, programs_view and access to this organization-owned program. Requires participation_record, participation_submit or participation_configure and access to the check’s site/cohort. Requires enabled setup, an open period, an active site/group and a date within that period. Snapshots placements active on the inclusive check date. The idempotency key is organization-wide and must replay matching program, period, location/group, date, type and evidence source. Returns 201 for a new draft or 200 for replay/reuse. Fixed cadence reuses a draft/submitted check in that window; flexible cadence reuses only a draft on the exact date. # Submit a participation check Source: https://api-docs.helpyousponsor.com/api-reference/participation/submit-a-participation-check post /admin/programs/{program_id}/participation/sessions/{session_id}/submit Requires the participation feature, programs_view and access to this organization-owned program. Requires participation_submit or participation_configure and access to the check’s site/cohort. Finalizes a nonempty draft in an open period. Expected rows require an enrollment confirmation; a nonblank partial_reason permits an unchecked expected row to remain unconfirmed. Any expected not_checked row requires partial_reason. Transfer rows also need an active destination site and, if that site has active groups, a destination group; destinations must be in caller scope. Stale versions return 409. Replaying the same submission key for an already submitted check returns200 without another submission; keys cannot be used by another check. Submission applies authoritative evidence and rollups; inclusive ending dates keep current placements active through that organization-local date. Automatic follow-up task creation and search synchronization may continue in queued jobs. Submitting a correction supersedes its previous submitted revision. # Update draft roster observations together Source: https://api-docs.helpyousponsor.com/api-reference/participation/update-draft-roster-observations-together patch /admin/programs/{program_id}/participation/sessions/{session_id}/observations Requires the participation feature, programs_view and access to this organization-owned program. Requires participation_record, participation_submit or participation_configure and access to the check’s site/cohort. Only draft checks may be edited. Omitted fields retain existing values. A non-null enrollment confirmation defaults omitted evidence_source to the check primary source; the source must be enabled. confirmed_enrolled requires evidence. transferred/withdrawn/graduated require evidence and effective_on. A transfer destination must be active, belong to this program, differ from the current placement and be within caller scope; its effective date cannot precede placement start. Destination fields are cleared when enrollment_confirmation is explicitly changed away from transferred. A stale lock_version returns 409; success increments it and returns the full check. All rows must belong to this check; the batch is applied atomically. # Update one draft roster observation Source: https://api-docs.helpyousponsor.com/api-reference/participation/update-one-draft-roster-observation patch /admin/programs/{program_id}/participation/sessions/{session_id}/observations/{observation_id} Requires the participation feature, programs_view and access to this organization-owned program. Requires participation_record, participation_submit or participation_configure and access to the check’s site/cohort. Only draft checks may be edited. Omitted fields retain existing values. A non-null enrollment confirmation defaults omitted evidence_source to the check primary source; the source must be enabled. confirmed_enrolled requires evidence. transferred/withdrawn/graduated require evidence and effective_on. A transfer destination must be active, belong to this program, differ from the current placement and be within caller scope; its effective date cannot precede placement start. Destination fields are cleared when enrollment_confirmation is explicitly changed away from transferred. A stale lock_version returns 409; success increments it and returns the full check. # Upload an attendance workbook Source: https://api-docs.helpyousponsor.com/api-reference/participation/upload-an-attendance-workbook post /admin/programs/{program_id}/participation/imports Requires participation_configure, programs_view and access to this organization’s program, with participation enabled. Accepts a private CSV/XLSX file up to20MiB and an existing program participation period. Inspects up to12 sample rows per sheet for mapping. Workbook bounds are100 sheets,100000 source rows,512 columns and2000000 expanded cells. A matching organization-wide upload idempotency key returns the original batch with HTTP200; reuse for another program/period returns422. Upload does not create participation checks. Requires permission: one of participation_configure. # Void a completed attendance import Source: https://api-docs.helpyousponsor.com/api-reference/participation/void-a-completed-attendance-import post /admin/programs/{program_id}/participation/imports/{participation_import_id}/void Requires participation_configure, programs_view and access to this organization’s program, with participation enabled. Atomically voids the batch’s draft/submitted checks in reverse date/ID order, marks committed source rows voided and records the reason. Only a completed batch may be voided; retrying an already voided batch is allowed. Later submitted evidence can block reversal. Historical records remain available for audit. Requires permission: one of participation_configure. # Void a draft or submitted participation check Source: https://api-docs.helpyousponsor.com/api-reference/participation/void-a-draft-or-submitted-participation-check post /admin/programs/{program_id}/participation/sessions/{session_id}/void Requires the participation feature, programs_view and access to this organization-owned program. Requires participation_submit or participation_configure and access to the check’s site/cohort. Requires the current lock_version and a reason. Refuses superseded/voided checks and submitted checks for which later submitted evidence exists for an affected recipient. Voids the check and reverses its placement effects, restoring applicable prior evidence; draft-created placements are removed. Returns the complete voided check. Stale versions return 409. # Check Stripe webhook configuration Source: https://api-docs.helpyousponsor.com/api-reference/payment-gateways/check-stripe-webhook-configuration post /integrations/stripe/webhook-status Checks up to100 Stripe webhook endpoints using the provided or saved private key and compares the expected URL after trimming trailing slashes. Reports endpoint readiness and missing required events; wildcard subscriptions satisfy every required event. This does not create or update an endpoint. Requires permission: one of access_account_settings. # Complete new Stripe account setup Source: https://api-docs.helpyousponsor.com/api-reference/payment-gateways/complete-new-stripe-account-setup get /connect/{token} Rechecks the server-stored, organization-bound setup token and Standard Stripe account. Incomplete details return incomplete; submitted accounts lacking charge capability persist pending/action_required. Ready accounts become the active connection after account-ownership and direct-gateway checks. This performs setup and creates no charge. Requires permission: one of access_payment_gateways. # Enable supported Stripe webhook events Source: https://api-docs.helpyousponsor.com/api-reference/payment-gateways/enable-supported-stripe-webhook-events post /integrations/stripe/webhook-events Finds the matching existing Stripe endpoint, adds missing supported events without removing existing subscriptions and enables it if disabled. A missing endpoint is reported as HTTP200 missing and is not created. Returns added and remaining missing events after the update. Requires permission: one of access_account_settings. # Update direct payment gateway credentials Source: https://api-docs.helpyousponsor.com/api-reference/payment-gateways/update-direct-payment-gateway-credentials post /payment-gateways/{name} Updates only stripe, authorize_net, paypal or qpaypro for the current organization. Fields depend on name. Existing gateway IDs are organization/provider scoped. Empty credentials can remove an existing gateway; direct Stripe writes conflict with a managed Stripe connection or active link attempt. PayPal credentials are verified when both keys are nonblank. Authorize.Net can return an empty HTTP200 body after a successful save. This configures gateways and does not charge a donation. Requires permission: one of access_payment_gateways. # Authorize an existing Stripe account without direct keys Source: https://api-docs.helpyousponsor.com/api-reference/payments/authorize-an-existing-stripe-account-without-direct-keys post /stripe-connect/existing-account-onboarding Starts an expiring OAuth authorization attempt (default15minutes) for the current organization. A new attempt supersedes pending attempts, while a currently processing attempt returns409. It returns an authorization URL; payment setup changes only when the provider callback completes. Requires configured OAuth and no supported direct-key gateway or active Connect gateway. A deauthorized/disconnected/rolled-back connection may reconnect only to its expected account. Requires permission: one of access_payment_gateways. # Check the unavailable legacy account session Source: https://api-docs.helpyousponsor.com/api-reference/payments/check-the-unavailable-legacy-account-session get /account_session Legacy placeholder endpoint. The current implementation always returns HTTP500 with error=Not available and does not issue an account session token. Requires permission: one of access_payment_gateways. # Continue a Flutterwave v4 campaign charge Source: https://api-docs.helpyousponsor.com/api-reference/payments/continue-a-flutterwave-v4-campaign-charge put /frontend/flutterwave-v4/campaign-charge/{client_id}/{program_id}/{charge_id}/{session_id} Submits PIN or OTP authorization for a previously initialized campaign charge. The controller validates the Redis charge state against client, program, charge id, and optional session id before sending the normalized authorization payload to Flutterwave. It stores the updated charge state and returns the same charge response shape as initialization. # Continue a Flutterwave v4 order charge Source: https://api-docs.helpyousponsor.com/api-reference/payments/continue-a-flutterwave-v4-order-charge put /frontend/flutterwave-v4/order-charge/{client_id}/{program_id}/{charge_id}/{session_id} Alias of the campaign charge continuation logic for Redis order checkout. It validates the same route state and authorization payload, then returns the common Flutterwave v4 charge response. # Create a legacy Flutterwave payment plan checkout Source: https://api-docs.helpyousponsor.com/api-reference/payments/create-a-legacy-flutterwave-payment-plan-checkout post /frontend/flutterwave_payment_plan/{client_id}/{program_id}/{session_id} Creates a legacy Flutterwave Standard payment plan and checkout URL from the Redis saved entity cart. The controller requires a session id, reads `saved_entity_id` and `saved_entity_frequency`, creates payment plans with retry logic, creates a Flutterwave checkout using the first plan id, and returns the provider response with a generated transaction reference. This route is retained for older order/signup flows; newer card flows use the Flutterwave v4 charge endpoints. # Create the legacy fixed Flutterwave setup charge Source: https://api-docs.helpyousponsor.com/api-reference/payments/create-the-legacy-fixed-flutterwave-setup-charge post /flutterwave/payment Legacy authenticated card-setup transport. The server always submits an actual USD10 card charge with a generated tx_ref and the current organization’s subaccount, ignoring caller amount/currency. Optional authorization is forwarded to the provider. Returns provider success JSON or local400 with the provider message. Requires an existing organization subaccount. Requires permission: one of access_payment_gateways. # Create the organization Flutterwave subaccount Source: https://api-docs.helpyousponsor.com/api-reference/payments/create-the-organization-flutterwave-subaccount post /flutterwave/subaccount Creates a provider subaccount and, on provider success, stores its subaccount/account IDs and a default Flutterwave gateway for the authenticated organization. The server supplies split_value=0.05 and split_type=percentage; callers cannot override these fields. Returns the updated organization model. A provider rejection or transport exception is a local500 failure. Requires permission: one of access_payment_gateways. # Delete the organization Flutterwave subaccount Source: https://api-docs.helpyousponsor.com/api-reference/payments/delete-the-organization-flutterwave-subaccount delete /flutterwave/subaccount Requests provider deletion using the current organization’s stored account ID. On provider success, clears the local subaccount/account IDs and records activity. Returns provider JSON under HTTP200; a provider failure leaves those local IDs intact. The handler does not remove existing gateway rows. Requires permission: one of access_payment_gateways. # Disconnect a Stripe Connect integration Source: https://api-docs.helpyousponsor.com/api-reference/payments/disconnect-a-stripe-connect-integration delete /connect For a managed connection, first attempts restoration of a retained direct gateway; if unavailable, disconnects the managed integration locally and attempts provider deauthorization. For legacy unmanaged Connect, removes the Connect gateway, clears account linkage and creates an empty direct Stripe gateway for later configuration. This removes integration configuration; it does not delete the provider account. Requires permission: one of access_payment_gateways. # Get connected Stripe readiness Source: https://api-docs.helpyousponsor.com/api-reference/payments/get-connected-stripe-readiness get /stripe-connect/status Reads live readiness for the organization’s configured Stripe Connect account. Returns a filtered summary of enabled charges/payouts and machine-readable requirements; provider descriptions and arbitrary account data are not returned. A local connection is required. Stripe/provider errors return502 without disclosing credentials. Requires permission: one of access_payment_gateways. # Get payment gateway setup settings Source: https://api-docs.helpyousponsor.com/api-reference/payments/get-payment-gateway-setup-settings get /payment-gateways/settings Returns only organization/gateway setup fields used by payment settings, plus existing-account authentication-refresh availability and new-account country options. A missing gateway is an empty array. Direct Stripe settings are redacted when a refresh is required. Country lookup uses configured countries or cached provider eligibility; an unavailable lookup returns an empty list. Other stored gateway settings can contain credentials and must be handled as sensitive. Requires permission: one of access_payment_gateways. # Get the organization Flutterwave subaccount Source: https://api-docs.helpyousponsor.com/api-reference/payments/get-the-organization-flutterwave-subaccount get /flutterwave/subaccount Retrieves the provider subaccount using the authenticated organization’s stored account ID. Returns the provider JSON with HTTP200 even when its status indicates a provider-level rejection; inspect status/message. Requires permission: one of access_payment_gateways. # Get the platform Stripe publishable key Source: https://api-docs.helpyousponsor.com/api-reference/payments/get-the-platform-stripe-publishable-key get /account/form Returns the configured platform publishable key for authenticated payment settings. This is a publishable browser key, not a secret key. The field can be null when no publishable key is configured. Requires permission: one of access_payment_gateways. # Initialize a Flutterwave v4 campaign charge Source: https://api-docs.helpyousponsor.com/api-reference/payments/initialize-a-flutterwave-v4-campaign-charge post /frontend/flutterwave-v4/campaign-charge/{client_id}/{program_id}/{session_id} Starts the direct-card Flutterwave v4 charge flow for a public campaign donation. The controller creates or refreshes a frontend session, validates card or saved-payment-method input, validates designation items against the client/program, enforces checkout settings such as single-designation mode, creates or reuses a Flutterwave customer/payment method, creates the charge, stores charge state in Redis, and returns the provider charge status plus any next action. Existing donors must verify their checkout session before using saved payment methods. # Initialize a Flutterwave v4 order charge Source: https://api-docs.helpyousponsor.com/api-reference/payments/initialize-a-flutterwave-v4-order-charge post /frontend/flutterwave-v4/order-charge/{client_id}/{program_id}/{session_id} Starts the direct-card Flutterwave v4 charge flow for the Redis checkout order page. The controller validates email and card or saved-payment-method input, totals saved entity and designation cart values from Redis, adds configured processing fees when requested, creates or reuses Flutterwave customer/payment method records, stores charge state, and returns the common charge response. The session cart must contain at least one saved entity or designation amount. # List Flutterwave bank branches Source: https://api-docs.helpyousponsor.com/api-reference/payments/list-flutterwave-bank-branches get /flutterwave/banks/{id}/branches Returns the provider’s branch-directory JSON. If the provider HTTP request is unsuccessful, the compatibility response is still HTTP200 with error=Unable to fetch branches and an empty data array. # List Flutterwave banks for a country Source: https://api-docs.helpyousponsor.com/api-reference/payments/list-flutterwave-banks-for-a-country get /flutterwave/banks/{country} Returns the provider’s bank-directory JSON for the supplied country. A non-success provider HTTP response becomes a local500 error rather than retaining the provider status. # List Flutterwave setup countries Source: https://api-docs.helpyousponsor.com/api-reference/payments/list-flutterwave-setup-countries get /flutterwave/countries Returns the application’s configured static country-code/name options used for Flutterwave subaccount setup. This list does not independently verify current provider onboarding eligibility. # Refresh authentication for an existing direct Stripe account Source: https://api-docs.helpyousponsor.com/api-reference/payments/refresh-authentication-for-an-existing-direct-stripe-account post /stripe-connect/existing-account-link Starts an expiring OAuth authorization attempt (default15minutes) for the current organization. A new attempt supersedes pending attempts, while a currently processing attempt returns409. It returns an authorization URL; payment setup changes only when the provider callback completes. Requires rollout availability and one configured direct Standard Stripe secret key. Verifies that account before returning an authorization URL; the connected provider account must match it. Requires permission: one of access_payment_gateways. # Refresh pending Stripe account readiness Source: https://api-docs.helpyousponsor.com/api-reference/payments/refresh-pending-stripe-account-readiness post /stripe-connect/pending-onboarding/refresh Retrieves a pending/action-required Standard account from Stripe. If charges remain disabled, persists and returns pending/action_required. If charges are enabled, activates the local Connect gateway and returns connected; payouts_enabled is reported independently and may still be false. Conflicting supported direct gateways or cross-organization ownership prevent activation. Requires permission: one of access_payment_gateways. # Retired legacy signup payment setup Source: https://api-docs.helpyousponsor.com/api-reference/payments/retired-legacy-signup-payment-setup get /stripe_connect_details This unbound public SetupIntent endpoint has been retired. Current workspace onboarding creates a session-bound SetupIntent through `/workspace-onboarding/{public_id}/payment-intent`. # Retrieve a Flutterwave v4 campaign charge Source: https://api-docs.helpyousponsor.com/api-reference/payments/retrieve-a-flutterwave-v4-campaign-charge get /frontend/flutterwave-v4/campaign-charge/{client_id}/{program_id}/{charge_id}/{session_id} Retrieves the latest provider status for a campaign charge and refreshes the Redis charge state. The controller first validates the charge state against client, program, charge id, and optional session id, then returns the common Flutterwave v4 charge response payload. Public checkout polls this endpoint after redirect, OTP, or 3DS flows. # Retrieve a Flutterwave v4 campaign charge by checkout reference Source: https://api-docs.helpyousponsor.com/api-reference/payments/retrieve-a-flutterwave-v4-campaign-charge-by-checkout-reference get /frontend/flutterwave-v4/campaign-charge-reference/{client_id}/{program_id}/{reference}/{session_id} Resolves a stored campaign charge from its checkout reference, validates the client, program, session and checkout flow, then delegates to charge retrieval to refresh the provider status. Use after returning from provider authorization when the checkout reference is available. # Retrieve a Flutterwave v4 order charge Source: https://api-docs.helpyousponsor.com/api-reference/payments/retrieve-a-flutterwave-v4-order-charge get /frontend/flutterwave-v4/order-charge/{client_id}/{program_id}/{charge_id}/{session_id} Alias of the campaign charge retrieval logic for Redis order checkout. It validates client, program, charge id, and optional session id against stored Redis state, retrieves the provider status, updates Redis, and returns the common Flutterwave v4 charge payload. # Retrieve a Flutterwave v4 order charge by checkout reference Source: https://api-docs.helpyousponsor.com/api-reference/payments/retrieve-a-flutterwave-v4-order-charge-by-checkout-reference get /frontend/flutterwave-v4/order-charge-reference/{client_id}/{program_id}/{reference}/{session_id} Resolves a stored order charge from its checkout reference, validates the client, program, session and checkout flow, then delegates to charge retrieval to refresh the provider status. Use after returning from provider authorization when the checkout reference is available. # Start new Stripe account onboarding Source: https://api-docs.helpyousponsor.com/api-reference/payments/start-new-stripe-account-onboarding post /stripe-connect/onboarding-link Creates or resumes a Standard Stripe account onboarding flow for the authenticated organization and returns a provider URL. A completed setup returns its dashboard URL with status=connected. Existing direct-key or incompatible connection state returns409. Creation retries reuse a provider idempotency identity; a stale ambiguous creation attempt requires reconciliation. The returned URL does not itself prove that charges or payouts are enabled. Requires permission: one of access_payment_gateways. # Start Stripe onboarding through the legacy route Source: https://api-docs.helpyousponsor.com/api-reference/payments/start-stripe-onboarding-through-the-legacy-route get /stripe/{id} Creates or resumes a Standard Stripe account onboarding flow for the authenticated organization and returns a provider URL. A completed setup returns its dashboard URL with status=connected. Existing direct-key or incompatible connection state returns409. Creation retries reuse a provider idempotency identity; a stale ambiguous creation attempt requires reconciliation. The returned URL does not itself prove that charges or payouts are enabled. The route id must match the authenticated organization; a mismatch returns404. Requires permission: one of access_payment_gateways. # Submit Flutterwave charge authorization Source: https://api-docs.helpyousponsor.com/api-reference/payments/submit-flutterwave-charge-authorization post /flutterwave/validate Public compatibility transport forwarding a numeric OTP and provider flw_ref to charge validation. These values authorize the provider’s existing charge attempt. Returns provider JSON under HTTP200 even for a provider-level rejection; inspect status/message. This handler does not create an organization donation record. # Temporarily restore retained direct Stripe authentication Source: https://api-docs.helpyousponsor.com/api-reference/payments/temporarily-restore-retained-direct-stripe-authentication post /stripe-connect/existing-account-link/rollback Within the configured rollback window (default14days), restores the retained direct gateway for an active/deauthorized managed connection, marks it rolled_back and attempts provider deauthorization. A missing/expired retained gateway returns409. The authentication refresh remains required; this does not delete the provider Stripe account. Requires permission: one of access_payment_gateways. # Update the organization Flutterwave subaccount Source: https://api-docs.helpyousponsor.com/api-reference/payments/update-the-organization-flutterwave-subaccount put /flutterwave/subaccount Updates the provider subaccount selected from the authenticated organization’s stored account ID. The server supplies split_value=0.05 and split_type=percentage. Records activity on provider success and returns provider JSON under HTTP200; local organization identity is not caller-controlled. Requires permission: one of access_payment_gateways. # Verify a legacy Flutterwave transaction Source: https://api-docs.helpyousponsor.com/api-reference/payments/verify-a-legacy-flutterwave-transaction post /frontend/flutterwave/verify/{client_id}/{program_id}/{session_id} Passes the request payload to `FlutterwaveService::verifyTransactionByReference()` for the legacy Flutterwave Standard checkout flow. The controller rejects unavailable recipients, then the service requires tx_ref and returns its provider response directly. This route is retained for older order/signup flows. # Add a donor form to a program Source: https://api-docs.helpyousponsor.com/api-reference/programs/add-a-donor-form-to-a-program post /admin/program/form/donor # Add a sponsorship form to a program Source: https://api-docs.helpyousponsor.com/api-reference/programs/add-a-sponsorship-form-to-a-program post /admin/program/form/sponsorship # Attach an email set to a program Source: https://api-docs.helpyousponsor.com/api-reference/programs/attach-an-email-set-to-a-program post /admin/program/emailset # Attach an SMS template set to a program Source: https://api-docs.helpyousponsor.com/api-reference/programs/attach-an-sms-template-set-to-a-program post /admin/program/smsset Sets `programs.smsset_id` on the target program and repairs the default starter templates for the new attachment via `DefaultSmsSetBootstrapService`. Wrapped in a transaction so the program update and starter-template repair commit atomically. Logs an `attach_program_smsset` activity. The SMS set must belong to the caller's client (404 otherwise). Validation: `id required`, `smsset_id required`. Requires permission: `manage_programs`. # Attach settings to a program Source: https://api-docs.helpyousponsor.com/api-reference/programs/attach-settings-to-a-program post /admin/program/settings # Bootstrap data for the program edit form Source: https://api-docs.helpyousponsor.com/api-reference/programs/bootstrap-data-for-the-program-edit-form get /admin/edit_program/{program_id} Returns the target program along with the list of unlinked programs in the caller's client (used to populate the parent picker on the edit form). Requires permission: `manage_programs`. # Bootstrap data for the sub-program creation form Source: https://api-docs.helpyousponsor.com/api-reference/programs/bootstrap-data-for-the-sub-program-creation-form get /admin/add_sub_program Returns the list of unlinked (root-level) programs for the caller's client, used to populate the parent picker on the 'Add sub-program' admin form. The `parent_id` field echoes the calling client_id (legacy frontend ergonomics). Requires permission: `manage_programs`. # Build the multi-program donor-frontend URL Source: https://api-docs.helpyousponsor.com/api-reference/programs/build-the-multi-program-donor-frontend-url post /admin/multi_program_select Companion to `multiProgramSelect` — given a base `program_settings` id and a list of additional `program_list` ids, returns the canonical donor-frontend URL that combines them (`/frontend/view_all/{client_id}/{ids-joined-by-hyphen}`). Strips any program that already matches the base settings to avoid duplicates. Validation: `program_settings required`. Requires permission: `manage_programs`. # Create a child program Source: https://api-docs.helpyousponsor.com/api-reference/programs/create-a-child-program post /admin/program # Create a sub program Source: https://api-docs.helpyousponsor.com/api-reference/programs/create-a-sub-program post /admin/program/sub_program # Discard an empty program setup draft Source: https://api-docs.helpyousponsor.com/api-reference/programs/discard-an-empty-program-setup-draft delete /admin/program/{program_id}/setup-draft Soft-deletes only an empty setup draft: no attached setting/forms/email/SMS modules, descendant/linked programs, or recipient records including archived ones. Program roots cannot be discarded. Removes the discarded program’s access-role references and records activity; established programs require the normal management/removal flow. Requires permission: one of manage_programs. # Edit a program Source: https://api-docs.helpyousponsor.com/api-reference/programs/edit-a-program put /admin/program/{program_id} Updates a program's name, prefix, counter, and optional parent within the authenticated organization. Omitting or emptying the prefix clears it; omitting or emptying the counter resets it to zero. Selecting a parent inherits its recipient form and may clear incompatible settings. Requires permission: `manage_programs`. # Get campaign program details Source: https://api-docs.helpyousponsor.com/api-reference/programs/get-campaign-program-details get /program/{id}/campaign Deprecated numeric-only compatibility endpoint. Supply client_id during the rollout; requests without tenant context are rejected after 2026-09-21 UTC. See https://github.com/rg-repos/gratona/issues/2520. # Get details of a specific program Source: https://api-docs.helpyousponsor.com/api-reference/programs/get-details-of-a-specific-program get /program/{id} # Get organization-scoped campaign checkout metadata Source: https://api-docs.helpyousponsor.com/api-reference/programs/get-organization-scoped-campaign-checkout-metadata get /frontend/program/{client_id}/{program_id}/campaign Public campaign/program form metadata scoped by both organization and program. entity_mode=search returns only recipient options and paging metadata; initial returns bounded options with full form/configuration metadata, optionally adding a selected recipient beyond the limit; none omits recipients; options returns all projected options; full (and unknown modes) returns all raw recipient records. The search limit is clamped1–50, default24. trip_id can select a matching trip donor form. Standard donor field and public donation field contracts are returned only when their features/policies permit. Program progress is cached for30seconds. This metadata request does not create a donor or payment. # Get program settings Source: https://api-docs.helpyousponsor.com/api-reference/programs/get-program-settings get /program/{id}/settings # Get program setup readiness Source: https://api-docs.helpyousponsor.com/api-reference/programs/get-program-setup-readiness get /admin/program/{program_id}/setup-state Returns attached module identifiers and setup steps for the current organization’s program. Required steps include program, settings, donor form and recipient/designation/participant form; enabled email requires usable templates and an attached setting requires a usable payment method. SMS is optional. This read reports readiness without activating or modifying the program. Requires permission: one of programs_view, manage_programs, program-all. # Get program website launch context Source: https://api-docs.helpyousponsor.com/api-reference/programs/get-program-website-launch-context get /admin/program/{program_id}/launch-context Returns setup/public-page readiness, current website settings, shared-setting information, additional gift routes, public URLs and Elements embed configuration. No setting access returns403; a missing program returns404. A trip program without a real attached trip has no public page or embed configuration. can_manage reports whether launch settings may be changed. Requires permission: one of programs_view, manage_programs, program-all. # List compatible program setup modules Source: https://api-docs.helpyousponsor.com/api-reference/programs/list-compatible-program-setup-modules get /admin/program/setup-options Returns current-organization settings, donor/recipient forms and email/SMS sets with compatibility, recommendation and preview details. Blocked settings are omitted. Unsupported/blank type becomes null and receives generic recommendations; it does not return422. Form summaries include standardized donor fields when enabled. Recommended IDs are suggestions and do not attach modules. Requires permission: one of programs_view, manage_programs, program-all. # Manage programs Source: https://api-docs.helpyousponsor.com/api-reference/programs/manage-programs get /programs # Persist a reordered/reparented programs tree Source: https://api-docs.helpyousponsor.com/api-reference/programs/persist-a-reorderedreparented-programs-tree post /admin/updatetree Accepts the full programs tree (typically the output of the admin drag-and-drop reorder UI) and applies it via `Program::mapTree`, then flushes the `programs_menu` cache for the client. Validation: `data required`. Requires permission: `manage_programs`. # Programs sharing a donor form that allow combined checkout Source: https://api-docs.helpyousponsor.com/api-reference/programs/programs-sharing-a-donor-form-that-allow-combined-checkout get /admin/multi_program_select Returns checkout-capable root programs grouped by donor form. Programs may use different recipient forms, but a generated checkout must use one donor form. Requires permission: `manage_programs`. # Remove a program Source: https://api-docs.helpyousponsor.com/api-reference/programs/remove-a-program delete /admin/program/{program_id} # Rename a program Source: https://api-docs.helpyousponsor.com/api-reference/programs/rename-a-program patch /admin/program/{program_id}/name Updates only the display name of one tenant-scoped program, leaving its hierarchy, settings, forms, and communication templates unchanged. Intended for administrators using the Website & Embed workspace. Requires permission: manage_programs. # Search program gift-routing recipients Source: https://api-docs.helpyousponsor.com/api-reference/programs/search-program-gift-routing-recipients get /admin/program/{program_id}/additional-gift-targets Returns up to25 recipient/designation target options in this program. Blank search lists by ID. Nonblank search uses title/name lookup through search with a database fallback. The program and its setting must be accessible. These are routing options, not a routing update. Requires permission: one of programs_view, manage_programs, program-all. # Update a program name and abbreviation Source: https://api-docs.helpyousponsor.com/api-reference/programs/update-a-program-name-and-abbreviation patch /admin/program/{program_id}/identity Updates only the name and abbreviation of one tenant-scoped program. Program hierarchy, settings, forms, communication templates, and readiness-related attachments remain unchanged. Requires permission: manage_programs. # Update program additional-gift routes Source: https://api-docs.helpyousponsor.com/api-reference/programs/update-program-additional-gift-routes patch /admin/program/{program_id}/additional-gift-routes Requires manage_settings and access to the program setting. Each gift must be available to the program’s donor form and each nonnull target must belong to this program. Null/blank target removes the override. An empty routes array is a no-op. Returns refreshed routing options and records changed-gift activity. Requires permission: one of manage_programs. # Update program website settings Source: https://api-docs.helpyousponsor.com/api-reference/programs/update-program-website-settings patch /admin/program/{program_id}/launch-settings Requires manage_settings and access to the attached setting. Only supported nested settings keys are accepted. With multiple linked programs, mode defaults to program_copy; mode=direct requires confirm_shared_update=true, otherwise409 returns the linked-program list. No-op writes return200 with save_mode=direct. The response includes fresh launch context. Changing enabled blur configuration queues image regeneration; recipient portal synchronization follows saving. Requires permission: one of manage_programs. # Add a designation-only gift to checkout Source: https://api-docs.helpyousponsor.com/api-reference/public/add-a-designation-only-gift-to-checkout post /frontend/checkout_add_designation_only/{client_id}/{hysform_id}/{designation_id}/{currency}/{session_id} Adds a designation gift amount to the Redis-backed designation-only checkout cart. The controller validates the amount, expects the selected designation id in the request body, sets a default one-time frequency code of `5`, and stores a checkout message for the frontend. This is a public checkout endpoint and relies on the route session id rather than bearer authentication. # Add a recipient to the public checkout cart Source: https://api-docs.helpyousponsor.com/api-reference/public/add-a-recipient-to-the-public-checkout-cart post /frontend/entity/save/{client_id}/{program_id}/{entity_id} Validates organization-owned public recipient availability and sponsorship amount policy within the requested program scope. Creates a frontend session if absent/expired. Saves amount, frequency and custom-mode selections for three hours and returns the session ID. Input currency punctuation is removed before numeric validation; policy can still reject unavailable fixed levels or frequencies. # Add a recipient to the public checkout cart Source: https://api-docs.helpyousponsor.com/api-reference/public/add-a-recipient-to-the-public-checkout-cart-1 post /frontend/entity/save/{client_id}/{program_id}/{entity_id}/{session_id} Validates organization-owned public recipient availability and sponsorship amount policy within the requested program scope. Creates a frontend session if absent/expired. Saves amount, frequency and custom-mode selections for three hours and returns the session ID. Input currency punctuation is removed before numeric validation; policy can still reject unavailable fixed levels or frequencies. # Add the configured optional sponsorship to a checkout Source: https://api-docs.helpyousponsor.com/api-reference/public/add-the-configured-optional-sponsorship-to-a-checkout post /frontend/checkout/offer/{client_id}/{program_id}/{session_id} Requires the optional offer to resolve to an eligible public recipient sharing the anchor program donor form, plus a live checkout session. Validates amount and a frequency key from the resolved offer. Saves the recipient through normal amount policy checks and marks it in the original cart for later checkout scope. Unavailable offers and expired sessions return 422; no payment is charged here. # Cancel an iDEAL | Wero checkout Source: https://api-docs.helpyousponsor.com/api-reference/public/cancel-an-ideal---wero-checkout post /frontend/checkout/ideal/{client_id}/{program_id}/{token}/cancel Public browser return action, throttled to 30 requests per minute. The random checkout token must belong to the route client and program. Attempts cancellation only while pending. A payment already approved or still uncertain returns processing; it does not claim a cancellation succeeded. A completed checkout returns its existing outcome. checkout_secret controls full result disclosure. # Change a saved recipient payment frequency Source: https://api-docs.helpyousponsor.com/api-reference/public/change-a-saved-recipient-payment-frequency put /frontend/checkout/frequency/{client_id}/{program_id}/{entity_id}/{frequency} Public Redis cart mutation. A missing or expired session creates a replacement session. Recipient eligibility and amount/frequency policy are rechecked where applicable. Frequency must be enabled by the recipient program. Fixed-level sponsorship selections revalidate the saved amount for the new frequency. Returns the schedule-change message. # Change a saved recipient payment frequency Source: https://api-docs.helpyousponsor.com/api-reference/public/change-a-saved-recipient-payment-frequency-1 put /frontend/checkout/frequency/{client_id}/{program_id}/{entity_id}/{frequency}/{session_id} Public Redis cart mutation. A missing or expired session creates a replacement session. Recipient eligibility and amount/frequency policy are rechecked where applicable. Frequency must be enabled by the recipient program. Fixed-level sponsorship selections revalidate the saved amount for the new frequency. Returns the schedule-change message. # Change a saved recipient sponsorship amount Source: https://api-docs.helpyousponsor.com/api-reference/public/change-a-saved-recipient-sponsorship-amount put /frontend/checkout/amount/{client_id}/{program_id}/{entity_id}/{amount}/{currency} Public Redis cart mutation. A missing or expired session creates a replacement session. Recipient eligibility and amount/frequency policy are rechecked where applicable. Uses the current cart frequency and custom-amount mode when validating the new amount. The currency path value only formats the message. Returns the order redirect URL. # Change a saved recipient sponsorship amount Source: https://api-docs.helpyousponsor.com/api-reference/public/change-a-saved-recipient-sponsorship-amount-1 put /frontend/checkout/amount/{client_id}/{program_id}/{entity_id}/{amount}/{currency}/{session_id} Public Redis cart mutation. A missing or expired session creates a replacement session. Recipient eligibility and amount/frequency policy are rechecked where applicable. Uses the current cart frequency and custom-amount mode when validating the new amount. The currency path value only formats the message. Returns the order redirect URL. # Complete checkout for an already logged-in donor Source: https://api-docs.helpyousponsor.com/api-reference/public/complete-checkout-for-an-already-logged-in-donor post /frontend/logged_in_checkout/{client_id}/{program_id}/{entity_id}/{session_id} Completes a public checkout for a donor already marked logged in in the Redis session. The controller validates amount, payment method, and frequency, clears previous cart state, writes the selected entity and frequency into Redis, requires a saved card when method `3` is used, creates the sponsorship/commitment and donation order, then clears the checkout cart. The Redis session must resolve to a donor belonging to this client; otherwise the endpoint returns 401. # Complete designation-only checkout for an existing donor Source: https://api-docs.helpyousponsor.com/api-reference/public/complete-designation-only-checkout-for-an-existing-donor post /frontend/checkout_login_only/{client_id}/{hysform_id}/{designation_id}/{session_id} Completes a designation-only checkout using an existing Redis donor session or login credentials. The controller validates login fields, checks for a saved Stripe customer when card checkout is requested, converts the saved designation cart into donations or recurring commitments, clears the cart, and returns a legacy success envelope. This route is public but requires the checkout session id to carry the cart and, in current code, often the selected donor id. # Confirm an iDEAL | Wero checkout Source: https://api-docs.helpyousponsor.com/api-reference/public/confirm-an-ideal---wero-checkout post /frontend/checkout/ideal/{client_id}/{program_id}/{token}/complete Public browser return action, throttled to 30 requests per minute. The random checkout token must belong to the route client and program. Verifies bank/provider evidence and attempts to record the approved gift once. Repeat the same token to poll a processing outcome; a successful HTTP response can still mean processing, requires_action, review or refund progress. Completed results are disclosed according to checkout_secret. # Create a campaign cart before an optional sponsorship offer Source: https://api-docs.helpyousponsor.com/api-reference/public/create-a-campaign-cart-before-an-optional-sponsorship-offer post /frontend/checkout/campaign-offer/{client_id}/{program_id} Requires a campaign with checkout_offer_enabled. Validates 1–100 distinct visible recipient IDs belonging to that campaign, creates a new cart and saves each selection through normal amount policy checks. If multiple designations are disabled, exactly one selection is allowed. Returns the new session ID; does not charge a payment or add the sponsorship offer itself. # Create a donor and complete designation-only checkout Source: https://api-docs.helpyousponsor.com/api-reference/public/create-a-donor-and-complete-designation-only-checkout post /frontend/checkout_signup_only/{client_id}/{hysform_id}/{designation_id}/{session_id} Creates a donor account from the designation-only checkout form and attempts to convert the Redis cart into donations or recurring commitments. The request body uses fixed login fields plus dynamic public donor fields from the supplied HysForm; conditional display rules can add required custom field validators at runtime. On success the controller creates a donor session, clears the Redis cart, and returns a legacy success envelope. # Create a public recipient/entity Source: https://api-docs.helpyousponsor.com/api-reference/public/create-a-public-recipiententity post /frontend/add_entity/{client_id}/{program_id}/{session_id} Creates an entity from a public add-recipient form. The controller delegates to `EntityService::createEntity`, which scopes the program by client, validates `sp_num` according to program type, validates optional email format, enforces any unique public field configured on the HysForm, stores remaining request fields in entity `json_fields`, increments the program counter, logs frontend activity, and reloads the entity cache. The route is throttled by `frontend-add-entity` middleware. # Display titles and files with pagination Source: https://api-docs.helpyousponsor.com/api-reference/public/display-titles-and-files-with-pagination get /frontend/view_all/{client_id}/{program_id}/{session_id} # List entity names for a program Source: https://api-docs.helpyousponsor.com/api-reference/public/list-entity-names-for-a-program get /frontend/entities/view/{client_id}/{program_id}/{session_id} Returns a compact id/name list for entities in a single program. The public frontend uses this lightweight route when it needs recipient choices without the full sponsorship listing payload. The controller scopes by client id and program id, then resolves each entity display name through `Donor::getEntityName()`. # List paginated public frontend entities Source: https://api-docs.helpyousponsor.com/api-reference/public/list-paginated-public-frontend-entities get /frontend/entities/pagination/{client_id}/{program_id}/{session_id} Alias of `/frontend/entities/all/{client_id}/{program_id}/{session_id?}` used by newer public frontend pages. It executes the same controller logic, query parameters, Redis session behavior, and response shape. # List public frontend entities Source: https://api-docs.helpyousponsor.com/api-reference/public/list-public-frontend-entities get /frontend/entities/all/{client_id}/{program_id}/{session_id} Returns visible public entities for a program or program tree, with optional search, filter, sort, and pagination controls. The controller creates or refreshes a Redis frontend session, marks the session as paginated, applies program setup and settings checks, and returns processed recipient cards plus public display settings. This endpoint is public and uses the optional session id for cart/login state rather than bearer authentication. # List public recipients through the legacy page alias Source: https://api-docs.helpyousponsor.com/api-reference/public/list-public-recipients-through-the-legacy-page-alias get /frontend/view_pages/{client_id}/{program_id}/{session_id} Unversioned alias of /frontend/view_all with the same query controls, session behavior, and response. # List public trip participants Source: https://api-docs.helpyousponsor.com/api-reference/public/list-public-trip-participants get /frontend/public/trips/{clientSlugOrId}/{tripSlug}/participants Returns active participants for a visible public trip. The controller respects trip settings for participant visibility opt-out, participant goals, and donation amount display, and caches the public list using a signature of those settings. Public trip pages use this endpoint to render participant cards and choose the participant entity id for checkout. # Look up checkout donors by email Source: https://api-docs.helpyousponsor.com/api-reference/public/look-up-checkout-donors-by-email post /frontend/checkout/email_lookup/{client_id}/{program_id} Checks whether a donor email already exists for the client before public checkout continues. The controller validates email, verifies the program belongs to the client, then returns lightweight donor choices for account selection or passwordless verification. The legacy alias `/frontend/checkout_email_lookup/{client_id}/{program_id}` is routed to the same method. # Look up checkout donors by email (legacy path) Source: https://api-docs.helpyousponsor.com/api-reference/public/look-up-checkout-donors-by-email-legacy-path post /frontend/checkout_email_lookup/{client_id}/{program_id} Legacy alias of `/frontend/checkout/email_lookup/{client_id}/{program_id}`. It executes the same validation, client/program scoping, and donor lookup response. # Process a campaign checkout Source: https://api-docs.helpyousponsor.com/api-reference/public/process-a-campaign-checkout post /frontend/checkout/campaign/{client_id}/{program_id}/{session_id} Completes public campaign, peer-to-peer or trip checkout and creates or reuses the donor record. Existing donor emails require a verified donor session before payment; checkout accepts a single recipient or a designation cart plus optional extra gifts. Payment admission, fixed-level sponsorship selections and public donor-form rules are checked before creating donations or commitments. A future start date can defer charging, and bank accounts awaiting verification produce a pending success state rather than a completed payment. # Remove a designation-only gift from checkout Source: https://api-docs.helpyousponsor.com/api-reference/public/remove-a-designation-only-gift-from-checkout post /frontend/checkout_remove_designation_only/{client_id}/{hysform_id}/{designation_id}/{id}/{currency}/{session_id} Removes one designation from the Redis-backed designation-only checkout cart. The controller deletes the amount and frequency entries for the selected designation id, then stores a donor-facing checkout message. This endpoint is public and uses the route session id to identify the cart. # Remove a recipient from the saved checkout Source: https://api-docs.helpyousponsor.com/api-reference/public/remove-a-recipient-from-the-saved-checkout delete /frontend/checkout/entity/{client_id}/{program_id}/{entity_id} Public Redis cart mutation. A missing or expired session creates a replacement session. Recipient eligibility and amount/frequency policy are rechecked where applicable. Requires an organization-owned recipient, then removes its amount, frequency and custom-mode entries. redirect_link points to the order if recipient selections remain, otherwise to the public directory. Returns the resulting session ID. # Remove a recipient from the saved checkout Source: https://api-docs.helpyousponsor.com/api-reference/public/remove-a-recipient-from-the-saved-checkout-1 delete /frontend/checkout/entity/{client_id}/{program_id}/{entity_id}/{session_id} Public Redis cart mutation. A missing or expired session creates a replacement session. Recipient eligibility and amount/frequency policy are rechecked where applicable. Requires an organization-owned recipient, then removes its amount, frequency and custom-mode entries. redirect_link points to the order if recipient selections remain, otherwise to the public directory. Returns the resulting session ID. # Remove an extra designation gift from checkout Source: https://api-docs.helpyousponsor.com/api-reference/public/remove-an-extra-designation-gift-from-checkout delete /frontend/checkout/designation/{client_id}/{program_id}/{id}/{currency} Public Redis cart mutation. A missing or expired session creates a replacement session. Recipient eligibility and amount/frequency policy are rechecked where applicable. Deletes the saved designation amount, frequency and data. currency is used only in the message. Returns 200 if saved recipient selections remain, otherwise 400 with status error and Order not removed even though designation entries have been deleted. # Remove an extra designation gift from checkout Source: https://api-docs.helpyousponsor.com/api-reference/public/remove-an-extra-designation-gift-from-checkout-1 delete /frontend/checkout/designation/{client_id}/{program_id}/{id}/{currency}/{session_id} Public Redis cart mutation. A missing or expired session creates a replacement session. Recipient eligibility and amount/frequency policy are rechecked where applicable. Deletes the saved designation amount, frequency and data. currency is used only in the message. Returns 200 if saved recipient selections remain, otherwise 400 with status error and Order not removed even though designation entries have been deleted. # Request to join a public trip Source: https://api-docs.helpyousponsor.com/api-reference/public/request-to-join-a-public-trip post /frontend/public/trips/{clientSlugOrId}/{tripSlug}/request-to-join Creates a requested trip participant from the public trip page. The controller only accepts active trips with `request_to_join_enabled` set in trip settings, then delegates validation and participant creation to `TripParticipantService::createJoinRequest`. The service requires `email`, may require standardized donor fields or public signup fields configured for the trip donor form, creates or updates a donor, creates a fundraising entity, and stores the participant with `requested` status. # Restore a saved entity to checkout Source: https://api-docs.helpyousponsor.com/api-reference/public/restore-a-saved-entity-to-checkout get /frontend/save_entity Adds a previously selected entity back into the Redis-backed public checkout cart from query/body parameters. The endpoint validates the required ids, amount, frequency, and sponsorship amount, creates a replacement frontend session when the supplied one is expired, and stores the entity amount and default frequency in Redis. Public checkout uses this legacy route when restoring cart state. # Retired legacy workspace signup Source: https://api-docs.helpyousponsor.com/api-reference/public/retired-legacy-workspace-signup post /signup The legacy single-request signup endpoint is retired. It does not create an account or process payment; begin again from the Gratona signup page. # Search public recipients before adding an entity Source: https://api-docs.helpyousponsor.com/api-reference/public/search-public-recipients-before-adding-an-entity get /frontend/add_entity/search/{client_id}/{program_id}/{session_id} Searches visible recipients for the public add-entity flow so donors do not create duplicates. The controller scopes search by client and program, searches visible non-sample entity `json_fields` and numeric ids, optionally includes archived recipients, and returns display names from title fields plus public profile thumbnails. An empty search string returns an empty result set with the current session id. # Show a designation-only checkout page Source: https://api-docs.helpyousponsor.com/api-reference/public/show-a-designation-only-checkout-page get /frontend/orderD/{client_id}/{hysform_id}/{designation_id}/{session_id} Builds the public checkout payload for a donation page that accepts designations without sponsorship entities. The controller creates or refreshes a Redis frontend session, loads public donor signup fields for the HysForm, filters designations by client and HysForm, computes saved cart totals/frequency text from Redis, and returns checkout settings used by the frontend. This endpoint does not require bearer authentication; the optional session id carries the cart state. # Show a public peer-to-peer program page Source: https://api-docs.helpyousponsor.com/api-reference/public/show-a-public-peer-to-peer-program-page get /frontend/public/peer-to-peer/{clientSlugOrId}/{programSlug} Returns the public peer-to-peer campaign page for a client and program slug. The endpoint only returns programs whose settings mark them as `peer_to_peer`, then builds recipient cards, donation totals, checkout setting ids, and public display flags from program settings. Public checkout clients use the response to render the campaign listing and decide whether recipients can still accept donations. # Show a public peer-to-peer recipient profile Source: https://api-docs.helpyousponsor.com/api-reference/public/show-a-public-peer-to-peer-recipient-profile get /frontend/public/peer-to-peer/{clientSlugOrId}/{programSlug}/recipients/{recipientSlug} Returns the public profile for one visible recipient in a peer-to-peer program. The controller resolves the client, validates that the program is a peer-to-peer program, extracts the recipient id from the slug, and returns profile details plus recent donations. Donation amounts and donor display names follow the program privacy settings. # Show a public trip page Source: https://api-docs.helpyousponsor.com/api-reference/public/show-a-public-trip-page get /frontend/public/trips/{clientSlugOrId}/{tripSlug} Returns public trip metadata for an active or completed trip. The controller resolves the client by id or organization slug, looks up the trip by slug within that client, and hides trips that are not publicly visible. Public trip pages use the response for trip copy, donation settings, checkout setting ids, fund entity information, and the optional request-to-join form. # Show a public trip participant profile Source: https://api-docs.helpyousponsor.com/api-reference/public/show-a-public-trip-participant-profile get /frontend/public/trips/{clientSlugOrId}/{tripSlug}/participants/{participantSlug} Returns a public profile for one active trip participant. The controller extracts the participant id from the slug, respects the trip visibility opt-out setting, and hides or masks donation totals and donor names according to trip settings. Public checkout pages use the returned `entity_id`, `program_id`, `setting_id`, and `client_id` to donate to the participant. # Show public add-recipient form configuration Source: https://api-docs.helpyousponsor.com/api-reference/public/show-public-add-recipient-form-configuration get /frontend/add_entity/{client_id}/{program_id}/{session_id} Returns the public field configuration required to add a recipient/entity from a public program page. The controller creates or refreshes a frontend Redis session, loads the program and its HysForm, filters fields to public permissions, and returns program-type settings used by the public add-entity UI. If the program is missing or has no form configured, it returns a legacy 404 error envelope. # Start bank redirect for a campaign donation Source: https://api-docs.helpyousponsor.com/api-reference/public/start-bank-redirect-for-a-campaign-donation post /frontend/checkout/campaign-ideal/{client_id}/{program_id} Public, throttled to 30 requests per minute. Submit one recipient with amount/donation_amount, or a non-empty designations cart. Amounts must be positive decimals and allowed recurring selections must satisfy each program amount policy. Additional gifts must use designations allowed by the donor form and valid recipient routing. Existing donor emails require the verified checkout session; new donors must satisfy public donor identity and conditional form requirements. Recurring gifts require reusable bank support, while a valid future next date confirms the bank account for later collection. return_path is relative to the client app. A stale supplied policy_revision returns 409; a missing configured donor form returns 400. The method stores validated checkout details for bank-confirmed replay. # Start bank redirect for a campaign donation Source: https://api-docs.helpyousponsor.com/api-reference/public/start-bank-redirect-for-a-campaign-donation-1 post /frontend/checkout/campaign-ideal/{client_id}/{program_id}/{session_id} Public, throttled to 30 requests per minute. Submit one recipient with amount/donation_amount, or a non-empty designations cart. Amounts must be positive decimals and allowed recurring selections must satisfy each program amount policy. Additional gifts must use designations allowed by the donor form and valid recipient routing. Existing donor emails require the verified checkout session; new donors must satisfy public donor identity and conditional form requirements. Recurring gifts require reusable bank support, while a valid future next date confirms the bank account for later collection. return_path is relative to the client app. A stale supplied policy_revision returns 409; a missing configured donor form returns 400. The method stores validated checkout details for bank-confirmed replay. # Start bank redirect for an existing sponsorship order Source: https://api-docs.helpyousponsor.com/api-reference/public/start-bank-redirect-for-an-existing-sponsorship-order post /frontend/checkout/order-ideal/{client_id}/{program_id}/{session_id} Public, throttled to 30 requests per minute. Requires a live Redis cart; prices an immutable snapshot of its selected recipients/designations and frequencies, including any configured fee consent. signup requires unique signup_username (min 5), unique valid email and required public donor identity/custom profile fields. login requires a donor linked to the checkout session and a verified session compatible with the saved Stripe customer. Recurring orders require recurring bank support. No donation is recorded until bank confirmation; use returned program_id/token to complete or cancel. A supplied stale donor-form policy_revision returns 409. # Update a designation-only checkout frequency Source: https://api-docs.helpyousponsor.com/api-reference/public/update-a-designation-only-checkout-frequency get /frontend/checkout_update_designation_frequency_only/{client_id}/{hysform_id}/{designation_id}/{id}/{frequency}/{session_id} Updates the Redis checkout cart frequency for a designation-only gift. The public checkout UI calls this when a donor changes a selected designation from one-time to a recurring schedule. If the optional session id is absent or expired, the controller creates a new frontend session before writing the `saved_designation_frequency` hash. # End the recipient-portal session Source: https://api-docs.helpyousponsor.com/api-reference/recipient-portal/end-the-recipient-portal-session get /frontend/recipient-portal/logout/{client_id}/{session_id} Deletes the Redis session keyed by `{session_id}`. Returns 200 even if the session was already missing — logout is idempotent for the caller. # Get full message thread (root + replies) Source: https://api-docs.helpyousponsor.com/api-reference/recipient-portal/get-full-message-thread-root-+-replies get /frontend/recipient-portal/{client_id}/{session_id}/messages/{message_id} Returns the message thread root identified by `{message_id}` along with all replies in chronological order, plus a flag indicating whether new replies require admin approval. # Paginated list of donations to this recipient Source: https://api-docs.helpyousponsor.com/api-reference/recipient-portal/paginated-list-of-donations-to-this-recipient get /frontend/recipient-portal/{client_id}/{session_id}/donations Returns donations (Donation rows where `designation = recipient.entity_id`) targeted at this recipient. Paginated; donations-tab feature must be enabled (else 403). # Paginated list of donors who support this recipient Source: https://api-docs.helpyousponsor.com/api-reference/recipient-portal/paginated-list-of-donors-who-support-this-recipient get /frontend/recipient-portal/{client_id}/{session_id}/donors Returns donors who have given to this recipient (or are otherwise associated). The response is paginated; the donors-tab feature must be enabled on the client/program (else 403). # Paginated list of message threads + donor address book Source: https://api-docs.helpyousponsor.com/api-reference/recipient-portal/paginated-list-of-message-threads-+-donor-address-book get /frontend/recipient-portal/{client_id}/{session_id}/messages Returns the recipient's message inbox (sent + received roots), a bounded initial donor address book (`donor_options`), the total number of emailable donors, and a flag indicating whether new messages require admin approval before delivery. More donor options are searched through the donor-options endpoint. Returns 403 when messaging is disabled. # Profile-edit form schema + current values Source: https://api-docs.helpyousponsor.com/api-reference/recipient-portal/profile-edit-form-schema-+-current-values get /frontend/recipient-portal/{client_id}/{session_id}/profile Returns the schema for the recipient profile edit form (which fields exist, their types, validation hints) plus the recipient's current values, including the optional peer-to-peer profile when the program has P2P enabled. Returns 403 when the client has the profile-edit feature disabled. # Recipient-portal dashboard Source: https://api-docs.helpyousponsor.com/api-reference/recipient-portal/recipient-portal-dashboard get /frontend/recipient-portal/{client_id}/{session_id} Returns the recipient-portal home/dashboard payload (recipient summary, program/client branding, peer-to-peer fields, feature flags, recent activity). Requires a valid logged-in Redis session — a 401/403 is returned if the session is missing, expired, or not logged in. # Render the recipient-portal login page Source: https://api-docs.helpyousponsor.com/api-reference/recipient-portal/render-the-recipient-portal-login-page get /frontend/recipient-portal/login/{client_id}/{program_id}/{session_id} Public endpoint that returns client + program branding for the recipient-portal login page. If `session_id` is omitted a fresh Redis-backed session is created and returned (1-hour TTL). The recipient portal does NOT use bearer tokens — it identifies the visitor through the `{session_id}` URL path parameter that is then carried through every subsequent recipient-portal call. # Reply to an existing message thread Source: https://api-docs.helpyousponsor.com/api-reference/recipient-portal/reply-to-an-existing-message-thread post /frontend/recipient-portal/{client_id}/{session_id}/messages/{message_id}/reply Creates a reply Donoremail row linked to the parent thread root identified by `{message_id}`. Subject is inherited from the parent. Approval gating and attachment handling work the same as `createPortalMessage`. # Request a recipient-portal verification code by email Source: https://api-docs.helpyousponsor.com/api-reference/recipient-portal/request-a-recipient-portal-verification-code-by-email post /frontend/recipient-portal/login/{client_id}/{program_id}/{session_id} First step of the recipient-portal login flow. Looks up the recipient by tenant-scoped email, issues a six-digit numeric code and magic link for 15 minutes, and invalidates the previous code for that client/program/recipient/email scope. Shared emails return `status=selection_required` so the caller can re-submit with `entity_id`. # Search donors the recipient is allowed to message Source: https://api-docs.helpyousponsor.com/api-reference/recipient-portal/search-donors-the-recipient-is-allowed-to-message get /frontend/recipient-portal/{client_id}/{session_id}/donor-options Returns a bounded address-book search for the active recipient session. Full-name mode searches visible donor identity prefixes. Restricted privacy modes accept only their visible labels, preventing hidden names or email addresses from influencing the result. # Send a new message from the recipient to a donor Source: https://api-docs.helpyousponsor.com/api-reference/recipient-portal/send-a-new-message-from-the-recipient-to-a-donor post /frontend/recipient-portal/{client_id}/{session_id}/messages Creates a Donoremail row from the recipient to a donor. When admin approval is required for outgoing recipient mail, the row is saved with `status=pending_approval`; otherwise it's queued for delivery and returned with `status=sent`. Optional attachment is referenced by an S3 storage key (the file must already have been uploaded via the recipient-portal upload endpoint). # Submit a recipient impact story for staff review Source: https://api-docs.helpyousponsor.com/api-reference/recipient-portal/submit-a-recipient-impact-story-for-staff-review post /frontend/recipient-portal/{client_id}/{session_id}/impact-stories Requires impact_stories enabled and an active logged-in recipient session belonging to this organization. The session resolves the recipient and program; callers cannot supply another record identity. Creates an internal story in ready_for_review with source recipient_portal_submission; submission does not publish it. An invalid/inactive session returns 400/403, missing recipient or disabled feature returns 404. # Update the recipient's profile fields Source: https://api-docs.helpyousponsor.com/api-reference/recipient-portal/update-the-recipients-profile-fields put /frontend/recipient-portal/{client_id}/{session_id}/profile Saves edits the recipient made in the profile form. The accepted body keys depend on the program — they're driven by the program's HysForm `entity` form fields and (for P2P programs) an optional `peer_to_peer_profile` sub-object containing facebook/twitter/instagram/linkedin and a free-form `bio`. Validation rules come from `getRecipientProfileValidationRules()` plus `getPeerToPeerProfileValidationRules()` when applicable. # Verify a recipient portal magic link Source: https://api-docs.helpyousponsor.com/api-reference/recipient-portal/verify-a-recipient-portal-magic-link get /frontend/recipient-portal/verify_token/{client_id}/{token} Consumes the current single-use sign-in token for this organization. Missing, expired or mismatched links return 400; inactive/deleted portal users and disabled program access return 403. On success activates the stored recipient session and returns its ID and safe recipient/client/program summaries. This token action requires no bearer token. # Verify the recipient-portal login code Source: https://api-docs.helpyousponsor.com/api-reference/recipient-portal/verify-the-recipient-portal-login-code post /frontend/recipient-portal/verify_code/{client_id} Second step of the recipient-portal login flow. Validates only the latest six-digit numeric code; five failed well-formed attempts burn the active challenge across source IPs. Success clears challenge state, marks the Redis session `logged_in=true`, and binds it to the recipient entity. # Count recipient worksheet footer values Source: https://api-docs.helpyousponsor.com/api-reference/recipients/count-recipient-worksheet-footer-values post /admin/entities/{program_id}/footer-calculations Counts blank, filled and unique values across the complete matching recipient program/all-program view. Resolves saved filters and search while discarding pagination/sort; results can be briefly cached. count_empty/count_filled aliases normalize to blank/filled. Unsupported operations are skipped, but sponsor_names explicitly returns422. Program id all or0 selects combined scope. Requires permission: one of manage_programs. # Filter recipient worksheet rows Source: https://api-docs.helpyousponsor.com/api-reference/recipients/filter-recipient-worksheet-rows post /admin/entities/filter/{program_id} Returns configurable recipient rows for an accessible program or all programs, including title fields and selected custom/system columns. Requires filter even without advanced groups. All-program views can choose recipients/campaigns surface; program preferences and saved views determine defaults. Participation columns require their workflow permission. The result is JSON with total matching length; custom values and dates retain their worksheet display shape. Requires permission: one of manage_programs. # Preview existing recipient tags before replacement Source: https://api-docs.helpyousponsor.com/api-reference/recipients/preview-existing-recipient-tags-before-replacement post /admin/program/entities/tags/replacement-preview Returns current tags/counts for selected tenant recipients without modifying them. Explicit ids are normalized; active foreign-program/denied recipients cause403 and missing ids are ignored at lookup. entity_ids=all resolves current worksheet selection with search/saved filters in250-row pages; program_id is required for a nonempty all selection. Proposed values.tags is checked for comma-containing array names but does not affect counts. Requires permission: one of manage_programs. # Queue a recipient worksheet CSV export Source: https://api-docs.helpyousponsor.com/api-reference/recipients/queue-a-recipient-worksheet-csv-export post /admin/entities/{program_id}/export Creates an export artifact, queues CSV generation and records the request in Activity. Applies saved views, current program/surface filters, selected fields/order/labels and participation field access; all or0 exports the combined program context. Returns HTTP200 with queued status, not CSV content. Follow export_id through the export status workflow; the returned status_url is a versionless relative API path. Worker failures/delivery are reported asynchronously. Requires permission: one of programs_view, manage_programs, program-all. # Read recipient worksheet column preferences Source: https://api-docs.helpyousponsor.com/api-reference/recipients/read-recipient-worksheet-column-preferences get /admin/entities/{program_id}/column-preferences Reads the current actor/organization/program/surface Redis preferences and sanitizes selected columns against current available fields. No saved preference returns empty arrays; saved preferences ensure name is present and append allowed columns missing from stored order. program_id all selects the combined program context; null/undefined string aliases normalize to all. program_surface defaults recipients; campaigns selects the separate campaign preference namespace. Requires permission: one of programs_view, manage_programs, program-all. # Aggregate progress / KPI roll-up for a program Source: https://api-docs.helpyousponsor.com/api-reference/reports/aggregate-progress-kpi-roll-up-for-a-program get /admin/program/{program_id}/progress Delegates to `ProgramService::programProgress` to compute and return the program's progress dashboard payload (counts, totals, milestone state). Powers the program progress widget on the admin dashboard. Shape is owned by the service. Requires permission: `manage_programs`. # Calculate pinned report tile values Source: https://api-docs.helpyousponsor.com/api-reference/reports/calculate-pinned-report-tile-values get /admin/dashboard/tiles/values Tiles and preferences belong to the current staff member within the organization. Writes and metric preview require report-management permission and access to the source report. Only metrics eligible for that report can be pinned or calculated. # Calculate report worksheet totals Source: https://api-docs.helpyousponsor.com/api-reference/reports/calculate-report-worksheet-totals post /admin/reports/{id}/worksheet-summary Reports are scoped to the authenticated organization. Data operations enforce source-context access and reject missing fields or unavailable saved contexts. Mutations, scheduling, audience handoffs and downloads require report-management permission; read operations expose only permitted source fields. Worksheet columns and row values are dynamic and should be interpreted using the returned field metadata. # Count reports by source Source: https://api-docs.helpyousponsor.com/api-reference/reports/count-reports-by-source get /admin/reports/source-counts Reports are scoped to the authenticated organization. Data operations enforce source-context access and reject missing fields or unavailable saved contexts. Mutations, scheduling, audience handoffs and downloads require report-management permission; read operations expose only permitted source fields. Worksheet columns and row values are dynamic and should be interpreted using the returned field metadata. # Create a report audience handoff Source: https://api-docs.helpyousponsor.com/api-reference/reports/create-a-report-audience-handoff post /admin/reports/{id}/audience Reports are scoped to the authenticated organization. Data operations enforce source-context access and reject missing fields or unavailable saved contexts. Mutations, scheduling, audience handoffs and downloads require report-management permission; read operations expose only permitted source fields. Worksheet columns and row values are dynamic and should be interpreted using the returned field metadata. # Delete a saved report Source: https://api-docs.helpyousponsor.com/api-reference/reports/delete-a-saved-report delete /admin/reports/{id} Reports are scoped to the authenticated organization. Data operations enforce source-context access and reject missing fields or unavailable saved contexts. Mutations, scheduling, audience handoffs and downloads require report-management permission; read operations expose only permitted source fields. Worksheet columns and row values are dynamic and should be interpreted using the returned field metadata. # Download a completed report CSV Source: https://api-docs.helpyousponsor.com/api-reference/reports/download-a-completed-report-csv get /admin/reports/exports/{uploadId} Reports are scoped to the authenticated organization. Data operations enforce source-context access and reject missing fields or unavailable saved contexts. Mutations, scheduling, audience handoffs and downloads require report-management permission; read operations expose only permitted source fields. Worksheet columns and row values are dynamic and should be interpreted using the returned field metadata. Without resolve, the operation redirects or streams CSV bytes; resolve returns JSON. Artifact access is rechecked before delivery. # Duplicate a report Source: https://api-docs.helpyousponsor.com/api-reference/reports/duplicate-a-report post /admin/reports/{id}/duplicate Reports are scoped to the authenticated organization. Data operations enforce source-context access and reject missing fields or unavailable saved contexts. Mutations, scheduling, audience handoffs and downloads require report-management permission; read operations expose only permitted source fields. Worksheet columns and row values are dynamic and should be interpreted using the returned field metadata. # Get a saved report Source: https://api-docs.helpyousponsor.com/api-reference/reports/get-a-saved-report get /admin/reports/{id} Reports are scoped to the authenticated organization. Data operations enforce source-context access and reject missing fields or unavailable saved contexts. Mutations, scheduling, audience handoffs and downloads require report-management permission; read operations expose only permitted source fields. Worksheet columns and row values are dynamic and should be interpreted using the returned field metadata. # Get report-builder metadata Source: https://api-docs.helpyousponsor.com/api-reference/reports/get-report-builder-metadata get /admin/reports/meta Reports are scoped to the authenticated organization. Data operations enforce source-context access and reject missing fields or unavailable saved contexts. Mutations, scheduling, audience handoffs and downloads require report-management permission; read operations expose only permitted source fields. Worksheet columns and row values are dynamic and should be interpreted using the returned field metadata. # Get report source fields Source: https://api-docs.helpyousponsor.com/api-reference/reports/get-report-source-fields get /admin/reports/fields Reports are scoped to the authenticated organization. Data operations enforce source-context access and reject missing fields or unavailable saved contexts. Mutations, scheduling, audience handoffs and downloads require report-management permission; read operations expose only permitted source fields. Worksheet columns and row values are dynamic and should be interpreted using the returned field metadata. # Get saved report insights Source: https://api-docs.helpyousponsor.com/api-reference/reports/get-saved-report-insights get /admin/reports/{id}/details Reports are scoped to the authenticated organization. Data operations enforce source-context access and reject missing fields or unavailable saved contexts. Mutations, scheduling, audience handoffs and downloads require report-management permission; read operations expose only permitted source fields. Worksheet columns and row values are dynamic and should be interpreted using the returned field metadata. # Get visible report row counts Source: https://api-docs.helpyousponsor.com/api-reference/reports/get-visible-report-row-counts get /admin/reports/counts Reports are scoped to the authenticated organization. Data operations enforce source-context access and reject missing fields or unavailable saved contexts. Mutations, scheduling, audience handoffs and downloads require report-management permission; read operations expose only permitted source fields. Worksheet columns and row values are dynamic and should be interpreted using the returned field metadata. # Get worksheet field metadata Source: https://api-docs.helpyousponsor.com/api-reference/reports/get-worksheet-field-metadata get /admin/worksheet/fields Reports are scoped to the authenticated organization. Data operations enforce source-context access and reject missing fields or unavailable saved contexts. Mutations, scheduling, audience handoffs and downloads require report-management permission; read operations expose only permitted source fields. Worksheet columns and row values are dynamic and should be interpreted using the returned field metadata. # List available report templates Source: https://api-docs.helpyousponsor.com/api-reference/reports/list-available-report-templates get /admin/reports/templates Reports are scoped to the authenticated organization. Data operations enforce source-context access and reject missing fields or unavailable saved contexts. Mutations, scheduling, audience handoffs and downloads require report-management permission; read operations expose only permitted source fields. Worksheet columns and row values are dynamic and should be interpreted using the returned field metadata. # List pinned report dashboard tiles Source: https://api-docs.helpyousponsor.com/api-reference/reports/list-pinned-report-dashboard-tiles get /admin/dashboard/tiles Tiles and preferences belong to the current staff member within the organization. Writes and metric preview require report-management permission and access to the source report. Only metrics eligible for that report can be pinned or calculated. # List saved reports Source: https://api-docs.helpyousponsor.com/api-reference/reports/list-saved-reports get /admin/reports Reports are scoped to the authenticated organization. Data operations enforce source-context access and reject missing fields or unavailable saved contexts. Mutations, scheduling, audience handoffs and downloads require report-management permission; read operations expose only permitted source fields. Worksheet columns and row values are dynamic and should be interpreted using the returned field metadata. # List the saved report catalog Source: https://api-docs.helpyousponsor.com/api-reference/reports/list-the-saved-report-catalog get /admin/reports/catalog Reports are scoped to the authenticated organization. Data operations enforce source-context access and reject missing fields or unavailable saved contexts. Mutations, scheduling, audience handoffs and downloads require report-management permission; read operations expose only permitted source fields. Worksheet columns and row values are dynamic and should be interpreted using the returned field metadata. # Load a dashboard home section Source: https://api-docs.helpyousponsor.com/api-reference/reports/load-a-dashboard-home-section get /admin/dashboard/home/sections/{section} Returns cached, permission-aware dashboard home data. Sections include overview, action_center, executive_snapshot, fundraising_summary, program_summary, trip_summary, wealth_teaser and recent_activity; sections can be omitted or null when unavailable. Mode changes update the organization preference. # Load dashboard home Source: https://api-docs.helpyousponsor.com/api-reference/reports/load-dashboard-home get /admin/dashboard/home Returns cached, permission-aware dashboard home data. Sections include overview, action_center, executive_snapshot, fundraising_summary, program_summary, trip_summary, wealth_teaser and recent_activity; sections can be omitted or null when unavailable. Mode changes update the organization preference. # Pin a report dashboard tile Source: https://api-docs.helpyousponsor.com/api-reference/reports/pin-a-report-dashboard-tile post /admin/dashboard/tiles Tiles and preferences belong to the current staff member within the organization. Writes and metric preview require report-management permission and access to the source report. Only metrics eligible for that report can be pinned or calculated. # Poll a report CSV export Source: https://api-docs.helpyousponsor.com/api-reference/reports/poll-a-report-csv-export get /admin/reports/exports/{uploadId}/status Reports are scoped to the authenticated organization. Data operations enforce source-context access and reject missing fields or unavailable saved contexts. Mutations, scheduling, audience handoffs and downloads require report-management permission; read operations expose only permitted source fields. Worksheet columns and row values are dynamic and should be interpreted using the returned field metadata. # Preview a report dashboard metric Source: https://api-docs.helpyousponsor.com/api-reference/reports/preview-a-report-dashboard-metric post /admin/dashboard/tiles/preview Tiles and preferences belong to the current staff member within the organization. Writes and metric preview require report-management permission and access to the source report. Only metrics eligible for that report can be pinned or calculated. # Preview a saved report Source: https://api-docs.helpyousponsor.com/api-reference/reports/preview-a-saved-report get /admin/reports/{id}/preview Reports are scoped to the authenticated organization. Data operations enforce source-context access and reject missing fields or unavailable saved contexts. Mutations, scheduling, audience handoffs and downloads require report-management permission; read operations expose only permitted source fields. Worksheet columns and row values are dynamic and should be interpreted using the returned field metadata. # Preview an unsaved report definition Source: https://api-docs.helpyousponsor.com/api-reference/reports/preview-an-unsaved-report-definition post /admin/reports/preview Reports are scoped to the authenticated organization. Data operations enforce source-context access and reject missing fields or unavailable saved contexts. Mutations, scheduling, audience handoffs and downloads require report-management permission; read operations expose only permitted source fields. Worksheet columns and row values are dynamic and should be interpreted using the returned field metadata. # Queue a report run Source: https://api-docs.helpyousponsor.com/api-reference/reports/queue-a-report-run post /admin/reports/{id}/run Reports are scoped to the authenticated organization. Data operations enforce source-context access and reject missing fields or unavailable saved contexts. Mutations, scheduling, audience handoffs and downloads require report-management permission; read operations expose only permitted source fields. Worksheet columns and row values are dynamic and should be interpreted using the returned field metadata. A successful200 response queues CSV work; poll the returned status URL. # Queue an export of report rows Source: https://api-docs.helpyousponsor.com/api-reference/reports/queue-an-export-of-report-rows post /admin/reports/{id}/export Reports are scoped to the authenticated organization. Data operations enforce source-context access and reject missing fields or unavailable saved contexts. Mutations, scheduling, audience handoffs and downloads require report-management permission; read operations expose only permitted source fields. Worksheet columns and row values are dynamic and should be interpreted using the returned field metadata. A successful200 response queues CSV work; poll the returned status URL. # Read related records for a report row Source: https://api-docs.helpyousponsor.com/api-reference/reports/read-related-records-for-a-report-row get /admin/reports/{id}/rows/{recordId}/related Reports are scoped to the authenticated organization. Data operations enforce source-context access and reject missing fields or unavailable saved contexts. Mutations, scheduling, audience handoffs and downloads require report-management permission; read operations expose only permitted source fields. Worksheet columns and row values are dynamic and should be interpreted using the returned field metadata. # Read report worksheet rows Source: https://api-docs.helpyousponsor.com/api-reference/reports/read-report-worksheet-rows get /admin/reports/{id}/rows Reports are scoped to the authenticated organization. Data operations enforce source-context access and reject missing fields or unavailable saved contexts. Mutations, scheduling, audience handoffs and downloads require report-management permission; read operations expose only permitted source fields. Worksheet columns and row values are dynamic and should be interpreted using the returned field metadata. # Remove a pinned report tile Source: https://api-docs.helpyousponsor.com/api-reference/reports/remove-a-pinned-report-tile delete /admin/dashboard/tiles/{id} Tiles and preferences belong to the current staff member within the organization. Writes and metric preview require report-management permission and access to the source report. Only metrics eligible for that report can be pinned or calculated. # Remove a report schedule Source: https://api-docs.helpyousponsor.com/api-reference/reports/remove-a-report-schedule delete /admin/reports/{id}/schedule Reports are scoped to the authenticated organization. Data operations enforce source-context access and reject missing fields or unavailable saved contexts. Mutations, scheduling, audience handoffs and downloads require report-management permission; read operations expose only permitted source fields. Worksheet columns and row values are dynamic and should be interpreted using the returned field metadata. # Resolve a report audience token Source: https://api-docs.helpyousponsor.com/api-reference/reports/resolve-a-report-audience-token get /admin/reports/audience/{token} Reports are scoped to the authenticated organization. Data operations enforce source-context access and reject missing fields or unavailable saved contexts. Mutations, scheduling, audience handoffs and downloads require report-management permission; read operations expose only permitted source fields. Worksheet columns and row values are dynamic and should be interpreted using the returned field metadata. # Save a report definition Source: https://api-docs.helpyousponsor.com/api-reference/reports/save-a-report-definition post /admin/reports Reports are scoped to the authenticated organization. Data operations enforce source-context access and reject missing fields or unavailable saved contexts. Mutations, scheduling, audience handoffs and downloads require report-management permission; read operations expose only permitted source fields. Worksheet columns and row values are dynamic and should be interpreted using the returned field metadata. # Schedule a report Source: https://api-docs.helpyousponsor.com/api-reference/reports/schedule-a-report post /admin/reports/{id}/schedule Reports are scoped to the authenticated organization. Data operations enforce source-context access and reject missing fields or unavailable saved contexts. Mutations, scheduling, audience handoffs and downloads require report-management permission; read operations expose only permitted source fields. Worksheet columns and row values are dynamic and should be interpreted using the returned field metadata. # Set the organization dashboard mode Source: https://api-docs.helpyousponsor.com/api-reference/reports/set-the-organization-dashboard-mode put /admin/dashboard/mode Returns cached, permission-aware dashboard home data. Sections include overview, action_center, executive_snapshot, fundraising_summary, program_summary, trip_summary, wealth_teaser and recent_activity; sections can be omitted or null when unavailable. Mode changes update the organization preference. # Star or unstar a saved report Source: https://api-docs.helpyousponsor.com/api-reference/reports/star-or-unstar-a-saved-report patch /admin/reports/{id}/star Reports are scoped to the authenticated organization. Data operations enforce source-context access and reject missing fields or unavailable saved contexts. Mutations, scheduling, audience handoffs and downloads require report-management permission; read operations expose only permitted source fields. Worksheet columns and row values are dynamic and should be interpreted using the returned field metadata. # Tag records selected from a report Source: https://api-docs.helpyousponsor.com/api-reference/reports/tag-records-selected-from-a-report post /admin/reports/{id}/tag Reports are scoped to the authenticated organization. Data operations enforce source-context access and reject missing fields or unavailable saved contexts. Mutations, scheduling, audience handoffs and downloads require report-management permission; read operations expose only permitted source fields. Worksheet columns and row values are dynamic and should be interpreted using the returned field metadata. # Update a pinned report tile Source: https://api-docs.helpyousponsor.com/api-reference/reports/update-a-pinned-report-tile patch /admin/dashboard/tiles/{id} Tiles and preferences belong to the current staff member within the organization. Writes and metric preview require report-management permission and access to the source report. Only metrics eligible for that report can be pinned or calculated. # Update a report definition Source: https://api-docs.helpyousponsor.com/api-reference/reports/update-a-report-definition put /admin/reports/{id} Reports are scoped to the authenticated organization. Data operations enforce source-context access and reject missing fields or unavailable saved contexts. Mutations, scheduling, audience handoffs and downloads require report-management permission; read operations expose only permitted source fields. Worksheet columns and row values are dynamic and should be interpreted using the returned field metadata. # Update a report definition Source: https://api-docs.helpyousponsor.com/api-reference/reports/update-a-report-definition-1 patch /admin/reports/{id} Reports are scoped to the authenticated organization. Data operations enforce source-context access and reject missing fields or unavailable saved contexts. Mutations, scheduling, audience handoffs and downloads require report-management permission; read operations expose only permitted source fields. Worksheet columns and row values are dynamic and should be interpreted using the returned field metadata. # Update report dashboard preferences Source: https://api-docs.helpyousponsor.com/api-reference/reports/update-report-dashboard-preferences put /admin/dashboard/preferences Tiles and preferences belong to the current staff member within the organization. Writes and metric preview require report-management permission and access to the source report. Only metrics eligible for that report can be pinned or calculated. # Get an exposed model schema Source: https://api-docs.helpyousponsor.com/api-reference/schema/get-an-exposed-model-schema get /schema/models/{name} Returns field types, fillable and hidden metadata, casts and known relationships for one exposed model. Scoped API keys require schema:read (or a matching wildcard). The field and relationship maps reflect the deployed database/model definition and contain no record values. # Get automation API capabilities Source: https://api-docs.helpyousponsor.com/api-reference/schema/get-automation-api-capabilities get /schema/capabilities Returns the V3 API version, discovery availability, tenant metadata, page-size defaults and supported scope catalog. Scoped API keys require schema:read (or a matching wildcard). The catalog identifies supported scope names; caller authorization remains subject to the current credential and workspace permissions. # List API enums and constants Source: https://api-docs.helpyousponsor.com/api-reference/schema/list-api-enums-and-constants get /schema/enums Returns the frequency, payment_method, donor_type, entity_status and hysform_type lookup maps used by discovery clients. Scoped API keys require schema:read (or a matching wildcard). Values describe the deployed compatibility mappings. # List exposed data models Source: https://api-docs.helpyousponsor.com/api-reference/schema/list-exposed-data-models get /schema/models Lists the models available for authenticated integration schema discovery. Scoped API keys require schema:read (or a matching wildcard); each item links to the corresponding model schema. This endpoint returns model metadata, not donor or transaction records. # Check grouped payment reminder readiness Source: https://api-docs.helpyousponsor.com/api-reference/settings/check-grouped-payment-reminder-readiness get /admin/settings/{settings_id}/payment-reminder-preflight Inspects active default payment-reminder email/SMS templates for programs using this setting. Configured channels require an active template containing the grouped reminder placeholder. Missing channels are reported not_configured and do not block readiness. Different template sets generate warnings; due dates, methods, template sets and channels stay separate. This read does not enable reminders or send messages. Requires permission: one of manage_settings. # Clone a program setting Source: https://api-docs.helpyousponsor.com/api-reference/settings/clone-a-program-setting post /admin/settings/{settings_id}/clone Replicates an accessible setting for the current organization, clears its archive timestamp and assigns a new name. Blank/omitted name becomes Copy of {source name}, truncated to255characters. summary=true omits the full raw setting model from data. Does not attach the new setting to a program. Requires permission: one of manage_settings. # Get address field labels Source: https://api-docs.helpyousponsor.com/api-reference/settings/get-address-field-labels get /geo/address-format/{country_code} Returns postal and subdivision labels plus whether subdivisions exist. Unknown country codes use Postal Code and State/Province labels with has_subdivisions=false. # Get organization jurisdiction settings Source: https://api-docs.helpyousponsor.com/api-reference/settings/get-organization-jurisdiction-settings get /admin/jurisdiction-profile Returns the effective statement/receipt profile, current-year preview and country presets. An organization with no saved profile uses the US preset and existing EIN without printing the registration number. Saving replaces configurable values; omitted optional values reset to their preset/default. Fiscal periods use the year in which the period ends. This endpoint configures wording and period metadata; it does not validate tax eligibility. Requires permission: one of manage_settings, access_account_settings. # Get organization public branding Source: https://api-docs.helpyousponsor.com/api-reference/settings/get-organization-public-branding get /admin/public-branding Returns public identity, default accent and contrast tokens, program override counts, capabilities and a public preview URL. Requires access_account_settings or manage_settings. Colors fall back to indigo600 when no valid organization color exists. Requires permission: one of access_account_settings, manage_settings. # Get restricted record display settings Source: https://api-docs.helpyousponsor.com/api-reference/settings/get-restricted-record-display-settings get /admin/privacy/record-disclosure Returns workspace defaults, selected levels, program overrides and the visibility ladder. These settings currently apply to restricted record mentions; users with full record access retain full visibility. Requires permission: one of manage_settings. # List address countries Source: https://api-docs.helpyousponsor.com/api-reference/settings/list-address-countries get /geo/countries Returns ISO3166-1 alpha-2 country codes and localized names, sorted by name. # List country subdivisions Source: https://api-docs.helpyousponsor.com/api-reference/settings/list-country-subdivisions get /geo/subdivisions/{country_code} Returns top-level ISO3166-2-style subdivision codes and names, sorted by name. An unknown country or one with no subdivisions returns an empty data array. locale is accepted but the subdivision repository currently supplies its own stored names. # Pin or unpin a navigation item Source: https://api-docs.helpyousponsor.com/api-reference/settings/pin-or-unpin-a-navigation-item patch /admin/navigation-preferences/pins Updates only the authenticated user’s preferences in the current organization. Supply expected_version from the last snapshot; a stale version returns409 with current. Repeating an already-applied operation is a no-op and preserves the version. Pins are limited to6; expanded and collapsed groups to24 each. client_id and user_id must not be submitted. Requires permission: navigation_preferences_self_service. # Remember an expanded navigation group Source: https://api-docs.helpyousponsor.com/api-reference/settings/remember-an-expanded-navigation-group patch /admin/navigation-preferences/expanded-groups Updates only the authenticated user’s preferences in the current organization. Supply expected_version from the last snapshot; a stale version returns409 with current. Repeating an already-applied operation is a no-op and preserves the version. Pins are limited to6; expanded and collapsed groups to24 each. client_id and user_id must not be submitted. Requires permission: navigation_preferences_self_service. # Reset program accent overrides Source: https://api-docs.helpyousponsor.com/api-reference/settings/reset-program-accent-overrides delete /admin/public-branding/program-color-overrides Requires manage_settings and access to every affected program setting. Removes the color override from all currently customized program settings. Optional program_ids is an optimistic confirmation of the complete current customized-program list; it does not select a subset. A changed list returns409 before writing. Requires permission: one of manage_settings. # Update a program privacy override Source: https://api-docs.helpyousponsor.com/api-reference/settings/update-a-program-privacy-override put /admin/programs/{program_id}/record-disclosure Sets or clears a program’s entity level and hide-type flag. A level looser than the workspace entity default is clamped to that default and clamped=true is returned. Submit entity_level=null to use the workspace default. revision compares the program override revision. Enforcement currently applies to mentions. Requires permission: one of manage_settings. # Update organization jurisdiction settings Source: https://api-docs.helpyousponsor.com/api-reference/settings/update-organization-jurisdiction-settings put /admin/jurisdiction-profile Returns the effective statement/receipt profile, current-year preview and country presets. An organization with no saved profile uses the US preset and existing EIN without printing the registration number. Saving replaces configurable values; omitted optional values reset to their preset/default. Fiscal periods use the year in which the period ends. This endpoint configures wording and period metadata; it does not validate tax eligibility. Requires permission: one of manage_settings, access_account_settings. # Update organization public branding Source: https://api-docs.helpyousponsor.com/api-reference/settings/update-organization-public-branding patch /admin/public-branding Supply at least one supported field. Public name and logo require access_account_settings; default color permits that permission or manage_settings. The name is trimmed and must retain3characters. A changed logo must be a workspace-uploaded account-logo asset under client-assets/{client_id}/account-logo with an accepted image extension. Custom hex colors require color_level600; preset names/shades must be configured. Requires permission: one of access_account_settings, manage_settings. # Update restricted record display levels Source: https://api-docs.helpyousponsor.com/api-reference/settings/update-restricted-record-display-levels put /admin/privacy/record-disclosure Partially merges supported record-type levels. Unknown record types and full visibility are rejected. Supply revision to detect concurrent edits; stale revisions return409. No-op writes preserve the revision. Enforcement currently applies to mentions. Requires permission: one of manage_settings. # Archive a page and its active descendants Source: https://api-docs.helpyousponsor.com/api-reference/spaces/archive-a-page-and-its-active-descendants post /admin/pages/{page}/archive Requires the configured page-editor feature (spaces by default) and current subject/page access. Workspace pages use a null subject; subject pages inherit their space access. Changes the accessible page tree under a space lock; concurrent reorganization can return 409. # Change clearance for files in a space Source: https://api-docs.helpyousponsor.com/api-reference/spaces/change-clearance-for-files-in-a-space post /admin/spaces/{type}/{id}/clearance Requires the spaces feature and current access to the organization, program or recipient. File, story and supporter sections additionally follow their own permissions. Support sessions are read-only. Each file is authorized independently; refused changes are returned as unchanged rows. A successful batch can return a single-use undo token bound to this user and space, valid for sixty seconds. # Create a page Source: https://api-docs.helpyousponsor.com/api-reference/spaces/create-a-page post /admin/pages Requires the configured page-editor feature (spaces by default) and current subject/page access. Workspace pages use a null subject; subject pages inherit their space access. Creates page metadata and its initial empty page-profile document. The parent must be active in the same space and the configured maximum tree depth must be respected. # List a recipient space supporters Source: https://api-docs.helpyousponsor.com/api-reference/spaces/list-a-recipient-space-supporters get /admin/spaces/recipient/{id}/supporters Requires the spaces feature and current access to the organization, program or recipient. File, story and supporter sections additionally follow their own permissions. Without donor access the list is empty and meta.restricted is true; the count remains available. prepare_update is present only when the caller can generate mailings and supporters exist. # List a space media page Source: https://api-docs.helpyousponsor.com/api-reference/spaces/list-a-space-media-page get /admin/spaces/{type}/{id}/media Requires the spaces feature and current access to the organization, program or recipient. File, story and supporter sections additionally follow their own permissions. Returns accessible files with current public/supporter clearance decisions and consent holds. # List accessible program spaces Source: https://api-docs.helpyousponsor.com/api-reference/spaces/list-accessible-program-spaces get /admin/spaces Requires the spaces feature and current access to the organization, program or recipient. File, story and supporter sections additionally follow their own permissions. Returns every visible program with file and story totals, ordered by most recent activity. # List Drive sources mapped into a space Source: https://api-docs.helpyousponsor.com/api-reference/spaces/list-drive-sources-mapped-into-a-space get /admin/spaces/{type}/{id}/sources Requires the spaces feature and current access to the organization, program or recipient. File, story and supporter sections additionally follow their own permissions. Only program spaces have mapped folders; other supported space types return an empty list. # List my page mention notifications Source: https://api-docs.helpyousponsor.com/api-reference/spaces/list-my-page-mention-notifications get /admin/notifications/page-mentions Requires the configured page-editor feature (spaces by default) and current subject/page access. Workspace pages use a null subject; subject pages inherit their space access. Returns the latest fifty delivered notifications addressed to the current user. Page and access-request identity are reauthorized on each read; inaccessible content is replaced by an unavailable message. meta.unread counts unread rows in this returned window. # List my pinned pages Source: https://api-docs.helpyousponsor.com/api-reference/spaces/list-my-pinned-pages get /admin/pages/pinned Requires the configured page-editor feature (spaces by default) and current subject/page access. Workspace pages use a null subject; subject pages inherit their space access. Returns at most 200 personal pins. # List recent mention suggestions Source: https://api-docs.helpyousponsor.com/api-reference/spaces/list-recent-mention-suggestions get /admin/mentions/recent Requires the configured page-editor feature (spaces by default) and current subject/page access. Workspace pages use a null subject; subject pages inherit their space access. The document must occur in an accessible page. Search and recent additionally require edit access to an active page. Read resolution never grants access to the mentioned record. Suggests the page subject followed by up to ten records mentioned by this user in the last thirty days, reauthorized on every request. # List recently edited pages Source: https://api-docs.helpyousponsor.com/api-reference/spaces/list-recently-edited-pages get /admin/pages/recent Requires the configured page-editor feature (spaces by default) and current subject/page access. Workspace pages use a null subject; subject pages inherit their space access. Returns twenty accessible results per page. The opaque cursor advances through bounded access scans; use it until next_cursor is null. # List saved page-document versions Source: https://api-docs.helpyousponsor.com/api-reference/spaces/list-saved-page-document-versions get /admin/page-documents/{document}/versions Requires the configured page-editor feature (spaces by default) and current subject/page access. Workspace pages use a null subject; subject pages inherit their space access. Only page-owned documents are supported. Document and owner UUIDs must belong to the authenticated tenant. Returns up to200 snapshots newest first. Labelled saves always snapshot; unlabelled saves are rate limited by the configured snapshot interval. # List stories in a space Source: https://api-docs.helpyousponsor.com/api-reference/spaces/list-stories-in-a-space get /admin/spaces/{type}/{id}/stories Requires the spaces feature and current access to the organization, program or recipient. File, story and supporter sections additionally follow their own permissions. Uses current clearance decisions for the blocked filter and reach fields. # List work needing attention across spaces Source: https://api-docs.helpyousponsor.com/api-reference/spaces/list-work-needing-attention-across-spaces get /admin/spaces/needs-you Requires the spaces feature and current access to the organization, program or recipient. File, story and supporter sections additionally follow their own permissions. Checks the organization and the twelve most recently active program spaces. partial is true when additional program spaces exist; cached for one minute per user and role authority. # Mark a page mention notification read Source: https://api-docs.helpyousponsor.com/api-reference/spaces/mark-a-page-mention-notification-read post /admin/notifications/page-mentions/{notification}/read Requires the configured page-editor feature (spaces by default) and current subject/page access. Workspace pages use a null subject; subject pages inherit their space access. Marks an unread notification owned by this user. The response acknowledges the requested ID even when no unread owned row needed updating. # Move or reorder a page Source: https://api-docs.helpyousponsor.com/api-reference/spaces/move-or-reorder-a-page post /admin/pages/{page}/move Requires the configured page-editor feature (spaces by default) and current subject/page access. Workspace pages use a null subject; subject pages inherit their space access. parent_uuid must be present and may be null for the root. Parent must be active in the same space; cycles, self-parenting and excessive depth are rejected. position is stored as a decimal string. # Pin a page for my user Source: https://api-docs.helpyousponsor.com/api-reference/spaces/pin-a-page-for-my-user post /admin/pages/{page}/pin Requires the configured page-editor feature (spaces by default) and current subject/page access. Workspace pages use a null subject; subject pages inherit their space access. Only changes the current user personal pin state. # Read a mention summary card Source: https://api-docs.helpyousponsor.com/api-reference/spaces/read-a-mention-summary-card get /admin/mentions/summary Requires the configured page-editor feature (spaces by default) and current subject/page access. Workspace pages use a null subject; subject pages inherit their space access. The document must occur in an accessible page. Search and recent additionally require edit access to an active page. Read resolution never grants access to the mentioned record. Below full disclosure only disclosure is returned; detail fields and donation aggregates appear only when the caller may read them. # Read a revisioned page document Source: https://api-docs.helpyousponsor.com/api-reference/spaces/read-a-revisioned-page-document get /admin/page-documents/{document} Requires the configured page-editor feature (spaces by default) and current subject/page access. Workspace pages use a null subject; subject pages inherit their space access. Only page-owned documents are supported. Document and owner UUIDs must belong to the authenticated tenant. Returns the stored editor tree and current revision, with present edit and HTML capabilities. # Read a space header Source: https://api-docs.helpyousponsor.com/api-reference/spaces/read-a-space-header get /admin/spaces/{type}/{id} Requires the spaces feature and current access to the organization, program or recipient. File, story and supporter sections additionally follow their own permissions. The type must be organization, program or recipient; event, trip and grant spaces are not implemented by this resolver. # Read a space overview Source: https://api-docs.helpyousponsor.com/api-reference/spaces/read-a-space-overview get /admin/spaces/{type}/{id}/overview Requires the spaces feature and current access to the organization, program or recipient. File, story and supporter sections additionally follow their own permissions. Returns attention rows, twelve recent media files, five recent stories and up to eight program recipients with recent media but no recent story. # Read page metadata and breadcrumbs Source: https://api-docs.helpyousponsor.com/api-reference/spaces/read-page-metadata-and-breadcrumbs get /admin/pages/{page} Requires the configured page-editor feature (spaces by default) and current subject/page access. Workspace pages use a null subject; subject pages inherit their space access. Includes can_edit and the accessible page ancestor trail. # Read the space clearance board Source: https://api-docs.helpyousponsor.com/api-reference/spaces/read-the-space-clearance-board get /admin/spaces/{type}/{id}/clearance-board Requires the spaces feature and current access to the organization, program or recipient. File, story and supporter sections additionally follow their own permissions. Returns one column per clearance level with its total and up to 24 initial media items. # Read the subject space page tree Source: https://api-docs.helpyousponsor.com/api-reference/spaces/read-the-subject-space-page-tree get /admin/spaces/{subjectType}/{subjectId}/pages/tree Requires the configured page-editor feature (spaces by default) and current subject/page access. Workspace pages use a null subject; subject pages inherit their space access. Returns up to 5000 page rows in tree ordering with parent UUIDs and personal pin state. archived selects trash instead of active pages. # Read the workspace page tree Source: https://api-docs.helpyousponsor.com/api-reference/spaces/read-the-workspace-page-tree get /admin/pages/tree Requires the configured page-editor feature (spaces by default) and current subject/page access. Workspace pages use a null subject; subject pages inherit their space access. Returns up to 5000 page rows in tree ordering with parent UUIDs and personal pin state. archived selects trash instead of active pages. # Request access to a mentioned record Source: https://api-docs.helpyousponsor.com/api-reference/spaces/request-access-to-a-mentioned-record post /admin/mentions/request-access Requires the configured page-editor feature (spaces by default) and current subject/page access. Workspace pages use a null subject; subject pages inherit their space access. The document must occur in an accessible page. Search and recent additionally require edit access to an active page. Read resolution never grants access to the mentioned record. The record must occur in the page. Notifies up to fifty current access managers; repeats within 24 hours reuse the request. If already visible, requested is false and already_visible is true. This endpoint does not change permissions. # Resolve labels for document mentions Source: https://api-docs.helpyousponsor.com/api-reference/spaces/resolve-labels-for-document-mentions post /admin/mentions/resolve Requires the configured page-editor feature (spaces by default) and current subject/page access. Workspace pages use a null subject; subject pages inherit their space access. The document must occur in an accessible page. Search and recent additionally require edit access to an active page. Read resolution never grants access to the mentioned record. Only references actually present in this document/version are disclosed; foreign, missing and unbound refs get unavailable disclosures. Input allows 400 entries before deduplication; at most 200 distinct valid refs are allowed. # Restore a page-document version Source: https://api-docs.helpyousponsor.com/api-reference/spaces/restore-a-page-document-version post /admin/page-documents/{document}/versions/{version}/restore Requires the configured page-editor feature (spaces by default) and current subject/page access. Workspace pages use a null subject; subject pages inherit their space access. Only page-owned documents are supported. Document and owner UUIDs must belong to the authenticated tenant. Writes the chosen snapshot as a new revision through the normal save rules, with a restoration label. base_revision is optional; supply it to detect a concurrent save. Mentions the actor cannot insert are removed and counted. # Restore a page from trash Source: https://api-docs.helpyousponsor.com/api-reference/spaces/restore-a-page-from-trash post /admin/pages/{page}/restore Requires the configured page-editor feature (spaces by default) and current subject/page access. Workspace pages use a null subject; subject pages inherit their space access. Changes the accessible page tree under a space lock; concurrent reorganization can return 409. # Save a revisioned page document Source: https://api-docs.helpyousponsor.com/api-reference/spaces/save-a-revisioned-page-document patch /admin/page-documents/{document} Requires the configured page-editor feature (spaces by default) and current subject/page access. Workspace pages use a null subject; subject pages inherit their space access. Only page-owned documents are supported. Document and owner UUIDs must belong to the authenticated tenant. Requires base_revision to match the current revision. The request envelope is limited to3 MB and the document itself to2 MB, at most 12 nested levels. Root type must be doc; content follows each node allowed children, unique block IDs and profile rules. Newly inserted mentions and Library files are reauthorized. Archived owners reject edits; HTML changes require Manage HTML blocks. # Search accessible mention choices Source: https://api-docs.helpyousponsor.com/api-reference/spaces/search-accessible-mention-choices get /admin/mentions/search Requires the configured page-editor feature (spaces by default) and current subject/page access. Workspace pages use a null subject; subject pages inherit their space access. The document must occur in an accessible page. Search and recent additionally require edit access to an active page. Read resolution never grants access to the mentioned record. Groups choices by record kind; limit is per group, with at most 50 items overall. Cursor is effective only with a group. A truncated group has more scanned candidates to page through. # Search page titles and document text Source: https://api-docs.helpyousponsor.com/api-reference/spaces/search-page-titles-and-document-text get /admin/pages/search Requires the configured page-editor feature (spaces by default) and current subject/page access. Workspace pages use a null subject; subject pages inherit their space access. Returns twenty accessible results per page. The opaque cursor advances through bounded access scans; use it until next_cursor is null. # Search programs and recipients for a space Source: https://api-docs.helpyousponsor.com/api-reference/spaces/search-programs-and-recipients-for-a-space get /admin/spaces/search Requires the spaces feature and current access to the organization, program or recipient. File, story and supporter sections additionally follow their own permissions. Matches names among records the caller can open; returns up to ten options. # Undo a space clearance change Source: https://api-docs.helpyousponsor.com/api-reference/spaces/undo-a-space-clearance-change post /admin/spaces/{type}/{id}/clearance/undo Requires the spaces feature and current access to the organization, program or recipient. File, story and supporter sections additionally follow their own permissions. Consumes the single-use token within sixty seconds. Each file restores only if its current revision still matches the previous batch; per-file refusals remain in the response. # Unpin a page for my user Source: https://api-docs.helpyousponsor.com/api-reference/spaces/unpin-a-page-for-my-user delete /admin/pages/{page}/pin Requires the configured page-editor feature (spaces by default) and current subject/page access. Workspace pages use a null subject; subject pages inherit their space access. Only changes the current user personal pin state. # Update page metadata Source: https://api-docs.helpyousponsor.com/api-reference/spaces/update-page-metadata patch /admin/pages/{page} Requires the configured page-editor feature (spaces by default) and current subject/page access. Workspace pages use a null subject; subject pages inherit their space access. Edits only submitted title, icon and width fields. Restore an archived page before editing. # Add a new commitment Source: https://api-docs.helpyousponsor.com/api-reference/sponsorships/add-a-new-commitment post /admin/sponsorships # Apply a received gift to recipient coverage Source: https://api-docs.helpyousponsor.com/api-reference/sponsorships/apply-a-received-gift-to-recipient-coverage post /admin/donations/{donation_id}/funding Requires bearer or API-key authentication, current organization scope and access to every selected recipient program. Gift/funding administration also follows the donations/reports permission policy. Only qualified received gifts with retained money in the organization currency can fund recipients. Campaign, peer-to-peer and trip records are excluded. Money-need programs derive whole monthly periods, retain any unused remainder and allow partial first-month coverage; slot programs require an explicit coverage end. Replans under the gift lock and writes all rows atomically, preventing concurrent over-allocation. Any preview problems become 422. Records funding activity and refreshes coverage/search after commit. Repeating this request can allocate more remaining money; it is not an idempotency-key endpoint and does not charge another payment. # Apply starter lifecycle reasons Source: https://api-docs.helpyousponsor.com/api-reference/sponsorships/apply-starter-lifecycle-reasons post /admin/lifecycle-reason-sets/apply-template Materializes selected reason contexts, or all contexts when context_keys is omitted/null. Existing nonempty catalogs are preserved; empty catalogs receive starter reasons. Returns all three current standards. Requires the workspace lifecycle feature. Mutation permission is lifecycle_reasons_manage or manage_settings. # Approve a donor sponsorship change request Source: https://api-docs.helpyousponsor.com/api-reference/sponsorships/approve-a-donor-sponsorship-change-request post /admin/sponsorship-change-requests/{request_id}/approve Rechecks a still-pending request under billing/row locks and applies exactly its reviewed values. Changed ownership/financial fingerprint, changed management mode or an unavailable schedule leave the request pending. Schedule changes require donation management permission; cancellation honors the role archive restriction. Approval never charges or refunds; cancellation keeps past giving/paid coverage. Requests are scoped to this organization and programs accessible to the reviewer. Snapshot financial details require donation read access. # Archive a commitment for a donor Source: https://api-docs.helpyousponsor.com/api-reference/sponsorships/archive-a-commitment-for-a-donor post /admin/sponsorships/{donor_entity_id}/archive # Archive Sponsorships for Donors Source: https://api-docs.helpyousponsor.com/api-reference/sponsorships/archive-sponsorships-for-donors post /admin/sponsorships/archive # Confirm a donor sponsorship review Source: https://api-docs.helpyousponsor.com/api-reference/sponsorships/confirm-a-donor-sponsorship-review post /frontend/donor/dashboard/sponsorships/{client_id}/{program_id}/{session_id}/{donor_entity_id}/confirm Consumes the exact review before writing; expired, used, foreign-session or stale reviews cannot be applied. Direct mode updates the future schedule or archives the relationship/commitment through lifecycle; approval mode stores the reviewed values as a pending request. No charge or refund occurs. Recurring-charge and row locks recheck authority/payment state; failed attempts require a fresh review. Uses a logged-in donor session for this organization and a valid portal program/global context; the session TTL refreshes to one hour. Only that donor’s relationships or requests can be accessed. # Count sponsorship worksheet footer values Source: https://api-docs.helpyousponsor.com/api-reference/sponsorships/count-sponsorship-worksheet-footer-values post /admin/sponsorships/{program_id}/footer-calculations Counts blank, filled and unique values over all matching permission-scoped sponsorships. Uses the same saved view, allowed programs, scoped search, due/current status and sponsorship date rules as the worksheet. Index aggregates fall back to bounded250-row projections for live/unsupported filters; errors are not converted into a successful zero count. Program id all or0 selects combined scope. Unknown operations are ignored and count aliases normalize. Requires permission: one of manage_programs. # Create a lifecycle reason Source: https://api-docs.helpyousponsor.com/api-reference/sponsorships/create-a-lifecycle-reason post /admin/lifecycle-reason-sets/{reason_set_id}/reasons Creates an active workspace reason at the end of the context. A unique stable code is generated from the label; the set catalog version advances. Requires the workspace lifecycle feature. Mutation permission is lifecycle_reasons_manage or manage_settings. # Donors and Available Entities Source: https://api-docs.helpyousponsor.com/api-reference/sponsorships/donors-and-available-entities get /admin/sponsorships/new Returns donors and available entities # Download a finished commitment export Source: https://api-docs.helpyousponsor.com/api-reference/sponsorships/download-a-finished-commitment-export get /admin/sponsorships/exports/{uploadId} Sponsorship-export counterpart to `downloadDonorExport`. Default behavior issues an HTTP 302 redirect to a short-lived presigned URL. When called with `?resolve=1`, returns the URL as JSON instead. The upload must belong to the caller's client. Requires permission: `manage_programs` or `donors_view`. # Filter sponsorship worksheet rows Source: https://api-docs.helpyousponsor.com/api-reference/sponsorships/filter-sponsorship-worksheet-rows post /admin/sponsorships/program/filter/{program_id} Searches joined donor/recipient/commitment rows within permitted effective programs, excluding explicit program denials in all-program views. Applies current/due status, saved filters, scoped query and sponsorship creation-date bounds. Fields and column_order update current header preferences. Responses retain selected tenant form/display values and only selected commitment metrics; use explicit pageIndex/pageSize to bound results. A search index that cannot supply a safe fallback returns503. Requires permission: one of manage_programs. # Flat list of entities available for commitment picking Source: https://api-docs.helpyousponsor.com/api-reference/sponsorships/flat-list-of-entities-available-for-commitment-picking get /admin/list_available_entities Returns permission-scoped recipient options for the authenticated client. Tenant and program filters are applied before pagination, and profile fields/uploads are hydrated only for the requested page. Available recipients have status 0 or 2. Each option includes program context, an optional profile image URL (thumbnail preferred, original image used while the thumbnail is unavailable), and up to three configured sponsorship-card fields. Requires permission: `manage_programs`. # Get a donor sponsorship approval request Source: https://api-docs.helpyousponsor.com/api-reference/sponsorships/get-a-donor-sponsorship-approval-request get /admin/sponsorship-change-requests/{request_id} Returns immutable reviewed snapshots plus current approval eligibility/blocker. can_approve can be false because the request is resolved, permissions are insufficient, sponsorship state changed, program mode changed, or current payment/action policies block it. Requests are scoped to this organization and programs accessible to the reviewer. Snapshot financial details require donation read access. # Get Commitment Statistics Source: https://api-docs.helpyousponsor.com/api-reference/sponsorships/get-commitment-statistics get /admin/sponsorships/statistics Returns active and archived sponsorship relationship counts grouped by program for the authenticated admin's client. The sponsorship table uses these tenant-scoped counts to populate its summary views. # Get commitments for a specific donor Source: https://api-docs.helpyousponsor.com/api-reference/sponsorships/get-commitments-for-a-specific-donor get /admin/donor/{id}/sponsorships Returns sponsorships data # Get Commitments Table Headers Source: https://api-docs.helpyousponsor.com/api-reference/sponsorships/get-commitments-table-headers post /admin/sponsorships/{program_id}/headers Retrieves data for the sponsored table based on the given program ID, client ID, and filter. # Get donor sponsorship management options Source: https://api-docs.helpyousponsor.com/api-reference/sponsorships/get-donor-sponsorship-management-options get /frontend/donor/dashboard/sponsorships/{client_id}/{program_id}/{session_id}/{donor_entity_id} Returns current financial state, effective management mode, available frequencies/date window and action-specific blockers. Requires exactly one matching donor-owned type1 commitment and visible payment details; unsupported relationships return422. Online writes require direct/approval program mode and workspace rollout. A pending request blocks additional changes. Provider subscriptions, nonbilling/zero/nonrecurring commitments, expired schedules or processing payments require staff help; cancellation also requires active donor_cancelled reason with no notes. Schedule changes also block due/past-due/retry payments. Uses a logged-in donor session for this organization and a valid portal program/global context; the session TTL refreshes to one hour. Only that donor’s relationships or requests can be accessed. # Get sponsorship lifecycle reasons Source: https://api-docs.helpyousponsor.com/api-reference/sponsorships/get-sponsorship-lifecycle-reasons get /admin/sponsorships/lifecycle/options Returns active workspace reason choices and policies, falling back to starter config when a context is not materialized. Only reassigned is supported for moves. # List commitment-export jobs currently queued or processing Source: https://api-docs.helpyousponsor.com/api-reference/sponsorships/list-commitment-export-jobs-currently-queued-or-processing get /admin/sponsorships/exports/active Sponsorship-export counterpart to `activeDonorExports`. Returns up to 10 sponsorship-export `Upload` rows from the last 24 hours whose status is `queued` or `processing`, enriched with `PdfRenderService::queuedUploadStatus`. Requires permission: `manage_programs` or `donors_view`. # List donor sponsorship approval requests Source: https://api-docs.helpyousponsor.com/api-reference/sponsorships/list-donor-sponsorship-approval-requests get /admin/sponsorship-change-requests Lists pending requests oldest first, or all statuses newest first, with a fixed page limit of100. The cursor encodes the current ordering position; malformed cursors fail validation. Eligibility is evaluated on opening/approval, so list rows do not include can_approve. Requests are scoped to this organization and programs accessible to the reviewer. Snapshot financial details require donation read access. # List donor sponsorship change requests Source: https://api-docs.helpyousponsor.com/api-reference/sponsorships/list-donor-sponsorship-change-requests get /frontend/donor/dashboard/sponsorship-requests/{client_id}/{program_id}/{session_id} Returns at most fifty latest requests across this organization’s programs, newest ID first. Payment snapshots/currency/behavior are null where portal payment visibility is disabled. Request status remains durable history. Uses a logged-in donor session for this organization and a valid portal program/global context; the session TTL refreshes to one hour. Only that donor’s relationships or requests can be accessed. # List eligible replacement recipients Source: https://api-docs.helpyousponsor.com/api-reference/sponsorships/list-eligible-replacement-recipients get /admin/sponsorships/{donor_entity_id}/reassignment-options Searches active visible recipients other than the current target and other active relationships of this donor. Only accessible programs are included. Current program is ordered first, then newest creation/ID, with public featured fields and newest profile thumbnail. # List every commitment for the active client Source: https://api-docs.helpyousponsor.com/api-reference/sponsorships/list-every-commitment-for-the-active-client get /admin/all_sponsorships Returns every `DonorEntity` row for the calling admin's client, augmented with display names for the entity (via `Donor::getEntityName`) and the donor (via `Entity::getDonorName`). Currently scoped via the legacy session `client_id` rather than the bearer token, so callers must have an active admin session even though the route is also bearer-protected. Mirrored at `/admin/all_sponsorships` on both v1/admin and the legacy api.php. Requires permission: `manage_programs`. # List lifecycle reason standards Source: https://api-docs.helpyousponsor.com/api-reference/sponsorships/list-lifecycle-reason-standards get /admin/lifecycle-reason-sets Returns all three reason contexts including inactive reasons. Unmaterialized contexts expose their configured starter reasons with null IDs and version zero; this read does not create catalog rows. can_manage reflects the current role. Requires the workspace lifecycle feature. Mutation permission is lifecycle_reasons_manage or manage_settings. # List recipient funding allocated from a gift Source: https://api-docs.helpyousponsor.com/api-reference/sponsorships/list-recipient-funding-allocated-from-a-gift get /admin/donations/{donation_id}/funding Requires bearer or API-key authentication, current organization scope and access to every selected recipient program. Gift/funding administration also follows the donations/reports permission policy. Returns rows in ID order filtered to recipient programs the caller can access. available is the remaining allocatable retained gift value; amount is the original gift amount. Reversed/released rows remain in history and have zero effective amount. # List recipients eligible for gift funding Source: https://api-docs.helpyousponsor.com/api-reference/sponsorships/list-recipients-eligible-for-gift-funding get /admin/recipient-funding/recipients Requires bearer or API-key authentication, current organization scope and access to every selected recipient program. Gift/funding administration also follows the donations/reports permission policy. Returns active recipients from supported recipient programs with current coverage and sponsor names. unsponsored_only excludes existing live sponsor relationships. The limit is applied before the name search, so filtering can return fewer matches than the requested limit. Legacy programs with no explicit type remain eligible. # List sponsorship lifecycle history Source: https://api-docs.helpyousponsor.com/api-reference/sponsorships/list-sponsorship-lifecycle-history get /admin/sponsorships/lifecycle/events Lists append-only events newest effective_at then ID first. Both old and new programs must be accessible; null program IDs remain included. Names may resolve from archived donors/recipients. Delivery state reflects Journey processing. # Load legacy commitment table metadata Source: https://api-docs.helpyousponsor.com/api-reference/sponsorships/load-legacy-commitment-table-metadata post /admin/show_all_sponsorships Returns legacy sponsorship-table bootstrap metadata, not sponsorship rows. The payload contains the selected program marker, archive state, counts for a specific permitted program, and a sponsorship-table marker. With program_id=all, it returns the literal all marker and empty counts. Requires permission: manage_programs. # Poll a single commitment-export job Source: https://api-docs.helpyousponsor.com/api-reference/sponsorships/poll-a-single-commitment-export-job get /admin/sponsorships/exports/{uploadId}/status Sponsorship-export counterpart to `donorExportStatus`. Returns the current state of one sponsorship-export `Upload` (scoped to the caller's client, 404 otherwise). Requires permission: `manage_programs` or `donors_view`. # Post Commitments Next Source: https://api-docs.helpyousponsor.com/api-reference/sponsorships/post-commitments-next post /admin/sponsorships/donor Returns donor details, program details, and other related information # Preview a sponsorship recipient reassignment Source: https://api-docs.helpyousponsor.com/api-reference/sponsorships/preview-a-sponsorship-recipient-reassignment post /admin/sponsorships/{donor_entity_id}/reassignment-preview Validates active source/target, target visibility and basic capacity status, plus duplicate donor/recipient relationships. Returns current payment continuity and effective time. The compatibility target_entity_id alias can supply entity_id and omit transition_type; it still needs expected_version for success. expected_version must match; write rechecks detailed capacity and donor state under locks. # Preview allocation of a received gift to recipients Source: https://api-docs.helpyousponsor.com/api-reference/sponsorships/preview-allocation-of-a-received-gift-to-recipients post /admin/donations/{donation_id}/funding/preview Requires bearer or API-key authentication, current organization scope and access to every selected recipient program. Gift/funding administration also follows the donations/reports permission policy. Only qualified received gifts with retained money in the organization currency can fund recipients. Campaign, peer-to-peer and trip records are excluded. Money-need programs derive whole monthly periods, retain any unused remainder and allow partial first-month coverage; slot programs require an explicit coverage end. Reads without writing funding rows. Planning problems are returned in a successful 200 response; invalid input or ineligible recipient-program types return 422. No revenue, payment method or commitment is created. # Preview available fixed sponsorship levels Source: https://api-docs.helpyousponsor.com/api-reference/sponsorships/preview-available-fixed-sponsorship-levels post /admin/sponsorship-amount-preview Uses supplied configuration only; no program or recipient is changed. Filters configured positive amounts by current funded percentage and remaining capacity. An amount remains available only below its configured threshold (default100); exceeding remaining target requires allow_sponsorship_over_target. funded_percent is rounded to two decimals and can exceed100. # Queue a CSV export of commitments (async) Source: https://api-docs.helpyousponsor.com/api-reference/sponsorships/queue-a-csv-export-of-commitments-async get /admin/sponsorships/{program_id}/export Legacy query-string variant. Prefer POST for wide exports so `column_order` and `column_labels` do not exceed URL length limits. Reserves an `Upload` row to back the export, marks it `queued`, then dispatches `ExportSponsorshipsJob`. Returns 200 immediately with the upload id and a `status_url` to poll. The `program_id` may be the literal string `all` to export every sponsorship across the caller's client (file stem becomes `all-sponsorships-export`). Any extra query parameters (filters, column overrides) are forwarded to the job verbatim. Requires permission: `programs_view`, `manage_programs`, or `program-all`. # Queue a CSV export of commitments (async) Source: https://api-docs.helpyousponsor.com/api-reference/sponsorships/queue-a-csv-export-of-commitments-async-1 post /admin/sponsorships/{program_id}/export Preferred export endpoint for wide sponsorship worksheets. Accepts filters, `column_order`, and `column_labels` in a JSON request body, reserves an `Upload` row, marks it `queued`, and dispatches `ExportSponsorshipsJob`. Labels only rename columns already present in validated `column_order`; they cannot add columns. Requires permission: `programs_view`, `manage_programs`, or `program-all`. # Read a recipient funding history and current coverage Source: https://api-docs.helpyousponsor.com/api-reference/sponsorships/read-a-recipient-funding-history-and-current-coverage get /admin/program/entities/{id}/funding Requires bearer or API-key authentication, organization scope and current recipient program access. Includes archived recipients. Returns all row history ordered by coverage end descending, the current/upcoming coverage summary and configured monetary or slot need. Staff funder names are returned alongside their anonymous display preference; that preference controls recipient-facing presentation. # Reassign a sponsorship recipient Source: https://api-docs.helpyousponsor.com/api-reference/sponsorships/reassign-a-sponsorship-recipient post /admin/sponsorships/{donor_entity_id}/reassign Moves the donor relationship and linked type1 commitments to a visible available recipient, including another accessible program. Preserves payment amounts/frequency/method/billing anchors; updates designation/funding and recipient availability. Locks block concurrent billing and recheck donor, target capacity and duplicates. The reasoned contract uses expected version plus UUID retry fingerprint; an identical retry returns replayed=true. Presence of target_entity_id selects older controls semantics: entity_id defaults from it, reason/notes/effective-time/version/retry inputs are ignored and a compact sponsorship result is returned. Controls mode requires lifecycle controls and can reject missing reasons when reason selection is required. # Reject a donor sponsorship change request Source: https://api-docs.helpyousponsor.com/api-reference/sponsorships/reject-a-donor-sponsorship-change-request post /admin/sponsorship-change-requests/{request_id}/reject Resolves a pending request as rejected and clears its pending hold. Trims review_note to null if blank; the sponsorship/payment schedule are preserved. Requests are scoped to this organization and programs accessible to the reviewer. Snapshot financial details require donation read access. # Reorder a lifecycle reason catalog Source: https://api-docs.helpyousponsor.com/api-reference/sponsorships/reorder-a-lifecycle-reason-catalog post /admin/lifecycle-reason-sets/{reason_set_id}/reorder Requires every reason in this context exactly once, including inactive reasons. Saves zero-based order and advances the catalog version. Requires the workspace lifecycle feature. Mutation permission is lifecycle_reasons_manage or manage_settings. # Restore one archived sponsorship Source: https://api-docs.helpyousponsor.com/api-reference/sponsorships/restore-one-archived-sponsorship post /admin/sponsorships/{donor_entity_id}/restore Restores one archived donor-to-recipient sponsorship for the authenticated admin's client, restores its commitment schedule, resets failed-payment retries, recalculates recipient sponsorship status, and refreshes table caches. The donor and recipient must both still be active. Requires permission: `manage_programs` and is gated by the `disable_sponsorship_restore` client restriction. # Restore selected archived sponsorships Source: https://api-docs.helpyousponsor.com/api-reference/sponsorships/restore-selected-archived-sponsorships post /admin/sponsorships/restore Restores archived sponsorships selected from the authenticated admin's sponsorship table, including selections spanning every filtered result. Each restored commitment has failed-payment retries reset; a supplied next action date updates its schedule, while omission preserves its existing date. Requires permission: `manage_programs` and is gated by the `disable_sponsorship_restore` client restriction. # Reverse a recipient funding allocation Source: https://api-docs.helpyousponsor.com/api-reference/sponsorships/reverse-a-recipient-funding-allocation post /admin/recipient-funding/{funding_id}/reverse Requires bearer or API-key authentication, current organization scope and access to every selected recipient program. Gift/funding administration also follows the donations/reports permission policy. Marks the row reversed and retains its history. Repeating reversal is safe. Removes its effective coverage/allocation so retained gift money is available again; does not reverse or refund the underlying donation. # Review a donor sponsorship change Source: https://api-docs.helpyousponsor.com/api-reference/sponsorships/review-a-donor-sponsorship-change post /frontend/donor/dashboard/sponsorships/{client_id}/{program_id}/{session_id}/{donor_entity_id}/preview Creates a ten-minute, session-bound one-time review without writing the payment schedule. Only the documented properties are accepted. Change preserves the monthly-equivalent contribution and re-expresses a per-period amount for the selected frequency; cancellation preserves historical payments/paid coverage. The review explains direct application or approval consequences. Online writes require direct/approval program mode and workspace rollout. A pending request blocks additional changes. Provider subscriptions, nonbilling/zero/nonrecurring commitments, expired schedules or processing payments require staff help; cancellation also requires active donor_cancelled reason with no notes. Schedule changes also block due/past-due/retry payments. Uses a logged-in donor session for this organization and a valid portal program/global context; the session TTL refreshes to one hour. Only that donor’s relationships or requests can be accessed. # Review bulk commitment changes Source: https://api-docs.helpyousponsor.com/api-reference/sponsorships/review-bulk-commitment-changes post /admin/commitments/preview Resolves explicit, all-program/filtered or complete failed-operation sponsorship selections and projects financial outcomes. Every relationship must have a matching active donor, recipient, commitment and any nonzero program in this organization; inaccessible owned programs fail403. selected_rows is limited to100; all_total/failed_operation can span the full selection and return grouped outcomes with items empty. No commitment is changed or charged. Apply through PATCH /admin/commitments using the returned ten-minute token and identical selection/values. # Saved commitment-listing reports for the rule editor Source: https://api-docs.helpyousponsor.com/api-reference/sponsorships/saved-commitment-listing-reports-for-the-rule-editor get /admin/fields/options/sponsorships Returns the `Report` rows for the caller's client that are flagged `sponsorships=1` — i.e. saved column/filter sets that scope the sponsorships listing UI. Used to populate the saved-view picker on the sponsorship-management screens. Requires permission: `manage_programs`. # Set lifecycle reason selection policy Source: https://api-docs.helpyousponsor.com/api-reference/sponsorships/set-lifecycle-reason-selection-policy patch /admin/lifecycle-reason-sets/{reason_set_id} Updates the materialized context policy. Making selection required needs at least one active reason; unchanged policy retains the version. Requires the workspace lifecycle feature. Mutation permission is lifecycle_reasons_manage or manage_settings. # Shorten a recipient funding period Source: https://api-docs.helpyousponsor.com/api-reference/sponsorships/shorten-a-recipient-funding-period post /admin/recipient-funding/{funding_id}/end Requires bearer or API-key authentication, current organization scope and access to every selected recipient program. Gift/funding administration also follows the donations/reports permission policy. The row must have status funded. ended_on must fall inclusively between its current start and end. Keeps history and the original recorded amount; the effective allocation can decrease to the cost through the new end. Updates activity and coverage after commit; does not refund the gift. # Show All Sponsorships Source: https://api-docs.helpyousponsor.com/api-reference/sponsorships/show-all-sponsorships get /admin/sponsorships/program/{program_id} Shows all sponsorships for a given program ID, * with various filtering, sorting, and pagination options. # Summarize sponsorship lifecycle history Source: https://api-docs.helpyousponsor.com/api-reference/sponsorships/summarize-sponsorship-lifecycle-history get /admin/sponsorships/lifecycle/summary Uses the same accessible event selection as the history list. Recipient totals count distinct entity_id falling back to from_entity_id, donor totals count distinct donor_id; historical and current program filters match either side. # Update a lifecycle reason Source: https://api-docs.helpyousponsor.com/api-reference/sponsorships/update-a-lifecycle-reason patch /admin/lifecycle-reasons/{reason_id} Changes only supplied properties and preserves the stable code and historical event snapshots. The last active reason cannot be deactivated while selection is required. Actual changes advance the set version; no-op edits retain it. Requires the workspace lifecycle feature. Mutation permission is lifecycle_reasons_manage or manage_settings. # Withdraw a pending sponsorship request Source: https://api-docs.helpyousponsor.com/api-reference/sponsorships/withdraw-a-pending-sponsorship-request post /frontend/donor/dashboard/sponsorship-requests/{client_id}/{program_id}/{session_id}/{request_id}/withdraw Only the donor’s still-pending request can be withdrawn. The request resolves as withdrawn and the pending hold clears; the sponsorship and payment schedule are preserved. Request body must contain no properties. Uses a logged-in donor session for this organization and a valid portal program/global context; the session TTL refreshes to one hour. Only that donor’s relationships or requests can be accessed. # Change multiple workspace tasks Source: https://api-docs.helpyousponsor.com/api-reference/tasks/change-multiple-workspace-tasks post /admin/tasks/bulk Tasks are scoped to the authenticated organization and accessible related records. Managing task content, deletion or reassignment requires task management access; completion may also be allowed for the assigned staff member. Expected version or updated timestamp protects changes from stale data and returns 422 on conflict. CSV and calendar exports use the same visibility and filter rules; calendar exports include only dated tasks. # Check collaboration upload readiness Source: https://api-docs.helpyousponsor.com/api-reference/tasks/check-collaboration-upload-readiness get /admin/collaboration/attachment-uploads/readiness Collaboration is feature-gated and scoped to accessible task, donor, recipient, sponsorship or space_page records in the organization. Archived subjects are read-only409; Support Sessions cannot write. Editing comments requires authorship; pinning requires management access. Revisions and request UUIDs protect concurrent edits. Downloads require a safe scan and existing stored bytes. # Clear the last task workspace view Source: https://api-docs.helpyousponsor.com/api-reference/tasks/clear-the-last-task-workspace-view delete /admin/view-state/tasks Preferences belong to the current staff member and require task-view access. Persistence is unavailable in Support Sessions and returns 409. Last-view persistence strips transient search; an interaction UUID makes retries safe but cannot be reused for a different definition. # Complete a workspace task Source: https://api-docs.helpyousponsor.com/api-reference/tasks/complete-a-workspace-task post /admin/tasks/{task}/complete Tasks are scoped to the authenticated organization and accessible related records. Managing task content, deletion or reassignment requires task management access; completion may also be allowed for the assigned staff member. Expected version or updated timestamp protects changes from stale data and returns 422 on conflict. CSV and calendar exports use the same visibility and filter rules; calendar exports include only dated tasks. # Create a named task view Source: https://api-docs.helpyousponsor.com/api-reference/tasks/create-a-named-task-view post /admin/saved-views/tasks Named task views are private to the current staff member and gated by tasks_saved_views. Support Sessions cannot persist views. Updates require the previously loaded lock version and return 409 with current_lock_version when another edit intervened. # Create a record comment Source: https://api-docs.helpyousponsor.com/api-reference/tasks/create-a-record-comment post /admin/collaboration/{subjectType}/{subjectId}/comments Collaboration is feature-gated and scoped to accessible task, donor, recipient, sponsorship or space_page records in the organization. Archived subjects are read-only409; Support Sessions cannot write. Editing comments requires authorship; pinning requires management access. Revisions and request UUIDs protect concurrent edits. Downloads require a safe scan and existing stored bytes. # Create a workspace task Source: https://api-docs.helpyousponsor.com/api-reference/tasks/create-a-workspace-task post /admin/tasks Tasks are scoped to the authenticated organization and accessible related records. Managing task content, deletion or reassignment requires task management access; completion may also be allowed for the assigned staff member. Expected version or updated timestamp protects changes from stale data and returns 422 on conflict. CSV and calendar exports use the same visibility and filter rules; calendar exports include only dated tasks. # Delete a collaboration attachment Source: https://api-docs.helpyousponsor.com/api-reference/tasks/delete-a-collaboration-attachment delete /admin/collaboration/{subjectType}/{subjectId}/attachments/{attachmentId} Collaboration is feature-gated and scoped to accessible task, donor, recipient, sponsorship or space_page records in the organization. Archived subjects are read-only409; Support Sessions cannot write. Editing comments requires authorship; pinning requires management access. Revisions and request UUIDs protect concurrent edits. Downloads require a safe scan and existing stored bytes. # Delete a named task view Source: https://api-docs.helpyousponsor.com/api-reference/tasks/delete-a-named-task-view delete /admin/saved-views/tasks/{savedView} Named task views are private to the current staff member and gated by tasks_saved_views. Support Sessions cannot persist views. Updates require the previously loaded lock version and return 409 with current_lock_version when another edit intervened. # Delete a record comment Source: https://api-docs.helpyousponsor.com/api-reference/tasks/delete-a-record-comment delete /admin/collaboration/{subjectType}/{subjectId}/comments/{commentId} Collaboration is feature-gated and scoped to accessible task, donor, recipient, sponsorship or space_page records in the organization. Archived subjects are read-only409; Support Sessions cannot write. Editing comments requires authorship; pinning requires management access. Revisions and request UUIDs protect concurrent edits. Downloads require a safe scan and existing stored bytes. # Delete a staged task attachment Source: https://api-docs.helpyousponsor.com/api-reference/tasks/delete-a-staged-task-attachment delete /admin/collaboration/attachment-uploads/{attachmentId} Collaboration is feature-gated and scoped to accessible task, donor, recipient, sponsorship or space_page records in the organization. Archived subjects are read-only409; Support Sessions cannot write. Editing comments requires authorship; pinning requires management access. Revisions and request UUIDs protect concurrent edits. Downloads require a safe scan and existing stored bytes. # Delete a workspace task Source: https://api-docs.helpyousponsor.com/api-reference/tasks/delete-a-workspace-task delete /admin/tasks/{task} Tasks are scoped to the authenticated organization and accessible related records. Managing task content, deletion or reassignment requires task management access; completion may also be allowed for the assigned staff member. Expected version or updated timestamp protects changes from stale data and returns 422 on conflict. CSV and calendar exports use the same visibility and filter rules; calendar exports include only dated tasks. # Download a scanned collaboration attachment Source: https://api-docs.helpyousponsor.com/api-reference/tasks/download-a-scanned-collaboration-attachment get /admin/collaboration/{subjectType}/{subjectId}/attachments/{attachmentId}/download Collaboration is feature-gated and scoped to accessible task, donor, recipient, sponsorship or space_page records in the organization. Archived subjects are read-only409; Support Sessions cannot write. Editing comments requires authorship; pinning requires management access. Revisions and request UUIDs protect concurrent edits. Downloads require a safe scan and existing stored bytes. # Edit a record comment Source: https://api-docs.helpyousponsor.com/api-reference/tasks/edit-a-record-comment patch /admin/collaboration/{subjectType}/{subjectId}/comments/{commentId} Collaboration is feature-gated and scoped to accessible task, donor, recipient, sponsorship or space_page records in the organization. Archived subjects are read-only409; Support Sessions cannot write. Editing comments requires authorship; pinning requires management access. Revisions and request UUIDs protect concurrent edits. Downloads require a safe scan and existing stored bytes. # Export workspace tasks to a calendar Source: https://api-docs.helpyousponsor.com/api-reference/tasks/export-workspace-tasks-to-a-calendar get /admin/tasks/exports/calendar Tasks are scoped to the authenticated organization and accessible related records. Managing task content, deletion or reassignment requires task management access; completion may also be allowed for the assigned staff member. Expected version or updated timestamp protects changes from stale data and returns 422 on conflict. CSV and calendar exports use the same visibility and filter rules; calendar exports include only dated tasks. # Export workspace tasks to CSV Source: https://api-docs.helpyousponsor.com/api-reference/tasks/export-workspace-tasks-to-csv get /admin/tasks/exports/csv Tasks are scoped to the authenticated organization and accessible related records. Managing task content, deletion or reassignment requires task management access; completion may also be allowed for the assigned staff member. Expected version or updated timestamp protects changes from stale data and returns 422 on conflict. CSV and calendar exports use the same visibility and filter rules; calendar exports include only dated tasks. # Find task assignees Source: https://api-docs.helpyousponsor.com/api-reference/tasks/find-task-assignees get /admin/tasks/assignees Tasks are scoped to the authenticated organization and accessible related records. Managing task content, deletion or reassignment requires task management access; completion may also be allowed for the assigned staff member. Expected version or updated timestamp protects changes from stale data and returns 422 on conflict. CSV and calendar exports use the same visibility and filter rules; calendar exports include only dated tasks. # Find teammates to mention Source: https://api-docs.helpyousponsor.com/api-reference/tasks/find-teammates-to-mention get /admin/collaboration/{subjectType}/{subjectId}/mention-candidates Collaboration is feature-gated and scoped to accessible task, donor, recipient, sponsorship or space_page records in the organization. Archived subjects are read-only409; Support Sessions cannot write. Editing comments requires authorship; pinning requires management access. Revisions and request UUIDs protect concurrent edits. Downloads require a safe scan and existing stored bytes. # Get a workspace task Source: https://api-docs.helpyousponsor.com/api-reference/tasks/get-a-workspace-task get /admin/tasks/{task} Tasks are scoped to the authenticated organization and accessible related records. Managing task content, deletion or reassignment requires task management access; completion may also be allowed for the assigned staff member. Expected version or updated timestamp protects changes from stale data and returns 422 on conflict. CSV and calendar exports use the same visibility and filter rules; calendar exports include only dated tasks. # Import named task views Source: https://api-docs.helpyousponsor.com/api-reference/tasks/import-named-task-views post /admin/saved-views/tasks/import Named task views are private to the current staff member and gated by tasks_saved_views. Support Sessions cannot persist views. Updates require the previously loaded lock version and return 409 with current_lock_version when another edit intervened. # List workspace tasks Source: https://api-docs.helpyousponsor.com/api-reference/tasks/list-workspace-tasks get /admin/tasks Tasks are scoped to the authenticated organization and accessible related records. Managing task content, deletion or reassignment requires task management access; completion may also be allowed for the assigned staff member. Expected version or updated timestamp protects changes from stale data and returns 422 on conflict. CSV and calendar exports use the same visibility and filter rules; calendar exports include only dated tasks. # Load task workspace view state Source: https://api-docs.helpyousponsor.com/api-reference/tasks/load-task-workspace-view-state get /admin/view-state/tasks Preferences belong to the current staff member and require task-view access. Persistence is unavailable in Support Sessions and returns 409. Last-view persistence strips transient search; an interaction UUID makes retries safe but cannot be reused for a different definition. # Pin a record comment Source: https://api-docs.helpyousponsor.com/api-reference/tasks/pin-a-record-comment put /admin/collaboration/{subjectType}/{subjectId}/comments/{commentId}/pin Collaboration is feature-gated and scoped to accessible task, donor, recipient, sponsorship or space_page records in the organization. Archived subjects are read-only409; Support Sessions cannot write. Editing comments requires authorship; pinning requires management access. Revisions and request UUIDs protect concurrent edits. Downloads require a safe scan and existing stored bytes. # Read a record collaboration thread Source: https://api-docs.helpyousponsor.com/api-reference/tasks/read-a-record-collaboration-thread get /admin/collaboration/{subjectType}/{subjectId} Collaboration is feature-gated and scoped to accessible task, donor, recipient, sponsorship or space_page records in the organization. Archived subjects are read-only409; Support Sessions cannot write. Editing comments requires authorship; pinning requires management access. Revisions and request UUIDs protect concurrent edits. Downloads require a safe scan and existing stored bytes. # Reopen a workspace task Source: https://api-docs.helpyousponsor.com/api-reference/tasks/reopen-a-workspace-task post /admin/tasks/{task}/reopen Tasks are scoped to the authenticated organization and accessible related records. Managing task content, deletion or reassignment requires task management access; completion may also be allowed for the assigned staff member. Expected version or updated timestamp protects changes from stale data and returns 422 on conflict. CSV and calendar exports use the same visibility and filter rules; calendar exports include only dated tasks. # Restore a deleted workspace task Source: https://api-docs.helpyousponsor.com/api-reference/tasks/restore-a-deleted-workspace-task post /admin/tasks/{task_id}/restore Tasks are scoped to the authenticated organization and accessible related records. Managing task content, deletion or reassignment requires task management access; completion may also be allowed for the assigned staff member. Expected version or updated timestamp protects changes from stale data and returns 422 on conflict. CSV and calendar exports use the same visibility and filter rules; calendar exports include only dated tasks. # Retry scanning a collaboration attachment Source: https://api-docs.helpyousponsor.com/api-reference/tasks/retry-scanning-a-collaboration-attachment post /admin/collaboration/{subjectType}/{subjectId}/attachments/{attachmentId}/retry-scan Collaboration is feature-gated and scoped to accessible task, donor, recipient, sponsorship or space_page records in the organization. Archived subjects are read-only409; Support Sessions cannot write. Editing comments requires authorship; pinning requires management access. Revisions and request UUIDs protect concurrent edits. Downloads require a safe scan and existing stored bytes. # Save the last task workspace view Source: https://api-docs.helpyousponsor.com/api-reference/tasks/save-the-last-task-workspace-view put /admin/view-state/tasks Preferences belong to the current staff member and require task-view access. Persistence is unavailable in Support Sessions and returns 409. Last-view persistence strips transient search; an interaction UUID makes retries safe but cannot be reused for a different definition. # Search related workspace records Source: https://api-docs.helpyousponsor.com/api-reference/tasks/search-related-workspace-records get /admin/tasks/records/search Tasks are scoped to the authenticated organization and accessible related records. Managing task content, deletion or reassignment requires task management access; completion may also be allowed for the assigned staff member. Expected version or updated timestamp protects changes from stale data and returns 422 on conflict. CSV and calendar exports use the same visibility and filter rules; calendar exports include only dated tasks. # Search related workspace records Source: https://api-docs.helpyousponsor.com/api-reference/tasks/search-related-workspace-records-1 get /admin/tasks/related/search Tasks are scoped to the authenticated organization and accessible related records. Managing task content, deletion or reassignment requires task management access; completion may also be allowed for the assigned staff member. Expected version or updated timestamp protects changes from stale data and returns 422 on conflict. CSV and calendar exports use the same visibility and filter rules; calendar exports include only dated tasks. # Stage an attachment for a new task Source: https://api-docs.helpyousponsor.com/api-reference/tasks/stage-an-attachment-for-a-new-task post /admin/collaboration/attachment-uploads Collaboration is feature-gated and scoped to accessible task, donor, recipient, sponsorship or space_page records in the organization. Archived subjects are read-only409; Support Sessions cannot write. Editing comments requires authorship; pinning requires management access. Revisions and request UUIDs protect concurrent edits. Downloads require a safe scan and existing stored bytes. # Unpin a record comment Source: https://api-docs.helpyousponsor.com/api-reference/tasks/unpin-a-record-comment delete /admin/collaboration/{subjectType}/{subjectId}/comments/{commentId}/pin Collaboration is feature-gated and scoped to accessible task, donor, recipient, sponsorship or space_page records in the organization. Archived subjects are read-only409; Support Sessions cannot write. Editing comments requires authorship; pinning requires management access. Revisions and request UUIDs protect concurrent edits. Downloads require a safe scan and existing stored bytes. # Update a named task view Source: https://api-docs.helpyousponsor.com/api-reference/tasks/update-a-named-task-view put /admin/saved-views/tasks/{savedView} Named task views are private to the current staff member and gated by tasks_saved_views. Support Sessions cannot persist views. Updates require the previously loaded lock version and return 409 with current_lock_version when another edit intervened. # Update a workspace task Source: https://api-docs.helpyousponsor.com/api-reference/tasks/update-a-workspace-task put /admin/tasks/{task} Tasks are scoped to the authenticated organization and accessible related records. Managing task content, deletion or reassignment requires task management access; completion may also be allowed for the assigned staff member. Expected version or updated timestamp protects changes from stale data and returns 422 on conflict. CSV and calendar exports use the same visibility and filter rules; calendar exports include only dated tasks. # Update a workspace task Source: https://api-docs.helpyousponsor.com/api-reference/tasks/update-a-workspace-task-1 patch /admin/tasks/{task} Tasks are scoped to the authenticated organization and accessible related records. Managing task content, deletion or reassignment requires task management access; completion may also be allowed for the assigned staff member. Expected version or updated timestamp protects changes from stale data and returns 422 on conflict. CSV and calendar exports use the same visibility and filter rules; calendar exports include only dated tasks. # Upload a record collaboration attachment Source: https://api-docs.helpyousponsor.com/api-reference/tasks/upload-a-record-collaboration-attachment post /admin/collaboration/{subjectType}/{subjectId}/attachments Collaboration is feature-gated and scoped to accessible task, donor, recipient, sponsorship or space_page records in the organization. Archived subjects are read-only409; Support Sessions cannot write. Editing comments requires authorship; pinning requires management access. Revisions and request UUIDs protect concurrent edits. Downloads require a safe scan and existing stored bytes. # Create a new Access role Source: https://api-docs.helpyousponsor.com/api-reference/team-&-access/create-a-new-access-role post /admin/groups # Delete an Access role by ID Source: https://api-docs.helpyousponsor.com/api-reference/team-&-access/delete-an-access-role-by-id delete /admin/groups/{group_id} # Edit a specific Access role Source: https://api-docs.helpyousponsor.com/api-reference/team-&-access/edit-a-specific-access-role put /admin/groups/{group_id} # Get an Access role by ID Source: https://api-docs.helpyousponsor.com/api-reference/team-&-access/get-an-access-role-by-id get /admin/groups/{group_id} # List a donors and programs Source: https://api-docs.helpyousponsor.com/api-reference/team-&-access/list-a-donors-and-programs get /admin/createGroup # View all Access roles Source: https://api-docs.helpyousponsor.com/api-reference/team-&-access/view-all-access-roles get /admin/groups # Add a participant to the trip Source: https://api-docs.helpyousponsor.com/api-reference/trips/add-a-participant-to-the-trip post /frontend/participant/trips/{client_id}/{trip_id}/leader/participants/{session_id} Creates a new `TripParticipant` (and the underlying donor + entity if needed) via `TripParticipantService::addParticipant`. Optionally syncs tags. Promoting the new participant to `leader` requires the leader to additionally hold `promote_leaders`. Requires `manage_participants`. Note: guardian fields are admin-side data; never echo them back on participant-facing endpoints. # Add a trip budget item Source: https://api-docs.helpyousponsor.com/api-reference/trips/add-a-trip-budget-item post /admin/trips/{tripId}/budget-items Reads or changes budget items under the organization-owned trip. Amount changes also synchronize the fundraising goal when sync_budget_to_goal is enabled. # Add a trip document Source: https://api-docs.helpyousponsor.com/api-reference/trips/add-a-trip-document post /admin/trips/{tripId}/documents Manages documents under the organization-owned trip. New uploads can use an existing upload_id or a stored upload_key and file_name pair; specific visibility is restricted to selected trip participants. Download records access and returns the resolved storage URL. # Add a trip participant Source: https://api-docs.helpyousponsor.com/api-reference/trips/add-a-trip-participant post /admin/trips/{tripId}/participants Uses the authenticated organization and the selected trip to resolve participants. Withdrawal changes status instead of deleting the record. Invitation sends are best effort and exclude sample trips; donor search respects donor-form access. # Apply a task template to a trip Source: https://api-docs.helpyousponsor.com/api-reference/trips/apply-a-task-template-to-a-trip post /admin/trips/{tripId}/apply-template/{templateId} Task templates belong to the authenticated organization. Applying a template requires a trip start date, offsets due dates from that date, creates tasks in template order and resolves dependencies from earlier template indexes. # Apply a task template to the trip Source: https://api-docs.helpyousponsor.com/api-reference/trips/apply-a-task-template-to-the-trip post /frontend/participant/trips/{client_id}/{trip_id}/leader/apply-template/{template_id}/{session_id} Instantiates the task template's tasks against this trip — `due_date_offset` resolves to a concrete date relative to `trip.start_date`, and `depends_on_index` resolves to the actual `trip_task_id` of the task created earlier in the loop. Requires `manage_task_templates`. Refuses with 422 if the trip has no `start_date`. # Approve a task completion Source: https://api-docs.helpyousponsor.com/api-reference/trips/approve-a-task-completion post /frontend/participant/trips/{client_id}/{trip_id}/leader/tasks/completions/{completion_id}/approve/{session_id} Marks a `TripTaskCompletion` as `approved` and stamps `approved_at`. Refuses with 400 if it is already approved. Optionally records `admin_notes`. Requires `approve_task_completions`. # Approve a trip task submission Source: https://api-docs.helpyousponsor.com/api-reference/trips/approve-a-trip-task-submission post /admin/trips/{tripId}/tasks/completions/{completionId}/approve Updates the completion status and administrator notes and invalidates trip analytics. Already approved submissions return 400 when approved again. # Archive a trip Source: https://api-docs.helpyousponsor.com/api-reference/trips/archive-a-trip post /admin/trips/{id}/archive Sets the organization-owned trip status to archived. # Audited download for a trip document Source: https://api-docs.helpyousponsor.com/api-reference/trips/audited-download-for-a-trip-document get /frontend/participant/trips/{client_id}/{trip_id}/documents/{document_id}/download/{session_id} Returns the S3 object URL for the requested trip document and writes a `trip_documents/download` ActivityLog entry. Honors the same per-participant visibility check as the list endpoint — documents the participant cannot see return 404 to avoid leaking existence. # Clone a trip Source: https://api-docs.helpyousponsor.com/api-reference/trips/clone-a-trip post /admin/trips/{id}/clone Creates a draft copy of a nonsample trip with a unique name. Optional switches control copying budgets, tasks, documents and settings, and whether copied task dates shift with the new start date. Trip creation entitlement applies. # Create a budget line item Source: https://api-docs.helpyousponsor.com/api-reference/trips/create-a-budget-line-item post /frontend/participant/trips/{client_id}/{trip_id}/leader/budget-items/{session_id} Adds a `TripBudgetItem`. If the trip's `sync_budget_to_goal` setting is on, the trip's `fundraising_goal` is updated to match the new budget total. Requires `manage_budget`. # Create a fundraising milestone Source: https://api-docs.helpyousponsor.com/api-reference/trips/create-a-fundraising-milestone post /frontend/participant/trips/{client_id}/{trip_id}/leader/milestones/{session_id} Creates a `TripFundraisingMilestone`. At least one of `target_amount` or `target_percent` is required (returns 422 otherwise). Requires `manage_trip`. # Create a sample trip Source: https://api-docs.helpyousponsor.com/api-reference/trips/create-a-sample-trip post /admin/trips/sample Creates a seeded demonstration trip with supporting records. This is available only when sample trip creation is enabled; sample trips do not count toward the creation allowance. # Create a task template Source: https://api-docs.helpyousponsor.com/api-reference/trips/create-a-task-template post /frontend/participant/trips/{client_id}/{trip_id}/leader/task-templates/{session_id} Saves a reusable client-level `TripTaskTemplate`. The `tasks` array stores task definitions in template form (no trip_id, no concrete due_date — they use `due_date_offset` and `depends_on_index` instead). Requires `manage_task_templates`. # Create a trip Source: https://api-docs.helpyousponsor.com/api-reference/trips/create-a-trip post /admin/trips Creates or edits a trip within the authenticated organization. Name and slug must be unique within the organization; end_date must not precede start_date. Creating a trip also creates its fund entity and required program/form bindings; updating settings may update the shared Trip Participants program. # Create a trip fundraising milestone Source: https://api-docs.helpyousponsor.com/api-reference/trips/create-a-trip-fundraising-milestone post /admin/trips/{tripId}/milestones Milestones compare trip fundraising progress with an amount or a percentage of the trip goal. At least one target must be nonzero after saving; update validates that condition after persisting the submitted values. # Create a trip task Source: https://api-docs.helpyousponsor.com/api-reference/trips/create-a-trip-task post /admin/trips/{tripId}/tasks Manages tasks within the organization-owned trip. New tasks inherit reminder defaults when neither reminder input is supplied. Updating a task replaces dependency selections and normalized target tags; omitted dependencies or target tags are cleared. A task with dependents cannot be deleted. # Create a trip task Source: https://api-docs.helpyousponsor.com/api-reference/trips/create-a-trip-task-1 post /frontend/participant/trips/{client_id}/{trip_id}/leader/tasks/{session_id} Creates a `TripTask`. If neither `reminders` nor `reminder_days_before` is sent, a default reminder schedule is generated from the trip's `task_reminder_days` setting. Targeting is controlled via `target_role`, `target_minors_only`, `target_guardians_only`, and tag include/exclude lists. Requires `manage_tasks`. # Create a trip task template Source: https://api-docs.helpyousponsor.com/api-reference/trips/create-a-trip-task-template post /admin/trip-task-templates Task templates belong to the authenticated organization. Applying a template requires a trip start date, offsets due dates from that date, creates tasks in template order and resolves dependencies from earlier template indexes. # Create an embedded signature template draft Source: https://api-docs.helpyousponsor.com/api-reference/trips/create-an-embedded-signature-template-draft post /admin/trips/{tripId}/esignatures/templates/embedded-draft Uses Dropbox Sign for the organization-owned trip; provider actions exclude sample trips. Minor signers may require guardian contact details. Setup failures return 409 and temporary provider failures return 503. Creating a template draft adds it to this trip; deleting a template removes it from required templates across organization trips. # Delete a budget line item Source: https://api-docs.helpyousponsor.com/api-reference/trips/delete-a-budget-line-item delete /frontend/participant/trips/{client_id}/{trip_id}/leader/budget-items/{item_id}/{session_id} Permanently deletes a budget item. Re-syncs `fundraising_goal` if `sync_budget_to_goal` is on. Requires `manage_budget`. # Delete a fundraising milestone Source: https://api-docs.helpyousponsor.com/api-reference/trips/delete-a-fundraising-milestone delete /frontend/participant/trips/{client_id}/{trip_id}/leader/milestones/{id}/{session_id} Permanently deletes a milestone. Requires `manage_trip`. # Delete a signature template Source: https://api-docs.helpyousponsor.com/api-reference/trips/delete-a-signature-template delete /admin/trips/{tripId}/esignatures/templates/{templateId} Uses Dropbox Sign for the organization-owned trip; provider actions exclude sample trips. Minor signers may require guardian contact details. Setup failures return 409 and temporary provider failures return 503. Creating a template draft adds it to this trip; deleting a template removes it from required templates across organization trips. # Delete a task template Source: https://api-docs.helpyousponsor.com/api-reference/trips/delete-a-task-template delete /frontend/participant/trips/{client_id}/{trip_id}/leader/task-templates/{template_id}/{session_id} Permanently deletes a task template. Existing trip tasks created from the template are unaffected. Requires `manage_task_templates`. # Delete a trip Source: https://api-docs.helpyousponsor.com/api-reference/trips/delete-a-trip delete /admin/trips/{id} Soft-deletes the organization-owned trip. # Delete a trip budget item Source: https://api-docs.helpyousponsor.com/api-reference/trips/delete-a-trip-budget-item delete /admin/trips/{tripId}/budget-items/{id} Reads or changes budget items under the organization-owned trip. Amount changes also synchronize the fundraising goal when sync_budget_to_goal is enabled. # Delete a trip document Source: https://api-docs.helpyousponsor.com/api-reference/trips/delete-a-trip-document delete /admin/trips/{tripId}/documents/{id} Manages documents under the organization-owned trip. New uploads can use an existing upload_id or a stored upload_key and file_name pair; specific visibility is restricted to selected trip participants. Download records access and returns the resolved storage URL. # Delete a trip fundraising milestone Source: https://api-docs.helpyousponsor.com/api-reference/trips/delete-a-trip-fundraising-milestone delete /admin/trips/{tripId}/milestones/{id} Milestones compare trip fundraising progress with an amount or a percentage of the trip goal. At least one target must be nonzero after saving; update validates that condition after persisting the submitted values. # Delete a trip task Source: https://api-docs.helpyousponsor.com/api-reference/trips/delete-a-trip-task delete /admin/trips/{tripId}/tasks/{taskId} Manages tasks within the organization-owned trip. New tasks inherit reminder defaults when neither reminder input is supplied. Updating a task replaces dependency selections and normalized target tags; omitted dependencies or target tags are cleared. A task with dependents cannot be deleted. # Delete a trip task Source: https://api-docs.helpyousponsor.com/api-reference/trips/delete-a-trip-task-1 delete /frontend/participant/trips/{client_id}/{trip_id}/leader/tasks/{task_id}/{session_id} Deletes a task. Refuses with 422 (`Cannot delete task. Other tasks depend on it.`) if any other task depends on it via `depends_on_task_id` or `depends_on_task_ids`. Requires `manage_tasks`. # Delete a trip task template Source: https://api-docs.helpyousponsor.com/api-reference/trips/delete-a-trip-task-template delete /admin/trip-task-templates/{id} Task templates belong to the authenticated organization. Applying a template requires a trip start date, offsets due dates from that date, creates tasks in template order and resolves dependencies from earlier template indexes. # Donations targeted at this participant Source: https://api-docs.helpyousponsor.com/api-reference/trips/donations-targeted-at-this-participant get /frontend/participant/trips/{client_id}/{trip_id}/donations/{session_id} Returns donations directed at the participant's `entity_id` (using the historical `donation.designation` column). Donor names are normalized for privacy per the trip's `show_donor_names` setting (`full` / `first_initial` / `anonymous`); amounts are nulled when `show_donation_amounts` is false. # Export trip donations Source: https://api-docs.helpyousponsor.com/api-reference/trips/export-trip-donations get /admin/trips/{tripId}/analytics/exports/donations Returns organization-scoped trip analytics or a CSV download. Analytics refresh queues a background job but returns200; CSV donations include active-participant designations and the trip fund, participant export includes all participant statuses, and task export covers active participants. # Export trip participants Source: https://api-docs.helpyousponsor.com/api-reference/trips/export-trip-participants get /admin/trips/{tripId}/analytics/exports/participants Returns organization-scoped trip analytics or a CSV download. Analytics refresh queues a background job but returns200; CSV donations include active-participant designations and the trip fund, participant export includes all participant statuses, and task export covers active participants. # Export trip task progress Source: https://api-docs.helpyousponsor.com/api-reference/trips/export-trip-task-progress get /admin/trips/{tripId}/analytics/exports/tasks Returns organization-scoped trip analytics or a CSV download. Analytics refresh queues a background job but returns200; CSV donations include active-participant designations and the trip fund, participant export includes all participant statuses, and task export covers active participants. # Get a signed trip document URL Source: https://api-docs.helpyousponsor.com/api-reference/trips/get-a-signed-trip-document-url get /admin/trips/{tripId}/esignatures/{requestId}/signed-document Uses Dropbox Sign for the organization-owned trip; provider actions exclude sample trips. Minor signers may require guardian contact details. Setup failures return 409 and temporary provider failures return 503. Creating a template draft adds it to this trip; deleting a template removes it from required templates across organization trips. # Get a trip budget item Source: https://api-docs.helpyousponsor.com/api-reference/trips/get-a-trip-budget-item get /admin/trips/{tripId}/budget-items/{id} Reads or changes budget items under the organization-owned trip. Amount changes also synchronize the fundraising goal when sync_budget_to_goal is enabled. # Get a trip communication Source: https://api-docs.helpyousponsor.com/api-reference/trips/get-a-trip-communication get /admin/trips/{tripId}/messages/{id} Requires access to trip messages under the authenticated organization and excludes sample trips. Saving a draft does not send it; phone and note channels create manual logs. Sending resolves active matching participants with email addresses and queues email or SMS delivery; SMS also requires at least one valid phone. # Get a trip document download URL Source: https://api-docs.helpyousponsor.com/api-reference/trips/get-a-trip-document-download-url get /admin/trips/{tripId}/documents/{id}/download Manages documents under the organization-owned trip. New uploads can use an existing upload_id or a stored upload_key and file_name pair; specific visibility is restricted to selected trip participants. Download records access and returns the resolved storage URL. # Get a trip participant Source: https://api-docs.helpyousponsor.com/api-reference/trips/get-a-trip-participant get /admin/trips/{tripId}/participants/{id} Uses the authenticated organization and the selected trip to resolve participants. Withdrawal changes status instead of deleting the record. Invitation sends are best effort and exclude sample trips; donor search respects donor-form access. # Get a trip task template Source: https://api-docs.helpyousponsor.com/api-reference/trips/get-a-trip-task-template get /admin/trip-task-templates/{id} Task templates belong to the authenticated organization. Applying a template requires a trip start date, offsets due dates from that date, creates tasks in template order and resolves dependencies from earlier template indexes. # Get a trip with setup details Source: https://api-docs.helpyousponsor.com/api-reference/trips/get-a-trip-with-setup-details get /admin/trips/{id} Returns the trip profile, program bindings, cover image, budget items, tasks and fundraising totals in the authenticated organization. # Get an embedded signature template edit URL Source: https://api-docs.helpyousponsor.com/api-reference/trips/get-an-embedded-signature-template-edit-url get /admin/trips/{tripId}/esignatures/templates/{templateId}/embedded-edit-url Uses Dropbox Sign for the organization-owned trip; provider actions exclude sample trips. Minor signers may require guardian contact details. Setup failures return 409 and temporary provider failures return 503. Creating a template draft adds it to this trip; deleting a template removes it from required templates across organization trips. # Get the public trip URL Source: https://api-docs.helpyousponsor.com/api-reference/trips/get-the-public-trip-url get /admin/trips/{id}/public-url Returns the shareable frontend route for an organization-owned trip. Sample trips are not publicly available. # Get trip analytics Source: https://api-docs.helpyousponsor.com/api-reference/trips/get-trip-analytics get /admin/trips/{tripId}/analytics Returns organization-scoped trip analytics or a CSV download. Analytics refresh queues a background job but returns200; CSV donations include active-participant designations and the trip fund, participant export includes all participant statuses, and task export covers active participants. # Import trip participants Source: https://api-docs.helpyousponsor.com/api-reference/trips/import-trip-participants post /admin/trips/{tripId}/participants/import Uses the authenticated organization and the selected trip to resolve participants. Withdrawal changes status instead of deleting the record. Invitation sends are best effort and exclude sample trips; donor search respects donor-form access. # Initiate a trip participant background check Source: https://api-docs.helpyousponsor.com/api-reference/trips/initiate-a-trip-participant-background-check post /admin/trips/{tripId}/participants/{id}/background-checks Initiates a Checkr invitation for a nonsample trip participant. If another valid check can be reused, the201 response first requests confirmation unless reuse_existing or force_new is provided. Reuse links a new local check record to the prior provider report. # Invite active trip participants Source: https://api-docs.helpyousponsor.com/api-reference/trips/invite-active-trip-participants post /admin/trips/{tripId}/participants/invite Uses the authenticated organization and the selected trip to resolve participants. Withdrawal changes status instead of deleting the record. Invitation sends are best effort and exclude sample trips; donor search respects donor-form access. # List available signature templates Source: https://api-docs.helpyousponsor.com/api-reference/trips/list-available-signature-templates get /admin/trips/{tripId}/esignatures/templates Uses Dropbox Sign for the organization-owned trip; provider actions exclude sample trips. Minor signers may require guardian contact details. Setup failures return 409 and temporary provider failures return 503. Creating a template draft adds it to this trip; deleting a template removes it from required templates across organization trips. # List fundraising milestones Source: https://api-docs.helpyousponsor.com/api-reference/trips/list-fundraising-milestones get /frontend/participant/trips/{client_id}/{trip_id}/leader/milestones/{session_id} Returns the trip's `TripFundraisingMilestone` rows with each milestone's resolved target amount, current `total_raised`, `progress_percent`, and a derived `status` (`reached` / `behind` if past due / `on_track`). Requires `manage_trip`. # List organization trips Source: https://api-docs.helpyousponsor.com/api-reference/trips/list-organization-trips get /admin/trips Lists trips with active-participant counts, fundraising progress, creation entitlement and sample-trip capability. Search matches name or destination; pagination is clamped to 1-100 rows. # List participant progress for a trip task Source: https://api-docs.helpyousponsor.com/api-reference/trips/list-participant-progress-for-a-trip-task get /admin/trips/{tripId}/tasks/{taskId}/participants Returns one row for each active participant and its submission state; incomplete means not_started or submitted. # List replies to a trip message Source: https://api-docs.helpyousponsor.com/api-reference/trips/list-replies-to-a-trip-message get /admin/trips/{tripId}/messages/{id}/replies Requires access to trip messages under the authenticated organization and excludes sample trips. Saving a draft does not send it; phone and note channels create manual logs. Sending resolves active matching participants with email addresses and queues email or SMS delivery; SMS also requires at least one valid phone. # List task templates for the client Source: https://api-docs.helpyousponsor.com/api-reference/trips/list-task-templates-for-the-client get /frontend/participant/trips/{client_id}/{trip_id}/leader/task-templates/{session_id} Returns reusable `TripTaskTemplate` rows for the client (not the trip — templates live at the client level). Each template stores a JSON array of task definitions that `applyTemplate` can instantiate against any trip. Requires `manage_task_templates`. # List trip budget items Source: https://api-docs.helpyousponsor.com/api-reference/trips/list-trip-budget-items get /admin/trips/{tripId}/budget-items Reads or changes budget items under the organization-owned trip. Amount changes also synchronize the fundraising goal when sync_budget_to_goal is enabled. # List trip budget items Source: https://api-docs.helpyousponsor.com/api-reference/trips/list-trip-budget-items-1 get /frontend/participant/trips/{client_id}/{trip_id}/leader/budget-items/{session_id} Returns budget line items in `sort_order` plus the total. Requires `manage_budget` permission. # List trip communications Source: https://api-docs.helpyousponsor.com/api-reference/trips/list-trip-communications get /admin/trips/{tripId}/messages Requires access to trip messages under the authenticated organization and excludes sample trips. Saving a draft does not send it; phone and note channels create manual logs. Sending resolves active matching participants with email addresses and queues email or SMS delivery; SMS also requires at least one valid phone. # List trip documents Source: https://api-docs.helpyousponsor.com/api-reference/trips/list-trip-documents get /admin/trips/{tripId}/documents Manages documents under the organization-owned trip. New uploads can use an existing upload_id or a stored upload_key and file_name pair; specific visibility is restricted to selected trip participants. Download records access and returns the resolved storage URL. # List trip documents the participant can see Source: https://api-docs.helpyousponsor.com/api-reference/trips/list-trip-documents-the-participant-can-see get /frontend/participant/trips/{client_id}/{trip_id}/documents/{session_id} Returns trip documents whose visibility includes the authenticated participant — `all_participants` always, `leaders_only` only when the participant has `role=leader`, and `specific` only when the participant id appears in `visible_to_participants`. Each entry carries a downloadable URL and a download endpoint that logs the access. # List trip fundraising milestones Source: https://api-docs.helpyousponsor.com/api-reference/trips/list-trip-fundraising-milestones get /admin/trips/{tripId}/milestones Milestones compare trip fundraising progress with an amount or a percentage of the trip goal. At least one target must be nonzero after saving; update validates that condition after persisting the submitted values. # List trip participants Source: https://api-docs.helpyousponsor.com/api-reference/trips/list-trip-participants get /admin/trips/{tripId}/participants Uses the authenticated organization and the selected trip to resolve participants. Withdrawal changes status instead of deleting the record. Invitation sends are best effort and exclude sample trips; donor search respects donor-form access. # List trip signature requests Source: https://api-docs.helpyousponsor.com/api-reference/trips/list-trip-signature-requests get /admin/trips/{tripId}/esignatures Uses Dropbox Sign for the organization-owned trip; provider actions exclude sample trips. Minor signers may require guardian contact details. Setup failures return 409 and temporary provider failures return 503. Creating a template draft adds it to this trip; deleting a template removes it from required templates across organization trips. # List trip task submissions Source: https://api-docs.helpyousponsor.com/api-reference/trips/list-trip-task-submissions get /admin/trips/{tripId}/tasks/completions Returns paginated task submissions for the organization-owned trip with participant, approver and attachment information. # List trip task templates Source: https://api-docs.helpyousponsor.com/api-reference/trips/list-trip-task-templates get /admin/trip-task-templates Task templates belong to the authenticated organization. Applying a template requires a trip start date, offsets due dates from that date, creates tasks in template order and resolves dependencies from earlier template indexes. # List trip tasks Source: https://api-docs.helpyousponsor.com/api-reference/trips/list-trip-tasks get /admin/trips/{tripId}/tasks Manages tasks within the organization-owned trip. New tasks inherit reminder defaults when neither reminder input is supplied. Updating a task replaces dependency selections and normalized target tags; omitted dependencies or target tags are cleared. A task with dependents cannot be deleted. # List trip tasks assigned to the participant Source: https://api-docs.helpyousponsor.com/api-reference/trips/list-trip-tasks-assigned-to-the-participant get /frontend/participant/trips/{client_id}/{trip_id}/tasks/{session_id} Returns the tasks visible to this participant — the per-trip task list filtered by `TripTask::appliesToParticipant()` (which honors role / minor / guardian / tag targeting). Each entry includes prerequisite/dependency state and the participant's own completion if any. # List trip tasks for the leader Source: https://api-docs.helpyousponsor.com/api-reference/trips/list-trip-tasks-for-the-leader get /frontend/participant/trips/{client_id}/{trip_id}/leader/tasks/{session_id} Returns all `TripTask` rows for the trip ordered by `sort_order`, each with completion stats (`completion_count` of approved completions, `total_participants`, `completion_percent`), reminder schedule, dependency metadata, and target tag include/exclude lists. Requires `manage_tasks`. # List trips the donor is an active participant in Source: https://api-docs.helpyousponsor.com/api-reference/trips/list-trips-the-donor-is-an-active-participant-in get /frontend/participant/trips/{client_id}/{session_id} Donor-portal endpoint that returns the trips the authenticated donor is an active `TripParticipant` of. Authentication is via the `{session_id}` URL path parameter, which references a Redis donor session (key contains `donor_id` + `logged_in=true`). Each entry returns a slim trip + per-participant progress snapshot suitable for a dashboard. # Mark a participant task as complete Source: https://api-docs.helpyousponsor.com/api-reference/trips/mark-a-participant-task-as-complete post /frontend/participant/trips/{client_id}/{trip_id}/tasks/{task_id}/complete/{session_id} Records a `TripTaskCompletion` for the authenticated participant. If the task `requires_approval`, the row is saved with `status=completed` (pending leader review); otherwise it auto-promotes to `status=approved`. Tasks gated by an unsatisfied dependency return 422; already-approved tasks return 400. Trip stat caches are invalidated on save. # Paginated task completions for the trip Source: https://api-docs.helpyousponsor.com/api-reference/trips/paginated-task-completions-for-the-trip get /frontend/participant/trips/{client_id}/{trip_id}/leader/tasks/completions/{session_id} Returns `TripTaskCompletion` rows for the trip with task + participant + upload eager-loaded. Supports `?status`, `?task_id`, `?participant_id`, and `?per_page` filters. Requires `view_task_completions`. # Participant roster with fundraising progress Source: https://api-docs.helpyousponsor.com/api-reference/trips/participant-roster-with-fundraising-progress get /frontend/participant/trips/{client_id}/{trip_id}/leader/participants/{session_id} Returns active trip participants with fundraising progress, role, minor flag, and tags. Requires `manage_participants` permission. Names come from the standardized donor display name resolver. # Per-task participant completion status Source: https://api-docs.helpyousponsor.com/api-reference/trips/per-task-participant-completion-status get /frontend/participant/trips/{client_id}/{trip_id}/leader/tasks/{task_id}/participants/{session_id} For a specific task, lists every active participant with their `task_status` (`not_started`/`submitted`/`approved`/`rejected`) and any submitted upload. Supports an optional `?status=` filter (`incomplete` collapses `not_started` + `submitted`). Requires `view_task_completions` permission. # Public URL for the trip Source: https://api-docs.helpyousponsor.com/api-reference/trips/public-url-for-the-trip get /frontend/participant/trips/{client_id}/{trip_id}/leader/public-url/{session_id} Returns the leader-facing public URL for this trip (`FRONTEND_URL + /trips/{client_id}/{trip.slug}`) plus the relative path. Requires `manage_trip` permission. # Queue a trip message Source: https://api-docs.helpyousponsor.com/api-reference/trips/queue-a-trip-message post /admin/trips/{tripId}/messages/send Requires access to trip messages under the authenticated organization and excludes sample trips. Saving a draft does not send it; phone and note channels create manual logs. Sending resolves active matching participants with email addresses and queues email or SMS delivery; SMS also requires at least one valid phone. # Queue trip analytics refresh Source: https://api-docs.helpyousponsor.com/api-reference/trips/queue-trip-analytics-refresh post /admin/trips/{tripId}/analytics/reload Returns organization-scoped trip analytics or a CSV download. Analytics refresh queues a background job but returns200; CSV donations include active-participant designations and the trip fund, participant export includes all participant statuses, and task export covers active participants. # Read organization trip defaults Source: https://api-docs.helpyousponsor.com/api-reference/trips/read-organization-trip-defaults get /admin/trip-settings Organization-scoped trip defaults used when creating and displaying trips. A fixed_amount goal mode requires a goal amount; other modes clear that amount. Background-check validity is controlled by the Checkr integration. # Reject a task completion Source: https://api-docs.helpyousponsor.com/api-reference/trips/reject-a-task-completion post /frontend/participant/trips/{client_id}/{trip_id}/leader/tasks/completions/{completion_id}/reject/{session_id} Marks a `TripTaskCompletion` as `rejected` and stores the reviewer's `admin_notes` (required). Requires `approve_task_completions`. # Reject a trip task submission Source: https://api-docs.helpyousponsor.com/api-reference/trips/reject-a-trip-task-submission post /admin/trips/{tripId}/tasks/completions/{completionId}/reject Updates the completion status and administrator notes and invalidates trip analytics. Already approved submissions return 400 when approved again. # Reorder budget items Source: https://api-docs.helpyousponsor.com/api-reference/trips/reorder-budget-items post /frontend/participant/trips/{client_id}/{trip_id}/leader/budget-items/reorder/{session_id} Bulk-updates `sort_order` on multiple budget items inside a transaction. Returns the full ordered list. Requires `manage_budget`. # Reorder trip budget items Source: https://api-docs.helpyousponsor.com/api-reference/trips/reorder-trip-budget-items post /admin/trips/{tripId}/budget-items/reorder Reads or changes budget items under the organization-owned trip. Amount changes also synchronize the fundraising goal when sync_budget_to_goal is enabled. # Resend a trip signature request Source: https://api-docs.helpyousponsor.com/api-reference/trips/resend-a-trip-signature-request post /admin/trips/{tripId}/esignatures/{requestId}/resend Uses Dropbox Sign for the organization-owned trip; provider actions exclude sample trips. Minor signers may require guardian contact details. Setup failures return 409 and temporary provider failures return 503. Creating a template draft adds it to this trip; deleting a template removes it from required templates across organization trips. # Restore a trip Source: https://api-docs.helpyousponsor.com/api-reference/trips/restore-a-trip post /admin/trips/{id}/restore Restores a soft-deleted trip. If its status was archived, restores it to draft. # Save a trip communication draft or log Source: https://api-docs.helpyousponsor.com/api-reference/trips/save-a-trip-communication-draft-or-log post /admin/trips/{tripId}/messages Requires access to trip messages under the authenticated organization and excludes sample trips. Saving a draft does not send it; phone and note channels create manual logs. Sending resolves active matching participants with email addresses and queues email or SMS delivery; SMS also requires at least one valid phone. # Search client donors as a leader Source: https://api-docs.helpyousponsor.com/api-reference/trips/search-client-donors-as-a-leader get /frontend/participant/trips/{client_id}/leader/donors/search/{session_id} Type-ahead lookup over the client's donors (matches email, username, or any custom JSON field). Returns up to 20 results. Requires the requesting donor to be an active leader on at least one trip for the client and to hold the `invite_participants` permission. Empty / single-character queries return an empty list. # Search donors for trip participation Source: https://api-docs.helpyousponsor.com/api-reference/trips/search-donors-for-trip-participation get /admin/donors/search Uses the authenticated organization and the selected trip to resolve participants. Withdrawal changes status instead of deleting the record. Invitation sends are best effort and exclude sample trips; donor search respects donor-form access. # Send a participant signature request Source: https://api-docs.helpyousponsor.com/api-reference/trips/send-a-participant-signature-request post /admin/trips/{tripId}/participants/{id}/esignatures Uses Dropbox Sign for the organization-owned trip; provider actions exclude sample trips. Minor signers may require guardian contact details. Setup failures return 409 and temporary provider failures return 503. Creating a template draft adds it to this trip; deleting a template removes it from required templates across organization trips. # Send invitations to participants Source: https://api-docs.helpyousponsor.com/api-reference/trips/send-invitations-to-participants post /frontend/participant/trips/{client_id}/{trip_id}/leader/participants/invite/{session_id} Sends invitation emails to participants — either every active participant on the trip, or only the subset listed in `participant_ids`. Optionally sets an `invite_expires_at` deadline. Individual send failures are silently ignored; the response reports `sent` vs `total`. Requires `invite_participants`. # Send manual task reminder Source: https://api-docs.helpyousponsor.com/api-reference/trips/send-manual-task-reminder post /frontend/participant/trips/{client_id}/{trip_id}/leader/tasks/{task_id}/remind/{session_id} Dispatches the `SendTripTaskRemindersJob` background job which emails every incomplete participant for this task. Returns 200 immediately — actual delivery is async. Requires `send_manual_reminders` permission. # Send trip signature requests in a batch Source: https://api-docs.helpyousponsor.com/api-reference/trips/send-trip-signature-requests-in-a-batch post /admin/trips/{tripId}/esignatures/batch-send Uses Dropbox Sign for the organization-owned trip; provider actions exclude sample trips. Minor signers may require guardian contact details. Setup failures return 409 and temporary provider failures return 503. Creating a template draft adds it to this trip; deleting a template removes it from required templates across organization trips. # Trip detail + participant progress Source: https://api-docs.helpyousponsor.com/api-reference/trips/trip-detail-+-participant-progress get /frontend/participant/trips/{client_id}/{trip_id}/{session_id} Returns trip metadata along with the donor's participant record (progress, bio, social links, leader permissions if applicable, and a precomputed public share URL). Resolves trip-level display preferences (`show_donation_amounts`, `show_donor_names`) from `Trip::getSetting()`. # Trip Leader Console — trip view + effective permissions Source: https://api-docs.helpyousponsor.com/api-reference/trips/trip-leader-console-—-trip-view-+-effective-permissions get /frontend/participant/trips/{client_id}/{trip_id}/leader/{session_id} Authenticates the donor's Redis session and verifies they are an active participant with `role=leader` on this trip. Returns a slim trip summary, the effective `leader_permissions` map (computed from the trip's `settings.leader_permissions` defaults merged with per-participant overrides), and a lean task list. The frontend uses this payload to gate Leader Console features. # Update a budget line item Source: https://api-docs.helpyousponsor.com/api-reference/trips/update-a-budget-line-item put /frontend/participant/trips/{client_id}/{trip_id}/leader/budget-items/{item_id}/{session_id} Updates a `TripBudgetItem`. Re-syncs the trip's `fundraising_goal` if `sync_budget_to_goal` is on. Requires `manage_budget`. # Update a fundraising milestone Source: https://api-docs.helpyousponsor.com/api-reference/trips/update-a-fundraising-milestone put /frontend/participant/trips/{client_id}/{trip_id}/leader/milestones/{id}/{session_id} Updates a milestone. Returns 422 if both `target_amount` and `target_percent` end up empty after the update. Requires `manage_trip`. # Update a task template Source: https://api-docs.helpyousponsor.com/api-reference/trips/update-a-task-template put /frontend/participant/trips/{client_id}/{trip_id}/leader/task-templates/{template_id}/{session_id} Updates a client-scoped task template (only `name` and `tasks` are persisted). Requires `manage_task_templates`. # Update a trip Source: https://api-docs.helpyousponsor.com/api-reference/trips/update-a-trip put /admin/trips/{id} Creates or edits a trip within the authenticated organization. Name and slug must be unique within the organization; end_date must not precede start_date. Creating a trip also creates its fund entity and required program/form bindings; updating settings may update the shared Trip Participants program. # Update a trip budget item Source: https://api-docs.helpyousponsor.com/api-reference/trips/update-a-trip-budget-item put /admin/trips/{tripId}/budget-items/{id} Reads or changes budget items under the organization-owned trip. Amount changes also synchronize the fundraising goal when sync_budget_to_goal is enabled. # Update a trip document Source: https://api-docs.helpyousponsor.com/api-reference/trips/update-a-trip-document put /admin/trips/{tripId}/documents/{id} Manages documents under the organization-owned trip. New uploads can use an existing upload_id or a stored upload_key and file_name pair; specific visibility is restricted to selected trip participants. Download records access and returns the resolved storage URL. # Update a trip fundraising milestone Source: https://api-docs.helpyousponsor.com/api-reference/trips/update-a-trip-fundraising-milestone put /admin/trips/{tripId}/milestones/{id} Milestones compare trip fundraising progress with an amount or a percentage of the trip goal. At least one target must be nonzero after saving; update validates that condition after persisting the submitted values. # Update a trip participant Source: https://api-docs.helpyousponsor.com/api-reference/trips/update-a-trip-participant put /admin/trips/{tripId}/participants/{id} Uses the authenticated organization and the selected trip to resolve participants. Withdrawal changes status instead of deleting the record. Invitation sends are best effort and exclude sample trips; donor search respects donor-form access. # Update a trip task Source: https://api-docs.helpyousponsor.com/api-reference/trips/update-a-trip-task put /admin/trips/{tripId}/tasks/{taskId} Manages tasks within the organization-owned trip. New tasks inherit reminder defaults when neither reminder input is supplied. Updating a task replaces dependency selections and normalized target tags; omitted dependencies or target tags are cleared. A task with dependents cannot be deleted. # Update a trip task Source: https://api-docs.helpyousponsor.com/api-reference/trips/update-a-trip-task-1 put /frontend/participant/trips/{client_id}/{trip_id}/leader/tasks/{task_id}/{session_id} Updates an existing `TripTask`. Same field set as `tasksStore`; the `depends_on_task_id` validation also rejects self-dependency. Returns 422 with `Circular dependency detected` if the resolved dependency list contains the task itself. Requires `manage_tasks`. # Update a trip task template Source: https://api-docs.helpyousponsor.com/api-reference/trips/update-a-trip-task-template put /admin/trip-task-templates/{id} Task templates belong to the authenticated organization. Applying a template requires a trip start date, offsets due dates from that date, creates tasks in template order and resolves dependencies from earlier template indexes. # Update an existing participant Source: https://api-docs.helpyousponsor.com/api-reference/trips/update-an-existing-participant put /frontend/participant/trips/{client_id}/{trip_id}/leader/participants/{trip_participant_id}/{session_id} Updates participant fields (goal, role, status, visibility, bio, social links, minor flag, guardian info, tags). Promoting to `leader` requires the leader to also hold `promote_leaders`. Requires `manage_participants`. Trip public-page cache is invalidated on save. # Update organization trip defaults Source: https://api-docs.helpyousponsor.com/api-reference/trips/update-organization-trip-defaults put /admin/trip-settings Organization-scoped trip defaults used when creating and displaying trips. A fixed_amount goal mode requires a goal amount; other modes clear that amount. Background-check validity is controlled by the Checkr integration. # Update the participant's public profile Source: https://api-docs.helpyousponsor.com/api-reference/trips/update-the-participants-public-profile put /frontend/participant/trips/{client_id}/{trip_id}/profile/{session_id} Updates the donor-facing fields on the `TripParticipant` record (bio, video, social links, public visibility). Photo uploads go through the existing donor upload endpoint, not this one. The `is_public` flag is forced to true when the trip's `allow_participant_visibility_opt_out` setting is false. Cache invalidation runs after save so public participant pages reflect the change immediately. # Update trip details as leader Source: https://api-docs.helpyousponsor.com/api-reference/trips/update-trip-details-as-leader put /frontend/participant/trips/{client_id}/{trip_id}/leader/{session_id} Updates trip metadata (name, slug, description, dates, goal, status, cover image, settings) when the leader has the `manage_trip` permission. The slug is unique per client; the new name must also be unique per client. Validation rules are enforced verbatim — see request body. # Withdraw a participant Source: https://api-docs.helpyousponsor.com/api-reference/trips/withdraw-a-participant delete /frontend/participant/trips/{client_id}/{trip_id}/leader/participants/{trip_participant_id}/{session_id} Soft-removes the participant by setting `status=withdrawn` (no row deletion). Requires `manage_participants`. Trip public-page cache is invalidated on save. # Withdraw a trip participant Source: https://api-docs.helpyousponsor.com/api-reference/trips/withdraw-a-trip-participant delete /admin/trips/{tripId}/participants/{id} Uses the authenticated organization and the selected trip to resolve participants. Withdrawal changes status instead of deleting the record. Invitation sends are best effort and exclude sample trips; donor search respects donor-form access. # User Signup Step One Source: https://api-docs.helpyousponsor.com/api-reference/user/user-signup-step-one post /admin/signup/step_one Handles the first step of user signup, including data validation and user creation. # User Signup Step Three Source: https://api-docs.helpyousponsor.com/api-reference/user/user-signup-step-three post /admin/signup/step_three Handles the third step of the staged signup flow using a Stripe-hosted payment-method reference. Raw card fields are not accepted. # User Signup Step Two Source: https://api-docs.helpyousponsor.com/api-reference/user/user-signup-step-two post /admin/signup/step_two Handles the second step of user signup, * including organization creation, user updates, and sending notifications. # List team profile roles Source: https://api-docs.helpyousponsor.com/api-reference/users/list-team-profile-roles get /admin/team-roles Returns the configured flat, multi-select team-role catalog. These profile labels do not grant permissions and do not define an owner role. Returns404 when team profiles or their required schema are unavailable. Requires permission: one of admins. # Snooze my team profile reminder Source: https://api-docs.helpyousponsor.com/api-reference/users/snooze-my-team-profile-reminder post /admin/team-member-profile/snooze Snoozes the authenticated member’s profile reminder for the configured period (default30days), sets the current prompt version and returns completion state. Team profiles must be enabled. Support sessions cannot edit profiles. Requires permission: team_member_profile. # Update my team profile Source: https://api-docs.helpyousponsor.com/api-reference/users/update-my-team-profile put /admin/team-member-profile Updates the authenticated membership’s phone and job title. A nonempty phone must normalize successfully; changing the normalized number clears phone verification. country_code is required when phone is supplied. Does not assign team roles or permissions. Team profiles must be enabled and support sessions cannot edit them. Requires permission: team_member_profile. # Authorize.Net ARB silent-post receiver Source: https://api-docs.helpyousponsor.com/api-reference/webhooks/authorizenet-arb-silent-post-receiver post /silent_post Inbound ARB (Automated Recurring Billing) silent-post callback from Authorize.Net. Looks up the matching `Commitment` by `arb_subscription_id` (method `5`) and writes a corresponding `Donation` row with the reported amount + Authorize.Net customer/transaction IDs. Quietly returns when no commitment matches (logs a warning). Validation: `x_amount`, `x_subscription_id`, `x_cust_id`, `x_trans_id` all required. Currently mounted inside the auth.api_or_key middleware group — Authorize.Net must be configured to send credentials. # Mailgun inbound email webhook Source: https://api-docs.helpyousponsor.com/api-reference/webhooks/mailgun-inbound-email-webhook post /activities/email-ingest Receives BCC'd / inbound emails from Mailgun (form-encoded multipart payload — see Mailgun's Routes/Webhooks docs for the full schema). Authenticates via the `?key=` query parameter against `MAILGUN_ROUTE_KEY`. Creates an `Activity` row, uploads any attachments to S3, detects trip-message replies, auto-associates the email with a donor by sender address when possible, and indexes the activity in Meilisearch. Documented as a webhook for reference; integrators do not call this directly. # Authenticate a direct workspace invitation Source: https://api-docs.helpyousponsor.com/api-reference/workspace/authenticate-a-direct-workspace-invitation post /workspace-onboarding/invite/exchange Exchanges a direct signed invitation for a resumable setup session. Recovery invitations require the email-code flow and return409. A verified mailbox with an existing account receives the existing_account sign-in route with HTTP200. A newly issued session token replaces the previous resume credential. # Confirm the new workspace organization Source: https://api-docs.helpyousponsor.com/api-reference/workspace/confirm-the-new-workspace-organization put /workspace-onboarding/{public_id}/organization Saves organization and owner details while the session is authenticated or organization_confirmed. Later states reject edits with409. Country is normalized to uppercase; website and US EIN receive additional validation. # Confirm workspace setup choices Source: https://api-docs.helpyousponsor.com/api-reference/workspace/confirm-workspace-setup-choices put /workspace-onboarding/{public_id}/intent Confirms exactly primary_goal and starting_point from the displayed registered questions, pins the setup definition and resolves the starter profile. Must follow organization confirmation. Repeating identical answers is allowed; changing a confirmed answer returns409. Unsupported choices or extra answer keys currently surface as503; use the choices returned by the session. # Create the verified workspace and sign in Source: https://api-docs.helpyousponsor.com/api-reference/workspace/create-the-verified-workspace-and-sign-in post /workspace-onboarding/{public_id}/finalize Requires confirmed setup choices and successful payment-method qualification. Atomically creates the organization, owner, pricing assignment and pinned setup profile, with starter recipes and welcome delivery queued. Claims a single authenticated handoff and burns the resume credential before issuing the ordinary admin session. HTTP409 handoff_requires_sign_in means the workspace is ready and the owner should sign in normally. Existing mailbox accounts receive HTTP200 sign-in routing. # Get a resumable workspace setup session Source: https://api-docs.helpyousponsor.com/api-reference/workspace/get-a-resumable-workspace-setup-session get /workspace-onboarding/{public_id} Returns the authenticated setup state and display-safe questions. Before intent confirmation, primary_goal selects the starting-point question branch. The default session lifetime is24 hours, configurable by the server. Use the session header, rather than an administrator bearer token. # Get workspace signup entry options Source: https://api-docs.helpyousponsor.com/api-reference/workspace/get-workspace-signup-entry-options get /workspace-onboarding/entry Returns the admission mode for the trusted request host. Brand comes from configured Gratona or Gratona Sponsorships hosts, never browser JSON. Disabled self-service returns guided admission; a host outside the configured allowlist returns404. # Look up a nonprofit during workspace setup Source: https://api-docs.helpyousponsor.com/api-reference/workspace/look-up-a-nonprofit-during-workspace-setup post /workspace-onboarding/{public_id}/organization-lookup Searches the configured nonprofit directory while the session is authenticated or organization_confirmed. Returns up to eight normalized matches; a disabled or failed provider returns HTTP200 unavailable with an empty results array. Search collapses whitespace and must remain2–100 characters after normalization. # Prepare workspace card verification Source: https://api-docs.helpyousponsor.com/api-reference/workspace/prepare-workspace-card-verification post /workspace-onboarding/{public_id}/payment-intent Creates or resumes a Stripe customer and card SetupIntent after intent confirmation. This verifies a payment method without charging it or enabling automatic billing. The browser confirms the returned client secret with Stripe and can exchange the payment-return token to resume. An existing mailbox account receives HTTP200 sign-in routing. # Preview a workspace invitation Source: https://api-docs.helpyousponsor.com/api-reference/workspace/preview-a-workspace-invitation get /workspace-onboarding/invite Returns the organization label, masked mailbox and required authentication mode without authenticating the visitor. Invitation must be signed, unexpired, unclaimed and unrevoked; admission must be enabled. # Preview organization website suggestions Source: https://api-docs.helpyousponsor.com/api-reference/workspace/preview-organization-website-suggestions post /workspace-onboarding/{public_id}/organization-enrichment Returns optional website-derived brand name, up to five uppercase hex colors and whether a logo was found. Available only before intent confirmation. Suggestions do not update the confirmed organization. A disabled or failed provider returns HTTP200 with status unavailable; successful results are cached per session and website. # Resume workspace setup after payment verification Source: https://api-docs.helpyousponsor.com/api-reference/workspace/resume-workspace-setup-after-payment-verification post /workspace-onboarding/payment-return/exchange Consumes the short-lived return token issued with a setup intent and rotates the session resume credential atomically. It is bound to the public session, current setup intent and current resume credential, so it cannot be replayed after rotation. Token lifetime is at most15 minutes and never exceeds session expiry. # Send a public workspace signup code Source: https://api-docs.helpyousponsor.com/api-reference/workspace/send-a-public-workspace-signup-code post /workspace-onboarding/self-serve/request-code Starts or resumes the email-code signup flow for the trusted request host. Admission must be enabled. Returns a generic acknowledgement and masked mailbox without disclosing whether an account exists. Resending replaces the old code; defaults are15 minutes and5 attempts. # Send a workspace invitation verification code Source: https://api-docs.helpyousponsor.com/api-reference/workspace/send-a-workspace-invitation-verification-code post /workspace-onboarding/invite/request-code Sends a code to the invitation mailbox and returns the pending public session ID and a masked mailbox. A new request supersedes the previous code. Code lifetime and attempt limits are server configured, defaulting to15 minutes and5 attempts. # Verify a public workspace signup code Source: https://api-docs.helpyousponsor.com/api-reference/workspace/verify-a-public-workspace-signup-code post /workspace-onboarding/self-serve/verify-code Consumes the code for the normalized email and pending public session ID. Issues a resume credential, or returns HTTP200 existing_account sign-in routing after mailbox ownership is verified. # Verify a workspace invitation code Source: https://api-docs.helpyousponsor.com/api-reference/workspace/verify-a-workspace-invitation-code post /workspace-onboarding/invite/verify-code Consumes the invitation-mailbox code and issues a resume credential, or returns HTTP200 existing_account sign-in routing. Codes are scoped to the invitation session, expire and have a configured attempt limit. # Verify the workspace payment method Source: https://api-docs.helpyousponsor.com/api-reference/workspace/verify-the-workspace-payment-method post /workspace-onboarding/{public_id}/verify-payment Retrieves the server-bound Stripe SetupIntent and requires matching session metadata, customer, succeeded status and payment method. Cards are required; prepaid cards are rejected with422 and require a fresh setup attempt. Saves the verified default payment method and advances qualification; repeated qualified calls are allowed. Existing mailbox accounts receive HTTP200 sign-in routing. # Check calculation status for wrapped statistics Source: https://api-docs.helpyousponsor.com/api-reference/wrapped/check-calculation-status-for-wrapped-statistics get /admin/wrapped/{year}/status # Check if a public wrapped report exists Source: https://api-docs.helpyousponsor.com/api-reference/wrapped/check-if-a-public-wrapped-report-exists get /wrapped/{year}/public/{token}/exists Quick check to verify if a shared wrapped report exists and is still public. * Useful for pre-flight checks before loading the full report. # Email the wrapped report to the admin Source: https://api-docs.helpyousponsor.com/api-reference/wrapped/email-the-wrapped-report-to-the-admin post /admin/wrapped/{year}/email Sends the year's wrapped report summary to the authenticated admin's email address. * The email includes key highlights and a link to view the full report. # Generate or toggle public sharing link for wrapped report Source: https://api-docs.helpyousponsor.com/api-reference/wrapped/generate-or-toggle-public-sharing-link-for-wrapped-report post /admin/wrapped/{year}/share Creates a unique public sharing token for the wrapped report. If sharing is already enabled, * returns the existing share URL. Include 'disable' parameter to revoke sharing. # Get organization's year in review Source: https://api-docs.helpyousponsor.com/api-reference/wrapped/get-organizations-year-in-review get /admin/wrapped/{year} Retrieves wrapped statistics for a given year. For large datasets (>10,000 donations), * the calculation will be performed asynchronously when refresh=true. * * Polling Strategy: * 1. Make initial request with refresh=true * 2. If response is 202, begin polling the status endpoint * 3. Poll /wrapped/{year}/status every 5-10 seconds * 4. When status is 'completed', make another request to this endpoint * 5. Stop polling if status is 'failed' or after 5 minutes * * Example polling implementation: * ```javascript * async function getWrappedStats(year, refresh = false) { * const response = await fetch(`/api/v1/admin/wrapped/${year}?refresh=${refresh}`); * * if (response.status === 202) { * return pollCalculation(year); * } * * return response.json(); * } * * async function pollCalculation(year) { * let attempts = 0; * const maxAttempts = 60; // 5 minutes at 5-second intervals * * while (attempts < maxAttempts) { * const status = await fetch(`/api/v1/admin/wrapped/${year}/status`); * const data = await status.json(); * * if (data.status === 'completed') { * return getWrappedStats(year); * } * if (data.status === 'failed') { * throw new Error(data.error || 'Calculation failed'); * } * await new Promise(resolve => setTimeout(resolve, 5000)); * attempts++; * } * throw new Error('Calculation timed out'); * } * ``` # Get public wrapped report by share token Source: https://api-docs.helpyousponsor.com/api-reference/wrapped/get-public-wrapped-report-by-share-token get /wrapped/{year}/public/{token} Returns a publicly shared wrapped report. Personal identifiable information (PII) like donor names * is anonymized. No authentication required but a valid share token is necessary. # Archive or restore a commitment through Zapier Source: https://api-docs.helpyousponsor.com/api-reference/zapier/archive-or-restore-a-commitment-through-zapier patch /zapier/actions/commitments/{id}/status Soft-deletes or restores the selected commitment record through commitments.update_status and returns its current archive state. Requires donation management and the primitive scope. To end a linked sponsorship through the full sponsorship lifecycle, use the dedicated cancellation endpoint. # Cancel a commitment through Zapier Source: https://api-docs.helpyousponsor.com/api-reference/zapier/cancel-a-commitment-through-zapier post /zapier/actions/commitments/{id}/cancel Ends the linked sponsorship through the canonical lifecycle, or archives a standalone commitment under its billing lock. Requires Zapier sponsorship lifecycle enabled, donation management, current donor/program access and primitives:commitments:cancel (or primitives:*). Reuse the same external_reference for retries of this cancellation occurrence; concurrent billing, changed targets and conflicting replays return409. # Create a donor through Zapier Source: https://api-docs.helpyousponsor.com/api-reference/zapier/create-a-donor-through-zapier post /zapier/actions/donors Creates an organization-scoped donor through donors.create. Requires donors_manage, donor-form access and the primitive scope. Duplicate active donor emails return409; a supplied body idempotency_key replays the cached create. # Create a profile note through Zapier Source: https://api-docs.helpyousponsor.com/api-reference/zapier/create-a-profile-note-through-zapier post /zapier/actions/notes Creates a permissioned donor or recipient note through notes.create. Send a stable Idempotency-Key header: the primitive requires a key and this transport does not forward a body idempotency_key. Category defaults to uncategorized; requires notes_manage, the target donor/program access and primitive scope. # Create a recipient through Zapier Source: https://api-docs.helpyousponsor.com/api-reference/zapier/create-a-recipient-through-zapier post /zapier/actions/recipients Creates a recipient through entities.create, including program counter allocation and configured custom-field processing. Requires manage_programs, program access and the primitive scope. Custom fields declared unique are checked across the program; tag names cannot contain commas. # Create an externally managed sponsorship Source: https://api-docs.helpyousponsor.com/api-reference/zapier/create-an-externally-managed-sponsorship post /zapier/actions/sponsorships Creates an External Processor method7, non-charging sponsorship with amount expressed per payment period. Requires Zapier sponsorship lifecycle enabled, donation management, donor/program access and primitives:commitments:create_sponsorship (or primitives:*). external_reference identifies a replay-protected recurring record. Do not send payment_method, method, is_non_charging, is_per_period_amount or arb_subscription_id: these fields are prohibited and controlled by this action. # Get the Zapier compatibility template Source: https://api-docs.helpyousponsor.com/api-reference/zapier/get-the-zapier-compatibility-template get /zapier/compat/template Returns the first template and associated template uploads for the authenticated organization. This read-only compatibility endpoint supports existing Zapier workflows. # Get Zapier commitment field definitions Source: https://api-docs.helpyousponsor.com/api-reference/zapier/get-zapier-commitment-field-definitions get /zapier/triggers/commitments/fields Returns the union of donor and recipient custom-field definitions used across the organization programs, plus the standardized donor field contract. Integrations can use these definitions to configure custom-field mappings before polling commitments. # List commitment cancellation events for Zapier Source: https://api-docs.helpyousponsor.com/api-reference/zapier/list-commitment-cancellation-events-for-zapier get /zapier/triggers/commitments/cancelled-feed Returns immutable archive events in descending ledger-ID order, filtered by the caller current donor-form and program access. Requires Zapier sponsorship lifecycle to be enabled, primitives:commitments:list (or primitives:*) and donation/report read permission. Use cancellation_event_id for event deduplication and commitment_id to match the external recurring record. # List newly inserted donations for Zapier Source: https://api-docs.helpyousponsor.com/api-reference/zapier/list-newly-inserted-donations-for-zapier get /zapier/triggers/donations/created-feed Returns positive, qualified donation records in descending immutable donation-ID order so edits to the gift date do not create a new event. The numeric id is both the deduplication key and cursor. created_after and cursor_created_at are retained compatibility inputs: the current query pages by cursor_id rather than filtering by those date fields. # List updated commitments for Zapier Source: https://api-docs.helpyousponsor.com/api-reference/zapier/list-updated-commitments-for-zapier get /zapier/triggers/commitments/feed Returns an organization-scoped change feed for polling integrations. Use the event id for update-event deduplication and pass both next_cursor fields for the next page; the underlying numeric record identifier is returned separately. The cursor is descending by updated_at and numeric record id. # List updated donations for Zapier Source: https://api-docs.helpyousponsor.com/api-reference/zapier/list-updated-donations-for-zapier get /zapier/triggers/donations/feed Returns an organization-scoped change feed for polling integrations. Use the event id for update-event deduplication and pass both next_cursor fields for the next page; the underlying numeric record identifier is returned separately. The cursor is descending by updated_at and numeric record id. # List updated donors for Zapier Source: https://api-docs.helpyousponsor.com/api-reference/zapier/list-updated-donors-for-zapier get /zapier/triggers/donors/feed Returns an organization-scoped change feed for polling integrations. Use the event id for update-event deduplication and pass both next_cursor fields for the next page; the underlying numeric record identifier is returned separately. The cursor is descending by updated_at and numeric record id. # List updated notes for Zapier Source: https://api-docs.helpyousponsor.com/api-reference/zapier/list-updated-notes-for-zapier get /zapier/triggers/notes/feed Returns an organization-scoped change feed for polling integrations. Use the event id for update-event deduplication and pass both next_cursor fields for the next page; the underlying numeric record identifier is returned separately. The cursor is descending by updated_at and numeric record id. # List updated recipients for Zapier Source: https://api-docs.helpyousponsor.com/api-reference/zapier/list-updated-recipients-for-zapier get /zapier/triggers/recipients/feed Returns an organization-scoped change feed for polling integrations. Use the event id for update-event deduplication and pass both next_cursor fields for the next page; the underlying numeric record identifier is returned separately. The cursor is descending by updated_at and numeric record id. # Record a donation through Zapier Source: https://api-docs.helpyousponsor.com/api-reference/zapier/record-a-donation-through-zapier post /zapier/actions/donations Records a donation through donations.create and returns the created record with individual/combined payment amount context. This records the supplied payment outcome without initiating a provider charge. Requires donation management and the relevant donor-form/program access; body idempotency_key supports replay. # Record an offline commitment payment Source: https://api-docs.helpyousponsor.com/api-reference/zapier/record-an-offline-commitment-payment post /zapier/actions/commitments/{id}/offline-payments Records a settled offline payment against an existing active commitment and advances its payment dates through the canonical donation service. It does not charge a processor. external_reference provides a stable replay identity; conflicting reuse returns409. Requires donation management and donor/program access. # Record an offline sponsorship payment Source: https://api-docs.helpyousponsor.com/api-reference/zapier/record-an-offline-sponsorship-payment post /zapier/actions/sponsorships/{id}/offline-payments Resolves the sponsorship to exactly one active commitment and records the offline payment through the same replay-protected commitment payment action. No processor charge is initiated. Multiple active commitments return409 and require the caller to use the commitment-specific endpoint. # Search commitments for Zapier Source: https://api-docs.helpyousponsor.com/api-reference/zapier/search-commitments-for-zapier get /zapier/searches/commitments An id selects one active or archived commitment; otherwise donor, designation and lifecycle filters list commitments. The response projects the selected primitive result into a data array. An ID lookup that finds no record returns200 with data=[] and count=0. # Search donations for Zapier Source: https://api-docs.helpyousponsor.com/api-reference/zapier/search-donations-for-zapier get /zapier/searches/donations An id selects one donation; otherwise donor/date filters list donations. date_to cannot be earlier than date_from. Requires the corresponding donation primitive scope and donation/report read permission. An ID lookup that finds no record returns200 with data=[] and count=0. # Search donors for Zapier Source: https://api-docs.helpyousponsor.com/api-reference/zapier/search-donors-for-zapier get /zapier/searches/donors An id selects a single donor; otherwise email/query selects donor search, and an empty search lists donors. Results respect the selected primitive scopes and current donor-form permissions. An ID lookup that finds no record returns200 with data=[] and count=0. # Search forms for Zapier Source: https://api-docs.helpyousponsor.com/api-reference/zapier/search-forms-for-zapier get /zapier/searches/forms Reads the forms.list primitive without field definitions, applies a case-insensitive name match to that returned batch, and truncates the result to limit. Matching occurs after the primitive limited catalog is loaded. An ID lookup that finds no record returns200 with data=[] and count=0. # Search programs for Zapier Source: https://api-docs.helpyousponsor.com/api-reference/zapier/search-programs-for-zapier get /zapier/searches/programs Searches program names through the programs.list primitive, with the caller scope and program-access permissions applied. An ID lookup that finds no record returns200 with data=[] and count=0. # Search recipients for Zapier Source: https://api-docs.helpyousponsor.com/api-reference/zapier/search-recipients-for-zapier get /zapier/searches/recipients An id selects one recipient; otherwise query and program_id filter the recipient list. Results respect the selected primitive scopes and current program permissions. An ID lookup that finds no record returns200 with data=[] and count=0. # Test a Zapier connection Source: https://api-docs.helpyousponsor.com/api-reference/zapier/test-a-zapier-connection get /zapier/auth/test Resolves the system.context primitive and returns the connected user, organization and credential scopes. Requires the system context primitive scope (or primitives:*); the current workspace identity is determined by the credential. # Update a donor through Zapier Source: https://api-docs.helpyousponsor.com/api-reference/zapier/update-a-donor-through-zapier patch /zapier/actions/donors/{id} Updates the supplied safe profile fields through donors.update. Requires donors_manage, donor-form access and the primitive scope. The returned body is the donor record; duplicate email or stewardship household-impact conflicts may prevent the write. # Update a recipient through Zapier Source: https://api-docs.helpyousponsor.com/api-reference/zapier/update-a-recipient-through-zapier patch /zapier/actions/recipients/{id} Updates supplied recipient fields through entities.update. Requires manage_programs, program access and the primitive scope. Tags may use the compatibility list/string representation; names containing commas are rejected. # Import recipient photos Source: https://api-docs.helpyousponsor.com/guides/importing-recipient-photos Prepare photo filenames, choose a matching field, validate the files, and import recipient photos in bulk. Bulk photo import matches each image to one recipient in the selected program. The match comes from the photo's filename and the **Unique Field to Consider** you choose during import. Use the Gratona **Entity ID** when possible. Gratona generates this system value for every recipient, and it does not change when profile information is edited. ## Before you upload 1. Open **Imports**, choose **Profile Photos**, and select the recipient program. 2. Choose **Recipients** as the resource, then continue to the photo upload step. 3. In **Unique Field to Consider**, select the field represented in every photo filename. Choose **Entity ID** when it is available in your source files. 4. Decide whether the imported images should become the recipients' profile photos. You can select multiple photos, choose a folder, or drag a folder into the upload area. The upload screen shows the current file-size and batch-size limits for your workspace. The photo import field selector showing Entity ID under system fields and the program's recipient fields in a separate group ### Choose the matching field You have two useful choices: * **Entity ID** is the safest default. Copy the system-generated Gratona ID from the recipient record or an export. * **A recipient form field** works when your organization already has a stable identifier, such as a recipient number, case number, email address, or username. The selected field must contain a value for every recipient in the batch, and each value must identify exactly one recipient in the selected program. A field appearing in the selector does not guarantee that its data is unique. Avoid names, dates of birth, gender, or any other field that people can share. ## Name each photo The filename must contain the selected recipient field's value. The file extension is not part of the match. For the most predictable result, make the filename just the value: | Selected field | Recipient's value | Recommended filename | | - | - | - | | Gratona Entity ID | `4821` | `4821.jpg` | | Recipient number | `DO0140540` | `DO0140540.jpg` | | Email | `john.doe@example.com` | `john.doe@example.com.jpg` | | Username | `john-smith` | `john-smith.png` | Descriptive text can appear before or after the value. For example, `recipient_4821_profile.jpg` and `student_DO0140540_profile.png` can match the same values shown above. Spaces, hyphens, and underscores are treated as separators for general identifiers such as recipient numbers, so `ABC-001.jpg` can match a stored value of `ABC 001`. Even though descriptive text is supported, exact-value filenames are easier to audit. When matching a numeric Entity ID, avoid adding other numbers such as years or sequence numbers to the filename. Preserve punctuation in email addresses and usernames. `john-smith.jpg`, `john.smith.jpg`, and `johnsmith.jpg` are different values. The match ignores letter case, but it does not treat those punctuation variants as the same username. You do not need to add a field label such as `Entity ID` to the filename, and a CSV is not required for a photo import. ## Supported images Use one of these file types: * JPG or JPEG * PNG * GIF Each filename must be unique within the selected batch. If two selected files use the same filename, Gratona keeps one and marks the duplicate as rejected before upload. The photo upload screen showing four accepted files and one rejected duplicate filename ## Validate before importing Gratona validates the batch before attaching any photos. Review the validation results, especially skipped files: * **No matching record** means the filename does not contain a value found in the selected field for a recipient in this program. * **Matched multiple records** means the value is not unique enough to identify one recipient. * **Invalid file type** means the image is not a supported JPG, JPEG, PNG, or GIF. * **File size exceeds the limit** means the image is larger than the limit displayed on the upload screen. Only validated files are imported. A skipped file is not attached to any recipient. Completed photo validation showing three successful matches and one warning for an unmatched Entity ID ## Troubleshooting a filename If a photo does not match: 1. Confirm that you selected the field represented in the filename. 2. Copy the value directly from the recipient record or a recipient export. 3. Rename the file to the exact value plus its extension, such as `4821.jpg`. 4. For email or username fields, restore every period, hyphen, underscore, plus sign, and `@` character. 5. Confirm that the recipient belongs to the program selected for the import. 6. Validate the batch again before importing. If more than one recipient has the selected value, correct the duplicate data or switch to the Gratona **Entity ID**. Gratona skips ambiguous files instead of guessing which recipient should receive the photo. # Gratona API Documentation Source: https://api-docs.helpyousponsor.com/introduction Integrate donor records, donations, commitments, and fundraising workflows with Gratona. The Gratona API lets integrations manage donor and recipient records, donations, commitments, programs, and related fundraising workflows. ## Get Started Generate an API key from **Settings → Account Settings → Developer Settings** in the Gratona dashboard. Send it in the `X-HYS-API-Key` header when calling protected admin endpoints: ```sh theme={null} curl --request GET \ --url https://api.gratona.com/v1/admin/api_keys \ --header 'X-HYS-API-Key: hys_your_key_here' ``` The full key is shown once when created. Give it a descriptive name, store it securely, and revoke it from Developer Settings when it is no longer needed. Passport bearer tokens are also accepted on protected admin endpoints. Public checkout and portal sign-in endpoints have different authentication requirements. Read the [API reference introduction](/api-reference/introduction) and the individual endpoint before making a request. ## Response Statuses * `200` or `201`: The request succeeded. * `202`: Work was accepted for asynchronous processing. * `401` or `403`: Authentication or access was refused. * `404`: The requested resource was not available. * `409`: The request conflicts with the current state; follow the endpoint's retry or recovery instructions. * `410`: The operation has been retired. * `422`: Request validation failed. * `429`: Too many requests; retry according to the response headers. Each operation documents its request fields, response shape, and applicable statuses.