openapi: 3.0.0 info: title: Chariot API version: "v1" description: The Chariot REST API. Please see https://docs.givechariot.com/api for more details. contact: name: Chariot Development Team url: https://givechariot.com/contact email: developers@givechariot.com termsOfService: https://givechariot.com/legal-nonprofit servers: - url: https://sandboxapi.givechariot.com description: Sandbox - url: https://api.givechariot.com description: Production paths: /v1/organizations/search: get: summary: Search organizations description: |- Search for organizations by name or EIN. This endpoint exists to support a typeahead search or quick lookup by nonprofit EIN or name. The Get Organization API should be used to retrieve detailed information about an organization. operationId: searchOrganizations tags: - Organizations security: - bearerAuth: [] parameters: - name: q in: query required: true description: |- The query string to search for. If this is in the format of an EIN, the search will be limited exclusively to the organization with that EIN. Otherwise, this will be a fuzzy search on organization name. schema: type: string - name: ein in: query description: |- The Employer Identification Number (EIN) or TaxID for the nonprofit entity. This is deprecated in favor of the `q` parameter. schema: type: string deprecated: true - name: name in: query description: |- The name of the organization. This is deprecated in favor of the `q` parameter. schema: type: string deprecated: true - name: limit in: query description: Limit the size of the list that is returned. The default (and maximum) is 20 objects. required: false schema: type: integer format: int32 responses: "200": $ref: "#/components/responses/SearchOrganizationsResponse" "400": $ref: "#/components/responses/BadRequestError" "401": $ref: "#/components/responses/AuthenticationError" "403": $ref: "#/components/responses/ForbiddenError" "500": $ref: "#/components/responses/InternalServerError" /v1/organizations/{id}: get: summary: Get organization description: |- Retrieves the organization with the given ID. operationId: getOrganization tags: - Organizations security: - bearerAuth: [] parameters: - name: id in: path description: The unique identifier for the organization schema: type: string required: true example: "org_1LaXpKGUcADgqoEMl0Cx0Ygg" responses: "200": description: "OK" headers: X-Request-Id: $ref: "#/components/headers/X-Request-Id" content: application/json: schema: $ref: "#/components/schemas/Organization" "400": $ref: "#/components/responses/BadRequestError" "401": $ref: "#/components/responses/AuthenticationError" "403": $ref: "#/components/responses/ForbiddenError" "404": $ref: "#/components/responses/NotFoundError" "500": $ref: "#/components/responses/InternalServerError" /v1/simulations/organizations/onboard/{id}: post: summary: "Sandbox: Onboard an organization" description: | Creates a Chariot account for a sandbox recipient organization so that disbursements to it settle electronically instead of via a mailed check. By default a sandbox organization has no Chariot account, so disbursements to it are mailed as a physical check. Call this endpoint to provision an account for the organization and choose which electronic rail its disbursements should settle on. The `settlement` is fixed on the first successful call. Onboarding the same organization again with a different `settlement` returns an error. This API is only available in the sandbox environment. operationId: onboardOrganization tags: - Organizations security: - bearerAuth: [] parameters: - name: id in: path description: The unique identifier for the organization to onboard. required: true schema: type: string example: "org_1LaXpKGUcADgqoEMl0Cx0Ygg" requestBody: required: true content: application/json: schema: type: object required: - settlement properties: settlement: $ref: "#/components/schemas/SandboxSettlement" responses: "200": description: "OK" headers: X-Request-Id: $ref: "#/components/headers/X-Request-Id" content: application/json: schema: $ref: "#/components/schemas/Organization" "400": $ref: "#/components/responses/BadRequestError" "401": $ref: "#/components/responses/AuthenticationError" "403": $ref: "#/components/responses/ForbiddenError" "404": $ref: "#/components/responses/NotFoundError" "500": $ref: "#/components/responses/InternalServerError" /v1/programs: get: summary: List Programs description: |- Returns a list of all programs for your Chariot account. operationId: list-programs tags: - Programs security: - bearerAuth: [] parameters: - name: limit in: query description: Number of results per page. The default (and maximum) is 100 objects. required: false schema: type: integer format: int32 - name: cursor in: query description: |- Cursor token for pagination. Use the next_page_token from the previous response to retrieve the next page of results. required: false schema: type: string responses: "200": $ref: "#/components/responses/ListProgramsResponse" "400": $ref: "#/components/responses/BadRequestError" "401": $ref: "#/components/responses/AuthenticationError" "403": $ref: "#/components/responses/ForbiddenError" "500": $ref: "#/components/responses/InternalServerError" /v1/programs/{id}: get: summary: Get Program description: |- Retrieves the program with the given ID. operationId: get-program tags: - Programs security: - bearerAuth: [] parameters: - name: id in: path description: The unique identifier for the program schema: type: string required: true example: "program_01j8rs605a4gctmbm58d87mvsj" responses: "200": description: OK headers: X-Request-Id: $ref: "#/components/headers/X-Request-Id" content: application/json: schema: $ref: "#/components/schemas/Program" "400": $ref: "#/components/responses/BadRequestError" "401": $ref: "#/components/responses/AuthenticationError" "403": $ref: "#/components/responses/ForbiddenError" "404": $ref: "#/components/responses/NotFoundError" "500": $ref: "#/components/responses/InternalServerError" /v1/connects: post: summary: Create Connect description: |- Get an existing connect or create a new connect for an existing nonprofit organization. The returned Connect can be used to integrate the client-side Chariot Connect component using the `id` property (CID) and also query for data generated from the Chariot Connect instance using the connect_id query parameter in any of the List Grants API endpoints. Only one Connect object can be created per organization. If one already exists, this will return a `200 OK` status with the existing object. operationId: create-connect tags: - Connects security: - bearerAuth: [] requestBody: $ref: "#/components/requestBodies/CreateConnectRequest" responses: "200": description: OK headers: X-Request-Id: $ref: "#/components/headers/X-Request-Id" Location: $ref: "#/components/headers/Location" content: application/json: schema: $ref: "#/components/schemas/Connect" examples: Simple: $ref: "#/components/examples/ConnectOutput" "201": description: Created headers: X-Request-Id: $ref: "#/components/headers/X-Request-Id" Location: $ref: "#/components/headers/Location" content: application/json: schema: $ref: "#/components/schemas/Connect" examples: Simple: $ref: "#/components/examples/ConnectOutput" "400": $ref: "#/components/responses/BadRequestError" "401": $ref: "#/components/responses/AuthenticationError" "403": $ref: "#/components/responses/ForbiddenError" "404": $ref: "#/components/responses/NotFoundError" "500": $ref: "#/components/responses/InternalServerError" /v1/connects/{id}: get: summary: Get Connect description: |- Retrieve a connect with the given ID. operationId: get-connect tags: - Connects security: - bearerAuth: [] parameters: - name: id in: path description: the unique id of the connect schema: type: string required: true example: live_xJd0lUrvpDkzeGBWZbuI2wbvEdM responses: "200": description: "OK" headers: X-Request-Id: $ref: "#/components/headers/X-Request-Id" content: application/json: schema: $ref: "#/components/schemas/Connect" "400": $ref: "#/components/responses/BadRequestError" "401": $ref: "#/components/responses/AuthenticationError" "403": $ref: "#/components/responses/ForbiddenError" "404": $ref: "#/components/responses/NotFoundError" "500": $ref: "#/components/responses/InternalServerError" /v1/grants: get: summary: List Grants description: |- Returns a list of all grants for a given Connect. This API allows for paginating over many results. operationId: list-grants tags: - Grants security: - bearerAuth: [] parameters: - name: connect_id in: query description: the `id` of the Connect object. This can be used to filter the grants by a specific Connect if you have more than one. schema: type: string required: false example: "live_2d821da0ed8bc7256e260f4eb5244f2d8f06c576342f922ba2f0a416d8c98002" - name: pageLimit in: query description: the number of results to return; defaults to 10, max is 100 schema: type: integer default: 10 - name: pageToken in: query description: |- A token to use to retrieve the next page of results. This is useful for paginating over many pages of results. If set, all other arguments are expected to be kept the same as previous calls and the value of this field should be from the nextPageToken in the previous response. schema: type: string responses: "200": $ref: "#/components/responses/ListGrantsResponse" "400": $ref: "#/components/responses/BadRequestError" "401": $ref: "#/components/responses/AuthenticationError" "403": $ref: "#/components/responses/ForbiddenError" "500": $ref: "#/components/responses/InternalServerError" post: summary: Create Grant description: |- Create and submit a new grant. This should be used to capture a grant intent from an authorized DAFpay workflow session and submit the grant request to the DAF sponsor. On initial creation of the grant, this request will return a 201 Created status. On subsequent requests, the request will return status 200 OK. Error handling: - The grant must be captured within 15 minutes of authorization otherwise the request will return status `410 Gone`. - If this request is submitted while this grant is already being processed, the request will return status `409 Conflict`. - The amount must be in whole dollar increments (rounded to the nearest hundred) as currently DAFs only accept whole dollar grants otherwise the request will return status `400 Bad Request`. - The amount must be greater than or equal to the minimum grant amount for the DAF otherwise the request will return status `400 Bad Request`. - The amount must be less than or equal to the user's DAF account balance otherwise the request will return status `400 Bad Request`. - Any inputs exceeding the maximum allowed length will be automatically truncated. operationId: create-grant tags: - Grants security: - bearerAuth: [] requestBody: $ref: "#/components/requestBodies/GrantCaptureRequest" responses: "201": description: Created headers: X-Request-Id: $ref: "#/components/headers/X-Request-Id" Location: description: The URI reference of the created grant object. schema: type: string format: uri content: application/json: schema: $ref: "#/components/schemas/Grant" examples: Simple: $ref: "#/components/examples/GrantOutput" "200": description: The grant content: application/json: schema: $ref: "#/components/schemas/Grant" examples: Simple: $ref: "#/components/examples/GrantOutput" "400": $ref: "#/components/responses/BadRequestError" "401": $ref: "#/components/responses/AuthenticationError" "403": $ref: "#/components/responses/ForbiddenError" "404": $ref: "#/components/responses/NotFoundError" "409": $ref: "#/components/responses/ConflictError" "410": $ref: "#/components/responses/GoneError" "500": $ref: "#/components/responses/InternalServerError" /v1/grants/{id}: get: summary: Get Grant description: |- Retrieve a grant with the given ID. operationId: get-grant tags: - Grants security: - bearerAuth: [] parameters: - name: id in: path description: |- The unique id of the grant. The format should be a v4 UUID according to RFC 4122. schema: type: string format: uuid required: true example: 10229488-08d2-4629-b70c-a2f4f4d25344 responses: "200": description: OK headers: X-Request-Id: $ref: "#/components/headers/X-Request-Id" content: application/json: schema: $ref: "#/components/schemas/Grant" examples: Simple: $ref: "#/components/examples/GrantOutput" "400": $ref: "#/components/responses/BadRequestError" "401": $ref: "#/components/responses/AuthenticationError" "403": $ref: "#/components/responses/ForbiddenError" "404": $ref: "#/components/responses/NotFoundError" "500": $ref: "#/components/responses/InternalServerError" /v1/recurring_grants: get: summary: List Recurring Grants description: |- Returns a list of all recurring grants for a given Connect. This API allows for paginating over many results. operationId: list-recurring-grants tags: - recurring_grants security: - bearerAuth: [] parameters: - name: connect_id in: query description: the `id` of the Connect object. This can be used to filter the recurring grants by a specific Connect if you have more than one. schema: type: string required: false example: "live_2d821da0ed8bc7256e260f4eb5244f2d8f06c576342f922ba2f0a416d8c98002" - name: pageLimit in: query description: the number of results to return; defaults to 10, max is 100 schema: type: integer default: 10 - name: pageToken in: query description: |- A token to use to retrieve the next page of results. This is useful for paginating over many pages of results. If set, all other arguments are expected to be kept the same as previous calls and the value of this field should be from the nextPageToken in the previous response. schema: type: string responses: "200": $ref: "#/components/responses/ListRecurringGrantsResponse" "400": $ref: "#/components/responses/BadRequestError" "401": $ref: "#/components/responses/AuthenticationError" "403": $ref: "#/components/responses/ForbiddenError" "500": $ref: "#/components/responses/InternalServerError" post: summary: Create Recurring Grant description: |- Create and submit a new recurring grant. This should be used to capture a recurring grant intent from an authorized DAFpay workflow session and submit the recurring grant request to the DAF sponsor. Error handling: - The recurring grant must be captured within 15 minutes of authorization otherwise the request will return status `410 Gone`. - A recurring grant can only be captured once from any given workflow session so any duplicate requests will return status `409 Conflict`. - The amount must be in whole dollar increments (rounded to the nearest hundred) as currently DAFs only accept whole dollar grants otherwise the request will return status `400 Bad Request`. - The amount must be greater than or equal to the minimum grant amount for the DAF otherwise the request will return status `400 Bad Request`. - The amount must be less than or equal to the user's DAF account balance otherwise the request will return status `400 Bad Request`. - Any inputs exceeding the maximum allowed length will be automatically truncated unless otherwise stated. operationId: create-recurring-grant tags: - recurring_grants security: - bearerAuth: [] requestBody: $ref: "#/components/requestBodies/RecurringGrantCaptureRequest" responses: "201": description: Created recurring grant headers: X-Request-Id: $ref: "#/components/headers/X-Request-Id" Location: description: The URI reference of the created recurring grant object. schema: type: string format: uri content: application/json: schema: $ref: "#/components/schemas/RecurringGrant" examples: Simple: $ref: "#/components/examples/RecurringGrantOutput" "400": $ref: "#/components/responses/BadRequestError" "401": $ref: "#/components/responses/AuthenticationError" "403": $ref: "#/components/responses/ForbiddenError" "404": $ref: "#/components/responses/NotFoundError" "409": $ref: "#/components/responses/ConflictError" "410": $ref: "#/components/responses/GoneError" "500": $ref: "#/components/responses/InternalServerError" /v1/recurring_grants/{id}: get: summary: Get Recurring Grant description: |- Retrieve a recurring grant with a given ID. operationId: get-recurring-grant tags: - recurring_grants security: - bearerAuth: [] parameters: - name: id in: path description: |- The unique id of the recurring grant. The format should be a v4 UUID according to RFC 4122. schema: type: string format: uuid required: true example: 10229488-08d2-4629-b70c-a2f4f4d25344 responses: "200": description: OK headers: X-Request-Id: $ref: "#/components/headers/X-Request-Id" content: application/json: schema: $ref: "#/components/schemas/RecurringGrant" examples: Simple: $ref: "#/components/examples/RecurringGrantOutput" "400": $ref: "#/components/responses/BadRequestError" "401": $ref: "#/components/responses/AuthenticationError" "403": $ref: "#/components/responses/ForbiddenError" "404": $ref: "#/components/responses/NotFoundError" "500": $ref: "#/components/responses/InternalServerError" /v1/unintegrated_grants: get: summary: List Unintegrated Grants description: |- Returns a list of all unintegrated grants for a given Connect. This API allows for paginating over many results. operationId: list-unintegrated-grants tags: - unintegrated_grants security: - bearerAuth: [] parameters: - name: connect_id in: query description: the `id` of the Connect object. This can be used to filter the unintegrated grants by a specific Connect if you have more than one. schema: type: string required: false example: "live_2d821da0ed8bc7256e260f4eb5244f2d8f06c576342f922ba2f0a416d8c98002" - name: pageLimit in: query description: the number of results to return; defaults to 10, max is 100 schema: type: integer default: 10 - name: pageToken in: query description: |- A token to use to retrieve the next page of results. This is useful for paginating over many pages of results. If set, all other arguments are expected to be kept the same as previous calls and the value of this field should be from the nextPageToken in the previous response. schema: type: string responses: "200": $ref: "#/components/responses/ListUnintegratedGrantsResponse" "400": $ref: "#/components/responses/BadRequestError" "401": $ref: "#/components/responses/AuthenticationError" "403": $ref: "#/components/responses/ForbiddenError" "500": $ref: "#/components/responses/InternalServerError" /v1/unintegrated_grants/{id}: get: summary: Get Unintegrated Grant description: |- Retrieve an unintegrated grant with a given ID. operationId: get-unintegrated-grant tags: - unintegrated_grants security: - bearerAuth: [] parameters: - name: id in: path description: |- The unique id of the unintegrated grant. The format should be a v4 UUID according to RFC 4122. schema: type: string format: uuid required: true example: 10229488-08d2-4629-b70c-a2f4f4d25344 responses: "200": description: OK headers: X-Request-Id: $ref: "#/components/headers/X-Request-Id" content: application/json: schema: $ref: "#/components/schemas/UnintegratedGrant" examples: Simple: $ref: "#/components/examples/UnintegratedGrantOutput" "400": $ref: "#/components/responses/BadRequestError" "401": $ref: "#/components/responses/AuthenticationError" "403": $ref: "#/components/responses/ForbiddenError" "404": $ref: "#/components/responses/NotFoundError" "500": $ref: "#/components/responses/InternalServerError" /v1/dafs: get: summary: List Donor Advised Funds description: |- Returns a list of all Donor Advised Funds within Chariot's system. This API allows for paginating over many results. If there are DAFs missing from the list, please contact support at support@givechariot.com. operationId: list-dafs tags: - Donor Advised Funds security: - bearerAuth: [] parameters: - name: supportedOnly in: query description: |- If set to true, filters DAFs to only those that have a direct integration with Chariot. schema: type: boolean default: false - name: query in: query description: |- If included, filters DAFs to only those that contain the query. This parameter is case insensitive. schema: type: string - name: pageLimit in: query description: the number of results to return; defaults to 10, max is 100 schema: type: integer default: 10 - name: pageToken in: query description: |- A token to use to retrieve the next page of results. This is useful for paginating over many pages of results. If set, all other arguments are expected to be kept the same as previous calls. schema: type: string responses: "200": $ref: "#/components/responses/ListDafsResponse" "400": $ref: "#/components/responses/BadRequestError" "401": $ref: "#/components/responses/AuthenticationError" "500": $ref: "#/components/responses/InternalServerError" /v1/dafs/{id}: get: summary: Get Donor Advised Fund description: |- Retrieve a DAF with a given ID. operationId: get-daf tags: - Donor Advised Funds security: - bearerAuth: [] parameters: - name: id in: path description: |- The unique id of the DAF. The format should be a v4 UUID according to RFC 4122. schema: type: string format: uuid required: true example: f9e28217-e0f7-4a54-9764-d664ffb10722 responses: "200": description: "OK" headers: X-Request-Id: $ref: "#/components/headers/X-Request-Id" content: application/json: schema: $ref: "#/components/schemas/Daf" examples: Npt: $ref: "#/components/examples/DafOutput" "400": $ref: "#/components/responses/BadRequestError" "401": $ref: "#/components/responses/AuthenticationError" "404": $ref: "#/components/responses/NotFoundError" "500": $ref: "#/components/responses/InternalServerError" /v1/events: get: summary: List Events description: |- List all events corresponding to your Chariot account. operationId: listEvents tags: - Events security: - bearerAuth: [] parameters: - name: limit in: query description: Limit the size of the list that is returned. The default (and maximum) is 100 objects. required: false schema: type: integer format: int32 - name: cursor in: query description: The cursor to use for pagination. If not set, the first page of results will be returned. required: false schema: type: string - name: category in: query description: | Filter Events for those with the specified category. required: false schema: $ref: "#/components/schemas/EventCategory" responses: "200": $ref: "#/components/responses/ListEventsResponse" "400": $ref: "#/components/responses/BadRequestError" "401": $ref: "#/components/responses/AuthenticationError" "403": $ref: "#/components/responses/ForbiddenError" "500": $ref: "#/components/responses/InternalServerError" /v1/events/{id}: get: summary: Get Event description: |- Retrieve an event with the given ID. operationId: getEvent tags: - Events security: - bearerAuth: [] parameters: - name: id in: path description: The unique id for the event required: true schema: type: string responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/Event" "400": $ref: "#/components/responses/BadRequestError" "401": $ref: "#/components/responses/AuthenticationError" "403": $ref: "#/components/responses/ForbiddenError" "404": $ref: "#/components/responses/NotFoundError" "500": $ref: "#/components/responses/InternalServerError" /v1/event_subscriptions: post: summary: Create an Event Subscription description: |- Create an event subscription corresponding to your Chariot account. operationId: createEventSubscription tags: - Event Subscriptions security: - bearerAuth: [] requestBody: $ref: "#/components/requestBodies/CreateEventSubscriptionRequest" responses: "201": description: Created headers: Location: $ref: "#/components/headers/Location" content: application/json: schema: $ref: "#/components/schemas/EventSubscription" "400": $ref: "#/components/responses/BadRequestError" "401": $ref: "#/components/responses/AuthenticationError" "403": $ref: "#/components/responses/ForbiddenError" "404": $ref: "#/components/responses/NotFoundError" "500": $ref: "#/components/responses/InternalServerError" get: summary: List Event Subscriptions description: |- List all event subscriptions corresponding to your Chariot account. operationId: listEventSubscriptions tags: - Event Subscriptions security: - bearerAuth: [] parameters: - name: limit in: query description: Limit the size of the list that is returned. The default (and maximum) is 100 objects. required: false schema: type: integer format: int32 - name: cursor in: query description: The cursor to use for pagination. If not set, the first page of results will be returned. required: false schema: type: string responses: "200": $ref: "#/components/responses/ListEventSubscriptionsResponse" "400": $ref: "#/components/responses/BadRequestError" "401": $ref: "#/components/responses/AuthenticationError" "403": $ref: "#/components/responses/ForbiddenError" "500": $ref: "#/components/responses/InternalServerError" /v1/event_subscriptions/{id}: get: summary: Get an Event Subscription description: |- Retrieve an event subscription with the given ID. operationId: getEventSubscription tags: - Event Subscriptions security: - bearerAuth: [] parameters: - name: id in: path description: The unique identifier for the event subscription required: true schema: type: string responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/EventSubscription" "400": $ref: "#/components/responses/BadRequestError" "401": $ref: "#/components/responses/AuthenticationError" "403": $ref: "#/components/responses/ForbiddenError" "404": $ref: "#/components/responses/NotFoundError" "500": $ref: "#/components/responses/InternalServerError" patch: summary: Update an Event Subscription description: |- Update an event subscription with the given ID. operationId: updateEventSubscription tags: - Event Subscriptions security: - bearerAuth: [] parameters: - name: id in: path description: The unique identifier for the event subscription required: true schema: type: string requestBody: $ref: "#/components/requestBodies/UpdateEventSubscriptionRequest" responses: "200": description: Updated content: application/json: schema: $ref: "#/components/schemas/EventSubscription" "400": $ref: "#/components/responses/BadRequestError" "401": $ref: "#/components/responses/AuthenticationError" "403": $ref: "#/components/responses/ForbiddenError" "404": $ref: "#/components/responses/NotFoundError" "500": $ref: "#/components/responses/InternalServerError" /v1/financial_accounts: get: summary: List financial accounts description: | Returns a list of financial accounts. operationId: listFinancialAccounts tags: - financial_accounts security: - bearerAuth: [] responses: "200": $ref: "#/components/responses/ListFinancialAccountsResponse" "400": $ref: "#/components/responses/BadRequestError" "401": $ref: "#/components/responses/AuthenticationError" "403": $ref: "#/components/responses/ForbiddenError" "500": $ref: "#/components/responses/InternalServerError" /v1/financial_accounts/{id}: get: summary: Get a financial account description: | Get a financial account by its unique identifier. operationId: getFinancialAccount tags: - financial_accounts security: - bearerAuth: [] parameters: - name: id in: path description: The unique identifier for the financial account required: true schema: type: string example: "account_01jpjenf5q6cawy43yxfcrxhct" responses: "200": description: The financial account was retrieved content: application/json: schema: $ref: "#/components/schemas/FinancialAccount" "400": $ref: "#/components/responses/BadRequestError" "401": $ref: "#/components/responses/AuthenticationError" "403": $ref: "#/components/responses/ForbiddenError" "404": $ref: "#/components/responses/NotFoundError" "500": $ref: "#/components/responses/InternalServerError" /v1/financial_accounts/{id}/balance: get: summary: Get a financial account balance description: | Get a financial account balance by its unique identifier. operationId: getFinancialAccountBalance tags: - financial_accounts security: - bearerAuth: [] parameters: - name: id in: path description: The unique identifier for the financial account required: true schema: type: string example: "account_01jpjenf5q6cawy43yxfcrxhct" responses: "200": description: The financial account was retrieved content: application/json: schema: $ref: "#/components/schemas/FinancialAccountBalance" "400": $ref: "#/components/responses/BadRequestError" "401": $ref: "#/components/responses/AuthenticationError" "403": $ref: "#/components/responses/ForbiddenError" "404": $ref: "#/components/responses/NotFoundError" "500": $ref: "#/components/responses/InternalServerError" /v1/verification_requests: post: summary: Create a verification request description: | Request verification of an unlisted organization. If the organization cannot be found through Chariot's search, you can submit a verification request so that Chariot's compliance team can review and verify the organization. operationId: createVerificationRequest tags: - verificationRequests security: - bearerAuth: [] requestBody: $ref: "#/components/requestBodies/CreateVerificationRequestRequest" responses: "201": description: The verification request was created headers: Location: $ref: "#/components/headers/Location" content: application/json: schema: $ref: "#/components/schemas/VerificationRequest" "400": $ref: "#/components/responses/BadRequestError" "401": $ref: "#/components/responses/AuthenticationError" "403": $ref: "#/components/responses/ForbiddenError" "409": $ref: "#/components/responses/ConflictError" "412": $ref: "#/components/responses/PreconditionFailedError" get: summary: List verification requests description: | Returns a paginated list of all verification requests for the authenticated grantmaker. operationId: listVerificationRequests tags: - verificationRequests security: - bearerAuth: [] parameters: - name: ein in: query description: Filter by EIN. If provided, only returns verification requests matching this EIN. required: false schema: type: string - name: page_limit in: query description: Limit the size of the list that is returned. The default (and maximum) is 100 objects. required: false schema: type: integer format: int32 - name: page_token in: query description: |- A token to use to retrieve the next page of results. required: false schema: type: string responses: "200": $ref: "#/components/responses/ListVerificationRequestsResponse" "400": $ref: "#/components/responses/BadRequestError" "401": $ref: "#/components/responses/AuthenticationError" "403": $ref: "#/components/responses/ForbiddenError" "500": $ref: "#/components/responses/InternalServerError" /v1/verification_requests/{id}: get: summary: Get a verification request description: | Get a specific verification request by its unique identifier. operationId: getVerificationRequest tags: - verificationRequests security: - bearerAuth: [] parameters: - name: id in: path description: The unique identifier of the verification request required: true schema: type: string responses: "200": description: The verification request headers: X-Request-Id: $ref: "#/components/headers/X-Request-Id" content: application/json: schema: $ref: "#/components/schemas/VerificationRequest" "401": $ref: "#/components/responses/AuthenticationError" "403": $ref: "#/components/responses/ForbiddenError" "404": $ref: "#/components/responses/NotFoundError" "500": $ref: "#/components/responses/InternalServerError" /v1/disbursements: post: summary: Create a disbursement description: | Create a disbursement to send money to an organization. operationId: createDisbursement tags: - disbursements security: - bearerAuth: [] requestBody: $ref: "#/components/requestBodies/CreateDisbursementRequest" responses: "201": description: The disbursement was created headers: Location: $ref: "#/components/headers/Location" content: application/json: schema: $ref: "#/components/schemas/Disbursement" "400": $ref: "#/components/responses/BadRequestError" "401": $ref: "#/components/responses/AuthenticationError" "403": $ref: "#/components/responses/ForbiddenError" "409": $ref: "#/components/responses/ConflictError" get: summary: List disbursements description: | Returns a list of disbursements. operationId: listDisbursements tags: - disbursements security: - bearerAuth: [] parameters: - name: organization_id in: query description: The unique identifier for the organization required: false schema: type: string example: "org_01j8rs605a4gctmbm58d87mvsj" - name: page_limit in: query description: Limit the size of the list that is returned. The default (and maximum) is 100 objects. required: false schema: type: integer format: int32 - name: next_page_token in: query description: |- A token to use to retrieve the next page of results. This is useful for paginating over many pages of results. If set, all other arguments are expected to be kept the same as previous calls and the value of this field should be from the nextPageToken in the previous response. required: false schema: type: string - name: includes in: query description: |- A comma separated list of fields to include in the response. Possible values include: - `organization`: Include the organization object in the response. required: false schema: type: string example: "organization" responses: "200": $ref: "#/components/responses/ListDisbursementsResponse" "400": $ref: "#/components/responses/BadRequestError" "401": $ref: "#/components/responses/AuthenticationError" "403": $ref: "#/components/responses/ForbiddenError" "500": $ref: "#/components/responses/InternalServerError" /v1/disbursements/bulk: post: summary: Create multiple disbursements description: | Create multiple disbursements in a single request. This is useful for batch operations where you need to create many disbursements at once. All disbursements in the request will be created together. If any disbursement fails validation, the entire request will fail and no disbursements will be created. operationId: bulkCreateDisbursements tags: - disbursements security: - bearerAuth: [] requestBody: required: true content: application/json: schema: type: object required: - disbursements properties: disbursements: type: array description: Array of disbursements to create minItems: 1 items: $ref: "#/components/schemas/CreateDisbursementInput" responses: "201": description: The disbursements were created content: application/json: schema: type: object required: - disbursements - count properties: disbursements: type: array items: $ref: "#/components/schemas/Disbursement" count: type: integer description: The number of disbursements created example: 5 "400": $ref: "#/components/responses/BadRequestError" "401": $ref: "#/components/responses/AuthenticationError" "403": $ref: "#/components/responses/ForbiddenError" "409": $ref: "#/components/responses/ConflictError" /v1/disbursements/{id}: get: summary: Get a disbursement description: | Get a disbursement by its unique identifier. operationId: getDisbursement tags: - disbursements security: - bearerAuth: [] parameters: - name: id in: path description: The unique identifier for the disbursement required: true schema: type: string example: "disbursement_01jpjen1s23s29kkmnjsb6fzga" responses: "200": description: The disbursement was retrieved content: application/json: schema: $ref: "#/components/schemas/Disbursement" "400": $ref: "#/components/responses/BadRequestError" "401": $ref: "#/components/responses/AuthenticationError" "403": $ref: "#/components/responses/ForbiddenError" "404": $ref: "#/components/responses/NotFoundError" "500": $ref: "#/components/responses/InternalServerError" /v1/disbursements/{id}/approve: post: summary: Approve a disbursement description: | Approve a disbursement in a pending_approval state. If the disbursement is in a different state, this will return a 400 error. operationId: approveDisbursement tags: - disbursements security: - bearerAuth: [] parameters: - name: id in: path description: The unique identifier for the disbursement required: true schema: type: string example: "disbursement_01jpjen1s23s29kkmnjsb6fzga" responses: "200": description: The disbursement was approved content: application/json: schema: $ref: "#/components/schemas/Disbursement" "400": $ref: "#/components/responses/BadRequestError" "401": $ref: "#/components/responses/AuthenticationError" "403": $ref: "#/components/responses/ForbiddenError" "404": $ref: "#/components/responses/NotFoundError" "500": $ref: "#/components/responses/InternalServerError" /v1/disbursements/approve: post: summary: Approve multiple disbursements description: | Approve multiple disbursements in a single request. This is useful for batch approval operations. All disbursements must be in the `pending_approval` state. If any disbursement cannot be approved, the entire request will fail and no disbursements will be approved. operationId: bulkApproveDisbursements tags: - disbursements security: - bearerAuth: [] requestBody: required: true content: application/json: schema: type: object required: - disbursement_ids properties: disbursement_ids: type: array description: Array of disbursement IDs to approve minItems: 1 items: type: string example: "disbursement_01jpjen1s23s29kkmnjsb6fzga" responses: "200": description: The disbursements were approved content: application/json: schema: type: object required: - disbursements - count properties: disbursements: type: array items: $ref: "#/components/schemas/Disbursement" count: type: integer description: The number of disbursements approved example: 5 "400": $ref: "#/components/responses/BadRequestError" "401": $ref: "#/components/responses/AuthenticationError" "403": $ref: "#/components/responses/ForbiddenError" "404": $ref: "#/components/responses/NotFoundError" "500": $ref: "#/components/responses/InternalServerError" /v1/disbursements/{id}/cancel: post: summary: Cancel a pending disbursement description: | Cancel a pending disbursement in a pending_approval state. If the disbursement is in a different state, this will return a 400 error. operationId: cancelDisbursement tags: - disbursements security: - bearerAuth: [] parameters: - name: id in: path description: The unique identifier for the disbursement required: true schema: type: string example: "disbursement_01jpjen1s23s29kkmnjsb6fzga" responses: "200": description: The disbursement was canceled content: application/json: schema: $ref: "#/components/schemas/Disbursement" "400": $ref: "#/components/responses/BadRequestError" "401": $ref: "#/components/responses/AuthenticationError" "403": $ref: "#/components/responses/ForbiddenError" "404": $ref: "#/components/responses/NotFoundError" "500": $ref: "#/components/responses/InternalServerError" /v1/disbursements/{id}/stop: post: summary: Stop payment for a disbursement description: | Stop payment for a disbursement sent via check. This prevents the recipient from depositing the check. If the check has already been deposited, the stop payment request will fail. **Requirements:** - Disbursement must be in `submitted` status - Disbursement must be sent via check - Check must not have already been deposited After successfully stopping payment, the disbursement status will be updated to `stopped`. operationId: stopDisbursement tags: - disbursements security: - bearerAuth: [] parameters: - name: id in: path description: The unique identifier for the disbursement required: true schema: type: string example: "disbursement_01jpjen1s23s29kkmnjsb6fzga" requestBody: $ref: "#/components/requestBodies/StopDisbursementRequest" responses: "202": description: The stop payment request was accepted "400": $ref: "#/components/responses/BadRequestError" "401": $ref: "#/components/responses/AuthenticationError" "403": $ref: "#/components/responses/ForbiddenError" "404": $ref: "#/components/responses/NotFoundError" "412": $ref: "#/components/responses/PreconditionFailedError" "500": $ref: "#/components/responses/InternalServerError" /v1/simulations/disbursements/{id}/complete: post: summary: "Sandbox: Complete a disbursement" description: | Simulates successful disbursement completion for testing purposes. The disbursement must have a status of `submitted`. After calling this endpoint, the disbursement status will be updated to `completed`. This API is only available in the sandbox environment. operationId: simulateDisbursementCompletion tags: - disbursements security: - bearerAuth: [] parameters: - name: id in: path description: The unique identifier for the disbursement required: true schema: type: string example: "disbursement_01jpjen1s23s29kkmnjsb6fzga" responses: "202": description: The disbursement completion request was accepted "400": $ref: "#/components/responses/BadRequestError" "401": $ref: "#/components/responses/AuthenticationError" "403": $ref: "#/components/responses/ForbiddenError" "404": $ref: "#/components/responses/NotFoundError" "500": $ref: "#/components/responses/InternalServerError" /v1/simulations/disbursements/{id}/fail: post: summary: "Sandbox: Fail a disbursement" description: | Simulates a payment failure or return for testing purposes. The disbursement must have a status of `submitted`. This only applies for disbursements sent via ACH or check. - **ACH disbursements**: Status becomes `failed` (payment was returned and cannot be retried) - **Check disbursements**: Status becomes `validating_organization` (check was returned). When this happens, Chariot will investigate why the check failed to reach the organization, update any required recipient information (such as mailing address or organization contact details), and automatically reattempt payout once the issue is resolved. This API is only available in the sandbox environment. operationId: simulateDisbursementFailure tags: - disbursements security: - bearerAuth: [] parameters: - name: id in: path description: The unique identifier for the disbursement required: true schema: type: string example: "disbursement_01jpjen1s23s29kkmnjsb6fzga" responses: "202": description: The disbursement failure simulation was accepted "400": $ref: "#/components/responses/BadRequestError" "401": $ref: "#/components/responses/AuthenticationError" "403": $ref: "#/components/responses/ForbiddenError" "404": $ref: "#/components/responses/NotFoundError" "500": $ref: "#/components/responses/InternalServerError" /v1/inbound_transfers: post: summary: Create an Inbound transfer description: |- Create an inbound transfer to fund your financial account from an externally linked bank account. In Production, this requires that an external bank account has been setup and verified for your account through the Chariot Dashboard. operationId: createInboundTransfer tags: - inboundTransfers security: - bearerAuth: [] parameters: - name: Idempotency-Key in: header description: The idempotency key for the request required: false schema: type: string requestBody: $ref: "#/components/requestBodies/CreateInboundTransferRequest" responses: "201": description: The inbound transfer was created headers: Location: $ref: "#/components/headers/Location" Idempotency-Key: $ref: "#/components/headers/Idempotency-Key" content: application/json: schema: $ref: "#/components/schemas/InboundTransfer" "400": $ref: "#/components/responses/BadRequestError" "401": $ref: "#/components/responses/AuthenticationError" "403": $ref: "#/components/responses/ForbiddenError" "409": $ref: "#/components/responses/ConflictError" "500": $ref: "#/components/responses/InternalServerError" get: summary: List Inbound Transfers description: |- List inbound transfers for your account. operationId: listInboundTransfers tags: - inboundTransfers security: - bearerAuth: [] parameters: - name: limit in: query description: Limit the size of the list that is returned. The default (and maximum) is 100 objects. required: false schema: type: integer format: int32 - name: pageToken in: query description: The cursor to use for pagination. If not set, the first page of results will be returned. required: false schema: type: string responses: "200": $ref: "#/components/responses/ListInboundTransfersResponse" "400": $ref: "#/components/responses/BadRequestError" "401": $ref: "#/components/responses/AuthenticationError" "403": $ref: "#/components/responses/ForbiddenError" "404": $ref: "#/components/responses/NotFoundError" "500": $ref: "#/components/responses/InternalServerError" /v1/inbound_transfers/{id}: get: summary: Get an Inbound Transfer description: |- Get an inbound transfer by its unique identifier. operationId: getInboundTransfer tags: - inboundTransfers security: - bearerAuth: [] parameters: - name: id in: path description: The unique identifier for the inbound transfer required: true schema: type: string example: "inbound_transfer_01j8rs605a4gctmbm58d87mvsj" responses: "200": description: The inbound transfer was retrieved content: application/json: schema: $ref: "#/components/schemas/InboundTransfer" "400": $ref: "#/components/responses/BadRequestError" "401": $ref: "#/components/responses/AuthenticationError" "403": $ref: "#/components/responses/ForbiddenError" "404": $ref: "#/components/responses/NotFoundError" "500": $ref: "#/components/responses/InternalServerError" /v1/inbound_transfers/{id}/cancel: post: summary: Cancel an Inbound Transfer description: |- Cancel an inbound transfer. Returns the Inbound Transfer object if the cancelation succeeded. Returns a 412 Precondition Failed if the Inbound Transfer has already been canceled or cannot be canceled. operationId: cancelInboundTransfer tags: - inboundTransfers security: - bearerAuth: [] parameters: - name: id in: path description: The unique identifier for the inbound transfer required: true schema: type: string example: "inbound_transfer_01j8rs605a4gctmbm58d87mvsj" responses: "200": description: The inbound transfer was canceled content: application/json: schema: $ref: "#/components/schemas/InboundTransfer" "400": $ref: "#/components/responses/BadRequestError" "401": $ref: "#/components/responses/AuthenticationError" "403": $ref: "#/components/responses/ForbiddenError" "404": $ref: "#/components/responses/NotFoundError" "409": $ref: "#/components/responses/ConflictError" "412": $ref: "#/components/responses/PreconditionFailedError" "500": $ref: "#/components/responses/InternalServerError" /v1/simulations/inbound_transfers/{id}/fail: post: summary: "Sandbox: Fail an Inbound Transfer" description: |- Simulate an inbound transfer failure. This API is only available in the sandbox environment. operationId: simulateInboundTransferFailure tags: - inboundTransfers security: - bearerAuth: [] parameters: - name: id in: path description: The unique identifier for the inbound transfer required: true schema: type: string example: "inbound_transfer_01j8rs605a4gctmbm58d87mvsj" responses: "202": description: The inbound transfer failure request was accepted "400": $ref: "#/components/responses/BadRequestError" "401": $ref: "#/components/responses/AuthenticationError" "403": $ref: "#/components/responses/ForbiddenError" "404": $ref: "#/components/responses/NotFoundError" "500": $ref: "#/components/responses/InternalServerError" /v1/simulations/inbound_transfers/{id}/complete: post: summary: "Sandbox: Complete an Inbound Transfer" description: |- Simulate an inbound transfer completion. This API is only available in the sandbox environment. operationId: simulateInboundTransferCompletion tags: - inboundTransfers security: - bearerAuth: [] parameters: - name: id in: path description: The unique identifier for the inbound transfer required: true schema: type: string example: "inbound_transfer_01j8rs605a4gctmbm58d87mvsj" responses: "202": description: The inbound transfer completion request was accepted "400": $ref: "#/components/responses/BadRequestError" "401": $ref: "#/components/responses/AuthenticationError" "403": $ref: "#/components/responses/ForbiddenError" "404": $ref: "#/components/responses/NotFoundError" "500": $ref: "#/components/responses/InternalServerError" /v1/payment_sources: get: summary: List Payment Sources description: |- List payment sources for your Chariot account. Payment Sources represent segregated addresses for incoming deposits. In practice, this can be separate electronic bank addresses (account + routing numbers) or physical mailing addresses (lockboxes). Payment Sources make it easy to independently manage and consolidate incoming payments and donations from different sources which in turn makes reconciliation of money and data seamless. Every Payment Source belongs to a specific Financial Account and can be thought of as a gateway/door for money to flow into the Financial Account. Payment Sources are not separately ledgered which means you can't get the balance of a Payment Source separately from the Financial Account. Payment Sources should be setup and managed through the Chariot Dashboard. operationId: listPaymentSources tags: - paymentSources security: - bearerAuth: [] parameters: - name: limit in: query description: Limit the size of the list that is returned. The default (and maximum) is 100 objects. required: false schema: type: integer format: int32 - name: page_token in: query description: The cursor to use for pagination. If not set, the first page of results will be returned. required: false schema: type: string responses: "200": $ref: "#/components/responses/ListPaymentSourcesResponse" "400": $ref: "#/components/responses/BadRequestError" "401": $ref: "#/components/responses/AuthenticationError" "403": $ref: "#/components/responses/ForbiddenError" "500": $ref: "#/components/responses/InternalServerError" /v1/payment_sources/{id}: get: summary: Get a Payment Source description: |- Get a payment source by its unique identifier. A Payment Source represents a segregated address for incoming deposits. In practice, this can be separate electronic bank addresses (account + routing numbers) or physical mailing addresses (lockboxes). Payment Sources make it easy to independently manage and consolidate incoming payments and donations from different sources which in turn makes reconciliation of money and data seamless. Every Payment Source belongs to a specific Financial Account and can be thought of as a gateway/door for money to flow into the Financial Account. Payment Sources are not separately ledgered which means you can't get the balance of a Payment Source separately from the Financial Account. Payment Sources should be setup and managed through the Chariot Dashboard. operationId: getPaymentSource tags: - paymentSources security: - bearerAuth: [] parameters: - name: id in: path description: The unique identifier for the payment source required: true schema: type: string example: "payment_source_01j8rs605a4gctmbm58d87mvsj" responses: "200": description: Successfully retrieved the payment source. content: application/json: schema: $ref: "#/components/schemas/PaymentSource" "400": $ref: "#/components/responses/BadRequestError" "401": $ref: "#/components/responses/AuthenticationError" "403": $ref: "#/components/responses/ForbiddenError" "404": $ref: "#/components/responses/NotFoundError" "500": $ref: "#/components/responses/InternalServerError" /v1/donations: get: summary: List Donations description: |- List donations for your account. operationId: listDonations tags: - donations security: - bearerAuth: [] parameters: - name: limit in: query description: Limit the size of the list that is returned. The default (and maximum) is 100 objects. required: false schema: type: integer format: int32 - name: page_token in: query description: The cursor to use for pagination. If not set, the first page of results will be returned. required: false schema: type: string - name: payment_source_id in: query description: The unique identifier for the payment sources to filter donations by. Comma separated list of payment source IDs. required: false schema: type: string example: "payment_source_01j8rs605a4gctmbm58d87mvsj" - name: deposit_id in: query description: The unique identifier for the deposit to filter donations by. required: false schema: type: string example: "deposit_01j8rs605a4gctmbm58d87mvsj" - name: created_at.after in: query description: Return donations created after the given date and time. required: false schema: type: string format: date-time - name: created_at.before in: query description: Return donations created before the given date and time. required: false schema: type: string format: date-time responses: "200": $ref: "#/components/responses/ListDonationsResponse" "400": $ref: "#/components/responses/BadRequestError" "401": $ref: "#/components/responses/AuthenticationError" "403": $ref: "#/components/responses/ForbiddenError" "500": $ref: "#/components/responses/InternalServerError" /v1/donations/{id}: get: summary: Get a Donation description: |- Get a donation by its unique identifier. operationId: getDonation tags: - donations security: - bearerAuth: [] parameters: - name: id in: path description: The unique identifier for the donation required: true schema: type: string example: "donation_01j8rs605a4gctmbm58d87mvsj" responses: "200": description: The donation was retrieved content: application/json: schema: $ref: "#/components/schemas/Donation" "400": $ref: "#/components/responses/BadRequestError" "401": $ref: "#/components/responses/AuthenticationError" "403": $ref: "#/components/responses/ForbiddenError" "404": $ref: "#/components/responses/NotFoundError" "500": $ref: "#/components/responses/InternalServerError" /v1/deposits: get: summary: List Deposits description: |- List deposits for your account. operationId: listDeposits tags: - deposits security: - bearerAuth: [] parameters: - name: limit in: query description: Limit the size of the list that is returned. The default (and maximum) is 100 objects. required: false schema: type: integer format: int32 - name: page_token in: query description: The cursor to use for pagination. If not set, the first page of results will be returned. required: false schema: type: string - name: payment_source_id in: query description: The unique identifier for the payment sources to filter deposits by. Comma separated list of payment source IDs. required: false schema: type: string example: "payment_source_01j8rs605a4gctmbm58d87mvsj" - name: settled_at.after in: query description: Return deposits with a settled date and time after the given date and time. required: false schema: type: string format: date-time - name: settled_at.before in: query description: Return deposits with a settled date and time before the given date and time. required: false schema: type: string format: date-time responses: "200": $ref: "#/components/responses/ListDepositsResponse" "400": $ref: "#/components/responses/BadRequestError" "401": $ref: "#/components/responses/AuthenticationError" "403": $ref: "#/components/responses/ForbiddenError" "500": $ref: "#/components/responses/InternalServerError" /v1/deposits/{id}: get: summary: Get a Deposit description: |- Get a deposit by its unique identifier. operationId: getDeposit tags: - deposits security: - bearerAuth: [] parameters: - name: id in: path description: The unique identifier for the deposit required: true schema: type: string example: "deposit_01j8rs605a4gctmbm58d87mvsj" responses: "200": description: The deposit was retrieved content: application/json: schema: $ref: "#/components/schemas/Deposit" "400": $ref: "#/components/responses/BadRequestError" "401": $ref: "#/components/responses/AuthenticationError" "403": $ref: "#/components/responses/ForbiddenError" "404": $ref: "#/components/responses/NotFoundError" "500": $ref: "#/components/responses/InternalServerError" /v1/properties: get: summary: List Properties description: |- List properties for your account. operationId: listProperties tags: - properties security: - bearerAuth: [] parameters: - name: limit in: query description: Limit the size of the list that is returned. The default (and maximum) is 100 objects. required: false schema: type: integer format: int32 - name: page_token in: query description: The cursor to use for pagination. If not set, the first page of results will be returned. required: false schema: type: string - name: resource_type in: query description: The type of the resource that the properties are associated with. required: false schema: $ref: "#/components/schemas/ResourceType" responses: "200": $ref: "#/components/responses/ListPropertiesResponse" "400": $ref: "#/components/responses/BadRequestError" "401": $ref: "#/components/responses/AuthenticationError" "403": $ref: "#/components/responses/ForbiddenError" "500": $ref: "#/components/responses/InternalServerError" /v1/properties/{id}: get: summary: Get a Property description: |- Get a property by its unique identifier. operationId: getProperty tags: - properties security: - bearerAuth: [] parameters: - name: id in: path description: The unique identifier for the property required: true schema: type: string example: "prop_01j8rs605a4gctmbm58d87mvsj" responses: "200": description: The property was retrieved content: application/json: schema: $ref: "#/components/schemas/Property" "400": $ref: "#/components/responses/BadRequestError" "401": $ref: "#/components/responses/AuthenticationError" "403": $ref: "#/components/responses/ForbiddenError" "404": $ref: "#/components/responses/NotFoundError" "500": $ref: "#/components/responses/InternalServerError" /v1/properties/{id}/options: get: summary: List Property Options description: |- List all options for an enum or user property. operationId: listPropertyOptions tags: - properties security: - bearerAuth: [] parameters: - name: id in: path description: The unique identifier for the property required: true schema: type: string example: "prop_01j8rs605a4gctmbm58d87mvsj" - name: limit in: query description: Limit the size of the list that is returned. The default (and maximum) is 100 objects. required: false schema: type: integer format: int32 - name: page_token in: query description: The cursor to use for pagination. If not set, the first page of results will be returned. required: false schema: type: string responses: "200": $ref: "#/components/responses/ListPropertyOptionsResponse" "400": $ref: "#/components/responses/BadRequestError" "401": $ref: "#/components/responses/AuthenticationError" "403": $ref: "#/components/responses/ForbiddenError" "404": $ref: "#/components/responses/NotFoundError" "500": $ref: "#/components/responses/InternalServerError" /v1/properties/{id}/assign: post: summary: Assign a Property description: |- Appends a Property to one or more Donations or Deposits. A maximum of 100 resources can be assigned to a property at a time. The resource identifiers must be of the same resource_type as the Property, otherwise a 400 Bad Request error will be returned. operationId: assignProperty tags: - properties security: - bearerAuth: [] parameters: - name: id in: path description: The unique identifier for the property required: true schema: type: string example: "prop_01j8rs605a4gctmbm58d87mvsj" requestBody: $ref: "#/components/requestBodies/AssignPropertyRequest" responses: "200": $ref: "#/components/responses/AssignPropertyResponse" "400": $ref: "#/components/responses/BadRequestError" "401": $ref: "#/components/responses/AuthenticationError" "403": $ref: "#/components/responses/ForbiddenError" "404": $ref: "#/components/responses/NotFoundError" "500": $ref: "#/components/responses/InternalServerError" /v1/mailbox/upload_url: post: summary: Get a Batch Upload URL description: |- Returns a presigned URL for uploading a mailbox batch. A batch is a ZIP file containing TIFF images and a CSV index file. The CSV must conform to the [Batch Format](/v2026-01-15/guides/lockbox-providers/batch-format) specification. The `location_id` must match the format `po_` (e.g., `po_543`). The returned URL is a presigned S3 URL valid for 15 minutes. Upload the batch ZIP file using an HTTP PUT request to this URL. See the [Mail Uploads guide](/v2026-01-15/guides/lockbox-providers/mail-uploads) for details on the upload and rescan process. operationId: getMailboxUploadUrl tags: - mailbox security: - bearerAuth: [] requestBody: required: true content: application/json: schema: type: object required: - location_id properties: location_id: type: string description: The identifier of the PO box or lockbox location. Must match the format `po_`. example: "po_543" responses: "200": description: Successfully generated a presigned upload URL. content: application/json: schema: type: object properties: url: type: string description: The presigned URL to upload the batch ZIP file to via HTTP PUT. Expires after 15 minutes. example: "https://storage.example.com/upload?token=abc123" "400": $ref: "#/components/responses/BadRequestError" "401": $ref: "#/components/responses/AuthenticationError" "403": $ref: "#/components/responses/ForbiddenError" "500": $ref: "#/components/responses/InternalServerError" /v1/lockboxes/fulfill_request: post: summary: Fulfill a Lockbox Request description: |- Notifies Chariot that a new PO box has been provisioned by the lockbox provider. The `request_id` is a one-time unique value generated by Chariot for each PO box request. See the [Provisioning guide](/v2026-01-15/guides/lockbox-providers/provisioning) for the full provisioning flow. operationId: provisionMailbox tags: - mailbox security: - bearerAuth: [] requestBody: required: true content: application/json: schema: type: object required: - request_id - location_id - address properties: request_id: type: string description: The unique request identifier originally provided by Chariot when the PO box was requested. example: "123456789" location_id: type: string description: The identifier of the newly provisioned PO box. example: "po_9876" address: $ref: "#/components/schemas/Address" responses: "200": description: Indicates the PO box has been successfully provisioned. "400": $ref: "#/components/responses/BadRequestError" "401": $ref: "#/components/responses/AuthenticationError" "403": $ref: "#/components/responses/ForbiddenError" "500": $ref: "#/components/responses/InternalServerError" /v1/nonprofit_addresses: post: summary: Create Nonprofit Addresses description: |- Submit mailing addresses for one or more nonprofits. Uploaded addresses are used as suggestions for where to send disbursements. operationId: createNonprofitAddressSuggestion tags: - nonprofitAddresses security: - bearerAuth: [] requestBody: $ref: "#/components/requestBodies/CreateNonprofitAddressSuggestionRequest" responses: "200": description: All addresses were accepted. "400": $ref: "#/components/responses/BadRequestError" "401": $ref: "#/components/responses/AuthenticationError" "403": $ref: "#/components/responses/ForbiddenError" "404": $ref: "#/components/responses/NotFoundError" "500": $ref: "#/components/responses/InternalServerError" /v1/nonprofit_contacts: post: summary: Create Nonprofit Contacts description: |- Submit contact information for one or more nonprofits. Uploaded contacts are used as suggestions for who to notify about disbursements. operationId: createNonprofitContactSuggestion tags: - nonprofitContacts security: - bearerAuth: [] requestBody: $ref: "#/components/requestBodies/CreateNonprofitContactSuggestionRequest" responses: "200": description: All suggestions were accepted. "400": $ref: "#/components/responses/BadRequestError" "401": $ref: "#/components/responses/AuthenticationError" "403": $ref: "#/components/responses/ForbiddenError" "404": $ref: "#/components/responses/NotFoundError" "500": $ref: "#/components/responses/InternalServerError" components: securitySchemes: bearerAuth: type: http scheme: bearer schemas: OrganizationSummary: type: object description: |- A summary of an organization. required: - id - ein - name properties: id: type: string description: The unique identifier for the organization. example: org_01j8rs605a4gctmbm58d87mvsj ein: type: string description: The Employer Identification Number (EIN) or TaxID for the nonprofit entity. example: "123456789" name: type: string description: The name of the organization. example: American Red Cross daf_eligible: type: boolean description: Whether the organization is eligible to receive donations from a Donor Advised Fund. example: true city: type: string description: The city of the organization. example: New York state: type: string description: The state of the organization. example: NY SandboxSettlement: type: string description: |- The electronic rail on which disbursements to an onboarded sandbox organization settle. `SANDBOX_SETTLEMENT_ACCOUNT_TRANSFER` settles as an in-network transfer between accounts on the same bank. `SANDBOX_SETTLEMENT_ACH` settles via ACH across banks. enum: - SANDBOX_SETTLEMENT_ACCOUNT_TRANSFER - SANDBOX_SETTLEMENT_ACH Organization: type: object description: |- An `Organization` represents an operating nonprofit or an operating sub-organization of a parent or sponsoring nonprofit. The generally accepted identifier for an organization is its domain. This domain provides proof of identity, ownership and relationship to an entity. Organizations can receive payments from payers on the network. required: - id - ein - name properties: id: type: string readOnly: true description: The unique identifier for the object. example: org_01j8rs605a4gctmbm58d87mvsj ein: type: string description: The EIN of the organization. example: "123456789" name: type: string description: |- The name of the organization. For organizations that operate under a different name than the one tied to the legal entity, this name will differ from the name of the linked entity. This is also known as the "DBA" or "Doing Business As" name of the organization. example: American Red Cross parent_organization_id: type: string description: |- The unique identifier of the parent organization, if this is a sponsored organization. This value is `null` or empty if the organization is not sponsored or not a child of a parent organization. example: org_01j8rs605a4gctmbm58d87mvsk physical_address: $ref: "#/components/schemas/Address" classification: $ref: "#/components/schemas/NonprofitClassification" compliance: $ref: "#/components/schemas/NonprofitCompliance" mission_statement: type: string description: The mission statement of the organization example: To provide relief to those in need web: $ref: "#/components/schemas/WebDomain" brand: $ref: "#/components/schemas/Brand" officers: type: array description: The list of officers of the organization items: $ref: "#/components/schemas/Person" claimed: type: boolean readOnly: true description: |- A flag to indicate if the nonprofit has been claimed by a user. A nonprofit is claimed if a user signs up for a Chariot account with this nonprofit and is verified by the Chariot team. incorporation: $ref: "#/components/schemas/Incorporation" Incorporation: type: object description: |- Incorporation and IRS determination information for the nonprofit entity. properties: formation_year: type: string format: integer description: The year the organization was incorporated or formed. example: "2005" state: type: string description: The U.S. state where the organization is legally domiciled. example: AZ ruling_date: type: string description: |- The month and year on the IRS ruling or determination letter recognizing the organization's exempt status. Formatted as an ISO 8601 year-month string. example: "2020-07" NonprofitClassification: type: object description: |- A classification of the nonprofit entity as defined by the IRS. properties: group_exemption_number: type: string description: This is a four-digit internal IRS number assigned to central/parent entity holding group exemption letters. subsection_code: $ref: "#/components/schemas/TaxExemptCode" filing_requirement_code: $ref: "#/components/schemas/TaxExemptCode" foundation_code: $ref: "#/components/schemas/TaxExemptCode" affiliation_code: $ref: "#/components/schemas/TaxExemptCode" organization_code: $ref: "#/components/schemas/TaxExemptCode" exempt_status_code: $ref: "#/components/schemas/TaxExemptCode" deductibility_code: $ref: "#/components/schemas/TaxExemptCode" ntee_code: $ref: "#/components/schemas/NteeCode" naics_code: $ref: "#/components/schemas/NaicsCode" NonprofitCompliance: type: object description: |- An object that contains legal information about the nonprofit entity and its tax-exemption status. This information is used to comply with regulations and ensure the legitimacy of the nonprofit for purposes of donations and disbursements. properties: daf_eligible: type: boolean description: Whether the entity is eligible to receive donations from a Donor Advised Fund example: true irs_pub_78: $ref: "#/components/schemas/ComplianceRequirement" ofac: $ref: "#/components/schemas/ComplianceRequirement" foundation_code: $ref: "#/components/schemas/ComplianceRequirement" california_attorney_general_registry: $ref: "#/components/schemas/ComplianceRequirement" california_franchise_tax_board: $ref: "#/components/schemas/ComplianceRequirement" NonprofitAddressSuggestionEntry: type: object description: A mailing address uploaded for a nonprofit, identified by its EIN. required: - ein - line1 - city - state - zip properties: ein: type: string description: |- The EIN of the nonprofit this address belongs to. Accepted as either nine digits (`123456789`) or `XX-XXXXXXX`. example: "13-1635294" line1: type: string maxLength: 255 description: Street address. example: "431 18th Street NW" line2: type: string maxLength: 255 description: Optional suite, apartment, or unit. example: "Suite 200" city: type: string maxLength: 255 description: City. example: "Washington" state: type: string description: Two-letter US state code (uppercase). example: "DC" zip: type: string description: US ZIP code. Five digits, optionally followed by a four-digit extension. example: "20006" NonprofitContactSuggestionEntry: type: object description: A contact uploaded for a nonprofit, identified by its EIN. required: - ein - email properties: ein: type: string description: |- The EIN of the nonprofit this contact belongs to. Accepted as either nine digits (`123456789`) or `XX-XXXXXXX`. example: "13-1635294" email: type: string maxLength: 255 description: Email of the contact person at the nonprofit. example: "claims@redcross.org" phone: type: string maxLength: 255 description: Optional phone number for the contact. example: "2025551212" first_name: type: string maxLength: 255 description: Optional first name of the contact. example: "Sarah" last_name: type: string maxLength: 255 description: Optional last name of the contact. example: "Johnson" Person: type: object description: |- A person is an individual who is an officer of a nonprofit. required: - name properties: name: type: string description: The full name of the person title: type: string description: The title or role of the person with respect to the nonprofit entity example: Executive Director TaxExemptCode: type: object description: |- A tax exempt code is a code that is used to classify the tax-exempt status of a nonprofit entity. required: - name - code properties: code: type: integer description: The code of the tax exempt code example: 1 name: type: string description: The name of the tax exempt code example: "UNCONDITIONAL" description: type: string description: The description of the tax exempt code example: "Unconditional Exemption" NteeCode: type: object description: |- A code that is used to classify the nonprofit entity as defined by the IRS. required: - code - description properties: code: type: string description: The code of the NTEE code example: "A" description: type: string description: The description of the NTEE code example: "Animal Welfare" parent_code: type: string description: The parent code of the NTEE code example: "A" parent_description: type: string description: The description of the parent NTEE code example: "Animal Welfare" NaicsCode: type: object description: |- A code that is used to classify the nonprofit entity as defined by the NAICS. properties: naics2: type: string description: The code of the NAICS code example: "31" naics2_description: type: string description: The description of the NAICS code example: "Manufacturing" naics4: type: string description: The code of the NAICS code example: "3112" naics4_description: type: string description: The description of the NAICS code example: "Grain and Oilseed Milling" naics6: type: string description: The code of the NAICS code example: "311221" naics6_description: type: string description: The description of the NAICS code example: "Wet Corn Milling and Starch Manufacturing" ComplianceRequirement: type: object description: |- A compliance requirement is a requirement that a nonprofit entity must meet in order to be eligible for Chariot services. properties: compliant: type: boolean description: Whether the entity is compliant with the requirement example: true reason: type: string description: The reason for the compliance requirement last_found_at: type: string format: date-time description: The date and time when the compliance requirement was last found example: "2020-01-31T23:00:00Z" WebDomain: type: object description: |- A web domain is a unique identifier for a website or web application that is associated with an organization. Domains are important identity constructs that underpin the web and online interactions. The domain can be used as an identifier and its validity can be asserted via DNS. required: - domain properties: domain: type: string description: The DNS domain name example: "redcross.org" Brand: type: object description: |- Fair use brand assets that are associated with an organization and can be used for identification and informational purposes. properties: icon_url: type: string description: The URL of the organization's icon logo_url: type: string description: The URL of the organization's logo PaymentSource: type: object description: |- A Payment Source represents a segregated address for incoming deposits. In practice, this can be separate electronic bank addresses (account + routing numbers) or physical mailing addresses (lockboxes). Payment Sources make it easy to independently manage and consolidate incoming payments and donations from different sources which in turn makes reconciliation of money and data seamless. Every Payment Source belongs to a specific Financial Account and can be thought of as a gateway/door for money to flow into the Financial Account. Payment Sources are not separately ledgered which means you can't get the balance of a Payment Source separately from the Financial Account. properties: id: type: string readOnly: true description: The unique identifier for the payment source example: "payment_source_01j8rs605a4gctmbm58d87mvsj" financial_account_id: type: string description: The unique identifier for the financial account that the payment source belongs to example: "fa_01j8rs605a4gctmbm58d87mvsj" name: type: string description: The name of the payment source example: "Main Payment Source" source_type: type: string description: The type of the payment source example: "portal" enum: - manual - portal - lockbox - grantmaker financial_address: $ref: "#/components/schemas/FinancialAddress" lockbox: $ref: "#/components/schemas/Lockbox" created_at: type: string format: date-time readOnly: true description: The date and time when the payment source was created example: "2020-01-31T23:59:59Z" updated_at: type: string format: date-time readOnly: true description: The date and time when the payment source was last updated example: "2020-01-31T23:59:59Z" Lockbox: type: object description: |- A US mailing address to process incoming physical mail and checks. This is only available for lockbox payment sources. properties: address: $ref: "#/components/schemas/PostalAddress" FinancialAddress: type: object description: |- A subhash containing information about the electronic bank address payment rail details. This is only available for manual and connected_account payment sources. properties: ach: $ref: "#/components/schemas/AchAddress" AchAddress: type: object description: |- A subhash containing information about the electronic bank address payment rail details. required: - institution_name - account_number - routing_number properties: account_number: type: string description: The account number of that uniquely identifies the account at the institution example: "987654321" routing_number: type: string description: The American Bankers' Association (ABA) Routing Transit Number (RTN) for the destination account. example: "101050001" Donation: type: object description: |- A Donation is a gift of money to a nonprofit organization. required: - id - payment_source_id - amount_gross - amount_net - amount_fee - currency - purpose - note - created_at properties: id: type: string readOnly: true description: The unique identifier for the donation example: donation_01j8rs605a4gctmbm58d87mvsj payment_source_id: type: string description: |- The unique identifier for the payment source used to segregate deposits between various DAFs and platforms. example: payment_source_01kew60ks7w0epkvp2bgqxrt8z amount_gross: type: integer format: int64 description: |- The original amount of the donation as intended by the donor in minor units of the currency. For dollars, for example, this is cents. amount_net: type: integer format: int64 description: |- The amount of the donation that the nonprofit will receive after DAF and/or platform processing fees are deducted in minor units of the currency. For dollars, for example, this is cents. amount_fee: type: integer format: int64 description: |- The amount of the fee that was deducted by the DAF or processing platform from the donation in minor units of the currency. For dollars, for example, this is cents. individual_gift_amount: type: integer format: int64 description: |- The amount contributed by the individual donor in minor units of the currency. currency: type: string description: The [ISO 4217 code](https://en.wikipedia.org/wiki/ISO_4217) for the Transaction's currency. example: USD purpose: type: string description: |- A description of the donor's intent for the donation. This is useful to understand how the donor intended the donation to be used. For example, "Where needed most" or "General Operating Support" or "Specific Campaign". example: "Where needed most" note: type: string description: |- An informational note from the donor to the nonprofit about the donation. This may contain a message or other useful information that the donor wants to share with the nonprofit. example: "Please dedicate in memory of grandma" attribution: description: |- A subhash containing information about how the donation is attributed. allOf: - $ref: "#/components/schemas/DonationAttribution" initiation: description: A subhash containing information about how the donation was initiated by DAFpay. allOf: - $ref: "#/components/schemas/DonationInitiation" settlement: description: A subhash containing information about how the donation was settled by Chariot. allOf: - $ref: "#/components/schemas/DonationSettlement" donor_advised_fund_grant: description: A subhash containing information about the grant from a Donor-Advised Fund sponsor. allOf: - $ref: "#/components/schemas/DafGrant" platform: description: |- A subhash containing information about the platform that facilitated the donation. If this is empty, then the donation was not facilitated by a platform. allOf: - $ref: "#/components/schemas/Platform" corporate_match: description: |- A subhash containing information about the corporate match for the donation. If this is empty, then the donation was not matched by a corporate sponsor. allOf: - $ref: "#/components/schemas/CorporateMatch" properties: type: array description: |- A list of custom properties for the donation. items: $ref: "#/components/schemas/PropertyAssignment" artifacts: type: array description: |- A list of source artifacts that were used to create the donation. These can include the raw source files (PDFs, CSVs, etc.) that were received from upstream platforms or systems. items: $ref: "#/components/schemas/Artifact" created_at: type: string format: date-time readOnly: true description: The date and time when the donation was created. example: "2020-01-31T23:59:59Z" updated_at: type: string format: date-time readOnly: true description: The date and time when the donation was last updated. example: "2020-01-31T23:59:59Z" canceled_at: type: string readOnly: true format: date-time nullable: true description: |- The date and time when the donation was canceled. A non-null value indicates the donation is tied to a canceled grant initiation and the gift was not received. Expressed in RFC 3339 format. example: "2020-01-31T23:59:59Z" payment_status: type: string readOnly: true description: The payment status of the donation. Indicates the current state of the payment lifecycle. example: "INCOMING_TO_CHARIOT" enum: - INCOMING_TO_CHARIOT - INCOMING_OUTSIDE_CHARIOT - RECEIVED_IN_CHARIOT - RECEIVED_OUTSIDE_CHARIOT - CANCELED Artifact: type: object description: |- An artifact is a source file that was used to create the donation. properties: id: type: string readOnly: true description: The unique identifier for the artifact. example: "artifact_01j8rs605a4gctmbm58d87mvsj" name: type: string description: The name of the artifact. example: "donation_receipt.pdf" file_id: type: string description: The unique identifier for the file that the artifact is associated with. example: "file_01j8rs605a4gctmbm58d87mvsj" created_at: type: string format: date-time readOnly: true description: The date and time when the artifact was created. example: "2020-01-31T23:59:59Z" File: type: object description: |- Files are objects that represent a file hosted on Chariot's servers. If you need to download a File, create a File Link. properties: id: type: string readOnly: true description: The unique identifier for the file. example: "file_01j8rs605a4gctmbm58d87mvsj" file_name: type: string description: The name of the file. example: "donation_receipt.pdf" description: type: string description: The description of the file. example: "Donation receipt for donation to the nonprofit" purpose: type: string description: The purpose of the file. enum: - integration_download - inbound_mail_item - inbound_email - grant_letter - manual_upload content_type: type: string description: The MIME type of the file. example: "application/pdf" created_at: type: string format: date-time readOnly: true description: The date and time when the file was created. example: "2020-01-31T23:59:59Z" FileLink: type: object description: |- A file link is a URL that can be used to download a file. properties: file_id: type: string description: The unique identifier for the file. example: "file_01j8rs605a4gctmbm58d87mvsj" unauthenticated_url: type: string description: The unauthenticated URL to download the file. example: "https://cdn.givechariot.com/files/file.pdf" expires_at: type: string format: date-time description: The date and time when the file link will expire. example: "2020-01-31T23:59:59Z" PropertyAssignment: type: object description: |- A property assignment is a key-value pair that is associated with a donation. properties: property_id: type: string description: The unique identifier for the property. example: "prop_01j8rs605a4gctmbm58d87mvsj" value: $ref: "#/components/schemas/PropertyValue" PropertyType: type: string description: The data type of a property. enum: - text - enum - user - boolean - date example: "text" ResourceType: type: string description: The API resource that the property is associated with. enum: - donation - deposit PropertyValue: type: object required: - type properties: type: $ref: "#/components/schemas/PropertyType" text_value: type: string description: The text value of the property. enum_value_id: type: string description: The unique identifier for the enum value. user_value_id: type: string description: The unique identifier for the user. boolean_value: type: boolean description: The boolean value of the property. date_value: type: string format: date-time description: The date value of the property. empty: type: boolean description: |- Whether the property value is empty. Can use this to unset property values when assigning a property. Property: type: object description: |- A custom key-value pair that is associated with a donation. required: - id - name - resource_type - property_type properties: id: type: string readOnly: true description: The unique identifier for the property. example: "prop_01j8rs605a4gctmbm58d87mvsj" name: type: string description: The name of the property. example: "Donation Purpose" resource_type: $ref: "#/components/schemas/ResourceType" property_type: $ref: "#/components/schemas/PropertyType" options: type: array description: |- The first 25 options for enum and user properties. Use the [List Property Options](/api-reference/properties/list-options) endpoint to paginate through all options. items: $ref: "#/components/schemas/PropertyOptionValue" total_option_count: type: integer format: int32 description: |- The total number of options for enum and user properties. When this is greater than the length of `options`, use the [List Property Options](/api-reference/properties/list-options) endpoint to paginate through all options. PropertyOptionValue: type: object description: |- A value for an enum or user property. required: - id - name properties: id: type: string description: The unique identifier for the property value. name: type: string description: The human readable string for the property value. description: type: string description: A description of the property option. DonationAttribution: type: object description: |- A subhash containing information about how the donation is attributed. properties: primary_donor: description: |- A subhash containing information about the primary donor of the donation. allOf: - $ref: "#/components/schemas/Donor" joint_donor: description: |- A subhash containing information about the joint donor of the donation. allOf: - $ref: "#/components/schemas/Donor" CorporateMatch: type: object description: |- A subhash containing information about the corporate match for the donation. properties: match_amount: type: integer format: int64 description: The amount of the corporate match for the donation in minor units of the donation currency. company_name: type: string description: The name of the company that matched the donation. example: "Google" program_name: type: string description: The name of the program that matched the donation. example: "Google Matching Grant Program" source: type: string description: The source of the corporate match. example: "Payroll" Platform: type: object description: |- A subhash containing information about the platform that facilitated the donation. properties: name: type: string description: The name of the platform. example: "PayPal Grant Payments" platform_grant_id: type: string description: The identifier for the grant within the platform's system. example: "93492947-7894-4663-a944-f2469d0027ca" metadata: type: object description: Additional key value pairs that were passed to the platform during the donation initiation. additionalProperties: type: string acceptance: description: |- A subhash containing information about the acceptance of the grant from the platform. This is only present if the platform requires grant acceptance before disbursing funds. allOf: - $ref: "#/components/schemas/PlatformAcceptance" PlatformAcceptance: type: object description: |- A subhash containing information about the acceptance of the grant from the platform. properties: accepted: type: boolean description: Whether the grant was accepted from the platform. example: true expires_at: type: string format: date-time description: |- The date and time when the acceptance of the grant will expire. example: "2020-01-31T23:59:59Z" DafGrant: type: object description: |- A subhash containing information grant details from a Donor-Advised Fund sponsor. required: - organization_name properties: organization_name: type: string description: The name of the Donor Advised Fund sponsor. readOnly: true example: "Daffy Charitable Fund" donor_fund_name: type: string description: The name of the donor's fund at the Donor Advised Fund sponsor. example: "The Smith Family Fund" program_name: type: string description: The name of the program at the Donor Advised Fund sponsor. sponsor_grant_id: type: string description: The identifier for the grant at the Donor Advised Fund sponsor. example: "93492947-7894-4663-a944-f2469d0027ca" DonationSettlement: type: object description: |- If the payment for the donation was received by Chariot, this object will contain additional information about the settlement of the donation. required: - deposit_id - received_at properties: deposit_id: type: string description: The unique identifier for the deposit that contains the money for the donation. example: deposit_01kewb5vgsryzaajza5ynr06kz received_at: type: string readOnly: true format: date-time description: |- The date and time when the transfer of money for the donation was received by Chariot. Received at indicates when the data for the transfer was received, which is different from the settled_at timestamp. Expressed in RFC 3339 format. example: "2020-01-31T23:59:59Z" settled_at: type: string readOnly: true format: date-time description: |- The date and time when the money for the donation was settled by Chariot. Indicates when the funds become available to the nonprofit. Expressed in RFC 3339 format. example: "2020-01-31T23:59:59Z" DonationInitiation: type: object description: |- If the donation was initiated through a Chariot Connect instance (DAFpay), this object will contain additional information about the initiation of the donation. required: - initiated_at - frequency properties: initiated_at: type: string readOnly: true format: date-time description: Time when the donation was initiated. Expressed in RFC 3339 format. example: "2020-01-31T23:59:59Z" channel: type: string description: |- The DAFpay integration channel used to initiate the donation. - `INTEGRATED` - The donation was initiated through an integrated DAFpay instance where the DAF sponsor processes the grant electronically via the DAFpay network. - `UNINTEGRATED` - The donation was initiated through an unintegrated DAFpay flow where the donor completes the grant manually on the DAF sponsor's website (e.g., Luminate Online, standalone embeds). example: "INTEGRATED" enum: - INTEGRATED - UNINTEGRATED web_location_url: type: string description: The URL of the web location where the donation was initiated. example: "https://www.example.com/donation/1234567890" fundraising_platform_name: type: string description: |- The name of the fundraising platform that initiated the donation. example: "Classy" dafpay_form: type: string description: |- The DAFpay form where the donation was initiated. example: "DAF day" dafpay_tracking_id: type: string description: The tracking ID for the donation as generated by DAFpay. example: L9E182VBGP dafpay_metadata: type: object description: Additional key value pairs that were passed to DAFpay during the donation initiation. additionalProperties: type: string example: { "funding_source": "DAF", "funding_source_id": "daf_01j8rs605a4gctmbm58d87mvsj", "funding_source_name": "DAF day", } frequency: type: string description: The frequency of the donation. example: "ONE_TIME" enum: - ONE_TIME - MONTHLY Deposit: type: object description: |- A Deposit is a transfer of money for a charitable donation or a batch of donations. required: - id - payment_source_id - status - transfer - created_at - updated_at properties: id: type: string readOnly: true description: The unique identifier for this object. example: deposit_01j8rs605a4gctmbm58d87mvsj payment_source_id: type: string description: The unique identifier for the payment source that contains the money for the deposit. example: payment_source_01j8rs605a4gctmbm58d87mvsj settled_at: type: string format: date-time description: The date and time when the deposit was settled. example: "2020-01-31T23:59:59Z" returned_at: type: string format: date-time description: The date and time when the deposit was returned. example: "2020-01-31T23:59:59Z" status: type: string description: The status of the deposit. example: "complete" enum: - pending - complete - failed transfer: description: A subhash containing information about the transfer associated with the deposit. allOf: - $ref: "#/components/schemas/Transfer" properties: type: array description: |- A list of properties assigned to the deposit. items: $ref: "#/components/schemas/PropertyAssignment" created_at: type: string format: date-time description: The date and time when the deposit was created. example: "2020-01-31T23:59:59Z" updated_at: type: string format: date-time description: The date and time when the deposit was last updated. example: "2020-01-31T23:59:59Z" bank_created_at: type: string format: date-time description: The date and time when the bank created the deposit. example: "2020-01-31T23:59:59Z" Transfer: type: object description: A subhash containing information about the transfer associated with the deposit. required: - amount - currency - financial_account_id properties: amount: type: integer format: int64 description: The amount of the transfer in minor currency units. For example, for dollars, this is cents. example: 10000 currency: type: string description: The [ISO 4217 code](https://en.wikipedia.org/wiki/ISO_4217) for the transfer's currency. example: USD financial_account_id: type: string description: The unique identifier for the financial account that the transfer was made to. example: "fa_01j8rs605a4gctmbm58d87mvsj" description: type: string description: A description of the transfer. example: "Disbursement to nonprofit" inbound_account_transfer: description: A subhash containing information about the inbound account transfer associated with the deposit. allOf: - $ref: "#/components/schemas/InboundAccountTransfer" inbound_ach_transfer: description: A subhash containing information about the inbound ACH transfer associated with the deposit. allOf: - $ref: "#/components/schemas/InboundAchTransfer" check_deposit: description: A subhash containing information about the check deposit associated with the deposit. allOf: - $ref: "#/components/schemas/CheckDeposit" InboundAccountTransfer: type: object description: |- An instant transfer of funds between two financial accounts. This is the preferred method of transferring funds for Grantmakers within Chariot's Network. required: - created_at properties: created_at: type: string format: date-time description: The date and time the account transfer was created example: "2020-01-31T23:00:00Z" readOnly: true InboundAchTransfer: type: object description: |- An ACH transfer initiated outside of Chariot to your financial account. properties: standard_entry_class_code: type: string description: The Standard Entry Class (SEC) code for the ACH transfer. example: "WEB" company_entry_description: type: string description: The company entry description for the ACH transfer. example: "GRANTPMT" originator_routing_number: type: string description: The routing number of the originator of the ACH transfer. example: "1234567890" originator_company_name: type: string description: The name of the originator of the ACH transfer. example: "Charity Good" trace_number: type: string description: The trace number for the ACH transfer. example: "1234567890" effective_date: type: string format: date-time description: The effective date for the ACH transfer. example: "2020-01-31T23:00:00Z" status: type: string description: The status of the ACH transfer. example: "accepted" enum: - pending - declined - accepted - returned CheckDeposit: type: object description: |- A check deposit represents a physical check that is deposited into a financial account. properties: auxiliary_on_us: type: string description: |- An additional line of metadata printed on the check. This typically includes the check number for business checks. example: "102" routing_number: type: string description: |- The routing number printed on the check. This is a routing number for the bank that issued the check. example: "101050001" submitted_at: type: string format: date-time description: The date and time the check deposit was submitted. example: "2020-01-31T23:00:00Z" status: type: string description: The status of the check deposit. example: "deposited" enum: - pending - deposited - rejected - returned Connect: type: object description: |- A Connect represents an instance of Chariot Connect for a particular nonprofit. A nonprofit organization will create Connect objects in order to integrate Chariot Connect into their websites or fundraising platforms to start accepting donations directly from Donor Advised Funds. Each nonprofit can have multiple Connect objects where each one represents a logical separation for how the organization wants to organize their sources of donations. For example, they might have 2 Connect instances, one that they use to integrate Chariot Connect directly on their website and the other that they provide to a 3rd party fundraising platform. On the client side, Chariot Connect is instantiated with the `id` of the Connect object, also called the `cid`. A connect object also contains an `apiKey`. This is useful for nonprofits to provide to fundraising platforms on their behalf to programatically integrate Chariot Connect and access resources and information created from the Connect instance through various Chariot API endpoints. More information on integrating Chariot Connect into a client-side application can be found here: https://givechariot.readme.io required: - id - apiKey properties: id: type: string readOnly: true description: |- The unique identifier for this object. This is also the 'publishable' cid to use for initializing Connect for client-side integration. example: test_connect123 name: type: string description: A human readable name for the connect, optional. example: website apiKey: type: string readOnly: true description: (deprecated) A secure token that can be used to make M2M API calls to read data generated by this object. example: test_apiTokenABC active: type: boolean description: |- A flag to indicate if this connect is active. If true, then this Connect can process donations and grants, otherwise this Connect cannot process grants. example: true createdAt: type: string readOnly: true format: date-time description: Time when this object was created. Expressed in RFC 3339 format. example: "2020-01-31T23:00:00Z" updatedAt: type: string readOnly: true format: date-time description: Time when this object was last updated. Expressed in RFC 3339 format. example: "2020-01-31T23:59:59Z" createdBy: type: string readOnly: true description: ID of the user who created this object. example: auth0-user-id-123 archived: type: boolean readOnly: true description: A flag to indicate if this object is marked for deletion. example: false metadata: type: object description: A map of arbitrary string keys and values to store information about the object. additionalProperties: type: string Daf: type: object description: |- A Donor-Advised Fund, or `DAF` for short, is a special-purpose, tax-advantaged charitable account. For more information, please see the [IRS website](https://www.irs.gov/charities-non-profits/charitable-organizations/donor-advised-funds) for a full description. In the case that a DAF is supported, a donor will be able to initiate a grant directly through DAFpay. required: - id - orgName - address - address2 - city - state - zip - supported - minimumGrantAmount - institutionDown properties: id: type: string readOnly: true description: The unique identifier for this object. example: 0bf40881-8ee2-47fb-98ca-f58c7999aa34 orgName: type: string readOnly: true description: A human readable name for the DAF. example: website address: type: string readOnly: true description: The first address line. example: 123 Main St. address2: type: string readOnly: true description: The second address line. example: Apt 100 city: type: string readOnly: true description: The city name for the address. example: New York City state: type: string readOnly: true description: The state name for the address. example: New York zip: type: string readOnly: true description: The zipcode for the address. example: "12345" supported: type: boolean readOnly: true description: A flag to indicate if this DAF is supported by DAFpay. example: false minimumGrantAmount: type: number readOnly: true description: The minimum grant amount in cents allowed for this DAF. example: 5000 institutionDown: type: boolean readOnly: true description: A flag to indicate if the institution is down. example: false Grant: type: object description: |- A Grant represents a successfully initiated grant request with a Donor Advised Fund. Grants are created when a person interacts with an instance of Chariot Connect and successfully submits a grant and completes the workflow. There can be many grants associated with a Connect object and therefore a nonprofit. required: - id - workflowSessionId - fundId - amount properties: id: type: string readOnly: true description: The unique identifier for the object format: uuid example: cfe09e64-6a74-4dab-a565-361185a6f248 userFriendlyId: type: string readOnly: true description: Often referred to as the "Chariot ID", this is the ID that will be included in the payment from the DAF provider. example: chariot-1234455 deprecated: true trackingId: type: string readOnly: true description: The tracking ID for the grant example: L9E182VBGP workflowSessionId: type: string readOnly: true description: ID of the Connect Workflow Session associated with this grant format: uuid example: 2d4b2a43-a5b4-4be1-ad1f-f932016ca4a6 fundId: type: string readOnly: true description: ID of the donor advised fund example: daf-id externalGrantId: type: string description: ID of the grant associated with the donor advised fund example: 897823sdjf8sfjs createdAt: type: string readOnly: true format: date-time description: Time when this object was created; expressed in RFC 3339 format example: "2020-01-31T23:00:00Z" updatedAt: type: string readOnly: true format: date-time description: Time when this object was last updated; expressed in RFC 3339 format example: "2020-01-31T23:59:59Z" amount: type: number format: integer description: The grant amount expressed in units of whole cents example: 15000 status: type: string description: The status of the grant example: Initiated feeDetail: type: object readOnly: true description: The fee detail of the grant properties: total: type: number format: integer description: The total fee amount expressed in units of cents example: 1500 contributions: type: array items: $ref: "#/components/schemas/ContributionFeeDetail" description: The list of fee contributions for this grant metadata: type: object description: A map of arbitrary string keys and values to store information about the object additionalProperties: type: string firstName: type: string description: The donor's first name example: "Warren" lastName: type: string description: The donor's last name example: "Buffet" phone: type: string description: The donor's phone number example: "1237861020" email: type: string description: The donor's email example: "warrenBuffet@example.com" note: type: string description: An note inputted by the user at submisson example: "Please dedicate in memory of grandma" statuses: type: array items: $ref: "#/components/schemas/GrantStatus" description: The list of grant statuses for this grant paymentChannel: type: string readOnly: true description: |- The payment channel for the grant. This is useful to know how the grant will be sent. The payment channel will be one of the following: - dafpay_network: Grant will be sent to the DAFPay Network 501(c)(3) nonprofit organization (EIN: 93-1372175). The DAFPay Network will then review and process the grant and send the funds to the intended recipient. - direct: Grant will be sent directly to the intended recipient. enum: - dafpay_network - direct example: direct address: $ref: "#/components/schemas/GrantAddress" RecurringGrant: type: object description: |- A RecurringGrant represents a successfully initiated recurring grant request with a Donor Advised Fund. RecurringGrants are created when a person interacts with an instance of Chariot Connect and successfully submits a recurring grant and completes the workflow. On creation, each RecurringGrant object will also have a Grant object created to represent the first grant of the recurring grant. There can be many grants associated with the same recurring grant. required: - id - workflowSessionId - fundId - amount - frequency properties: id: type: string readOnly: true description: The unique identifier for the object format: uuid example: cfe09e64-6a74-4dab-a565-361185a6f248 trackingId: type: string readOnly: true description: The tracking ID for the grant example: L9E182VBGP workflowSessionId: type: string readOnly: true description: ID of the Connect Workflow Session associated with this grant format: uuid example: 2d4b2a43-a5b4-4be1-ad1f-f932016ca4a6 fundId: type: string readOnly: true description: ID of the donor advised fund example: daf-id frequency: type: string description: |- How often the DAF provider will submit the recurring grant. At the moment, monthly is the only supported frequency. enum: - MONTHLY example: MONTHLY externalRecurringGrantId: type: string description: ID of the grant associated with the donor advised fund example: 897823sdjf8sfjs createdAt: type: string readOnly: true format: date-time description: Time when this object was created; expressed in RFC 3339 format example: "2020-01-31T23:00:00Z" updatedAt: type: string readOnly: true format: date-time description: Time when this object was last updated; expressed in RFC 3339 format example: "2020-01-31T23:59:59Z" amount: type: number format: integer description: The grant amount expressed in units of whole cents example: 15000 firstName: type: string description: The donor's first name example: "Warren" lastName: type: string description: The donor's last name example: "Buffet" phone: type: string description: The donor's phone number example: "1237861020" email: type: string description: The donor's email example: "warrenBuffet@example.com" note: type: string description: An note inputted by the user at submisson example: "Please dedicate in memory of grandma" address: $ref: "#/components/schemas/GrantAddress" ContributionFeeDetail: type: object required: - name - amount properties: name: type: string description: | The name of the party charging the fee. This is an informational field. If you need to differentiate between fees charged by different parties, you should use the `feeType` field. example: "Chariot" amount: type: number format: integer description: The fee contribution amount expressed in units of cents example: 1500 feeType: type: string description: | This indicates the source of a fee contribution. * chariot: Chariot's processing fee * daf: The DAF's processing fee * fundraising_application: The fundraising application's processing fee example: "chariot" enum: - chariot - daf - fundraising_application GrantStatus: type: object required: - id - createdAt - status properties: id: type: string readOnly: true description: The unique identifier for the object format: uuid example: cfe09e64-6a74-4dab-a565-361185a6f248 createdAt: type: string readOnly: true format: date-time description: Time when this object was created; expressed in RFC 3339 format example: "2020-01-31T23:00:00Z" status: type: string enum: - Initiated - Completed - Canceled description: | The status of the grant. example: Initiated comment: type: string description: The user comment for the update example: The grant has been received by the nonprofit UnintegratedGrant: type: object description: |- An Unintegrated Grant represents a grant requested through a provider that Chariot does not support. Unintegrated grants should be treated as donation intents as Chariot can not guarantee that the grant was submitted or will be fulfilled. Nonprofits should use the information provided in the unintegrated grant to follow up with the donor and/or the provider to check the status of the grant. These are sometimes referred to as "Manual Grants". required: - id - workflowSessionId - fundId - amount properties: id: type: string readOnly: true description: The unique identifier for the object format: uuid example: cfe09e64-6a74-4dab-a565-361185a6f248 userFriendlyId: type: string readOnly: true description: Often referred to as the "Chariot ID", this is the ID that will be included in the payment from the DAF provider. example: "1234455" deprecated: true trackingId: type: string readOnly: true description: The tracking ID for the unintegrated grant example: L9E182VBGP workflowSessionId: type: string readOnly: true description: ID of the Connect Workflow Session associated with this grant format: uuid example: 2d4b2a43-a5b4-4be1-ad1f-f932016ca4a6 fundId: type: string readOnly: true description: ID of the donor advised fund example: daf-id createdAt: type: string readOnly: true format: date-time description: Time when this object was created; expressed in RFC 3339 format example: "2020-01-31T23:00:00Z" updatedAt: type: string readOnly: true format: date-time description: Time when this object was last updated; expressed in RFC 3339 format example: "2020-01-31T23:59:59Z" amount: type: number format: integer description: The grant amount expressed in units of whole cents example: 15000 status: type: string description: |- The status of the unintegrated grant. enum: - Unknown - Completed - Canceled example: Unknown metadata: type: object description: A map of arbitrary string keys and values to store information about the object additionalProperties: type: string firstName: type: string description: The donor's first name example: "Warren" lastName: type: string description: The donor's last name example: "Buffet" phone: type: string description: The donor's phone number example: "1237861020" email: type: string description: The donor's email example: "warrenBuffet@example.com" address: $ref: "#/components/schemas/GrantAddress" note: type: string description: An note inputted by the user at submisson example: "Please dedicate in memory of grandma" paymentChannel: type: string readOnly: true description: |- The payment channel for the unintegrated grant. This is useful to know how the grant will be sent. The payment channel for unintegrated grants will always be: - offline: Grant was initiated outside of Chariot so we're unable to confirm how the grant will be sent. enum: - offline example: offline FinancialAccount: type: object description: |- A financial account represents a financial, depository (bank) account managed by Chariot. Chariot maintains a ledger and balances for the account. This account should be funded and have a sufficient available balance before disbursements can be created. Chariot is a financial technology company, not a bank. Chariot Deposit Accounts come through our banking services partner, Column, N.A. required: - id - name - account_type - bank_provider - created_at - updated_at properties: id: type: string description: The unique identifier for the account example: "account_01jpjenf5q6cawy43yxfcrxhct" account_type: type: string description: The type of account enum: - disbursements - processing example: "disbursements" bank_provider: type: string description: The bank provider for the account example: "mock_alpha" created_at: type: string format: date-time description: The date and time the account was created example: "2020-01-31T23:00:00Z" updated_at: type: string format: date-time description: The date and time the account was last updated example: "2020-01-31T23:00:00Z" FinancialAccountBalance: type: object required: - current_balance - available_balance - timestamp properties: current_balance: type: number description: The current balance is the amount of money in the account. This value is in minor currency units (USD cents). example: 10000 available_balance: type: number description: The available balance is the amount of money in the account that is available to be spent or transferred. This value is in minor currency units (USD cents). example: 10000 timestamp: type: string format: date-time description: The time the balance was retrieved example: "2020-01-31T23:00:00Z" Address: type: object required: - city - country - line1 - postal_code - state properties: city: type: string description: "City, district, suburb, town, or village. Maximum length: 255 characters." example: "New York" country: type: string description: "Two-letter country code (https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)" example: "US" line1: type: string description: "Address line 1 (e.g. street, PO Box, or company name). Maximum length: 255 characters." example: "123 Main St." line2: type: string description: "Address line 2 (e.g. apartment, suite, unit, or building). Maximum length: 255 characters." postal_code: type: string description: "ZIP or postal code. Maximum length: 40 characters." example: "12345" state: type: string description: "State, county, province, or region" example: "NY" GrantAddress: type: object properties: line1: type: string description: "Address line 1 (e.g. street, PO Box, or company name). Maximum length: 255 characters." line2: type: string description: "Address line 2 (e.g. apartment, suite, unit, or building). Maximum length: 255 characters." city: type: string description: "City, district, suburb, town, or village.. Maximum length: 255 characters." state: type: string description: "State, county, province, or region. Maximum length: 255 characters." postalCode: type: string description: "ZIP or postal code. Maximum length: 255 characters." PostalAddress: type: object description: |- A postal address is a mailing address where physical mail can be received. Postal addresses can be used to receive paper checks. required: - city - country - line1 - postal_code - state properties: city: type: string description: City, district, suburb, town, or village. example: "New York" country: type: string description: Two-letter country code (https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) example: "US" line1: type: string description: Address line 1 (e.g. street, PO Box, or company name) example: "123 Main St." line2: type: string description: Address line 2 (e.g. apartment, suite, unit, or building) example: "Suite 2504" postal_code: type: string description: ZIP or postal code example: "12345" state: type: string description: State, county, province, or region example: "NY" Disbursement: type: object description: A disbursement moves funds to a verified organization. required: - id - organization_id - program_id - amount properties: id: type: string description: The unique identifier for the disbursement example: "disbursement_01jpjen1s23s29kkmnjsb6fzga" readOnly: true organization_id: type: string description: The unique identifier for the organization that will receive the payment example: "org_01jpjenf5q6cawy43yxfcrxhct" organization: $ref: "#/components/schemas/Organization" program_id: type: string description: The unique identifier for the program that the disbursement belongs to example: "program_01jpjenf5q6cawy43yxfcrxhct" amount: type: integer format: int64 description: The payment amount in USD cents. Must be a positive amount. example: 10000 description: type: string description: A description for the disbursement example: "Annual grant to Acme Inc." auto_fund: type: boolean description: |- Whether just-in-time (JIT) funding is enabled for this disbursement. When true, Chariot automatically creates an inbound transfer for the disbursement amount when it is approved. example: false readOnly: true created_at: type: string format: date-time description: The date and time the disbursement was created example: "2020-01-31T23:00:00Z" readOnly: true updated_at: type: string format: date-time description: The date and time the disbursement was last updated example: "2020-01-31T23:00:00Z" readOnly: true status: $ref: "#/components/schemas/DisbursementStatus" cancelation: $ref: "#/components/schemas/DisbursementCancelation" approval: $ref: "#/components/schemas/DisbursementApproval" rejection: $ref: "#/components/schemas/DisbursementRejection" verification: $ref: "#/components/schemas/DisbursementVerification" stop: $ref: "#/components/schemas/DisbursementStop" program_details: $ref: "#/components/schemas/ProgramDetails" transfers: type: array description: |- The list of transfers for the disbursement. This can have multiple items if the disbursement's underlying payment was retried multiple times. For example, if a check was returned or stopped and the disbursement was retried as an ACH transfer. If the disbursement was not retried, this will have a single item. items: $ref: "#/components/schemas/DisbursementTransfer" transactions: type: array description: The list of transactions for the disbursement items: $ref: "#/components/schemas/Transaction" DisbursementStatus: type: string description: |- The lifecycle status of the disbursement. Possible values include: - `pending_approval`: The disbursement is awaiting approval from the grantmaker - `canceled`: The disbursement was canceled by the grantmaker - `awaiting_verification`: The disbursement is awaiting verification from Chariot - `rejected`: The disbursement was rejected by Chariot before being submitted - `validating_organization`: Validating recipient organization's payment and contact information before submission. - `awaiting_account_claim`: The disbursement is awaiting account claim by the nonprofit or check delay expiration - `awaiting_balance`: The disbursement is awaiting sufficient grantmaker balance - `submitted`: The disbursement payment has been submitted to the payment network and is being processed - `stopped`: The disbursement payment was stopped after it was submitted - `completed`: The disbursement payment has been completed and funds have been received by the receiving organization - `failed`: The disbursement payment failed or the receiving organization did not receive the payment To see a description of each status, see the "Disbursement Lifecycle" section of the Chariot documentation. example: "pending_approval" enum: - pending_approval - canceled - awaiting_verification - rejected - validating_organization - awaiting_account_claim - awaiting_balance - submitted - stopped - completed - failed VerificationRequestStatus: type: string description: |- The status of the verification request. Possible values include: - `needs_review`: The request has been submitted and is awaiting review by Chariot's compliance team - `verified`: The organization has been verified as tax-exempt and eligible for disbursements - `failed`: Chariot's compliance team determined the organization is not eligible example: "needs_review" enum: - needs_review - verified - failed VerificationRequestAddress: type: object description: A mailing address for the organization being verified. required: - line1 - city - state - zip_code properties: line1: type: string description: Street address line 1 example: "123 Main St" line2: type: string description: Street address line 2 (suite, unit, etc.) example: "Suite 100" city: type: string description: City example: "San Francisco" state: type: string description: Two-letter US state code (e.g. "CA", "NY") example: "CA" zip_code: type: string description: ZIP or postal code example: "94105" VerificationRequest: type: object description: |- A verification request allows grantmakers to request that Chariot's compliance team verify an unlisted organization, enabling disbursements to nonprofits not yet in Chariot's database. required: - id - ein - organization_name - organization_id - status properties: id: type: string description: Unique identifier for the verification request example: "vr_01jpjen1s23s29kkmnjsb6fzga" readOnly: true ein: type: string description: The EIN of the organization being verified example: "123456789" organization_name: type: string description: The name of the organization as provided by the grantmaker example: "Local Community Foundation" organization_id: type: string description: |- The ID of the Organization record for the nonprofit being verified. example: "org_01j8rs605a4gctmbm58d87mvsj" status: $ref: "#/components/schemas/VerificationRequestStatus" website: type: string description: The organization's website URL example: "https://localfoundation.org" recommended_mailing_address: $ref: "#/components/schemas/VerificationRequestAddress" verified_at: type: string format: date-time description: When the organization was verified as tax-exempt and eligible for disbursements readOnly: true failed_at: type: string format: date-time description: When the verification request was rejected readOnly: true created_at: type: string format: date-time description: When the verification request was created example: "2020-01-31T23:00:00Z" readOnly: true updated_at: type: string format: date-time description: When the verification request was last updated example: "2020-01-31T23:00:00Z" readOnly: true DisbursementCancelation: type: object description: |- If your account requires approvals for disbursements and the disbursement was not approved, this will contain the details of the cancelation. properties: canceled_by: type: string description: If the disbursement was canceled by a user in the dashboard, the email address of that user. example: "user@example.com" canceled_at: type: string format: date-time description: The RFC 3339 date and time at which the Disbursement was canceled. example: "2020-01-31T23:00:00Z" readOnly: true DisbursementApproval: type: object description: |- If your account requires approvals for disbursements and the disbursement was approved, this will contain the details of the approval. properties: approved_by: type: string description: If the disbursement was approved by a user in the dashboard, the email address of that user. example: "user@example.com" approved_at: type: string format: date-time description: The RFC 3339 date and time at which the Disbursement was approved. example: "2020-01-31T23:00:00Z" readOnly: true DisbursementRejection: type: object description: |- If the disbursement was rejected by Chariot, this will contain details as to why the disbursement was rejected. properties: reason: type: string description: |- Why the disbursement was rejected. Possible values include: - `insufficient_funds`: The disbursement was rejected because the grantmaker does not have enough funds in their account. - `incorrect_recipient`: The disbursement was rejected because the recipient or address was incorrect. - `suspected_fraud`: The disbursement was suspected to be fraudulent. - `requested_by_user`: The disbursement was rejected at the request of the grantmaker. - `acceptance_criteria_failed`: The disbursement was rejected because the disbursement did not meet the acceptance criteria for the receiving organization. - `duplicate`: The disbursement was rejected because the disbursement was a duplicate. - `unknown`: The disbursement was rejected for an unknown reason. example: "insufficient_funds" enum: - insufficient_funds - incorrect_recipient - suspected_fraud - requested_by_user - acceptance_criteria_failed - duplicate - unknown rejected_at: type: string format: date-time description: The RFC 3339 date and time at which the Disbursement was rejected. example: "2020-01-31T23:00:00Z" readOnly: true DisbursementVerification: type: object description: |- If the disbursement has been verified by Chariot, this will contain the verification details. properties: verified_at: type: string format: date-time description: The RFC 3339 date and time at which the Disbursement was verified. example: "2020-01-31T23:00:00Z" readOnly: true DisbursementStop: type: object description: |- If the disbursement was stopped by the grantmaker after it was submitted, this will contain the details of the stop. properties: stopped_by: type: string description: If the disbursement was stopped by a user in the dashboard, the email address of that user. example: "user@example.com" stopped_at: type: string format: date-time description: The RFC 3339 date and time at which the Disbursement was stopped. example: "2020-01-31T23:00:00Z" readOnly: true ProgramDetails: type: object description: Details about the program that the disbursement belongs to. properties: id: type: string description: The unique identifier for the program example: "program_01jpjenf5q6cawy43yxfcrxhct" name: type: string description: The name of the program example: "Annual Grants" DisbursementTransfer: type: object description: |- After a disbursement is submitted, this object contains additional details about the transfer. This is useful if you want to track the disbursement over the specific payment rails/networks. An account transfer is the preferred transfer method when the receiving organization has a Chariot account at the same bank as the grantmaker. An ACH transfer is used when the receiving organization has a Chariot account at a different bank than the grantmaker. A check transfer is used when the receiving organization does not have a Chariot account. properties: account_transfer: $ref: "#/components/schemas/AccountTransfer" ach_transfer: $ref: "#/components/schemas/AchTransfer" check_transfer: $ref: "#/components/schemas/CheckTransfer" real_time_payments_transfer: $ref: "#/components/schemas/RealTimePaymentsTransfer" RealTimePaymentsTransfer: type: object description: |- A real-time payments transfer represents an instant, electronic transfer of funds. required: - transfer_id - amount - status - creditor_name - remittance_information - created_at - updated_at properties: transfer_id: type: string description: The unique identifier for the real-time payments transfer example: "real_time_payments_transfer_01j8rs605a4gctmbm58d87mvsj" readOnly: true amount: type: integer format: int64 description: The amount of the real-time payments transfer in minor currency units (cents) example: 10000 status: type: string description: The status of the real-time payments transfer example: "complete" enum: - pending_submission - submitted - complete - rejected creditor_name: type: string description: The name of the creditor for the real-time payments transfer example: "Acme Inc." remittance_information: type: string description: The remittance information for the real-time payments transfer example: "Real-Time Payment: Acme Inc." transaction_identification: type: string description: The transaction identification for the real-time payments transfer example: "20260101101050001T1BTEST01234557890" submitted_at: type: string format: date-time description: |- The date and time the real-time payments transfer was submitted to the payment network. example: "2020-01-31T23:00:00Z" acknowledged_at: type: string format: date-time description: |- The date and time at which the real-time payments transfer was acknowledged by the receiving bank. If the transfer is not acknowledged, this will be null. example: "2020-01-31T23:00:05Z" rejected_at: type: string format: date-time description: |- The date and time at which the real-time payments transfer was rejected. If the transfer is not rejected, this will be null. example: "2020-01-31T23:00:05Z" created_at: type: string format: date-time description: The date and time the real-time payments transfer was created example: "2020-01-31T23:00:00Z" readOnly: true updated_at: type: string format: date-time description: The date and time the real-time payments transfer was last updated example: "2020-01-31T23:00:00Z" readOnly: true AccountTransfer: type: object description: |- An account transfer represents an instant, electronic transfer of funds. required: - transfer_id - amount - status - created_at - updated_at properties: transfer_id: type: string description: The unique identifier for the account transfer example: "account_transfer_01j8rs605a4gctmbm58d87mvsj" readOnly: true amount: type: integer format: int64 description: The amount of the account transfer in minor currency units (cents) example: 10000 status: type: string description: The status of the account transfer example: "complete" enum: - pending_approval - canceled - complete created_at: type: string format: date-time description: The date and time the account transfer was created example: "2020-01-31T23:00:00Z" readOnly: true updated_at: type: string format: date-time description: The date and time the account transfer was last updated example: "2020-01-31T23:00:00Z" readOnly: true AchTransfer: type: object description: |- An ACH transfer represents an electronic transfer of funds via the Automated Clearing House (ACH) payment network. required: - transfer_id - amount - status - created_at properties: transfer_id: type: string description: The unique identifier for the ACH transfer example: "ach_transfer_01j8rs605a4gctmbm58d87mvsj" readOnly: true amount: type: integer format: int64 description: |- The amount of the ACH transfer in minor currency units (cents). For ACH debits, this is a negative number. example: 10000 status: type: string description: |- The lifecycle status of the ACH transfer. Possible values include: - `initiated`: The ACH transfer has been initiated and is pending submission to the Federal Reserve. - `submitted`: The ACH transfer has been submitted to the Federal Reserve. - `completed`: The ACH transfer has been completed. Funds should be settled. - `rejected`: The ACH transfer was rejected. - `returned`: The ACH transfer was returned by the receiving organization. example: "initiated" enum: - initiated - submitted - completed - rejected - returned direction: type: string description: |- The direction of the ACH transfer. example: "credit" enum: - credit - debit standard_entry_class_code: type: string description: |- The Standard Entry Class (SEC) code for the ACH transfer. example: "corporate_credit_or_debit" enum: - corporate_credit_or_debit - prearranged_payments_and_deposit - internet_initiated company_entry_description: type: string description: |- The company entry description for the ACH transfer. This is included in the transfer data sent to the receiving bank. example: "Disbursement to nonprofit" trace_number: type: string description: |- A 15 digit number recorded in the Nacha file and transmitted to the receiving bank. Along with the amount, date, and originating routing number, this can be used to identify the ACH transfer at the receiving bank. ACH trace numbers are not unique, but are used to correlate returns. example: "012345678901234" effective_date: type: string format: date-time description: |- The ACH transfer's effective date as sent to the Federal Reserve. This is the date the funds will be available to the receiving organization. example: "2020-01-31T23:00:00Z" submitted_at: type: string format: date-time description: |- The date and time the ACH transfer was submitted to the Federal Reserve. example: "2020-01-31T23:00:00Z" settled_at: type: string format: date-time description: |- The date and time at which the ACH transfer was settled. If the transfer is not settled, this will be null. example: "2020-07-12 15:00:00.000" rejected_at: type: string format: date-time description: |- The date and time at which the ACH transfer was rejected. If the transfer is not rejected, this will be null. example: "2020-07-12 15:00:00.000" returned_at: type: string format: date-time description: |- The date and time at which the ACH transfer was returned. If the transfer is not returned, this will be null. example: "2020-07-12 15:00:00.000" created_at: type: string format: date-time description: The date and time the ACH transfer was created example: "2020-01-31T23:00:00Z" readOnly: true updated_at: type: string format: date-time description: The date and time the ACH transfer was last updated example: "2020-01-31T23:00:00Z" readOnly: true CheckTransfer: type: object description: |- A check transfer represents a paper check that is mailed to the receiving organization. required: - transfer_id - amount - status - mailing_address - memo - recipient_name - created_at properties: transfer_id: type: string description: The unique identifier for the check transfer example: "check_transfer_01j8rs605a4gctmbm58d87mvsj" readOnly: true amount: type: integer format: int64 description: The amount of the check transfer in minor currency units (cents) example: 10000 status: type: string description: |- The lifecycle status of the check. The set of statuses include: - `pending`: The check is pending review by Chariot. - `canceled`: The check has been canceled. - `issued`: The check has been mailed and is pending delivery. - `rejected`: The check was rejected by Chariot. - `deposited`: The check has been deposited by the receiving organization. - `stopped`: A stop payment was requested on the check. - `returned`: The check has been returned by the receiving organization. To see a more detailed description of each status and the overall lifecycle of check disbursements, see the "Transfer Statuses" section of the Chariot documentation. example: "issued" enum: - pending - canceled - issued - rejected - deposited - stopped - returned memo: type: string description: The memo on the check. Maximum of 72 characters. example: "Disbursement to nonprofit" note: type: string description: An optional note for the check example: "Please deposit promptly" check_number: type: string description: The check number example: "123456789" recipient_name: type: string description: The name that will be printed on the check. example: "Charity Good" mailing_address: $ref: "#/components/schemas/PostalAddress" bank_of_first_deposit_routing_number: type: string description: The routing number for the bank of first deposit example: "021000089" postal_tracking_updates: type: array description: The list of tracking updates for the check items: $ref: "#/components/schemas/PostalTrackingUpdate" submitted_at: type: string format: date-time description: The date and time the check was submitted to the carrier. example: "2020-01-31T23:00:00Z" canceled_at: type: string format: date-time description: The date and time the check was canceled. example: "2020-01-31T23:00:00Z" stopped_at: type: string format: date-time description: The date and time the check was stopped. example: "2020-01-31T23:00:00Z" deposited_at: type: string format: date-time description: The date and time the check was deposited. example: "2020-01-31T23:00:00Z" created_at: type: string format: date-time description: The date and time the check transfer was created example: "2020-01-31T23:00:00Z" updated_at: type: string format: date-time description: The date and time the check transfer was last updated example: "2020-01-31T23:00:00Z" PostalTrackingUpdate: type: object description: The postal tracking update for the check required: - id - event_type - created_at properties: id: type: integer format: int64 description: The unique identifier for the tracking update example: 1 readOnly: true event_type: type: string description: |- The event type of the tracking update. The set of event types include: - `in_transit`: The check has been processed by the origin facility. - `processed_for_delivery`: The check has been greenlit for delivery at the recipient's nearest postal facility. The check should reach the mailbox within 1-2 business days of this tracking update. - `delivered`: The check has been delivered to the recipient's address. - `returned_to_sender`: The check has been returned to the sender due to barcode, ID tag area, or address errors. example: "in_transit" enum: - in_transit - processed_for_delivery - delivered - returned_to_sender created_at: type: string format: date-time description: The date and time the tracking update was created example: "2020-01-31T23:00:00Z" StopDisbursementPaymentReason: type: string description: |- The reason for stopping a disbursement payment. Possible values include: - `mail_delivery_failure`: The check could not be delivered. - `not_authorized`: The check was not authorized. - `voided`: The check was stopped and voided. - `unknown`: The reason for stopping the disbursement payment is unknown. example: "mail_delivery_failure" enum: - mail_delivery_failure - not_authorized - voided - unknown OutboundTransfer: type: object description: |- An outbound transfer represents a transfer of funds from a financial account to an external bank account. required: - id - amount - currency - status - financial_account_id - description - created_at properties: id: type: string description: The unique identifier for the outbound transfer example: "outbound_transfer_01j8rs605a4gctmbm58d87mvsj" readOnly: true amount: type: integer format: int64 description: The amount of the outbound transfer in minor currency units. For example, for dollars, this is cents. example: 10000 currency: type: string description: The [ISO 4217 code](https://en.wikipedia.org/wiki/ISO_4217) for the transfer's currency. example: USD financial_account_id: type: string description: The unique identifier for the financial account that the transfer was made from. example: "fa_01j8rs605a4gctmbm58d87mvsj" description: type: string description: An arbitrary string attached to the object. Often useful for displaying to users. example: "Transfer to external bank account" status: type: string description: |- The status of the outbound transfer. An Outbound Transfer is `processing` if it is created but the payment is not yet submitted. For example, if the transfer is awaiting submission to the FedACH. The status changes to `failed` if the transfer is rejected by Chariot. The status changes to `submitted` once the payment is successfully submitted to the the payment network (e.g. FedACH). The status changes to `returned` if the funds fail to arrive at the external bank account. example: "processing" readOnly: true enum: - processing - submitted - failed - returned created_at: type: string format: date-time description: The date and time the inbound transfer was created example: "2020-01-31T23:00:00Z" readOnly: true updated_at: type: string format: date-time description: The date and time the inbound transfer was last updated example: "2020-01-31T23:00:00Z" readOnly: true CreateDisbursementInput: type: object description: |- The request to create a disbursement and its corresponding transactions. The organization and amount are required. The transactions array should contain the list of transactions associated with the disbursement. The amounts in the transactions should sum up to the disbursement amount. required: - organization_id - amount - transactions properties: organization_id: type: string description: The ID of the organization that will receive the disbursement. example: "org_1234567890" program_id: type: string description: |- The identifier for the program that the disbursement is associated with. The program must have grant_disbursement_status enabled. If not provided, your grant_disbursement_status enabled program will be used. If your Chariot account has multiple grant_disbursement_status enabled programs, you must specify the program_id to use for the disbursement. example: "program_01jpjenf5q6cawy43yxfcrxhct" nullable: true amount: type: integer format: int64 description: The disbursement amount in USD cents. Must be a positive amount. example: 10000 auto_fund: type: boolean description: |- Enable just-in-time (JIT) funding for this disbursement. When true, Chariot will automatically create an inbound transfer for the disbursement amount when it is approved, eliminating the need to pre-fund your account. This feature must be enabled on your account. Contact Chariot to enable JIT disbursements. example: false default: false bypass_chariot_organization_verification: type: boolean description: |- By default (`false`), the disbursement will remain in the `awaiting_verification` status until Chariot's compliance team has verified the nonprofit. If set to `true`, the disbursement will proceed through its normal lifecycle without waiting for Chariot to verify the organization. Only set this if you have independently verified the organization and do not want to wait for or rely on Chariot's verification. This field is only relevant when disbursing to an organization that was created via a [verification request](/api/verification-requests/create). default: false transactions: type: array description: |- The list of transactions associated with the disbursement. Each transaction is an individual donation to be included in the disbursement. Must specify at least one transaction. The sum of all transaction net amounts (amount - fee_amount) must equal the disbursement amount. items: type: object description: | An individual donation to be included in the disbursement. required: - amount - type properties: amount: type: integer format: int64 description: | The gross transaction amount in minor currency units (cents) before any fees are deducted. This represents the total amount of the donation. example: 10000 fee_amount: type: integer format: int64 description: | Optional fee amount in minor currency units (cents) to be deducted from the transaction. If provided, the fee amount must be less than the transaction amount. The net amount (amount - fee_amount) will be used when calculating the disbursement total. example: 500 nullable: true description: type: string description: | A description of the donation. This description is displayed to the receiving organization. example: "Donation to nonprofit" type: $ref: "#/components/schemas/DonationType" donor_advised_fund_grant: $ref: "#/components/schemas/DonorAdvisedFundGrant" metadata: type: object description: Additional metadata for the transaction additionalProperties: type: string InboundTransfer: type: object description: |- An inbound transfer represents a transfer of funds from an external bank account to a financial account. required: - id - amount - created_at properties: id: type: string description: The unique identifier for the inbound transfer example: "inbound_transfer_01j8rs605a4gctmbm58d87mvsj" readOnly: true amount: type: integer format: int64 description: |- The amount of the inbound transfer in minor currency units (cents). This amount must be positive. example: 10000 description: type: string description: |- An arbitrary string attached to the object. Often useful for displaying to users. example: "InboundTransfer from my bank account" status: type: string description: |- The status of the inbound transfer. An Inbound Transfer is `pending` if it created and the funds haven't been received yet. The status changes to `completed` when the funds have been received and the balance of the financial account has been updated. The status changes to `canceled` if the transfer is canceled. The status changes to `failed` if the transfer fails. example: "pending" enum: - pending - completed - canceled - failed created_at: type: string format: date-time description: The date and time the inbound transfer was created example: "2020-01-31T23:00:00Z" readOnly: true updated_at: type: string format: date-time description: The date and time the inbound transfer was last updated example: "2020-01-31T23:00:00Z" readOnly: true Transaction: type: object description: | A transaction represents an individual line-item or donation for a recipient nonprofit organization. The transaction amount represents the gross amount, and an optional fee can be deducted to calculate the net amount that will be disbursed. required: - amount - net_amount - type properties: id: type: string description: The unique identifier for the transaction example: "txn_1LaXpKGUcADgqoEMl0Cx0Ygg" readOnly: true amount: type: integer format: int64 description: | The gross transaction amount in minor currency units (cents) before any fees are deducted. This represents the total amount of the donation. example: 10000 fee_amount: type: integer format: int64 description: | The fee amount in minor currency units (cents) to be deducted from the transaction amount. This is an optional field. If not provided, no fee will be deducted. The fee amount must be less than the transaction amount. example: 500 nullable: true net_amount: type: integer format: int64 description: | The net transaction amount in minor currency units (cents) after fees are deducted. This is calculated as: net_amount = amount - fee_amount. This is the actual amount that will be disbursed to the nonprofit. example: 9500 readOnly: true description: type: string description: | A description of the transaction. This description is displayed to the receiving organization. example: "Disbursement to nonprofit" type: $ref: "#/components/schemas/DonationType" donor_advised_fund_grant: $ref: "#/components/schemas/DonorAdvisedFundGrant" created_at: type: string format: date-time description: The date and time the transaction was created example: "2020-01-31T23:00:00Z" readOnly: true updated_at: type: string format: date-time description: The date and time the transaction was last updated example: "2020-01-31T23:00:00Z" readOnly: true metadata: type: object description: Additional metadata for the transaction additionalProperties: type: string DonationType: type: string description: The type of donation enum: - donor_advised_fund_grant # Can be added back in once we have a use case to disburse corporate matches or qualified charitable distributions # - corporate_match # - qualified_charitable_distribution DonorAdvisedFundGrant: type: object description: A donor-advised fund grant is a charitable donation made by a donor-advised fund (DAF) on behalf of the donor. properties: grant_id: type: string description: "A unique identifier for the grant within the DAF provider's internal system. Maximum length: 255 characters." example: "grant_1234567890" organization_name: type: string description: "The name of the DAF organization that made the grant. Maximum length: 255 characters." example: "Vanguard Charitable" fund_name: type: string description: "The name of the DAF fund that made the grant. Maximum length: 255 characters." example: "John Doe Fund" purpose: type: string description: "The purpose of the grant. Maximum length: 400 characters." example: "General Operating Support" note: type: string description: "A note about the grant. Maximum length: 400 characters." example: "This grant is for the general operating support of the organization." donors: type: array description: The list of donors for the transaction items: $ref: "#/components/schemas/Donor" Donor: type: object description: The donor information for the transaction properties: full_name: type: string description: "The full name of the donor. Maximum length: 255 characters." example: "John Doe" first_name: type: string description: "The first name of the donor. Maximum length: 255 characters." example: "John" last_name: type: string description: "The last name of the donor. Maximum length: 255 characters." example: "Doe" email: type: string description: "The email address of the donor. Maximum length: 255 characters." example: "bob@me.com" phone: type: string description: "The phone number of the donor. Maximum length: 20 characters." example: "415-555-1212" address: $ref: "#/components/schemas/Address" EventCategory: type: string description: | The category of the event. This is useful for filtering events. enum: - "grant.created" - "grant.updated" - "unintegrated_grant.created" - "unintegrated_grant.updated" - "disbursement.created" - "disbursement.updated" - "inbound_transfer.created" - "inbound_transfer.updated" - "donation.created" - "donation.updated" - "deposit.created" - "deposit.updated" - "verification_request.created" - "verification_request.updated" Event: type: object description: | Events are records of things that happened to objects at Chariot. properties: id: type: string description: The unique identifier for the event example: "203c4e56-5c39-4a66-abcd-2ec8af99a1b9" readOnly: true category: $ref: "#/components/schemas/EventCategory" created_at: type: string format: date-time description: The date and time the event was created example: "2024-01-19T18:48:56.37Z" readOnly: true associated_object_id: type: string description: The unique identifier for the associated object example: "4d06d393-1f14-46cf-b02d-8db17d7ed06a" readOnly: true associated_object_type: type: string description: The type of the associated object example: "grant" readOnly: true EventSubscriptionStatus: type: string description: |- The status of the event subscription. This indicates if we'll send notifications to this subscription * active: subscription is active and events will be delivered normally * disabled: subscription is temporarily disabled and events will not be delivered * deleted: subscription has been deleted and events will not be delivered * requires_attention: subscription has been disabled due to delivery failures and events will not be delivered enum: - "active" - "disabled" - "deleted" - "requires_attention" EventSubscription: type: object description: | Webhooks are event notifications we send to you by HTTPS POST requests. Event Subscriptions are how you configure your application to listen for them. required: - url properties: id: type: string description: The unique identifier for the event subscription example: "4d06d393-1f14-46cf-b02d-8db17d7ed06a" readOnly: true created_at: type: string format: date-time description: The date and time the event subscription was created example: "2024-01-14T12:48:56.37Z" readOnly: true status: $ref: "#/components/schemas/EventSubscriptionStatus" url: type: string description: The webhook url where we'll send notifications. example: "https://example.com/webhook" category: $ref: "#/components/schemas/EventCategory" Program: type: object description: |- Programs encapsulate functional operations and allow for segregation of funds & activity on top of a Financial Account. By default, most organizations will have a Gift Processing program for managing inbound donation revenue. If you are disbursing funds to other nonprofits, we will work together to create a Grantmaking program for you. If there are other use cases where you need to segregate funds or activity, we will work together to create additional Programs for you. required: - id - name - grant_disbursement_status - gift_processing_status - created_at - updated_at properties: id: type: string description: The unique identifier for the program example: "program_01j8rs605a4gctmbm58d87mvsj" name: type: string description: The name of the program example: "Gift Processing" description: type: string description: A description of the program example: "This program is used to unify and standardize donation processing across all Donor-Advised Fund grants." grant_disbursement_status: type: string enum: - "enabled" - "disabled" description: |- The status of the program's ability to disburse grant payments to other eligible nonprofit recipients. example: "enabled" readOnly: true gift_processing_status: type: string enum: - "enabled" - "disabled" description: |- The status of the program's ability to connect payment sources to process donations and grants to your organization. example: "enabled" readOnly: true created_at: type: string format: date-time description: The date and time the program was created example: "2020-01-31T23:00:00Z" updated_at: type: string format: date-time description: The date and time the program was last updated example: "2020-01-31T23:00:00Z" Paging: type: object description: The paging information properties: next_page_token: type: string description: The token to use for pagination. If not set, the first page of results will be returned. example: "eyJpZCI6IjEyMzQ1Njc4OTAiLCJ0aW1lc3RhbXAiOiIyMDIwLTA3LTEwIDE1OjAwOjAwLjAwMCJ9" total: type: integer ProblemDetails: type: object description: >- RFC 7807 problem-details error (media type application/problem+json). The `status` field is an integer HTTP status code. required: - type - title - status - detail properties: type: type: string description: A URI reference identifying the problem type. example: about:blank title: type: string description: A short, human-readable summary of the problem type. example: API Error status: type: integer description: The HTTP status code for this error. example: 400 detail: type: string description: A human-readable explanation specific to this occurrence. example: The request is invalid or contains invalid parameters. example: type: about:blank title: "API Error" status: 400 detail: The request is invalid or contains invalid parameters. headers: X-Request-Id: description: The unique identifier for the request schema: type: string Location: description: The URI of the created object schema: type: string Idempotency-Key: description: Idempotency key for the request schema: type: string requestBodies: CreateFileLinkRequest: description: The request body for the File Links.create endpoint required: true content: application/json: schema: type: object required: - file_id properties: file_id: type: string description: The unique identifier for the file to create a link for. example: "file_01j8rs605a4gctmbm58d87mvsj" CreateNonprofitAddressSuggestionRequest: description: Address entries to upload, each matched to a nonprofit by EIN. required: true content: application/json: schema: type: object required: - entries properties: entries: type: array description: Address entries to upload. Up to 500 per request. minItems: 1 maxItems: 500 items: $ref: "#/components/schemas/NonprofitAddressSuggestionEntry" example: entries: - ein: "13-1635294" line1: "431 18th Street NW" city: "Washington" state: "DC" zip: "20006" - ein: "530196605" line1: "1250 24th Street NW" line2: "Suite 300" city: "Washington" state: "DC" zip: "20037-1175" CreateNonprofitContactSuggestionRequest: description: Contact entries to upload, each matched to a nonprofit by EIN. required: true content: application/json: schema: type: object required: - entries properties: entries: type: array description: Contact entries to upload. Up to 500 per request. minItems: 1 maxItems: 500 items: $ref: "#/components/schemas/NonprofitContactSuggestionEntry" example: entries: - ein: "13-1635294" email: "claims@redcross.org" phone: "2025551212" first_name: "Sarah" last_name: "Johnson" - ein: "530196605" email: "ap@worldwildlife.org" UpdateDonationRequest: description: |- The request to update core donation attributes like purpose, note and attribution. required: true content: application/json: schema: type: object properties: reason: type: string description: |- A user-friendly reason or comment about the update. This is useful to understand why the donation was updated. example: "Donor requested a change to the donation purpose" purpose: type: string description: |- A description of the donor's intent for the donation. This is useful to understand how the donor intended the donation to be used. note: type: string description: |- An informational note from the donor to the nonprofit about the donation. This may contain a message or other useful information that the donor wants to share with the nonprofit. attribution: allOf: - $ref: "#/components/schemas/DonationAttribution" donor_advised_fund_grant: allOf: - $ref: "#/components/schemas/DafGrant" corporate_match: allOf: - $ref: "#/components/schemas/CorporateMatch" example: reason: "Donor requested a change to the donation" purpose: "Capital Campaign" note: "Please dedicate in memory of grandma" attribution: primary_donor: email: "warrenBuffet@example.com" donor_advised_fund_grant: organization_name: "Fidelity Charitable" fund_name: "Warren Buffet Fund" AssignPropertyRequest: description: |- The request to add a property value to a donation or deposit resource. required: true content: application/json: schema: type: object required: - value - resources properties: value: $ref: "#/components/schemas/PropertyValue" resources: type: object required: - ids properties: ids: type: array items: type: string description: The unique identifier for the resource example: "donation_01j8rs605a4gctmbm58d87mvsj" GrantCaptureRequest: description: |- The request to create and submit a grant. This is useful to capture a grant intent associated with DAFpay workflow session. The request should specify the grant amount. This is the amount submitted for processing by the DAF. required: true content: application/json: schema: type: object required: - workflowSessionId - amount properties: workflowSessionId: type: string description: |- The identifier of the donor's DAFpay Workflow Session. See [Capturing Grant Intents](/guides/dafpay/integrating-dafpay/integration#capturing-grant-intents) for how to get this value from the DAFpay `CHARIOT_SUCCESS` event. amount: type: number example: 15000 description: |- The grant amount in cents that will be processed by Chariot and submitted to the DAF. This amount must be in whole dollar increments (rounded to the nearest hundred) as currently all DAFs only accept whole dollar grant amounts. applicationFeeAmount: type: number example: 3000 description: |- This parameter specifies the fee your platform plans to take from the grant in cents. This is a fee in addition to Chariot's processing fee. With application fees, Chariot collects the fee you determine from the nonprofit and passes it to your platform. Please note that platform fees are only taken when the grant is successfully received by the nonprofit. The sum of Chariot's fee and the applicationFeeAmount cannot exceed 5% of the grant's amount. If the fee limit is exceeded, a `400 Bad Request` error will be returned. donor: type: object properties: firstName: type: string description: "The first name of the donor. Maximum length: 255 characters." lastName: type: string description: "The last name of the donor. Maximum length: 255 characters." email: type: string description: "The email address of the donor. Maximum length: 255 characters." phone: type: string description: "The phone number of the donor. Maximum length: 255 characters." address: $ref: "#/components/schemas/GrantAddress" note: type: string description: |- A note the donor wants to send to the nonprofit. Maximum length: 400 characters. designation: type: string description: |- The designation to include on the grant. If this is left blank, "Where needed most" will be used. Note that including a custom designation may cause the grant approval process to take longer. Maximum length: 100 characters. RecurringGrantCaptureRequest: description: |- The request to create and submit a monthly recurring grant. This is useful to capture a recurring grant intent associated with Connect workflow session. The request should specify the grant amount. The grant will re-occur according to the scheduled frequency or recurrence of the request. The recurring grant will continue indefinitely until the donor runs out of funds or until the donor cancels the recurring grant with their DAF provider. Some DAF providers require an end-date or number of payments in order to create a recurring grant. In most cases, the recurring grant will continue indefinitely until the donor's account runs out of funds or until the donor cancels the recurring grant with their DAF provider. Some DAF providers require an explicit bound to the time period or the number of payments in which case currently we opt for the longest recurring donation timeline possible. For example, if the DAF provider allows recurring donations to continue for up to 10 years we will submit the request as such. This is the amount submitted for processing by the DAF. required: true content: application/json: schema: type: object required: - workflowSessionId - amount - frequency properties: workflowSessionId: type: string description: |- The identifier of the donor's DAFpay Workflow Session. See [Capturing Grant Intents](/guides/dafpay/integrating-dafpay/integration#capturing-grant-intents) for how to get this value from the DAFpay `CHARIOT_SUCCESS` event. frequency: type: string description: |- The recurrence interval schedule for the recurring grant. Currently, only `MONTHLY` is supported. enum: - MONTHLY example: MONTHLY amount: type: number example: 15000 description: |- The final grant amount in cents that will be processed by Chariot and submitted to the DAF for recurring gifts. This amount must be in whole dollar increments (rounded to the nearest hundred) as currently all DAFs only accept whole dollar grants. applicationFeeAmount: type: number example: 3000 description: |- This parameter specifies the fee your platform plans to take from the first grant in cents. This is a fee in addition to Chariot's processing fee. With application fees, Chariot collects the fee you determine from the nonprofit and passes it to your platform. Please note that platform fees are only taken when the grant is successfully received by the nonprofit. The sum of Chariot's fee and the applicationFeeAmount cannot exceed 5% of the grant's amount. If the 5% limit is exceeded, a 400 error will be returned. donor: type: object properties: firstName: type: string description: "The first name of the donor. Maximum length: 255 characters." lastName: type: string description: "The last name of the donor. Maximum length: 255 characters." email: type: string description: "The email address of the donor. Maximum length: 255 characters." phone: type: string description: "The phone number of the donor. Maximum length: 255 characters." address: $ref: "#/components/schemas/GrantAddress" note: type: string description: |- A note the donor wants to send to the nonprofit. Maximum length: 400 characters. designation: type: string description: |- The designation to include on the grant. If this is left blank, "Where needed most" will be used. Note that including a custom designation may cause the grant approval process to take longer. Designations over 100 characters will be truncated. CreateConnectRequest: description: |- The request to create a new Connect object for a nonprofit. required: true content: application/json: schema: type: object required: - organization_id - contact properties: organization_id: type: string description: The unique identifier for the organization example: "org_1234567890" contact: type: object required: - email properties: email: type: string description: The email address for the nonprofit account contact example: ben.give@co.com phone: type: string description: The phone number for the nonprofit account contact example: "9127772424" first_name: type: string description: The first name of the nonprofit account contact that manages this Connect example: Ben last_name: type: string description: The last name of the nonprofit account contact that manages this Connect example: Give name: type: string description: |- A human readable name of the Connect, optional. metadata: type: object description: A map of arbitrary string keys and values to store information about the object. additionalProperties: type: string CreateDisbursementRequest: required: true content: application/json: schema: $ref: "#/components/schemas/CreateDisbursementInput" examples: MultipleTransactions: summary: Disbursement with multiple transactions value: organization_id: "org_01j8rs605a4gctmbm58d87mvsj" amount: 25000 transactions: [ { amount: 15000, description: "Grant from Doe Family Fund", type: "donor_advised_fund_grant", donor_advised_fund_grant: { grant_id: "grant_1234567890", organization_name: "Miami Charitable", fund_name: "Doe Family Charitable Fund", purpose: "General Operating Support", donors: [ { first_name: "Jane", last_name: "Doe", email: "jane.doe@example.com", }, ], }, }, { amount: 10000, description: "Grant from Smith Family Fund", type: "donor_advised_fund_grant", donor_advised_fund_grant: { organization_name: "LA Charitable", fund_name: "Smith Family Legacy Fund", purpose: "Program Support", donors: [ { first_name: "John", last_name: "Smith", email: "john.smith@example.com", }, ], }, }, ] MultipleTransactionsWithFees: summary: Disbursement with multiple transactions including fees value: organization_id: "org_01j8rs605a4gctmbm58d87mvsj" amount: 24000 transactions: [ { amount: 15000, fee_amount: 500, description: "Grant from Doe Family Fund", type: "donor_advised_fund_grant", donor_advised_fund_grant: { grant_id: "grant_1234567890", organization_name: "Miami Charitable", fund_name: "Doe Family Charitable Fund", purpose: "General Operating Support", donors: [ { first_name: "Jane", last_name: "Doe", email: "jane.doe@example.com", }, ], }, }, { amount: 10000, fee_amount: 500, description: "Grant from Smith Family Fund", type: "donor_advised_fund_grant", donor_advised_fund_grant: { organization_name: "LA Charitable", fund_name: "Smith Family Legacy Fund", purpose: "Program Support", donors: [ { first_name: "John", last_name: "Smith", email: "john.smith@example.com", }, ], }, }, ] CreateVerificationRequestRequest: description: |- The request to create a verification request for an unlisted organization. required: true content: application/json: schema: type: object required: - ein - organization_name - recommended_mailing_address properties: ein: type: string description: The EIN of the organization to verify example: "123456789" organization_name: type: string description: The name of the organization as known to the grantmaker example: "Local Community Foundation" website: type: string description: The organization's website URL example: "https://localfoundation.org" recommended_mailing_address: $ref: "#/components/schemas/VerificationRequestAddress" contact_email: type: string description: Contact email for the nonprofit organization. example: "contact@localfoundation.org" CreateInboundTransferRequest: description: The request body for originating an inbound transfer from an external bank account required: true content: application/json: schema: type: object required: - amount - account_id properties: amount: type: number description: |- The amount of the transfer in cents. This amount must be positive. example: 10000 account_id: type: string description: |- The identifier of the financial account that will receive the transfer. example: "account_01jpjenf5q6cawy43yxfcrxhct" description: type: string description: An arbitrary string attached to the object. Often useful for displaying to users. example: "Inbound ACH Transfer from my bank account" StopDisbursementRequest: description: The request body for stopping a disbursement payment required: true content: application/json: schema: type: object required: - reason properties: reason: $ref: "#/components/schemas/StopDisbursementPaymentReason" CreateEventSubscriptionRequest: description: The request body for creating an event subscription required: true content: application/json: schema: type: object required: - url - category properties: url: type: string description: The webhook url where we'll send notifications. example: "https://example.com/webhook" category: $ref: "#/components/schemas/EventCategory" signing_secret: type: string description: |- The key that will be used to sign webhooks. If no value is passed, a random string will be used as default. This is necessary to verify that the webhook is coming from Chariot. While this parameter is optional, it is highly recommended to pass a value for the secret and implement webhook signature verification. UpdateEventSubscriptionRequest: description: The request body for creating an event subscription required: true content: application/json: schema: type: object properties: status: type: string description: |- The status of the event subscription: * active: The event subscription is active and events will be delivered * disabled: The event subscription is temporarily disabled and events will not be delivered * deleted: The event subscription is permanently deleted and events will not be delivered enum: - "active" - "disabled" - "deleted" CreateOutboundTransferRequest: description: The request body for creating an outbound transfer required: true content: application/json: schema: $ref: "#/components/schemas/OutboundTransfer" responses: UpdateDonationResponse: description: The response for Donations.update. headers: X-Request-Id: $ref: "#/components/headers/X-Request-Id" content: application/json: schema: $ref: "#/components/schemas/Donation" ListFinancialAccountsResponse: description: The response for FinancialAccounts.list headers: X-Request-Id: $ref: "#/components/headers/X-Request-Id" content: application/json: schema: type: object properties: results: type: array items: $ref: "#/components/schemas/FinancialAccount" ListDafsResponse: description: The response for Dafs.list headers: X-Request-Id: $ref: "#/components/headers/X-Request-Id" content: application/json: schema: type: object properties: results: type: array items: $ref: "#/components/schemas/Daf" nextPageToken: type: string description: |- A cursor token to use to retrieve the next page of results by making another API call to the same endpoint with the same parameters (only substituting the pageToken with this value). If specified, then more results exist on the server that were not returned, otherwise no more results exist on the server. example: results: - id: "0bf40881-8ee2-47fb-98ca-f58c7999aa34" orgName: "National Philanthropic Trust" address: "123 Main St." address2: "Apt 100" city: "New York" state: "NY" zip: "12345" supported: true minimumGrantAmount: 5000 institutionDown: false nextPageToken: "c3f685f2-2dda-4956-815b-39867a5e5638" ListGrantsResponse: description: The response for Grants.list headers: X-Request-Id: $ref: "#/components/headers/X-Request-Id" content: application/json: schema: type: object properties: results: type: array items: $ref: "#/components/schemas/Grant" nextPageToken: type: string nullable: true description: |- A cursor token to use to retrieve the next page of results by making another API call to the same endpoint with the same parameters (only changing the pageToken). If specified, then more results exist on the server that were not returned, otherwise no more results exist on the server. example: results: - id: "1e60800e-849b-43d1-870e-57afc8d75473" workflowSessionId: "cfe09e64-6a74-4dab-a565-361185a6f248" fundId: "daf-id" createdAt: "2021-08-10 15:00:00.000" updatedAt: "2021-08-11 15:34:00.000" amount: 15000 status: "Initiated" nextPageToken: "c3f685f2-2dda-4956-815b-39867a5e5638" ListRecurringGrantsResponse: description: The response for RecurringGrants.list headers: X-Request-Id: $ref: "#/components/headers/X-Request-Id" content: application/json: schema: type: object properties: results: type: array items: $ref: "#/components/schemas/RecurringGrant" nextPageToken: type: string description: |- A cursor token to use to retrieve the next page of results by making another API call to the same endpoint with the same parameters (only changing the pageToken). If specified, then more results exist on the server that were not returned, otherwise no more results exist on the server. example: results: - id: "29650c10-1eb3-4f97-a63e-f2e41c145b53" workflowSessionId: "b76fa69f-c554-43b2-af9a-1d4bb9a02016" fundId: "daf-id" createdAt: "2021-08-10 15:00:00.000" updatedAt: "2021-08-11 15:34:00.000" amount: 15000 frequency: MONTHLY nextPageToken: "c3f685f2-2dda-4956-815b-39867a5e5638" ListUnintegratedGrantsResponse: description: The response for UnintegratedGrants.list headers: X-Request-Id: $ref: "#/components/headers/X-Request-Id" content: application/json: schema: type: object properties: results: type: array items: $ref: "#/components/schemas/UnintegratedGrant" nextPageToken: type: string description: |- A cursor token to use to retrieve the next page of results by making another API call to the same endpoint with the same parameters (only changing the pageToken). If specified, then more results exist on the server that were not returned, otherwise no more results exist on the server. example: results: - id: "1e60800e-849b-43d1-870e-57afc8d75473" workflowSessionId: "cfe09e64-6a74-4dab-a565-361185a6f248" fundId: "daf-id" createdAt: "2021-08-10 15:00:00.000" updatedAt: "2021-08-11 15:34:00.000" amount: 15000 nextPageToken: "c3f685f2-2dda-4956-815b-39867a5e5638" ListEventsResponse: description: The response for Events.list headers: X-Request-Id: $ref: "#/components/headers/X-Request-Id" content: application/json: schema: type: object properties: results: type: array items: $ref: "#/components/schemas/Event" nextPageToken: type: string description: |- A cursor token to use to retrieve the next page of results by making another API call to the same endpoint with the same parameters (only changing the pageToken). If specified, then more results exist on the server that were not returned, otherwise no more results exist on the server. ListEventSubscriptionsResponse: description: The response for Events.list headers: X-Request-Id: $ref: "#/components/headers/X-Request-Id" content: application/json: schema: type: object properties: results: type: array items: $ref: "#/components/schemas/EventSubscription" nextPageToken: type: string description: |- A cursor token to use to retrieve the next page of results by making another API call to the same endpoint with the same parameters (only changing the pageToken). If specified, then more results exist on the server that were not returned, otherwise no more results exist on the server. SearchOrganizationsResponse: description: The response for Organizations.search headers: X-Request-Id: $ref: "#/components/headers/X-Request-Id" content: application/json: schema: type: object properties: results: type: array items: $ref: "#/components/schemas/OrganizationSummary" ListDisbursementsResponse: description: The response for Disbursements.list headers: X-Request-Id: $ref: "#/components/headers/X-Request-Id" content: application/json: schema: type: object properties: results: type: array items: $ref: "#/components/schemas/Disbursement" next_page_token: type: string description: |- A cursor token to use to retrieve the next page of results by making another API call to the same endpoint with the same parameters (only changing the pageToken). If specified, then more results exist on the server that were not returned, otherwise no more results exist on the server. ListInboundTransfersResponse: description: The response for InboundTransfers.list headers: X-Request-Id: $ref: "#/components/headers/X-Request-Id" content: application/json: schema: type: object properties: results: type: array items: $ref: "#/components/schemas/InboundTransfer" nextPageToken: type: string description: |- A cursor token to use to retrieve the next page of results by making another API call to the same endpoint with the same parameters (only changing the pageToken). If specified, then more results exist on the server that were not returned, otherwise no more results exist on the server. ListOutboundTransfersResponse: description: The response for OutboundTransfers.list headers: X-Request-Id: $ref: "#/components/headers/X-Request-Id" content: application/json: schema: type: object properties: results: type: array items: $ref: "#/components/schemas/OutboundTransfer" nextPageToken: type: string description: |- A cursor token to use to retrieve the next page of results by making another API call to the same endpoint with the same parameters (only changing the pageToken). If specified, then more results exist on the server that were not returned, otherwise no more results exist on the server. ListDonationsResponse: description: The response for Donations.list headers: X-Request-Id: $ref: "#/components/headers/X-Request-Id" content: application/json: schema: type: object properties: results: type: array items: $ref: "#/components/schemas/Donation" next_page_token: type: string description: |- A cursor token to use to retrieve the next page of results by making another API call to the same endpoint with the same parameters (only changing the pageToken). If specified, then more results exist on the server that were not returned, otherwise no more results exist on the server. ListDepositsResponse: description: The response for Deposits.list headers: X-Request-Id: $ref: "#/components/headers/X-Request-Id" content: application/json: schema: type: object properties: results: type: array items: $ref: "#/components/schemas/Deposit" next_page_token: type: string description: |- A cursor token to use to retrieve the next page of results by making another API call to the same endpoint with the same parameters (only changing the pageToken). If specified, then more results exist on the server that were not returned, otherwise no more results exist on the server. ListPropertiesResponse: description: The response for Properties.list headers: X-Request-Id: $ref: "#/components/headers/X-Request-Id" content: application/json: schema: type: object properties: results: type: array items: $ref: "#/components/schemas/Property" next_page_token: type: string description: |- A cursor token to use to retrieve the next page of results by making another API call to the same endpoint with the same parameters (only changing the pageToken). If specified, then more results exist on the server that were not returned, otherwise no more results exist on the server. ListPropertyOptionsResponse: description: The response for Properties.listOptions headers: X-Request-Id: $ref: "#/components/headers/X-Request-Id" content: application/json: schema: type: object properties: results: type: array items: $ref: "#/components/schemas/PropertyOptionValue" next_page_token: type: string description: |- A cursor token to use to retrieve the next page of results by making another API call to the same endpoint with the same parameters (only changing the pageToken). If specified, then more results exist on the server that were not returned, otherwise no more results exist on the server. ListPaymentSourcesResponse: description: The response for PaymentSources.list headers: X-Request-Id: $ref: "#/components/headers/X-Request-Id" content: application/json: schema: type: object properties: results: type: array items: $ref: "#/components/schemas/PaymentSource" next_page_token: type: string description: |- A cursor token to use to retrieve the next page of results by making another API call to the same endpoint with the same parameters (only changing the pageToken). If specified, then more results exist on the server that were not returned, otherwise no more results exist on the server. ListFilesResponse: description: The response for Files.list headers: X-Request-Id: $ref: "#/components/headers/X-Request-Id" content: application/json: schema: type: object properties: results: type: array items: $ref: "#/components/schemas/File" next_page_token: type: string description: |- A cursor token to use to retrieve the next page of results by making another API call to the same endpoint with the same parameters (only changing the pageToken). If specified, then more results exist on the server that were not returned, otherwise no more results exist on the server. AssignPropertyResponse: description: The response for Properties.assign headers: X-Request-Id: $ref: "#/components/headers/X-Request-Id" content: application/json: schema: type: object properties: num_updated: type: integer description: The number of resources that were updated. ListProgramsResponse: description: The response for Programs.list headers: X-Request-Id: $ref: "#/components/headers/X-Request-Id" content: application/json: schema: type: object properties: results: type: array items: $ref: "#/components/schemas/Program" next_page_token: type: string description: |- A cursor token to use to retrieve the next page of results by making another API call to the same endpoint with the same parameters (only changing the pageToken). If specified, then more results exist on the server that were not returned, otherwise no more results exist on the server. ListVerificationRequestsResponse: description: The response for VerificationRequests.list headers: X-Request-Id: $ref: "#/components/headers/X-Request-Id" content: application/json: schema: type: object properties: results: type: array items: $ref: "#/components/schemas/VerificationRequest" next_page_token: type: string description: |- A cursor token to use to retrieve the next page of results by making another API call to the same endpoint with the same parameters (only changing the page_token). If specified, then more results exist on the server that were not returned, otherwise no more results exist on the server. BadRequestError: description: The request is invalid or contains invalid parameters headers: X-Request-Id: $ref: "#/components/headers/X-Request-Id" content: application/problem+json: schema: $ref: "#/components/schemas/ProblemDetails" examples: BadRequest: value: type: about:blank title: "API Error" status: 400 detail: "The request is invalid or contains invalid parameters." AuthenticationError: description: Unauthorized. The request is missing the security (OAuth2 Bearer token) requirements and the server is unable to verify the identify of the caller. headers: X-Request-Id: $ref: "#/components/headers/X-Request-Id" content: application/problem+json: schema: $ref: "#/components/schemas/ProblemDetails" examples: Unauthorized: value: type: about:blank title: "API Error" status: 401 detail: "Authentication credentials were missing or invalid." ForbiddenError: description: Access denied headers: X-Request-Id: $ref: "#/components/headers/X-Request-Id" content: application/problem+json: schema: $ref: "#/components/schemas/ProblemDetails" examples: Forbidden: value: type: about:blank title: "API Error" status: 403 detail: "You do not have permission to access this resource." NotFoundError: description: Resource Not Found headers: X-Request-Id: $ref: "#/components/headers/X-Request-Id" content: application/problem+json: schema: $ref: "#/components/schemas/ProblemDetails" examples: NotFound: value: type: about:blank title: "API Error" status: 404 detail: "The requested resource was not found." ConflictError: description: Resource Conflicts headers: X-Request-Id: $ref: "#/components/headers/X-Request-Id" content: application/problem+json: schema: $ref: "#/components/schemas/ProblemDetails" examples: Conflict: value: type: about:blank title: "API Error" status: 409 detail: "The request conflicts with the current state of the resource." GoneError: description: Resource Gone or Expired headers: X-Request-Id: $ref: "#/components/headers/X-Request-Id" content: application/problem+json: schema: $ref: "#/components/schemas/ProblemDetails" examples: Gone: value: type: about:blank title: "API Error" status: 410 detail: "The resource is no longer available." PreconditionFailedError: description: Precondition Failed headers: X-Request-Id: $ref: "#/components/headers/X-Request-Id" content: application/problem+json: schema: $ref: "#/components/schemas/ProblemDetails" examples: PreconditionFailed: value: type: about:blank title: "API Error" status: 412 detail: "A precondition for the request was not met." InternalServerError: description: Internal Server Error headers: X-Request-Id: $ref: "#/components/headers/X-Request-Id" content: application/problem+json: schema: $ref: "#/components/schemas/ProblemDetails" examples: InternalServerError: value: type: about:blank title: "API Error" status: 500 detail: "The server encountered an error processing your request." examples: NonprofitRedCross: summary: American Red Cross value: id: "021cf6aa-cb91-4b92-ae03-82a211cc8328" name: "American Red Cross" ein: "530196605" createdAt: "2021-07-10 15:00:00.000" updatedAt: "2020-01-31T23:59:59Z" isDafPayNetwork: false inGoodStanding: true ConnectOutput: summary: Simple connect output value: id: "test_de5a2e7d-c960-4eaa-8bd2-e8d2cc5b1a55" name: "website" apiKey: "test_98235982835" active: true createdAt: "2021-07-10 15:00:00.000" updatedAt: "2020-01-31T23:59:59Z" createdBy: "user123" metadata: tag1: "value1" GrantOutput: summary: Simple grant output value: id: "1e60800e-849b-43d1-870e-57afc8d75473" workflowSessionId: "cfe09e64-6a74-4dab-a565-361185a6f248" fundId: "daf-id" createdAt: "2021-08-10 15:00:00.000" updatedAt: "2021-08-11 15:34:00.000" amount: 15000 status: "Initiated" RecurringGrantOutput: summary: Simple recurring grant output. value: id: "1e60800e-849b-43d1-870e-57afc8d75473" workflowSessionId: "cfe09e64-6a74-4dab-a565-361185a6f248" fundId: "daf-id" createdAt: "2021-08-10 15:00:00.000" updatedAt: "2021-08-11 15:34:00.000" amount: 15000 frequency: MONTHLY UnintegratedGrantOutput: summary: Simple unintegrated grant output value: id: "1e60800e-849b-43d1-870e-57afc8d75473" workflowSessionId: "cfe09e64-6a74-4dab-a565-361185a6f248" fundId: "daf-id" createdAt: "2021-08-10 15:00:00.000" updatedAt: "2021-08-11 15:34:00.000" amount: 15000 DafOutput: summary: NPT DAF value: id: "0bf40881-8ee2-47fb-98ca-f58c7999aa34" orgName: "National Philanthropic Trust" address: "123 Main St." address2: "Apt 100" city: "New York City" state: "New York" zip: "12345" supported: true minimumGrantAmount: 25000 institutionDown: false