{"openapi":"3.1.0","info":{"title":"API Reference","version":"1.0.0"},"paths":{"/v1/organizations/search":{"get":{"operationId":"organizations_search","summary":"Search organizations","description":"Search for organizations by name or EIN.\nThis endpoint exists to support a typeahead search or quick lookup by nonprofit EIN or name.\nThe Get Organization API should be used to retrieve detailed information about an organization.","tags":["Organizations"],"parameters":[{"name":"q","in":"query","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.","required":true,"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.","required":false,"schema":{"type":"string"},"deprecated":true},{"name":"name","in":"query","description":"The name of the organization. This is deprecated in favor of the `q` parameter.","required":false,"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"}}],"responses":{"200":{"description":"The response for Organizations.search","content":{"application/json":{"schema":{"$ref":"#/components/schemas/organizations_search_Response_200"}}}},"400":{"description":"The request is invalid or contains invalid parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized. The request is missing the security (OAuth2 Bearer token) requirements and the server is unable to verify the identify of the caller.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"security":[{"bearerAuth":[]}]}},"/v1/organizations/{id}":{"get":{"operationId":"organizations_get","summary":"Get organization","description":"Retrieves the organization with the given ID.","tags":["Organizations"],"parameters":[{"name":"id","in":"path","description":"The unique identifier for the organization","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Organization"}}}},"400":{"description":"The request is invalid or contains invalid parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized. The request is missing the security (OAuth2 Bearer token) requirements and the server is unable to verify the identify of the caller.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Resource Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"security":[{"bearerAuth":[]}]}},"/v1/simulations/organizations/onboard/{id}":{"post":{"operationId":"organizations_onboard","summary":"Sandbox: Onboard an organization","description":"Creates a Chariot account for a sandbox recipient organization so that\ndisbursements to it settle electronically instead of via a mailed check.\n\nBy default a sandbox organization has no Chariot account, so disbursements\nto it are mailed as a physical check. Call this endpoint to provision an\naccount for the organization and choose which electronic rail its\ndisbursements should settle on.\n\nThe `settlement` is fixed on the first successful call. Onboarding the same\norganization again with a different `settlement` returns an error.\n\n<Note title=\"Sandbox Only\" icon=\"fa-light fa-atom-simple\">\nThis API is only available in the sandbox environment.\n</Note>\n","tags":["Organizations"],"parameters":[{"name":"id","in":"path","description":"The unique identifier for the organization to onboard.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Organization"}}}},"400":{"description":"The request is invalid or contains invalid parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized. The request is missing the security (OAuth2 Bearer token) requirements and the server is unable to verify the identify of the caller.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Resource Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"settlement":{"$ref":"#/components/schemas/SandboxSettlement"}},"required":["settlement"]}}}},"security":[{"bearerAuth":[]}]}},"/v1/programs":{"get":{"operationId":"programs_list","summary":"List Programs","description":"Returns a list of all programs for your Chariot account.","tags":["Programs"],"parameters":[{"name":"limit","in":"query","description":"Number of results per page. The default (and maximum) is 100 objects.","required":false,"schema":{"type":"integer"}},{"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":{"description":"The response for Programs.list","content":{"application/json":{"schema":{"$ref":"#/components/schemas/programs_list_Response_200"}}}},"400":{"description":"The request is invalid or contains invalid parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized. The request is missing the security (OAuth2 Bearer token) requirements and the server is unable to verify the identify of the caller.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"security":[{"bearerAuth":[]}]}},"/v1/programs/{id}":{"get":{"operationId":"programs_get","summary":"Get Program","description":"Retrieves the program with the given ID.","tags":["Programs"],"parameters":[{"name":"id","in":"path","description":"The unique identifier for the program","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Program"}}}},"400":{"description":"The request is invalid or contains invalid parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized. The request is missing the security (OAuth2 Bearer token) requirements and the server is unable to verify the identify of the caller.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Resource Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"security":[{"bearerAuth":[]}]}},"/v1/financial_accounts":{"get":{"operationId":"financialAccounts_list","summary":"List financial accounts","description":"Returns a list of financial accounts.\n","tags":["financialAccounts"],"responses":{"200":{"description":"The response for FinancialAccounts.list","content":{"application/json":{"schema":{"$ref":"#/components/schemas/financialAccounts_list_Response_200"}}}},"400":{"description":"The request is invalid or contains invalid parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized. The request is missing the security (OAuth2 Bearer token) requirements and the server is unable to verify the identify of the caller.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"security":[{"bearerAuth":[]}]}},"/v1/financial_accounts/{id}":{"get":{"operationId":"financialAccounts_get","summary":"Get a financial account","description":"Get a financial account by its unique identifier.\n","tags":["financialAccounts"],"parameters":[{"name":"id","in":"path","description":"The unique identifier for the financial account","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The financial account was retrieved","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FinancialAccount"}}}},"400":{"description":"The request is invalid or contains invalid parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized. The request is missing the security (OAuth2 Bearer token) requirements and the server is unable to verify the identify of the caller.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Resource Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"security":[{"bearerAuth":[]}]}},"/v1/financial_accounts/{id}/balance":{"get":{"operationId":"financialAccounts_getBalance","summary":"Get a financial account balance","description":"Get a financial account balance by its unique identifier.\n","tags":["financialAccounts"],"parameters":[{"name":"id","in":"path","description":"The unique identifier for the financial account","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The financial account was retrieved","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FinancialAccountBalance"}}}},"400":{"description":"The request is invalid or contains invalid parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized. The request is missing the security (OAuth2 Bearer token) requirements and the server is unable to verify the identify of the caller.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Resource Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"security":[{"bearerAuth":[]}]}},"/v1/events":{"get":{"operationId":"events_list","summary":"List Events","description":"List all events corresponding to your Chariot account.","tags":["Events"],"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"}},{"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.\n","required":false,"schema":{"$ref":"#/components/schemas/EventCategory"}}],"responses":{"200":{"description":"The response for Events.list","content":{"application/json":{"schema":{"$ref":"#/components/schemas/events_list_Response_200"}}}},"400":{"description":"The request is invalid or contains invalid parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized. The request is missing the security (OAuth2 Bearer token) requirements and the server is unable to verify the identify of the caller.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"security":[{"bearerAuth":[]}]}},"/v1/events/{id}":{"get":{"operationId":"events_get","summary":"Get Event","description":"Retrieve an event with the given ID.","tags":["Events"],"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":{"description":"The request is invalid or contains invalid parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized. The request is missing the security (OAuth2 Bearer token) requirements and the server is unable to verify the identify of the caller.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Resource Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"security":[{"bearerAuth":[]}]}},"/v1/event_subscriptions":{"get":{"operationId":"eventSubscriptions_list","summary":"List Event Subscriptions","description":"List all event subscriptions corresponding to your Chariot account.","tags":["eventSubscriptions"],"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"}},{"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":{"description":"The response for Events.list","content":{"application/json":{"schema":{"$ref":"#/components/schemas/eventSubscriptions_list_Response_200"}}}},"400":{"description":"The request is invalid or contains invalid parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized. The request is missing the security (OAuth2 Bearer token) requirements and the server is unable to verify the identify of the caller.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"security":[{"bearerAuth":[]}]},"post":{"operationId":"eventSubscriptions_create","summary":"Create an Event Subscription","description":"Create an event subscription corresponding to your Chariot account.","tags":["eventSubscriptions"],"responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EventSubscription"}}}},"400":{"description":"The request is invalid or contains invalid parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized. The request is missing the security (OAuth2 Bearer token) requirements and the server is unable to verify the identify of the caller.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Resource Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"requestBody":{"description":"The request body for creating an event subscription","content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","description":"The webhook url where we'll send notifications."},"category":{"$ref":"#/components/schemas/EventCategory"},"signing_secret":{"type":"string","description":"The key that will be used to sign webhooks.\nIf no value is passed, a random string will be used as default.\nThis is necessary to verify that the webhook is coming from Chariot.\nWhile this parameter is optional, it is highly recommended to pass a value\nfor the secret and implement webhook signature verification."}},"required":["url","category"]}}}},"security":[{"bearerAuth":[]}]}},"/v1/event_subscriptions/{id}":{"get":{"operationId":"eventSubscriptions_get","summary":"Get an Event Subscription","description":"Retrieve an event subscription with the given ID.","tags":["eventSubscriptions"],"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":{"description":"The request is invalid or contains invalid parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized. The request is missing the security (OAuth2 Bearer token) requirements and the server is unable to verify the identify of the caller.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Resource Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"security":[{"bearerAuth":[]}]},"patch":{"operationId":"eventSubscriptions_update","summary":"Update an Event Subscription","description":"Update an event subscription with the given ID.","tags":["eventSubscriptions"],"parameters":[{"name":"id","in":"path","description":"The unique identifier for the event subscription","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Updated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EventSubscription"}}}},"400":{"description":"The request is invalid or contains invalid parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized. The request is missing the security (OAuth2 Bearer token) requirements and the server is unable to verify the identify of the caller.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Resource Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"requestBody":{"description":"The request body for creating an event subscription","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"$ref":"#/components/schemas/V1EventSubscriptionsIdPatchRequestBodyContentApplicationJsonSchemaStatus","description":"The status of the event subscription:\n  * active: The event subscription is active and events will be delivered\n  * disabled: The event subscription is temporarily disabled and events will not be delivered\n  * deleted: The event subscription is permanently deleted and events will not be delivered"}}}}}},"security":[{"bearerAuth":[]}]}},"/v1/files":{"get":{"operationId":"files_list","summary":"List Files","description":"List files that Chariot stores on your behalf. [Create a File Link](/api/files/create-link) to download\nthe file's contents.","tags":["files"],"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"}},{"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":{"description":"The response for Files.list","content":{"application/json":{"schema":{"$ref":"#/components/schemas/files_list_Response_200"}}}},"400":{"description":"The request is invalid or contains invalid parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized. The request is missing the security (OAuth2 Bearer token) requirements and the server is unable to verify the identify of the caller.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"security":[{"bearerAuth":[]}]},"post":{"operationId":"files_upload","summary":"Upload a File","description":"Upload a file with a given purpose to Chariot as `multipart/form-data`.","tags":["files"],"parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"The `Idempotency-Key` had already stored this file, so the existing File is\nreturned and nothing was uploaded again.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/File"}}}},"400":{"description":"The request is invalid or contains invalid parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized. The request is missing the security (OAuth2 Bearer token) requirements and the server is unable to verify the identify of the caller.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Resource Conflicts","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"requestBody":{"description":"The file to upload, its purpose, and an optional description.","content":{"multipart/form-data":{"schema":{"type":"object","properties":{"file":{"type":"string","format":"binary","description":"The file's bytes. At most 100 MiB."},"purpose":{"$ref":"#/components/schemas/FilePurpose"},"description":{"type":"string","description":"A description of the file."}},"required":["file","purpose"]}}}},"security":[{"bearerAuth":[]}]}},"/v1/files/{id}":{"get":{"operationId":"files_get","summary":"Get a file","description":"Retrieve a file's metadata.","tags":["files"],"parameters":[{"name":"id","in":"path","description":"The unique identifier for the file","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The file","content":{"application/json":{"schema":{"$ref":"#/components/schemas/File"}}}},"400":{"description":"The request is invalid or contains invalid parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized. The request is missing the security (OAuth2 Bearer token) requirements and the server is unable to verify the identify of the caller.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Resource Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"security":[{"bearerAuth":[]}]}},"/v1/files/{id}/link":{"get":{"operationId":"files_createLink","summary":"Create a File Link","description":"Creates an unauthenticated temporary URL to download the file's contents. Note\nthat this link expires and therefore should not be cached.","tags":["files"],"parameters":[{"name":"id","in":"path","description":"The unique identifier for the file","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The file link","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FileLink"}}}},"400":{"description":"The request is invalid or contains invalid parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized. The request is missing the security (OAuth2 Bearer token) requirements and the server is unable to verify the identify of the caller.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Resource Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"security":[{"bearerAuth":[]}]}},"/v1/files/{id}/contents":{"get":{"operationId":"files_getContents","summary":"Get File Contents","description":"Returns a 302 to a temporary, unauthenticated URL, allowing clients to download file contents directly","tags":["files"],"parameters":[{"name":"id","in":"path","description":"The unique identifier for the file","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response"},"400":{"description":"The request is invalid or contains invalid parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized. The request is missing the security (OAuth2 Bearer token) requirements and the server is unable to verify the identify of the caller.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Resource Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"security":[{"bearerAuth":[]}]}},"/v1/properties":{"get":{"operationId":"properties_list","summary":"List Properties","description":"List properties for your account.","tags":["properties"],"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"}},{"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":{"description":"The response for Properties.list","content":{"application/json":{"schema":{"$ref":"#/components/schemas/properties_list_Response_200"}}}},"400":{"description":"The request is invalid or contains invalid parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized. The request is missing the security (OAuth2 Bearer token) requirements and the server is unable to verify the identify of the caller.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"security":[{"bearerAuth":[]}]}},"/v1/properties/{id}":{"get":{"operationId":"properties_get","summary":"Get a Property","description":"Get a property by its unique identifier.","tags":["properties"],"parameters":[{"name":"id","in":"path","description":"The unique identifier for the property","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The property was retrieved","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Property"}}}},"400":{"description":"The request is invalid or contains invalid parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized. The request is missing the security (OAuth2 Bearer token) requirements and the server is unable to verify the identify of the caller.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Resource Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"security":[{"bearerAuth":[]}]}},"/v1/properties/{id}/options":{"get":{"operationId":"properties_listOptions","summary":"List Property Options","description":"List all options for an enum or user property.","tags":["properties"],"parameters":[{"name":"id","in":"path","description":"The unique identifier for the property","required":true,"schema":{"type":"string"}},{"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"}},{"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":{"description":"The response for Properties.listOptions","content":{"application/json":{"schema":{"$ref":"#/components/schemas/properties_listOptions_Response_200"}}}},"400":{"description":"The request is invalid or contains invalid parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized. The request is missing the security (OAuth2 Bearer token) requirements and the server is unable to verify the identify of the caller.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Resource Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"security":[{"bearerAuth":[]}]}},"/v1/properties/{id}/assign":{"post":{"operationId":"properties_assign","summary":"Assign a Property","description":"Appends a Property to one or more Donations or Deposits.\nA maximum of 100 resources can be assigned to a property at a time.\nThe resource identifiers must be of the same resource_type as the Property, otherwise a 400 Bad Request error will be returned.","tags":["properties"],"parameters":[{"name":"id","in":"path","description":"The unique identifier for the property","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The response for Properties.assign","content":{"application/json":{"schema":{"$ref":"#/components/schemas/properties_assign_Response_200"}}}},"400":{"description":"The request is invalid or contains invalid parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized. The request is missing the security (OAuth2 Bearer token) requirements and the server is unable to verify the identify of the caller.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Resource Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"requestBody":{"description":"The request to add a property value to a donation or deposit resource.","content":{"application/json":{"schema":{"type":"object","properties":{"value":{"$ref":"#/components/schemas/PropertyValue"},"resources":{"$ref":"#/components/schemas/V1PropertiesIdAssignPostRequestBodyContentApplicationJsonSchemaResources"}},"required":["value","resources"]}}}},"security":[{"bearerAuth":[]}]}},"/v1/connects":{"post":{"operationId":"connects_create","summary":"Create Connect","description":"Get an existing connect or create a new connect for an existing nonprofit organization.\n\nThe 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.\n\n<Note>\nOnly one Connect object can be created per organization.\nIf one already exists, this will return a `200 OK` status with the existing object.\n</Note>","tags":["Connects"],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Connect"}}}},"400":{"description":"The request is invalid or contains invalid parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized. The request is missing the security (OAuth2 Bearer token) requirements and the server is unable to verify the identify of the caller.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Resource Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"requestBody":{"description":"The request to create a new Connect object for a nonprofit.","content":{"application/json":{"schema":{"type":"object","properties":{"organization_id":{"type":"string","description":"The unique identifier for the organization"},"contact":{"$ref":"#/components/schemas/V1ConnectsPostRequestBodyContentApplicationJsonSchemaContact"},"name":{"type":"string","description":"A human readable name of the Connect, optional."},"metadata":{"type":"object","additionalProperties":{"type":"string"},"description":"A map of arbitrary string keys and values to store information about the object."}},"required":["organization_id","contact"]}}}},"security":[{"bearerAuth":[]}]}},"/v1/connects/{id}":{"get":{"operationId":"connects_get","summary":"Get Connect","description":"Retrieve a connect with the given ID.","tags":["Connects"],"parameters":[{"name":"id","in":"path","description":"the unique id of the connect","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Connect"}}}},"400":{"description":"The request is invalid or contains invalid parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized. The request is missing the security (OAuth2 Bearer token) requirements and the server is unable to verify the identify of the caller.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Resource Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"security":[{"bearerAuth":[]}]}},"/v1/grants":{"get":{"operationId":"grants_list","summary":"List Grants","description":"Returns a list of all grants for a given Connect. This API allows for paginating over many results.\n\nDAF providers can use `donor_account_id` to filter Grant Requests associated with a specific [Donor Account](/api/donor-accounts).","tags":["Grants"],"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.","required":false,"schema":{"type":"string"}},{"name":"donor_account_id","in":"query","description":"Filter grants by a specific [Donor Account](/api/donor-accounts). Use this to retrieve all Grant Requests associated with a given donor.","required":false,"schema":{"type":"string"}},{"name":"donation_id","in":"query","description":"Filter grants by the `id` of a specific [Donation](/api/donations). Use this to retrieve the grant behind a donation you already have.","required":false,"schema":{"type":"string"}},{"name":"tracking_id","in":"query","description":"Filter grants by their DAFpay tracking ID. Use this to find the grant behind a tracking ID you already have.","required":false,"schema":{"type":"string","minLength":1}},{"name":"external_grant_id","in":"query","description":"Filter grants by the ID the donor advised fund gave the grant. Use this to find the grant behind a DAF's grant ID.","required":false,"schema":{"type":"string","minLength":1}},{"name":"pageLimit","in":"query","description":"the number of results to return; defaults to 10, max is 100","required":false,"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.","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"The response for Grants.list","content":{"application/json":{"schema":{"$ref":"#/components/schemas/grants_list_Response_200"}}}},"400":{"description":"The request is invalid or contains invalid parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized. The request is missing the security (OAuth2 Bearer token) requirements and the server is unable to verify the identify of the caller.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"security":[{"bearerAuth":[]}]},"post":{"operationId":"grants_create","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.\nOn initial creation of the grant, this request will return a 201 Created status. On subsequent requests, the request will return status 200 OK.\n\n<Warning>\nError handling:\n- The grant must be captured within 15 minutes of authorization otherwise the request will return status `410 Gone`.\n- If this request is submitted while this grant is already being processed, the request will return status `409 Conflict`.\n- 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`.\n- 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`.\n- The amount must be less than or equal to the user's DAF account balance otherwise the request will return status `400 Bad Request`.\n- Any inputs exceeding the maximum allowed length will be automatically truncated.\n</Warning>","tags":["Grants"],"responses":{"200":{"description":"The grant","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Grant"}}}},"400":{"description":"The request is invalid or contains invalid parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized. The request is missing the security (OAuth2 Bearer token) requirements and the server is unable to verify the identify of the caller.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Resource Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Resource Conflicts","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"410":{"description":"Resource Gone or Expired","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"requestBody":{"description":"The request to create and submit a grant. This is useful to capture a grant intent associated with DAFpay workflow session.\nThe request should specify the grant amount. This is the amount submitted for processing by the DAF.","content":{"application/json":{"schema":{"type":"object","properties":{"workflowSessionId":{"type":"string","description":"The identifier of the donor's DAFpay Workflow Session.\nSee [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","format":"double","description":"The grant amount in cents that will be processed by Chariot and submitted to the DAF.\nThis amount must be in whole dollar increments (rounded to the nearest hundred) as currently\nall DAFs only accept whole dollar grant amounts."},"applicationFeeAmount":{"type":"number","format":"double","description":"This parameter specifies the fee your platform plans to take from the grant in cents.\nThis is a fee in addition to Chariot's processing fee. With application fees,\nChariot collects the fee you determine from the nonprofit and passes it to your platform.\nPlease note that platform fees are only taken when the grant is successfully received by the nonprofit.\nThe sum of Chariot's fee and the applicationFeeAmount cannot exceed 5% of the grant's amount.\nIf the fee limit is exceeded, a `400 Bad Request` error will be returned."},"donor":{"$ref":"#/components/schemas/V1GrantsPostRequestBodyContentApplicationJsonSchemaDonor"},"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.\nNote that including a custom designation may cause the grant approval process to take longer.\nMaximum length: 100 characters."}},"required":["workflowSessionId","amount"]}}}},"security":[{"bearerAuth":[]}]}},"/v1/grants/{id}":{"get":{"operationId":"grants_get","summary":"Get Grant","description":"Retrieve a grant with the given ID.","tags":["Grants"],"parameters":[{"name":"id","in":"path","description":"The unique id of the grant.\nThe format should be a v4 UUID according to RFC 4122.","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Grant"}}}},"400":{"description":"The request is invalid or contains invalid parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized. The request is missing the security (OAuth2 Bearer token) requirements and the server is unable to verify the identify of the caller.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Resource Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"security":[{"bearerAuth":[]}]}},"/v1/simulations/grants/{id}/complete":{"post":{"operationId":"grants_simulateGrantCompletion","summary":"Sandbox: Complete a grant","description":"Simulates the DAF sponsor completing a grant. Transitions the grant status to `completed`.\n\n<Note title=\"Sandbox Only\" icon=\"fa-light fa-atom-simple\">\nThis API is only available in the sandbox environment.\n</Note>\n","tags":["Grants"],"parameters":[{"name":"id","in":"path","description":"The unique identifier for the grant.","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"The updated grant","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Grant"}}}},"400":{"description":"The request is invalid or contains invalid parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized. The request is missing the security (OAuth2 Bearer token) requirements and the server is unable to verify the identify of the caller.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Resource Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"security":[{"bearerAuth":[]}]}},"/v1/simulations/grants/{id}/cancel":{"post":{"operationId":"grants_simulateGrantCancellation","summary":"Sandbox: Cancel a grant","description":"Simulates the DAF sponsor canceling the grant. Transitions the grant status to `canceled`.\n\n<Note title=\"Sandbox Only\" icon=\"fa-light fa-atom-simple\">\nThis API is only available in the sandbox environment.\n</Note>\n","tags":["Grants"],"parameters":[{"name":"id","in":"path","description":"The unique identifier for the grant.","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"The updated grant","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Grant"}}}},"400":{"description":"The request is invalid or contains invalid parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized. The request is missing the security (OAuth2 Bearer token) requirements and the server is unable to verify the identify of the caller.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Resource Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"security":[{"bearerAuth":[]}]}},"/v1/recurring_grants":{"get":{"operationId":"recurringGrants_list","summary":"List Recurring Grants","description":"Returns a list of all recurring grants for a given Connect. This API allows for paginating over many results.","tags":["recurring_grants"],"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.","required":false,"schema":{"type":"string"}},{"name":"pageLimit","in":"query","description":"the number of results to return; defaults to 10, max is 100","required":false,"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.","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"The response for RecurringGrants.list","content":{"application/json":{"schema":{"$ref":"#/components/schemas/recurring_grants_list_Response_200"}}}},"400":{"description":"The request is invalid or contains invalid parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized. The request is missing the security (OAuth2 Bearer token) requirements and the server is unable to verify the identify of the caller.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"security":[{"bearerAuth":[]}]},"post":{"operationId":"recurringGrants_create","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.\n\n<Warning>\nError handling:\n- The recurring grant must be captured within 15 minutes of authorization otherwise the request will return status `410 Gone`.\n- A recurring grant can only be captured once from any given workflow session so any duplicate requests will return status `409 Conflict`.\n- 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`.\n- 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`.\n- The amount must be less than or equal to the user's DAF account balance otherwise the request will return status `400 Bad Request`.\n- Any inputs exceeding the maximum allowed length will be automatically truncated unless otherwise stated.\n</Warning>","tags":["recurring_grants"],"responses":{"201":{"description":"Created recurring grant","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RecurringGrant"}}}},"400":{"description":"The request is invalid or contains invalid parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized. The request is missing the security (OAuth2 Bearer token) requirements and the server is unable to verify the identify of the caller.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Resource Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Resource Conflicts","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"410":{"description":"Resource Gone or Expired","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"requestBody":{"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.\nThe request should specify the grant amount. The grant will re-occur according to the scheduled frequency or recurrence of the request.\nThe recurring grant will continue indefinitely until the donor runs out of funds or until the donor cancels the recurring grant with their DAF provider.\nSome DAF providers require an end-date or number of payments in order to create a recurring grant.\nIn 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.\nSome 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.\nFor example, if the DAF provider allows recurring donations to continue for up to 10 years we will submit the request as such.\nThis is the amount submitted for processing by the DAF.","content":{"application/json":{"schema":{"type":"object","properties":{"workflowSessionId":{"type":"string","description":"The identifier of the donor's DAFpay Workflow Session.\nSee [Capturing Grant Intents](/guides/dafpay/integrating-dafpay/integration#capturing-grant-intents) for how to get this value from the DAFpay `CHARIOT_SUCCESS` event."},"frequency":{"$ref":"#/components/schemas/V1RecurringGrantsPostRequestBodyContentApplicationJsonSchemaFrequency","description":"The recurrence interval schedule for the recurring grant. Currently, only `MONTHLY` is supported."},"amount":{"type":"number","format":"double","description":"The final grant amount in cents that will be processed by Chariot and submitted to the DAF for recurring gifts.\nThis amount must be in whole dollar increments (rounded to the nearest hundred) as currently\nall DAFs only accept whole dollar grants."},"applicationFeeAmount":{"type":"number","format":"double","description":"This parameter specifies the fee your platform plans to take from the first grant in cents.\nThis is a fee in addition to Chariot's processing fee. With application fees,\nChariot collects the fee you determine from the nonprofit and passes it to your platform.\nPlease note that platform fees are only taken when the grant is successfully received by the nonprofit.\nThe sum of Chariot's fee and the applicationFeeAmount cannot exceed 5% of the grant's amount.\nIf the 5% limit is exceeded, a 400 error will be returned."},"donor":{"$ref":"#/components/schemas/V1RecurringGrantsPostRequestBodyContentApplicationJsonSchemaDonor"},"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.\nNote that including a custom designation may cause the grant approval process to take longer.\nDesignations over 100 characters will be truncated."}},"required":["workflowSessionId","frequency","amount"]}}}},"security":[{"bearerAuth":[]}]}},"/v1/recurring_grants/{id}":{"get":{"operationId":"recurringGrants_get","summary":"Get Recurring Grant","description":"Retrieve a recurring grant with a given ID.","tags":["recurring_grants"],"parameters":[{"name":"id","in":"path","description":"The unique id of the recurring grant.\nThe format should be a v4 UUID according to RFC 4122.","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RecurringGrant"}}}},"400":{"description":"The request is invalid or contains invalid parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized. The request is missing the security (OAuth2 Bearer token) requirements and the server is unable to verify the identify of the caller.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Resource Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"security":[{"bearerAuth":[]}]}},"/v1/unintegrated_grants":{"get":{"operationId":"unintegratedGrants_list","summary":"List Unintegrated Grants","description":"Returns a list of all unintegrated grants for a given Connect. This API allows for paginating over many results.","tags":["unintegrated_grants"],"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.","required":false,"schema":{"type":"string"}},{"name":"tracking_id","in":"query","description":"Filter unintegrated grants by their DAFpay tracking ID. Use this to find the unintegrated grant behind a tracking ID you already have.","required":false,"schema":{"type":"string","minLength":1}},{"name":"pageLimit","in":"query","description":"the number of results to return; defaults to 10, max is 100","required":false,"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.","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"The response for UnintegratedGrants.list","content":{"application/json":{"schema":{"$ref":"#/components/schemas/unintegrated_grants_list_Response_200"}}}},"400":{"description":"The request is invalid or contains invalid parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized. The request is missing the security (OAuth2 Bearer token) requirements and the server is unable to verify the identify of the caller.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"security":[{"bearerAuth":[]}]}},"/v1/unintegrated_grants/{id}":{"get":{"operationId":"unintegratedGrants_get","summary":"Get Unintegrated Grant","description":"Retrieve an unintegrated grant with a given ID.","tags":["unintegrated_grants"],"parameters":[{"name":"id","in":"path","description":"The unique id of the unintegrated grant.\nThe format should be a v4 UUID according to RFC 4122.","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnintegratedGrant"}}}},"400":{"description":"The request is invalid or contains invalid parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized. The request is missing the security (OAuth2 Bearer token) requirements and the server is unable to verify the identify of the caller.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Resource Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"security":[{"bearerAuth":[]}]}},"/v1/dafs":{"get":{"operationId":"donorAdvisedFunds_list","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.\n\n<Note>\nIf there are DAFs missing from the list, please contact support at support@givechariot.com.\n</Note>","tags":["donorAdvisedFunds"],"parameters":[{"name":"supportedOnly","in":"query","description":"If set to true, filters DAFs to only those that have a direct integration with Chariot.","required":false,"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.","required":false,"schema":{"type":"string"}},{"name":"pageLimit","in":"query","description":"the number of results to return; defaults to 10, max is 100","required":false,"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.","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"The response for Dafs.list","content":{"application/json":{"schema":{"$ref":"#/components/schemas/donorAdvisedFunds_list_Response_200"}}}},"400":{"description":"The request is invalid or contains invalid parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized. The request is missing the security (OAuth2 Bearer token) requirements and the server is unable to verify the identify of the caller.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"security":[{"bearerAuth":[]}]}},"/v1/dafs/{id}":{"get":{"operationId":"donorAdvisedFunds_get","summary":"Get Donor Advised Fund","description":"Retrieve a DAF with a given ID.","tags":["donorAdvisedFunds"],"parameters":[{"name":"id","in":"path","description":"The unique id of the DAF.\nThe format should be a v4 UUID according to RFC 4122.","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Daf"}}}},"400":{"description":"The request is invalid or contains invalid parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized. The request is missing the security (OAuth2 Bearer token) requirements and the server is unable to verify the identify of the caller.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Resource Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"security":[{"bearerAuth":[]}]}},"/v1/donor_accounts":{"get":{"operationId":"donorAccounts_list","summary":"List Donor Accounts","description":"Returns a list of Donor Accounts for the authenticated DAF.\nThis endpoint supports cursor-based pagination as well as filtering by fund, status, and email.","tags":["donorAccounts"],"parameters":[{"name":"giving_pool_id","in":"query","description":"The `id` of a [Giving Pool](/api/giving-pools). When set, filters Donor Accounts to those that have this Giving Pool associated with them.","required":false,"schema":{"type":"string"}},{"name":"status","in":"query","description":"Filter Donor Accounts to only those with the specified status.","required":false,"schema":{"$ref":"#/components/schemas/DonorAccountStatus"}},{"name":"email","in":"query","description":"Filter Donor Accounts by donor email. The match is case insensitive and exact.","required":false,"schema":{"type":"string"}},{"name":"external_id","in":"query","description":"Filter Donor Accounts by `external_id` — the DAF's internal identifier for the Donor Account.","required":false,"schema":{"type":"string"}},{"name":"page_limit","in":"query","description":"the number of results to return; defaults to 10, max is 100","required":false,"schema":{"type":"integer","default":10}},{"name":"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 next_page_token in the previous response.","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"The response for DonorAccounts.list","content":{"application/json":{"schema":{"$ref":"#/components/schemas/donorAccounts_list_Response_200"}}}},"400":{"description":"The request is invalid or contains invalid parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized. The request is missing the security (OAuth2 Bearer token) requirements and the server is unable to verify the identify of the caller.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"security":[{"bearerAuth":[]}]},"post":{"operationId":"donorAccounts_create","summary":"Create Donor Account","description":"Create a new Donor Account.\n\nThis endpoint is intended for DAF providers who want to set up a Donor Account on behalf of a donor before that donor uses DAFpay for the first time.\nSee the [DAF-Initiated Setup guide](/guides/dafpay/donor-accounts/daf-initiated-setup) for the most common use of this endpoint.\n\nOn creation, the Donor Account is placed in `pending` status. To make the account immediately usable for grant submissions, follow up with [Create Authorization Token](/api/donor-accounts/create-authorization-token) and provide the resulting code to the donor — when the donor enters the code in DAFpay, the Donor Account is automatically approved.","tags":["donorAccounts"],"responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DonorAccount"}}}},"400":{"description":"The request is invalid or contains invalid parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized. The request is missing the security (OAuth2 Bearer token) requirements and the server is unable to verify the identify of the caller.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Resource Conflicts","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"requestBody":{"description":"The request to create a new Donor Account.\nUsed by DAFs to pre-establish access for a donor before that donor authenticates through DAFpay.","content":{"application/json":{"schema":{"type":"object","properties":{"donor":{"$ref":"#/components/schemas/V1DonorAccountsPostRequestBodyContentApplicationJsonSchemaDonor","description":"The donor's identity and profile information. `email` is required and **must** match the email the donor will use when authenticating with DAFpay — DAFpay matches incoming verified emails to existing Accounts. Other fields are optional and may be filled in later by the donor during DAFpay profile setup."},"external_id":{"type":"string","description":"The DAF's internal identifier for this Donor Account. Optional but strongly recommended — it allows you to reconcile DAFpay grants with the donor's record in your own system without an additional update later. Maximum length: 255 characters."},"metadata":{"type":"object","additionalProperties":{"type":"string"},"description":"A map of arbitrary string keys and values to store information about the object."}},"required":["donor"]}}}},"security":[{"bearerAuth":[]}]}},"/v1/donor_accounts/{id}":{"get":{"operationId":"donorAccounts_get","summary":"Get Donor Account","description":"Retrieve a Donor Account with the given ID.","tags":["donorAccounts"],"parameters":[{"name":"id","in":"path","description":"The unique id of the Donor Account.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DonorAccount"}}}},"400":{"description":"The request is invalid or contains invalid parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized. The request is missing the security (OAuth2 Bearer token) requirements and the server is unable to verify the identify of the caller.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Resource Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"security":[{"bearerAuth":[]}]},"patch":{"operationId":"donorAccounts_update","summary":"Update Donor Account","description":"Update mutable properties on a Donor Account such as `external_id`, the nested `donor` fields, and `metadata`.\n\nThe Donor Account's status is managed automatically through the Authorization Token verification flow and cannot be changed directly via this endpoint.","tags":["donorAccounts"],"parameters":[{"name":"id","in":"path","description":"The unique id of the Donor Account","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DonorAccount"}}}},"400":{"description":"The request is invalid or contains invalid parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized. The request is missing the security (OAuth2 Bearer token) requirements and the server is unable to verify the identify of the caller.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Resource Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"requestBody":{"description":"The request to update mutable properties on a Donor Account.\nNote that the Donor Account's status is managed automatically through the Authorization Token verification flow and cannot be changed directly via this endpoint.","content":{"application/json":{"schema":{"type":"object","properties":{"donor":{"$ref":"#/components/schemas/V1DonorAccountsIdPatchRequestBodyContentApplicationJsonSchemaDonor","description":"Mutable donor identity fields. Only the fields you pass are updated; omitted fields are left unchanged."},"external_id":{"type":"string","description":"The DAF's internal identifier for this Donor Account. Maximum length: 255 characters."},"metadata":{"type":"object","additionalProperties":{"type":"string"},"description":"A map of arbitrary string keys and values to store information about the object."}}}}}},"security":[{"bearerAuth":[]}]}},"/v1/donor_accounts/{id}/disable":{"post":{"operationId":"donorAccounts_disable-donor-account","summary":"Disable Donor Account","description":"Disable an approved Donor Account.\n\nA disabled Donor Account remains `approved` but cannot submit new Grant Requests. Existing Grant Requests already in flight are unaffected — disabling does not retroactively cancel or reject prior activity. Use this when a DAF needs to temporarily prevent a donor from initiating new grants (e.g. account under review, donor offboarding) without rejecting the underlying identity verification.\n\nThis endpoint is idempotent — calling it on an already-disabled account returns the Donor Account unchanged.\n\n<Warning>\n- The Donor Account must be in `approved` status. Calls on a `pending` or `rejected` account return status `409 Conflict`.\n</Warning>","tags":["donorAccounts"],"parameters":[{"name":"id","in":"path","description":"The unique id of the Donor Account.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The Donor Account was disabled (or was already disabled).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DonorAccount"}}}},"400":{"description":"The request is invalid or contains invalid parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized. The request is missing the security (OAuth2 Bearer token) requirements and the server is unable to verify the identify of the caller.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Resource Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Resource Conflicts","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"security":[{"bearerAuth":[]}]}},"/v1/donor_accounts/{id}/enable":{"post":{"operationId":"donorAccounts_enable-donor-account","summary":"Enable Donor Account","description":"Re-enable a previously disabled Donor Account. After this call, the Donor Account can submit new Grant Requests again.\n\nThis endpoint is idempotent — calling it on an account that is already enabled returns the Donor Account unchanged.\n\n<Warning>\n- The Donor Account must be in `approved` status. Calls on a `pending` or `rejected` account return status `409 Conflict`.\n</Warning>","tags":["donorAccounts"],"parameters":[{"name":"id","in":"path","description":"The unique id of the Donor Account.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The Donor Account was enabled (or was already enabled).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DonorAccount"}}}},"400":{"description":"The request is invalid or contains invalid parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized. The request is missing the security (OAuth2 Bearer token) requirements and the server is unable to verify the identify of the caller.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Resource Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Resource Conflicts","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"security":[{"bearerAuth":[]}]}},"/v1/donor_accounts/{id}/authorization_tokens":{"get":{"operationId":"authorizationTokens_list","summary":"List Authorization Tokens","description":"List Authorization Tokens for a Donor Account.\nToken codes are never returned by this endpoint — only the metadata is returned.","tags":["authorizationTokens"],"parameters":[{"name":"id","in":"path","description":"The unique id of the Donor Account","required":true,"schema":{"type":"string"}},{"name":"status","in":"query","description":"Filter tokens by status.","required":false,"schema":{"$ref":"#/components/schemas/DonorAuthorizationTokenStatus"}},{"name":"page_limit","in":"query","description":"the number of results to return; defaults to 10, max is 100","required":false,"schema":{"type":"integer","default":10}},{"name":"page_token","in":"query","description":"A cursor for paginating; pass the value from `next_page_token` of the previous response.","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"The response for DonorAccounts.listAuthorizationTokens","content":{"application/json":{"schema":{"$ref":"#/components/schemas/authorizationTokens_list_Response_200"}}}},"400":{"description":"The request is invalid or contains invalid parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized. The request is missing the security (OAuth2 Bearer token) requirements and the server is unable to verify the identify of the caller.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Resource Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"security":[{"bearerAuth":[]}]},"post":{"operationId":"authorizationTokens_create","summary":"Create Authorization Token","description":"Create a single-use Authorization Token bound to a Donor Account.\n\nAuthorization Tokens are the binding credential used to verify a donor's identity between DAFpay and the DAF.\nThey are used in two distinct flows:\n\n- **DAF-Initiated Setup**: The DAF creates a Donor Account and then creates an Authorization Token. The DAF surfaces the token's `code` to the donor via their portal. The donor enters the `code` into DAFpay during profile setup, automatically approving the Donor Account.\n- **Donor-Initiated Verification**: After a donor submits a Grant Request, DAFpay automatically issues an Authorization Token and emails the `code` to the donor. The donor provides the `code` to the DAF (e.g. via a portal form or phone call). The DAF then calls [Verify Authorization Token](/api/authorization-tokens/verify) with the `code` to verify and approve the linked Donor Account.\n\nTokens expire **30 days** after creation by default. Override the lifetime by passing `expires_in` (seconds) on the request body — supported range is 60 seconds to 90 days. Once a token expires it transitions to `expired` and can no longer be verified; create a new token to issue a fresh code.\n\n<Warning>\nThe token's `code` value is **only returned once** in this response. Treat it as a credential — store it securely and never log it. If the code is lost before being verified, [revoke](/api/authorization-tokens/revoke) the token and create a new one.\n</Warning>","tags":["authorizationTokens"],"parameters":[{"name":"id","in":"path","description":"The unique id of the Donor Account","required":true,"schema":{"type":"string"}}],"responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DonorAuthorizationToken"}}}},"400":{"description":"The request is invalid or contains invalid parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized. The request is missing the security (OAuth2 Bearer token) requirements and the server is unable to verify the identify of the caller.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Resource Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"requestBody":{"description":"The request to create a new Authorization Token bound to a Donor Account.\nAll fields are optional — an empty body produces a token with default settings.","content":{"application/json":{"schema":{"type":"object","properties":{"expires_in":{"type":"integer","description":"The number of seconds the token is valid for. Defaults to 30 days. Must be between 60 (1 minute) and 7,776,000 (90 days)."},"metadata":{"type":"object","additionalProperties":{"type":"string"},"description":"A map of arbitrary string keys and values to store information about the object."}}}}}},"security":[{"bearerAuth":[]}]}},"/v1/authorization_tokens/{id}":{"get":{"operationId":"authorizationTokens_get","summary":"Get Authorization Token","description":"Retrieve an Authorization Token with the given ID.\nThe token's `code` is never returned — only the metadata is returned.","tags":["authorizationTokens"],"parameters":[{"name":"id","in":"path","description":"The unique id of the Authorization Token","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DonorAuthorizationToken"}}}},"400":{"description":"The request is invalid or contains invalid parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized. The request is missing the security (OAuth2 Bearer token) requirements and the server is unable to verify the identify of the caller.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Resource Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"security":[{"bearerAuth":[]}]}},"/v1/authorization_tokens/{id}/revoke":{"post":{"operationId":"authorizationTokens_revoke","summary":"Revoke Authorization Token","description":"Revoke an unverified Authorization Token. Once revoked, the `code` can no longer be verified.\nTokens that have already been verified or expired cannot be revoked and will return status `412 Precondition Failed`.","tags":["authorizationTokens"],"parameters":[{"name":"id","in":"path","description":"The unique id of the Authorization Token","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The token was revoked","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DonorAuthorizationToken"}}}},"400":{"description":"The request is invalid or contains invalid parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized. The request is missing the security (OAuth2 Bearer token) requirements and the server is unable to verify the identify of the caller.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Resource Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"security":[{"bearerAuth":[]}]}},"/v1/authorization_tokens/verify":{"post":{"operationId":"authorizationTokens_verify","summary":"Verify Authorization Token","description":"Verify an Authorization Token by its `code` value.\n\nThis endpoint is used by DAFs in the **Donor-Initiated Verification** flow: when a donor presents the `code` they received from DAFpay (via email after submitting a Grant Request), the DAF calls this endpoint with the `code` to confirm the donor's identity.\n\nOn success:\n- The Authorization Token transitions to `verified`.\n- The linked Donor Account is automatically transitioned to `approved` if it is currently `pending`.\n- The full Donor Account is returned (including the `id` you can use to call subsequent endpoints).\n\nCodes are only valid until the token's `expires_at` — **30 days** after creation by default (configurable via `expires_in` on [Create Authorization Token](/api/authorization-tokens/create), 60 seconds to 90 days). After that point, the token's status becomes `expired` and verification will fail. If the donor's code has expired, prompt them to submit a new Grant Request — DAFpay will issue and email a fresh code automatically.\n\n<Warning>\nError handling:\n- If the `code` is unknown, expired, revoked, or already verified, the request will return status `404 Not Found` or `410 Gone` to avoid leaking information about valid codes. Expired codes are intentionally indistinguishable from other invalid codes in the response — surface a generic \"code is invalid or has expired\" message to the donor and ask them to request a new code.\n- If the linked Donor Account has already been rejected, the request will return status `409 Conflict`.\n- To prevent brute-force attacks, this endpoint enforces strict per-DAF rate limits. Repeated failures will return status `429 Too Many Requests`.\n</Warning>","tags":["authorizationTokens"],"responses":{"200":{"description":"The token was successfully verified and the Donor Account was approved.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DonorAccount"}}}},"400":{"description":"The request is invalid or contains invalid parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized. The request is missing the security (OAuth2 Bearer token) requirements and the server is unable to verify the identify of the caller.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Resource Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Resource Conflicts","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"410":{"description":"Resource Gone or Expired","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"requestBody":{"description":"The request to verify an Authorization Token by its `code` value.","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string","description":"The token's secret code value as provided by the donor. Verification is case-insensitive and tolerant of whitespace and dashes."},"external_id":{"type":"string","description":"The DAF's internal identifier for this Donor Account. If provided, will be set on the Donor Account as part of the verification. Maximum length: 255 characters."}},"required":["code"]}}}},"security":[{"bearerAuth":[]}]}},"/v1/giving_pools":{"get":{"operationId":"givingPools_list","summary":"List Giving Pools","description":"Returns a list of Giving Pools accessible to the authenticated DAF account.\n\nGiving Pools represent individual named giving pools within a donor's DAF account (e.g. \"Smith Family Fund\").\nA [Donor Account](/api/donor-accounts) may be associated with multiple Giving Pools.","tags":["givingPools"],"parameters":[{"name":"donor_account_id","in":"query","description":"Filter Giving Pools by the ID of the associated [Donor Account](/api/donor-accounts).","required":false,"schema":{"type":"string"}},{"name":"page_limit","in":"query","description":"The number of results to return. Defaults to 10, max is 100.","required":false,"schema":{"type":"integer","default":10}},{"name":"page_token","in":"query","description":"A token to retrieve the next page of results.","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/givingPools_list_Response_200"}}}},"400":{"description":"The request is invalid or contains invalid parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized. The request is missing the security (OAuth2 Bearer token) requirements and the server is unable to verify the identify of the caller.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"security":[{"bearerAuth":[]}]}},"/v1/giving_pools/{id}":{"get":{"operationId":"givingPools_get","summary":"Get Giving Pool","description":"Retrieve a Giving Pool with the given ID.","tags":["givingPools"],"parameters":[{"name":"id","in":"path","description":"The unique ID of the Giving Pool.","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GivingPool"}}}},"400":{"description":"The request is invalid or contains invalid parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized. The request is missing the security (OAuth2 Bearer token) requirements and the server is unable to verify the identify of the caller.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Resource Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"security":[{"bearerAuth":[]}]}},"/v1/grant_requests":{"get":{"operationId":"grantRequests_list","summary":"List Grant Requests","description":"Returns a list of Grant Requests accessible to the authenticated DAF account.\n\nUse `donor_account_id` to retrieve all Grant Requests associated with a specific donor.","tags":["grantRequests"],"parameters":[{"name":"donor_account_id","in":"query","description":"Filter Grant Requests by the ID of the associated [Donor Account](/api/donor-accounts).","required":false,"schema":{"type":"string"}},{"name":"page_limit","in":"query","description":"The number of results to return. Defaults to 10, max is 100.","required":false,"schema":{"type":"integer","default":10}},{"name":"page_token","in":"query","description":"A token to retrieve the next page of results.","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/grantRequests_list_Response_200"}}}},"400":{"description":"The request is invalid or contains invalid parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized. The request is missing the security (OAuth2 Bearer token) requirements and the server is unable to verify the identify of the caller.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"security":[{"bearerAuth":[]}]}},"/v1/grant_requests/{id}":{"get":{"operationId":"grantRequests_get","summary":"Get Grant Request","description":"Retrieve a Grant Request with the given ID.","tags":["grantRequests"],"parameters":[{"name":"id","in":"path","description":"The unique ID of the Grant Request.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GrantRequest"}}}},"400":{"description":"The request is invalid or contains invalid parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized. The request is missing the security (OAuth2 Bearer token) requirements and the server is unable to verify the identify of the caller.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Resource Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"security":[{"bearerAuth":[]}]}},"/v1/grant_requests/{id}/submit":{"post":{"operationId":"grantRequests_submit","summary":"Submit Grant Request","description":"Confirm that you have submitted the grant in your system.\n\nCalling this endpoint moves the Grant Request's status to `submitted` and emits a `grant_request.updated` webhook event.\n\n<Warning>\n- The Grant Request must be in `pending` status. If the linked [Donor Account](/api/donor-accounts) is not yet `approved`, the Grant Request will be in `awaiting_account_decision` and this request returns status `412 Precondition Failed`.\n- A Grant Request that is already `submitted` or `rejected` cannot be updated. Subsequent calls return status `409 Conflict`.\n</Warning>","tags":["grantRequests"],"parameters":[{"name":"id","in":"path","description":"The unique ID of the Grant Request.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The Grant Request was submitted.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GrantRequest"}}}},"400":{"description":"The request is invalid or contains invalid parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized. The request is missing the security (OAuth2 Bearer token) requirements and the server is unable to verify the identify of the caller.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Resource Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Resource Conflicts","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"requestBody":{"description":"The request to submit a Grant Request.\nAll fields are optional — an empty body is valid.","content":{"application/json":{"schema":{"type":"object","properties":{"external_grant_id":{"type":"string","description":"The DAF's internal identifier for this grant. Setting this at submission time provides a useful audit trail and reconciliation key. Maximum length: 255 characters."},"comment":{"type":"string","description":"An optional comment recorded with the submission. Maximum length: 400 characters."}}}}}},"security":[{"bearerAuth":[]}]}},"/v1/grant_requests/{id}/reject":{"post":{"operationId":"grantRequests_reject","summary":"Reject Grant Request","description":"Indicate that you will not process this grant.\n\nCalling this endpoint moves the Grant Request's status to `rejected` and emits a `grant_request.updated` webhook event.\nThe Donor Account itself is unaffected; future Grant Requests from the same donor can still be processed.\n\n<Warning>\nA Grant Request that is already `submitted` or `rejected` cannot be updated. Subsequent calls return status `409 Conflict`.\n</Warning>","tags":["grantRequests"],"parameters":[{"name":"id","in":"path","description":"The unique ID of the Grant Request.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The Grant Request was rejected.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GrantRequest"}}}},"400":{"description":"The request is invalid or contains invalid parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized. The request is missing the security (OAuth2 Bearer token) requirements and the server is unable to verify the identify of the caller.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Resource Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Resource Conflicts","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"requestBody":{"description":"The request to reject a Grant Request.","content":{"application/json":{"schema":{"type":"object","properties":{"reason":{"type":"string","description":"A human-readable reason for the rejection. Maximum length: 400 characters."}}}}}},"security":[{"bearerAuth":[]}]}},"/v1/inbound_transfers":{"get":{"operationId":"inboundTransfers_list","summary":"List Inbound Transfers","description":"List inbound transfers for your account.","tags":["inboundTransfers"],"parameters":[{"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"}},{"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":"program_id","in":"query","description":"Filter the inbound transfers to a single program.","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"The response for InboundTransfers.list","content":{"application/json":{"schema":{"$ref":"#/components/schemas/inboundTransfers_list_Response_200"}}}},"400":{"description":"The request is invalid or contains invalid parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized. The request is missing the security (OAuth2 Bearer token) requirements and the server is unable to verify the identify of the caller.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Resource Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"security":[{"bearerAuth":[]}]},"post":{"operationId":"inboundTransfers_create","summary":"Create an Inbound transfer","description":"Create an inbound transfer to fund your financial account\nfrom an externally linked bank account.\nIn Production, this requires that an external bank account has been setup\nand verified for your account through the Chariot Dashboard.","tags":["inboundTransfers"],"parameters":[{"name":"Idempotency-Key","in":"header","description":"The idempotency key for the request","required":false,"schema":{"type":"string"}}],"responses":{"201":{"description":"The inbound transfer was created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InboundTransfer"}}}},"400":{"description":"The request is invalid or contains invalid parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized. The request is missing the security (OAuth2 Bearer token) requirements and the server is unable to verify the identify of the caller.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Resource Conflicts","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"requestBody":{"description":"The request body for originating an inbound transfer from an external bank account","content":{"application/json":{"schema":{"type":"object","properties":{"amount":{"type":"integer","format":"int64","description":"The amount of the transfer in cents.\nThis amount must be positive."},"program_id":{"type":"string","description":"The unique identifier for the program that the inbound transfer belongs to."},"description":{"type":"string","description":"An arbitrary string attached to the object. Often useful for displaying to users."}},"required":["amount"]}}}},"security":[{"bearerAuth":[]}]}},"/v1/inbound_transfers/{id}":{"get":{"operationId":"inboundTransfers_get","summary":"Get an Inbound Transfer","description":"Get an inbound transfer by its unique identifier.","tags":["inboundTransfers"],"parameters":[{"name":"id","in":"path","description":"The unique identifier for the inbound transfer","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The inbound transfer was retrieved","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InboundTransfer"}}}},"400":{"description":"The request is invalid or contains invalid parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized. The request is missing the security (OAuth2 Bearer token) requirements and the server is unable to verify the identify of the caller.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Resource Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"security":[{"bearerAuth":[]}]}},"/v1/inbound_transfers/{id}/cancel":{"post":{"operationId":"inboundTransfers_cancel","summary":"Cancel an Inbound Transfer","description":"Cancel an inbound transfer.\nReturns the Inbound Transfer object if the cancelation succeeded.\nReturns a 412 Precondition Failed if the Inbound Transfer has already been canceled or cannot be canceled.","tags":["inboundTransfers"],"parameters":[{"name":"id","in":"path","description":"The unique identifier for the inbound transfer","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The inbound transfer was canceled","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InboundTransfer"}}}},"400":{"description":"The request is invalid or contains invalid parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized. The request is missing the security (OAuth2 Bearer token) requirements and the server is unable to verify the identify of the caller.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Resource Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Resource Conflicts","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"security":[{"bearerAuth":[]}]}},"/v1/simulations/inbound_transfers/{id}/fail":{"post":{"operationId":"inboundTransfers_simulateInboundTransferFailure","summary":"Sandbox: Fail an Inbound Transfer","description":"Simulate an inbound transfer failure.\n\n<Note title=\"Sandbox Only\" icon=\"fa-light fa-atom-simple\">\nThis API is only available in the sandbox environment.\n</Note>","tags":["inboundTransfers"],"parameters":[{"name":"id","in":"path","description":"The unique identifier for the inbound transfer","required":true,"schema":{"type":"string"}}],"responses":{"202":{"description":"The inbound transfer failure request was accepted","content":{"application/json":{"schema":{"$ref":"#/components/schemas/inboundTransfers_simulateInboundTransferFailure_Response_202"}}}},"400":{"description":"The request is invalid or contains invalid parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized. The request is missing the security (OAuth2 Bearer token) requirements and the server is unable to verify the identify of the caller.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Resource Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"security":[{"bearerAuth":[]}]}},"/v1/simulations/inbound_transfers/{id}/complete":{"post":{"operationId":"inboundTransfers_simulateInboundTransferCompletion","summary":"Sandbox: Complete an Inbound Transfer","description":"Simulate an inbound transfer completion.\n\n<Note title=\"Sandbox Only\" icon=\"fa-light fa-atom-simple\">\nThis API is only available in the sandbox environment.\n</Note>","tags":["inboundTransfers"],"parameters":[{"name":"id","in":"path","description":"The unique identifier for the inbound transfer","required":true,"schema":{"type":"string"}}],"responses":{"202":{"description":"The inbound transfer completion request was accepted","content":{"application/json":{"schema":{"$ref":"#/components/schemas/inboundTransfers_simulateInboundTransferCompletion_Response_202"}}}},"400":{"description":"The request is invalid or contains invalid parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized. The request is missing the security (OAuth2 Bearer token) requirements and the server is unable to verify the identify of the caller.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Resource Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"security":[{"bearerAuth":[]}]}},"/v1/disbursements":{"get":{"operationId":"disbursements_list","summary":"List disbursements","description":"Returns a list of disbursements.\n","tags":["disbursements"],"parameters":[{"name":"organization_id","in":"query","description":"The unique identifier for the organization","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"}},{"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.\nPossible values include:\n  - `organization`: Include the organization object in the response.","required":false,"schema":{"type":"string"}},{"name":"idempotency_key","in":"query","description":"Filter to the disbursement created with this exact `Idempotency-Key` header on `POST /v1/disbursements`. Useful for recovering the result of a create request when the response was lost (e.g. network timeout). Returns at most one disbursement. Disbursements created via `POST /v1/disbursements/bulk` cannot be looked up this way.","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"The response for Disbursements.list","content":{"application/json":{"schema":{"$ref":"#/components/schemas/disbursements_list_Response_200"}}}},"400":{"description":"The request is invalid or contains invalid parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized. The request is missing the security (OAuth2 Bearer token) requirements and the server is unable to verify the identify of the caller.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"security":[{"bearerAuth":[]}]},"post":{"operationId":"disbursements_create","summary":"Create a disbursement","description":"Create a disbursement to send money to an organization.\n","tags":["disbursements"],"parameters":[{"name":"Idempotency-Key","in":"header","description":"A client-generated identifier for the request. Replays with the same key return `409 Conflict`. The successfully created disbursement can later be located via `GET /v1/disbursements?idempotency_key=...`.\n\nWe recommend supplying your own unique identifier for the disbursement in your system, so you can later look it up by an ID you already track.","required":false,"schema":{"type":"string"}}],"responses":{"201":{"description":"The disbursement was created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Disbursement"}}}},"400":{"description":"The request is invalid or contains invalid parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized. The request is missing the security (OAuth2 Bearer token) requirements and the server is unable to verify the identify of the caller.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Resource Conflicts","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateDisbursementInput"}}}},"security":[{"bearerAuth":[]}]}},"/v1/disbursements/bulk":{"post":{"operationId":"disbursements_bulkCreateDisbursements","summary":"Create multiple disbursements","description":"Create multiple disbursements in a single request.\nThis is useful for batch operations where you need to create many disbursements at once.\n\nAll disbursements in the request will be created together. If any disbursement fails validation,\nthe entire request will fail and no disbursements will be created.\n\n**Note:** Disbursements created through this endpoint cannot be looked up via `GET /v1/disbursements?idempotency_key=...`. The `idempotency_key` field on the returned disbursements will be `null`.\n","tags":["disbursements"],"responses":{"201":{"description":"The disbursements were created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/disbursements_bulkCreateDisbursements_Response_201"}}}},"400":{"description":"The request is invalid or contains invalid parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized. The request is missing the security (OAuth2 Bearer token) requirements and the server is unable to verify the identify of the caller.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Resource Conflicts","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"disbursements":{"type":"array","items":{"$ref":"#/components/schemas/CreateDisbursementInput"},"description":"Array of disbursements to create"}},"required":["disbursements"]}}}},"security":[{"bearerAuth":[]}]}},"/v1/disbursements/{id}":{"get":{"operationId":"disbursements_get","summary":"Get a disbursement","description":"Get a disbursement by its unique identifier.\n","tags":["disbursements"],"parameters":[{"name":"id","in":"path","description":"The unique identifier for the disbursement","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The disbursement was retrieved","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Disbursement"}}}},"400":{"description":"The request is invalid or contains invalid parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized. The request is missing the security (OAuth2 Bearer token) requirements and the server is unable to verify the identify of the caller.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Resource Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"security":[{"bearerAuth":[]}]}},"/v1/disbursements/{id}/approve":{"post":{"operationId":"disbursements_approveDisbursement","summary":"Approve a disbursement","description":"Approve a disbursement in a pending_approval state.\nIf the disbursement is in a different state, this will return a 400 error.\n","tags":["disbursements"],"parameters":[{"name":"id","in":"path","description":"The unique identifier for the disbursement","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The disbursement was approved","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Disbursement"}}}},"400":{"description":"The request is invalid or contains invalid parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized. The request is missing the security (OAuth2 Bearer token) requirements and the server is unable to verify the identify of the caller.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Resource Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"security":[{"bearerAuth":[]}]}},"/v1/disbursements/approve":{"post":{"operationId":"disbursements_bulkApproveDisbursements","summary":"Approve multiple disbursements","description":"Approve multiple disbursements in a single request.\nThis is useful for batch approval operations.\n\nAll disbursements must be in the `pending_approval` state. If any disbursement\ncannot be approved, the entire request will fail and no disbursements will be approved.\n","tags":["disbursements"],"responses":{"200":{"description":"The disbursements were approved","content":{"application/json":{"schema":{"$ref":"#/components/schemas/disbursements_bulkApproveDisbursements_Response_200"}}}},"400":{"description":"The request is invalid or contains invalid parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized. The request is missing the security (OAuth2 Bearer token) requirements and the server is unable to verify the identify of the caller.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Resource Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"disbursement_ids":{"type":"array","items":{"type":"string"},"description":"Array of disbursement IDs to approve"}},"required":["disbursement_ids"]}}}},"security":[{"bearerAuth":[]}]}},"/v1/disbursements/{id}/cancel":{"post":{"operationId":"disbursements_cancelDisbursement","summary":"Cancel a pending disbursement","description":"Cancel a pending disbursement in a pending_approval state.\nIf the disbursement is in a different state, this will return a 400 error.\n","tags":["disbursements"],"parameters":[{"name":"id","in":"path","description":"The unique identifier for the disbursement","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The disbursement was canceled","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Disbursement"}}}},"400":{"description":"The request is invalid or contains invalid parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized. The request is missing the security (OAuth2 Bearer token) requirements and the server is unable to verify the identify of the caller.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Resource Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"security":[{"bearerAuth":[]}]}},"/v1/disbursements/{id}/stop":{"post":{"operationId":"disbursements_stopDisbursement","summary":"Stop payment for a disbursement","description":"Stop payment for a disbursement sent via check.\n\nThis prevents the recipient from depositing the check. If the check has already been deposited, the stop payment request will fail.\n\n**Requirements:**\n- Disbursement must be in `submitted` status\n- Disbursement must be sent via check\n- Check must not have already been deposited\n\nAfter successfully stopping payment, the disbursement status will be updated to `stopped`.\n","tags":["disbursements"],"parameters":[{"name":"id","in":"path","description":"The unique identifier for the disbursement","required":true,"schema":{"type":"string"}}],"responses":{"202":{"description":"The stop payment request was accepted","content":{"application/json":{"schema":{"$ref":"#/components/schemas/disbursements_stopDisbursement_Response_202"}}}},"400":{"description":"The request is invalid or contains invalid parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized. The request is missing the security (OAuth2 Bearer token) requirements and the server is unable to verify the identify of the caller.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Resource Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"requestBody":{"description":"The request body for stopping a disbursement payment","content":{"application/json":{"schema":{"type":"object","properties":{"reason":{"$ref":"#/components/schemas/StopDisbursementPaymentReason"}},"required":["reason"]}}}},"security":[{"bearerAuth":[]}]}},"/v1/simulations/disbursements/{id}/complete":{"post":{"operationId":"disbursements_simulateDisbursementCompletion","summary":"Sandbox: Complete a disbursement","description":"Simulates successful disbursement completion for testing purposes.\nThe disbursement must have a status of `submitted`.\n\nAfter calling this endpoint, the disbursement status will be updated to `completed`.\n\n<Note title=\"Sandbox Only\" icon=\"fa-light fa-atom-simple\">\nThis API is only available in the sandbox environment.\n</Note>\n","tags":["disbursements"],"parameters":[{"name":"id","in":"path","description":"The unique identifier for the disbursement","required":true,"schema":{"type":"string"}}],"responses":{"202":{"description":"The disbursement completion request was accepted","content":{"application/json":{"schema":{"$ref":"#/components/schemas/disbursements_simulateDisbursementCompletion_Response_202"}}}},"400":{"description":"The request is invalid or contains invalid parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized. The request is missing the security (OAuth2 Bearer token) requirements and the server is unable to verify the identify of the caller.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Resource Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"security":[{"bearerAuth":[]}]}},"/v1/simulations/disbursements/{id}/fail":{"post":{"operationId":"disbursements_simulateDisbursementFailure","summary":"Sandbox: Fail a disbursement","description":"Simulates a payment failure or return for testing purposes.\nThe disbursement must have a status of `submitted`.\nThis only applies for disbursements sent via ACH or check.\n\n- **ACH disbursements**: Status becomes `failed` (payment was returned and cannot be retried)\n- **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.\n\n<Note title=\"Sandbox Only\" icon=\"fa-light fa-atom-simple\">\nThis API is only available in the sandbox environment.\n</Note>\n","tags":["disbursements"],"parameters":[{"name":"id","in":"path","description":"The unique identifier for the disbursement","required":true,"schema":{"type":"string"}}],"responses":{"202":{"description":"The disbursement failure simulation was accepted","content":{"application/json":{"schema":{"$ref":"#/components/schemas/disbursements_simulateDisbursementFailure_Response_202"}}}},"400":{"description":"The request is invalid or contains invalid parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized. The request is missing the security (OAuth2 Bearer token) requirements and the server is unable to verify the identify of the caller.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Resource Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"security":[{"bearerAuth":[]}]}},"/v1/verification_requests":{"get":{"operationId":"verificationRequests_list","summary":"List verification requests","description":"Returns a paginated list of all verification requests for the authenticated grantmaker.\n","tags":["verificationRequests"],"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"}},{"name":"page_token","in":"query","description":"A token to use to retrieve the next page of results.","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"The response for VerificationRequests.list","content":{"application/json":{"schema":{"$ref":"#/components/schemas/verificationRequests_list_Response_200"}}}},"400":{"description":"The request is invalid or contains invalid parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized. The request is missing the security (OAuth2 Bearer token) requirements and the server is unable to verify the identify of the caller.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"security":[{"bearerAuth":[]}]},"post":{"operationId":"verificationRequests_create","summary":"Create a verification request","description":"Request verification of an unlisted organization. If the organization cannot be found through Chariot's search,\nyou can submit a verification request so that Chariot's compliance team can review and verify the organization.\n","tags":["verificationRequests"],"responses":{"201":{"description":"The verification request was created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VerificationRequest"}}}},"400":{"description":"The request is invalid or contains invalid parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized. The request is missing the security (OAuth2 Bearer token) requirements and the server is unable to verify the identify of the caller.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Resource Conflicts","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"412":{"description":"Precondition Failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"requestBody":{"description":"The request to create a verification request for an unlisted organization.","content":{"application/json":{"schema":{"type":"object","properties":{"ein":{"type":"string","description":"The EIN of the organization to verify"},"organization_name":{"type":"string","description":"The name of the organization as known to the grantmaker"},"website":{"type":"string","description":"The organization's website URL"},"recommended_mailing_address":{"$ref":"#/components/schemas/VerificationRequestAddress"},"contact_email":{"type":"string","description":"Contact email for the nonprofit organization."}},"required":["ein","organization_name","recommended_mailing_address"]}}}},"security":[{"bearerAuth":[]}]}},"/v1/verification_requests/{id}":{"get":{"operationId":"verificationRequests_get","summary":"Get a verification request","description":"Get a specific verification request by its unique identifier.\n","tags":["verificationRequests"],"parameters":[{"name":"id","in":"path","description":"The unique identifier of the verification request","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The verification request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VerificationRequest"}}}},"401":{"description":"Unauthorized. The request is missing the security (OAuth2 Bearer token) requirements and the server is unable to verify the identify of the caller.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Resource Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"security":[{"bearerAuth":[]}]}},"/v1/nonprofit_addresses":{"post":{"operationId":"nonprofitAddresses_create","summary":"Create Nonprofit Addresses","description":"Submit mailing addresses for one or more nonprofits. Uploaded\naddresses are used as suggestions for where to send disbursements.","tags":["nonprofitAddresses"],"responses":{"200":{"description":"All addresses were accepted.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/nonprofitAddresses_create_Response_200"}}}},"400":{"description":"The request is invalid or contains invalid parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized. The request is missing the security (OAuth2 Bearer token) requirements and the server is unable to verify the identify of the caller.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Resource Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"requestBody":{"description":"Address entries to upload, each matched to a nonprofit by EIN.","content":{"application/json":{"schema":{"type":"object","properties":{"entries":{"type":"array","items":{"$ref":"#/components/schemas/NonprofitAddressSuggestionEntry"},"description":"Address entries to upload. Up to 500 per request."}},"required":["entries"]}}}},"security":[{"bearerAuth":[]}]}},"/v1/nonprofit_contacts":{"post":{"operationId":"nonprofitContacts_create","summary":"Create Nonprofit Contacts","description":"Submit contact information for one or more nonprofits. Uploaded\ncontacts are used as suggestions for who to notify about disbursements.","tags":["nonprofitContacts"],"responses":{"200":{"description":"All suggestions were accepted.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/nonprofitContacts_create_Response_200"}}}},"400":{"description":"The request is invalid or contains invalid parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized. The request is missing the security (OAuth2 Bearer token) requirements and the server is unable to verify the identify of the caller.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Resource Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"requestBody":{"description":"Contact entries to upload, each matched to a nonprofit by EIN.","content":{"application/json":{"schema":{"type":"object","properties":{"entries":{"type":"array","items":{"$ref":"#/components/schemas/NonprofitContactSuggestionEntry"},"description":"Contact entries to upload. Up to 500 per request."}},"required":["entries"]}}}},"security":[{"bearerAuth":[]}]}},"/v1/sources":{"post":{"operationId":"sources_createSource","summary":"Create a Source","description":"Creates a custom source scoped to your organization. Use this when you\nreceive gifts from a provider Chariot doesn't yet have in its canonical\ndirectory.","tags":["sources"],"parameters":[{"name":"Idempotency-Key","in":"header","description":"The idempotency key for the request.","required":false,"schema":{"type":"string"}}],"responses":{"201":{"description":"The source was created.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Source"}}}},"400":{"description":"The request is invalid or contains invalid parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized. The request is missing the security (OAuth2 Bearer token) requirements and the server is unable to verify the identify of the caller.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"requestBody":{"description":"The request to create a custom source scoped to your organization.","content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","description":"The human-readable name of the source."},"logo":{"type":["string","null"],"format":"uri","description":"URL of the source's logo, if one is available."}},"required":["name"]}}}},"security":[{"bearerAuth":[]}]},"get":{"operationId":"sources_listSources","summary":"List Sources","description":"Returns the sources visible to your organization: the canonical sources\nChariot maintains, plus any custom sources your organization has added.","tags":["sources"],"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"}},{"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":"scope","in":"query","description":"Filter by source scope. Omit to return both canonical and custom sources.","required":false,"schema":{"$ref":"#/components/schemas/V1SourcesGetParametersScope"}}],"responses":{"200":{"description":"The response for Sources.list","content":{"application/json":{"schema":{"$ref":"#/components/schemas/sources_listSources_Response_200"}}}},"400":{"description":"The request is invalid or contains invalid parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized. The request is missing the security (OAuth2 Bearer token) requirements and the server is unable to verify the identify of the caller.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"security":[{"bearerAuth":[]}]}},"/v1/sources/{id}":{"get":{"operationId":"sources_getSource","summary":"Get a Source","description":"Retrieves a Source by its unique identifier.","tags":["sources"],"parameters":[{"name":"id","in":"path","description":"The unique identifier for the source.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The source.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Source"}}}},"400":{"description":"The request is invalid or contains invalid parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized. The request is missing the security (OAuth2 Bearer token) requirements and the server is unable to verify the identify of the caller.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Resource Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"security":[{"bearerAuth":[]}]},"patch":{"operationId":"sources_updateSource","summary":"Update a Source","description":"Updates a custom source. Canonical sources are read-only; a PATCH on\none returns `403 Forbidden`.\n\nIf another source on your account already has the new name, the\nrequest returns `409 Conflict`.","tags":["sources"],"parameters":[{"name":"id","in":"path","description":"The unique identifier for the source.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The updated source.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Source"}}}},"400":{"description":"The request is invalid or contains invalid parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized. The request is missing the security (OAuth2 Bearer token) requirements and the server is unable to verify the identify of the caller.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Resource Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Resource Conflicts","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"requestBody":{"description":"The request to update a custom source. Only the fields explicitly\npresent in the request body are changed; omitted fields are left\nas-is.","content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","description":"The human-readable name of the source."},"logo":{"type":["string","null"],"format":"uri","description":"URL of the source's logo, if one is available."}}}}}},"security":[{"bearerAuth":[]}]},"delete":{"operationId":"sources_deleteSource","summary":"Delete a Source","description":"Deletes a custom source. Fails with `409 Conflict` while the source is\nin use, such as by a deposit address, donation, or deposit. Canonical\nsources are read-only; a DELETE on one returns `403 Forbidden`.","tags":["sources"],"parameters":[{"name":"id","in":"path","description":"The unique identifier for the source.","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"Returns 204 No Content on success.","content":{"application/json":{"schema":{"type":"object","properties":{}}}}},"400":{"description":"The request is invalid or contains invalid parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized. The request is missing the security (OAuth2 Bearer token) requirements and the server is unable to verify the identify of the caller.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Resource Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Resource Conflicts","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"security":[{"bearerAuth":[]}]}},"/v1/deposit_addresses":{"post":{"operationId":"depositAddresses_createDepositAddress","summary":"Create a Deposit Address","description":"Provisions a new deposit address on your account. Chariot mints the\nunderlying account and routing numbers and returns them on the\nresponse.\n\nAn address is unique per `(source_id, type)`. Provisioning a second\naddress for the same source and rail returns `409 Conflict`.\n\nIf your organization has no open Processing account, the request\nreturns `400 Bad Request`.","tags":["deposit_addresses"],"parameters":[{"name":"Idempotency-Key","in":"header","description":"The idempotency key for the request.","required":false,"schema":{"type":"string"}}],"responses":{"201":{"description":"The deposit address was created.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DepositAddress"}}}},"400":{"description":"The request is invalid or contains invalid parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized. The request is missing the security (OAuth2 Bearer token) requirements and the server is unable to verify the identify of the caller.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Resource Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Resource Conflicts","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"requestBody":{"description":"The request to provision a new deposit address.","content":{"application/json":{"schema":{"type":"object","properties":{"type":{"$ref":"#/components/schemas/V1DepositAddressesPostRequestBodyContentApplicationJsonSchemaType","description":"The rail this address should receive money over."},"source_id":{"type":"string","description":"The identifier of the [Source](/api-reference/sources) this address belongs to."}},"required":["type","source_id"]}}}},"security":[{"bearerAuth":[]}]},"get":{"operationId":"depositAddresses_listDepositAddresses","summary":"List Deposit Addresses","description":"Returns the deposit addresses your organization has provisioned.","tags":["deposit_addresses"],"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"}},{"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":"source_id","in":"query","description":"Filter deposit addresses by the source they are assigned to.","required":false,"schema":{"type":"string"}},{"name":"type","in":"query","description":"Filter deposit addresses by rail type.","required":false,"schema":{"$ref":"#/components/schemas/V1DepositAddressesGetParametersType"}}],"responses":{"200":{"description":"The response for DepositAddresses.list","content":{"application/json":{"schema":{"$ref":"#/components/schemas/deposit_addresses_listDepositAddresses_Response_200"}}}},"400":{"description":"The request is invalid or contains invalid parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized. The request is missing the security (OAuth2 Bearer token) requirements and the server is unable to verify the identify of the caller.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"security":[{"bearerAuth":[]}]}},"/v1/deposit_addresses/{id}":{"get":{"operationId":"depositAddresses_getDepositAddress","summary":"Get a Deposit Address","description":"Retrieves a deposit address by its unique identifier.","tags":["deposit_addresses"],"parameters":[{"name":"id","in":"path","description":"The unique identifier for the deposit address.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The deposit address.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DepositAddress"}}}},"400":{"description":"The request is invalid or contains invalid parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized. The request is missing the security (OAuth2 Bearer token) requirements and the server is unable to verify the identify of the caller.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Resource Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"security":[{"bearerAuth":[]}]}},"/v1/donations":{"post":{"operationId":"donations_createDonation","summary":"Create a Donation","description":"Creates a new donation. Include `source_id` to attribute the donation to\na specific source.","tags":["donations"],"parameters":[{"name":"Idempotency-Key","in":"header","description":"The idempotency key for the request.","required":false,"schema":{"type":"string"}}],"responses":{"201":{"description":"The donation was created.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Donation"}}}},"400":{"description":"The request is invalid or contains invalid parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized. The request is missing the security (OAuth2 Bearer token) requirements and the server is unable to verify the identify of the caller.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Resource Conflicts","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"requestBody":{"description":"The request to record a new donation.","content":{"application/json":{"schema":{"type":"object","properties":{"source_id":{"type":"string","description":"The identifier of the [Source](/api-reference/sources) that sent this donation.\nThe source must already exist."},"external_id":{"type":"string","description":"Identifier provided by the source or granting organization, when present."},"amount_gross":{"type":"integer","format":"int64","description":"The total amount of the donation in minor units of the currency. Must be non-negative.\nFor dollars, for example, this is cents."},"amount_fee":{"type":"integer","format":"int64","description":"The amount of the fee that was deducted from the donation in minor units of the currency.\n`amount_net` is always `amount_gross` minus `amount_fee`, so you can't set it."},"currency":{"type":"string","description":"The [ISO 4217 code](https://en.wikipedia.org/wiki/ISO_4217) for every amount on the donation.\nDefaults to USD."},"exchange_rate":{"$ref":"#/components/schemas/ExchangeRate","description":"The exchange rate used to convert the donation into `target_currency`, when the\nsource reported one."},"donation_type":{"$ref":"#/components/schemas/V1DonationsPostRequestBodyContentApplicationJsonSchemaDonationType","description":"The kind of gift.\n\n- `individual`: a gift from an individual donor.\n- `match`: a company's match of an employee's gift.\n- `daf`: a grant from a donor-advised fund.\n- `other`: any other kind of gift.\n- `unknown`: the kind of gift wasn't specified."},"frequency":{"$ref":"#/components/schemas/V1DonationsPostRequestBodyContentApplicationJsonSchemaFrequency","description":"Whether the donor set the gift to repeat.\n\n- `one_time`: the donor gave once.\n- `recurring`: the donor set the gift to repeat.\n- `unknown`: it wasn't specified whether the gift repeats."},"effective_date":{"type":"string","format":"date-time","description":"The date of the donation, as reported by the source. Defaults to the current date.\nExpressed in RFC 3339 format."},"grantor":{"$ref":"#/components/schemas/GrantorInput","description":"The entity responsible for issuing a grant or payment to a recipient."},"external_distribution_id":{"type":"string","description":"The platform's identifier for the payout that carried this donation. Platforms\nsuch as Benevity batch many donations into one payout, so several donations can\nshare the same value."},"recipient":{"$ref":"#/components/schemas/RecipientInput","description":"The nonprofit the donation was made out to, as named by the source."},"purpose":{"type":"string","description":"A description of the donor's intent for the donation.\nFor example, \"Where needed most\" or \"General Operating Support\" or \"Specific Campaign\"."},"note":{"type":"string","description":"An informational note from the donor to the nonprofit about the donation."},"attribution":{"$ref":"#/components/schemas/V1DonationsPostRequestBodyContentApplicationJsonSchemaAttribution","description":"How the donation is attributed to a donor."},"initiation":{"$ref":"#/components/schemas/DonationInitiationInput","description":"How and where the donor initiated the gift."},"donor_advised_fund_grant":{"$ref":"#/components/schemas/DafGrantInput","description":"Details specific to Donor Advised Fund donations. Leave it out when the donation did\nnot come from a DAF provider."},"corporate_match":{"$ref":"#/components/schemas/CorporateMatchInput","description":"Details specific to matched donations. Leave it out when no corporate sponsor matched\nthe donation."},"metadata":{"type":"object","additionalProperties":{"description":"Any type"},"description":"Arbitrary key-value pairs recorded against the donation. Use this for\nreconciliation data, campaign identifiers, or other integration data."},"artifact_file_ids":{"type":"array","items":{"type":"string"},"description":"Files to attach to the donation, as File identifiers your organization owns."}},"required":["amount_gross"]}}}},"security":[{"bearerAuth":[]}]},"get":{"operationId":"donations_list","summary":"List Donations","description":"List donations for your account.","tags":["donations"],"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"}},{"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":"source_id","in":"query","description":"The identifier of the source that sent the donations. Comma-separated list of source IDs.","required":false,"schema":{"type":"string"}},{"name":"payment_source_id","in":"query","description":"Deprecated. Use `source_id`. Comma-separated list of payment source IDs.","required":false,"schema":{"type":"string"},"deprecated":true},{"name":"deposit_id","in":"query","description":"The unique identifier for the deposit to filter donations by.","required":false,"schema":{"type":"string"}},{"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"}},{"name":"dafpay_tracking_id","in":"query","description":"The DAFpay tracking identifier to filter donations by. Use this to reconcile a donation against the DAFpay grant that started it.","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"The response for Donations.list","content":{"application/json":{"schema":{"$ref":"#/components/schemas/donations_list_Response_200"}}}},"400":{"description":"The request is invalid or contains invalid parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized. The request is missing the security (OAuth2 Bearer token) requirements and the server is unable to verify the identify of the caller.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"security":[{"bearerAuth":[]}]}},"/v1/donations/{id}":{"get":{"operationId":"donations_get","summary":"Get a Donation","description":"Get a donation by its unique identifier.","tags":["donations"],"parameters":[{"name":"id","in":"path","description":"The unique identifier for the donation","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The donation was retrieved","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Donation"}}}},"400":{"description":"The request is invalid or contains invalid parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized. The request is missing the security (OAuth2 Bearer token) requirements and the server is unable to verify the identify of the caller.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Resource Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"security":[{"bearerAuth":[]}]},"patch":{"operationId":"donations_updateDonation","summary":"Update a Donation","description":"Update fields on an existing donation. Fields set in the request body are written (including empty\nstrings and zeros). Fields listed in `clear_fields` are nulled — only nullable columns are clearable.\nFields that are neither set nor listed are left unchanged. A field path may not be cleared and carry\na value in the same request.","tags":["donations"],"parameters":[{"name":"id","in":"path","description":"The unique identifier for the donation","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The donation was updated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Donation"}}}},"400":{"description":"The request is invalid or contains invalid parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized. The request is missing the security (OAuth2 Bearer token) requirements and the server is unable to verify the identify of the caller.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Resource Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"requestBody":{"description":"The request to update fields on an existing donation.\n\n- **Fields set in the body** are written, including empty strings and zeros.\n- **Objects** such as `recipient` or `attribution.primary_donor` update key by key. Only the\n  fields you set inside the object change.\n- **`metadata`** replaces the stored map as a whole.\n- **Fields listed in `clear_fields`** are nulled. Only nullable columns may be cleared; a path that\n  resolves to a NOT NULL column is rejected.\n- **Fields that are neither set nor listed** are left unchanged.\n\nA field path may not be cleared and carry a value in the same request.","content":{"application/json":{"schema":{"type":"object","properties":{"clear_fields":{"type":"array","items":{"type":"string"},"description":"Field paths to null (dot notation, e.g. `note`, `attribution.primary_donor.email`).\nUnknown paths are rejected. So are `amount_gross`, `amount_fee`, `currency`,\nand `effective_date`, which have no empty representation."},"source_id":{"type":"string","description":"The identifier of the [Source](/api-reference/sources) that sent this donation.\nThe source must already exist."},"external_id":{"type":"string","description":"Identifier provided by the source or granting organization, when present."},"amount_gross":{"type":"integer","format":"int64","description":"The total amount of the donation in minor units of the currency. Must be non-negative.\nFor dollars, for example, this is cents."},"amount_fee":{"type":"integer","format":"int64","description":"The amount of the fee that was deducted from the donation in minor units of the currency.\n`amount_net` is always `amount_gross` minus `amount_fee`, so you can't set it."},"individual_gift_amount":{"type":"integer","format":"int64","description":"The portion of the gross amount contributed directly by the donor."},"currency":{"type":"string","description":"The [ISO 4217 code](https://en.wikipedia.org/wiki/ISO_4217) for every amount on the donation.\nCan't be cleared."},"exchange_rate":{"$ref":"#/components/schemas/ExchangeRate","description":"The exchange rate used to convert the donation into `target_currency`, when the\nsource reported one."},"donation_type":{"$ref":"#/components/schemas/V1DonationsIdPatchRequestBodyContentApplicationJsonSchemaDonationType","description":"The kind of gift.\n\n- `individual`: a gift from an individual donor.\n- `match`: a company's match of an employee's gift.\n- `daf`: a grant from a donor-advised fund.\n- `other`: any other kind of gift.\n- `unknown`: the kind of gift wasn't specified."},"frequency":{"$ref":"#/components/schemas/V1DonationsIdPatchRequestBodyContentApplicationJsonSchemaFrequency","description":"Whether the donor set the gift to repeat.\n\n- `one_time`: the donor gave once.\n- `recurring`: the donor set the gift to repeat.\n- `unknown`: it wasn't specified whether the gift repeats."},"effective_date":{"type":"string","format":"date-time","description":"The date of the donation, as reported by the source. Expressed in RFC 3339 format."},"grantor":{"$ref":"#/components/schemas/GrantorInput","description":"The entity responsible for issuing a grant or payment to a recipient."},"external_distribution_id":{"type":"string","description":"The platform's identifier for the payout that carried this donation. Platforms\nsuch as Benevity batch many donations into one payout, so several donations can\nshare the same value."},"recipient":{"$ref":"#/components/schemas/RecipientInput","description":"The nonprofit the donation was made out to, as named by the source."},"purpose":{"type":"string","description":"A description of the donor's intent for the donation.\nFor example, \"Where needed most\" or \"General Operating Support\" or \"Specific Campaign\"."},"note":{"type":"string","description":"An informational note from the donor to the nonprofit about the donation."},"attribution":{"$ref":"#/components/schemas/V1DonationsIdPatchRequestBodyContentApplicationJsonSchemaAttribution","description":"How the donation is attributed to a donor."},"initiation":{"$ref":"#/components/schemas/DonationInitiationInput","description":"How and where the donor initiated the gift."},"donor_advised_fund_grant":{"$ref":"#/components/schemas/DafGrantInput","description":"Details specific to Donor Advised Fund donations. Leave it out when the donation did\nnot come from a DAF provider."},"corporate_match":{"$ref":"#/components/schemas/CorporateMatchInput","description":"Details specific to matched donations. Leave it out when no corporate sponsor matched\nthe donation."},"metadata":{"type":"object","additionalProperties":{"description":"Any type"},"description":"Arbitrary key-value pairs recorded against the donation. Setting this field replaces the\nstored map. Naming `metadata` in `clear_fields` removes it."},"artifact_file_ids":{"type":"array","items":{"type":"string"},"description":"Files to attach to the donation, as File identifiers your organization owns. Existing\nartifacts stay attached. Repeating an identifier has no effect."}}}}}},"security":[{"bearerAuth":[]}]},"delete":{"operationId":"donations_deleteDonation","summary":"Delete a Donation","description":"Delete a donation by its unique identifier.","tags":["donations"],"parameters":[{"name":"id","in":"path","description":"The unique identifier for the donation","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"The donation was deleted.","content":{"application/json":{"schema":{"type":"object","properties":{}}}}},"400":{"description":"The request is invalid or contains invalid parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized. The request is missing the security (OAuth2 Bearer token) requirements and the server is unable to verify the identify of the caller.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Resource Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"security":[{"bearerAuth":[]}]}},"/v1/deposits":{"get":{"operationId":"deposits_list","summary":"List Deposits","description":"List deposits for your account.","tags":["deposits"],"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"}},{"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":"source_id","in":"query","description":"The identifier of the source that sent the deposits. Comma-separated list of source IDs.","required":false,"schema":{"type":"string"}},{"name":"payment_source_id","in":"query","description":"Deprecated. Use `source_id`. Comma-separated list of payment source IDs.","required":false,"schema":{"type":"string"},"deprecated":true},{"name":"status.in","in":"query","description":"Filter deposits to only those with the specified status.\nFor GET requests, encode this as a comma-delimited string,\nsuch as `?status.in=pending,complete`.","required":false,"schema":{"type":"array","items":{"$ref":"#/components/schemas/V1DepositsGetParametersStatusInSchemaItems"}}},{"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"}},{"name":"has_donations","in":"query","description":"When `true`, returns only deposits with at least one donation reconciled\nto them. When `false`, returns only deposits with no donations. A deposit\ncounts as having donations even when the donation amounts don't add up to\nthe deposit amount.","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"description":"The response for Deposits.list","content":{"application/json":{"schema":{"$ref":"#/components/schemas/deposits_list_Response_200"}}}},"400":{"description":"The request is invalid or contains invalid parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized. The request is missing the security (OAuth2 Bearer token) requirements and the server is unable to verify the identify of the caller.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"security":[{"bearerAuth":[]}]}},"/v1/deposits/{id}":{"get":{"operationId":"deposits_get","summary":"Get a Deposit","description":"Get a deposit by its unique identifier.","tags":["deposits"],"parameters":[{"name":"id","in":"path","description":"The unique identifier for the deposit","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The deposit.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Deposit"}}}},"400":{"description":"The request is invalid or contains invalid parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized. The request is missing the security (OAuth2 Bearer token) requirements and the server is unable to verify the identify of the caller.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Resource Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"security":[{"bearerAuth":[]}]}},"/v1/deposits/{id}/reconcile":{"post":{"operationId":"deposits_reconcileDeposit","summary":"Reconcile a Deposit","description":"Link one or more donations to a deposit.","tags":["deposits"],"parameters":[{"name":"id","in":"path","description":"The unique identifier for the deposit to reconcile","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"The deposit was reconciled.","content":{"application/json":{"schema":{"type":"object","properties":{}}}}},"400":{"description":"The request is invalid or contains invalid parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized. The request is missing the security (OAuth2 Bearer token) requirements and the server is unable to verify the identify of the caller.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Resource Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"requestBody":{"description":"Record the donations that make up a deposit. Non-destructive: the linkage is added atomically\nand never overwrites the deposit or the donations themselves.","content":{"application/json":{"schema":{"type":"object","properties":{"donation_ids":{"type":"array","items":{"type":"string"},"description":"The unique identifiers for the donations to reconcile with the deposit."}},"required":["donation_ids"]}}}},"security":[{"bearerAuth":[]}]}},"/v1/lockboxes":{"get":{"operationId":"lockboxes_list","summary":"List Lockboxes","description":"List lockboxes for your account.\n\nA Lockbox represents a vendor that receives physical mail and scans checks on Chariot's behalf.\nLockboxes are the source of Mail Items, which in turn produce Donations and Deposits.\nLockboxes are provisioned and managed by Chariot.","tags":["lockboxes"],"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"}},{"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":{"description":"The response for Lockboxes.list","content":{"application/json":{"schema":{"$ref":"#/components/schemas/lockboxes_list_Response_200"}}}},"400":{"description":"The request is invalid or contains invalid parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized. The request is missing the security (OAuth2 Bearer token) requirements and the server is unable to verify the identify of the caller.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"security":[{"bearerAuth":[]}]}},"/v1/lockboxes/{id}":{"get":{"operationId":"lockboxes_get","summary":"Get a Lockbox","description":"Get a lockbox by its unique identifier.\n\nA Lockbox represents a vendor that receives physical mail and scans checks on Chariot's behalf.","tags":["lockboxes"],"parameters":[{"name":"id","in":"path","description":"The unique identifier for the lockbox","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successfully retrieved the lockbox.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Lockbox"}}}},"400":{"description":"The request is invalid or contains invalid parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized. The request is missing the security (OAuth2 Bearer token) requirements and the server is unable to verify the identify of the caller.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Resource Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"security":[{"bearerAuth":[]}]}},"/v1/mail_items":{"get":{"operationId":"mailItems_list","summary":"List Mail Items","description":"List mail items for your account.\n\nA Mail Item is a unit of physical mail received at a Lockbox. It has its own lifecycle\nand is the operational unit reviewers act on. Each Mail Item may produce zero or more\nDonations and zero or one Deposit.","tags":["mailItems"],"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"}},{"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":"lockbox_id","in":"query","description":"The unique identifier for the lockbox to filter mail items by.","required":false,"schema":{"type":"string"}},{"name":"status.in","in":"query","description":"Filter Mail Items to only those with the specified status.\nFor GET requests, this should be encoded as a comma-delimited string,\nsuch as `?status.in=needs_review,processing`.","required":false,"schema":{"type":"array","items":{"$ref":"#/components/schemas/MailItemStatus"}}},{"name":"created_at.after","in":"query","description":"Return mail items created after the given date and time.","required":false,"schema":{"type":"string","format":"date-time"}},{"name":"created_at.before","in":"query","description":"Return mail items created before the given date and time.","required":false,"schema":{"type":"string","format":"date-time"}}],"responses":{"200":{"description":"The response for MailItems.list","content":{"application/json":{"schema":{"$ref":"#/components/schemas/mailItems_list_Response_200"}}}},"400":{"description":"The request is invalid or contains invalid parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized. The request is missing the security (OAuth2 Bearer token) requirements and the server is unable to verify the identify of the caller.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"security":[{"bearerAuth":[]}]}},"/v1/mail_items/{id}":{"get":{"operationId":"mailItems_get","summary":"Get a Mail Item","description":"Get a mail item by its unique identifier.\n\nA Mail Item is a unit of physical mail received at a Lockbox.","tags":["mailItems"],"parameters":[{"name":"id","in":"path","description":"The unique identifier for the mail item","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successfully retrieved the mail item.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailItem"}}}},"400":{"description":"The request is invalid or contains invalid parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized. The request is missing the security (OAuth2 Bearer token) requirements and the server is unable to verify the identify of the caller.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Resource Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"security":[{"bearerAuth":[]}]}},"/v1/mailbox/upload_url":{"post":{"operationId":"mailbox_getUploadUrl","summary":"Get a Batch Upload URL","description":"Returns a presigned URL for uploading a mailbox batch.\n\nA batch is a ZIP file containing TIFF images and a CSV index file.\nThe CSV must conform to the [Batch Format](/v2026-01-15/guides/lockbox-providers/batch-format) specification.\n\nThe `location_id` must match the format `po_<number>` (e.g., `po_543`).\nThe returned URL is a presigned S3 URL valid for 15 minutes. Upload the batch ZIP file using an HTTP PUT request to this URL.\n\nSee the [Mail Uploads guide](/v2026-01-15/guides/lockbox-providers/mail-uploads) for details on the upload and rescan process.","tags":["mailbox"],"responses":{"200":{"description":"Successfully generated a presigned upload URL.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/mailbox_getUploadUrl_Response_200"}}}},"400":{"description":"The request is invalid or contains invalid parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized. The request is missing the security (OAuth2 Bearer token) requirements and the server is unable to verify the identify of the caller.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"location_id":{"type":"string","description":"The identifier of the PO box or lockbox location. Must match the format `po_<number>`."}},"required":["location_id"]}}}},"security":[{"bearerAuth":[]}]}},"/v1/lockboxes/fulfill_request":{"post":{"operationId":"mailbox_fulfillRequest","summary":"Fulfill a Lockbox Request","description":"Notifies Chariot that a new PO box has been provisioned by the lockbox provider.\n\nThe `request_id` is a one-time unique value generated by Chariot for each PO box request.\n\nSee the [Provisioning guide](/v2026-01-15/guides/lockbox-providers/provisioning) for the full provisioning flow.","tags":["mailbox"],"responses":{"200":{"description":"Indicates the PO box has been successfully provisioned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/mailbox_fulfillRequest_Response_200"}}}},"400":{"description":"The request is invalid or contains invalid parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized. The request is missing the security (OAuth2 Bearer token) requirements and the server is unable to verify the identify of the caller.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"request_id":{"type":"string","description":"The unique request identifier originally provided by Chariot when the PO box was requested."},"location_id":{"type":"string","description":"The identifier of the newly provisioned PO box."},"address":{"$ref":"#/components/schemas/Address"}},"required":["request_id","location_id","address"]}}}},"security":[{"bearerAuth":[]}]}}},"tags":[{"name":"Organizations"},{"name":"Programs"},{"name":"financialAccounts"},{"name":"Events"},{"name":"eventSubscriptions"},{"name":"files"},{"name":"properties"},{"name":"Connects"},{"name":"Grants"},{"name":"recurring_grants"},{"name":"unintegrated_grants"},{"name":"donorAdvisedFunds"},{"name":"donorAccounts"},{"name":"authorizationTokens"},{"name":"givingPools"},{"name":"grantRequests"},{"name":"inboundTransfers"},{"name":"disbursements"},{"name":"verificationRequests"},{"name":"nonprofitAddresses"},{"name":"nonprofitContacts"},{"name":"sources"},{"name":"deposit_addresses"},{"name":"donations"},{"name":"deposits"},{"name":"lockboxes"},{"name":"mailItems"},{"name":"mailbox"}],"servers":[{"url":"https://api.givechariot.com","description":"Production"},{"url":"https://sandboxapi.givechariot.com","description":"Sandbox"}],"components":{"schemas":{"OrganizationSummary":{"type":"object","properties":{"id":{"type":"string","description":"The unique identifier for the organization."},"ein":{"type":"string","description":"The Employer Identification Number (EIN) or TaxID for the nonprofit entity."},"name":{"type":"string","description":"The name of the organization."},"daf_eligible":{"type":"boolean","description":"Whether the organization is eligible to receive donations from a Donor Advised Fund."},"city":{"type":"string","description":"The city of the organization."},"state":{"type":"string","description":"The state of the organization."}},"required":["id","ein","name"],"description":"A summary of an organization.","title":"OrganizationSummary"},"organizations_search_Response_200":{"type":"object","properties":{"results":{"type":"array","items":{"$ref":"#/components/schemas/OrganizationSummary"}}},"title":"organizations_search_Response_200"},"ProblemDetails":{"type":"object","properties":{"type":{"type":"string","description":"A URI reference identifying the problem type."},"title":{"type":"string","description":"A short, human-readable summary of the problem type."},"status":{"type":"integer","description":"The HTTP status code for this error."},"detail":{"type":"string","description":"A human-readable explanation specific to this occurrence."}},"required":["type","title","status","detail"],"description":"RFC 7807 problem-details error (media type application/problem+json). The `status` field is an integer HTTP status code.","title":"ProblemDetails"},"Address":{"type":"object","properties":{"city":{"type":"string","description":"City, district, suburb, town, or village. Maximum length: 255 characters."},"country":{"type":"string","description":"Two-letter country code (https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)"},"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."},"postal_code":{"type":"string","description":"ZIP or postal code. Maximum length: 40 characters."},"state":{"type":"string","description":"State, county, province, or region"}},"required":["city","country","line1","postal_code","state"],"title":"Address"},"TaxExemptCode":{"type":"object","properties":{"code":{"type":"integer","description":"The code of the tax exempt code"},"name":{"type":"string","description":"The name of the tax exempt code"},"description":{"type":"string","description":"The description of the tax exempt code"}},"required":["code","name"],"description":"A tax exempt code is a code that is used to classify the tax-exempt status of a nonprofit entity.","title":"TaxExemptCode"},"NteeCode":{"type":"object","properties":{"code":{"type":"string","description":"The code of the NTEE code"},"description":{"type":"string","description":"The description of the NTEE code"},"parent_code":{"type":"string","description":"The parent code of the NTEE code"},"parent_description":{"type":"string","description":"The description of the parent NTEE code"}},"required":["code","description"],"description":"A code that is used to classify the nonprofit entity as defined by the IRS.","title":"NteeCode"},"NaicsCode":{"type":"object","properties":{"naics2":{"type":"string","description":"The code of the NAICS code"},"naics2_description":{"type":"string","description":"The description of the NAICS code"},"naics4":{"type":"string","description":"The code of the NAICS code"},"naics4_description":{"type":"string","description":"The description of the NAICS code"},"naics6":{"type":"string","description":"The code of the NAICS code"},"naics6_description":{"type":"string","description":"The description of the NAICS code"}},"description":"A code that is used to classify the nonprofit entity as defined by the NAICS.","title":"NaicsCode"},"NonprofitClassification":{"type":"object","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"}},"description":"A classification of the nonprofit entity as defined by the IRS.","title":"NonprofitClassification"},"ComplianceRequirement":{"type":"object","properties":{"compliant":{"type":"boolean","description":"Whether the entity is compliant with the requirement"},"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"}},"description":"A compliance requirement is a requirement that a nonprofit entity must meet in order to be eligible for Chariot services.","title":"ComplianceRequirement"},"NonprofitCompliance":{"type":"object","properties":{"daf_eligible":{"type":"boolean","description":"Whether the entity is eligible to receive donations from a Donor Advised Fund"},"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"}},"description":"An object that contains legal information about the nonprofit entity and its tax-exemption status.\nThis information is used to comply with regulations and ensure the legitimacy of the nonprofit for purposes of donations and disbursements.","title":"NonprofitCompliance"},"WebDomain":{"type":"object","properties":{"domain":{"type":"string","description":"The DNS domain name"}},"required":["domain"],"description":"A web domain is a unique identifier for a website or web application that is associated with an organization.\nDomains are important identity constructs that underpin the web and online interactions.\nThe domain can be used as an identifier and its validity can be asserted via DNS.","title":"WebDomain"},"Brand":{"type":"object","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"}},"description":"Fair use brand assets that are associated with an organization and can be used for identification and informational purposes.","title":"Brand"},"Person":{"type":"object","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"}},"required":["name"],"description":"A person is an individual who is an officer of a nonprofit.","title":"Person"},"Incorporation":{"type":"object","properties":{"formation_year":{"type":"string","format":"integer","description":"The year the organization was incorporated or formed."},"state":{"type":"string","description":"The U.S. state where the organization is legally domiciled."},"ruling_date":{"type":"string","description":"The month and year on the IRS ruling or determination letter recognizing the organization's exempt status.\nFormatted as an ISO 8601 year-month string."}},"description":"Incorporation and IRS determination information for the nonprofit entity.","title":"Incorporation"},"Organization":{"type":"object","properties":{"id":{"type":"string","description":"The unique identifier for the object."},"ein":{"type":"string","description":"The EIN of the organization."},"name":{"type":"string","description":"The name of the organization.\nFor organizations that operate under a different name than the one tied to the legal entity,\nthis name will differ from the name of the linked entity.\nThis is also known as the \"DBA\" or \"Doing Business As\" name of the organization."},"parent_organization_id":{"type":"string","description":"The unique identifier of the parent organization, if this is a sponsored organization.\nThis value is `null` or empty if the organization is not sponsored or not a child of a parent organization."},"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"},"web":{"$ref":"#/components/schemas/WebDomain"},"brand":{"$ref":"#/components/schemas/Brand"},"officers":{"type":"array","items":{"$ref":"#/components/schemas/Person"},"description":"The list of officers of the organization"},"claimed":{"type":"boolean","description":"A flag to indicate if the nonprofit has been claimed by a user.\nA nonprofit is claimed if a user signs up for a Chariot account with\nthis nonprofit and is verified by the Chariot team."},"incorporation":{"$ref":"#/components/schemas/Incorporation"}},"required":["id","ein","name"],"description":"An `Organization` represents an operating nonprofit or an operating sub-organization of a parent or sponsoring nonprofit.\nThe generally accepted identifier for an organization is its domain. This domain provides proof of identity, ownership and relationship to an entity.\nOrganizations can receive payments from payers on the network.","title":"Organization"},"SandboxSettlement":{"type":"string","enum":["SANDBOX_SETTLEMENT_ACCOUNT_TRANSFER","SANDBOX_SETTLEMENT_ACH"],"description":"The electronic rail on which disbursements to an onboarded sandbox\norganization settle. `SANDBOX_SETTLEMENT_ACCOUNT_TRANSFER` settles as an\nin-network transfer between accounts on the same bank. `SANDBOX_SETTLEMENT_ACH`\nsettles via ACH across banks.","title":"SandboxSettlement"},"ProgramGrantDisbursementStatus":{"type":"string","enum":["enabled","disabled"],"description":"The status of the program's ability to disburse grant payments to other eligible nonprofit recipients.","title":"ProgramGrantDisbursementStatus"},"ProgramGiftProcessingStatus":{"type":"string","enum":["enabled","disabled"],"description":"The status of the program's ability to process donations and grants to your organization.","title":"ProgramGiftProcessingStatus"},"Program":{"type":"object","properties":{"id":{"type":"string","description":"The unique identifier for the program"},"name":{"type":"string","description":"The name of the program"},"description":{"type":"string","description":"A description of the program"},"grant_disbursement_status":{"$ref":"#/components/schemas/ProgramGrantDisbursementStatus","description":"The status of the program's ability to disburse grant payments to other eligible nonprofit recipients."},"gift_processing_status":{"$ref":"#/components/schemas/ProgramGiftProcessingStatus","description":"The status of the program's ability to process donations and grants to your organization."},"created_at":{"type":"string","format":"date-time","description":"The date and time the program was created"},"updated_at":{"type":"string","format":"date-time","description":"The date and time the program was last updated"}},"required":["id","name","grant_disbursement_status","gift_processing_status","created_at","updated_at"],"description":"Programs encapsulate functional operations and allow for segregation of funds & activity on top of a Financial Account.\nBy default, most organizations will have a Gift Processing program for managing inbound donation revenue.\nIf you are disbursing funds to other nonprofits, we will work together to create a Grantmaking program for you.\nIf there are other use cases where you need to segregate funds or activity, we will work together to create additional Programs for you.","title":"Program"},"programs_list_Response_200":{"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\n to the same endpoint with the same parameters (only changing the pageToken). If\n specified, then more results exist on the server that were not returned, otherwise\n no more results exist on the server."}},"title":"programs_list_Response_200"},"FinancialAccountAccountType":{"type":"string","enum":["disbursements","processing"],"description":"The type of account","title":"FinancialAccountAccountType"},"FinancialAccount":{"type":"object","properties":{"id":{"type":"string","description":"The unique identifier for the account"},"account_type":{"$ref":"#/components/schemas/FinancialAccountAccountType","description":"The type of account"},"bank_provider":{"type":"string","description":"The bank provider for the account"},"created_at":{"type":"string","format":"date-time","description":"The date and time the account was created"},"updated_at":{"type":"string","format":"date-time","description":"The date and time the account was last updated"}},"required":["id","account_type","bank_provider","created_at","updated_at"],"description":"A financial account represents a financial, depository (bank) account managed by Chariot.\nChariot maintains a ledger and balances for the account.\nThis account should be funded and have a sufficient available balance before disbursements can be created.\nChariot is a financial technology company, not a bank. Chariot Deposit Accounts come through our banking services partner, Column, N.A.","title":"FinancialAccount"},"financialAccounts_list_Response_200":{"type":"object","properties":{"results":{"type":"array","items":{"$ref":"#/components/schemas/FinancialAccount"}}},"title":"financialAccounts_list_Response_200"},"FinancialAccountBalance":{"type":"object","properties":{"current_balance":{"type":"number","format":"double","description":"The current balance is the amount of money in the account. This value is in minor currency units (USD cents)."},"available_balance":{"type":"number","format":"double","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)."},"timestamp":{"type":"string","format":"date-time","description":"The time the balance was retrieved"}},"required":["current_balance","available_balance","timestamp"],"title":"FinancialAccountBalance"},"EventCategory":{"type":"string","enum":["grant.created","grant.updated","unintegrated_grant.created","unintegrated_grant.updated","donor_account.created","donor_account.updated","authorization_token.created","authorization_token.updated","grant_request.created","grant_request.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","connection.revoked"],"description":"The category of the event. This is useful for filtering events.\n\nEvent names follow the pattern `{resource}.{event_type}` where `event_type` is usually `created` or `updated`. Status transitions (for example, a Donor Account moving to `approved` or `rejected`) are emitted as `{resource}.updated` events — fetch the object to read its current status.\n","title":"EventCategory"},"Event":{"type":"object","properties":{"id":{"type":"string","description":"The unique identifier for the event"},"category":{"$ref":"#/components/schemas/EventCategory"},"created_at":{"type":"string","format":"date-time","description":"The date and time the event was created"},"associated_object_id":{"type":"string","description":"The unique identifier for the associated object"},"associated_object_type":{"type":"string","description":"The type of the associated object"},"organization_id":{"type":"string","description":"The unique identifier for the organization the event belongs to"}},"description":"Events are records of things that happened to objects at Chariot.\n","title":"Event"},"events_list_Response_200":{"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\n to the same endpoint with the same parameters (only changing the pageToken). If\n specified, then more results exist on the server that were not returned, otherwise\n no more results exist on the server."}},"title":"events_list_Response_200"},"EventSubscriptionStatus":{"type":"string","enum":["active","disabled","deleted","requires_attention"],"description":"The status of the event subscription.\nThis indicates if we'll send notifications to this subscription\n  * active: subscription is active and events will be delivered normally\n  * disabled: subscription is temporarily disabled and events will not be delivered\n  * deleted: subscription has been deleted and events will not be delivered\n  * requires_attention: subscription has been disabled due to delivery failures and events will not be delivered","title":"EventSubscriptionStatus"},"EventSubscription":{"type":"object","properties":{"id":{"type":"string","description":"The unique identifier for the event subscription"},"created_at":{"type":"string","format":"date-time","description":"The date and time the event subscription was created"},"status":{"$ref":"#/components/schemas/EventSubscriptionStatus"},"url":{"type":"string","description":"The webhook url where we'll send notifications."},"category":{"$ref":"#/components/schemas/EventCategory"}},"required":["url"],"description":"Webhooks are event notifications we send to you by HTTPS POST requests.\nEvent Subscriptions are how you configure your application to listen for them.\n","title":"EventSubscription"},"eventSubscriptions_list_Response_200":{"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\n to the same endpoint with the same parameters (only changing the pageToken). If\n specified, then more results exist on the server that were not returned, otherwise\n no more results exist on the server."}},"title":"eventSubscriptions_list_Response_200"},"V1EventSubscriptionsIdPatchRequestBodyContentApplicationJsonSchemaStatus":{"type":"string","enum":["active","disabled","deleted"],"description":"The status of the event subscription:\n  * active: The event subscription is active and events will be delivered\n  * disabled: The event subscription is temporarily disabled and events will not be delivered\n  * deleted: The event subscription is permanently deleted and events will not be delivered","title":"V1EventSubscriptionsIdPatchRequestBodyContentApplicationJsonSchemaStatus"},"FilePurpose":{"type":"string","enum":["manual_upload","grant_letter","integration_download","inbound_mail_item","inbound_mail_item_thumbnail","inbound_email","inbound_email_attachment","bank_check_image_front","bank_check_image_back","check_attachment","bank_statement","bank_account_verification_letter","automation_output","export","other"],"description":"The file's purpose. Note that entries may be added to this list without notice.","title":"FilePurpose"},"File":{"type":"object","properties":{"id":{"type":"string","description":"The unique identifier for the file."},"file_name":{"type":"string","description":"The name of the file."},"description":{"type":["string","null"],"description":"The description of the file."},"purpose":{"$ref":"#/components/schemas/FilePurpose"},"content_type":{"type":"string","description":"The MIME type of the file."},"size_bytes":{"type":"integer","format":"int64","description":"The size of the file in bytes."},"created_at":{"type":"string","format":"date-time","description":"The date and time when the file was created."},"updated_at":{"type":"string","format":"date-time","description":"The date and time when the file was last updated."}},"description":"Files are objects that represent a file hosted on Chariot's servers.\nIf you need to download a File, create a File Link.","title":"File"},"files_list_Response_200":{"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\n to the same endpoint with the same parameters (only changing the pageToken). If\n specified, then more results exist on the server that were not returned, otherwise\n no more results exist on the server."}},"title":"files_list_Response_200"},"FileLink":{"type":"object","properties":{"url":{"type":"string","description":"The URL to download the file. It needs no Chariot credential."},"expires_at":{"type":"string","format":"date-time","description":"The date and time when the file link will expire."}},"description":"A file link is a temporary URL that downloads a file's bytes without a Chariot\ncredential. It expires an hour after it is issued.","title":"FileLink"},"ResourceType":{"type":"string","enum":["donation","deposit"],"description":"The API resource that the property is associated with.","title":"ResourceType"},"PropertyType":{"type":"string","enum":["text","enum","user","boolean","date"],"description":"The data type of a property.","title":"PropertyType"},"PropertyOptionValue":{"type":"object","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."}},"required":["id","name"],"description":"A value for an enum or user property.","title":"PropertyOptionValue"},"Property":{"type":"object","properties":{"id":{"type":"string","description":"The unique identifier for the property."},"name":{"type":"string","description":"The name of the property."},"resource_type":{"$ref":"#/components/schemas/ResourceType"},"property_type":{"$ref":"#/components/schemas/PropertyType"},"options":{"type":"array","items":{"$ref":"#/components/schemas/PropertyOptionValue"},"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."},"total_option_count":{"type":"integer","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."}},"required":["id","name","resource_type","property_type"],"description":"A custom key-value pair that is associated with a donation.","title":"Property"},"properties_list_Response_200":{"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\n to the same endpoint with the same parameters (only changing the pageToken). If\n specified, then more results exist on the server that were not returned, otherwise\n no more results exist on the server."}},"title":"properties_list_Response_200"},"properties_listOptions_Response_200":{"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\n to the same endpoint with the same parameters (only changing the pageToken). If\n specified, then more results exist on the server that were not returned, otherwise\n no more results exist on the server."}},"title":"properties_listOptions_Response_200"},"PropertyValue":{"type":"object","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.\nCan use this to unset property values when assigning a property."}},"required":["type"],"title":"PropertyValue"},"V1PropertiesIdAssignPostRequestBodyContentApplicationJsonSchemaResources":{"type":"object","properties":{"ids":{"type":"array","items":{"type":"string"}}},"required":["ids"],"title":"V1PropertiesIdAssignPostRequestBodyContentApplicationJsonSchemaResources"},"properties_assign_Response_200":{"type":"object","properties":{"num_updated":{"type":"integer","description":"The number of resources that were updated."}},"title":"properties_assign_Response_200"},"V1ConnectsPostRequestBodyContentApplicationJsonSchemaContact":{"type":"object","properties":{"email":{"type":"string","description":"The email address for the nonprofit account contact"},"phone":{"type":"string","description":"The phone number for the nonprofit account contact"},"first_name":{"type":"string","description":"The first name of the nonprofit account contact that manages this Connect"},"last_name":{"type":"string","description":"The last name of the nonprofit account contact that manages this Connect"}},"required":["email"],"title":"V1ConnectsPostRequestBodyContentApplicationJsonSchemaContact"},"Connect":{"type":"object","properties":{"id":{"type":"string","description":"The unique identifier for this object. This is also the 'publishable' cid to use for initializing Connect for client-side integration."},"name":{"type":"string","description":"A human readable name for the connect, optional."},"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."},"createdAt":{"type":"string","format":"date-time","description":"Time when this object was created. Expressed in RFC 3339 format."},"updatedAt":{"type":"string","format":"date-time","description":"Time when this object was last updated. Expressed in RFC 3339 format."},"createdBy":{"type":"string","description":"ID of the user who created this object."},"archived":{"type":"boolean","description":"A flag to indicate if this object is marked for deletion."},"metadata":{"type":"object","additionalProperties":{"type":"string"},"description":"A map of arbitrary string keys and values to store information about the object."}},"required":["id"],"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`. Resources and information created from a Connect instance can be read through the Chariot API by filtering on the `connect_id` query parameter. More information on integrating Chariot Connect into a client-side application can be found here: https://givechariot.readme.io","title":"Connect"},"ContributionFeeDetailFeeType":{"type":"string","enum":["chariot","daf","fundraising_application"],"description":"This indicates the source of a fee contribution.\n  * chariot: Chariot's processing fee\n  * daf: The DAF's processing fee\n  * fundraising_application: The fundraising application's processing fee\n","title":"ContributionFeeDetailFeeType"},"ContributionFeeDetail":{"type":"object","properties":{"name":{"type":"string","description":"The name of the party charging the fee. This is an informational field.\nIf you need to differentiate between fees charged by different parties, you should use the `feeType` field.\n"},"amount":{"type":"number","format":"double","description":"The fee contribution amount expressed in units of cents"},"feeType":{"$ref":"#/components/schemas/ContributionFeeDetailFeeType","description":"This indicates the source of a fee contribution.\n  * chariot: Chariot's processing fee\n  * daf: The DAF's processing fee\n  * fundraising_application: The fundraising application's processing fee\n"}},"required":["name","amount"],"title":"ContributionFeeDetail"},"GrantFeeDetail":{"type":"object","properties":{"total":{"type":"number","format":"double","description":"The total fee amount expressed in units of cents"},"contributions":{"type":"array","items":{"$ref":"#/components/schemas/ContributionFeeDetail"},"description":"The list of fee contributions for this grant"}},"description":"The fee detail of the grant","title":"GrantFeeDetail"},"GrantStatusStatus":{"type":"string","enum":["awaiting_account_approval","awaiting_daf_submission","initiated","canceled"],"description":"The status of the grant.\n  * awaiting_account_approval: The linked Donor Account is not yet `approved`. The grant advances automatically when the Account is approved.\n  * awaiting_daf_submission: The Account is approved and the grant is ready for the DAF to submit in their system.\n  * initiated: The DAF has submitted the grant. Terminal.\n  * canceled: The DAF has canceled the grant. Terminal.\n","title":"GrantStatusStatus"},"GrantStatus":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"The unique identifier for the object"},"createdAt":{"type":"string","format":"date-time","description":"Time when this object was created; expressed in RFC 3339 format"},"status":{"$ref":"#/components/schemas/GrantStatusStatus","description":"The status of the grant.\n  * awaiting_account_approval: The linked Donor Account is not yet `approved`. The grant advances automatically when the Account is approved.\n  * awaiting_daf_submission: The Account is approved and the grant is ready for the DAF to submit in their system.\n  * initiated: The DAF has submitted the grant. Terminal.\n  * canceled: The DAF has canceled the grant. Terminal.\n"},"comment":{"type":"string","description":"The user comment for the update"}},"required":["id","createdAt","status"],"title":"GrantStatus"},"GrantPaymentChannel":{"type":"string","enum":["dafpay_network","direct"],"description":"The payment channel for the grant. This is useful to know how the grant will be sent.\nThe payment channel will be one of the following:\n- 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.\n- direct: Grant will be sent directly to the intended recipient.","title":"GrantPaymentChannel"},"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."}},"title":"GrantAddress"},"Grant":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"The unique identifier for the object"},"userFriendlyId":{"type":"string","description":"Often referred to as the \"Chariot ID\", this is the ID that will be included in the payment from the DAF provider.","deprecated":true},"trackingId":{"type":"string","description":"The tracking ID for the grant"},"workflowSessionId":{"type":"string","format":"uuid","description":"ID of the Connect Workflow Session associated with this grant"},"fundId":{"type":"string","description":"ID of the donor advised fund"},"donor_account_id":{"type":"string","description":"ID of the [Donor Account](/api/donor-accounts) that this grant was submitted from.\nPresent on grants submitted by donors who authenticated through the DAFpay Donor Account flow.\nGrants submitted without a linked Donor Account will not have this field set."},"donation_id":{"type":"string","description":"ID of the [Donation](/api/donations) produced by this grant.\nPopulated once the grant has produced a donation. Newly-created grants\nand grants that have not yet produced a donation do not have this field set."},"externalGrantId":{"type":"string","description":"ID of the grant associated with the donor advised fund"},"createdAt":{"type":"string","format":"date-time","description":"Time when this object was created; expressed in RFC 3339 format"},"updatedAt":{"type":"string","format":"date-time","description":"Time when this object was last updated; expressed in RFC 3339 format"},"amount":{"type":"number","format":"double","description":"The grant amount expressed in units of whole cents"},"status":{"type":"string","description":"The status of the grant"},"feeDetail":{"$ref":"#/components/schemas/GrantFeeDetail","description":"The fee detail of the grant"},"metadata":{"type":"object","additionalProperties":{"type":"string"},"description":"A map of arbitrary string keys and values to store information about the object"},"firstName":{"type":"string","description":"The donor's first name"},"lastName":{"type":"string","description":"The donor's last name"},"phone":{"type":"string","description":"The donor's phone number"},"email":{"type":"string","description":"The donor's email"},"note":{"type":"string","description":"An note inputted by the user at submisson"},"statuses":{"type":"array","items":{"$ref":"#/components/schemas/GrantStatus"},"description":"The list of grant statuses for this grant"},"paymentChannel":{"$ref":"#/components/schemas/GrantPaymentChannel","description":"The payment channel for the grant. This is useful to know how the grant will be sent.\nThe payment channel will be one of the following:\n- 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.\n- direct: Grant will be sent directly to the intended recipient."},"address":{"$ref":"#/components/schemas/GrantAddress"}},"required":["id","workflowSessionId","fundId","amount"],"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.","title":"Grant"},"grants_list_Response_200":{"type":"object","properties":{"results":{"type":"array","items":{"$ref":"#/components/schemas/Grant"}},"nextPageToken":{"type":["string","null"],"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."}},"title":"grants_list_Response_200"},"V1GrantsPostRequestBodyContentApplicationJsonSchemaDonor":{"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"}},"title":"V1GrantsPostRequestBodyContentApplicationJsonSchemaDonor"},"RecurringGrantFrequency":{"type":"string","enum":["MONTHLY"],"description":"How often the DAF provider will submit the recurring grant. At the moment, monthly is the only supported frequency.","title":"RecurringGrantFrequency"},"RecurringGrant":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"The unique identifier for the object"},"trackingId":{"type":"string","description":"The tracking ID for the grant"},"workflowSessionId":{"type":"string","format":"uuid","description":"ID of the Connect Workflow Session associated with this grant"},"fundId":{"type":"string","description":"ID of the donor advised fund"},"frequency":{"$ref":"#/components/schemas/RecurringGrantFrequency","description":"How often the DAF provider will submit the recurring grant. At the moment, monthly is the only supported frequency."},"externalRecurringGrantId":{"type":"string","description":"ID of the grant associated with the donor advised fund"},"createdAt":{"type":"string","format":"date-time","description":"Time when this object was created; expressed in RFC 3339 format"},"updatedAt":{"type":"string","format":"date-time","description":"Time when this object was last updated; expressed in RFC 3339 format"},"amount":{"type":"number","format":"double","description":"The grant amount expressed in units of whole cents"},"firstName":{"type":"string","description":"The donor's first name"},"lastName":{"type":"string","description":"The donor's last name"},"phone":{"type":"string","description":"The donor's phone number"},"email":{"type":"string","description":"The donor's email"},"note":{"type":"string","description":"An note inputted by the user at submisson"},"address":{"$ref":"#/components/schemas/GrantAddress"}},"required":["id","workflowSessionId","fundId","frequency","amount"],"description":"A RecurringGrant represents a successfully initiated recurring grant request with a Donor Advised Fund.\nRecurringGrants are created when a person interacts with an instance of Chariot Connect and successfully submits a recurring grant and completes the workflow.\nOn creation, each RecurringGrant object will also have a Grant object created to represent the first grant of the recurring grant.\nThere can be many grants associated with the same recurring grant.","title":"RecurringGrant"},"recurring_grants_list_Response_200":{"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."}},"title":"recurring_grants_list_Response_200"},"V1RecurringGrantsPostRequestBodyContentApplicationJsonSchemaFrequency":{"type":"string","enum":["MONTHLY"],"description":"The recurrence interval schedule for the recurring grant. Currently, only `MONTHLY` is supported.","title":"V1RecurringGrantsPostRequestBodyContentApplicationJsonSchemaFrequency"},"V1RecurringGrantsPostRequestBodyContentApplicationJsonSchemaDonor":{"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"}},"title":"V1RecurringGrantsPostRequestBodyContentApplicationJsonSchemaDonor"},"UnintegratedGrantStatus":{"type":"string","enum":["Unknown","Completed","Canceled"],"description":"The status of the unintegrated grant.","title":"UnintegratedGrantStatus"},"UnintegratedGrantPaymentChannel":{"type":"string","enum":["offline"],"description":"The payment channel for the unintegrated grant. This is useful to know how the grant will be sent.\nThe payment channel for unintegrated grants will always be:\n- offline: Grant was initiated outside of Chariot so we're unable to confirm how the grant will be sent.","title":"UnintegratedGrantPaymentChannel"},"UnintegratedGrant":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"The unique identifier for the object"},"userFriendlyId":{"type":"string","description":"Often referred to as the \"Chariot ID\", this is the ID that will be included in the payment from the DAF provider.","deprecated":true},"trackingId":{"type":"string","description":"The tracking ID for the unintegrated grant"},"workflowSessionId":{"type":"string","format":"uuid","description":"ID of the Connect Workflow Session associated with this grant"},"fundId":{"type":"string","description":"ID of the donor advised fund"},"createdAt":{"type":"string","format":"date-time","description":"Time when this object was created; expressed in RFC 3339 format"},"updatedAt":{"type":"string","format":"date-time","description":"Time when this object was last updated; expressed in RFC 3339 format"},"amount":{"type":"number","format":"double","description":"The grant amount expressed in units of whole cents"},"status":{"$ref":"#/components/schemas/UnintegratedGrantStatus","description":"The status of the unintegrated grant."},"metadata":{"type":"object","additionalProperties":{"type":"string"},"description":"A map of arbitrary string keys and values to store information about the object"},"firstName":{"type":"string","description":"The donor's first name"},"lastName":{"type":"string","description":"The donor's last name"},"phone":{"type":"string","description":"The donor's phone number"},"email":{"type":"string","description":"The donor's email"},"address":{"$ref":"#/components/schemas/GrantAddress"},"note":{"type":"string","description":"An note inputted by the user at submisson"},"paymentChannel":{"$ref":"#/components/schemas/UnintegratedGrantPaymentChannel","description":"The payment channel for the unintegrated grant. This is useful to know how the grant will be sent.\nThe payment channel for unintegrated grants will always be:\n- offline: Grant was initiated outside of Chariot so we're unable to confirm how the grant will be sent."}},"required":["id","workflowSessionId","fundId","amount"],"description":"An Unintegrated Grant represents a grant requested through a provider that Chariot does not support.\nUnintegrated grants should be treated as donation intents as Chariot can not guarantee that the grant was submitted or will be fulfilled.\nNonprofits 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.\nThese are sometimes referred to as \"Manual Grants\".","title":"UnintegratedGrant"},"unintegrated_grants_list_Response_200":{"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\n to the same endpoint with the same parameters (only changing the pageToken). If\n specified, then more results exist on the server that were not returned, otherwise\n no more results exist on the server."}},"title":"unintegrated_grants_list_Response_200"},"Daf":{"type":"object","properties":{"id":{"type":"string","description":"The unique identifier for this object."},"orgName":{"type":"string","description":"A human readable name for the DAF."},"address":{"type":"string","description":"The first address line."},"address2":{"type":"string","description":"The second address line."},"city":{"type":"string","description":"The city name for the address."},"state":{"type":"string","description":"The state name for the address."},"zip":{"type":"string","description":"The zipcode for the address."},"supported":{"type":"boolean","description":"A flag to indicate if this DAF is supported by DAFpay."},"minimumGrantAmount":{"type":"number","format":"double","description":"The minimum grant amount in cents allowed for this DAF."},"institutionDown":{"type":"boolean","description":"A flag to indicate if the institution is down."}},"required":["id","orgName","address","address2","city","state","zip","supported","minimumGrantAmount","institutionDown"],"description":"A Donor-Advised Fund, or `DAF` for short, is a special-purpose, tax-advantaged charitable account.\nFor more information, please see the [IRS website](https://www.irs.gov/charities-non-profits/charitable-organizations/donor-advised-funds) for a full description.\nIn the case that a DAF is supported, a donor will be able to initiate a grant directly through DAFpay.","title":"Daf"},"donorAdvisedFunds_list_Response_200":{"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."}},"title":"donorAdvisedFunds_list_Response_200"},"DonorAccountStatus":{"type":"string","enum":["pending","approved","rejected"],"description":"The status of a [Donor Account](/api/donor-accounts).\n  * `pending`: The Donor Account has been created but the DAF has not yet approved or rejected it.\n  * `approved`: The DAF has verified the donor's identity and Grants from this account can be processed.\n  * `rejected`: The DAF has rejected the Donor Account. Grants from this account will not be processed.","title":"DonorAccountStatus"},"DonorAccountDonor":{"type":"object","properties":{"email":{"type":"string","description":"The donor's email. This is the donor's verified identifier — DAFpay verifies ownership via an email verification flow before a Donor Account is created."},"first_name":{"type":["string","null"],"description":"The donor's first name as captured during DAFpay profile setup. May be null for Donor Accounts created via [Create Donor Account](/api/donor-accounts/create) before the donor has authenticated."},"last_name":{"type":["string","null"],"description":"The donor's last name as captured during DAFpay profile setup. May be null for Donor Accounts created via [Create Donor Account](/api/donor-accounts/create) before the donor has authenticated."},"phone":{"type":["string","null"],"description":"The donor's phone number as captured during DAFpay profile setup.\n<Note>\nDAFpay does not currently verify ownership of the phone number. Treat this field as donor-asserted information.\n</Note>"}},"required":["email"],"description":"The donor's identity and profile information.","title":"DonorAccountDonor"},"DonorAccountApproval":{"type":"object","properties":{"approved_at":{"type":"string","format":"date-time","description":"Time when the Donor Account was approved. Expressed in RFC 3339 format."},"approved_by":{"type":"string","description":"Identifier of the actor that approved this Donor Account. For DAF-initiated approvals, this is the DAF's API key principal. For automatic approvals via token verification, this is `system:authorization_token`."}},"description":"Details about the approval decision. Present when `status` is `approved`; otherwise `null`.","title":"DonorAccountApproval"},"DonorAccountRejection":{"type":"object","properties":{"rejected_at":{"type":"string","format":"date-time","description":"Time when the Donor Account was rejected. Expressed in RFC 3339 format."},"rejected_by":{"type":"string","description":"Identifier of the actor that rejected this Donor Account. For DAF-initiated rejections, this is the DAF's API key principal."},"rejection_reason":{"type":"string","description":"A human-readable reason provided by the DAF when rejecting the Donor Account."}},"description":"Details about the rejection decision. Present when `status` is `rejected`; otherwise `null`.","title":"DonorAccountRejection"},"DonorAccount":{"type":"object","properties":{"id":{"type":"string","description":"The unique identifier for this object."},"status":{"$ref":"#/components/schemas/DonorAccountStatus"},"donor":{"$ref":"#/components/schemas/DonorAccountDonor","description":"The donor's identity and profile information."},"external_id":{"type":["string","null"],"description":"The DAF's internal identifier for this Donor Account. Can be set on creation or via [Update Donor Account](/api/donor-accounts/update) to link the DAFpay Donor Account to the donor's record in the DAF's own systems."},"approval":{"oneOf":[{"$ref":"#/components/schemas/DonorAccountApproval"},{"type":"null"}],"description":"Details about the approval decision. Present when `status` is `approved`; otherwise `null`."},"rejection":{"oneOf":[{"$ref":"#/components/schemas/DonorAccountRejection"},{"type":"null"}],"description":"Details about the rejection decision. Present when `status` is `rejected`; otherwise `null`."},"disabled":{"type":"boolean","default":false,"description":"Whether this Donor Account is currently disabled. A disabled Donor Account remains `approved` but cannot submit new Grant Requests — call [Enable Donor Account](/api/donor-accounts/enable) to re-enable it. Disabling is only available for accounts in `approved` status."},"created_at":{"type":"string","format":"date-time","description":"Time when this object was created. Expressed in RFC 3339 format."},"updated_at":{"type":"string","format":"date-time","description":"Time when this object was last updated. Expressed in RFC 3339 format."},"metadata":{"type":"object","additionalProperties":{"type":"string"},"description":"A map of arbitrary string keys and values to store information about the object."}},"required":["id","status","donor","created_at","updated_at"],"description":"A Donor Account represents a DAFpay donor identity at a DAF.\n\nDonor Accounts are the bridge between a donor's verified DAFpay identity (email, profile) and the donor's record at the DAF.\nAn Account must reach `approved` status — via an [Authorization Token](/api/authorization-tokens) — before its Grant Requests can be processed.\n\nA Donor Account may optionally have one or more [Giving Pools](/api/giving-pools) associated with it (see [Giving Pool](/api/giving-pools)). The relationship is many-to-one from `GivingPool` to `DonorAccount` — each Giving Pool belongs to exactly one Donor Account.\n\nThere are two flows for how an Account reaches `approved`:\n\n- **Donor-Initiated Verification**: After a donor submits a Grant Request, DAFpay issues a one-time [Authorization Token](/api/authorization-tokens) and emails the `code` to the donor. The donor provides the code to the DAF, who calls [Verify Authorization Token](/api/authorization-tokens/verify) to approve the account.\n- **DAF-Initiated Setup**: The DAF creates the Donor Account and an Authorization Token in advance (e.g. when a donor opts in via the DAF portal). The donor enters the token's `code` into DAFpay during profile setup, automatically approving the account.\n\nSee the [Donor Accounts overview](/guides/dafpay/donor-accounts/overview) for a full discussion of these flows.","title":"DonorAccount"},"donorAccounts_list_Response_200":{"type":"object","properties":{"results":{"type":"array","items":{"$ref":"#/components/schemas/DonorAccount"}},"next_page_token":{"type":["string","null"],"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."}},"title":"donorAccounts_list_Response_200"},"V1DonorAccountsPostRequestBodyContentApplicationJsonSchemaDonor":{"type":"object","properties":{"email":{"type":"string","description":"The donor's email. Must match the email the donor will use when authenticating with DAFpay."},"first_name":{"type":"string","description":"The donor's first name."},"last_name":{"type":"string","description":"The donor's last name."},"phone":{"type":"string","description":"The donor's phone number."}},"required":["email"],"description":"The donor's identity and profile information. `email` is required and **must** match the email the donor will use when authenticating with DAFpay — DAFpay matches incoming verified emails to existing Accounts. Other fields are optional and may be filled in later by the donor during DAFpay profile setup.","title":"V1DonorAccountsPostRequestBodyContentApplicationJsonSchemaDonor"},"V1DonorAccountsIdPatchRequestBodyContentApplicationJsonSchemaDonor":{"type":"object","properties":{"first_name":{"type":"string","description":"The donor's first name."},"last_name":{"type":"string","description":"The donor's last name."},"phone":{"type":"string","description":"The donor's phone number."}},"description":"Mutable donor identity fields. Only the fields you pass are updated; omitted fields are left unchanged.","title":"V1DonorAccountsIdPatchRequestBodyContentApplicationJsonSchemaDonor"},"DonorAuthorizationTokenStatus":{"type":"string","enum":["pending","verified","revoked","expired"],"description":"The status of a [Donor Authorization Token](/api/authorization-tokens).\n  * `pending`: The token has been issued but not yet verified.\n  * `verified`: The token has been verified and can no longer be used.\n  * `revoked`: The token was explicitly revoked before being verified.\n  * `expired`: The token's `expires_at` has passed and it can no longer be verified.","title":"DonorAuthorizationTokenStatus"},"DonorAuthorizationToken":{"type":"object","properties":{"id":{"type":"string","description":"The unique identifier for this object."},"donor_account_id":{"type":"string","description":"The ID of the [Donor Account](/api/donor-accounts) this token is bound to."},"status":{"$ref":"#/components/schemas/DonorAuthorizationTokenStatus"},"code":{"type":"string","description":"The token's secret code value.\n\n<Warning>\nThe `code` is **only returned in the response of [Create Authorization Token](/api/authorization-tokens/create)**. It is omitted from all other responses (Get, List). If the code is lost, [revoke](/api/authorization-tokens/revoke) the token and create a new one.\n</Warning>\n\nThe format is a 12-character alphanumeric string designed to be easy for donors to read aloud or copy. Codes are not case-sensitive when verified."},"created_at":{"type":"string","format":"date-time","description":"Time when the token was issued. Expressed in RFC 3339 format."},"expires_at":{"type":"string","format":"date-time","description":"Time at which this token will expire and can no longer be verified. Defaults to 30 days after creation; configurable via the `expires_in` parameter on [Create Authorization Token](/api/authorization-tokens/create)."},"verified_at":{"type":"string","format":"date-time","description":"Time at which the token was verified. Only set when `status` is `verified`."},"revoked_at":{"type":"string","format":"date-time","description":"Time at which the token was revoked. Only set when `status` is `revoked`."},"metadata":{"type":"object","additionalProperties":{"type":"string"},"description":"A map of arbitrary string keys and values to store information about the object."}},"required":["id","donor_account_id","status","created_at","expires_at"],"description":"A Donor Authorization Token is a single-use binding credential that ties a [Donor Account](/api/donor-accounts) to a verified identity exchange between DAFpay and the DAF.\n\nTokens have two creation paths:\n\n- **DAF-Initiated Setup**: The DAF creates a Donor Account and then a token, surfaces the token's `code` to the donor via their portal, and the donor enters the `code` into DAFpay to approve their account.\n- **Donor-Initiated Verification**: After a donor submits a Grant Request without an approved Donor Account, DAFpay automatically creates a token and emails the `code` to the donor. The DAF later receives the `code` from the donor and calls [Verify Authorization Token](/api/authorization-tokens/verify) to approve the linked Donor Account.\n\nTokens are single-use: once verified, the token's status becomes `verified` and the `code` cannot be used again.","title":"DonorAuthorizationToken"},"authorizationTokens_list_Response_200":{"type":"object","properties":{"results":{"type":"array","items":{"$ref":"#/components/schemas/DonorAuthorizationToken"}},"next_page_token":{"type":["string","null"],"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."}},"title":"authorizationTokens_list_Response_200"},"GivingPool":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"The unique identifier for this Giving Pool."},"name":{"type":"string","description":"The display name of the Giving Pool. This is the name that the Donor will see when they are selecting a Giving Pool in DAFpay."},"donor_account_id":{"type":"string","description":"The ID of the [Donor Account](/api/donor-accounts) this Giving Pool belongs to."},"created_at":{"type":"string","format":"date-time","description":"Time when this object was created, expressed in RFC 3339 format."},"updated_at":{"type":"string","format":"date-time","description":"Time when this object was last updated, expressed in RFC 3339 format."},"metadata":{"type":"object","additionalProperties":{"type":"string"},"description":"A map of arbitrary string keys and values to store information about the object."}},"required":["id","name","donor_account_id","created_at","updated_at"],"description":"A Giving Pool represents a named giving pool within a donor's DAF account (e.g. \"Smith Family Fund\" within a Fidelity Charitable account).\n\nGiving Pools are optional — not every DAF models giving pools, and even within DAFs that do, a [Donor Account](/api/donor-accounts) may exist without any Giving Pools. When present, a Donor Account may have one or more Giving Pools. Each Giving Pool belongs to exactly one Donor Account via `donor_account_id`.","title":"GivingPool"},"givingPools_list_Response_200":{"type":"object","properties":{"results":{"type":"array","items":{"$ref":"#/components/schemas/GivingPool"}},"next_page_token":{"type":"string","description":"A token to retrieve the next page of results. Absent when there are no more results."}},"title":"givingPools_list_Response_200"},"GrantRequestStatus":{"type":"string","enum":["awaiting_account_decision","pending","submitted","rejected"],"description":"The lifecycle status of a Grant Request.\n\n- `awaiting_account_decision`: The linked Donor Account is not yet `approved`. Advances automatically when the account is approved.\n- `pending`: The Donor Account is approved and the Grant Request is awaiting your decision.\n- `submitted`: You have submitted the grant in your system. Terminal.\n- `rejected`: You have rejected the grant and it will not be processed. Terminal.","title":"GrantRequestStatus"},"GrantRequestFrequency":{"type":"string","enum":["one_time","monthly","quarterly","annual"],"description":"How often the donor intends this grant to recur. Only frequencies enabled in your DAF Provider settings will appear on Grant Requests.","title":"GrantRequestFrequency"},"GrantRequestDonorContactAddress":{"type":"object","properties":{"line1":{"type":"string"},"line2":{"type":["string","null"]},"city":{"type":"string"},"state":{"type":"string"},"zip":{"type":"string"}},"description":"The donor's mailing address at the time of the Grant Request.","title":"GrantRequestDonorContactAddress"},"GrantRequestDonorContact":{"type":"object","properties":{"name":{"type":"string"},"email":{"type":"string","format":"email"},"phone":{"type":"string"},"address":{"$ref":"#/components/schemas/GrantRequestDonorContactAddress"}},"description":"A snapshot of the donor's contact information captured for this Grant Request.","title":"GrantRequestDonorContact"},"GrantRequest":{"type":"object","properties":{"id":{"type":"string","description":"The unique identifier for this Grant Request."},"donor_account_id":{"type":"string","description":"The ID of the [Donor Account](/api/donor-accounts) this Grant Request belongs to."},"giving_pool_id":{"type":["string","null"],"description":"The ID of the [Giving Pool](/api/giving_pools) the grant is being made from. Present when the donor selected a specific giving pool."},"status":{"$ref":"#/components/schemas/GrantRequestStatus"},"ein":{"type":"string","description":"The EIN of the recipient nonprofit."},"nonprofit_name":{"type":"string","description":"The name of the recipient nonprofit at the time of the Grant Request."},"amount_cents":{"type":"integer","format":"int64","description":"The grant amount in cents (USD)."},"frequency":{"$ref":"#/components/schemas/GrantRequestFrequency"},"form_url":{"type":"string","format":"uri","description":"The URL of the page where the donor submitted the DAFpay gift."},"purpose":{"type":["string","null"],"description":"The donor's stated purpose for the grant."},"note":{"type":["string","null"],"description":"An optional note from the donor to the nonprofit."},"donor_contact":{"$ref":"#/components/schemas/GrantRequestDonorContact"},"rejection_reason":{"type":["string","null"],"description":"The reason provided when the Grant Request was rejected. Set when status transitions to `rejected`."},"created_at":{"type":"string","format":"date-time","description":"Time when this object was created, expressed in RFC 3339 format."},"updated_at":{"type":"string","format":"date-time","description":"Time when this object was last updated, expressed in RFC 3339 format."}},"required":["id","donor_account_id","status","ein","amount_cents","frequency","form_url","created_at","updated_at"],"description":"A Grant Request is a donation intent submitted by a donor through the DAFpay payment option, addressed to a specific nonprofit.\n\nThe DAF Provider is responsible for processing it in their own system and reporting the outcome back to DAFpay via the [Submit](/api/grant-requests/submit) or [Reject](/api/grant-requests/reject) endpoints.\n\nAll amounts are in US dollars.","title":"GrantRequest"},"grantRequests_list_Response_200":{"type":"object","properties":{"results":{"type":"array","items":{"$ref":"#/components/schemas/GrantRequest"}},"next_page_token":{"type":"string","description":"A token to retrieve the next page of results. Absent when there are no more results."}},"title":"grantRequests_list_Response_200"},"InboundTransferStatus":{"type":"string","enum":["pending","completed","canceled","failed"],"description":"The status of the inbound transfer.\nAn Inbound Transfer is `pending` if it created and the funds haven't been received yet.\nThe status changes to `completed` when the funds have been received and the balance of the financial account has been updated.\nThe status changes to `canceled` if the transfer is canceled.\nThe status changes to `failed` if the transfer fails.","title":"InboundTransferStatus"},"InboundAccountTransfer":{"type":"object","properties":{"created_at":{"type":"string","format":"date-time","description":"The date and time the account transfer was created"}},"required":["created_at"],"description":"An instant transfer of funds between two financial accounts.\nThis is the preferred method of transferring funds for Grantmakers within Chariot's Network.","title":"InboundAccountTransfer"},"InboundAchTransferStatus":{"type":"string","enum":["pending","declined","accepted","returned"],"description":"The status of the ACH transfer.","title":"InboundAchTransferStatus"},"InboundAchTransfer":{"type":"object","properties":{"standard_entry_class_code":{"type":"string","description":"The Standard Entry Class (SEC) code for the ACH transfer."},"company_entry_description":{"type":"string","description":"The company entry description for the ACH transfer."},"originator_routing_number":{"type":"string","description":"The routing number of the originator of the ACH transfer."},"originator_company_name":{"type":"string","description":"The name of the originator of the ACH transfer."},"trace_number":{"type":"string","description":"The trace number for the ACH transfer."},"effective_date":{"type":"string","format":"date-time","description":"The effective date for the ACH transfer. The time component is always midnight UTC."},"status":{"$ref":"#/components/schemas/InboundAchTransferStatus","description":"The status of the ACH transfer."},"company_discretionary_data":{"type":"string","description":"Optional data set by the originator for their own internal use, taken from the Company Discretionary Data field of the ACH batch header record."},"payment_related_info":{"type":"string","description":"Payment details the originator attached to the ACH transfer, taken from the Payment Related Information field of the ACH addenda record.\nUp to 80 characters. Omitted when the originator didn't send any."}},"description":"An ACH transfer initiated outside of Chariot to your financial account.","title":"InboundAchTransfer"},"AchTransferStatus":{"type":"string","enum":["initiated","pending_submission","submitted","completed","rejected","returned","canceled"],"description":"The lifecycle status of the ACH transfer.\nPossible values include:\n  - `initiated`: The ACH transfer has been initiated and is pending submission to the Federal Reserve.\n  - `pending_submission`: The ACH transfer is queued for submission to the Federal Reserve.\n  - `submitted`: The ACH transfer has been submitted to the Federal Reserve.\n  - `completed`: The ACH transfer has been completed. Funds should be settled.\n  - `rejected`: The ACH transfer was rejected.\n  - `returned`: The ACH transfer was returned by the receiving organization.\n  - `canceled`: The ACH transfer was canceled before submission.","title":"AchTransferStatus"},"AchTransferDirection":{"type":"string","enum":["credit","debit"],"description":"The direction of the ACH transfer.","title":"AchTransferDirection"},"AchTransferStandardEntryClassCode":{"type":"string","enum":["corporate_credit_or_debit","prearranged_payments_and_deposit","international_ach_transaction","internet_initiated","corporate_trade_exchange"],"description":"The Standard Entry Class (SEC) code for the ACH transfer.","title":"AchTransferStandardEntryClassCode"},"AchTransfer":{"type":"object","properties":{"transfer_id":{"type":"string","description":"The unique identifier for the ACH transfer"},"amount":{"type":"integer","format":"int64","description":"The amount of the ACH transfer in minor currency units (cents).\nFor ACH debits, this is a negative number."},"status":{"$ref":"#/components/schemas/AchTransferStatus","description":"The lifecycle status of the ACH transfer.\nPossible values include:\n  - `initiated`: The ACH transfer has been initiated and is pending submission to the Federal Reserve.\n  - `pending_submission`: The ACH transfer is queued for submission to the Federal Reserve.\n  - `submitted`: The ACH transfer has been submitted to the Federal Reserve.\n  - `completed`: The ACH transfer has been completed. Funds should be settled.\n  - `rejected`: The ACH transfer was rejected.\n  - `returned`: The ACH transfer was returned by the receiving organization.\n  - `canceled`: The ACH transfer was canceled before submission."},"direction":{"$ref":"#/components/schemas/AchTransferDirection","description":"The direction of the ACH transfer."},"standard_entry_class_code":{"$ref":"#/components/schemas/AchTransferStandardEntryClassCode","description":"The Standard Entry Class (SEC) code for the ACH transfer."},"company_entry_description":{"type":"string","description":"The company entry description for the ACH transfer.\nThis is included in the transfer data sent to the receiving bank."},"trace_number":{"type":"string","description":"A 15 digit number recorded in the Nacha file and transmitted to the receiving bank.\nAlong with the amount, date, and originating routing number, this can be used to identify the ACH transfer at the receiving bank.\nACH trace numbers are not unique, but are used to correlate returns."},"effective_date":{"type":"string","format":"date-time","description":"The ACH transfer's effective date as sent to the Federal Reserve.\nThis is the date the funds will be available to the receiving organization.\nThe time component is always midnight UTC."},"submitted_at":{"type":"string","format":"date-time","description":"The date and time the ACH transfer was submitted to the Federal Reserve."},"settled_at":{"type":"string","format":"date-time","description":"The date and time at which the ACH transfer was settled.\nIf the transfer is not settled, this will be null."},"rejected_at":{"type":"string","format":"date-time","description":"The date and time at which the ACH transfer was rejected.\nIf the transfer is not rejected, this will be null."},"returned_at":{"type":"string","format":"date-time","description":"The date and time at which the ACH transfer was returned.\nIf the transfer is not returned, this will be null."},"created_at":{"type":"string","format":"date-time","description":"The date and time the ACH transfer was created"},"updated_at":{"type":"string","format":"date-time","description":"The date and time the ACH transfer was last updated"}},"required":["transfer_id","amount","status","created_at"],"description":"An ACH transfer represents an electronic transfer of funds via the Automated Clearing House (ACH) payment network.","title":"AchTransfer"},"CheckDepositStatus":{"type":"string","enum":["pending","deposited","rejected","returned"],"description":"The status of the check deposit.","title":"CheckDepositStatus"},"CheckDeposit":{"type":"object","properties":{"auxiliary_on_us":{"type":"string","description":"An additional line of metadata printed on the check.\nThis typically includes the check number for business checks."},"routing_number":{"type":"string","description":"The routing number printed on the check.\nThis is a routing number for the bank that issued the check."},"submitted_at":{"type":"string","format":"date-time","description":"The date and time the check deposit was submitted."},"status":{"$ref":"#/components/schemas/CheckDepositStatus","description":"The status of the check deposit."}},"description":"A check deposit represents a physical check that is deposited into a financial account.","title":"CheckDeposit"},"InboundRealTimePaymentsTransferStatus":{"type":"string","enum":["pending_confirmation","confirmed","declined"],"description":"The status of the inbound real-time payments transfer.","title":"InboundRealTimePaymentsTransferStatus"},"InboundRealTimePaymentsTransfer":{"type":"object","properties":{"status":{"$ref":"#/components/schemas/InboundRealTimePaymentsTransferStatus","description":"The status of the inbound real-time payments transfer."},"debtor_name":{"type":"string","description":"The name of the debtor who sent the transfer."},"debtor_routing_number":{"type":"string","description":"The routing number of the debtor's financial account."},"debtor_account_number":{"type":"string","description":"The account number of the debtor's financial account."},"transaction_identification":{"type":"string","description":"The transaction identification assigned by the sender."},"remittance_information":{"type":"string","description":"Unstructured remittance information sent with the transfer."},"confirmed_at":{"type":"string","format":"date-time","description":"The date and time the transfer was confirmed."}},"description":"A Real-Time Payments transfer initiated outside of Chariot to your financial account.\nInbound Real-Time Payments transfers settle immediately.","title":"InboundRealTimePaymentsTransfer"},"InboundWireTransferStatus":{"type":"string","enum":["pending_confirmation","confirmed"],"description":"The status of the inbound wire transfer.","title":"InboundWireTransferStatus"},"InboundWireTransfer":{"type":"object","properties":{"status":{"$ref":"#/components/schemas/InboundWireTransferStatus","description":"The status of the inbound wire transfer."},"originator_name":{"type":"string","description":"The name of the originator who sent the transfer."},"originator_routing_number":{"type":"string","description":"The routing number of the originator's financial account."},"originator_account_number":{"type":"string","description":"The account number of the originator's financial account."},"confirmed_at":{"type":"string","format":"date-time","description":"The date and time the transfer was confirmed."}},"description":"A wire transfer initiated outside of Chariot to your financial account.","title":"InboundWireTransfer"},"Transfer":{"type":"object","properties":{"amount":{"type":"integer","format":"int64","description":"The amount of the transfer in minor currency units. For example, for dollars, this is cents."},"currency":{"type":"string","description":"The [ISO 4217 code](https://en.wikipedia.org/wiki/ISO_4217) for the transfer's currency."},"financial_account_id":{"type":"string","description":"The unique identifier for the financial account that the transfer was made to."},"description":{"type":"string","description":"A description of the transfer."},"bank_created_at":{"type":"string","format":"date-time","description":"The date and time the bank recorded the transfer."},"inbound_account_transfer":{"$ref":"#/components/schemas/InboundAccountTransfer","description":"An instant transfer from another Chariot account."},"inbound_ach_transfer":{"$ref":"#/components/schemas/InboundAchTransfer","description":"An ACH credit received from an external bank."},"ach_transfer":{"$ref":"#/components/schemas/AchTransfer","description":"An ACH debit Chariot pulled from an external bank account to fund the account."},"check_deposit":{"$ref":"#/components/schemas/CheckDeposit","description":"A check that Chariot processed and deposited."},"inbound_real_time_payments_transfer":{"$ref":"#/components/schemas/InboundRealTimePaymentsTransfer","description":"A real-time payments transfer received from an external bank."},"inbound_wire_transfer":{"$ref":"#/components/schemas/InboundWireTransfer","description":"A wire transfer received from an external bank."}},"required":["amount","currency","financial_account_id"],"description":"The transfer that carried the funds for a deposit.","title":"Transfer"},"InboundTransfer":{"type":"object","properties":{"id":{"type":"string","description":"The unique identifier for the inbound transfer"},"program_id":{"type":"string","description":"The unique identifier for the program that the inbound transfer belongs to."},"amount":{"type":"integer","format":"int64","description":"The amount of the inbound transfer in minor currency units (cents).\nThis amount must be positive."},"description":{"type":"string","description":"An arbitrary string attached to the object. Often useful for displaying to users."},"status":{"$ref":"#/components/schemas/InboundTransferStatus","description":"The status of the inbound transfer.\nAn Inbound Transfer is `pending` if it created and the funds haven't been received yet.\nThe status changes to `completed` when the funds have been received and the balance of the financial account has been updated.\nThe status changes to `canceled` if the transfer is canceled.\nThe status changes to `failed` if the transfer fails."},"transfer":{"$ref":"#/components/schemas/Transfer","description":"The transfer that carried the funds."},"created_at":{"type":"string","format":"date-time","description":"The date and time the inbound transfer was created"},"updated_at":{"type":"string","format":"date-time","description":"The date and time the inbound transfer was last updated"}},"required":["id","program_id","amount","created_at"],"description":"An inbound transfer represents a transfer of funds from an external bank account to a financial account.","title":"InboundTransfer"},"inboundTransfers_list_Response_200":{"type":"object","properties":{"results":{"type":"array","items":{"$ref":"#/components/schemas/InboundTransfer"}},"next_page_token":{"type":"string","description":"A cursor token to use to retrieve the next page of results by making another API call\n to the same endpoint with the same parameters (only changing the page_token). If\n specified, then more results exist on the server that were not returned, otherwise\n no more results exist on the server."}},"title":"inboundTransfers_list_Response_200"},"inboundTransfers_simulateInboundTransferFailure_Response_202":{"type":"object","properties":{},"description":"Empty response body","title":"inboundTransfers_simulateInboundTransferFailure_Response_202"},"inboundTransfers_simulateInboundTransferCompletion_Response_202":{"type":"object","properties":{},"description":"Empty response body","title":"inboundTransfers_simulateInboundTransferCompletion_Response_202"},"DisbursementStatus":{"type":"string","enum":["pending_approval","canceled","awaiting_verification","rejected","validating_organization","awaiting_account_claim","awaiting_balance","submitted","stopped","completed","failed"],"description":"The lifecycle status of the disbursement.\nPossible values include:\n  - `pending_approval`: The disbursement is awaiting approval from the grantmaker\n  - `canceled`: The disbursement was canceled by the grantmaker\n  - `awaiting_verification`: The disbursement is awaiting verification from Chariot\n  - `rejected`: The disbursement was rejected by Chariot before being submitted\n  - `validating_organization`: Validating recipient organization's payment and contact information before submission.\n  - `awaiting_account_claim`: The disbursement is awaiting account claim by the nonprofit or check delay expiration\n  - `awaiting_balance`: The disbursement is awaiting sufficient grantmaker balance\n  - `submitted`: The disbursement payment has been submitted to the payment network and is being processed\n  - `stopped`: The disbursement payment was stopped after it was submitted\n  - `completed`: The disbursement payment has been completed and funds have been received by the receiving organization\n  - `failed`: The disbursement payment failed or the receiving organization did not receive the payment\n\nTo see a description of each status, see the \"Disbursement Lifecycle\" section of the Chariot documentation.","title":"DisbursementStatus"},"DisbursementCancelation":{"type":"object","properties":{"canceled_by":{"type":"string","description":"If the disbursement was canceled by a user in the dashboard, the email address of that user."},"canceled_at":{"type":"string","format":"date-time","description":"The RFC 3339 date and time at which the Disbursement was canceled."}},"description":"If your account requires approvals for disbursements and the disbursement was not approved, this will contain the details of the cancelation.","title":"DisbursementCancelation"},"DisbursementApproval":{"type":"object","properties":{"approved_by":{"type":"string","description":"If the disbursement was approved by a user in the dashboard, the email address of that user."},"approved_at":{"type":"string","format":"date-time","description":"The RFC 3339 date and time at which the Disbursement was approved."}},"description":"If your account requires approvals for disbursements and the disbursement was approved, this will contain the details of the approval.","title":"DisbursementApproval"},"DisbursementRejectionReason":{"type":"string","enum":["insufficient_funds","incorrect_recipient","suspected_fraud","requested_by_user","acceptance_criteria_failed","duplicate","unknown"],"description":"Why the disbursement was rejected.\nPossible values include:\n  - `insufficient_funds`: The disbursement was rejected because the grantmaker does not have enough funds in their account.\n  - `incorrect_recipient`: The disbursement was rejected because the recipient or address was incorrect.\n  - `suspected_fraud`: The disbursement was suspected to be fraudulent.\n  - `requested_by_user`: The disbursement was rejected at the request of the grantmaker.\n  - `acceptance_criteria_failed`: The disbursement was rejected because the disbursement did not meet the acceptance criteria for the receiving organization.\n  - `duplicate`: The disbursement was rejected because the disbursement was a duplicate.\n  - `unknown`: The disbursement was rejected for an unknown reason.","title":"DisbursementRejectionReason"},"DisbursementRejection":{"type":"object","properties":{"reason":{"$ref":"#/components/schemas/DisbursementRejectionReason","description":"Why the disbursement was rejected.\nPossible values include:\n  - `insufficient_funds`: The disbursement was rejected because the grantmaker does not have enough funds in their account.\n  - `incorrect_recipient`: The disbursement was rejected because the recipient or address was incorrect.\n  - `suspected_fraud`: The disbursement was suspected to be fraudulent.\n  - `requested_by_user`: The disbursement was rejected at the request of the grantmaker.\n  - `acceptance_criteria_failed`: The disbursement was rejected because the disbursement did not meet the acceptance criteria for the receiving organization.\n  - `duplicate`: The disbursement was rejected because the disbursement was a duplicate.\n  - `unknown`: The disbursement was rejected for an unknown reason."},"rejected_at":{"type":"string","format":"date-time","description":"The RFC 3339 date and time at which the Disbursement was rejected."}},"description":"If the disbursement was rejected by Chariot, this will contain details as to why the disbursement was rejected.","title":"DisbursementRejection"},"DisbursementVerification":{"type":"object","properties":{"verified_at":{"type":"string","format":"date-time","description":"The RFC 3339 date and time at which the Disbursement was verified."}},"description":"If the disbursement has been verified by Chariot, this will contain the verification details.","title":"DisbursementVerification"},"DisbursementStop":{"type":"object","properties":{"stopped_by":{"type":"string","description":"If the disbursement was stopped by a user in the dashboard, the email address of that user."},"stopped_at":{"type":"string","format":"date-time","description":"The RFC 3339 date and time at which the Disbursement was stopped."}},"description":"If the disbursement was stopped by the grantmaker after it was submitted, this will contain the details of the stop.","title":"DisbursementStop"},"ProgramDetails":{"type":"object","properties":{"id":{"type":"string","description":"The unique identifier for the program"},"name":{"type":"string","description":"The name of the program"}},"description":"Details about the program that the disbursement belongs to.","title":"ProgramDetails"},"AccountTransferStatus":{"type":"string","enum":["pending_approval","canceled","complete"],"description":"The status of the account transfer","title":"AccountTransferStatus"},"AccountTransfer":{"type":"object","properties":{"transfer_id":{"type":"string","description":"The unique identifier for the account transfer"},"amount":{"type":"integer","format":"int64","description":"The amount of the account transfer in minor currency units (cents)"},"status":{"$ref":"#/components/schemas/AccountTransferStatus","description":"The status of the account transfer"},"created_at":{"type":"string","format":"date-time","description":"The date and time the account transfer was created"},"updated_at":{"type":"string","format":"date-time","description":"The date and time the account transfer was last updated"}},"required":["transfer_id","amount","status","created_at","updated_at"],"description":"An account transfer represents an instant, electronic transfer of funds.","title":"AccountTransfer"},"CheckTransferStatus":{"type":"string","enum":["pending","canceled","issued","rejected","deposited","stopped","returned"],"description":"The lifecycle status of the check.\nThe set of statuses include:\n  - `pending`: The check is pending review by Chariot.\n  - `canceled`: The check has been canceled.\n  - `issued`: The check has been mailed and is pending delivery.\n  - `rejected`: The check was rejected by Chariot.\n  - `deposited`: The check has been deposited by the receiving organization.\n  - `stopped`: A stop payment was requested on the check.\n  - `returned`: The check has been returned by the receiving organization.\n\nTo see a more detailed description of each status and the overall lifecycle of check disbursements,\nsee the \"Transfer Statuses\" section of the Chariot documentation.","title":"CheckTransferStatus"},"PostalAddress":{"type":"object","properties":{"line1":{"type":"string","description":"Address line 1 (e.g. street, PO Box, or company name)"},"line2":{"type":"string","description":"Address line 2 (e.g. apartment, suite, unit, or building)"},"city":{"type":"string","description":"City, district, suburb, town, or village."},"state":{"type":"string","description":"State, county, province, or region"},"postal_code":{"type":"string","description":"ZIP or postal code"},"country":{"type":"string","description":"Two-letter country code (https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)"}},"required":["line1","city","state","postal_code","country"],"description":"A postal address is a mailing address where physical mail can be received.\nPostal addresses can be used to receive paper checks.","title":"PostalAddress"},"PostalTrackingUpdateEventType":{"type":"string","enum":["in_transit","processed_for_delivery","delivered","returned_to_sender"],"description":"The event type of the tracking update.\nThe set of event types include:\n  - `in_transit`: The check has been processed by the origin facility.\n  - `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.\n  - `delivered`: The check has been delivered to the recipient's address.\n  - `returned_to_sender`: The check has been returned to the sender due to barcode, ID tag area, or address errors.","title":"PostalTrackingUpdateEventType"},"PostalTrackingUpdate":{"type":"object","properties":{"id":{"type":"integer","format":"int64","description":"The unique identifier for the tracking update"},"event_type":{"$ref":"#/components/schemas/PostalTrackingUpdateEventType","description":"The event type of the tracking update.\nThe set of event types include:\n  - `in_transit`: The check has been processed by the origin facility.\n  - `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.\n  - `delivered`: The check has been delivered to the recipient's address.\n  - `returned_to_sender`: The check has been returned to the sender due to barcode, ID tag area, or address errors."},"created_at":{"type":"string","format":"date-time","description":"The date and time the tracking update was created"}},"required":["id","event_type","created_at"],"description":"The postal tracking update for the check","title":"PostalTrackingUpdate"},"CheckTransfer":{"type":"object","properties":{"transfer_id":{"type":"string","description":"The unique identifier for the check transfer"},"amount":{"type":"integer","format":"int64","description":"The amount of the check transfer in minor currency units (cents)"},"status":{"$ref":"#/components/schemas/CheckTransferStatus","description":"The lifecycle status of the check.\nThe set of statuses include:\n  - `pending`: The check is pending review by Chariot.\n  - `canceled`: The check has been canceled.\n  - `issued`: The check has been mailed and is pending delivery.\n  - `rejected`: The check was rejected by Chariot.\n  - `deposited`: The check has been deposited by the receiving organization.\n  - `stopped`: A stop payment was requested on the check.\n  - `returned`: The check has been returned by the receiving organization.\n\nTo see a more detailed description of each status and the overall lifecycle of check disbursements,\nsee the \"Transfer Statuses\" section of the Chariot documentation."},"memo":{"type":"string","description":"The memo on the check. Maximum of 72 characters."},"note":{"type":"string","description":"An optional note for the check"},"check_number":{"type":"string","description":"The check number"},"recipient_name":{"type":"string","description":"The name that will be printed on the check."},"mailing_address":{"$ref":"#/components/schemas/PostalAddress"},"bank_of_first_deposit_routing_number":{"type":"string","description":"The routing number for the bank of first deposit"},"postal_tracking_updates":{"type":"array","items":{"$ref":"#/components/schemas/PostalTrackingUpdate"},"description":"The list of tracking updates for the check"},"submitted_at":{"type":"string","format":"date-time","description":"The date and time the check was submitted to the carrier."},"canceled_at":{"type":"string","format":"date-time","description":"The date and time the check was canceled."},"stopped_at":{"type":"string","format":"date-time","description":"The date and time the check was stopped."},"deposited_at":{"type":"string","format":"date-time","description":"The date and time the check was deposited."},"created_at":{"type":"string","format":"date-time","description":"The date and time the check transfer was created"},"updated_at":{"type":"string","format":"date-time","description":"The date and time the check transfer was last updated"}},"required":["transfer_id","amount","status","memo","recipient_name","mailing_address","created_at"],"description":"A check transfer represents a paper check that is mailed to the receiving organization.","title":"CheckTransfer"},"RealTimePaymentsTransferStatus":{"type":"string","enum":["pending_submission","submitted","complete","rejected"],"description":"The status of the real-time payments transfer","title":"RealTimePaymentsTransferStatus"},"RealTimePaymentsTransfer":{"type":"object","properties":{"transfer_id":{"type":"string","description":"The unique identifier for the real-time payments transfer"},"amount":{"type":"integer","format":"int64","description":"The amount of the real-time payments transfer in minor currency units (cents)"},"status":{"$ref":"#/components/schemas/RealTimePaymentsTransferStatus","description":"The status of the real-time payments transfer"},"creditor_name":{"type":"string","description":"The name of the creditor for the real-time payments transfer"},"remittance_information":{"type":"string","description":"The remittance information for the real-time payments transfer"},"transaction_identification":{"type":"string","description":"The transaction identification for the real-time payments transfer"},"submitted_at":{"type":"string","format":"date-time","description":"The date and time the real-time payments transfer was submitted to the payment network."},"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.\nIf the transfer is not acknowledged, this will be null."},"rejected_at":{"type":"string","format":"date-time","description":"The date and time at which the real-time payments transfer was rejected.\nIf the transfer is not rejected, this will be null."},"created_at":{"type":"string","format":"date-time","description":"The date and time the real-time payments transfer was created"},"updated_at":{"type":"string","format":"date-time","description":"The date and time the real-time payments transfer was last updated"}},"required":["transfer_id","amount","status","creditor_name","remittance_information","created_at","updated_at"],"description":"A real-time payments transfer represents an instant, electronic transfer of funds.","title":"RealTimePaymentsTransfer"},"DisbursementTransfer":{"type":"object","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"}},"description":"After a disbursement is submitted, this object contains additional details about the transfer.\nThis is useful if you want to track the disbursement over the specific payment rails/networks.\nAn account transfer is the preferred transfer method when the receiving organization has a Chariot account at the same bank as the grantmaker.\nAn ACH transfer is used when the receiving organization has a Chariot account at a different bank than the grantmaker.\nA check transfer is used when the receiving organization does not have a Chariot account.","title":"DisbursementTransfer"},"DonationType":{"type":"string","enum":["donor_advised_fund_grant","corporate_match"],"description":"The type of donation","title":"DonationType"},"Donor":{"type":"object","properties":{"full_name":{"type":"string","description":"The full name of the donor. Maximum length: 255 characters."},"first_name":{"type":"string","description":"The first name of the donor. Maximum length: 255 characters."},"last_name":{"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: 20 characters."},"address":{"$ref":"#/components/schemas/Address"}},"description":"The donor information for the transaction","title":"Donor"},"TransactionDonors":{"type":"object","properties":{"primary_donor":{"$ref":"#/components/schemas/Donor"},"joint_donor":{"$ref":"#/components/schemas/Donor"}},"description":"Information about the individuals associated with the gift. Includes a primary donor and an optional joint donor.","title":"TransactionDonors"},"TransactionDafGrant":{"type":"object","properties":{"fund_name":{"type":"string","maxLength":255,"description":"The name of the DAF fund that made the grant. Maximum length: 255 characters."}},"description":"A simplified DAF grant object containing the fund name.","title":"TransactionDafGrant"},"TransactionCorporateMatch":{"type":"object","properties":{"company_name":{"type":"string","maxLength":255,"description":"The name of the company making the matching gift. Maximum length: 255 characters."}},"required":["company_name"],"description":"A corporate matching gift. Required when the transaction type is corporate_match.","title":"TransactionCorporateMatch"},"Transaction":{"type":"object","properties":{"id":{"type":"string","description":"The unique identifier for the transaction"},"amount":{"type":"integer","format":"int64","description":"The gross transaction amount in minor currency units (cents) before any fees are deducted.\nThis represents the total amount of the donation.\n"},"internal_transaction_id":{"type":["string","null"],"description":"A unique identifier for the transaction within the grantmaker's internal system."},"fee_amount":{"type":["integer","null"],"format":"int64","description":"The fee amount in minor currency units (cents) to be deducted from the transaction amount.\nThis is an optional field. If not provided, no fee will be deducted.\nThe fee amount must be less than the transaction amount.\n"},"net_amount":{"type":"integer","format":"int64","description":"The net transaction amount in minor currency units (cents) after fees are deducted.\nThis is calculated as: net_amount = amount - fee_amount.\nThis is the actual amount that will be disbursed to the nonprofit.\n"},"type":{"$ref":"#/components/schemas/DonationType"},"purpose":{"type":["string","null"],"description":"The purpose of the grant."},"note":{"type":["string","null"],"description":"A note to the recipient."},"recipient_name":{"type":["string","null"],"description":"The intended recipient of the grant (for example, a fiscal sponsor's project)."},"donors":{"$ref":"#/components/schemas/TransactionDonors"},"daf_grant":{"$ref":"#/components/schemas/TransactionDafGrant"},"corporate_match":{"$ref":"#/components/schemas/TransactionCorporateMatch"},"created_at":{"type":"string","format":"date-time","description":"The date and time the transaction was created"},"updated_at":{"type":"string","format":"date-time","description":"The date and time the transaction was last updated"},"metadata":{"type":"object","additionalProperties":{"type":"string"},"description":"Additional metadata for the transaction"}},"required":["amount","net_amount","type"],"description":"A transaction represents an individual line-item or donation for a recipient nonprofit organization.\nThe transaction amount represents the gross amount, and an optional fee can be deducted to calculate the net amount that will be disbursed.\n","title":"Transaction"},"Disbursement":{"type":"object","properties":{"id":{"type":"string","description":"The unique identifier for the disbursement"},"organization_id":{"type":"string","description":"The unique identifier for the organization that will receive the payment"},"organization":{"$ref":"#/components/schemas/Organization"},"program_id":{"type":"string","description":"The unique identifier for the program that the disbursement belongs to"},"amount":{"type":"integer","format":"int64","description":"The payment amount in USD cents. Must be a positive amount."},"description":{"type":"string","description":"A description for the disbursement"},"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."},"created_at":{"type":"string","format":"date-time","description":"The date and time the disbursement was created"},"updated_at":{"type":"string","format":"date-time","description":"The date and time the disbursement was last updated"},"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","items":{"$ref":"#/components/schemas/DisbursementTransfer"},"description":"The list of transfers for the disbursement.\nThis can have multiple items if the disbursement's underlying payment was retried multiple times.\nFor example, if a check was returned or stopped and the disbursement was retried as an ACH transfer.\nIf the disbursement was not retried, this will have a single item."},"bypass_chariot_organization_verification":{"type":"boolean","description":"Whether the disbursement bypasses Chariot's organization verification.\nWhen true, the disbursement proceeds without waiting for Chariot to verify the organization."},"transactions":{"type":"array","items":{"$ref":"#/components/schemas/Transaction"},"description":"The list of transactions for the disbursement"},"idempotency_key":{"type":"string","description":"The `Idempotency-Key` header value the disbursement was created with. Only set for single-create disbursements; bulk-created disbursements omit this field."}},"required":["id","organization_id","program_id","amount"],"description":"A disbursement moves funds to a verified organization.","title":"Disbursement"},"disbursements_list_Response_200":{"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\n to the same endpoint with the same parameters (only changing the pageToken). If\n specified, then more results exist on the server that were not returned, otherwise\n no more results exist on the server."}},"title":"disbursements_list_Response_200"},"CreateDisbursementInputTransactionsItems":{"type":"object","properties":{"amount":{"type":"integer","format":"int64","description":"The gross transaction amount in minor currency units (cents) before any fees are deducted.\nThis represents the total amount of the donation.\n"},"internal_transaction_id":{"type":"string","maxLength":255,"description":"A unique identifier for the transaction within the grantmaker's internal system. Maximum length: 255 characters."},"fee_amount":{"type":["integer","null"],"format":"int64","description":"Optional fee amount in minor currency units (cents) to be deducted from the transaction.\nIf provided, the fee amount must be less than the transaction amount.\nThe net amount (amount - fee_amount) will be used when calculating the disbursement total.\n"},"type":{"$ref":"#/components/schemas/DonationType"},"purpose":{"type":"string","maxLength":600,"description":"The purpose of the grant. Maximum length: 600 characters."},"note":{"type":"string","maxLength":600,"description":"A note to the recipient. Maximum length: 600 characters."},"recipient_name":{"type":"string","maxLength":255,"description":"The intended recipient of the grant (for example, a fiscal sponsor's project). Maximum length: 255 characters."},"donors":{"$ref":"#/components/schemas/TransactionDonors"},"daf_grant":{"$ref":"#/components/schemas/TransactionDafGrant"},"corporate_match":{"$ref":"#/components/schemas/TransactionCorporateMatch"},"metadata":{"type":"object","additionalProperties":{"type":"string"},"description":"Additional metadata for the transaction"}},"required":["amount","type"],"description":"An individual donation to be included in the disbursement.\n","title":"CreateDisbursementInputTransactionsItems"},"CreateDisbursementInput":{"type":"object","properties":{"organization_id":{"type":"string","description":"The ID of the organization that will receive the disbursement."},"program_id":{"type":["string","null"],"description":"The identifier for the program that the disbursement is associated with.\nThe program must have grant_disbursement_status enabled.\nIf not provided, your grant_disbursement_status enabled program will be used.\nIf your Chariot account has multiple grant_disbursement_status enabled programs, you must specify the program_id to use for the disbursement."},"amount":{"type":"integer","format":"int64","description":"The disbursement amount in USD cents. Must be a positive amount."},"auto_fund":{"type":"boolean","default":false,"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."},"earmark_funding":{"type":"boolean","default":false,"description":"Reserve this disbursement's auto-funded inbound transfer for this disbursement. When true, the funds from the ACH debit Chariot creates for the disbursement are held in your account once the debit settles, so other disbursements and withdrawals can't spend them.\nThe hold is released when the disbursement's first transfer is created, or when the disbursement is canceled or rejected. If the ACH debit fails or is returned, there is nothing to hold and the disbursement draws from your available balance like any other.\nAn earmark never delays the disbursement. If your available balance covers the disbursement before the ACH debit settles, the disbursement is sent from that balance and the hold is released, so the debit's funds go to your available balance when it settles.\nRequires `auto_fund` to be `true`. See [Funding earmarks](/guides/disbursements/disbursement-lifecycle#funding-earmarks)."},"bypass_chariot_organization_verification":{"type":"boolean","default":false,"description":"By default (`false`), the disbursement will remain in the `awaiting_verification` status until\nChariot's compliance team has verified the nonprofit.\nIf set to `true`, the disbursement will proceed through its normal lifecycle without waiting for\nChariot to verify the organization. Only set this if you have independently verified the organization\nand do not want to wait for or rely on Chariot's verification.\nThis field is only relevant when disbursing to an organization that was created via a [verification request](/api/verification-requests/create)."},"transactions":{"type":"array","items":{"$ref":"#/components/schemas/CreateDisbursementInputTransactionsItems"},"description":"The list of transactions associated with the disbursement.\nEach transaction is an individual donation to be included in the disbursement.\nMust specify at least one transaction.\n\nThe sum of all transaction net amounts (amount - fee_amount) must equal the disbursement amount."}},"required":["organization_id","amount","transactions"],"description":"The request to create a disbursement and its corresponding transactions.\nThe organization and amount are required.\nThe transactions array should contain the list of transactions associated with the disbursement. The amounts\nin the transactions should sum up to the disbursement amount.","title":"CreateDisbursementInput"},"disbursements_bulkCreateDisbursements_Response_201":{"type":"object","properties":{"disbursements":{"type":"array","items":{"$ref":"#/components/schemas/Disbursement"}},"count":{"type":"integer","description":"The number of disbursements created"}},"required":["disbursements","count"],"title":"disbursements_bulkCreateDisbursements_Response_201"},"disbursements_bulkApproveDisbursements_Response_200":{"type":"object","properties":{"disbursements":{"type":"array","items":{"$ref":"#/components/schemas/Disbursement"}},"count":{"type":"integer","description":"The number of disbursements approved"}},"required":["disbursements","count"],"title":"disbursements_bulkApproveDisbursements_Response_200"},"StopDisbursementPaymentReason":{"type":"string","enum":["mail_delivery_failure","not_authorized","voided","unknown"],"description":"The reason for stopping a disbursement payment.\nPossible values include:\n  - `mail_delivery_failure`: The check could not be delivered.\n  - `not_authorized`: The check was not authorized.\n  - `voided`: The check was stopped and voided.\n  - `unknown`: The reason for stopping the disbursement payment is unknown.","title":"StopDisbursementPaymentReason"},"disbursements_stopDisbursement_Response_202":{"type":"object","properties":{},"description":"Empty response body","title":"disbursements_stopDisbursement_Response_202"},"disbursements_simulateDisbursementCompletion_Response_202":{"type":"object","properties":{},"description":"Empty response body","title":"disbursements_simulateDisbursementCompletion_Response_202"},"disbursements_simulateDisbursementFailure_Response_202":{"type":"object","properties":{},"description":"Empty response body","title":"disbursements_simulateDisbursementFailure_Response_202"},"VerificationRequestStatus":{"type":"string","enum":["needs_review","verified","failed"],"description":"The status of the verification request.\nPossible values include:\n  - `needs_review`: The request has been submitted and is awaiting review by Chariot's compliance team\n  - `verified`: The organization has been verified as tax-exempt and eligible for disbursements\n  - `failed`: Chariot's compliance team determined the organization is not eligible","title":"VerificationRequestStatus"},"VerificationRequestAddress":{"type":"object","properties":{"line1":{"type":"string","description":"Street address line 1"},"line2":{"type":"string","description":"Street address line 2 (suite, unit, etc.)"},"city":{"type":"string","description":"City"},"state":{"type":"string","description":"Two-letter US state code (e.g. \"CA\", \"NY\")"},"zip_code":{"type":"string","description":"ZIP or postal code"}},"required":["line1","city","state","zip_code"],"description":"A mailing address for the organization being verified.","title":"VerificationRequestAddress"},"VerificationRequest":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the verification request"},"ein":{"type":"string","description":"The EIN of the organization being verified"},"organization_name":{"type":"string","description":"The name of the organization as provided by the grantmaker"},"organization_id":{"type":"string","description":"The ID of the Organization record for the nonprofit being verified."},"status":{"$ref":"#/components/schemas/VerificationRequestStatus"},"website":{"type":"string","description":"The organization's website URL"},"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"},"failed_at":{"type":"string","format":"date-time","description":"When the verification request was rejected"},"created_at":{"type":"string","format":"date-time","description":"When the verification request was created"},"updated_at":{"type":"string","format":"date-time","description":"When the verification request was last updated"}},"required":["id","ein","organization_name","organization_id","status"],"description":"A verification request allows grantmakers to request that Chariot's compliance team verify an unlisted organization,\nenabling disbursements to nonprofits not yet in Chariot's database.","title":"VerificationRequest"},"verificationRequests_list_Response_200":{"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\n to the same endpoint with the same parameters (only changing the page_token). If\n specified, then more results exist on the server that were not returned, otherwise\n no more results exist on the server."}},"title":"verificationRequests_list_Response_200"},"NonprofitAddressSuggestionEntry":{"type":"object","properties":{"ein":{"type":"string","description":"The EIN of the nonprofit this address belongs to. Accepted as\neither nine digits (`123456789`) or `XX-XXXXXXX`."},"line1":{"type":"string","maxLength":255,"description":"Street address."},"line2":{"type":"string","maxLength":255,"description":"Optional suite, apartment, or unit."},"city":{"type":"string","maxLength":255,"description":"City."},"state":{"type":"string","description":"Two-letter US state code (uppercase)."},"zip":{"type":"string","description":"US ZIP code. Five digits, optionally followed by a four-digit extension."}},"required":["ein","line1","city","state","zip"],"description":"A mailing address uploaded for a nonprofit, identified by its EIN.","title":"NonprofitAddressSuggestionEntry"},"nonprofitAddresses_create_Response_200":{"type":"object","properties":{},"description":"Empty response body","title":"nonprofitAddresses_create_Response_200"},"NonprofitContactSuggestionEntry":{"type":"object","properties":{"ein":{"type":"string","description":"The EIN of the nonprofit this contact belongs to. Accepted as\neither nine digits (`123456789`) or `XX-XXXXXXX`."},"email":{"type":"string","maxLength":255,"description":"Email of the contact person at the nonprofit."},"phone":{"type":"string","maxLength":255,"description":"Optional phone number for the contact."},"first_name":{"type":"string","maxLength":255,"description":"Optional first name of the contact."},"last_name":{"type":"string","maxLength":255,"description":"Optional last name of the contact."}},"required":["ein","email"],"description":"A contact uploaded for a nonprofit, identified by its EIN.","title":"NonprofitContactSuggestionEntry"},"nonprofitContacts_create_Response_200":{"type":"object","properties":{},"description":"Empty response body","title":"nonprofitContacts_create_Response_200"},"SourceScope":{"type":"string","enum":["canonical","custom"],"description":"Who owns this source.\n\n- `canonical` — maintained by Chariot and shared across every organization. Read-only.\n- `custom` — created by an organization for its own use, and mutable by that organization.","title":"SourceScope"},"Source":{"type":"object","properties":{"id":{"type":"string","description":"The unique identifier for the source."},"name":{"type":"string","description":"The human-readable name of the source."},"scope":{"$ref":"#/components/schemas/SourceScope","description":"Who owns this source.\n\n- `canonical` — maintained by Chariot and shared across every organization. Read-only.\n- `custom` — created by an organization for its own use, and mutable by that organization."},"logo":{"type":["string","null"],"format":"uri","description":"URL of the source's logo, if one is available."},"created_at":{"type":"string","format":"date-time","description":"When this source was added to the directory."},"updated_at":{"type":"string","format":"date-time","description":"When this source was last modified."}},"required":["id","name","scope","created_at","updated_at"],"description":"A Source is the provider or platform responsible for facilitating a\npayment and providing access to its data (e.g. Fidelity Charitable,\nBenevity). Donations and deposits reference a Source to identify\nwhere the money and data came from.\n\nCanonical sources are maintained by Chariot. Organizations can add\ncustom sources for providers Chariot doesn't yet recognize.","title":"Source"},"V1SourcesGetParametersScope":{"type":"string","enum":["canonical","custom"],"title":"V1SourcesGetParametersScope"},"sources_listSources_Response_200":{"type":"object","properties":{"results":{"type":"array","items":{"$ref":"#/components/schemas/Source"}},"next_page_token":{"type":"string","description":"A cursor token to retrieve the next page of results. If\nspecified, more results exist on the server; otherwise the\nlist has been exhausted."}},"title":"sources_listSources_Response_200"},"V1DepositAddressesPostRequestBodyContentApplicationJsonSchemaType":{"type":"string","enum":["ach"],"description":"The rail this address should receive money over.","title":"V1DepositAddressesPostRequestBodyContentApplicationJsonSchemaType"},"DepositAddressType":{"type":"string","enum":["ach"],"description":"The rail this address receives money over. Determines which\nper-rail subobject is populated on the response.","title":"DepositAddressType"},"DepositAddressAch":{"type":"object","properties":{"account_number":{"type":"string","description":"The account number Chariot minted for this address."},"routing_number":{"type":"string","description":"The ABA routing number."}},"required":["account_number","routing_number"],"description":"ACH account details for a deposit address.","title":"DepositAddressAch"},"DepositAddress":{"type":"object","properties":{"id":{"type":"string","description":"The unique identifier for the deposit address."},"type":{"$ref":"#/components/schemas/DepositAddressType","description":"The rail this address receives money over. Determines which\nper-rail subobject is populated on the response."},"source_id":{"type":"string","description":"The identifier of the [Source](/api-reference/sources) this address belongs to."},"ach":{"$ref":"#/components/schemas/DepositAddressAch","description":"ACH account details. Populated when `type` is `ach`."},"created_at":{"type":"string","format":"date-time","description":"When this deposit address was provisioned."}},"required":["id","type","source_id","created_at"],"description":"A Deposit Address is a set of bank details that receives money into\nyour Chariot Processing account. Each address belongs to a\n[Source](/api-reference/sources), so incoming funds are attributed to\nthat source automatically.","title":"DepositAddress"},"V1DepositAddressesGetParametersType":{"type":"string","enum":["ach"],"title":"V1DepositAddressesGetParametersType"},"deposit_addresses_listDepositAddresses_Response_200":{"type":"object","properties":{"results":{"type":"array","items":{"$ref":"#/components/schemas/DepositAddress"}},"next_page_token":{"type":"string","description":"A cursor token to retrieve the next page of results. If\nspecified, more results exist on the server; otherwise the\nlist has been exhausted."}},"title":"deposit_addresses_listDepositAddresses_Response_200"},"ExchangeRate":{"type":"object","properties":{"target_currency":{"type":"string","description":"The [ISO 4217 code](https://en.wikipedia.org/wiki/ISO_4217) of the currency the rate\nconverts into, usually USD."},"value":{"type":"string","description":"The number of units of `target_currency` equal to one unit of the donation's\n`currency`, as a decimal string."}},"required":["target_currency","value"],"description":"An exchange rate from a donation's currency to a target currency.","title":"ExchangeRate"},"V1DonationsPostRequestBodyContentApplicationJsonSchemaDonationType":{"type":"string","enum":["individual","match","daf","other","unknown"],"description":"The kind of gift.\n\n- `individual`: a gift from an individual donor.\n- `match`: a company's match of an employee's gift.\n- `daf`: a grant from a donor-advised fund.\n- `other`: any other kind of gift.\n- `unknown`: the kind of gift wasn't specified.","title":"V1DonationsPostRequestBodyContentApplicationJsonSchemaDonationType"},"V1DonationsPostRequestBodyContentApplicationJsonSchemaFrequency":{"type":"string","enum":["one_time","recurring","unknown"],"description":"Whether the donor set the gift to repeat.\n\n- `one_time`: the donor gave once.\n- `recurring`: the donor set the gift to repeat.\n- `unknown`: it wasn't specified whether the gift repeats.","title":"V1DonationsPostRequestBodyContentApplicationJsonSchemaFrequency"},"GrantorInput":{"type":"object","properties":{"organization_name":{"type":"string","description":"The legal organization responsible for issuing the grant or payment."},"program_name":{"type":"string","description":"A specific program, initiative, or branded offering associated with the grantor organization\nthrough which the grant or payment is made."}},"description":"The entity responsible for issuing a grant or payment to a recipient.","title":"GrantorInput"},"RecipientInput":{"type":"object","properties":{"primary_name":{"type":"string","description":"The name of the nonprofit recipient, usually its legal name."},"secondary_name":{"type":"string","description":"Another name for the recipient, such as the name it does business as."},"address":{"type":"string","description":"The recipient's address, as a single line."}},"description":"The nonprofit the donation was made out to, as named by the source.","title":"RecipientInput"},"AddressInput":{"type":"object","properties":{"line1":{"type":"string","description":"Street address."},"line2":{"type":"string","description":"Apartment, suite, or unit."},"city":{"type":"string","description":"City."},"state":{"type":"string","description":"State or province."},"postal_code":{"type":"string","description":"Postal or ZIP code."},"country":{"type":"string","description":"Country."}},"description":"A postal address to record on a donation. Every field is optional; supply as much as you know\nso downstream matching and receipting keep working when parts of the address are missing.","title":"AddressInput"},"DonorInput":{"type":"object","properties":{"full_name":{"type":"string","description":"The full name of the donor. Maximum length: 255 characters."},"first_name":{"type":"string","description":"The first name of the donor. Maximum length: 255 characters."},"last_name":{"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: 20 characters."},"address":{"$ref":"#/components/schemas/AddressInput"}},"description":"The donor information for the donation. Provide either `full_name` or the\n`first_name`/`last_name` pair, depending on how the source reports the donor.","title":"DonorInput"},"JointDonorInput":{"type":"object","properties":{"full_name":{"type":"string","description":"The full name of the donor. Maximum length: 255 characters."},"first_name":{"type":"string","description":"The first name of the donor. Maximum length: 255 characters."},"last_name":{"type":"string","description":"The last name of the donor. Maximum length: 255 characters."}},"description":"The name of a second donor jointly credited with a gift. Provide either `full_name` or the\n`first_name`/`last_name` pair.","title":"JointDonorInput"},"V1DonationsPostRequestBodyContentApplicationJsonSchemaAttribution":{"type":"object","properties":{"primary_donor":{"$ref":"#/components/schemas/DonorInput","description":"The primary donor."},"joint_donor":{"$ref":"#/components/schemas/JointDonorInput","description":"A second donor jointly credited with the gift."}},"description":"How the donation is attributed to a donor.","title":"V1DonationsPostRequestBodyContentApplicationJsonSchemaAttribution"},"DonationInitiationInputChannel":{"type":"string","enum":["INTEGRATED","UNINTEGRATED","UNKNOWN"],"description":"The DAFpay integration channel used to initiate the donation.\n- `INTEGRATED` - The donation was initiated through an integrated DAFpay instance where the DAF sponsor\n  processes the grant electronically via the DAFpay network.\n- `UNINTEGRATED` - The donation was initiated through an unintegrated DAFpay flow where the donor\n  completes the grant manually on the DAF sponsor's website (e.g., Luminate Online, standalone embeds).\n- `UNKNOWN` - It wasn't specified how the donation was initiated.","title":"DonationInitiationInputChannel"},"DonationInitiationInput":{"type":"object","properties":{"initiated_at":{"type":"string","format":"date-time","description":"Time when the donation was initiated. Expressed in RFC 3339 format."},"amount_initiated":{"type":"integer","format":"int64","description":"The amount the donor intended to give when they initiated the gift, in minor\nunits of `currency`. This can differ from `amount_gross` if the gift\nchanged before it settled."},"channel":{"$ref":"#/components/schemas/DonationInitiationInputChannel","description":"The DAFpay integration channel used to initiate the donation.\n- `INTEGRATED` - The donation was initiated through an integrated DAFpay instance where the DAF sponsor\n  processes the grant electronically via the DAFpay network.\n- `UNINTEGRATED` - The donation was initiated through an unintegrated DAFpay flow where the donor\n  completes the grant manually on the DAF sponsor's website (e.g., Luminate Online, standalone embeds).\n- `UNKNOWN` - It wasn't specified how the donation was initiated."},"web_location_url":{"type":"string","description":"The URL of the web location where the donation was initiated."},"dafpay_tracking_id":{"type":"string","description":"The tracking ID for the donation as generated by DAFpay."},"form":{"type":"string","description":"The form where the donor initiated the donation."},"identifier":{"type":"string","description":"The initiating platform's own identifier for the donation. Use it to reconcile the\ndonation against records in the platform's system."},"metadata":{"type":"object","additionalProperties":{"type":"string"},"description":"Additional key-value pairs the platform captured when the donation was initiated."}},"description":"Where and how the donor initiated the donation before it reached Chariot.","title":"DonationInitiationInput"},"DafGrantInput":{"type":"object","properties":{"donor_fund_name":{"type":"string","description":"The name of the donor's fund at the Donor Advised Fund sponsor, such as the Doe Family Fund."}},"description":"Details specific to Donor Advised Fund donations.","title":"DafGrantInput"},"CorporateMatchInput":{"type":"object","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."},"source":{"type":"string","description":"The source of the corporate match."}},"description":"Details specific to matched donations.","title":"CorporateMatchInput"},"DonationDonationType":{"type":"string","enum":["individual","match","daf","other","unknown"],"description":"The kind of gift.\n\n- `individual`: a gift from an individual donor.\n- `match`: a company's match of an employee's gift.\n- `daf`: a grant from a donor-advised fund.\n- `other`: any other kind of gift.\n- `unknown`: the source did not report the kind of gift.","title":"DonationDonationType"},"DonationFrequency":{"type":"string","enum":["one_time","recurring","unknown"],"description":"Whether the donor set the gift to repeat.\n\n- `one_time`: the donor gave once.\n- `recurring`: the donor set the gift to repeat.\n- `unknown`: the source did not report whether the gift repeats.","title":"DonationFrequency"},"Grantor":{"type":"object","properties":{"organization_name":{"type":"string","description":"The legal organization responsible for issuing the grant or payment."},"program_name":{"type":"string","description":"A specific program, initiative, or branded offering associated with the grantor organization\nthrough which the grant or payment is made."}},"description":"The entity responsible for issuing a grant or payment to a recipient.","title":"Grantor"},"DonationCreator":{"type":"object","properties":{"name":{"type":"string","description":"The name of the person, integration, or application that created the donation."}},"description":"Who created a donation.","title":"DonationCreator"},"DonationRecipient":{"type":"object","properties":{"primary_name":{"type":"string","description":"The name of the nonprofit recipient, usually its legal name."},"secondary_name":{"type":"string","description":"Another name for the recipient, such as the name it does business as."},"address":{"type":"string","description":"The recipient's address, as a single line."}},"description":"The nonprofit a donation was made out to.","title":"DonationRecipient"},"JointDonor":{"type":"object","properties":{"full_name":{"type":"string","description":"The full name of the donor. Maximum length: 255 characters."},"first_name":{"type":"string","description":"The first name of the donor. Maximum length: 255 characters."},"last_name":{"type":"string","description":"The last name of the donor. Maximum length: 255 characters."}},"description":"The name of a second donor jointly credited with a gift.","title":"JointDonor"},"DonationAttribution":{"type":"object","properties":{"primary_donor":{"$ref":"#/components/schemas/Donor","description":"The primary donor."},"joint_donor":{"$ref":"#/components/schemas/JointDonor","description":"A second donor jointly credited with the gift."}},"description":"How the donation is attributed to a donor.","title":"DonationAttribution"},"PlatformAcceptance":{"type":"object","properties":{"accepted":{"type":"boolean","description":"Whether the grant was accepted from the platform."},"expires_at":{"type":"string","format":"date-time","description":"The date and time when the acceptance of the grant will expire."}},"description":"Information about the acceptance of the grant from the platform.","title":"PlatformAcceptance"},"DonationPlatform":{"type":"object","properties":{"name":{"type":"string","description":"The name of the platform."},"platform_grant_id":{"type":"string","description":"The identifier for the grant within the platform's system."},"metadata":{"type":"object","additionalProperties":{"type":"string"},"description":"Additional key value pairs that were passed to the platform during the donation initiation."},"acceptance":{"$ref":"#/components/schemas/PlatformAcceptance","description":"Information about the acceptance of the grant from the platform.\nThis is only present if the platform requires grant acceptance before disbursing funds."}},"description":"Deprecated. Information about the platform that facilitated the donation.\nEmpty when no platform facilitated the donation.","title":"DonationPlatform","deprecated":true},"DonationInitiationChannel":{"type":"string","enum":["INTEGRATED","UNINTEGRATED","UNKNOWN"],"description":"The DAFpay integration channel used to initiate the donation.\n- `INTEGRATED` - The donation was initiated through an integrated DAFpay instance where the DAF sponsor\n  processes the grant electronically via the DAFpay network.\n- `UNINTEGRATED` - The donation was initiated through an unintegrated DAFpay flow where the donor\n  completes the grant manually on the DAF sponsor's website (e.g., Luminate Online, standalone embeds).\n- `UNKNOWN` - It wasn't specified how the donation was initiated.","title":"DonationInitiationChannel"},"DonationInitiationFrequency":{"type":"string","enum":["ONE_TIME","MONTHLY"],"description":"Deprecated. Use the donation's top-level `frequency`.","title":"DonationInitiationFrequency","deprecated":true},"DonationInitiation":{"type":"object","properties":{"initiated_at":{"type":"string","format":"date-time","description":"Time when the donation was initiated. Expressed in RFC 3339 format."},"amount_initiated":{"type":["integer","null"],"format":"int64","description":"The amount the donor intended to give when they initiated the gift, in minor\nunits of `currency`. This can differ from `amount_gross` if the gift\nchanged before it settled."},"channel":{"$ref":"#/components/schemas/DonationInitiationChannel","description":"The DAFpay integration channel used to initiate the donation.\n- `INTEGRATED` - The donation was initiated through an integrated DAFpay instance where the DAF sponsor\n  processes the grant electronically via the DAFpay network.\n- `UNINTEGRATED` - The donation was initiated through an unintegrated DAFpay flow where the donor\n  completes the grant manually on the DAF sponsor's website (e.g., Luminate Online, standalone embeds).\n- `UNKNOWN` - It wasn't specified how the donation was initiated."},"web_location_url":{"type":"string","description":"The URL of the web location where the donation was initiated."},"dafpay_tracking_id":{"type":"string","description":"The tracking ID for the donation as generated by DAFpay."},"form":{"type":"string","description":"The form where the donor initiated the donation."},"identifier":{"type":"string","description":"The initiating platform's own identifier for the donation. Use it to reconcile the\ndonation against records in the platform's system."},"metadata":{"type":"object","additionalProperties":{"type":"string"},"description":"Additional key-value pairs the platform captured when the donation was initiated."},"frequency":{"$ref":"#/components/schemas/DonationInitiationFrequency","description":"Deprecated. Use the donation's top-level `frequency`.","deprecated":true},"fundraising_platform_name":{"type":"string","description":"Deprecated. Use `initiation.form`.","deprecated":true},"dafpay_form":{"type":"string","description":"Deprecated. Use `initiation.form`.","deprecated":true},"dafpay_metadata":{"type":"object","additionalProperties":{"type":"string"},"description":"Deprecated. Use `initiation.metadata`.","deprecated":true}},"description":"A subhash describing where and how the donation was initiated by the donor before it\nreached Chariot.","title":"DonationInitiation"},"DonationSettlementType":{"type":"string","enum":["chariot","external"],"description":"Where the funds settled.\n\n- `chariot` — the funds arrived through a Chariot deposit. `deposit_id` and `settled_at` apply.\n- `external` — the funds arrived outside Chariot's rails, straight to the recipient.","title":"DonationSettlementType"},"DonationSettlement":{"type":"object","properties":{"type":{"$ref":"#/components/schemas/DonationSettlementType","description":"Where the funds settled.\n\n- `chariot` — the funds arrived through a Chariot deposit. `deposit_id` and `settled_at` apply.\n- `external` — the funds arrived outside Chariot's rails, straight to the recipient."},"received_at":{"type":"string","format":"date-time","description":"When the funds were received by the recipient. Expressed in RFC 3339\nformat."},"settled_at":{"type":"string","format":"date-time","description":"When the funds became available in the recipient's Chariot account.\nOnly set when `type` is `chariot`. Expressed in RFC 3339 format."},"deposit_id":{"type":"string","description":"The identifier of the deposit that carried the funds. Only set when\n`type` is `chariot`."}},"required":["type","received_at"],"description":"How the funds moved from the donor to the recipient.","title":"DonationSettlement"},"DafGrant":{"type":"object","properties":{"donor_fund_name":{"type":"string","description":"The name of the donor's fund at the Donor Advised Fund sponsor, such as the Doe Family Fund."},"sponsor_grant_id":{"type":"string","description":"Deprecated. Use `initiation.identifier`.","deprecated":true},"organization_name":{"type":"string","description":"Deprecated. Use `grantor.organization_name`.","deprecated":true},"program_name":{"type":"string","description":"Deprecated. Use `grantor.program_name`.","deprecated":true}},"description":"Grant details from a Donor-Advised Fund sponsor. The sponsor's name is on\n`grantor.organization_name`.","title":"DafGrant"},"CorporateMatch":{"type":"object","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."},"source":{"type":"string","description":"The source of the corporate match."},"program_name":{"type":"string","description":"Deprecated.","deprecated":true}},"description":"Corporate match details for the donation.","title":"CorporateMatch"},"PropertyAssignment":{"type":"object","properties":{"property_id":{"type":"string","description":"The unique identifier for the property."},"value":{"$ref":"#/components/schemas/PropertyValue"}},"description":"A property assignment is a key-value pair that is associated with a donation.","title":"PropertyAssignment"},"Artifact":{"type":"object","properties":{"id":{"type":"string","description":"Deprecated. The unique identifier for the artifact.","deprecated":true},"name":{"type":"string","description":"The name of the artifact."},"file_id":{"type":"string","description":"The unique identifier for the file that the artifact is associated with."},"created_at":{"type":"string","format":"date-time","description":"The date and time when the artifact was created."}},"description":"An artifact is a source file that was used to create the donation.","title":"Artifact"},"DonationPaymentStatus":{"type":"string","enum":["INCOMING_TO_CHARIOT","INCOMING_OUTSIDE_CHARIOT","RECEIVED_IN_CHARIOT","RECEIVED_OUTSIDE_CHARIOT","CANCELED"],"description":"The payment status of the donation. Indicates the current state of the payment lifecycle.","title":"DonationPaymentStatus"},"Donation":{"type":"object","properties":{"id":{"type":"string","description":"The unique identifier for the donation in Chariot's system."},"external_id":{"type":"string","description":"Identifier provided by the source or granting organization, when present."},"source_id":{"type":"string","description":"The identifier of the [Source](/api-reference/sources) that sent this donation."},"payment_source_id":{"type":"string","description":"Deprecated. Use `source_id`.","deprecated":true},"amount_gross":{"type":"integer","format":"int64","description":"The total amount of the donation in minor units of the currency.\nFor dollars, for example, this is cents."},"amount_net":{"type":"integer","format":"int64","description":"The amount of the donation that the nonprofit will receive after processing fees\nare 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 from the donation in minor units of the currency.\nFor dollars, for example, this is cents."},"individual_gift_amount":{"type":["integer","null"],"format":"int64","description":"The portion of the gross amount contributed directly by the donor."},"currency":{"type":"string","description":"The [ISO 4217 code](https://en.wikipedia.org/wiki/ISO_4217) for every amount on the donation.\nDefaults to USD unless the source reports another currency."},"exchange_rate":{"oneOf":[{"$ref":"#/components/schemas/ExchangeRate"},{"type":"null"}],"description":"The exchange rate used to convert the donation into `target_currency`.\nNull when `currency` is already the target currency, or when no rate was reported."},"donation_type":{"$ref":"#/components/schemas/DonationDonationType","description":"The kind of gift.\n\n- `individual`: a gift from an individual donor.\n- `match`: a company's match of an employee's gift.\n- `daf`: a grant from a donor-advised fund.\n- `other`: any other kind of gift.\n- `unknown`: the source did not report the kind of gift."},"frequency":{"$ref":"#/components/schemas/DonationFrequency","description":"Whether the donor set the gift to repeat.\n\n- `one_time`: the donor gave once.\n- `recurring`: the donor set the gift to repeat.\n- `unknown`: the source did not report whether the gift repeats."},"effective_date":{"type":"string","format":"date-time","description":"The date of the donation, as reported by the source. Expressed in RFC 3339 format."},"grantor":{"$ref":"#/components/schemas/Grantor","description":"The entity responsible for issuing a grant or payment to a recipient."},"created_by":{"$ref":"#/components/schemas/DonationCreator","description":"Who created the donation."},"external_distribution_id":{"type":"string","description":"The platform's identifier for the payout that carried this donation. Platforms\nsuch as Benevity batch many donations into one payout, so several donations can\nshare the same value."},"recipient":{"$ref":"#/components/schemas/DonationRecipient","description":"The nonprofit the donation was made out to, as named by the source."},"purpose":{"type":"string","description":"A description of the donor's intent for the donation.\nThis is useful to understand how the donor intended the donation to be used.\nFor example, \"Where needed most\" or \"General Operating Support\" or \"Specific Campaign\"."},"note":{"type":"string","description":"An informational note from the donor to the nonprofit about the donation.\nThis may contain a message or other useful information that the donor wants to share with the nonprofit."},"attribution":{"$ref":"#/components/schemas/DonationAttribution","description":"How the donation is attributed to a donor."},"platform":{"$ref":"#/components/schemas/DonationPlatform","description":"Deprecated. Information about the platform that facilitated the donation.\nEmpty when no platform facilitated the donation.","deprecated":true},"initiation":{"$ref":"#/components/schemas/DonationInitiation","description":"How and where the donor initiated the gift."},"settlement":{"$ref":"#/components/schemas/DonationSettlement","description":"How the funds are moving from the donor to the recipient."},"donor_advised_fund_grant":{"$ref":"#/components/schemas/DafGrant","description":"Details specific to Donor Advised Fund donations. Empty when the donation did not come\nfrom a DAF provider."},"metadata":{"type":"object","additionalProperties":{"description":"Any type"},"description":"Arbitrary key-value pairs recorded against the donation. Use this for\nreconciliation data, campaign identifiers, or other integration data."},"corporate_match":{"$ref":"#/components/schemas/CorporateMatch","description":"Details specific to matched donations. Empty when no corporate sponsor matched the donation."},"properties":{"type":"array","items":{"$ref":"#/components/schemas/PropertyAssignment"},"description":"A list of custom properties for the donation."},"artifacts":{"type":"array","items":{"$ref":"#/components/schemas/Artifact"},"description":"A list of source artifacts that were used to create the donation.\nThese can include the raw source files (PDFs, CSVs, etc.) that were received from upstream platforms or systems."},"created_at":{"type":"string","format":"date-time","description":"The date and time the donation record was created in Chariot."},"updated_at":{"type":"string","format":"date-time","description":"The date and time when the donation was last updated."},"canceled_at":{"type":["string","null"],"format":"date-time","description":"When the donation was canceled. If set, the donor's payment did not\ncomplete and the recipient did not receive the gift. Expressed in\nRFC 3339 format."},"payment_status":{"$ref":"#/components/schemas/DonationPaymentStatus","description":"The payment status of the donation. Indicates the current state of the payment lifecycle."}},"required":["id","amount_gross","amount_net","amount_fee","currency","created_at"],"description":"A Donation is a gift of money to a nonprofit organization.","title":"Donation"},"donations_list_Response_200":{"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\n to the same endpoint with the same parameters (only changing the pageToken). If\n specified, then more results exist on the server that were not returned, otherwise\n no more results exist on the server."}},"title":"donations_list_Response_200"},"V1DonationsIdPatchRequestBodyContentApplicationJsonSchemaDonationType":{"type":"string","enum":["individual","match","daf","other","unknown"],"description":"The kind of gift.\n\n- `individual`: a gift from an individual donor.\n- `match`: a company's match of an employee's gift.\n- `daf`: a grant from a donor-advised fund.\n- `other`: any other kind of gift.\n- `unknown`: the kind of gift wasn't specified.","title":"V1DonationsIdPatchRequestBodyContentApplicationJsonSchemaDonationType"},"V1DonationsIdPatchRequestBodyContentApplicationJsonSchemaFrequency":{"type":"string","enum":["one_time","recurring","unknown"],"description":"Whether the donor set the gift to repeat.\n\n- `one_time`: the donor gave once.\n- `recurring`: the donor set the gift to repeat.\n- `unknown`: it wasn't specified whether the gift repeats.","title":"V1DonationsIdPatchRequestBodyContentApplicationJsonSchemaFrequency"},"V1DonationsIdPatchRequestBodyContentApplicationJsonSchemaAttribution":{"type":"object","properties":{"primary_donor":{"$ref":"#/components/schemas/DonorInput","description":"The primary donor."},"joint_donor":{"$ref":"#/components/schemas/JointDonorInput","description":"A second donor jointly credited with the gift."}},"description":"How the donation is attributed to a donor.","title":"V1DonationsIdPatchRequestBodyContentApplicationJsonSchemaAttribution"},"V1DepositsGetParametersStatusInSchemaItems":{"type":"string","enum":["pending","complete","failed"],"title":"V1DepositsGetParametersStatusInSchemaItems"},"DepositStatus":{"type":"string","enum":["pending","complete","failed"],"description":"The status of the deposit.","title":"DepositStatus"},"Deposit":{"type":"object","properties":{"id":{"type":"string","description":"The unique identifier for the deposit."},"source_id":{"type":"string","description":"The identifier of the [Source](/api-reference/sources) that sent this deposit."},"payment_source_id":{"type":"string","description":"Deprecated. Use `source_id`.","deprecated":true},"deposit_address_id":{"type":["string","null"],"description":"The identifier of the [Deposit Address](/api-reference/deposit-addresses)\nthat received the funds. Null when the funds didn't arrive through a\ndeposit address, such as a mailed check."},"settled_at":{"type":"string","format":"date-time","description":"The date and time when the deposit was settled."},"returned_at":{"type":"string","format":"date-time","description":"The date and time when the deposit was returned."},"status":{"$ref":"#/components/schemas/DepositStatus","description":"The status of the deposit."},"transfer":{"$ref":"#/components/schemas/Transfer","description":"The transfer that carried the funds."},"donation_count":{"type":"integer","description":"The number of donations reconciled to this deposit. `0` when no\ndonations are reconciled to it."},"properties":{"type":"array","items":{"$ref":"#/components/schemas/PropertyAssignment"},"description":"A list of properties assigned to the deposit."},"created_at":{"type":"string","format":"date-time","description":"The date and time when the deposit was created."},"updated_at":{"type":"string","format":"date-time","description":"The date and time when the deposit was last updated."},"bank_created_at":{"type":"string","format":"date-time","description":"Deprecated. Use `transfer.bank_created_at`.","deprecated":true}},"required":["id","status","transfer","donation_count","created_at","updated_at"],"description":"A single inbound transfer of money into a Chariot Processing account.\nA deposit can point at the [Source](/api-reference/sources) that sent it,\nand can link to one or more [Donations](/api-reference/donations) that\naccount for the funds.","title":"Deposit"},"deposits_list_Response_200":{"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\n to the same endpoint with the same parameters (only changing the pageToken). If\n specified, then more results exist on the server that were not returned, otherwise\n no more results exist on the server."}},"title":"deposits_list_Response_200"},"Lockbox":{"type":"object","properties":{"id":{"type":"string","description":"The unique identifier for the lockbox."},"address":{"$ref":"#/components/schemas/PostalAddress","description":"The physical mailing address for the lockbox."},"created_at":{"type":"string","format":"date-time","description":"The date and time when the lockbox was created."},"updated_at":{"type":"string","format":"date-time","description":"The date and time when the lockbox was last updated."}},"required":["id","created_at"],"description":"A Lockbox represents a physical mailing address operated by a third-party provider (e.g., Stable, CDS)\nthat receives physical mail and scans checks on Chariot's behalf.\nLockboxes are the source of Mail Items, which in turn produce Donations and Deposits.\nLockboxes are provisioned and managed by Chariot in partnership with the provider.","title":"Lockbox"},"lockboxes_list_Response_200":{"type":"object","properties":{"results":{"type":"array","items":{"$ref":"#/components/schemas/Lockbox"}},"next_page_token":{"type":"string","description":"A cursor token to use to retrieve the next page of results by making another API call\n to the same endpoint with the same parameters (only changing the pageToken). If\n specified, then more results exist on the server that were not returned, otherwise\n no more results exist on the server."}},"title":"lockboxes_list_Response_200"},"MailItemStatus":{"type":"string","enum":["processing","needs_review","under_review","processed","rejected"],"description":"The processing status of a Mail Item.\n\n- `processing`: The mail item is being scanned and parsed.\n- `needs_review`: The mail item requires your review.\n- `under_review`: Chariot is reviewing the mail item. No action is required.\n- `processed`: The mail item has been successfully parsed and classified, and is ready for any downstream automations or workflows to run on it.\n- `rejected`: The mail item will not produce a Donation (e.g., return-to-sender, illegible, unrelated correspondence).","title":"MailItemStatus"},"MailItemScan":{"type":"object","properties":{"file_id":{"type":"string","description":"The unique identifier for the scanned document file. Fetch contents via the File API."},"created_at":{"type":"string","format":"date-time","description":"The date and time when the scan was taken."}},"required":["file_id","created_at"],"description":"A single scan of a Mail Item. Multiple entries represent rescans.","title":"MailItemScan"},"MailItem":{"type":"object","properties":{"id":{"type":"string","description":"The unique identifier for the mail item."},"lockbox_id":{"type":"string","description":"The unique identifier for the lockbox that received the mail item."},"status":{"$ref":"#/components/schemas/MailItemStatus"},"received_at":{"type":"string","format":"date-time","description":"The date and time when the mail item was physically received at the lockbox."},"scans":{"type":"array","items":{"$ref":"#/components/schemas/MailItemScan"},"description":"The scans taken of the mail item, newest first. A mail item typically has one scan;\na second scan appears after an admin requests a rescan of the physical mail."},"donation_ids":{"type":"array","items":{"type":"string"},"description":"The identifiers of the [Donations](/api-reference/donations) produced from this mail item."},"deposit_ids":{"type":"array","items":{"type":"string"},"description":"The identifiers of the [Deposits](/api-reference/deposits) produced from this mail item."},"created_at":{"type":"string","format":"date-time","description":"The date and time when the mail item record was created."},"updated_at":{"type":"string","format":"date-time","description":"The date and time when the mail item record was last updated."}},"required":["id","status","received_at","scans","donation_ids","deposit_ids","created_at","updated_at"],"description":"A Mail Item represents a unit of physical mail. It has its own lifecycle and is the\noperational unit that reviewers act on. A Mail Item may produce zero or more Donations\nand zero or more Deposits, and carries the scanned artifacts (envelopes, checks, accompanying\npaperwork) associated with the receipt.\n\nMail Items are created by Chariot when a lockbox provider uploads a batch of scanned mail.\nThey are not created via the public API — to bring donation data and money in directly,\nuse the Donations and Deposits APIs.","title":"MailItem"},"mailItems_list_Response_200":{"type":"object","properties":{"results":{"type":"array","items":{"$ref":"#/components/schemas/MailItem"}},"next_page_token":{"type":"string","description":"A cursor token to use to retrieve the next page of results by making another API call\n to the same endpoint with the same parameters (only changing the pageToken). If\n specified, then more results exist on the server that were not returned, otherwise\n no more results exist on the server."}},"title":"mailItems_list_Response_200"},"mailbox_getUploadUrl_Response_200":{"type":"object","properties":{"url":{"type":"string","description":"The presigned URL to upload the batch ZIP file to via HTTP PUT. Expires after 15 minutes."}},"title":"mailbox_getUploadUrl_Response_200"},"mailbox_fulfillRequest_Response_200":{"type":"object","properties":{},"description":"Empty response body","title":"mailbox_fulfillRequest_Response_200"}},"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer"}}}}