Communities
Group pots with roles, campaigns and multi-signature payouts. About communities Live
- GET
/communityList communities - POST
/communityCreate a community - DELETE
/community/{reference}Close a community - GET
/community/{reference}Fetch a community - PUT
/community/{reference}Update a community - GET
/community/{reference}/accountList a community's accounts - POST
/community/{reference}/accountOpen a community account - GET
/community/{reference}/account/{currencyCode}/statementFetch a community account statement - POST
/community/{reference}/activateActivate a community - GET
/community/{reference}/campaignList a community's campaigns - POST
/community/{reference}/campaignCreate a funding campaign - GET
/community/{reference}/campaign/{campaignReference}Fetch a campaign - POST
/community/{reference}/campaign/{campaignReference}/approveApprove a campaign release - PUT
/community/{reference}/campaign/{campaignReference}/assignmentAssign campaign shares - POST
/community/{reference}/campaign/{campaignReference}/assignment/{membershipReference}/waiveWaive a member's share - POST
/community/{reference}/campaign/{campaignReference}/cancelCancel a campaign - POST
/community/{reference}/campaign/{campaignReference}/contributionContribute to a campaign - POST
/community/{reference}/campaign/{campaignReference}/openOpen a campaign for contributions - POST
/community/{reference}/campaign/{campaignReference}/rejectReject a campaign release - POST
/community/{reference}/campaign/{campaignReference}/releaseRequest release of campaign funds - GET
/community/{reference}/childrenList a community's sub-communities - POST
/community/{reference}/contributionContribute to a community pot - GET
/community/{reference}/invitationList a community's invitations - POST
/community/{reference}/invitationInvite someone to join - DELETE
/community/{reference}/invitation/{invitationReference}Revoke an invitation - GET
/community/{reference}/join-requestList pending join requests - POST
/community/{reference}/join-requestApply to join a community - DELETE
/community/{reference}/join-request/{joinRequestReference}Withdraw a join request - POST
/community/{reference}/join-request/{joinRequestReference}/approveApprove a join request - POST
/community/{reference}/join-request/{joinRequestReference}/rejectReject a join request - POST
/community/{reference}/leaveLeave a community - GET
/community/{reference}/memberList a community's members - POST
/community/{reference}/memberAdd a member - DELETE
/community/{reference}/member/{membershipReference}Remove a member - GET
/community/{reference}/member/{membershipReference}Fetch one member - POST
/community/{reference}/member/{membershipReference}/reinstateReinstate a suspended member - PUT
/community/{reference}/member/{membershipReference}/roleChange a member's role - POST
/community/{reference}/member/{membershipReference}/suspendSuspend a member - POST
/community/{reference}/ownerTransfer ownership - GET
/community/{reference}/payoutList a community's payouts - POST
/community/{reference}/payoutRequest a payout from the pot - POST
/community/{reference}/payout/{payoutReference}/approveApprove a payout - POST
/community/{reference}/payout/{payoutReference}/rejectReject a payout - GET
/community/{reference}/roleList a community's roles - POST
/community/{reference}/roleCreate a role in a community - DELETE
/community/{reference}/role/{roleReference}Delete a community's role - PUT
/community/{reference}/role/{roleReference}Update a community's role - GET
/invitation/{code}Preview an invitation - POST
/invitation/{code}/acceptAccept an invitation - POST
/invitation/{code}/declineDecline an invitation - GET
/membershipList the caller's own memberships
GET List communities
GET /community
Lists the communities visible to the caller.
Headers
| Name | Notes |
|---|---|
Authorization | Bearer token |
X-Tenant | Your tenant |
X-Environment | test or live |
Query parameters
| Name | Default |
|---|---|
status | Optional |
pageNumber | Optional |
pageSize | Optional |
Example
Response: List<CommunityResponse>
curl -X GET "https://api.bridgemoni.com/community?status=value&pageNumber=value&pageSize=value" \
-H "Authorization: Bearer $BRIDGEMONI_TOKEN" \
-H "X-Tenant: $BRIDGEMONI_TENANT" \
-H "X-Environment: $BRIDGEMONI_ENV" {
"data": [
{
"reference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"name": "text",
"description": "text",
"category": "text",
"status": "DRAFT",
"visibility": "PUBLIC",
"joinPolicy": "OPEN",
"parentCommunityReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"depth": 1,
"owner": {
"userReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"maskedName": "text",
"displayName": "text",
"roleName": "text"
},
"memberCount": 1,
"maximumMembers": 1,
"countryCode": "text",
"defaultCurrencyCode": "text",
"payoutApprovalsRequired": 1,
"allowDirectAdd": true,
"callerPermissions": [
"COMMUNITY_VIEW"
],
"accounts": [
{
"...": "nested"
}
],
"activatedAt": "2027-03-14T14:30:01",
"suspendedAt": "2027-03-14T14:30:01",
"suspensionReason": "text",
"closedAt": "2027-03-14T14:30:01",
"closureReason": "text",
"creationDateTime": "2027-03-14T14:30:01"
}
],
"description": "List communities"
} Responses
| Status | When |
|---|---|
200 | Communities fetched successfully |
POST Create a community
POST /community
Creates a community - a real-world group that holds money collectively. It starts inactive and must be activated before it can accept members or open accounts.
Headers
| Name | Notes |
|---|---|
Authorization | Bearer token |
X-Tenant | Your tenant |
X-Environment | test or live |
Content-Type | application/json |
Example
Request body: CommunityRequest · Response: CommunityResponse
curl -X POST "https://api.bridgemoni.com/community" \
-H "Authorization: Bearer $BRIDGEMONI_TOKEN" \
-H "X-Tenant: $BRIDGEMONI_TENANT" \
-H "X-Environment: $BRIDGEMONI_ENV" \
-H "Content-Type: application/json" \
-d '{
"name": "Ada Obi",
"description": "March payroll",
"category": "text",
"visibility": "PUBLIC",
"joinPolicy": "OPEN",
"parentCommunityReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"countryCode": "NG",
"defaultCurrencyCode": "NGN",
"maximumMembers": 1,
"payoutApprovalsRequired": 1
}' {
"name": "Ada Obi",
"description": "March payroll",
"category": "text",
"visibility": "PUBLIC",
"joinPolicy": "OPEN",
"parentCommunityReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"countryCode": "NG",
"defaultCurrencyCode": "NGN",
"maximumMembers": 1,
"payoutApprovalsRequired": 1
} {
"data": {
"reference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"name": "text",
"description": "text",
"category": "text",
"status": "DRAFT",
"visibility": "PUBLIC",
"joinPolicy": "OPEN",
"parentCommunityReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"depth": 1,
"owner": {
"userReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"maskedName": "text",
"displayName": "text",
"roleName": "text"
},
"memberCount": 1,
"maximumMembers": 1,
"countryCode": "text",
"defaultCurrencyCode": "text",
"payoutApprovalsRequired": 1,
"allowDirectAdd": true,
"callerPermissions": [
"COMMUNITY_VIEW"
],
"accounts": [
{
"reference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"currencyCode": "text",
"accountReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"accountNumber": "text",
"status": "ACTIVE",
"totalBalance": {
"amount": "250000.00",
"currencyCode": "NGN"
},
"earmarkedBalance": {
"amount": "250000.00",
"currencyCode": "NGN"
},
"availableBalance": {
"amount": "250000.00",
"currencyCode": "NGN"
},
"approvalsRequired": 1,
"currentApprovers": [
{
"...": "nested"
}
],
"openedBy": {
"...": "nested"
},
"openedAt": "2027-03-14T14:30:01"
}
],
"activatedAt": "2027-03-14T14:30:01",
"suspendedAt": "2027-03-14T14:30:01",
"suspensionReason": "text",
"closedAt": "2027-03-14T14:30:01",
"closureReason": "text",
"creationDateTime": "2027-03-14T14:30:01"
},
"description": "Create a community"
} Responses
| Status | When |
|---|---|
200 | Community created successfully |
400 | Too few approvals required |
403 | Your role in this community does not allow this |
404 | Community not found |
409 | Community is closed; Community name already in use; Nesting limit reached |
DELETE Close a community
DELETE /community/{reference}
Closes a community permanently. Distinct from suspension, which is reversible.
Headers
| Name | Notes |
|---|---|
Authorization | Bearer token |
X-Tenant | Your tenant |
X-Environment | test or live |
Content-Type | application/json |
Path parameters
| Name |
|---|
reference |
Example
Request body: CloseCommunityRequest · Response: CommunityResponse
curl -X DELETE "https://api.bridgemoni.com/community/b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e" \
-H "Authorization: Bearer $BRIDGEMONI_TOKEN" \
-H "X-Tenant: $BRIDGEMONI_TENANT" \
-H "X-Environment: $BRIDGEMONI_ENV" \
-H "Content-Type: application/json" \
-d '{
"reason": "March payroll"
}' {
"reason": "March payroll"
} {
"data": {
"reference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"name": "text",
"description": "text",
"category": "text",
"status": "DRAFT",
"visibility": "PUBLIC",
"joinPolicy": "OPEN",
"parentCommunityReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"depth": 1,
"owner": {
"userReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"maskedName": "text",
"displayName": "text",
"roleName": "text"
},
"memberCount": 1,
"maximumMembers": 1,
"countryCode": "text",
"defaultCurrencyCode": "text",
"payoutApprovalsRequired": 1,
"allowDirectAdd": true,
"callerPermissions": [
"COMMUNITY_VIEW"
],
"accounts": [
{
"reference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"currencyCode": "text",
"accountReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"accountNumber": "text",
"status": "ACTIVE",
"totalBalance": {
"amount": "250000.00",
"currencyCode": "NGN"
},
"earmarkedBalance": {
"amount": "250000.00",
"currencyCode": "NGN"
},
"availableBalance": {
"amount": "250000.00",
"currencyCode": "NGN"
},
"approvalsRequired": 1,
"currentApprovers": [
{
"...": "nested"
}
],
"openedBy": {
"...": "nested"
},
"openedAt": "2027-03-14T14:30:01"
}
],
"activatedAt": "2027-03-14T14:30:01",
"suspendedAt": "2027-03-14T14:30:01",
"suspensionReason": "text",
"closedAt": "2027-03-14T14:30:01",
"closureReason": "text",
"creationDateTime": "2027-03-14T14:30:01"
},
"description": "Close a community"
} Responses
| Status | When |
|---|---|
200 | Community closed |
403 | Your role in this community does not allow this |
404 | Community not found |
409 | Community is closed; Community is not a draft; Community is not active; Sub-communities are still open |
GET Fetch a community
GET /community/{reference}
Fetches one community by reference.
Headers
| Name | Notes |
|---|---|
Authorization | Bearer token |
X-Tenant | Your tenant |
X-Environment | test or live |
Path parameters
| Name |
|---|
reference |
Example
Response: CommunityResponse
curl -X GET "https://api.bridgemoni.com/community/b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e" \
-H "Authorization: Bearer $BRIDGEMONI_TOKEN" \
-H "X-Tenant: $BRIDGEMONI_TENANT" \
-H "X-Environment: $BRIDGEMONI_ENV" {
"data": {
"reference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"name": "text",
"description": "text",
"category": "text",
"status": "DRAFT",
"visibility": "PUBLIC",
"joinPolicy": "OPEN",
"parentCommunityReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"depth": 1,
"owner": {
"userReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"maskedName": "text",
"displayName": "text",
"roleName": "text"
},
"memberCount": 1,
"maximumMembers": 1,
"countryCode": "text",
"defaultCurrencyCode": "text",
"payoutApprovalsRequired": 1,
"allowDirectAdd": true,
"callerPermissions": [
"COMMUNITY_VIEW"
],
"accounts": [
{
"reference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"currencyCode": "text",
"accountReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"accountNumber": "text",
"status": "ACTIVE",
"totalBalance": {
"amount": "250000.00",
"currencyCode": "NGN"
},
"earmarkedBalance": {
"amount": "250000.00",
"currencyCode": "NGN"
},
"availableBalance": {
"amount": "250000.00",
"currencyCode": "NGN"
},
"approvalsRequired": 1,
"currentApprovers": [
{
"...": "nested"
}
],
"openedBy": {
"...": "nested"
},
"openedAt": "2027-03-14T14:30:01"
}
],
"activatedAt": "2027-03-14T14:30:01",
"suspendedAt": "2027-03-14T14:30:01",
"suspensionReason": "text",
"closedAt": "2027-03-14T14:30:01",
"closureReason": "text",
"creationDateTime": "2027-03-14T14:30:01"
},
"description": "Fetch a community"
} Responses
| Status | When |
|---|---|
200 | Community fetched successfully |
403 | Your role in this community does not allow this |
404 | Community not found |
PUT Update a community
PUT /community/{reference}
Updates a community's own attributes. Does not change its members, roles or accounts.
Headers
| Name | Notes |
|---|---|
Authorization | Bearer token |
X-Tenant | Your tenant |
X-Environment | test or live |
Content-Type | application/json |
Path parameters
| Name |
|---|
reference |
Example
Request body: UpdateCommunityRequest · Response: CommunityResponse
curl -X PUT "https://api.bridgemoni.com/community/b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e" \
-H "Authorization: Bearer $BRIDGEMONI_TOKEN" \
-H "X-Tenant: $BRIDGEMONI_TENANT" \
-H "X-Environment: $BRIDGEMONI_ENV" \
-H "Content-Type: application/json" \
-d '{
"name": "Ada Obi",
"description": "March payroll",
"category": "text",
"visibility": "PUBLIC",
"joinPolicy": "OPEN",
"maximumMembers": 1,
"payoutApprovalsRequired": 1,
"allowDirectAdd": true
}' {
"name": "Ada Obi",
"description": "March payroll",
"category": "text",
"visibility": "PUBLIC",
"joinPolicy": "OPEN",
"maximumMembers": 1,
"payoutApprovalsRequired": 1,
"allowDirectAdd": true
} {
"data": {
"reference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"name": "text",
"description": "text",
"category": "text",
"status": "DRAFT",
"visibility": "PUBLIC",
"joinPolicy": "OPEN",
"parentCommunityReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"depth": 1,
"owner": {
"userReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"maskedName": "text",
"displayName": "text",
"roleName": "text"
},
"memberCount": 1,
"maximumMembers": 1,
"countryCode": "text",
"defaultCurrencyCode": "text",
"payoutApprovalsRequired": 1,
"allowDirectAdd": true,
"callerPermissions": [
"COMMUNITY_VIEW"
],
"accounts": [
{
"reference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"currencyCode": "text",
"accountReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"accountNumber": "text",
"status": "ACTIVE",
"totalBalance": {
"amount": "250000.00",
"currencyCode": "NGN"
},
"earmarkedBalance": {
"amount": "250000.00",
"currencyCode": "NGN"
},
"availableBalance": {
"amount": "250000.00",
"currencyCode": "NGN"
},
"approvalsRequired": 1,
"currentApprovers": [
{
"...": "nested"
}
],
"openedBy": {
"...": "nested"
},
"openedAt": "2027-03-14T14:30:01"
}
],
"activatedAt": "2027-03-14T14:30:01",
"suspendedAt": "2027-03-14T14:30:01",
"suspensionReason": "text",
"closedAt": "2027-03-14T14:30:01",
"closureReason": "text",
"creationDateTime": "2027-03-14T14:30:01"
},
"description": "Update a community"
} Responses
| Status | When |
|---|---|
200 | Community updated successfully |
400 | Too few approvals required |
403 | Your role in this community does not allow this |
404 | Community not found |
409 | Community is closed; Community name already in use; Member limit is below the current roll |
GET List a community's accounts
GET /community/{reference}/account
Lists the accounts a community holds, one per currency.
Headers
| Name | Notes |
|---|---|
Authorization | Bearer token |
X-Tenant | Your tenant |
X-Environment | test or live |
Path parameters
| Name |
|---|
reference |
Example
Response: List<CommunityAccountResponse>
curl -X GET "https://api.bridgemoni.com/community/b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e/account" \
-H "Authorization: Bearer $BRIDGEMONI_TOKEN" \
-H "X-Tenant: $BRIDGEMONI_TENANT" \
-H "X-Environment: $BRIDGEMONI_ENV" {
"data": [
{
"reference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"currencyCode": "text",
"accountReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"accountNumber": "text",
"status": "ACTIVE",
"totalBalance": {
"amount": "250000.00",
"currencyCode": "NGN"
},
"earmarkedBalance": {
"amount": "250000.00",
"currencyCode": "NGN"
},
"availableBalance": {
"amount": "250000.00",
"currencyCode": "NGN"
},
"approvalsRequired": 1,
"currentApprovers": [
{
"...": "nested"
}
],
"openedBy": {
"userReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"maskedName": "text",
"displayName": "text",
"roleName": "text"
},
"openedAt": "2027-03-14T14:30:01"
}
],
"description": "List a community's accounts"
} Responses
| Status | When |
|---|---|
200 | Community accounts fetched successfully |
403 | Your role in this community does not allow this |
404 | Community not found |
POST Open a community account
POST /community/{reference}/account
Opens an account the community owns collectively, in a given currency. This is the pot: money in it belongs to the group, not to any one member.
Headers
| Name | Notes |
|---|---|
Authorization | Bearer token |
X-Tenant | Your tenant |
X-Environment | test or live |
Content-Type | application/json |
Path parameters
| Name |
|---|
reference |
Example
Request body: OpenCommunityAccountRequest · Response: CommunityAccountResponse
curl -X POST "https://api.bridgemoni.com/community/b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e/account" \
-H "Authorization: Bearer $BRIDGEMONI_TOKEN" \
-H "X-Tenant: $BRIDGEMONI_TENANT" \
-H "X-Environment: $BRIDGEMONI_ENV" \
-H "Content-Type: application/json" \
-d '{
"currencyCode": "NGN"
}' {
"currencyCode": "NGN"
} {
"data": {
"reference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"currencyCode": "text",
"accountReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"accountNumber": "text",
"status": "ACTIVE",
"totalBalance": {
"amount": "250000.00",
"currencyCode": "NGN"
},
"earmarkedBalance": {
"amount": "250000.00",
"currencyCode": "NGN"
},
"availableBalance": {
"amount": "250000.00",
"currencyCode": "NGN"
},
"approvalsRequired": 1,
"currentApprovers": [
{
"userReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"maskedName": "text",
"displayName": "text",
"roleName": "text"
}
],
"openedBy": {
"userReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"maskedName": "text",
"displayName": "text",
"roleName": "text"
},
"openedAt": "2027-03-14T14:30:01"
},
"description": "Open a community account"
} Responses
| Status | When |
|---|---|
200 | Community account opened successfully |
403 | Your role in this community does not allow this |
404 | Community not found |
409 | An account in this currency is already open; Community is not active |
GET Fetch a community account statement
GET /community/{reference}/account/{currencyCode}/statement
Returns the pot's statement for one currency - every contribution in and every payout out, with who was responsible for each.
Headers
| Name | Notes |
|---|---|
Authorization | Bearer token |
X-Tenant | Your tenant |
X-Environment | test or live |
Path parameters
| Name |
|---|
reference |
currencyCode |
Query parameters
| Name | Default |
|---|---|
from | Optional |
to | Optional |
pageNumber | Optional |
pageSize | Optional |
Example
Response: List<CommunityStatementEntry>
curl -X GET "https://api.bridgemoni.com/community/b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e/account/BRG-001/statement?from=value&to=value&pageNumber=value&pageSize=value" \
-H "Authorization: Bearer $BRIDGEMONI_TOKEN" \
-H "X-Tenant: $BRIDGEMONI_TENANT" \
-H "X-Environment: $BRIDGEMONI_ENV" {
"data": [
{
"transactionReference": "text",
"transactionType": "text",
"narrative": "text",
"debitAmount": 250000.0,
"creditAmount": 250000.0,
"runningBalance": 250000.0,
"postedAt": "2027-03-14T14:30:01"
}
],
"description": "Fetch a community account statement"
} Responses
| Status | When |
|---|---|
200 | Statement fetched successfully |
403 | Your role in this community does not allow this |
404 | Community not found; This community has no account in that currency |
POST Activate a community
POST /community/{reference}/activate
Activates a community so it can accept members and open accounts.
Headers
| Name | Notes |
|---|---|
Authorization | Bearer token |
X-Tenant | Your tenant |
X-Environment | test or live |
Path parameters
| Name |
|---|
reference |
Example
Response: CommunityResponse
curl -X POST "https://api.bridgemoni.com/community/b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e/activate" \
-H "Authorization: Bearer $BRIDGEMONI_TOKEN" \
-H "X-Tenant: $BRIDGEMONI_TENANT" \
-H "X-Environment: $BRIDGEMONI_ENV" {
"data": {
"reference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"name": "text",
"description": "text",
"category": "text",
"status": "DRAFT",
"visibility": "PUBLIC",
"joinPolicy": "OPEN",
"parentCommunityReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"depth": 1,
"owner": {
"userReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"maskedName": "text",
"displayName": "text",
"roleName": "text"
},
"memberCount": 1,
"maximumMembers": 1,
"countryCode": "text",
"defaultCurrencyCode": "text",
"payoutApprovalsRequired": 1,
"allowDirectAdd": true,
"callerPermissions": [
"COMMUNITY_VIEW"
],
"accounts": [
{
"reference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"currencyCode": "text",
"accountReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"accountNumber": "text",
"status": "ACTIVE",
"totalBalance": {
"amount": "250000.00",
"currencyCode": "NGN"
},
"earmarkedBalance": {
"amount": "250000.00",
"currencyCode": "NGN"
},
"availableBalance": {
"amount": "250000.00",
"currencyCode": "NGN"
},
"approvalsRequired": 1,
"currentApprovers": [
{
"...": "nested"
}
],
"openedBy": {
"...": "nested"
},
"openedAt": "2027-03-14T14:30:01"
}
],
"activatedAt": "2027-03-14T14:30:01",
"suspendedAt": "2027-03-14T14:30:01",
"suspensionReason": "text",
"closedAt": "2027-03-14T14:30:01",
"closureReason": "text",
"creationDateTime": "2027-03-14T14:30:01"
},
"description": "Activate a community"
} Responses
| Status | When |
|---|---|
200 | Community activated - it can now accept members and open accounts |
403 | Only the community owner may do this |
404 | Community not found |
409 | Community is closed; Community is not a draft; Community is not active |
GET List a community's campaigns
GET /community/{reference}/campaign
Lists the campaigns a community has run, open and closed.
Headers
| Name | Notes |
|---|---|
Authorization | Bearer token |
X-Tenant | Your tenant |
X-Environment | test or live |
Path parameters
| Name |
|---|
reference |
Query parameters
| Name | Default |
|---|---|
status | Optional |
pageNumber | Optional |
pageSize | Optional |
Example
Response: List<CampaignResponse>
curl -X GET "https://api.bridgemoni.com/community/b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e/campaign?status=value&pageNumber=value&pageSize=value" \
-H "Authorization: Bearer $BRIDGEMONI_TOKEN" \
-H "X-Tenant: $BRIDGEMONI_TENANT" \
-H "X-Environment: $BRIDGEMONI_ENV" {
"data": [
{
"reference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"communityReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"communityName": "text",
"name": "text",
"description": "text",
"campaignType": "BILL",
"status": "DRAFT",
"contributionMode": "ASSIGNED",
"targetAmount": {
"amount": "250000.00",
"currencyCode": "NGN"
},
"raisedAmount": {
"amount": "250000.00",
"currencyCode": "NGN"
},
"remainingAmount": {
"amount": "250000.00",
"currencyCode": "NGN"
},
"refundedAmount": {
"amount": "250000.00",
"currencyCode": "NGN"
},
"contributorCount": 1,
"allowOverfunding": true,
"deadline": "2027-03-14T14:30:01",
"billProductCode": "text",
"billCustomerIdentifier": "text",
"beneficiary": {
"userReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"maskedName": "text",
"displayName": "text",
"roleName": "text"
},
"beneficiaryAccountNumber": "text",
"approval": {
"approvalsRequired": 1,
"approvalsRecorded": 1,
"eligibleApprovers": [
{
"...": "nested"
}
],
"approvals": [
{
"...": "nested"
}
],
"note": "text",
"approver": {
"...": "nested"
},
"approved": true,
"comment": "text",
"decidedAt": "2027-03-14T14:30:01"
},
"myAssignment": {
"reference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"member": {
"...": "nested"
},
"assignedAmount": {
"amount": "250000.00",
"currencyCode": "NGN"
},
"paidAmount": {
"amount": "250000.00",
"currencyCode": "NGN"
},
"assignmentStatus": "PENDING",
"waivedBy": {
"...": "nested"
},
"waiverReason": "text",
"waivedAt": "2027-03-14T14:30:01"
},
"createdBy": {
"userReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"maskedName": "text",
"displayName": "text",
"roleName": "text"
},
"executionTransactionReference": "text",
"billPaymentReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"failureReason": "text",
"openedAt": "2027-03-14T14:30:01",
"fundedAt": "2027-03-14T14:30:01",
"executedAt": "2027-03-14T14:30:01",
"creationDateTime": "2027-03-14T14:30:01"
}
],
"description": "List a community's campaigns"
} Responses
| Status | When |
|---|---|
200 | Campaigns fetched successfully |
403 | Your role in this community does not allow this |
404 | Community not found |
POST Create a funding campaign
POST /community/{reference}/campaign
Creates a campaign to raise money toward one named thing, with a target and a set of members expected to contribute.
Headers
| Name | Notes |
|---|---|
Authorization | Bearer token |
X-Tenant | Your tenant |
X-Environment | test or live |
Content-Type | application/json |
Path parameters
| Name |
|---|
reference |
Example
Request body: CampaignRequest · Response: CampaignResponse
curl -X POST "https://api.bridgemoni.com/community/b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e/campaign" \
-H "Authorization: Bearer $BRIDGEMONI_TOKEN" \
-H "X-Tenant: $BRIDGEMONI_TENANT" \
-H "X-Environment: $BRIDGEMONI_ENV" \
-H "Content-Type: application/json" \
-d '{
"name": "Ada Obi",
"description": "March payroll",
"campaignType": "BILL",
"targetAmount": 250000.0,
"currencyCode": "NGN",
"deadline": "2027-03-14T14:30:01",
"contributionMode": "ASSIGNED",
"approvalsRequired": 1,
"allowOverfunding": true,
"billProductCode": "Ada Obi",
"billCustomerIdentifier": "March payroll",
"beneficiaryAccountNumber": "0123456789",
"beneficiaryUserReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e"
}' {
"name": "Ada Obi",
"description": "March payroll",
"campaignType": "BILL",
"targetAmount": 250000.0,
"currencyCode": "NGN",
"deadline": "2027-03-14T14:30:01",
"contributionMode": "ASSIGNED",
"approvalsRequired": 1,
"allowOverfunding": true,
"billProductCode": "Ada Obi",
"billCustomerIdentifier": "March payroll",
"beneficiaryAccountNumber": "0123456789",
"beneficiaryUserReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e"
} {
"data": {
"reference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"communityReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"communityName": "text",
"name": "text",
"description": "text",
"campaignType": "BILL",
"status": "DRAFT",
"contributionMode": "ASSIGNED",
"targetAmount": {
"amount": "250000.00",
"currencyCode": "NGN"
},
"raisedAmount": {
"amount": "250000.00",
"currencyCode": "NGN"
},
"remainingAmount": {
"amount": "250000.00",
"currencyCode": "NGN"
},
"refundedAmount": {
"amount": "250000.00",
"currencyCode": "NGN"
},
"contributorCount": 1,
"allowOverfunding": true,
"deadline": "2027-03-14T14:30:01",
"billProductCode": "text",
"billCustomerIdentifier": "text",
"beneficiary": {
"userReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"maskedName": "text",
"displayName": "text",
"roleName": "text"
},
"beneficiaryAccountNumber": "text",
"approval": {
"approvalsRequired": 1,
"approvalsRecorded": 1,
"eligibleApprovers": [
{
"...": "nested"
}
],
"approvals": [
{
"...": "nested"
}
],
"note": "text",
"approver": {
"userReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"maskedName": "text",
"displayName": "text",
"roleName": "text"
},
"approved": true,
"comment": "text",
"decidedAt": "2027-03-14T14:30:01"
},
"myAssignment": {
"reference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"member": {
"userReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"maskedName": "text",
"displayName": "text",
"roleName": "text"
},
"assignedAmount": {
"amount": "250000.00",
"currencyCode": "NGN"
},
"paidAmount": {
"amount": "250000.00",
"currencyCode": "NGN"
},
"assignmentStatus": "PENDING",
"waivedBy": {
"userReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"maskedName": "text",
"displayName": "text",
"roleName": "text"
},
"waiverReason": "text",
"waivedAt": "2027-03-14T14:30:01"
},
"createdBy": {
"userReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"maskedName": "text",
"displayName": "text",
"roleName": "text"
},
"executionTransactionReference": "text",
"billPaymentReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"failureReason": "text",
"openedAt": "2027-03-14T14:30:01",
"fundedAt": "2027-03-14T14:30:01",
"executedAt": "2027-03-14T14:30:01",
"creationDateTime": "2027-03-14T14:30:01"
},
"description": "Create a funding campaign"
} Responses
| Status | When |
|---|---|
200 | Campaign created successfully |
400 | A contribution must be a positive amount |
403 | Your role in this community does not allow this |
404 | Community not found |
409 | A campaign needs at least three signatories; Community is not active; This campaign has closed |
GET Fetch a campaign
GET /community/{reference}/campaign/{campaignReference}
Fetches one campaign, including what has been raised against its target.
Headers
| Name | Notes |
|---|---|
Authorization | Bearer token |
X-Tenant | Your tenant |
X-Environment | test or live |
Path parameters
| Name |
|---|
reference |
campaignReference |
Example
Response: CampaignResponse
curl -X GET "https://api.bridgemoni.com/community/b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e/campaign/b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e" \
-H "Authorization: Bearer $BRIDGEMONI_TOKEN" \
-H "X-Tenant: $BRIDGEMONI_TENANT" \
-H "X-Environment: $BRIDGEMONI_ENV" {
"data": {
"reference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"communityReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"communityName": "text",
"name": "text",
"description": "text",
"campaignType": "BILL",
"status": "DRAFT",
"contributionMode": "ASSIGNED",
"targetAmount": {
"amount": "250000.00",
"currencyCode": "NGN"
},
"raisedAmount": {
"amount": "250000.00",
"currencyCode": "NGN"
},
"remainingAmount": {
"amount": "250000.00",
"currencyCode": "NGN"
},
"refundedAmount": {
"amount": "250000.00",
"currencyCode": "NGN"
},
"contributorCount": 1,
"allowOverfunding": true,
"deadline": "2027-03-14T14:30:01",
"billProductCode": "text",
"billCustomerIdentifier": "text",
"beneficiary": {
"userReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"maskedName": "text",
"displayName": "text",
"roleName": "text"
},
"beneficiaryAccountNumber": "text",
"approval": {
"approvalsRequired": 1,
"approvalsRecorded": 1,
"eligibleApprovers": [
{
"...": "nested"
}
],
"approvals": [
{
"...": "nested"
}
],
"note": "text",
"approver": {
"userReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"maskedName": "text",
"displayName": "text",
"roleName": "text"
},
"approved": true,
"comment": "text",
"decidedAt": "2027-03-14T14:30:01"
},
"myAssignment": {
"reference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"member": {
"userReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"maskedName": "text",
"displayName": "text",
"roleName": "text"
},
"assignedAmount": {
"amount": "250000.00",
"currencyCode": "NGN"
},
"paidAmount": {
"amount": "250000.00",
"currencyCode": "NGN"
},
"assignmentStatus": "PENDING",
"waivedBy": {
"userReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"maskedName": "text",
"displayName": "text",
"roleName": "text"
},
"waiverReason": "text",
"waivedAt": "2027-03-14T14:30:01"
},
"createdBy": {
"userReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"maskedName": "text",
"displayName": "text",
"roleName": "text"
},
"executionTransactionReference": "text",
"billPaymentReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"failureReason": "text",
"openedAt": "2027-03-14T14:30:01",
"fundedAt": "2027-03-14T14:30:01",
"executedAt": "2027-03-14T14:30:01",
"creationDateTime": "2027-03-14T14:30:01"
},
"description": "Fetch a campaign"
} Responses
| Status | When |
|---|---|
200 | Campaign fetched successfully |
403 | Your role in this community does not allow this |
404 | Campaign not found; Community not found |
POST Approve a campaign release
POST /community/{reference}/campaign/{campaignReference}/approve
Records one officer's signature on a pending release. The funds move once the quorum is met, so a partial approval is a successful call, not a failure.
Headers
| Name | Notes |
|---|---|
Authorization | Bearer token |
X-Tenant | Your tenant |
X-Environment | test or live |
Content-Type | application/json |
Path parameters
| Name |
|---|
reference |
campaignReference |
Example
Request body: CommunityApprovalDecisionRequest · Response: CampaignResponse
curl -X POST "https://api.bridgemoni.com/community/b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e/campaign/b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e/approve" \
-H "Authorization: Bearer $BRIDGEMONI_TOKEN" \
-H "X-Tenant: $BRIDGEMONI_TENANT" \
-H "X-Environment: $BRIDGEMONI_ENV" \
-H "Content-Type: application/json" \
-d '{
"comment": "March payroll"
}' {
"comment": "March payroll"
} {
"data": {
"reference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"communityReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"communityName": "text",
"name": "text",
"description": "text",
"campaignType": "BILL",
"status": "DRAFT",
"contributionMode": "ASSIGNED",
"targetAmount": {
"amount": "250000.00",
"currencyCode": "NGN"
},
"raisedAmount": {
"amount": "250000.00",
"currencyCode": "NGN"
},
"remainingAmount": {
"amount": "250000.00",
"currencyCode": "NGN"
},
"refundedAmount": {
"amount": "250000.00",
"currencyCode": "NGN"
},
"contributorCount": 1,
"allowOverfunding": true,
"deadline": "2027-03-14T14:30:01",
"billProductCode": "text",
"billCustomerIdentifier": "text",
"beneficiary": {
"userReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"maskedName": "text",
"displayName": "text",
"roleName": "text"
},
"beneficiaryAccountNumber": "text",
"approval": {
"approvalsRequired": 1,
"approvalsRecorded": 1,
"eligibleApprovers": [
{
"...": "nested"
}
],
"approvals": [
{
"...": "nested"
}
],
"note": "text",
"approver": {
"userReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"maskedName": "text",
"displayName": "text",
"roleName": "text"
},
"approved": true,
"comment": "text",
"decidedAt": "2027-03-14T14:30:01"
},
"myAssignment": {
"reference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"member": {
"userReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"maskedName": "text",
"displayName": "text",
"roleName": "text"
},
"assignedAmount": {
"amount": "250000.00",
"currencyCode": "NGN"
},
"paidAmount": {
"amount": "250000.00",
"currencyCode": "NGN"
},
"assignmentStatus": "PENDING",
"waivedBy": {
"userReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"maskedName": "text",
"displayName": "text",
"roleName": "text"
},
"waiverReason": "text",
"waivedAt": "2027-03-14T14:30:01"
},
"createdBy": {
"userReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"maskedName": "text",
"displayName": "text",
"roleName": "text"
},
"executionTransactionReference": "text",
"billPaymentReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"failureReason": "text",
"openedAt": "2027-03-14T14:30:01",
"fundedAt": "2027-03-14T14:30:01",
"executedAt": "2027-03-14T14:30:01",
"creationDateTime": "2027-03-14T14:30:01"
},
"description": "Approve a campaign release"
} Responses
| Status | When |
|---|---|
200 | Campaign approved |
403 | You cannot sign for a release you requested; Your role in this community does not allow this |
404 | Campaign not found; Community not found; This community has no account in that currency |
409 | This campaign is not awaiting signatures; You have already decided on this campaign |
PUT Assign campaign shares
PUT /community/{reference}/campaign/{campaignReference}/assignment
Sets what each member is expected to contribute toward the campaign's target.
Headers
| Name | Notes |
|---|---|
Authorization | Bearer token |
X-Tenant | Your tenant |
X-Environment | test or live |
Content-Type | application/json |
Path parameters
| Name |
|---|
reference |
campaignReference |
Example
Request body: CampaignAssignmentRequest · Response: CampaignResponse
curl -X PUT "https://api.bridgemoni.com/community/b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e/campaign/b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e/assignment" \
-H "Authorization: Bearer $BRIDGEMONI_TOKEN" \
-H "X-Tenant: $BRIDGEMONI_TENANT" \
-H "X-Environment: $BRIDGEMONI_ENV" \
-H "Content-Type: application/json" \
-d '{
"shares": [
{
"membershipReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"assignedAmount": 250000.0
}
],
"membershipReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"assignedAmount": 250000.0
}' {
"shares": [
{
"membershipReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"assignedAmount": 250000.0
}
],
"membershipReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"assignedAmount": 250000.0
} {
"data": {
"reference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"communityReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"communityName": "text",
"name": "text",
"description": "text",
"campaignType": "BILL",
"status": "DRAFT",
"contributionMode": "ASSIGNED",
"targetAmount": {
"amount": "250000.00",
"currencyCode": "NGN"
},
"raisedAmount": {
"amount": "250000.00",
"currencyCode": "NGN"
},
"remainingAmount": {
"amount": "250000.00",
"currencyCode": "NGN"
},
"refundedAmount": {
"amount": "250000.00",
"currencyCode": "NGN"
},
"contributorCount": 1,
"allowOverfunding": true,
"deadline": "2027-03-14T14:30:01",
"billProductCode": "text",
"billCustomerIdentifier": "text",
"beneficiary": {
"userReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"maskedName": "text",
"displayName": "text",
"roleName": "text"
},
"beneficiaryAccountNumber": "text",
"approval": {
"approvalsRequired": 1,
"approvalsRecorded": 1,
"eligibleApprovers": [
{
"...": "nested"
}
],
"approvals": [
{
"...": "nested"
}
],
"note": "text",
"approver": {
"userReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"maskedName": "text",
"displayName": "text",
"roleName": "text"
},
"approved": true,
"comment": "text",
"decidedAt": "2027-03-14T14:30:01"
},
"myAssignment": {
"reference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"member": {
"userReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"maskedName": "text",
"displayName": "text",
"roleName": "text"
},
"assignedAmount": {
"amount": "250000.00",
"currencyCode": "NGN"
},
"paidAmount": {
"amount": "250000.00",
"currencyCode": "NGN"
},
"assignmentStatus": "PENDING",
"waivedBy": {
"userReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"maskedName": "text",
"displayName": "text",
"roleName": "text"
},
"waiverReason": "text",
"waivedAt": "2027-03-14T14:30:01"
},
"createdBy": {
"userReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"maskedName": "text",
"displayName": "text",
"roleName": "text"
},
"executionTransactionReference": "text",
"billPaymentReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"failureReason": "text",
"openedAt": "2027-03-14T14:30:01",
"fundedAt": "2027-03-14T14:30:01",
"executedAt": "2027-03-14T14:30:01",
"creationDateTime": "2027-03-14T14:30:01"
},
"description": "Assign campaign shares"
} Responses
| Status | When |
|---|---|
200 | Shares assigned successfully |
403 | Your role in this community does not allow this |
404 | Campaign not found; Community not found; Membership not found |
409 | The assigned shares exceed the target; This campaign has already been opened |
POST Waive a member's share
POST /community/{reference}/campaign/{campaignReference}/assignment/{membershipReference}/waive
Excuses one member from their assigned share, reducing what the campaign still expects from them without changing anyone else's.
Headers
| Name | Notes |
|---|---|
Authorization | Bearer token |
X-Tenant | Your tenant |
X-Environment | test or live |
Content-Type | application/json |
Path parameters
| Name |
|---|
reference |
campaignReference |
membershipReference |
Example
Request body: WaiveCampaignAssignmentRequest · Response: CampaignResponse
curl -X POST "https://api.bridgemoni.com/community/b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e/campaign/b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e/assignment/b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e/waive" \
-H "Authorization: Bearer $BRIDGEMONI_TOKEN" \
-H "X-Tenant: $BRIDGEMONI_TENANT" \
-H "X-Environment: $BRIDGEMONI_ENV" \
-H "Content-Type: application/json" \
-d '{
"reason": "March payroll"
}' {
"reason": "March payroll"
} {
"data": {
"reference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"communityReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"communityName": "text",
"name": "text",
"description": "text",
"campaignType": "BILL",
"status": "DRAFT",
"contributionMode": "ASSIGNED",
"targetAmount": {
"amount": "250000.00",
"currencyCode": "NGN"
},
"raisedAmount": {
"amount": "250000.00",
"currencyCode": "NGN"
},
"remainingAmount": {
"amount": "250000.00",
"currencyCode": "NGN"
},
"refundedAmount": {
"amount": "250000.00",
"currencyCode": "NGN"
},
"contributorCount": 1,
"allowOverfunding": true,
"deadline": "2027-03-14T14:30:01",
"billProductCode": "text",
"billCustomerIdentifier": "text",
"beneficiary": {
"userReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"maskedName": "text",
"displayName": "text",
"roleName": "text"
},
"beneficiaryAccountNumber": "text",
"approval": {
"approvalsRequired": 1,
"approvalsRecorded": 1,
"eligibleApprovers": [
{
"...": "nested"
}
],
"approvals": [
{
"...": "nested"
}
],
"note": "text",
"approver": {
"userReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"maskedName": "text",
"displayName": "text",
"roleName": "text"
},
"approved": true,
"comment": "text",
"decidedAt": "2027-03-14T14:30:01"
},
"myAssignment": {
"reference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"member": {
"userReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"maskedName": "text",
"displayName": "text",
"roleName": "text"
},
"assignedAmount": {
"amount": "250000.00",
"currencyCode": "NGN"
},
"paidAmount": {
"amount": "250000.00",
"currencyCode": "NGN"
},
"assignmentStatus": "PENDING",
"waivedBy": {
"userReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"maskedName": "text",
"displayName": "text",
"roleName": "text"
},
"waiverReason": "text",
"waivedAt": "2027-03-14T14:30:01"
},
"createdBy": {
"userReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"maskedName": "text",
"displayName": "text",
"roleName": "text"
},
"executionTransactionReference": "text",
"billPaymentReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"failureReason": "text",
"openedAt": "2027-03-14T14:30:01",
"fundedAt": "2027-03-14T14:30:01",
"executedAt": "2027-03-14T14:30:01",
"creationDateTime": "2027-03-14T14:30:01"
},
"description": "Waive a member's share"
} Responses
| Status | When |
|---|---|
200 | Assignment waived |
400 | A role must grant at least one permission |
403 | Your role in this community does not allow this |
404 | Campaign not found; Community not found; Membership not found |
POST Cancel a campaign
POST /community/{reference}/campaign/{campaignReference}/cancel
Cancels a campaign outright, returning what was contributed.
Headers
| Name | Notes |
|---|---|
Authorization | Bearer token |
X-Tenant | Your tenant |
X-Environment | test or live |
Content-Type | application/json |
Path parameters
| Name |
|---|
reference |
campaignReference |
Example
Request body: CommunityApprovalDecisionRequest · Response: CampaignResponse
curl -X POST "https://api.bridgemoni.com/community/b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e/campaign/b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e/cancel" \
-H "Authorization: Bearer $BRIDGEMONI_TOKEN" \
-H "X-Tenant: $BRIDGEMONI_TENANT" \
-H "X-Environment: $BRIDGEMONI_ENV" \
-H "Content-Type: application/json" \
-d '{
"comment": "March payroll"
}' {
"comment": "March payroll"
} {
"data": {
"reference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"communityReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"communityName": "text",
"name": "text",
"description": "text",
"campaignType": "BILL",
"status": "DRAFT",
"contributionMode": "ASSIGNED",
"targetAmount": {
"amount": "250000.00",
"currencyCode": "NGN"
},
"raisedAmount": {
"amount": "250000.00",
"currencyCode": "NGN"
},
"remainingAmount": {
"amount": "250000.00",
"currencyCode": "NGN"
},
"refundedAmount": {
"amount": "250000.00",
"currencyCode": "NGN"
},
"contributorCount": 1,
"allowOverfunding": true,
"deadline": "2027-03-14T14:30:01",
"billProductCode": "text",
"billCustomerIdentifier": "text",
"beneficiary": {
"userReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"maskedName": "text",
"displayName": "text",
"roleName": "text"
},
"beneficiaryAccountNumber": "text",
"approval": {
"approvalsRequired": 1,
"approvalsRecorded": 1,
"eligibleApprovers": [
{
"...": "nested"
}
],
"approvals": [
{
"...": "nested"
}
],
"note": "text",
"approver": {
"userReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"maskedName": "text",
"displayName": "text",
"roleName": "text"
},
"approved": true,
"comment": "text",
"decidedAt": "2027-03-14T14:30:01"
},
"myAssignment": {
"reference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"member": {
"userReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"maskedName": "text",
"displayName": "text",
"roleName": "text"
},
"assignedAmount": {
"amount": "250000.00",
"currencyCode": "NGN"
},
"paidAmount": {
"amount": "250000.00",
"currencyCode": "NGN"
},
"assignmentStatus": "PENDING",
"waivedBy": {
"userReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"maskedName": "text",
"displayName": "text",
"roleName": "text"
},
"waiverReason": "text",
"waivedAt": "2027-03-14T14:30:01"
},
"createdBy": {
"userReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"maskedName": "text",
"displayName": "text",
"roleName": "text"
},
"executionTransactionReference": "text",
"billPaymentReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"failureReason": "text",
"openedAt": "2027-03-14T14:30:01",
"fundedAt": "2027-03-14T14:30:01",
"executedAt": "2027-03-14T14:30:01",
"creationDateTime": "2027-03-14T14:30:01"
},
"description": "Cancel a campaign"
} Responses
| Status | When |
|---|---|
200 | Campaign cancelled |
403 | Your role in this community does not allow this |
404 | Campaign not found; Community not found |
409 | This campaign is not awaiting signatures |
POST Contribute to a campaign
POST /community/{reference}/campaign/{campaignReference}/contribution
Moves money from a member's own account into the campaign, counted against their assigned share.
Headers
| Name | Notes |
|---|---|
Authorization | Bearer token |
X-Tenant | Your tenant |
X-Environment | test or live |
Content-Type | application/json |
Path parameters
| Name |
|---|
reference |
campaignReference |
Example
Request body: CampaignContributionRequest · Response: CampaignResponse
curl -X POST "https://api.bridgemoni.com/community/b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e/campaign/b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e/contribution" \
-H "Authorization: Bearer $BRIDGEMONI_TOKEN" \
-H "X-Tenant: $BRIDGEMONI_TENANT" \
-H "X-Environment: $BRIDGEMONI_ENV" \
-H "Content-Type: application/json" \
-d '{
"amount": 250000.0,
"narrative": "March payroll",
"idempotencyKey": "text"
}' {
"amount": 250000.0,
"narrative": "March payroll",
"idempotencyKey": "text"
} {
"data": {
"reference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"communityReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"communityName": "text",
"name": "text",
"description": "text",
"campaignType": "BILL",
"status": "DRAFT",
"contributionMode": "ASSIGNED",
"targetAmount": {
"amount": "250000.00",
"currencyCode": "NGN"
},
"raisedAmount": {
"amount": "250000.00",
"currencyCode": "NGN"
},
"remainingAmount": {
"amount": "250000.00",
"currencyCode": "NGN"
},
"refundedAmount": {
"amount": "250000.00",
"currencyCode": "NGN"
},
"contributorCount": 1,
"allowOverfunding": true,
"deadline": "2027-03-14T14:30:01",
"billProductCode": "text",
"billCustomerIdentifier": "text",
"beneficiary": {
"userReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"maskedName": "text",
"displayName": "text",
"roleName": "text"
},
"beneficiaryAccountNumber": "text",
"approval": {
"approvalsRequired": 1,
"approvalsRecorded": 1,
"eligibleApprovers": [
{
"...": "nested"
}
],
"approvals": [
{
"...": "nested"
}
],
"note": "text",
"approver": {
"userReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"maskedName": "text",
"displayName": "text",
"roleName": "text"
},
"approved": true,
"comment": "text",
"decidedAt": "2027-03-14T14:30:01"
},
"myAssignment": {
"reference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"member": {
"userReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"maskedName": "text",
"displayName": "text",
"roleName": "text"
},
"assignedAmount": {
"amount": "250000.00",
"currencyCode": "NGN"
},
"paidAmount": {
"amount": "250000.00",
"currencyCode": "NGN"
},
"assignmentStatus": "PENDING",
"waivedBy": {
"userReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"maskedName": "text",
"displayName": "text",
"roleName": "text"
},
"waiverReason": "text",
"waivedAt": "2027-03-14T14:30:01"
},
"createdBy": {
"userReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"maskedName": "text",
"displayName": "text",
"roleName": "text"
},
"executionTransactionReference": "text",
"billPaymentReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"failureReason": "text",
"openedAt": "2027-03-14T14:30:01",
"fundedAt": "2027-03-14T14:30:01",
"executedAt": "2027-03-14T14:30:01",
"creationDateTime": "2027-03-14T14:30:01"
},
"description": "Contribute to a campaign"
} Responses
| Status | When |
|---|---|
200 | Contribution received successfully |
400 | A contribution must be a positive amount |
403 | Your role in this community does not allow this |
404 | Campaign not found; Community not found; This community has no account in that currency |
409 | That would take the campaign past its target; This campaign has closed; This campaign is not accepting contributions; You have no account in that currency |
POST Open a campaign for contributions
POST /community/{reference}/campaign/{campaignReference}/open
Opens the campaign so members can begin contributing against their assigned shares.
Headers
| Name | Notes |
|---|---|
Authorization | Bearer token |
X-Tenant | Your tenant |
X-Environment | test or live |
Path parameters
| Name |
|---|
reference |
campaignReference |
Example
Response: CampaignResponse
curl -X POST "https://api.bridgemoni.com/community/b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e/campaign/b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e/open" \
-H "Authorization: Bearer $BRIDGEMONI_TOKEN" \
-H "X-Tenant: $BRIDGEMONI_TENANT" \
-H "X-Environment: $BRIDGEMONI_ENV" {
"data": {
"reference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"communityReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"communityName": "text",
"name": "text",
"description": "text",
"campaignType": "BILL",
"status": "DRAFT",
"contributionMode": "ASSIGNED",
"targetAmount": {
"amount": "250000.00",
"currencyCode": "NGN"
},
"raisedAmount": {
"amount": "250000.00",
"currencyCode": "NGN"
},
"remainingAmount": {
"amount": "250000.00",
"currencyCode": "NGN"
},
"refundedAmount": {
"amount": "250000.00",
"currencyCode": "NGN"
},
"contributorCount": 1,
"allowOverfunding": true,
"deadline": "2027-03-14T14:30:01",
"billProductCode": "text",
"billCustomerIdentifier": "text",
"beneficiary": {
"userReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"maskedName": "text",
"displayName": "text",
"roleName": "text"
},
"beneficiaryAccountNumber": "text",
"approval": {
"approvalsRequired": 1,
"approvalsRecorded": 1,
"eligibleApprovers": [
{
"...": "nested"
}
],
"approvals": [
{
"...": "nested"
}
],
"note": "text",
"approver": {
"userReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"maskedName": "text",
"displayName": "text",
"roleName": "text"
},
"approved": true,
"comment": "text",
"decidedAt": "2027-03-14T14:30:01"
},
"myAssignment": {
"reference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"member": {
"userReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"maskedName": "text",
"displayName": "text",
"roleName": "text"
},
"assignedAmount": {
"amount": "250000.00",
"currencyCode": "NGN"
},
"paidAmount": {
"amount": "250000.00",
"currencyCode": "NGN"
},
"assignmentStatus": "PENDING",
"waivedBy": {
"userReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"maskedName": "text",
"displayName": "text",
"roleName": "text"
},
"waiverReason": "text",
"waivedAt": "2027-03-14T14:30:01"
},
"createdBy": {
"userReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"maskedName": "text",
"displayName": "text",
"roleName": "text"
},
"executionTransactionReference": "text",
"billPaymentReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"failureReason": "text",
"openedAt": "2027-03-14T14:30:01",
"fundedAt": "2027-03-14T14:30:01",
"executedAt": "2027-03-14T14:30:01",
"creationDateTime": "2027-03-14T14:30:01"
},
"description": "Open a campaign for contributions"
} Responses
| Status | When |
|---|---|
200 | Campaign is now accepting contributions |
403 | Your role in this community does not allow this |
404 | Campaign not found; Community not found; This community has no account in that currency |
409 | A campaign needs at least three signatories; This campaign has already been opened |
POST Reject a campaign release
POST /community/{reference}/campaign/{campaignReference}/reject
Rejects a pending release. Contributions already made are returned to the members who made them.
Headers
| Name | Notes |
|---|---|
Authorization | Bearer token |
X-Tenant | Your tenant |
X-Environment | test or live |
Content-Type | application/json |
Path parameters
| Name |
|---|
reference |
campaignReference |
Example
Request body: CommunityApprovalDecisionRequest · Response: CampaignResponse
curl -X POST "https://api.bridgemoni.com/community/b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e/campaign/b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e/reject" \
-H "Authorization: Bearer $BRIDGEMONI_TOKEN" \
-H "X-Tenant: $BRIDGEMONI_TENANT" \
-H "X-Environment: $BRIDGEMONI_ENV" \
-H "Content-Type: application/json" \
-d '{
"comment": "March payroll"
}' {
"comment": "March payroll"
} {
"data": {
"reference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"communityReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"communityName": "text",
"name": "text",
"description": "text",
"campaignType": "BILL",
"status": "DRAFT",
"contributionMode": "ASSIGNED",
"targetAmount": {
"amount": "250000.00",
"currencyCode": "NGN"
},
"raisedAmount": {
"amount": "250000.00",
"currencyCode": "NGN"
},
"remainingAmount": {
"amount": "250000.00",
"currencyCode": "NGN"
},
"refundedAmount": {
"amount": "250000.00",
"currencyCode": "NGN"
},
"contributorCount": 1,
"allowOverfunding": true,
"deadline": "2027-03-14T14:30:01",
"billProductCode": "text",
"billCustomerIdentifier": "text",
"beneficiary": {
"userReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"maskedName": "text",
"displayName": "text",
"roleName": "text"
},
"beneficiaryAccountNumber": "text",
"approval": {
"approvalsRequired": 1,
"approvalsRecorded": 1,
"eligibleApprovers": [
{
"...": "nested"
}
],
"approvals": [
{
"...": "nested"
}
],
"note": "text",
"approver": {
"userReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"maskedName": "text",
"displayName": "text",
"roleName": "text"
},
"approved": true,
"comment": "text",
"decidedAt": "2027-03-14T14:30:01"
},
"myAssignment": {
"reference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"member": {
"userReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"maskedName": "text",
"displayName": "text",
"roleName": "text"
},
"assignedAmount": {
"amount": "250000.00",
"currencyCode": "NGN"
},
"paidAmount": {
"amount": "250000.00",
"currencyCode": "NGN"
},
"assignmentStatus": "PENDING",
"waivedBy": {
"userReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"maskedName": "text",
"displayName": "text",
"roleName": "text"
},
"waiverReason": "text",
"waivedAt": "2027-03-14T14:30:01"
},
"createdBy": {
"userReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"maskedName": "text",
"displayName": "text",
"roleName": "text"
},
"executionTransactionReference": "text",
"billPaymentReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"failureReason": "text",
"openedAt": "2027-03-14T14:30:01",
"fundedAt": "2027-03-14T14:30:01",
"executedAt": "2027-03-14T14:30:01",
"creationDateTime": "2027-03-14T14:30:01"
},
"description": "Reject a campaign release"
} Responses
| Status | When |
|---|---|
200 | Campaign rejected - contributions are being returned |
403 | Your role in this community does not allow this |
404 | Campaign not found; Community not found |
409 | This campaign is not awaiting signatures |
POST Request release of campaign funds
POST /community/{reference}/campaign/{campaignReference}/release
Requests that the money raised be released for its stated purpose. The release waits for the signatures the community's quorum rules require.
Headers
| Name | Notes |
|---|---|
Authorization | Bearer token |
X-Tenant | Your tenant |
X-Environment | test or live |
Path parameters
| Name |
|---|
reference |
campaignReference |
Example
Response: CampaignResponse
curl -X POST "https://api.bridgemoni.com/community/b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e/campaign/b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e/release" \
-H "Authorization: Bearer $BRIDGEMONI_TOKEN" \
-H "X-Tenant: $BRIDGEMONI_TENANT" \
-H "X-Environment: $BRIDGEMONI_ENV" {
"data": {
"reference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"communityReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"communityName": "text",
"name": "text",
"description": "text",
"campaignType": "BILL",
"status": "DRAFT",
"contributionMode": "ASSIGNED",
"targetAmount": {
"amount": "250000.00",
"currencyCode": "NGN"
},
"raisedAmount": {
"amount": "250000.00",
"currencyCode": "NGN"
},
"remainingAmount": {
"amount": "250000.00",
"currencyCode": "NGN"
},
"refundedAmount": {
"amount": "250000.00",
"currencyCode": "NGN"
},
"contributorCount": 1,
"allowOverfunding": true,
"deadline": "2027-03-14T14:30:01",
"billProductCode": "text",
"billCustomerIdentifier": "text",
"beneficiary": {
"userReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"maskedName": "text",
"displayName": "text",
"roleName": "text"
},
"beneficiaryAccountNumber": "text",
"approval": {
"approvalsRequired": 1,
"approvalsRecorded": 1,
"eligibleApprovers": [
{
"...": "nested"
}
],
"approvals": [
{
"...": "nested"
}
],
"note": "text",
"approver": {
"userReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"maskedName": "text",
"displayName": "text",
"roleName": "text"
},
"approved": true,
"comment": "text",
"decidedAt": "2027-03-14T14:30:01"
},
"myAssignment": {
"reference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"member": {
"userReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"maskedName": "text",
"displayName": "text",
"roleName": "text"
},
"assignedAmount": {
"amount": "250000.00",
"currencyCode": "NGN"
},
"paidAmount": {
"amount": "250000.00",
"currencyCode": "NGN"
},
"assignmentStatus": "PENDING",
"waivedBy": {
"userReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"maskedName": "text",
"displayName": "text",
"roleName": "text"
},
"waiverReason": "text",
"waivedAt": "2027-03-14T14:30:01"
},
"createdBy": {
"userReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"maskedName": "text",
"displayName": "text",
"roleName": "text"
},
"executionTransactionReference": "text",
"billPaymentReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"failureReason": "text",
"openedAt": "2027-03-14T14:30:01",
"fundedAt": "2027-03-14T14:30:01",
"executedAt": "2027-03-14T14:30:01",
"creationDateTime": "2027-03-14T14:30:01"
},
"description": "Request release of campaign funds"
} Responses
| Status | When |
|---|---|
200 | Release requested - awaiting signatures |
403 | Your role in this community does not allow this |
404 | Campaign not found; Community not found |
409 | This campaign has not reached its target |
GET List a community's sub-communities
GET /community/{reference}/children
Lists the communities nested directly beneath this one, for groups that organise into chapters or branches.
Headers
| Name | Notes |
|---|---|
Authorization | Bearer token |
X-Tenant | Your tenant |
X-Environment | test or live |
Path parameters
| Name |
|---|
reference |
Example
Response: List<CommunityResponse>
curl -X GET "https://api.bridgemoni.com/community/b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e/children" \
-H "Authorization: Bearer $BRIDGEMONI_TOKEN" \
-H "X-Tenant: $BRIDGEMONI_TENANT" \
-H "X-Environment: $BRIDGEMONI_ENV" {
"data": [
{
"reference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"name": "text",
"description": "text",
"category": "text",
"status": "DRAFT",
"visibility": "PUBLIC",
"joinPolicy": "OPEN",
"parentCommunityReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"depth": 1,
"owner": {
"userReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"maskedName": "text",
"displayName": "text",
"roleName": "text"
},
"memberCount": 1,
"maximumMembers": 1,
"countryCode": "text",
"defaultCurrencyCode": "text",
"payoutApprovalsRequired": 1,
"allowDirectAdd": true,
"callerPermissions": [
"COMMUNITY_VIEW"
],
"accounts": [
{
"...": "nested"
}
],
"activatedAt": "2027-03-14T14:30:01",
"suspendedAt": "2027-03-14T14:30:01",
"suspensionReason": "text",
"closedAt": "2027-03-14T14:30:01",
"closureReason": "text",
"creationDateTime": "2027-03-14T14:30:01"
}
],
"description": "List a community's sub-communities"
} Responses
| Status | When |
|---|---|
200 | Sub-communities fetched successfully |
403 | Your role in this community does not allow this |
404 | Community not found |
POST Contribute to a community pot
POST /community/{reference}/contribution
Moves money from a member's own account into the community's pot and records who contributed it.
Headers
| Name | Notes |
|---|---|
Authorization | Bearer token |
X-Tenant | Your tenant |
X-Environment | test or live |
Content-Type | application/json |
Path parameters
| Name |
|---|
reference |
Example
Request body: CommunityContributionRequest · Response: CommunityContributionResponse
curl -X POST "https://api.bridgemoni.com/community/b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e/contribution" \
-H "Authorization: Bearer $BRIDGEMONI_TOKEN" \
-H "X-Tenant: $BRIDGEMONI_TENANT" \
-H "X-Environment: $BRIDGEMONI_ENV" \
-H "Content-Type: application/json" \
-d '{
"amount": 250000.0,
"currencyCode": "NGN",
"narrative": "March payroll",
"scheduledAt": "2027-03-14T14:30:01",
"recurrenceFrequency": "HOURLY",
"recurrenceEndAt": "2027-03-14T14:30:01",
"maximumOccurrences": 1,
"idempotencyKey": "text"
}' {
"amount": 250000.0,
"currencyCode": "NGN",
"narrative": "March payroll",
"scheduledAt": "2027-03-14T14:30:01",
"recurrenceFrequency": "HOURLY",
"recurrenceEndAt": "2027-03-14T14:30:01",
"maximumOccurrences": 1,
"idempotencyKey": "text"
} {
"data": {
"reference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"communityReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"communityName": "text",
"amount": {
"amount": "250000.00",
"currencyCode": "NGN"
},
"narrative": "text",
"transactionReference": "text",
"scheduleReference": "text",
"status": "text",
"communityBalanceAfter": {
"amount": "250000.00",
"currencyCode": "NGN"
},
"memberTotalContributed": {
"amount": "250000.00",
"currencyCode": "NGN"
},
"nextExecutionAt": "2027-03-14T14:30:01",
"occurrencesRemaining": 1,
"postedAt": "2027-03-14T14:30:01"
},
"description": "Contribute to a community pot"
} Responses
| Status | When |
|---|---|
200 | Contribution received successfully |
400 | A contribution must be a positive amount |
403 | Your role in this community does not allow this |
404 | Community not found |
409 | Community is not active; This community's account is not active; You have no account in that currency |
GET List a community's invitations
GET /community/{reference}/invitation
Lists invitations issued by the community and their current state.
Headers
| Name | Notes |
|---|---|
Authorization | Bearer token |
X-Tenant | Your tenant |
X-Environment | test or live |
Path parameters
| Name |
|---|
reference |
Query parameters
| Name | Default |
|---|---|
status | Optional |
pageNumber | Optional |
pageSize | Optional |
Example
Response: List<CommunityInvitationResponse>
curl -X GET "https://api.bridgemoni.com/community/b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e/invitation?status=value&pageNumber=value&pageSize=value" \
-H "Authorization: Bearer $BRIDGEMONI_TOKEN" \
-H "X-Tenant: $BRIDGEMONI_TENANT" \
-H "X-Environment: $BRIDGEMONI_ENV" {
"data": [
{
"reference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"communityReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"communityName": "text",
"invitationType": "DIRECT",
"invitationStatus": "PENDING",
"code": "text",
"shareUrl": "text",
"invitee": {
"identifierType": "MSISDN",
"identifier": "text",
"existsOnBridge": true,
"userReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"maskedName": "text"
},
"role": {
"reference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"name": "text",
"displayName": "text",
"description": "text",
"scope": "TENANT",
"communityReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"systemDefined": true,
"assignable": true,
"rank": 1,
"permissions": [
"COMMUNITY_VIEW"
],
"memberCount": 1
},
"maximumUses": 1,
"useCount": 1,
"remainingUses": 1,
"message": "text",
"invitedBy": {
"userReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"maskedName": "text",
"displayName": "text",
"roleName": "text"
},
"expiresAt": "2027-03-14T14:30:01",
"respondedAt": "2027-03-14T14:30:01",
"creationDateTime": "2027-03-14T14:30:01"
}
],
"description": "List a community's invitations"
} Responses
| Status | When |
|---|---|
200 | Invitations fetched successfully |
403 | Your role in this community does not allow this |
404 | Community not found; Community role not found |
POST Invite someone to join
POST /community/{reference}/invitation
Creates an invitation for a specific person, who joins by accepting its code.
Headers
| Name | Notes |
|---|---|
Authorization | Bearer token |
X-Tenant | Your tenant |
X-Environment | test or live |
Content-Type | application/json |
Path parameters
| Name |
|---|
reference |
Example
Request body: CommunityInvitationRequest · Response: CommunityInvitationResponse
curl -X POST "https://api.bridgemoni.com/community/b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e/invitation" \
-H "Authorization: Bearer $BRIDGEMONI_TOKEN" \
-H "X-Tenant: $BRIDGEMONI_TENANT" \
-H "X-Environment: $BRIDGEMONI_ENV" \
-H "Content-Type: application/json" \
-d '{
"invitationType": "DIRECT",
"inviteeIdentifierType": "MSISDN",
"inviteeIdentifier": "text",
"roleReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"expiresInDays": 1,
"maximumUses": 1,
"message": "March payroll"
}' {
"invitationType": "DIRECT",
"inviteeIdentifierType": "MSISDN",
"inviteeIdentifier": "text",
"roleReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"expiresInDays": 1,
"maximumUses": 1,
"message": "March payroll"
} {
"data": {
"reference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"communityReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"communityName": "text",
"invitationType": "DIRECT",
"invitationStatus": "PENDING",
"code": "text",
"shareUrl": "text",
"invitee": {
"identifierType": "MSISDN",
"identifier": "text",
"existsOnBridge": true,
"userReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"maskedName": "text"
},
"role": {
"reference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"name": "text",
"displayName": "text",
"description": "text",
"scope": "TENANT",
"communityReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"systemDefined": true,
"assignable": true,
"rank": 1,
"permissions": [
"COMMUNITY_VIEW"
],
"memberCount": 1
},
"maximumUses": 1,
"useCount": 1,
"remainingUses": 1,
"message": "text",
"invitedBy": {
"userReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"maskedName": "text",
"displayName": "text",
"roleName": "text"
},
"expiresAt": "2027-03-14T14:30:01",
"respondedAt": "2027-03-14T14:30:01",
"creationDateTime": "2027-03-14T14:30:01"
},
"description": "Invite someone to join"
} Responses
| Status | When |
|---|---|
200 | Invitation created successfully |
403 | Your role in this community does not allow this |
404 | Community not found; Community role not found; This invitation cannot be used |
409 | Community is not active; That role cannot be assigned; They have already been invited |
DELETE Revoke an invitation
DELETE /community/{reference}/invitation/{invitationReference}
Revokes an invitation that has not yet been accepted.
Headers
| Name | Notes |
|---|---|
Authorization | Bearer token |
X-Tenant | Your tenant |
X-Environment | test or live |
Path parameters
| Name |
|---|
reference |
invitationReference |
Example
Response: CommunityInvitationResponse
curl -X DELETE "https://api.bridgemoni.com/community/b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e/invitation/b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e" \
-H "Authorization: Bearer $BRIDGEMONI_TOKEN" \
-H "X-Tenant: $BRIDGEMONI_TENANT" \
-H "X-Environment: $BRIDGEMONI_ENV" {
"data": {
"reference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"communityReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"communityName": "text",
"invitationType": "DIRECT",
"invitationStatus": "PENDING",
"code": "text",
"shareUrl": "text",
"invitee": {
"identifierType": "MSISDN",
"identifier": "text",
"existsOnBridge": true,
"userReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"maskedName": "text"
},
"role": {
"reference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"name": "text",
"displayName": "text",
"description": "text",
"scope": "TENANT",
"communityReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"systemDefined": true,
"assignable": true,
"rank": 1,
"permissions": [
"COMMUNITY_VIEW"
],
"memberCount": 1
},
"maximumUses": 1,
"useCount": 1,
"remainingUses": 1,
"message": "text",
"invitedBy": {
"userReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"maskedName": "text",
"displayName": "text",
"roleName": "text"
},
"expiresAt": "2027-03-14T14:30:01",
"respondedAt": "2027-03-14T14:30:01",
"creationDateTime": "2027-03-14T14:30:01"
},
"description": "Revoke an invitation"
} Responses
| Status | When |
|---|---|
200 | Invitation revoked |
403 | Your role in this community does not allow this |
404 | Community not found; Community role not found; This invitation cannot be used |
409 | This invitation has already been answered |
GET List pending join requests
GET /community/{reference}/join-request
Returns the queue of people asking to join, for an officer to work through.
Headers
| Name | Notes |
|---|---|
Authorization | Bearer token |
X-Tenant | Your tenant |
X-Environment | test or live |
Path parameters
| Name |
|---|
reference |
Query parameters
| Name | Default |
|---|---|
status | Optional |
pageNumber | Optional |
pageSize | Optional |
Example
Response: List<JoinRequestResponse>
curl -X GET "https://api.bridgemoni.com/community/b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e/join-request?status=value&pageNumber=value&pageSize=value" \
-H "Authorization: Bearer $BRIDGEMONI_TOKEN" \
-H "X-Tenant: $BRIDGEMONI_TENANT" \
-H "X-Environment: $BRIDGEMONI_ENV" {
"data": [
{
"reference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"communityReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"communityName": "text",
"requester": {
"userReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"maskedName": "text",
"displayName": "text",
"roleName": "text"
},
"status": "PENDING",
"message": "text",
"reviewedBy": {
"userReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"maskedName": "text",
"displayName": "text",
"roleName": "text"
},
"reviewedAt": "2027-03-14T14:30:01",
"reviewNote": "text",
"membership": {
"reference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"communityReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"communityName": "text",
"member": {
"...": "nested"
},
"role": {
"...": "nested"
},
"status": "INVITED",
"joinMethod": "FOUNDED",
"memberNumber": "text",
"permissions": [
"COMMUNITY_VIEW"
],
"totalContributed": {
"amount": "250000.00",
"currencyCode": "NGN"
},
"invitedBy": {
"...": "nested"
},
"invitedAt": "2027-03-14T14:30:01",
"joinedAt": "2027-03-14T14:30:01",
"suspendedAt": "2027-03-14T14:30:01",
"suspensionReason": "text",
"exitedAt": "2027-03-14T14:30:01",
"removedAt": "2027-03-14T14:30:01",
"removalReason": "text",
"lastRoleChangeAt": "2027-03-14T14:30:01",
"approvalAuthorityChanged": true
},
"expiresAt": "2027-03-14T14:30:01",
"creationDateTime": "2027-03-14T14:30:01"
}
],
"description": "List pending join requests"
} Responses
| Status | When |
|---|---|
200 | Join requests fetched successfully |
403 | Your role in this community does not allow this |
404 | Community not found |
POST Apply to join a community
POST /community/{reference}/join-request
Submits a request to join, for a community that admits members by application rather than by invitation. The request waits for an officer's decision.
Headers
| Name | Notes |
|---|---|
Authorization | Bearer token |
X-Tenant | Your tenant |
X-Environment | test or live |
Content-Type | application/json |
Path parameters
| Name |
|---|
reference |
Example
Request body: JoinCommunityRequest · Response: JoinRequestResponse
curl -X POST "https://api.bridgemoni.com/community/b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e/join-request" \
-H "Authorization: Bearer $BRIDGEMONI_TOKEN" \
-H "X-Tenant: $BRIDGEMONI_TENANT" \
-H "X-Environment: $BRIDGEMONI_ENV" \
-H "Content-Type: application/json" \
-d '{
"joinCode": "text",
"message": "March payroll"
}' {
"joinCode": "text",
"message": "March payroll"
} {
"data": {
"reference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"communityReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"communityName": "text",
"requester": {
"userReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"maskedName": "text",
"displayName": "text",
"roleName": "text"
},
"status": "PENDING",
"message": "text",
"reviewedBy": {
"userReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"maskedName": "text",
"displayName": "text",
"roleName": "text"
},
"reviewedAt": "2027-03-14T14:30:01",
"reviewNote": "text",
"membership": {
"reference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"communityReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"communityName": "text",
"member": {
"userReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"maskedName": "text",
"displayName": "text",
"roleName": "text"
},
"role": {
"reference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"name": "text",
"displayName": "text",
"description": "text",
"scope": "TENANT",
"communityReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"systemDefined": true,
"assignable": true,
"rank": 1,
"permissions": [
"COMMUNITY_VIEW"
],
"memberCount": 1
},
"status": "INVITED",
"joinMethod": "FOUNDED",
"memberNumber": "text",
"permissions": [
"COMMUNITY_VIEW"
],
"totalContributed": {
"amount": "250000.00",
"currencyCode": "NGN"
},
"invitedBy": {
"userReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"maskedName": "text",
"displayName": "text",
"roleName": "text"
},
"invitedAt": "2027-03-14T14:30:01",
"joinedAt": "2027-03-14T14:30:01",
"suspendedAt": "2027-03-14T14:30:01",
"suspensionReason": "text",
"exitedAt": "2027-03-14T14:30:01",
"removedAt": "2027-03-14T14:30:01",
"removalReason": "text",
"lastRoleChangeAt": "2027-03-14T14:30:01",
"approvalAuthorityChanged": true
},
"expiresAt": "2027-03-14T14:30:01",
"creationDateTime": "2027-03-14T14:30:01"
},
"description": "Apply to join a community"
} Responses
| Status | When |
|---|---|
200 | Join request submitted |
403 | Too many failed attempts |
404 | Community not found; Community role not found |
409 | Already a member; Community is not active; Member limit reached; This community admits members by invitation only; You have already applied |
DELETE Withdraw a join request
DELETE /community/{reference}/join-request/{joinRequestReference}
The requester withdraws their own pending request.
Headers
| Name | Notes |
|---|---|
Authorization | Bearer token |
X-Tenant | Your tenant |
X-Environment | test or live |
Path parameters
| Name |
|---|
reference |
joinRequestReference |
Example
Response: JoinRequestResponse
curl -X DELETE "https://api.bridgemoni.com/community/b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e/join-request/b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e" \
-H "Authorization: Bearer $BRIDGEMONI_TOKEN" \
-H "X-Tenant: $BRIDGEMONI_TENANT" \
-H "X-Environment: $BRIDGEMONI_ENV" {
"data": {
"reference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"communityReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"communityName": "text",
"requester": {
"userReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"maskedName": "text",
"displayName": "text",
"roleName": "text"
},
"status": "PENDING",
"message": "text",
"reviewedBy": {
"userReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"maskedName": "text",
"displayName": "text",
"roleName": "text"
},
"reviewedAt": "2027-03-14T14:30:01",
"reviewNote": "text",
"membership": {
"reference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"communityReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"communityName": "text",
"member": {
"userReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"maskedName": "text",
"displayName": "text",
"roleName": "text"
},
"role": {
"reference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"name": "text",
"displayName": "text",
"description": "text",
"scope": "TENANT",
"communityReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"systemDefined": true,
"assignable": true,
"rank": 1,
"permissions": [
"COMMUNITY_VIEW"
],
"memberCount": 1
},
"status": "INVITED",
"joinMethod": "FOUNDED",
"memberNumber": "text",
"permissions": [
"COMMUNITY_VIEW"
],
"totalContributed": {
"amount": "250000.00",
"currencyCode": "NGN"
},
"invitedBy": {
"userReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"maskedName": "text",
"displayName": "text",
"roleName": "text"
},
"invitedAt": "2027-03-14T14:30:01",
"joinedAt": "2027-03-14T14:30:01",
"suspendedAt": "2027-03-14T14:30:01",
"suspensionReason": "text",
"exitedAt": "2027-03-14T14:30:01",
"removedAt": "2027-03-14T14:30:01",
"removalReason": "text",
"lastRoleChangeAt": "2027-03-14T14:30:01",
"approvalAuthorityChanged": true
},
"expiresAt": "2027-03-14T14:30:01",
"creationDateTime": "2027-03-14T14:30:01"
},
"description": "Withdraw a join request"
} Responses
| Status | When |
|---|---|
200 | Join request withdrawn |
404 | Community not found; Join request not found |
409 | This application has already been decided |
POST Approve a join request
POST /community/{reference}/join-request/{joinRequestReference}/approve
Approves a request to join. The requester becomes a member immediately.
Headers
| Name | Notes |
|---|---|
Authorization | Bearer token |
X-Tenant | Your tenant |
X-Environment | test or live |
Content-Type | application/json |
Path parameters
| Name |
|---|
reference |
joinRequestReference |
Example
Request body: JoinRequestDecisionRequest · Response: JoinRequestResponse
curl -X POST "https://api.bridgemoni.com/community/b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e/join-request/b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e/approve" \
-H "Authorization: Bearer $BRIDGEMONI_TOKEN" \
-H "X-Tenant: $BRIDGEMONI_TENANT" \
-H "X-Environment: $BRIDGEMONI_ENV" \
-H "Content-Type: application/json" \
-d '{
"roleReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"reviewNote": "March payroll"
}' {
"roleReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"reviewNote": "March payroll"
} {
"data": {
"reference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"communityReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"communityName": "text",
"requester": {
"userReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"maskedName": "text",
"displayName": "text",
"roleName": "text"
},
"status": "PENDING",
"message": "text",
"reviewedBy": {
"userReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"maskedName": "text",
"displayName": "text",
"roleName": "text"
},
"reviewedAt": "2027-03-14T14:30:01",
"reviewNote": "text",
"membership": {
"reference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"communityReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"communityName": "text",
"member": {
"userReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"maskedName": "text",
"displayName": "text",
"roleName": "text"
},
"role": {
"reference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"name": "text",
"displayName": "text",
"description": "text",
"scope": "TENANT",
"communityReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"systemDefined": true,
"assignable": true,
"rank": 1,
"permissions": [
"COMMUNITY_VIEW"
],
"memberCount": 1
},
"status": "INVITED",
"joinMethod": "FOUNDED",
"memberNumber": "text",
"permissions": [
"COMMUNITY_VIEW"
],
"totalContributed": {
"amount": "250000.00",
"currencyCode": "NGN"
},
"invitedBy": {
"userReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"maskedName": "text",
"displayName": "text",
"roleName": "text"
},
"invitedAt": "2027-03-14T14:30:01",
"joinedAt": "2027-03-14T14:30:01",
"suspendedAt": "2027-03-14T14:30:01",
"suspensionReason": "text",
"exitedAt": "2027-03-14T14:30:01",
"removedAt": "2027-03-14T14:30:01",
"removalReason": "text",
"lastRoleChangeAt": "2027-03-14T14:30:01",
"approvalAuthorityChanged": true
},
"expiresAt": "2027-03-14T14:30:01",
"creationDateTime": "2027-03-14T14:30:01"
},
"description": "Approve a join request"
} Responses
| Status | When |
|---|---|
200 | Join request approved - the requester is now a member |
403 | Your role in this community does not allow this |
404 | Community not found; Community role not found; Join request not found |
409 | Already a member; Member limit reached; That role cannot be assigned; This application has already been decided |
POST Reject a join request
POST /community/{reference}/join-request/{joinRequestReference}/reject
Rejects a request to join.
Headers
| Name | Notes |
|---|---|
Authorization | Bearer token |
X-Tenant | Your tenant |
X-Environment | test or live |
Content-Type | application/json |
Path parameters
| Name |
|---|
reference |
joinRequestReference |
Example
Request body: JoinRequestDecisionRequest · Response: JoinRequestResponse
curl -X POST "https://api.bridgemoni.com/community/b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e/join-request/b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e/reject" \
-H "Authorization: Bearer $BRIDGEMONI_TOKEN" \
-H "X-Tenant: $BRIDGEMONI_TENANT" \
-H "X-Environment: $BRIDGEMONI_ENV" \
-H "Content-Type: application/json" \
-d '{
"roleReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"reviewNote": "March payroll"
}' {
"roleReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"reviewNote": "March payroll"
} {
"data": {
"reference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"communityReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"communityName": "text",
"requester": {
"userReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"maskedName": "text",
"displayName": "text",
"roleName": "text"
},
"status": "PENDING",
"message": "text",
"reviewedBy": {
"userReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"maskedName": "text",
"displayName": "text",
"roleName": "text"
},
"reviewedAt": "2027-03-14T14:30:01",
"reviewNote": "text",
"membership": {
"reference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"communityReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"communityName": "text",
"member": {
"userReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"maskedName": "text",
"displayName": "text",
"roleName": "text"
},
"role": {
"reference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"name": "text",
"displayName": "text",
"description": "text",
"scope": "TENANT",
"communityReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"systemDefined": true,
"assignable": true,
"rank": 1,
"permissions": [
"COMMUNITY_VIEW"
],
"memberCount": 1
},
"status": "INVITED",
"joinMethod": "FOUNDED",
"memberNumber": "text",
"permissions": [
"COMMUNITY_VIEW"
],
"totalContributed": {
"amount": "250000.00",
"currencyCode": "NGN"
},
"invitedBy": {
"userReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"maskedName": "text",
"displayName": "text",
"roleName": "text"
},
"invitedAt": "2027-03-14T14:30:01",
"joinedAt": "2027-03-14T14:30:01",
"suspendedAt": "2027-03-14T14:30:01",
"suspensionReason": "text",
"exitedAt": "2027-03-14T14:30:01",
"removedAt": "2027-03-14T14:30:01",
"removalReason": "text",
"lastRoleChangeAt": "2027-03-14T14:30:01",
"approvalAuthorityChanged": true
},
"expiresAt": "2027-03-14T14:30:01",
"creationDateTime": "2027-03-14T14:30:01"
},
"description": "Reject a join request"
} Responses
| Status | When |
|---|---|
200 | Join request rejected |
403 | Your role in this community does not allow this |
404 | Community not found; Join request not found |
409 | This application has already been decided |
POST Leave a community
POST /community/{reference}/leave
The calling user leaves the community themselves, rather than being removed by an officer.
Headers
| Name | Notes |
|---|---|
Authorization | Bearer token |
X-Tenant | Your tenant |
X-Environment | test or live |
Path parameters
| Name |
|---|
reference |
Example
Response: MembershipResponse
curl -X POST "https://api.bridgemoni.com/community/b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e/leave" \
-H "Authorization: Bearer $BRIDGEMONI_TOKEN" \
-H "X-Tenant: $BRIDGEMONI_TENANT" \
-H "X-Environment: $BRIDGEMONI_ENV" {
"data": {
"reference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"communityReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"communityName": "text",
"member": {
"userReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"maskedName": "text",
"displayName": "text",
"roleName": "text"
},
"role": {
"reference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"name": "text",
"displayName": "text",
"description": "text",
"scope": "TENANT",
"communityReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"systemDefined": true,
"assignable": true,
"rank": 1,
"permissions": [
"COMMUNITY_VIEW"
],
"memberCount": 1
},
"status": "INVITED",
"joinMethod": "FOUNDED",
"memberNumber": "text",
"permissions": [
"COMMUNITY_VIEW"
],
"totalContributed": {
"amount": "250000.00",
"currencyCode": "NGN"
},
"invitedBy": {
"userReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"maskedName": "text",
"displayName": "text",
"roleName": "text"
},
"invitedAt": "2027-03-14T14:30:01",
"joinedAt": "2027-03-14T14:30:01",
"suspendedAt": "2027-03-14T14:30:01",
"suspensionReason": "text",
"exitedAt": "2027-03-14T14:30:01",
"removedAt": "2027-03-14T14:30:01",
"removalReason": "text",
"lastRoleChangeAt": "2027-03-14T14:30:01",
"approvalAuthorityChanged": true
},
"description": "Leave a community"
} Responses
| Status | When |
|---|---|
200 | You have left the community |
404 | Community not found; Membership not found |
409 | That is not a valid change for this membership; The owner cannot leave or be removed |
GET List a community's members
GET /community/{reference}/member
Returns the community's roll - who belongs to it and what authority each of them holds.
Headers
| Name | Notes |
|---|---|
Authorization | Bearer token |
X-Tenant | Your tenant |
X-Environment | test or live |
Path parameters
| Name |
|---|
reference |
Query parameters
| Name | Default |
|---|---|
status | Optional |
pageNumber | Optional |
pageSize | Optional |
Example
Response: List<MembershipResponse>
curl -X GET "https://api.bridgemoni.com/community/b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e/member?status=value&pageNumber=value&pageSize=value" \
-H "Authorization: Bearer $BRIDGEMONI_TOKEN" \
-H "X-Tenant: $BRIDGEMONI_TENANT" \
-H "X-Environment: $BRIDGEMONI_ENV" {
"data": [
{
"reference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"communityReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"communityName": "text",
"member": {
"userReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"maskedName": "text",
"displayName": "text",
"roleName": "text"
},
"role": {
"reference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"name": "text",
"displayName": "text",
"description": "text",
"scope": "TENANT",
"communityReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"systemDefined": true,
"assignable": true,
"rank": 1,
"permissions": [
"COMMUNITY_VIEW"
],
"memberCount": 1
},
"status": "INVITED",
"joinMethod": "FOUNDED",
"memberNumber": "text",
"permissions": [
"COMMUNITY_VIEW"
],
"totalContributed": {
"amount": "250000.00",
"currencyCode": "NGN"
},
"invitedBy": {
"userReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"maskedName": "text",
"displayName": "text",
"roleName": "text"
},
"invitedAt": "2027-03-14T14:30:01",
"joinedAt": "2027-03-14T14:30:01",
"suspendedAt": "2027-03-14T14:30:01",
"suspensionReason": "text",
"exitedAt": "2027-03-14T14:30:01",
"removedAt": "2027-03-14T14:30:01",
"removalReason": "text",
"lastRoleChangeAt": "2027-03-14T14:30:01",
"approvalAuthorityChanged": true
}
],
"description": "List a community's members"
} Responses
| Status | When |
|---|---|
200 | Members fetched successfully |
403 | Your role in this community does not allow this |
404 | Community not found |
POST Add a member
POST /community/{reference}/member
Adds a person to the community's roll directly, without an invitation or a join request.
Headers
| Name | Notes |
|---|---|
Authorization | Bearer token |
X-Tenant | Your tenant |
X-Environment | test or live |
Content-Type | application/json |
Path parameters
| Name |
|---|
reference |
Example
Request body: AddMemberRequest · Response: MembershipResponse
curl -X POST "https://api.bridgemoni.com/community/b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e/member" \
-H "Authorization: Bearer $BRIDGEMONI_TOKEN" \
-H "X-Tenant: $BRIDGEMONI_TENANT" \
-H "X-Environment: $BRIDGEMONI_ENV" \
-H "Content-Type: application/json" \
-d '{
"identifierType": "MSISDN",
"identifier": "text",
"roleReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"memberNumber": "text",
"displayName": "Ada Obi"
}' {
"identifierType": "MSISDN",
"identifier": "text",
"roleReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"memberNumber": "text",
"displayName": "Ada Obi"
} {
"data": {
"reference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"communityReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"communityName": "text",
"member": {
"userReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"maskedName": "text",
"displayName": "text",
"roleName": "text"
},
"role": {
"reference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"name": "text",
"displayName": "text",
"description": "text",
"scope": "TENANT",
"communityReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"systemDefined": true,
"assignable": true,
"rank": 1,
"permissions": [
"COMMUNITY_VIEW"
],
"memberCount": 1
},
"status": "INVITED",
"joinMethod": "FOUNDED",
"memberNumber": "text",
"permissions": [
"COMMUNITY_VIEW"
],
"totalContributed": {
"amount": "250000.00",
"currencyCode": "NGN"
},
"invitedBy": {
"userReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"maskedName": "text",
"displayName": "text",
"roleName": "text"
},
"invitedAt": "2027-03-14T14:30:01",
"joinedAt": "2027-03-14T14:30:01",
"suspendedAt": "2027-03-14T14:30:01",
"suspensionReason": "text",
"exitedAt": "2027-03-14T14:30:01",
"removedAt": "2027-03-14T14:30:01",
"removalReason": "text",
"lastRoleChangeAt": "2027-03-14T14:30:01",
"approvalAuthorityChanged": true
},
"description": "Add a member"
} Responses
| Status | When |
|---|---|
200 | Member added successfully |
403 | Only the community owner may do this; That role outranks your own; Your role in this community does not allow this |
404 | Community not found; Community role not found; No such user |
409 | Already a member; Community is not active; Member limit reached; That role cannot be assigned; This community does not allow members to be added directly |
DELETE Remove a member
DELETE /community/{reference}/member/{membershipReference}
Removes a member from the community's roll.
Headers
| Name | Notes |
|---|---|
Authorization | Bearer token |
X-Tenant | Your tenant |
X-Environment | test or live |
Content-Type | application/json |
Path parameters
| Name |
|---|
reference |
membershipReference |
Example
Request body: MemberDecisionRequest · Response: MembershipResponse
curl -X DELETE "https://api.bridgemoni.com/community/b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e/member/b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e" \
-H "Authorization: Bearer $BRIDGEMONI_TOKEN" \
-H "X-Tenant: $BRIDGEMONI_TENANT" \
-H "X-Environment: $BRIDGEMONI_ENV" \
-H "Content-Type: application/json" \
-d '{
"reason": "March payroll"
}' {
"reason": "March payroll"
} {
"data": {
"reference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"communityReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"communityName": "text",
"member": {
"userReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"maskedName": "text",
"displayName": "text",
"roleName": "text"
},
"role": {
"reference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"name": "text",
"displayName": "text",
"description": "text",
"scope": "TENANT",
"communityReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"systemDefined": true,
"assignable": true,
"rank": 1,
"permissions": [
"COMMUNITY_VIEW"
],
"memberCount": 1
},
"status": "INVITED",
"joinMethod": "FOUNDED",
"memberNumber": "text",
"permissions": [
"COMMUNITY_VIEW"
],
"totalContributed": {
"amount": "250000.00",
"currencyCode": "NGN"
},
"invitedBy": {
"userReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"maskedName": "text",
"displayName": "text",
"roleName": "text"
},
"invitedAt": "2027-03-14T14:30:01",
"joinedAt": "2027-03-14T14:30:01",
"suspendedAt": "2027-03-14T14:30:01",
"suspensionReason": "text",
"exitedAt": "2027-03-14T14:30:01",
"removedAt": "2027-03-14T14:30:01",
"removalReason": "text",
"lastRoleChangeAt": "2027-03-14T14:30:01",
"approvalAuthorityChanged": true
},
"description": "Remove a member"
} Responses
| Status | When |
|---|---|
200 | Member removed |
403 | Your role in this community does not allow this |
404 | Membership not found |
409 | That is not a valid change for this membership; The owner cannot leave or be removed |
GET Fetch one member
GET /community/{reference}/member/{membershipReference}
Fetches a single membership, including the role it carries.
Headers
| Name | Notes |
|---|---|
Authorization | Bearer token |
X-Tenant | Your tenant |
X-Environment | test or live |
Path parameters
| Name |
|---|
reference |
membershipReference |
Example
Response: MembershipResponse
curl -X GET "https://api.bridgemoni.com/community/b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e/member/b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e" \
-H "Authorization: Bearer $BRIDGEMONI_TOKEN" \
-H "X-Tenant: $BRIDGEMONI_TENANT" \
-H "X-Environment: $BRIDGEMONI_ENV" {
"data": {
"reference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"communityReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"communityName": "text",
"member": {
"userReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"maskedName": "text",
"displayName": "text",
"roleName": "text"
},
"role": {
"reference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"name": "text",
"displayName": "text",
"description": "text",
"scope": "TENANT",
"communityReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"systemDefined": true,
"assignable": true,
"rank": 1,
"permissions": [
"COMMUNITY_VIEW"
],
"memberCount": 1
},
"status": "INVITED",
"joinMethod": "FOUNDED",
"memberNumber": "text",
"permissions": [
"COMMUNITY_VIEW"
],
"totalContributed": {
"amount": "250000.00",
"currencyCode": "NGN"
},
"invitedBy": {
"userReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"maskedName": "text",
"displayName": "text",
"roleName": "text"
},
"invitedAt": "2027-03-14T14:30:01",
"joinedAt": "2027-03-14T14:30:01",
"suspendedAt": "2027-03-14T14:30:01",
"suspensionReason": "text",
"exitedAt": "2027-03-14T14:30:01",
"removedAt": "2027-03-14T14:30:01",
"removalReason": "text",
"lastRoleChangeAt": "2027-03-14T14:30:01",
"approvalAuthorityChanged": true
},
"description": "Fetch one member"
} Responses
| Status | When |
|---|---|
200 | Member fetched successfully |
403 | That role outranks your own; Your role in this community does not allow this |
404 | Community not found; Membership not found |
POST Reinstate a suspended member
POST /community/{reference}/member/{membershipReference}/reinstate
Returns a suspended member to active.
Headers
| Name | Notes |
|---|---|
Authorization | Bearer token |
X-Tenant | Your tenant |
X-Environment | test or live |
Path parameters
| Name |
|---|
reference |
membershipReference |
Example
Response: MembershipResponse
curl -X POST "https://api.bridgemoni.com/community/b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e/member/b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e/reinstate" \
-H "Authorization: Bearer $BRIDGEMONI_TOKEN" \
-H "X-Tenant: $BRIDGEMONI_TENANT" \
-H "X-Environment: $BRIDGEMONI_ENV" {
"data": {
"reference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"communityReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"communityName": "text",
"member": {
"userReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"maskedName": "text",
"displayName": "text",
"roleName": "text"
},
"role": {
"reference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"name": "text",
"displayName": "text",
"description": "text",
"scope": "TENANT",
"communityReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"systemDefined": true,
"assignable": true,
"rank": 1,
"permissions": [
"COMMUNITY_VIEW"
],
"memberCount": 1
},
"status": "INVITED",
"joinMethod": "FOUNDED",
"memberNumber": "text",
"permissions": [
"COMMUNITY_VIEW"
],
"totalContributed": {
"amount": "250000.00",
"currencyCode": "NGN"
},
"invitedBy": {
"userReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"maskedName": "text",
"displayName": "text",
"roleName": "text"
},
"invitedAt": "2027-03-14T14:30:01",
"joinedAt": "2027-03-14T14:30:01",
"suspendedAt": "2027-03-14T14:30:01",
"suspensionReason": "text",
"exitedAt": "2027-03-14T14:30:01",
"removedAt": "2027-03-14T14:30:01",
"removalReason": "text",
"lastRoleChangeAt": "2027-03-14T14:30:01",
"approvalAuthorityChanged": true
},
"description": "Reinstate a suspended member"
} Responses
| Status | When |
|---|---|
200 | Member reinstated |
403 | Your role in this community does not allow this |
404 | Membership not found |
409 | That is not a valid change for this membership; The owner cannot leave or be removed |
PUT Change a member's role
PUT /community/{reference}/member/{membershipReference}/role
Assigns a different role to a member, changing what they are permitted to do inside the community - including whether their signature counts toward a quorum.
Headers
| Name | Notes |
|---|---|
Authorization | Bearer token |
X-Tenant | Your tenant |
X-Environment | test or live |
Content-Type | application/json |
Path parameters
| Name |
|---|
reference |
membershipReference |
Example
Request body: AssignMemberRoleRequest · Response: MembershipResponse
curl -X PUT "https://api.bridgemoni.com/community/b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e/member/b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e/role" \
-H "Authorization: Bearer $BRIDGEMONI_TOKEN" \
-H "X-Tenant: $BRIDGEMONI_TENANT" \
-H "X-Environment: $BRIDGEMONI_ENV" \
-H "Content-Type: application/json" \
-d '{
"roleReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"reason": "March payroll"
}' {
"roleReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"reason": "March payroll"
} {
"data": {
"reference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"communityReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"communityName": "text",
"member": {
"userReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"maskedName": "text",
"displayName": "text",
"roleName": "text"
},
"role": {
"reference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"name": "text",
"displayName": "text",
"description": "text",
"scope": "TENANT",
"communityReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"systemDefined": true,
"assignable": true,
"rank": 1,
"permissions": [
"COMMUNITY_VIEW"
],
"memberCount": 1
},
"status": "INVITED",
"joinMethod": "FOUNDED",
"memberNumber": "text",
"permissions": [
"COMMUNITY_VIEW"
],
"totalContributed": {
"amount": "250000.00",
"currencyCode": "NGN"
},
"invitedBy": {
"userReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"maskedName": "text",
"displayName": "text",
"roleName": "text"
},
"invitedAt": "2027-03-14T14:30:01",
"joinedAt": "2027-03-14T14:30:01",
"suspendedAt": "2027-03-14T14:30:01",
"suspensionReason": "text",
"exitedAt": "2027-03-14T14:30:01",
"removedAt": "2027-03-14T14:30:01",
"removalReason": "text",
"lastRoleChangeAt": "2027-03-14T14:30:01",
"approvalAuthorityChanged": true
},
"description": "Change a member's role"
} Responses
| Status | When |
|---|---|
200 | Member role updated successfully |
403 | Only the community owner may do this; That role outranks your own; Your role in this community does not allow this |
404 | Community not found; Community role not found; Membership not found |
409 | That role cannot be assigned; The owner's role cannot be reassigned |
POST Suspend a member
POST /community/{reference}/member/{membershipReference}/suspend
Suspends a member without removing them. They remain on the roll and their contribution history is preserved.
Headers
| Name | Notes |
|---|---|
Authorization | Bearer token |
X-Tenant | Your tenant |
X-Environment | test or live |
Content-Type | application/json |
Path parameters
| Name |
|---|
reference |
membershipReference |
Example
Request body: MemberDecisionRequest · Response: MembershipResponse
curl -X POST "https://api.bridgemoni.com/community/b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e/member/b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e/suspend" \
-H "Authorization: Bearer $BRIDGEMONI_TOKEN" \
-H "X-Tenant: $BRIDGEMONI_TENANT" \
-H "X-Environment: $BRIDGEMONI_ENV" \
-H "Content-Type: application/json" \
-d '{
"reason": "March payroll"
}' {
"reason": "March payroll"
} {
"data": {
"reference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"communityReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"communityName": "text",
"member": {
"userReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"maskedName": "text",
"displayName": "text",
"roleName": "text"
},
"role": {
"reference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"name": "text",
"displayName": "text",
"description": "text",
"scope": "TENANT",
"communityReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"systemDefined": true,
"assignable": true,
"rank": 1,
"permissions": [
"COMMUNITY_VIEW"
],
"memberCount": 1
},
"status": "INVITED",
"joinMethod": "FOUNDED",
"memberNumber": "text",
"permissions": [
"COMMUNITY_VIEW"
],
"totalContributed": {
"amount": "250000.00",
"currencyCode": "NGN"
},
"invitedBy": {
"userReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"maskedName": "text",
"displayName": "text",
"roleName": "text"
},
"invitedAt": "2027-03-14T14:30:01",
"joinedAt": "2027-03-14T14:30:01",
"suspendedAt": "2027-03-14T14:30:01",
"suspensionReason": "text",
"exitedAt": "2027-03-14T14:30:01",
"removedAt": "2027-03-14T14:30:01",
"removalReason": "text",
"lastRoleChangeAt": "2027-03-14T14:30:01",
"approvalAuthorityChanged": true
},
"description": "Suspend a member"
} Responses
| Status | When |
|---|---|
200 | Member suspended |
403 | Your role in this community does not allow this |
404 | Membership not found |
409 | That is not a valid change for this membership; The owner cannot leave or be removed |
POST Transfer ownership
POST /community/{reference}/owner
Transfers ownership of the community to another member. A community always has exactly one owner, so this is a handover rather than an addition.
Headers
| Name | Notes |
|---|---|
Authorization | Bearer token |
X-Tenant | Your tenant |
X-Environment | test or live |
Content-Type | application/json |
Path parameters
| Name |
|---|
reference |
Example
Request body: TransferOwnershipRequest · Response: MembershipResponse
curl -X POST "https://api.bridgemoni.com/community/b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e/owner" \
-H "Authorization: Bearer $BRIDGEMONI_TOKEN" \
-H "X-Tenant: $BRIDGEMONI_TENANT" \
-H "X-Environment: $BRIDGEMONI_ENV" \
-H "Content-Type: application/json" \
-d '{
"newOwnerMembershipReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"reason": "March payroll"
}' {
"newOwnerMembershipReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"reason": "March payroll"
} {
"data": {
"reference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"communityReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"communityName": "text",
"member": {
"userReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"maskedName": "text",
"displayName": "text",
"roleName": "text"
},
"role": {
"reference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"name": "text",
"displayName": "text",
"description": "text",
"scope": "TENANT",
"communityReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"systemDefined": true,
"assignable": true,
"rank": 1,
"permissions": [
"COMMUNITY_VIEW"
],
"memberCount": 1
},
"status": "INVITED",
"joinMethod": "FOUNDED",
"memberNumber": "text",
"permissions": [
"COMMUNITY_VIEW"
],
"totalContributed": {
"amount": "250000.00",
"currencyCode": "NGN"
},
"invitedBy": {
"userReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"maskedName": "text",
"displayName": "text",
"roleName": "text"
},
"invitedAt": "2027-03-14T14:30:01",
"joinedAt": "2027-03-14T14:30:01",
"suspendedAt": "2027-03-14T14:30:01",
"suspensionReason": "text",
"exitedAt": "2027-03-14T14:30:01",
"removedAt": "2027-03-14T14:30:01",
"removalReason": "text",
"lastRoleChangeAt": "2027-03-14T14:30:01",
"approvalAuthorityChanged": true
},
"description": "Transfer ownership"
} Responses
| Status | When |
|---|---|
200 | Ownership transferred |
403 | Only the community owner may do this |
404 | Community not found; Community role not found; Membership not found |
409 | The successor is not an active member |
GET List a community's payouts
GET /community/{reference}/payout
Lists payouts requested from the pot, pending and settled.
Headers
| Name | Notes |
|---|---|
Authorization | Bearer token |
X-Tenant | Your tenant |
X-Environment | test or live |
Path parameters
| Name |
|---|
reference |
Query parameters
| Name | Default |
|---|---|
status | Optional |
pageNumber | Optional |
pageSize | Optional |
Example
Response: List<CommunityPayoutResponse>
curl -X GET "https://api.bridgemoni.com/community/b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e/payout?status=value&pageNumber=value&pageSize=value" \
-H "Authorization: Bearer $BRIDGEMONI_TOKEN" \
-H "X-Tenant: $BRIDGEMONI_TENANT" \
-H "X-Environment: $BRIDGEMONI_ENV" {
"data": [
{
"reference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"communityReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"amount": {
"amount": "250000.00",
"currencyCode": "NGN"
},
"purpose": "text",
"status": "PENDING_APPROVAL",
"beneficiary": {
"userReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"maskedName": "text",
"displayName": "text",
"roleName": "text"
},
"beneficiaryAccountNumber": "text",
"requestedBy": {
"userReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"maskedName": "text",
"displayName": "text",
"roleName": "text"
},
"requestedAt": "2027-03-14T14:30:01",
"approval": {
"approvalsRequired": 1,
"approvalsRecorded": 1,
"eligibleApprovers": [
{
"...": "nested"
}
],
"approvals": [
{
"...": "nested"
}
],
"note": "text",
"approver": {
"...": "nested"
},
"approved": true,
"comment": "text",
"decidedAt": "2027-03-14T14:30:01"
},
"transactionReference": "text",
"communityBalanceAfter": {
"amount": "250000.00",
"currencyCode": "NGN"
},
"executedAt": "2027-03-14T14:30:01",
"rejectionReason": "text",
"failureReason": "text"
}
],
"description": "List a community's payouts"
} Responses
| Status | When |
|---|---|
200 | Payouts fetched successfully |
403 | Your role in this community does not allow this |
404 | Community not found |
POST Request a payout from the pot
POST /community/{reference}/payout
Requests that money leave the community's pot. The payout waits for the signatures the community's quorum rules require - this is the control that stops one officer moving the group's money alone.
Headers
| Name | Notes |
|---|---|
Authorization | Bearer token |
X-Tenant | Your tenant |
X-Environment | test or live |
Content-Type | application/json |
Path parameters
| Name |
|---|
reference |
Example
Request body: CommunityPayoutRequest · Response: CommunityPayoutResponse
curl -X POST "https://api.bridgemoni.com/community/b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e/payout" \
-H "Authorization: Bearer $BRIDGEMONI_TOKEN" \
-H "X-Tenant: $BRIDGEMONI_TENANT" \
-H "X-Environment: $BRIDGEMONI_ENV" \
-H "Content-Type: application/json" \
-d '{
"amount": 250000.0,
"currencyCode": "NGN",
"beneficiaryUserReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"beneficiaryAccountNumber": "0123456789",
"purpose": "March payroll",
"idempotencyKey": "text"
}' {
"amount": 250000.0,
"currencyCode": "NGN",
"beneficiaryUserReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"beneficiaryAccountNumber": "0123456789",
"purpose": "March payroll",
"idempotencyKey": "text"
} {
"data": {
"reference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"communityReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"amount": {
"amount": "250000.00",
"currencyCode": "NGN"
},
"purpose": "text",
"status": "PENDING_APPROVAL",
"beneficiary": {
"userReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"maskedName": "text",
"displayName": "text",
"roleName": "text"
},
"beneficiaryAccountNumber": "text",
"requestedBy": {
"userReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"maskedName": "text",
"displayName": "text",
"roleName": "text"
},
"requestedAt": "2027-03-14T14:30:01",
"approval": {
"approvalsRequired": 1,
"approvalsRecorded": 1,
"eligibleApprovers": [
{
"...": "nested"
}
],
"approvals": [
{
"...": "nested"
}
],
"note": "text",
"approver": {
"userReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"maskedName": "text",
"displayName": "text",
"roleName": "text"
},
"approved": true,
"comment": "text",
"decidedAt": "2027-03-14T14:30:01"
},
"transactionReference": "text",
"communityBalanceAfter": {
"amount": "250000.00",
"currencyCode": "NGN"
},
"executedAt": "2027-03-14T14:30:01",
"rejectionReason": "text",
"failureReason": "text"
},
"description": "Request a payout from the pot"
} Responses
| Status | When |
|---|---|
200 | Payout requested - awaiting signatures |
400 | A contribution must be a positive amount |
403 | You cannot sign for a payout you requested; Your role in this community does not allow this |
404 | Community not found; This community has no account in that currency |
409 | Community is not active; The pot does not hold enough available funds; This community has too few signatories |
POST Approve a payout
POST /community/{reference}/payout/{payoutReference}/approve
Records one officer's signature on a pending payout. The money moves once the quorum is met, so a partial approval is a successful call, not a failure.
Headers
| Name | Notes |
|---|---|
Authorization | Bearer token |
X-Tenant | Your tenant |
X-Environment | test or live |
Content-Type | application/json |
Path parameters
| Name |
|---|
reference |
payoutReference |
Example
Request body: CommunityApprovalDecisionRequest · Response: CommunityPayoutResponse
curl -X POST "https://api.bridgemoni.com/community/b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e/payout/b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e/approve" \
-H "Authorization: Bearer $BRIDGEMONI_TOKEN" \
-H "X-Tenant: $BRIDGEMONI_TENANT" \
-H "X-Environment: $BRIDGEMONI_ENV" \
-H "Content-Type: application/json" \
-d '{
"comment": "March payroll"
}' {
"comment": "March payroll"
} {
"data": {
"reference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"communityReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"amount": {
"amount": "250000.00",
"currencyCode": "NGN"
},
"purpose": "text",
"status": "PENDING_APPROVAL",
"beneficiary": {
"userReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"maskedName": "text",
"displayName": "text",
"roleName": "text"
},
"beneficiaryAccountNumber": "text",
"requestedBy": {
"userReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"maskedName": "text",
"displayName": "text",
"roleName": "text"
},
"requestedAt": "2027-03-14T14:30:01",
"approval": {
"approvalsRequired": 1,
"approvalsRecorded": 1,
"eligibleApprovers": [
{
"...": "nested"
}
],
"approvals": [
{
"...": "nested"
}
],
"note": "text",
"approver": {
"userReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"maskedName": "text",
"displayName": "text",
"roleName": "text"
},
"approved": true,
"comment": "text",
"decidedAt": "2027-03-14T14:30:01"
},
"transactionReference": "text",
"communityBalanceAfter": {
"amount": "250000.00",
"currencyCode": "NGN"
},
"executedAt": "2027-03-14T14:30:01",
"rejectionReason": "text",
"failureReason": "text"
},
"description": "Approve a payout"
} Responses
| Status | When |
|---|---|
200 | Payout approved |
400 | A contribution must be a positive amount |
403 | You cannot sign for a payout you requested; Your role in this community does not allow this |
404 | Community not found; Payout not found; This community has no account in that currency |
409 | Community is not active; The pot does not hold enough available funds; This community has too few signatories; This payout has already been decided |
POST Reject a payout
POST /community/{reference}/payout/{payoutReference}/reject
Rejects a pending payout. Nothing leaves the pot.
Headers
| Name | Notes |
|---|---|
Authorization | Bearer token |
X-Tenant | Your tenant |
X-Environment | test or live |
Content-Type | application/json |
Path parameters
| Name |
|---|
reference |
payoutReference |
Example
Request body: CommunityApprovalDecisionRequest · Response: CommunityPayoutResponse
curl -X POST "https://api.bridgemoni.com/community/b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e/payout/b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e/reject" \
-H "Authorization: Bearer $BRIDGEMONI_TOKEN" \
-H "X-Tenant: $BRIDGEMONI_TENANT" \
-H "X-Environment: $BRIDGEMONI_ENV" \
-H "Content-Type: application/json" \
-d '{
"comment": "March payroll"
}' {
"comment": "March payroll"
} {
"data": {
"reference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"communityReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"amount": {
"amount": "250000.00",
"currencyCode": "NGN"
},
"purpose": "text",
"status": "PENDING_APPROVAL",
"beneficiary": {
"userReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"maskedName": "text",
"displayName": "text",
"roleName": "text"
},
"beneficiaryAccountNumber": "text",
"requestedBy": {
"userReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"maskedName": "text",
"displayName": "text",
"roleName": "text"
},
"requestedAt": "2027-03-14T14:30:01",
"approval": {
"approvalsRequired": 1,
"approvalsRecorded": 1,
"eligibleApprovers": [
{
"...": "nested"
}
],
"approvals": [
{
"...": "nested"
}
],
"note": "text",
"approver": {
"userReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"maskedName": "text",
"displayName": "text",
"roleName": "text"
},
"approved": true,
"comment": "text",
"decidedAt": "2027-03-14T14:30:01"
},
"transactionReference": "text",
"communityBalanceAfter": {
"amount": "250000.00",
"currencyCode": "NGN"
},
"executedAt": "2027-03-14T14:30:01",
"rejectionReason": "text",
"failureReason": "text"
},
"description": "Reject a payout"
} Responses
| Status | When |
|---|---|
200 | Payout rejected |
403 | Your role in this community does not allow this |
404 | Community not found; Payout not found |
409 | This payout has already been decided |
GET List a community's roles
GET /community/{reference}/role
Lists the roles defined inside one community.
Headers
| Name | Notes |
|---|---|
Authorization | Bearer token |
X-Tenant | Your tenant |
X-Environment | test or live |
Path parameters
| Name |
|---|
reference |
Example
Response: List<CommunityRoleResponse>
curl -X GET "https://api.bridgemoni.com/community/b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e/role" \
-H "Authorization: Bearer $BRIDGEMONI_TOKEN" \
-H "X-Tenant: $BRIDGEMONI_TENANT" \
-H "X-Environment: $BRIDGEMONI_ENV" {
"data": [
{
"reference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"name": "text",
"displayName": "text",
"description": "text",
"scope": "TENANT",
"communityReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"systemDefined": true,
"assignable": true,
"rank": 1,
"permissions": [
"COMMUNITY_VIEW"
],
"memberCount": 1
}
],
"description": "List a community's roles"
} Responses
| Status | When |
|---|---|
200 | Community roles fetched successfully |
POST Create a role in a community
POST /community/{reference}/role
Creates a role inside one community, defining what its holders may do and whether their signature counts toward a quorum.
Headers
| Name | Notes |
|---|---|
Authorization | Bearer token |
X-Tenant | Your tenant |
X-Environment | test or live |
Content-Type | application/json |
Path parameters
| Name |
|---|
reference |
Example
Request body: CommunityRoleRequest · Response: CommunityRoleResponse
curl -X POST "https://api.bridgemoni.com/community/b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e/role" \
-H "Authorization: Bearer $BRIDGEMONI_TOKEN" \
-H "X-Tenant: $BRIDGEMONI_TENANT" \
-H "X-Environment: $BRIDGEMONI_ENV" \
-H "Content-Type: application/json" \
-d '{
"name": "Ada Obi",
"displayName": "Ada Obi",
"description": "March payroll",
"rank": 1,
"permissions": [
"COMMUNITY_VIEW"
]
}' {
"name": "Ada Obi",
"displayName": "Ada Obi",
"description": "March payroll",
"rank": 1,
"permissions": [
"COMMUNITY_VIEW"
]
} {
"data": {
"reference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"name": "text",
"displayName": "text",
"description": "text",
"scope": "TENANT",
"communityReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"systemDefined": true,
"assignable": true,
"rank": 1,
"permissions": [
"COMMUNITY_VIEW"
],
"memberCount": 1
},
"description": "Create a role in a community"
} Responses
| Status | When |
|---|---|
200 | Community role created successfully |
400 | A role must grant at least one permission |
409 | Community role name already in use |
DELETE Delete a community's role
DELETE /community/{reference}/role/{roleReference}
Deletes a role from one community.
Headers
| Name | Notes |
|---|---|
Authorization | Bearer token |
X-Tenant | Your tenant |
X-Environment | test or live |
Path parameters
| Name |
|---|
reference |
roleReference |
Example
Response: Void
curl -X DELETE "https://api.bridgemoni.com/community/b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e/role/b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e" \
-H "Authorization: Bearer $BRIDGEMONI_TOKEN" \
-H "X-Tenant: $BRIDGEMONI_TENANT" \
-H "X-Environment: $BRIDGEMONI_ENV" {
"description": "Delete a community's role"
} Responses
| Status | When |
|---|---|
200 | Community role deleted successfully |
404 | Community role not found |
409 | This role is built in |
PUT Update a community's role
PUT /community/{reference}/role/{roleReference}
Updates a role inside one community. Takes effect for every member currently holding it.
Headers
| Name | Notes |
|---|---|
Authorization | Bearer token |
X-Tenant | Your tenant |
X-Environment | test or live |
Content-Type | application/json |
Path parameters
| Name |
|---|
reference |
roleReference |
Example
Request body: CommunityRoleRequest · Response: CommunityRoleResponse
curl -X PUT "https://api.bridgemoni.com/community/b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e/role/b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e" \
-H "Authorization: Bearer $BRIDGEMONI_TOKEN" \
-H "X-Tenant: $BRIDGEMONI_TENANT" \
-H "X-Environment: $BRIDGEMONI_ENV" \
-H "Content-Type: application/json" \
-d '{
"name": "Ada Obi",
"displayName": "Ada Obi",
"description": "March payroll",
"rank": 1,
"permissions": [
"COMMUNITY_VIEW"
]
}' {
"name": "Ada Obi",
"displayName": "Ada Obi",
"description": "March payroll",
"rank": 1,
"permissions": [
"COMMUNITY_VIEW"
]
} {
"data": {
"reference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"name": "text",
"displayName": "text",
"description": "text",
"scope": "TENANT",
"communityReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"systemDefined": true,
"assignable": true,
"rank": 1,
"permissions": [
"COMMUNITY_VIEW"
],
"memberCount": 1
},
"description": "Update a community's role"
} Responses
| Status | When |
|---|---|
200 | Community role updated successfully |
400 | A role must grant at least one permission |
404 | Community role not found |
409 | This role is built in |
GET Preview an invitation
GET /invitation/{code}
Reads an invitation by its code without accepting it, so the recipient can see which community they are being asked to join before committing.
Headers
| Name | Notes |
|---|---|
Authorization | Bearer token |
X-Tenant | Your tenant |
X-Environment | test or live |
Path parameters
| Name |
|---|
code |
Example
Response: CommunityInvitationPreviewResponse
curl -X GET "https://api.bridgemoni.com/invitation/BRG-001" \
-H "Authorization: Bearer $BRIDGEMONI_TOKEN" \
-H "X-Tenant: $BRIDGEMONI_TENANT" \
-H "X-Environment: $BRIDGEMONI_ENV" {
"data": {
"communityReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"communityName": "text",
"communityDescription": "text",
"memberCount": 1,
"roleName": "text",
"invitedByMaskedName": "text",
"message": "text",
"expiresAt": "2027-03-14T14:30:01",
"redeemable": true
},
"description": "Preview an invitation"
} Responses
| Status | When |
|---|---|
200 | Invitation retrieved successfully |
403 | Too many failed attempts |
404 | This invitation cannot be used |
POST Accept an invitation
POST /invitation/{code}/accept
Accepts an invitation and joins the community, creating the caller's membership.
Headers
| Name | Notes |
|---|---|
Authorization | Bearer token |
X-Tenant | Your tenant |
X-Environment | test or live |
Path parameters
| Name |
|---|
code |
Example
Response: MembershipResponse
curl -X POST "https://api.bridgemoni.com/invitation/BRG-001/accept" \
-H "Authorization: Bearer $BRIDGEMONI_TOKEN" \
-H "X-Tenant: $BRIDGEMONI_TENANT" \
-H "X-Environment: $BRIDGEMONI_ENV" {
"data": {
"reference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"communityReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"communityName": "text",
"member": {
"userReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"maskedName": "text",
"displayName": "text",
"roleName": "text"
},
"role": {
"reference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"name": "text",
"displayName": "text",
"description": "text",
"scope": "TENANT",
"communityReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"systemDefined": true,
"assignable": true,
"rank": 1,
"permissions": [
"COMMUNITY_VIEW"
],
"memberCount": 1
},
"status": "INVITED",
"joinMethod": "FOUNDED",
"memberNumber": "text",
"permissions": [
"COMMUNITY_VIEW"
],
"totalContributed": {
"amount": "250000.00",
"currencyCode": "NGN"
},
"invitedBy": {
"userReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"maskedName": "text",
"displayName": "text",
"roleName": "text"
},
"invitedAt": "2027-03-14T14:30:01",
"joinedAt": "2027-03-14T14:30:01",
"suspendedAt": "2027-03-14T14:30:01",
"suspensionReason": "text",
"exitedAt": "2027-03-14T14:30:01",
"removedAt": "2027-03-14T14:30:01",
"removalReason": "text",
"lastRoleChangeAt": "2027-03-14T14:30:01",
"approvalAuthorityChanged": true
},
"description": "Accept an invitation"
} Responses
| Status | When |
|---|---|
200 | You have joined the community |
403 | Too many failed attempts |
404 | Community not found; Community role not found; This invitation cannot be used |
409 | Already a member; Community is not active; Member limit reached |
POST Decline an invitation
POST /invitation/{code}/decline
Declines an invitation without joining.
Headers
| Name | Notes |
|---|---|
Authorization | Bearer token |
X-Tenant | Your tenant |
X-Environment | test or live |
Path parameters
| Name |
|---|
code |
Example
Response: CommunityInvitationResponse
curl -X POST "https://api.bridgemoni.com/invitation/BRG-001/decline" \
-H "Authorization: Bearer $BRIDGEMONI_TOKEN" \
-H "X-Tenant: $BRIDGEMONI_TENANT" \
-H "X-Environment: $BRIDGEMONI_ENV" {
"data": {
"reference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"communityReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"communityName": "text",
"invitationType": "DIRECT",
"invitationStatus": "PENDING",
"code": "text",
"shareUrl": "text",
"invitee": {
"identifierType": "MSISDN",
"identifier": "text",
"existsOnBridge": true,
"userReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"maskedName": "text"
},
"role": {
"reference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"name": "text",
"displayName": "text",
"description": "text",
"scope": "TENANT",
"communityReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"systemDefined": true,
"assignable": true,
"rank": 1,
"permissions": [
"COMMUNITY_VIEW"
],
"memberCount": 1
},
"maximumUses": 1,
"useCount": 1,
"remainingUses": 1,
"message": "text",
"invitedBy": {
"userReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"maskedName": "text",
"displayName": "text",
"roleName": "text"
},
"expiresAt": "2027-03-14T14:30:01",
"respondedAt": "2027-03-14T14:30:01",
"creationDateTime": "2027-03-14T14:30:01"
},
"description": "Decline an invitation"
} Responses
| Status | When |
|---|---|
200 | Invitation declined |
403 | Too many failed attempts |
404 | Community role not found; This invitation cannot be used |
GET List the caller's own memberships
GET /membership
Lists every community the calling user belongs to, and their role in each.
Headers
| Name | Notes |
|---|---|
Authorization | Bearer token |
X-Tenant | Your tenant |
X-Environment | test or live |
Query parameters
| Name | Default |
|---|---|
status | Optional |
pageNumber | Optional |
pageSize | Optional |
Example
Response: List<MembershipResponse>
curl -X GET "https://api.bridgemoni.com/membership?status=value&pageNumber=value&pageSize=value" \
-H "Authorization: Bearer $BRIDGEMONI_TOKEN" \
-H "X-Tenant: $BRIDGEMONI_TENANT" \
-H "X-Environment: $BRIDGEMONI_ENV" {
"data": [
{
"reference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"communityReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"communityName": "text",
"member": {
"userReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"maskedName": "text",
"displayName": "text",
"roleName": "text"
},
"role": {
"reference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"name": "text",
"displayName": "text",
"description": "text",
"scope": "TENANT",
"communityReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"systemDefined": true,
"assignable": true,
"rank": 1,
"permissions": [
"COMMUNITY_VIEW"
],
"memberCount": 1
},
"status": "INVITED",
"joinMethod": "FOUNDED",
"memberNumber": "text",
"permissions": [
"COMMUNITY_VIEW"
],
"totalContributed": {
"amount": "250000.00",
"currencyCode": "NGN"
},
"invitedBy": {
"userReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"maskedName": "text",
"displayName": "text",
"roleName": "text"
},
"invitedAt": "2027-03-14T14:30:01",
"joinedAt": "2027-03-14T14:30:01",
"suspendedAt": "2027-03-14T14:30:01",
"suspensionReason": "text",
"exitedAt": "2027-03-14T14:30:01",
"removedAt": "2027-03-14T14:30:01",
"removalReason": "text",
"lastRoleChangeAt": "2027-03-14T14:30:01",
"approvalAuthorityChanged": true
}
],
"description": "List the caller's own memberships"
} Responses
| Status | When |
|---|---|
200 | Memberships fetched successfully |
Generated from the OpenAPI document. Branch on the HTTP status: there is no machine-readable error code on the wire. Errors