Chariot verificationRequests API
The verificationRequests API from Chariot — 2 operation(s) for verificationrequests.
The verificationRequests API from Chariot — 2 operation(s) for verificationrequests.
openapi: 3.0.0
info:
title: Chariot FDX Accounts verificationRequests API
version: '6.0'
description: Financial Data Exchange (FDX) v6 compatible API for read-only access to Chariot bank account data. Implements the FDX v6 standard for account information, transactions, and statements.
contact:
name: Chariot Development Team
url: https://givechariot.com/contact
email: developers@givechariot.com
servers:
- url: https://api.givechariot.com/fdx/v6
description: Production
- url: https://devapi.givechariot.com/fdx/v6
description: Staging
security:
- oauth2: []
tags:
- name: verificationRequests
paths:
/v1/verification_requests:
post:
summary: Create a verification request
description: 'Request verification of an unlisted organization. If the organization cannot be found through Chariot''s search,
you can submit a verification request so that Chariot''s compliance team can review and verify the organization.
'
operationId: createVerificationRequest
tags:
- verificationRequests
security:
- bearerAuth: []
requestBody:
$ref: '#/components/requestBodies/CreateVerificationRequestRequest'
responses:
'201':
description: The verification request was created
headers:
Location:
$ref: '#/components/headers/Location'
content:
application/json:
schema:
$ref: '#/components/schemas/VerificationRequest'
'400':
$ref: '#/components/responses/BadRequestError'
'401':
$ref: '#/components/responses/AuthenticationError'
'403':
$ref: '#/components/responses/ForbiddenError'
'409':
$ref: '#/components/responses/ConflictError'
'412':
$ref: '#/components/responses/PreconditionFailedError'
get:
summary: List verification requests
description: 'Returns a paginated list of all verification requests for the authenticated grantmaker.
'
operationId: listVerificationRequests
tags:
- verificationRequests
security:
- bearerAuth: []
parameters:
- name: ein
in: query
description: Filter by EIN. If provided, only returns verification requests matching this EIN.
required: false
schema:
type: string
- name: page_limit
in: query
description: Limit the size of the list that is returned. The default (and maximum) is 100 objects.
required: false
schema:
type: integer
format: int32
- name: page_token
in: query
description: A token to use to retrieve the next page of results.
required: false
schema:
type: string
responses:
'200':
$ref: '#/components/responses/ListVerificationRequestsResponse'
'400':
$ref: '#/components/responses/BadRequestError'
'401':
$ref: '#/components/responses/AuthenticationError'
'403':
$ref: '#/components/responses/ForbiddenError'
'500':
$ref: '#/components/responses/InternalServerError'
/v1/verification_requests/{id}:
get:
summary: Get a verification request
description: 'Get a specific verification request by its unique identifier.
'
operationId: getVerificationRequest
tags:
- verificationRequests
security:
- bearerAuth: []
parameters:
- name: id
in: path
description: The unique identifier of the verification request
required: true
schema:
type: string
responses:
'200':
description: The verification request
headers:
X-Request-Id:
$ref: '#/components/headers/X-Request-Id'
content:
application/json:
schema:
$ref: '#/components/schemas/VerificationRequest'
'401':
$ref: '#/components/responses/AuthenticationError'
'403':
$ref: '#/components/responses/ForbiddenError'
'404':
$ref: '#/components/responses/NotFoundError'
'500':
$ref: '#/components/responses/InternalServerError'
components:
responses:
PreconditionFailedError:
description: Precondition Failed
headers:
X-Request-Id:
$ref: '#/components/headers/X-Request-Id'
content:
application/problem+json:
schema:
$ref: '#/components/schemas/ProblemDetails'
examples:
PreconditionFailed:
value:
type: about:blank
title: API Error
status: 412
detail: A precondition for the request was not met.
ListVerificationRequestsResponse:
description: The response for VerificationRequests.list
headers:
X-Request-Id:
$ref: '#/components/headers/X-Request-Id'
content:
application/json:
schema:
type: object
properties:
results:
type: array
items:
$ref: '#/components/schemas/VerificationRequest'
next_page_token:
type: string
description: "A cursor token to use to retrieve the next page of results by making another API call\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."
BadRequestError:
description: The request is invalid or contains invalid parameters
headers:
X-Request-Id:
$ref: '#/components/headers/X-Request-Id'
content:
application/problem+json:
schema:
$ref: '#/components/schemas/ProblemDetails'
examples:
BadRequest:
value:
type: about:blank
title: API Error
status: 400
detail: The request is invalid or contains invalid parameters.
NotFoundError:
description: Resource Not Found
headers:
X-Request-Id:
$ref: '#/components/headers/X-Request-Id'
content:
application/problem+json:
schema:
$ref: '#/components/schemas/ProblemDetails'
examples:
NotFound:
value:
type: about:blank
title: API Error
status: 404
detail: The requested resource was not found.
InternalServerError:
description: Internal Server Error
headers:
X-Request-Id:
$ref: '#/components/headers/X-Request-Id'
content:
application/problem+json:
schema:
$ref: '#/components/schemas/ProblemDetails'
examples:
InternalServerError:
value:
type: about:blank
title: API Error
status: 500
detail: The server encountered an error processing your request.
ConflictError:
description: Resource Conflicts
headers:
X-Request-Id:
$ref: '#/components/headers/X-Request-Id'
content:
application/problem+json:
schema:
$ref: '#/components/schemas/ProblemDetails'
examples:
Conflict:
value:
type: about:blank
title: API Error
status: 409
detail: The request conflicts with the current state of the resource.
ForbiddenError:
description: Access denied
headers:
X-Request-Id:
$ref: '#/components/headers/X-Request-Id'
content:
application/problem+json:
schema:
$ref: '#/components/schemas/ProblemDetails'
examples:
Forbidden:
value:
type: about:blank
title: API Error
status: 403
detail: You do not have permission to access this resource.
AuthenticationError:
description: Unauthorized. The request is missing the security (OAuth2 Bearer token) requirements and the server is unable to verify the identify of the caller.
headers:
X-Request-Id:
$ref: '#/components/headers/X-Request-Id'
content:
application/problem+json:
schema:
$ref: '#/components/schemas/ProblemDetails'
examples:
Unauthorized:
value:
type: about:blank
title: API Error
status: 401
detail: Authentication credentials were missing or invalid.
schemas:
VerificationRequestStatus:
type: string
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"
example: needs_review
enum:
- needs_review
- verified
- failed
VerificationRequest:
type: object
description: 'A verification request allows grantmakers to request that Chariot''s compliance team verify an unlisted organization,
enabling disbursements to nonprofits not yet in Chariot''s database.'
required:
- id
- ein
- organization_name
- organization_id
- status
properties:
id:
type: string
description: Unique identifier for the verification request
example: vr_01jpjen1s23s29kkmnjsb6fzga
readOnly: true
ein:
type: string
description: The EIN of the organization being verified
example: '123456789'
organization_name:
type: string
description: The name of the organization as provided by the grantmaker
example: Local Community Foundation
organization_id:
type: string
description: The ID of the Organization record for the nonprofit being verified.
example: org_01jpjenf5q6cawy43yxfcrxhct
status:
$ref: '#/components/schemas/VerificationRequestStatus'
website:
type: string
description: The organization's website URL
example: https://localfoundation.org
recommended_mailing_address:
$ref: '#/components/schemas/VerificationRequestAddress'
verified_at:
type: string
format: date-time
description: When the organization was verified as tax-exempt and eligible for disbursements
readOnly: true
failed_at:
type: string
format: date-time
description: When the verification request was rejected
readOnly: true
created_at:
type: string
format: date-time
description: When the verification request was created
example: '2020-01-31T23:00:00Z'
readOnly: true
updated_at:
type: string
format: date-time
description: When the verification request was last updated
example: '2020-01-31T23:00:00Z'
readOnly: true
ProblemDetails:
type: object
description: RFC 7807 problem-details error (media type application/problem+json). The `status` field is an integer HTTP status code.
required:
- type
- title
- status
- detail
properties:
type:
type: string
description: A URI reference identifying the problem type.
example: about:blank
title:
type: string
description: A short, human-readable summary of the problem type.
example: API Error
status:
type: integer
description: The HTTP status code for this error.
example: 400
detail:
type: string
description: A human-readable explanation specific to this occurrence.
example: The request is invalid or contains invalid parameters.
example:
type: about:blank
title: API Error
status: 400
detail: The request is invalid or contains invalid parameters.
VerificationRequestAddress:
type: object
description: A mailing address for the organization being verified.
required:
- line1
- city
- state
- zip_code
properties:
line1:
type: string
description: Street address line 1
example: 123 Main St
line2:
type: string
description: Street address line 2 (suite, unit, etc.)
example: Suite 100
city:
type: string
description: City
example: San Francisco
state:
type: string
description: Two-letter US state code (e.g. "CA", "NY")
example: CA
zip_code:
type: string
description: ZIP or postal code
example: '94105'
headers:
X-Request-Id:
description: The unique identifier for the request
schema:
type: string
Location:
description: The URI of the created object
schema:
type: string
requestBodies:
CreateVerificationRequestRequest:
description: The request to create a verification request for an unlisted organization.
required: true
content:
application/json:
schema:
type: object
required:
- ein
- organization_name
- recommended_mailing_address
properties:
ein:
type: string
description: The EIN of the organization to verify
example: '123456789'
organization_name:
type: string
description: The name of the organization as known to the grantmaker
example: Local Community Foundation
website:
type: string
description: The organization's website URL
example: https://localfoundation.org
recommended_mailing_address:
$ref: '#/components/schemas/VerificationRequestAddress'
contact_email:
type: string
description: Contact email for the nonprofit organization.
example: contact@localfoundation.org
securitySchemes:
oauth2:
type: oauth2
description: OAuth 2.0 Bearer token. A client may hold both scopes, but each FDX authorization must contain exactly one — they are mutually exclusive per authorization. An authorization containing both will be rejected. See the Authentication page for token exchange details.
flows:
authorizationCode:
authorizationUrl: https://dashboard.givechariot.com/oauth/authorize
tokenUrl: https://api.givechariot.com/auth/oauth/token
scopes:
read:bank_accounts: Read access to bank account data
sync:connected_accounts: Sync access to connected account data