Bonterra API Endpoints (v1.0)

Download OpenAPI specification:

A Bonterra API Gateway that routes requests to internal Bonterra APIs

Connect

Connect related operations

Users

Users related operations

Get all users

Retrieve a list of all users

Authorizations:
authorizer-lambdaapi_key
query Parameters
page
integer
Default: 1

Page number for pagination

limit
integer
Default: 10

Number of items per page

Responses

Response Schema: application/json
Array of objects (ConnectUser)
object

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "pagination": {
    }
}

Create a new user

Create a new user in the system

Authorizations:
authorizer-lambdaapi_key
Request Body schema: application/json
required
email
required
string <email>

User's email address

firstName
required
string

User's first name

lastName
required
string

User's last name

phoneNumber
string

User's phone number

role
string
Enum: "ADMIN" "USER"

User's role in the system

object

Additional user metadata

password
string <password> >= 8 characters

User's password

status
string
Default: "pending"
Enum: "active" "inactive" "pending"

Initial status of the user

organizationIds
Array of strings <uuid> [ items <uuid > ]

List of organization IDs the user should belong to

Responses

Response Schema: application/json
id
required
string

Unique identifier for the user

email
required
string <email>

User's email address

firstName
required
string

User's first name

lastName
required
string

User's last name

phoneNumber
string

User's phone number

isActive
boolean

Whether the user account is active

isConfirmed
boolean

Whether the user account is confirmed

createdAt
string <date-time>

When the user was created

updatedAt
string <date-time>

When the user was last updated

lastLoginAt
string <date-time>

When the user last logged in

role
string
Enum: "ADMIN" "USER"

User's role in the system

object

Additional user metadata

status
string
Enum: "active" "inactive" "pending"

Current status of the user

Array of objects (ConnectOrganization)

List of organizations the user belongs to

Request samples

Content type
application/json
{
  • "email": "user@example.com",
  • "firstName": "string",
  • "lastName": "string",
  • "phoneNumber": "string",
  • "role": "ADMIN",
  • "metadata": { },
  • "password": "pa$$word",
  • "status": "active",
  • "organizationIds": [
    ]
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "email": "user@example.com",
  • "firstName": "string",
  • "lastName": "string",
  • "phoneNumber": "string",
  • "isActive": true,
  • "isConfirmed": true,
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "lastLoginAt": "2019-08-24T14:15:22Z",
  • "role": "ADMIN",
  • "metadata": { },
  • "status": "active",
  • "organizations": [
    ]
}

Get user by ID

Retrieves a specific user by their ID

Authorizations:
authorizer-lambdaapi_key
path Parameters
userId
required
string

ID of the user to retrieve

Responses

Response Schema: application/json
id
required
string

Unique identifier for the user

email
required
string <email>

User's email address

firstName
required
string

User's first name

lastName
required
string

User's last name

phoneNumber
string

User's phone number

isActive
boolean

Whether the user account is active

isConfirmed
boolean

Whether the user account is confirmed

createdAt
string <date-time>

When the user was created

updatedAt
string <date-time>

When the user was last updated

lastLoginAt
string <date-time>

When the user last logged in

role
string
Enum: "ADMIN" "USER"

User's role in the system

object

Additional user metadata

status
string
Enum: "active" "inactive" "pending"

Current status of the user

Array of objects (ConnectOrganization)

List of organizations the user belongs to

Response samples

Content type
application/json
{
  • "id": "string",
  • "email": "user@example.com",
  • "firstName": "string",
  • "lastName": "string",
  • "phoneNumber": "string",
  • "isActive": true,
  • "isConfirmed": true,
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "lastLoginAt": "2019-08-24T14:15:22Z",
  • "role": "ADMIN",
  • "metadata": { },
  • "status": "active",
  • "organizations": [
    ]
}

Update user

Updates an existing user

Authorizations:
authorizer-lambdaapi_key
path Parameters
userId
required
string

ID of the user to update

Request Body schema: application/json
required
id
required
string

Unique identifier for the user

email
required
string <email>

User's email address

firstName
required
string

User's first name

lastName
required
string

User's last name

phoneNumber
string

User's phone number

isActive
boolean

Whether the user account is active

isConfirmed
boolean

Whether the user account is confirmed

createdAt
string <date-time>

When the user was created

updatedAt
string <date-time>

When the user was last updated

lastLoginAt
string <date-time>

When the user last logged in

role
string
Enum: "ADMIN" "USER"

User's role in the system

object

Additional user metadata

status
string
Enum: "active" "inactive" "pending"

Current status of the user

Array of objects (ConnectOrganization)

List of organizations the user belongs to

Responses

Response Schema: application/json
id
required
string

Unique identifier for the user

email
required
string <email>

User's email address

firstName
required
string

User's first name

lastName
required
string

User's last name

phoneNumber
string

User's phone number

isActive
boolean

Whether the user account is active

isConfirmed
boolean

Whether the user account is confirmed

createdAt
string <date-time>

When the user was created

updatedAt
string <date-time>

When the user was last updated

lastLoginAt
string <date-time>

When the user last logged in

role
string
Enum: "ADMIN" "USER"

User's role in the system

object

Additional user metadata

status
string
Enum: "active" "inactive" "pending"

Current status of the user

Array of objects (ConnectOrganization)

List of organizations the user belongs to

Request samples

Content type
application/json
{
  • "id": "string",
  • "email": "user@example.com",
  • "firstName": "string",
  • "lastName": "string",
  • "phoneNumber": "string",
  • "isActive": true,
  • "isConfirmed": true,
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "lastLoginAt": "2019-08-24T14:15:22Z",
  • "role": "ADMIN",
  • "metadata": { },
  • "status": "active",
  • "organizations": [
    ]
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "email": "user@example.com",
  • "firstName": "string",
  • "lastName": "string",
  • "phoneNumber": "string",
  • "isActive": true,
  • "isConfirmed": true,
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "lastLoginAt": "2019-08-24T14:15:22Z",
  • "role": "ADMIN",
  • "metadata": { },
  • "status": "active",
  • "organizations": [
    ]
}

Get user organizations

Retrieves all organizations associated with a user

Authorizations:
authorizer-lambdaapi_key
path Parameters
userId
required
string

ID of the user

Responses

Response Schema: application/json
Array
id
required
string

Unique identifier for the organization

name
required
string

Name of the organization

description
string

Description of the organization

website
string <uri>

Organization's website URL

email
string <email>

Organization's primary email address

phoneNumber
string

Organization's primary phone number

object
taxId
string

Organization's tax ID/EIN

status
string
Enum: "active" "inactive" "pending"

Current status of the organization

createdAt
string <date-time>

When the organization was created

updatedAt
string <date-time>

When the organization was last updated

object

Additional organization metadata

blocked
boolean
Default: false

Whether the organization is blocked

blockedReason
string or null

Reason for blocking the organization

blockedDate
string or null <date-time>

When the organization was blocked

blockedUserId
string or null <uuid>

ID of the user who blocked the organization

Response samples

Content type
application/json
[
  • {
    }
]

Get user organization details

Retrieves details about a specific organization for a user

Authorizations:
authorizer-lambdaapi_key
path Parameters
userId
required
string

ID of the user

orgId
required
string

ID of the organization

Responses

Response Schema: application/json
id
required
string

Unique identifier for the organization

name
required
string

Name of the organization

description
string

Description of the organization

website
string <uri>

Organization's website URL

email
string <email>

Organization's primary email address

phoneNumber
string

Organization's primary phone number

object
taxId
string

Organization's tax ID/EIN

status
string
Enum: "active" "inactive" "pending"

Current status of the organization

createdAt
string <date-time>

When the organization was created

updatedAt
string <date-time>

When the organization was last updated

object

Additional organization metadata

blocked
boolean
Default: false

Whether the organization is blocked

blockedReason
string or null

Reason for blocking the organization

blockedDate
string or null <date-time>

When the organization was blocked

blockedUserId
string or null <uuid>

ID of the user who blocked the organization

Response samples

Content type
application/json
{
  • "id": "string",
  • "name": "string",
  • "description": "string",
  • "website": "http://example.com",
  • "email": "user@example.com",
  • "phoneNumber": "string",
  • "address": {
    },
  • "taxId": "string",
  • "status": "active",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "metadata": { },
  • "blocked": false,
  • "blockedReason": "string",
  • "blockedDate": "2019-08-24T14:15:22Z",
  • "blockedUserId": "b8281c8b-1895-4f79-9212-2d53e21ed38b"
}

Get user grants

Retrieves all grants associated with a user

Authorizations:
authorizer-lambdaapi_key
path Parameters
userId
required
string

ID of the user

Responses

Response Schema: application/json
Array
id
required
string

Unique identifier for the grant

name
required
string

Name of the grant

description
string

Description of the grant

organizationId
required
string

ID of the organization that owns the grant

amount
number

Grant amount

currency
string

Currency of the grant amount

startDate
string <date>

Start date of the grant

endDate
string <date>

End date of the grant

status
string
Enum: "draft" "open" "closed" "awarded" "completed"

Current status of the grant

type
string
Enum: "general" "project" "research" "emergency"

Type of grant

requirements
Array of strings

List of requirements for the grant

eligibility
Array of strings

List of eligibility criteria

createdAt
string <date-time>

When the grant was created

updatedAt
string <date-time>

When the grant was last updated

object

Additional grant metadata

Response samples

Content type
application/json
[
  • {
    }
]

Get user grant details

Retrieves details about a specific grant for a user

Authorizations:
authorizer-lambdaapi_key
path Parameters
userId
required
string

ID of the user

grantId
required
string

ID of the grant

Responses

Response Schema: application/json
id
required
string

Unique identifier for the grant

name
required
string

Name of the grant

description
string

Description of the grant

organizationId
required
string

ID of the organization that owns the grant

amount
number

Grant amount

currency
string

Currency of the grant amount

startDate
string <date>

Start date of the grant

endDate
string <date>

End date of the grant

status
string
Enum: "draft" "open" "closed" "awarded" "completed"

Current status of the grant

type
string
Enum: "general" "project" "research" "emergency"

Type of grant

requirements
Array of strings

List of requirements for the grant

eligibility
Array of strings

List of eligibility criteria

createdAt
string <date-time>

When the grant was created

updatedAt
string <date-time>

When the grant was last updated

object

Additional grant metadata

Response samples

Content type
application/json
{
  • "id": "string",
  • "name": "string",
  • "description": "string",
  • "organizationId": "string",
  • "amount": 0,
  • "currency": "string",
  • "startDate": "2019-08-24",
  • "endDate": "2019-08-24",
  • "status": "draft",
  • "type": "general",
  • "requirements": [
    ],
  • "eligibility": [
    ],
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "metadata": { }
}

Create a new proposal

Creates a new proposal for a user

Authorizations:
authorizer-lambdaapi_key
path Parameters
userId
required
string

ID of the user

Request Body schema: application/json
required
id
required
string

Unique identifier for the proposal

name
required
string

Name of the proposal

description
string

Description of the proposal

grantId
required
string

ID of the grant this proposal is for

organizationId
required
string

ID of the organization submitting the proposal

requestedAmount
number

Amount requested in the proposal

currency
string

Currency of the requested amount

status
string
Enum: "draft" "submitted" "under_review" "approved" "rejected"

Current status of the proposal

submissionDate
string <date-time>

When the proposal was submitted

reviewDate
string <date-time>

When the proposal was last reviewed

reviewNotes
string

Notes from the review process

Array of objects
createdAt
string <date-time>

When the proposal was created

updatedAt
string <date-time>

When the proposal was last updated

object

Additional proposal metadata

Responses

Response Schema: application/json
Array
id
required
string

Unique identifier for the proposal

name
required
string

Name of the proposal

description
string

Description of the proposal

grantId
required
string

ID of the grant this proposal is for

organizationId
required
string

ID of the organization submitting the proposal

requestedAmount
number

Amount requested in the proposal

currency
string

Currency of the requested amount

status
string
Enum: "draft" "submitted" "under_review" "approved" "rejected"

Current status of the proposal

submissionDate
string <date-time>

When the proposal was submitted

reviewDate
string <date-time>

When the proposal was last reviewed

reviewNotes
string

Notes from the review process

Array of objects
createdAt
string <date-time>

When the proposal was created

updatedAt
string <date-time>

When the proposal was last updated

object

Additional proposal metadata

Request samples

Content type
application/json
{
  • "id": "string",
  • "name": "string",
  • "description": "string",
  • "grantId": "string",
  • "organizationId": "string",
  • "requestedAmount": 0,
  • "currency": "string",
  • "status": "draft",
  • "submissionDate": "2019-08-24T14:15:22Z",
  • "reviewDate": "2019-08-24T14:15:22Z",
  • "reviewNotes": "string",
  • "attachments": [],
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "metadata": { }
}

Response samples

Content type
application/json
[
  • {
    }
]

Get user proposal details

Retrieves details about a specific proposal for a user

Authorizations:
authorizer-lambdaapi_key
path Parameters
userId
required
string

ID of the user

proposalId
required
string

ID of the proposal

Responses

Response Schema: application/json
id
required
string

Unique identifier for the proposal

name
required
string

Name of the proposal

description
string

Description of the proposal

grantId
required
string

ID of the grant this proposal is for

organizationId
required
string

ID of the organization submitting the proposal

requestedAmount
number

Amount requested in the proposal

currency
string

Currency of the requested amount

status
string
Enum: "draft" "submitted" "under_review" "approved" "rejected"

Current status of the proposal

submissionDate
string <date-time>

When the proposal was submitted

reviewDate
string <date-time>

When the proposal was last reviewed

reviewNotes
string

Notes from the review process

Array of objects
createdAt
string <date-time>

When the proposal was created

updatedAt
string <date-time>

When the proposal was last updated

object

Additional proposal metadata

Response samples

Content type
application/json
{
  • "id": "string",
  • "name": "string",
  • "description": "string",
  • "grantId": "string",
  • "organizationId": "string",
  • "requestedAmount": 0,
  • "currency": "string",
  • "status": "draft",
  • "submissionDate": "2019-08-24T14:15:22Z",
  • "reviewDate": "2019-08-24T14:15:22Z",
  • "reviewNotes": "string",
  • "attachments": [],
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "metadata": { }
}

Confirm users

Confirms multiple user accounts

Authorizations:
authorizer-lambdaapi_key
Request Body schema: application/json
required
userIds
required
Array of strings

Array of user IDs to confirm

Responses

Response Schema: application/json
confirmed
Array of strings

Array of successfully confirmed user IDs

failed
Array of strings

Array of user IDs that failed to confirm

Request samples

Content type
application/json
{
  • "userIds": [
    ]
}

Response samples

Content type
application/json
{
  • "confirmed": [
    ],
  • "failed": [
    ]
}

Generate user tokens

Generates authentication tokens for multiple users

Authorizations:
authorizer-lambdaapi_key
query Parameters
userId
required
string

ID of the user

Responses

Response Schema: application/json
Array of objects
failed
Array of strings

Array of user IDs that failed to generate tokens

Response samples

Content type
application/json
{
  • "tokens": [
    ],
  • "failed": [
    ]
}

Migrate users to organization

Migrates multiple users to a target organization

Authorizations:
authorizer-lambdaapi_key
Request Body schema: application/json
required
userIds
required
Array of strings

Array of user IDs to migrate

targetOrgId
required
string

ID of the target organization

sourceOrgId
string

ID of the source organization (optional)

Responses

Response Schema: application/json
migrated
Array of strings

Array of successfully migrated user IDs

failed
Array of strings

Array of user IDs that failed to migrate

Request samples

Content type
application/json
{
  • "userIds": [
    ],
  • "targetOrgId": "string",
  • "sourceOrgId": "string"
}

Response samples

Content type
application/json
{
  • "migrated": [
    ],
  • "failed": [
    ]
}

Get viewer users for specified user's owned organizations

Returns all viewer users for organizations where the specified user is an owner, with optional search and pagination

Authorizations:
authorizer-lambdaapi_key
path Parameters
userId
required
string <uuid>

ID of the user whose viewer users to retrieve

query Parameters
searchTerm
string

Search term to filter users

offset
integer >= 0
Default: 0

Number of results to skip for pagination

limit
integer [ 1 .. 100 ]
Default: 20

Maximum number of results to return

hasPagination
boolean
Default: true

Whether to use pagination

Responses

Response Schema: application/json
required
Array of objects (ConnectViewerUser)

Array of viewer users

totalCount
required
integer >= 0

Total number of items

nextOffset
integer or null

Offset for the next page (null if no more pages)

previousOffset
integer or null

Offset for the previous page (null if on first page)

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "totalCount": 150,
  • "nextOffset": 20,
  • "previousOffset": null
}

Organizations

Organizations related operations

Get all organizations

Retrieve a list of all organizations

Authorizations:
authorizer-lambdaapi_key
query Parameters
page
integer
Default: 1

Page number for pagination

limit
integer
Default: 10

Number of items per page

Responses

Response Schema: application/json
Array of objects (ConnectOrganization)
object

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "pagination": {
    }
}

Get organization by ID

Retrieve a specific organization by its ID

Authorizations:
authorizer-lambdaapi_key
path Parameters
orgId
required
string <uuid>

ID of the organization to retrieve

Responses

Response Schema: application/json
id
required
string

Unique identifier for the organization

name
required
string

Name of the organization

description
string

Description of the organization

website
string <uri>

Organization's website URL

email
string <email>

Organization's primary email address

phoneNumber
string

Organization's primary phone number

object
taxId
string

Organization's tax ID/EIN

status
string
Enum: "active" "inactive" "pending"

Current status of the organization

createdAt
string <date-time>

When the organization was created

updatedAt
string <date-time>

When the organization was last updated

object

Additional organization metadata

blocked
boolean
Default: false

Whether the organization is blocked

blockedReason
string or null

Reason for blocking the organization

blockedDate
string or null <date-time>

When the organization was blocked

blockedUserId
string or null <uuid>

ID of the user who blocked the organization

Response samples

Content type
application/json
{
  • "id": "string",
  • "name": "string",
  • "description": "string",
  • "website": "http://example.com",
  • "email": "user@example.com",
  • "phoneNumber": "string",
  • "address": {
    },
  • "taxId": "string",
  • "status": "active",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "metadata": { },
  • "blocked": false,
  • "blockedReason": "string",
  • "blockedDate": "2019-08-24T14:15:22Z",
  • "blockedUserId": "b8281c8b-1895-4f79-9212-2d53e21ed38b"
}

Update organization

Update an existing organization by its ID

Authorizations:
authorizer-lambdaapi_key
path Parameters
orgId
required
string <uuid>

ID of the organization to update

Request Body schema: application/json
required
name
required
string
status
required
string
Enum: "ACTIVE" "INACTIVE"
description
string

Responses

Response Schema: application/json
id
required
string

Unique identifier for the organization

name
required
string

Name of the organization

description
string

Description of the organization

website
string <uri>

Organization's website URL

email
string <email>

Organization's primary email address

phoneNumber
string

Organization's primary phone number

object
taxId
string

Organization's tax ID/EIN

status
string
Enum: "active" "inactive" "pending"

Current status of the organization

createdAt
string <date-time>

When the organization was created

updatedAt
string <date-time>

When the organization was last updated

object

Additional organization metadata

blocked
boolean
Default: false

Whether the organization is blocked

blockedReason
string or null

Reason for blocking the organization

blockedDate
string or null <date-time>

When the organization was blocked

blockedUserId
string or null <uuid>

ID of the user who blocked the organization

Request samples

Content type
application/json
{
  • "name": "string",
  • "status": "ACTIVE",
  • "description": "string"
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "name": "string",
  • "description": "string",
  • "website": "http://example.com",
  • "email": "user@example.com",
  • "phoneNumber": "string",
  • "address": {
    },
  • "taxId": "string",
  • "status": "active",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "metadata": { },
  • "blocked": false,
  • "blockedReason": "string",
  • "blockedDate": "2019-08-24T14:15:22Z",
  • "blockedUserId": "b8281c8b-1895-4f79-9212-2d53e21ed38b"
}

Update organization location

Update a specific location of an organization

Authorizations:
authorizer-lambdaapi_key
path Parameters
orgId
required
string <uuid>

ID of the organization

orgLocationId
required
string <uuid>

ID of the organization location

Request Body schema: application/json
required
name
required
string
address
required
string
city
required
string
state
required
string
zipCode
required
string
country
required
string
status
required
string
Enum: "ACTIVE" "INACTIVE"

Responses

Response Schema: application/json
id
required
string

Unique identifier for the organization

name
required
string

Name of the organization

Request samples

Content type
application/json
{
  • "name": "string",
  • "address": "string",
  • "city": "string",
  • "state": "string",
  • "zipCode": "string",
  • "country": "string",
  • "status": "ACTIVE"
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "name": "string"
}

Get organization payees

Retrieve all payees associated with an organization

Authorizations:
authorizer-lambdaapi_key
path Parameters
orgId
required
string <uuid>

ID of the organization

query Parameters
page
integer
Default: 1

Page number for pagination

limit
integer
Default: 10

Number of items per page

Responses

Response Schema: application/json
Array of objects (ConnectPayee)
object

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "pagination": {
    }
}

Add payee to organization

Add a new payee to an organization

Authorizations:
authorizer-lambdaapi_key
path Parameters
orgId
required
string <uuid>

ID of the organization

Request Body schema: application/json
required
name
required
string

Name of the payee

type
required
string
Enum: "INDIVIDUAL" "ORGANIZATION"

Type of the payee

email
string <email>

Email address of the payee

phone
string

Phone number of the payee

object
taxId
string

Tax identification number

object
notes
string

Additional notes about the payee

Responses

Response Schema: application/json
id
required
string <uuid>

Unique identifier for the payee

name
required
string

Name of the payee

type
required
string
Enum: "INDIVIDUAL" "ORGANIZATION"

Type of the payee

status
required
string
Enum: "ACTIVE" "INACTIVE"

Current status of the payee

email
string <email>

Email address of the payee

phone
string

Phone number of the payee

object
taxId
string

Tax identification number

notes
string

Additional notes about the payee

createdAt
required
string <date-time>

Timestamp when the payee was created

updatedAt
required
string <date-time>

Timestamp when the payee was last updated

Request samples

Content type
application/json
{
  • "name": "string",
  • "type": "INDIVIDUAL",
  • "email": "user@example.com",
  • "phone": "string",
  • "address": {
    },
  • "taxId": "string",
  • "bankAccount": {
    },
  • "notes": "string"
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "name": "string",
  • "type": "INDIVIDUAL",
  • "status": "ACTIVE",
  • "email": "user@example.com",
  • "phone": "string",
  • "address": {
    },
  • "taxId": "string",
  • "notes": "string",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z"
}

Get organization payee

Retrieve a specific payee from an organization

Authorizations:
authorizer-lambdaapi_key
path Parameters
orgId
required
string <uuid>

ID of the organization

payeeId
required
string <uuid>

ID of the payee

Responses

Response Schema: application/json
id
required
string <uuid>

Unique identifier for the payee

name
required
string

Name of the payee

type
required
string
Enum: "INDIVIDUAL" "ORGANIZATION"

Type of the payee

status
required
string
Enum: "ACTIVE" "INACTIVE"

Current status of the payee

email
string <email>

Email address of the payee

phone
string

Phone number of the payee

object
taxId
string

Tax identification number

notes
string

Additional notes about the payee

createdAt
required
string <date-time>

Timestamp when the payee was created

updatedAt
required
string <date-time>

Timestamp when the payee was last updated

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "name": "string",
  • "type": "INDIVIDUAL",
  • "status": "ACTIVE",
  • "email": "user@example.com",
  • "phone": "string",
  • "address": {
    },
  • "taxId": "string",
  • "notes": "string",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z"
}

Update organization payee

Update a specific payee in an organization

Authorizations:
authorizer-lambdaapi_key
path Parameters
orgId
required
string <uuid>

ID of the organization

payeeId
required
string <uuid>

ID of the payee

Request Body schema: application/json
required
name
string

Name of the payee

type
string
Enum: "INDIVIDUAL" "ORGANIZATION"

Type of the payee

status
string
Enum: "ACTIVE" "INACTIVE"

Current status of the payee

email
string <email>

Email address of the payee

phone
string

Phone number of the payee

object
taxId
string

Tax identification number

object
notes
string

Additional notes about the payee

Responses

Response Schema: application/json
id
required
string <uuid>

Unique identifier for the payee

name
required
string

Name of the payee

type
required
string
Enum: "INDIVIDUAL" "ORGANIZATION"

Type of the payee

status
required
string
Enum: "ACTIVE" "INACTIVE"

Current status of the payee

email
string <email>

Email address of the payee

phone
string

Phone number of the payee

object
taxId
string

Tax identification number

notes
string

Additional notes about the payee

createdAt
required
string <date-time>

Timestamp when the payee was created

updatedAt
required
string <date-time>

Timestamp when the payee was last updated

Request samples

Content type
application/json
{
  • "name": "string",
  • "type": "INDIVIDUAL",
  • "status": "ACTIVE",
  • "email": "user@example.com",
  • "phone": "string",
  • "address": {
    },
  • "taxId": "string",
  • "bankAccount": {
    },
  • "notes": "string"
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "name": "string",
  • "type": "INDIVIDUAL",
  • "status": "ACTIVE",
  • "email": "user@example.com",
  • "phone": "string",
  • "address": {
    },
  • "taxId": "string",
  • "notes": "string",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z"
}

Get unmasked organization payees

Retrieve all payees associated with an organization with unmasked sensitive data

Authorizations:
authorizer-lambdaapi_key
path Parameters
orgId
required
string <uuid>

ID of the organization

query Parameters
page
integer
Default: 1

Page number for pagination

limit
integer
Default: 10

Number of items per page

Responses

Response Schema: application/json
Array of objects (ConnectUnmaskedPayee)
object

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "pagination": {
    }
}

Upload payee verification document

Upload a verification document (check image) for an organization's payee. Only the organization Owner or a Bonterra Staff user can upload verification documents. Supported file types are PDF, JPEG, PNG, and HEIC.

Authorizations:
authorizer-lambdaapi_key
path Parameters
orgId
required
string <uuid>

ID of the organization

Request Body schema: multipart/form-data
required
file
string <binary>

The verification document file (PDF, JPEG, PNG, or HEIC)

Responses

Response Schema: application/json
s3Key
string

The S3 key of the uploaded document

Response samples

Content type
application/json
{
  • "s3Key": "string"
}

Get pending organization payees

Retrieve all organization payees that are in pending status awaiting admin review

Authorizations:
authorizer-lambdaapi_key
query Parameters
offset
integer >= 0
Default: 0

Number of items to skip for pagination

limit
integer [ 1 .. 100 ]
Default: 20

Number of items per page

Responses

Response Schema: application/json
Array of objects (ConnectPayee)
object (ConnectPagination)

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "pagination": {
    }
}

Get organization taxonomies

Retrieve all taxonomies associated with an organization

Authorizations:
authorizer-lambdaapi_key
path Parameters
orgId
required
string <uuid>

ID of the organization

query Parameters
page
integer
Default: 1

Page number for pagination

limit
integer
Default: 10

Number of items per page

Responses

Response Schema: application/json
Array of objects (ConnectTaxonomy)
object

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "pagination": {
    }
}

Add taxonomy to organization

Add a new taxonomy to an organization

Authorizations:
authorizer-lambdaapi_key
path Parameters
orgId
required
string <uuid>

ID of the organization

Request Body schema: application/json
required
name
required
string

Name of the taxonomy

description
required
string

Description of the taxonomy

status
string
Default: "ACTIVE"
Enum: "ACTIVE" "INACTIVE"

Initial status of the taxonomy

parentId
string <uuid>

ID of the parent taxonomy, if this is a sub-taxonomy

metadata
object

Additional metadata for the taxonomy

Responses

Response Schema: application/json
id
required
string <uuid>

Unique identifier for the taxonomy

name
required
string

Name of the taxonomy

description
required
string

Description of the taxonomy

createdAt
required
string <date-time>

Timestamp when the taxonomy was created

updatedAt
required
string <date-time>

Timestamp when the taxonomy was last updated

status
string
Default: "ACTIVE"
Enum: "ACTIVE" "INACTIVE"

Current status of the taxonomy

parentId
string <uuid>

ID of the parent taxonomy, if this is a sub-taxonomy

metadata
object

Additional metadata for the taxonomy

Request samples

Content type
application/json
{
  • "name": "string",
  • "description": "string",
  • "status": "ACTIVE",
  • "parentId": "70850378-7d3c-4f45-91b7-942d4dfbbd43",
  • "metadata": { }
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "name": "string",
  • "description": "string",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "status": "ACTIVE",
  • "parentId": "70850378-7d3c-4f45-91b7-942d4dfbbd43",
  • "metadata": { }
}

Get organization users

Retrieve all users associated with an organization

Authorizations:
authorizer-lambdaapi_key
path Parameters
orgId
required
string <uuid>

ID of the organization

query Parameters
page
integer
Default: 1

Page number for pagination

limit
integer
Default: 10

Number of items per page

Responses

Response Schema: application/json
Array of objects (ConnectUser)
object

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "pagination": {
    }
}

Add user to organization

Add a user to an organization

Authorizations:
authorizer-lambdaapi_key
path Parameters
orgId
required
string <uuid>

ID of the organization

Request Body schema: application/json
required
userId
required
string <uuid>
role
required
string
Enum: "ADMIN" "USER"
permissions
Array of strings

Responses

Response Schema: application/json
id
required
string

Unique identifier for the user

email
required
string <email>

User's email address

firstName
required
string

User's first name

lastName
required
string

User's last name

phoneNumber
string

User's phone number

isActive
boolean

Whether the user account is active

isConfirmed
boolean

Whether the user account is confirmed

createdAt
string <date-time>

When the user was created

updatedAt
string <date-time>

When the user was last updated

lastLoginAt
string <date-time>

When the user last logged in

role
string
Enum: "ADMIN" "USER"

User's role in the system

object

Additional user metadata

status
string
Enum: "active" "inactive" "pending"

Current status of the user

Array of objects (ConnectOrganization)

List of organizations the user belongs to

Request samples

Content type
application/json
{
  • "userId": "2c4a230c-5085-4924-a3e1-25fb4fc5965b",
  • "role": "ADMIN",
  • "permissions": [
    ]
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "email": "user@example.com",
  • "firstName": "string",
  • "lastName": "string",
  • "phoneNumber": "string",
  • "isActive": true,
  • "isConfirmed": true,
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "lastLoginAt": "2019-08-24T14:15:22Z",
  • "role": "ADMIN",
  • "metadata": { },
  • "status": "active",
  • "organizations": [
    ]
}

Update organization user

Update a user's role or permissions within an organization

Authorizations:
authorizer-lambdaapi_key
path Parameters
orgId
required
string <uuid>

ID of the organization

userId
required
string <uuid>

ID of the user

Request Body schema: application/json
required
role
required
string
Enum: "ADMIN" "USER"
permissions
Array of strings
status
required
string
Enum: "ACTIVE" "INACTIVE"

Responses

Response Schema: application/json
id
required
string

Unique identifier for the user

email
required
string <email>

User's email address

firstName
required
string

User's first name

lastName
required
string

User's last name

phoneNumber
string

User's phone number

isActive
boolean

Whether the user account is active

isConfirmed
boolean

Whether the user account is confirmed

createdAt
string <date-time>

When the user was created

updatedAt
string <date-time>

When the user was last updated

lastLoginAt
string <date-time>

When the user last logged in

role
string
Enum: "ADMIN" "USER"

User's role in the system

object

Additional user metadata

status
string
Enum: "active" "inactive" "pending"

Current status of the user

Array of objects (ConnectOrganization)

List of organizations the user belongs to

Request samples

Content type
application/json
{
  • "role": "ADMIN",
  • "permissions": [
    ],
  • "status": "ACTIVE"
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "email": "user@example.com",
  • "firstName": "string",
  • "lastName": "string",
  • "phoneNumber": "string",
  • "isActive": true,
  • "isConfirmed": true,
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "lastLoginAt": "2019-08-24T14:15:22Z",
  • "role": "ADMIN",
  • "metadata": { },
  • "status": "active",
  • "organizations": [
    ]
}

Get pre-signed URL for payee verification document

Generate a pre-signed URL for accessing a payee's verification document (check image). The URL is valid for 5 minutes (300 seconds). Only active payees' documents are accessible. If multiple payees exist, returns the most recently created payee's document.

Authorizations:
authorizer-lambdaapi_key
path Parameters
orgId
required
string <uuid>

ID of the organization whose payee verification document URL is requested

Responses

Response Schema: application/json
signedUrl
string

Pre-signed URL to access the verification document (valid for 5 minutes)

Response samples

Get organization programs

Retrieve all programs associated with an organization

Authorizations:
authorizer-lambdaapi_key
path Parameters
orgId
required
string <uuid>

ID of the organization

query Parameters
hasPagination
boolean
Default: true

Whether to use pagination

offset
integer
Default: 1

Offset for pagination

limit
integer
Default: 10

Number of items per page

Responses

Response Schema: application/json
Array of objects (ConnectProgram)
object

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "pagination": {
    }
}

Create a new program

Creates a new program for an organization

Authorizations:
authorizer-lambdaapi_key
path Parameters
orgId
required
string <uuid>

ID of the organization

Request Body schema: application/json
required

The request body must be a JSON object containing the program data to be created

id
required
string <uuid>

Unique identifier for the program

name
required
string

Name of the program

description
required
string

Description of the program

active
required
boolean

Whether the program is active

Responses

Response Schema: application/json
programId
string <uuid>

Request samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "name": "string",
  • "description": "string",
  • "active": true
}

Response samples

Content type
application/json
{
  • "programId": "bc59f66b-913a-48ec-ae2b-7ee29d7bcfbb"
}

Update a program

Updates a program for an organization

Authorizations:
authorizer-lambdaapi_key
path Parameters
orgId
required
string <uuid>

ID of the organization

programId
required
string <uuid>

ID of the program

Request Body schema: application/json

The request body must be a JSON object containing the program data to be updated

id
required
string <uuid>

Unique identifier for the program

name
required
string

Name of the program

description
required
string

Description of the program

active
required
boolean

Whether the program is active

Responses

Response Schema: application/json
id
required
string <uuid>

Unique identifier for the program

name
required
string

Name of the program

description
required
string

Description of the program

active
required
boolean

Whether the program is active

Request samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "name": "string",
  • "description": "string",
  • "active": true
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "name": "string",
  • "description": "string",
  • "active": true
}

Create organization external ID

Create a new external ID (tax information) for an organization (Bonterra Staff only)

Authorizations:
authorizer-lambdaapi_key
path Parameters
orgId
required
string <uuid>

ID of the organization

Request Body schema: application/json
required
externalTaxInfo
required
string

The external tax ID (EIN/NCES)

taxInfoId
required
integer

Tax information ID from utility.tax_info

defaultExternal
boolean

Set as default tax information for the organization

notes
string

Tax notes

Responses

Response Schema: application/json
string <uuid>

The UUID of the created external ID

Request samples

Content type
application/json
{
  • "externalTaxInfo": "string",
  • "taxInfoId": 0,
  • "defaultExternal": true,
  • "notes": "string"
}

Response samples

Content type
application/json
"497f6eca-6276-4993-bfeb-53cbbbba6f08"

Get organization external ID

Retrieve a specific external ID (tax information) for an organization

Authorizations:
authorizer-lambdaapi_key
path Parameters
orgId
required
string <uuid>

ID of the organization

externalId
required
string <uuid>

ID of the external tax information

Responses

Response Schema: application/json
externalId
string <uuid>
externalTaxInfo
string
taxInfoId
integer
active
boolean

Response samples

Content type
application/json
{
  • "externalId": "3200d382-adfe-4314-ab30-798cdd0fcdb5",
  • "externalTaxInfo": "string",
  • "taxInfoId": 0,
  • "active": true
}

Update organization external ID

Update tax information for an organization (Bonterra Staff only)

Authorizations:
authorizer-lambdaapi_key
path Parameters
orgId
required
string <uuid>

ID of the organization

externalId
required
string <uuid>

ID of the external tax information

Request Body schema: application/json
required
externalTaxInfo
string

The external tax ID (EIN/NCES). Required to prevent soft delete.

manualTaxInfoId
integer or null

Manual override tax status ID from utility.tax_info hierarchy

notes
string

Tax notes

taxInfoId
integer

Tax information ID from utility.tax_info

active
boolean

Set to false to soft-delete the record

Responses

Response Schema: application/json
string

Success message

Request samples

Content type
application/json
{
  • "externalTaxInfo": "string",
  • "manualTaxInfoId": 0,
  • "notes": "string",
  • "taxInfoId": 0,
  • "active": true
}

Response samples

Content type
application/json
"string"

Block organization

Block an organization (Staff only). This prevents the organization from being visible to funders and stops sync to GM1.

Authorizations:
authorizer-lambdaapi_key
path Parameters
orgId
required
string <uuid>

ID of the organization to block

Request Body schema: application/json
required
reason
required
string [ 1 .. 1000 ] characters

Reason for blocking the organization

Responses

Response Schema: application/json
message
required
string

Success message

required
object

Request samples

Content type
application/json
{
  • "reason": "Organization flagged for fraudulent activity based on legal report"
}

Response samples

Content type
application/json
{
  • "message": "Organization blocked successfully",
  • "organization": {
    }
}

Unblock organization

Unblock an organization (Staff only). This restores the organization's visibility to funders and resumes sync to GM1.

Authorizations:
authorizer-lambdaapi_key
path Parameters
orgId
required
string <uuid>

ID of the organization to unblock

Request Body schema: application/json
optional
reason
string <= 1000 characters

Optional reason for unblocking the organization

Responses

Response Schema: application/json
message
required
string

Success message

required
object

Request samples

Content type
application/json
{
  • "reason": "Legal review completed, organization cleared"
}

Response samples

Content type
application/json
{
  • "message": "Organization unblocked successfully",
  • "organization": {
    }
}

Queue organization merge

Queue an organization merge request (Staff only). The source organization will be merged into the destination organization during the nightly batch job at 11 PM EST.

Authorizations:
authorizer-lambdaapi_key
path Parameters
orgId
required
string <uuid>

ID of the destination organization (the organization that will receive all associations)

Request Body schema: application/json
required
sourceOrgId
required
string <uuid>

ID of the source organization (the organization that will be merged and deleted)

Responses

Response Schema: application/json
message
required
string

Success message

required
object

Request samples

Content type
application/json
{
  • "sourceOrgId": "223e4567-e89b-12d3-a456-426614174000"
}

Response samples

Content type
application/json
{
  • "message": "Merge queued for processing during tonight's batch job",
  • "data": {
    }
}

Registrations

Organization ownerhsip registration and verification operations

Get organization registrations

Retrieve a list of organization registration requests

Authorizations:
authorizer-lambdaapi_key
query Parameters
status
string
Enum: "pending" "approved" "rejected"

Filter registrations by status

limit
integer [ 1 .. 100 ]
Default: 20

Number of items per page

offset
integer >= 0
Default: 0

Number of items to skip for pagination

Responses

Response Schema: application/json
Array of objects (ConnectRegistration)
object (ConnectPagination)

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "pagination": {
    }
}

Create organization registration

Submit a new organization registration request

Authorizations:
authorizer-lambdaapi_key
Request Body schema: application/json
required

Registration request data

organizationName
required
string [ 1 .. 255 ] characters

Name of the organization being registered

taxId
string^[0-9]{2}-[0-9]{7}$

Organization's tax identification number

organizationType
required
string
Enum: "nonprofit" "for_profit" "government" "other"

Type of organization

websiteUrl
string <uri>

Organization's website URL

phoneNumber
string

Organization's primary phone number

required
object
description
string <= 1000 characters

Optional description of the organization

missionStatement
string <= 2000 characters

Organization's mission statement

object

Additional organization information

Responses

Response Schema: application/json
id
required
string <uuid>

Unique identifier for the registration request

userOrgId
required
string <uuid>

The unique identifier for the user-organization relationship

organizationName
required
string

Name of the organization being registered

taxId
string^[0-9]{2}-[0-9]{7}$

Organization's tax identification number

organizationType
string
Enum: "nonprofit" "for_profit" "government" "other"

Type of organization

websiteUrl
string <uri>

Organization's website URL

phoneNumber
string

Organization's primary phone number

object
status
required
string
Enum: "pending" "approved" "rejected" "under_review"

Current status of the registration request

object
object
rejectionReason
string

Reason for rejection (if status is rejected)

Array of objects

List of uploaded supporting documents

createdAt
required
string <date-time>

When the registration request was created

updatedAt
required
string <date-time>

When the registration request was last updated

Request samples

Content type
application/json
{
  • "organizationName": "string",
  • "taxId": "12-3456789",
  • "organizationType": "nonprofit",
  • "websiteUrl": "http://example.com",
  • "phoneNumber": "string",
  • "address": {
    },
  • "description": "string",
  • "missionStatement": "string",
  • "additionalInfo": { }
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "userOrgId": "14148439-4e63-414f-8ca8-cf3edd155a4b",
  • "organizationName": "string",
  • "taxId": "12-3456789",
  • "organizationType": "nonprofit",
  • "websiteUrl": "http://example.com",
  • "phoneNumber": "string",
  • "address": {
    },
  • "status": "pending",
  • "submittedBy": {
    },
  • "reviewedBy": {
    },
  • "rejectionReason": "string",
  • "uploadedDocuments": [
    ],
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z"
}

Get organization registration by userOrgId

Retrieve a specific organization registration request by userOrgId

Authorizations:
authorizer-lambdaapi_key
path Parameters
userOrgId
required
string <uuid>

The unique identifier for the user-organization relationship

Responses

Response Schema: application/json
id
required
string <uuid>

Unique identifier for the registration request

userOrgId
required
string <uuid>

The unique identifier for the user-organization relationship

organizationName
required
string

Name of the organization being registered

taxId
string^[0-9]{2}-[0-9]{7}$

Organization's tax identification number

organizationType
string
Enum: "nonprofit" "for_profit" "government" "other"

Type of organization

websiteUrl
string <uri>

Organization's website URL

phoneNumber
string

Organization's primary phone number

object
status
required
string
Enum: "pending" "approved" "rejected" "under_review"

Current status of the registration request

object
object
rejectionReason
string

Reason for rejection (if status is rejected)

Array of objects

List of uploaded supporting documents

createdAt
required
string <date-time>

When the registration request was created

updatedAt
required
string <date-time>

When the registration request was last updated

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "userOrgId": "14148439-4e63-414f-8ca8-cf3edd155a4b",
  • "organizationName": "string",
  • "taxId": "12-3456789",
  • "organizationType": "nonprofit",
  • "websiteUrl": "http://example.com",
  • "phoneNumber": "string",
  • "address": {
    },
  • "status": "pending",
  • "submittedBy": {
    },
  • "reviewedBy": {
    },
  • "rejectionReason": "string",
  • "uploadedDocuments": [
    ],
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z"
}

Update organization registration

Update an existing organization registration request

Authorizations:
authorizer-lambdaapi_key
path Parameters
userOrgId
required
string <uuid>

The unique identifier for the user-organization relationship

query Parameters
action
string
Enum: "approve" "reject"

The action to take on the registration

Request Body schema: application/json
required

Registration update data

status
string
Enum: "pending" "approved" "rejected" "under_review"

Status of the registration request (admin only)

rejectionReason
string

Reason for rejection (admin only, required when status is rejected)

comments
string <= 1000 characters

Optional comments for the registration request (admin only)

Responses

Response Schema: application/json
id
required
string <uuid>

Unique identifier for the registration request

userOrgId
required
string <uuid>

The unique identifier for the user-organization relationship

organizationName
required
string

Name of the organization being registered

taxId
string^[0-9]{2}-[0-9]{7}$

Organization's tax identification number

organizationType
string
Enum: "nonprofit" "for_profit" "government" "other"

Type of organization

websiteUrl
string <uri>

Organization's website URL

phoneNumber
string

Organization's primary phone number

object
status
required
string
Enum: "pending" "approved" "rejected" "under_review"

Current status of the registration request

object
object
rejectionReason
string

Reason for rejection (if status is rejected)

Array of objects

List of uploaded supporting documents

createdAt
required
string <date-time>

When the registration request was created

updatedAt
required
string <date-time>

When the registration request was last updated

Request samples

Content type
application/json
{
  • "status": "pending",
  • "rejectionReason": "string",
  • "comments": "string"
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "userOrgId": "14148439-4e63-414f-8ca8-cf3edd155a4b",
  • "organizationName": "string",
  • "taxId": "12-3456789",
  • "organizationType": "nonprofit",
  • "websiteUrl": "http://example.com",
  • "phoneNumber": "string",
  • "address": {
    },
  • "status": "pending",
  • "submittedBy": {
    },
  • "reviewedBy": {
    },
  • "rejectionReason": "string",
  • "uploadedDocuments": [
    ],
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z"
}

Upload registration documents

Upload supporting documents for organization registration by tax ID

Authorizations:
authorizer-lambdaapi_key
path Parameters
taxId
required
string^[0-9]{2}-[0-9]{7}$
Example: 12-3456789

The organization's tax identification number

Request Body schema: multipart/form-data
required

Registration documents to upload

documents
required
Array of strings <binary> <= 10 items [ items <binary > ]

Array of document files to upload

documentTypes
required
Array of strings
Items Enum: "tax_exemption_certificate" "articles_of_incorporation" "bylaws" "board_resolution" "financial_statement" "other"

Types of documents being uploaded (must match documents array length)

description
string <= 500 characters

Optional description of the uploaded documents

Responses

Response Schema: application/json
message
string
Array of objects

Response samples

Content type
application/json
{
  • "message": "Documents uploaded successfully",
  • "uploadedDocuments": [
    ]
}

Nominations

Organization nomination operations

Get nominations

Retrieve nominations with optional filtering and pagination.

Two modes of operation:

  1. List all nominations (staff only) - use status, limit, offset parameters
  2. Search by Tax ID (public access) - use taxId parameter

When taxId is provided, returns all nominations for that tax ID regardless of other parameters. Public access is allowed for taxId queries to enable duplicate checking during the nomination process.

Authorizations:
authorizer-lambdaapi_key
query Parameters
status
string
Enum: "pending" "approved" "rejected" "under_review"

Filter nominations by status

organizationId
string <uuid>

Filter nominations by organization ID

taxId
string^(\d{2}-\d{7}|\d{9}|[A-Za-z0-9]{7}|[A-Za-z0-9...
Example: taxId=12-3456789

Search for nominations by Tax ID (EIN) or NCES ID. Returns all nominations matching this tax ID (any status).

Supported formats:

  • EIN with hyphen: XX-XXXXXXX (e.g., 12-3456789)
  • EIN without hyphen: XXXXXXXXX (e.g., 123456789)
  • NCES District ID: 7 alphanumeric characters
  • NCES Private School ID: 8 alphanumeric characters
  • NCES Public School ID: 12 alphanumeric characters

Access: Public (does not require staff permissions) Privacy: Sensitive fields (role, comments, document URLs) are only included for nominations created by the requesting user.

Note: When taxId is provided, other query parameters are ignored.

limit
integer [ 1 .. 100 ]
Default: 20

Maximum number of nominations to return

offset
integer >= 0
Default: 0

Number of nominations to skip for pagination

Responses

Response Schema: application/json
Array of objects (ConnectNomination)
object (ConnectPagination)

Response samples

Content type
application/json
{
  • "nominations": [
    ],
  • "pagination": {
    }
}

Create nomination

Create a new organization nomination

Authorizations:
authorizer-lambdaapi_key
Request Body schema: application/json
required

Nomination data to create

organizationName
required
string <= 255 characters

Name of the organization being nominated

organizationTaxId
required
string^[0-9]{2}-[0-9]{7}$

Tax ID/EIN of the organization being nominated

organizationDescription
string <= 1000 characters

Description of the organization

organizationWebsite
string <uri>

Organization's website URL

organizationEmail
string <email>

Organization's primary email address

organizationPhoneNumber
string

Organization's primary phone number

object
notes
string <= 1000 characters

Additional notes about the nomination

object

Additional nomination metadata

Responses

Response Schema: application/json
id
required
string <uuid>

Unique identifier for the nomination

organizationId
required
string <uuid>

ID of the organization being nominated

organizationName
string

Name of the organization being nominated

organizationTaxId
string

Tax ID/EIN of the organization being nominated

status
required
string
Enum: "pending" "approved" "rejected" "under_review"

Current status of the nomination

submittedBy
string <uuid>

ID of the user who submitted the nomination

submittedAt
string <date-time>

When the nomination was submitted

approvedBy
string <uuid>

ID of the user who approved the nomination

approvedAt
string <date-time>

When the nomination was approved

rejectedBy
string <uuid>

ID of the user who rejected the nomination

rejectedAt
string <date-time>

When the nomination was rejected

rejectionReason
string

Reason for rejection if applicable

rejectionReasonId
string <uuid>

ID of the predefined rejection reason

notes
string

Additional notes about the nomination

Array of objects

List of documents associated with the nomination

createdAt
required
string <date-time>

When the nomination was created

updatedAt
string <date-time>

When the nomination was last updated

object

Additional nomination metadata

Request samples

Content type
application/json
{
  • "organizationName": "string",
  • "organizationTaxId": "12-3456789",
  • "organizationDescription": "string",
  • "organizationWebsite": "http://example.com",
  • "organizationEmail": "user@example.com",
  • "organizationPhoneNumber": "string",
  • "organizationAddress": {
    },
  • "notes": "string",
  • "metadata": { }
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
  • "organizationName": "string",
  • "organizationTaxId": "string",
  • "status": "pending",
  • "submittedBy": "a641a425-2470-49a5-92c2-5825c2833a34",
  • "submittedAt": "2019-08-24T14:15:22Z",
  • "approvedBy": "c91bd49a-5920-43a3-b792-1660455e23bf",
  • "approvedAt": "2019-08-24T14:15:22Z",
  • "rejectedBy": "5cb42f49-c6a2-45fc-805c-4333469e59d0",
  • "rejectedAt": "2019-08-24T14:15:22Z",
  • "rejectionReason": "string",
  • "rejectionReasonId": "dca2d751-b22f-4d5a-a83f-688876f3bb97",
  • "notes": "string",
  • "documents": [
    ],
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "metadata": { }
}

Get nomination by ID

Retrieve a specific nomination by its unique identifier

Authorizations:
authorizer-lambdaapi_key
path Parameters
nominationId
required
string <uuid>
Example: 123e4567-e89b-12d3-a456-426614174000

The unique identifier of the nomination

Responses

Response Schema: application/json
id
required
string <uuid>

Unique identifier for the nomination

organizationId
required
string <uuid>

ID of the organization being nominated

organizationName
string

Name of the organization being nominated

organizationTaxId
string

Tax ID/EIN of the organization being nominated

status
required
string
Enum: "pending" "approved" "rejected" "under_review"

Current status of the nomination

submittedBy
string <uuid>

ID of the user who submitted the nomination

submittedAt
string <date-time>

When the nomination was submitted

approvedBy
string <uuid>

ID of the user who approved the nomination

approvedAt
string <date-time>

When the nomination was approved

rejectedBy
string <uuid>

ID of the user who rejected the nomination

rejectedAt
string <date-time>

When the nomination was rejected

rejectionReason
string

Reason for rejection if applicable

rejectionReasonId
string <uuid>

ID of the predefined rejection reason

notes
string

Additional notes about the nomination

Array of objects

List of documents associated with the nomination

createdAt
required
string <date-time>

When the nomination was created

updatedAt
string <date-time>

When the nomination was last updated

object

Additional nomination metadata

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
  • "organizationName": "string",
  • "organizationTaxId": "string",
  • "status": "pending",
  • "submittedBy": "a641a425-2470-49a5-92c2-5825c2833a34",
  • "submittedAt": "2019-08-24T14:15:22Z",
  • "approvedBy": "c91bd49a-5920-43a3-b792-1660455e23bf",
  • "approvedAt": "2019-08-24T14:15:22Z",
  • "rejectedBy": "5cb42f49-c6a2-45fc-805c-4333469e59d0",
  • "rejectedAt": "2019-08-24T14:15:22Z",
  • "rejectionReason": "string",
  • "rejectionReasonId": "dca2d751-b22f-4d5a-a83f-688876f3bb97",
  • "notes": "string",
  • "documents": [
    ],
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "metadata": { }
}

Approve nomination

Approve a pending nomination

Authorizations:
authorizer-lambdaapi_key
path Parameters
nominationId
required
string <uuid>
Example: 123e4567-e89b-12d3-a456-426614174000

The unique identifier of the nomination to approve

Request Body schema: application/json
optional

Approval details

approvedBy
string <uuid>

ID of the user who approved the nomination

approvedAt
string <date-time>

Timestamp when the nomination was approved

approvalNotes
string <= 1000 characters

Optional notes about the approval

nextSteps
string <= 500 characters

Optional next steps after approval

Responses

Response Schema: application/json
id
required
string <uuid>

Unique identifier for the nomination

organizationId
required
string <uuid>

ID of the organization being nominated

organizationName
string

Name of the organization being nominated

organizationTaxId
string

Tax ID/EIN of the organization being nominated

status
required
string
Enum: "pending" "approved" "rejected" "under_review"

Current status of the nomination

submittedBy
string <uuid>

ID of the user who submitted the nomination

submittedAt
string <date-time>

When the nomination was submitted

approvedBy
string <uuid>

ID of the user who approved the nomination

approvedAt
string <date-time>

When the nomination was approved

rejectedBy
string <uuid>

ID of the user who rejected the nomination

rejectedAt
string <date-time>

When the nomination was rejected

rejectionReason
string

Reason for rejection if applicable

rejectionReasonId
string <uuid>

ID of the predefined rejection reason

notes
string

Additional notes about the nomination

Array of objects

List of documents associated with the nomination

createdAt
required
string <date-time>

When the nomination was created

updatedAt
string <date-time>

When the nomination was last updated

object

Additional nomination metadata

Request samples

Content type
application/json
{
  • "approvedBy": "c91bd49a-5920-43a3-b792-1660455e23bf",
  • "approvedAt": "2019-08-24T14:15:22Z",
  • "approvalNotes": "string",
  • "nextSteps": "string"
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
  • "organizationName": "string",
  • "organizationTaxId": "string",
  • "status": "pending",
  • "submittedBy": "a641a425-2470-49a5-92c2-5825c2833a34",
  • "submittedAt": "2019-08-24T14:15:22Z",
  • "approvedBy": "c91bd49a-5920-43a3-b792-1660455e23bf",
  • "approvedAt": "2019-08-24T14:15:22Z",
  • "rejectedBy": "5cb42f49-c6a2-45fc-805c-4333469e59d0",
  • "rejectedAt": "2019-08-24T14:15:22Z",
  • "rejectionReason": "string",
  • "rejectionReasonId": "dca2d751-b22f-4d5a-a83f-688876f3bb97",
  • "notes": "string",
  • "documents": [
    ],
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "metadata": { }
}

Reject nomination

Reject a pending nomination

Authorizations:
authorizer-lambdaapi_key
path Parameters
nominationId
required
string <uuid>
Example: 123e4567-e89b-12d3-a456-426614174000

The unique identifier of the nomination to reject

Request Body schema: application/json
required

Rejection details

rejectedBy
string <uuid>

ID of the user who rejected the nomination

rejectedAt
string <date-time>

Timestamp when the nomination was rejected

rejectionReason
required
string <= 1000 characters

Reason for rejecting the nomination

rejectionReasonId
string <uuid>

ID of the predefined rejection reason

rejectionNotes
string <= 1000 characters

Additional notes about the rejection

nextSteps
string <= 500 characters

Optional next steps after rejection

Responses

Response Schema: application/json
id
required
string <uuid>

Unique identifier for the nomination

organizationId
required
string <uuid>

ID of the organization being nominated

organizationName
string

Name of the organization being nominated

organizationTaxId
string

Tax ID/EIN of the organization being nominated

status
required
string
Enum: "pending" "approved" "rejected" "under_review"

Current status of the nomination

submittedBy
string <uuid>

ID of the user who submitted the nomination

submittedAt
string <date-time>

When the nomination was submitted

approvedBy
string <uuid>

ID of the user who approved the nomination

approvedAt
string <date-time>

When the nomination was approved

rejectedBy
string <uuid>

ID of the user who rejected the nomination

rejectedAt
string <date-time>

When the nomination was rejected

rejectionReason
string

Reason for rejection if applicable

rejectionReasonId
string <uuid>

ID of the predefined rejection reason

notes
string

Additional notes about the nomination

Array of objects

List of documents associated with the nomination

createdAt
required
string <date-time>

When the nomination was created

updatedAt
string <date-time>

When the nomination was last updated

object

Additional nomination metadata

Request samples

Content type
application/json
{
  • "rejectedBy": "5cb42f49-c6a2-45fc-805c-4333469e59d0",
  • "rejectedAt": "2019-08-24T14:15:22Z",
  • "rejectionReason": "string",
  • "rejectionReasonId": "dca2d751-b22f-4d5a-a83f-688876f3bb97",
  • "rejectionNotes": "string",
  • "nextSteps": "string"
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
  • "organizationName": "string",
  • "organizationTaxId": "string",
  • "status": "pending",
  • "submittedBy": "a641a425-2470-49a5-92c2-5825c2833a34",
  • "submittedAt": "2019-08-24T14:15:22Z",
  • "approvedBy": "c91bd49a-5920-43a3-b792-1660455e23bf",
  • "approvedAt": "2019-08-24T14:15:22Z",
  • "rejectedBy": "5cb42f49-c6a2-45fc-805c-4333469e59d0",
  • "rejectedAt": "2019-08-24T14:15:22Z",
  • "rejectionReason": "string",
  • "rejectionReasonId": "dca2d751-b22f-4d5a-a83f-688876f3bb97",
  • "notes": "string",
  • "documents": [
    ],
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "metadata": { }
}

Upload nomination documents

Upload supporting documents for organization nomination by tax ID

Authorizations:
authorizer-lambdaapi_key
path Parameters
taxId
required
string
Example: 12-3456789

The organization's tax identification number

Request Body schema: multipart/form-data
required

Nomination documents to upload

documents
required
Array of strings <binary> <= 10 items [ items <binary > ]

Array of document files to upload

documentTypes
required
Array of strings
Items Enum: "nomination_form" "supporting_documentation" "organization_profile" "impact_statement" "financial_documentation" "other"

Types of documents being uploaded (must match documents array length)

description
string <= 500 characters

Optional description of the uploaded documents

Responses

Response Schema: application/json
message
string
Array of objects

Response samples

Content type
application/json
{
  • "message": "Nomination documents uploaded successfully",
  • "uploadedDocuments": [
    ]
}

Schools

Schools related operations

List schools

Retrieve a list of schools

Authorizations:
authorizer-lambdaapi_key
query Parameters
offset
integer >= 0
Default: 0

Number of items to skip for pagination

limit
integer [ 1 .. 100 ]
Default: 20

Number of items per page

search
string

Search term to filter schools by name, district ID, or school code

state
string

Filter schools by state

Responses

Response Schema: application/json
required
Array of objects (ConnectSchool)

List of schools

totalCount
required
integer

Total number of schools matching the query

nextOffset
integer or null

Offset for the next page of results, null if no more results

previousOffset
integer or null

Offset for the previous page of results, null if on first page

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "totalCount": 0,
  • "nextOffset": 0,
  • "previousOffset": 0
}

Taxonomies

Taxonomies related operations

List taxonomies

Retrieve a list of taxonomies

Authorizations:
authorizer-lambdaapi_key
query Parameters
page
integer
Default: 1

Page number for pagination

limit
integer
Default: 10

Number of items per page

Responses

Response Schema: application/json
required
Array of objects (ConnectTaxonomy)

List of taxonomies

required
object

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "pagination": {
    }
}

Get taxonomy

Retrieve a specific taxonomy by ID

Authorizations:
authorizer-lambdaapi_key
path Parameters
taxonomyId
required
string <uuid>

ID of the taxonomy

Responses

Response Schema: application/json
id
required
string <uuid>

Unique identifier for the taxonomy

name
required
string

Name of the taxonomy

description
required
string

Description of the taxonomy

createdAt
required
string <date-time>

Timestamp when the taxonomy was created

updatedAt
required
string <date-time>

Timestamp when the taxonomy was last updated

status
string
Default: "ACTIVE"
Enum: "ACTIVE" "INACTIVE"

Current status of the taxonomy

parentId
string <uuid>

ID of the parent taxonomy, if this is a sub-taxonomy

metadata
object

Additional metadata for the taxonomy

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "name": "string",
  • "description": "string",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "status": "ACTIVE",
  • "parentId": "70850378-7d3c-4f45-91b7-942d4dfbbd43",
  • "metadata": { }
}

Themes

Themes related operations

List themes

Retrieve a list of themes

Authorizations:
authorizer-lambdaapi_key
query Parameters
page
integer
Default: 1

Page number for pagination

limit
integer
Default: 10

Number of items per page

Responses

Response Schema: application/json
required
Array of objects (ConnectTheme)

List of themes

required
object

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "pagination": {
    }
}

Get theme

Retrieve a specific theme by ID

Authorizations:
authorizer-lambdaapi_key
path Parameters
themeId
required
string <uuid>

ID of the theme

Responses

Response Schema: application/json
id
required
string <uuid>

Unique identifier for the theme

name
required
string

Name of the theme

description
required
string

Description of the theme

createdAt
required
string <date-time>

Timestamp when the theme was created

updatedAt
required
string <date-time>

Timestamp when the theme was last updated

status
string
Default: "ACTIVE"
Enum: "ACTIVE" "INACTIVE"

Current status of the theme

color
string

Color code associated with the theme

icon
string

Icon identifier for the theme

metadata
object

Additional metadata for the theme

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "name": "string",
  • "description": "string",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "status": "ACTIVE",
  • "color": "string",
  • "icon": "string",
  • "metadata": { }
}

Locations

Locations related operations

List locations

Retrieve a list of locations

Authorizations:
authorizer-lambdaapi_key
query Parameters
page
integer
Default: 1

Page number for pagination

limit
integer
Default: 10

Number of items per page

country
string

Filter locations by country

state
string

Filter locations by state/province

Responses

Response Schema: application/json
required
Array of objects (ConnectLocation)

List of locations

required
object

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "pagination": {
    }
}

Get location

Retrieve a specific location by ID

Authorizations:
authorizer-lambdaapi_key
path Parameters
locationId
required
string <uuid>

ID of the location

Responses

Response Schema: application/json
id
required
string <uuid>

Unique identifier for the location

name
required
string

Name of the location

country
required
string

Country of the location

state
string

State/province of the location

city
string

City of the location

postalCode
string

Postal/ZIP code of the location

address
string

Street address of the location

latitude
number <float>

Latitude coordinate of the location

longitude
number <float>

Longitude coordinate of the location

createdAt
required
string <date-time>

Timestamp when the location was created

updatedAt
required
string <date-time>

Timestamp when the location was last updated

status
string
Default: "ACTIVE"
Enum: "ACTIVE" "INACTIVE"

Current status of the location

metadata
object

Additional metadata for the location

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "name": "string",
  • "country": "string",
  • "state": "string",
  • "city": "string",
  • "postalCode": "string",
  • "address": "string",
  • "latitude": 0.1,
  • "longitude": 0.1,
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "status": "ACTIVE",
  • "metadata": { }
}

Feature Flags

Feature flags related operations

List feature flags

Retrieve a list of feature flags

Authorizations:
authorizer-lambdaapi_key
query Parameters
page
integer
Default: 1

Page number for pagination

limit
integer
Default: 10

Number of items per page

status
string
Enum: "ACTIVE" "INACTIVE"

Filter feature flags by status

Responses

Response Schema: application/json
required
Array of objects (ConnectFeatureFlag)

List of feature flags

required
object

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "pagination": {
    }
}

Update feature flag

Update an existing feature flag

Authorizations:
authorizer-lambdaapi_key
query Parameters
featureName
required
string

Name of the feature flag to update

isEnabled
required
boolean

Whether the feature flag is enabled

description
string

Description of the feature flag

Responses

Response Schema: application/json
id
required
string <uuid>

Unique identifier for the feature flag

name
required
string

Name of the feature flag

key
required
string

Unique key for the feature flag

description
string

Description of the feature flag

value
required
boolean

Current value of the feature flag

createdAt
required
string <date-time>

Timestamp when the feature flag was created

updatedAt
required
string <date-time>

Timestamp when the feature flag was last updated

status
string
Default: "ACTIVE"
Enum: "ACTIVE" "INACTIVE"

Current status of the feature flag

metadata
object

Additional metadata for the feature flag

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "name": "string",
  • "key": "string",
  • "description": "string",
  • "value": true,
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "status": "ACTIVE",
  • "metadata": { }
}

Tax Info

Tax info related operations

List tax info

Retrieve a list of tax information

Authorizations:
authorizer-lambdaapi_key
query Parameters
page
integer
Default: 1

Page number for pagination

limit
integer
Default: 10

Number of items per page

status
string
Enum: "ACTIVE" "INACTIVE"

Filter tax info by status

Responses

Response Schema: application/json
required
Array of objects (ConnectTaxInfo)

List of tax info

required
object

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "pagination": {
    }
}

Get tax info

Retrieve specific tax information by ID

Authorizations:
authorizer-lambdaapi_key
path Parameters
taxInfoId
required
string <uuid>

ID of the tax info

Responses

Response Schema: application/json
id
required
string <uuid>
status
required
string
Enum: "ACTIVE" "INACTIVE"
createdAt
required
string <date-time>
updatedAt
required
string <date-time>

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "status": "ACTIVE",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z"
}

Manual Data Aggregation

Manual data aggregation related operations

User

Get a user by ID

Returns a user by their unique identifier.

Authorizations:
authorizer-lambdaapi_key
path Parameters
id
required
string

ID of the user to get

Responses

Response Schema: application/json
id
required
string

Unique identifier for the user

email
required
string <email>

User's email address

firstName
required
string

User's first name

lastName
required
string

User's last name

phoneNumber
string

User's phone number

isActive
boolean

Whether the user account is active

isConfirmed
boolean

Whether the user account is confirmed

createdAt
string <date-time>

When the user was created

updatedAt
string <date-time>

When the user was last updated

lastLoginAt
string <date-time>

When the user last logged in

role
string
Enum: "ADMIN" "USER"

User's role in the system

object

Additional user metadata

status
string
Enum: "active" "inactive" "pending"

Current status of the user

Array of objects (ConnectOrganization)

List of organizations the user belongs to

Response samples

Content type
application/json
{
  • "id": "string",
  • "email": "user@example.com",
  • "firstName": "string",
  • "lastName": "string",
  • "phoneNumber": "string",
  • "isActive": true,
  • "isConfirmed": true,
  • "createdAt": "2019-08-24T14:15:22Z",
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "lastLoginAt": "2019-08-24T14:15:22Z",
  • "role": "ADMIN",
  • "metadata": { },
  • "status": "active",
  • "organizations": [
    ]
}

Payees

Upload payee verification document

Upload a verification document (check image) for an organization's payee. Only the organization Owner or a Bonterra Staff user can upload verification documents. Supported file types are PDF, JPEG, PNG, and HEIC.

Authorizations:
authorizer-lambdaapi_key
path Parameters
orgId
required
string <uuid>

ID of the organization

Request Body schema: multipart/form-data
required
file
string <binary>

The verification document file (PDF, JPEG, PNG, or HEIC)

Responses

Response Schema: application/json
s3Key
string

The S3 key of the uploaded document

Response samples

Content type
application/json
{
  • "s3Key": "string"
}

Get pre-signed URL for payee verification document

Generate a pre-signed URL for accessing a payee's verification document (check image). The URL is valid for 5 minutes (300 seconds). Only active payees' documents are accessible. If multiple payees exist, returns the most recently created payee's document.

Authorizations:
authorizer-lambdaapi_key
path Parameters
orgId
required
string <uuid>

ID of the organization whose payee verification document URL is requested

Responses

Response Schema: application/json
signedUrl
string

Pre-signed URL to access the verification document (valid for 5 minutes)

Response samples

Rejection Reasons

List rejection reasons

Retrieve a list of rejection reasons

Authorizations:
authorizer-lambdaapi_key
query Parameters
offset
integer >= 0
Default: 0

Number of items to skip for pagination

limit
integer [ 1 .. 100 ]
Default: 20

Number of items per page

type
required
string
Enum: "NOMINATION" "PAYEE" "APPLICATION" "VERIFICATION"

Filter rejection reasons by type

Responses

Response Schema: application/json
required
Array of objects (ConnectRejectionReason)

List of rejection reasons

required
object

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "pagination": {
    }
}

Get rejection reason

Retrieve a specific rejection reason by ID

Authorizations:
authorizer-lambdaapi_key
path Parameters
rejectionReasonId
required
string <uuid>

ID of the rejection reason

Responses

Response Schema: application/json
id
required
integer

Unique identifier for the rejection reason

type
required
string
Enum: "NOMINATION" "PAYEE" "APPLICATION" "VERIFICATION"

Type of rejection reason

code
required
string

Code identifier for the rejection reason

description
required
string

Detailed description of the rejection reason

active
required
boolean

Whether the rejection reason is active

createDate
required
string <date-time>

Timestamp when the rejection reason was created

changeDate
required
string <date-time>

Timestamp when the rejection reason was last updated

Response samples

Content type
application/json
{
  • "id": 0,
  • "type": "NOMINATION",
  • "code": "string",
  • "description": "string",
  • "active": true,
  • "createDate": "2019-08-24T14:15:22Z",
  • "changeDate": "2019-08-24T14:15:22Z"
}

Data Aggregation

Trigger manual data aggregation

Manually trigger the data aggregation process for specified data types within a given date range. This endpoint initiates an asynchronous aggregation job that can be tracked using the returned job ID.

Authorizations:
authorizer-lambdaapi_key
Request Body schema: application/json
required
dataType
required
string
Enum: "GRANTS" "ORGANIZATIONS" "USERS"

Type of data to aggregate

startDate
required
string <date>

Start date for data aggregation period (inclusive)

endDate
required
string <date>

End date for data aggregation period (inclusive)

object

Additional filters to apply during aggregation

object

Additional options for the aggregation process

Responses

Request samples

Content type
application/json
{
  • "dataType": "GRANTS",
  • "startDate": "2024-01-01",
  • "endDate": "2024-03-31",
  • "filters": {
    },
  • "options": {
    }
}

Response samples

Content type
application/json
{
  • "jobId": "123e4567-e89b-12d3-a456-426614174002",
  • "status": "PENDING",
  • "dataType": "GRANTS",
  • "startDate": "2024-01-01",
  • "endDate": "2024-03-31",
  • "createdAt": "2024-03-20T10:30:00Z",
  • "estimatedCompletionTime": "2024-03-20T10:35:00Z",
  • "progress": 0,
  • "filters": {
    },
  • "options": {
    }
}

Staff Documents

Get signed URL for staff document access

Staff-only endpoint to get a signed URL for accessing a document in S3

Authorizations:
authorizer-lambdaapi_key
path Parameters
s3Key
required
string

The S3 key of the document to access

Responses

Response Schema: application/json
signedUrl
required
string

Pre-signed URL for accessing the document

Response samples

Content type
application/json