API reference · Communities & institutions

Credit unions

POST Found a credit union

POST /credit-union

Attaches a credit union profile to an existing community. Membership, roles and the event log stay the community's. The union is created in DRAFT: no accounts exist until it is activated.

Headers

NameNotes
AuthorizationBearer token
X-TenantYour tenant
X-Environmenttest or live
Content-Typeapplication/json

Example

Request body: CreditUnionRequest · Response: GenericResponseCreditUnionResponse

curl -X POST "https://api.bridgemoni.com/credit-union" \
  -H "Authorization: Bearer $BRIDGEMONI_TOKEN" \
  -H "X-Tenant: $BRIDGEMONI_TENANT" \
  -H "X-Environment: $BRIDGEMONI_ENV" \
  -H "Content-Type: application/json" \
  -d '{
  "communityReference": "1f4c9d02-3b77-4a11-9a1e-2c5b8e7d6f30",
  "registeredName": "Lagos Traders Cooperative Thrift and Credit Society",
  "registrationNumber": "LA/CTCS/2024/1187",
  "registrarName": "Lagos State Ministry of Commerce",
  "tier": "PRIMARY",
  "nodeKind": "SOCIETY",
  "commonBondType": "ASSOCIATIONAL",
  "commonBondDescriptor": "Registered traders of Balogun Market",
  "bondVerificationRequired": true,
  "baseCurrencyCode": "NGN",
  "countryCode": "NG",
  "fiscalYearEndMonth": 12,
  "fiscalYearEndDay": 31,
  "shareUnitPrice": 1000.0,
  "minimumShareUnits": 20,
  "maximumShareUnitsPerMember": 5000,
  "maximumShareholdingBasisPoints": 1000,
  "entranceFee": 2000.0,
  "sharesRefundable": false,
  "minimumPeriodicDeposit": 10000.0,
  "depositFrequency": "MONTHLY",
  "withdrawableDepositsEnabled": false,
  "depositNoticePeriodDays": 0,
  "defaultLoanMultiplier": 3.0,
  "maximumLoanTermMonths": 48,
  "loanApprovalsRequired": 3,
  "selfGuaranteeBasisPoints": 9000,
  "statutoryReserveBasisPoints": 2000,
  "institutionalCapitalTargetBasisPoints": 800,
  "byeLawsDocumentReference": "doc_7f21a4",
  "byeLawsVersion": "2024.1"
}'

Responses

StatusWhen
200Credit union created successfully

GET Read a credit union

GET /credit-union/{reference}

Headers

NameNotes
AuthorizationBearer token
X-TenantYour tenant
X-Environmenttest or live

Path parameters

Name
reference

Example

Response: GenericResponseCreditUnionResponse

curl -X GET "https://api.bridgemoni.com/credit-union/b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e" \
  -H "Authorization: Bearer $BRIDGEMONI_TOKEN" \
  -H "X-Tenant: $BRIDGEMONI_TENANT" \
  -H "X-Environment: $BRIDGEMONI_ENV"

Responses

StatusWhen
200Credit union retrieved successfully

PUT Change a credit union's bye-law parameters

PUT /credit-union/{reference}

Headers

NameNotes
AuthorizationBearer token
X-TenantYour tenant
X-Environmenttest or live
Content-Typeapplication/json

Path parameters

Name
reference

Example

Request body: UpdateCreditUnionRequest · Response: GenericResponseCreditUnionResponse

curl -X PUT "https://api.bridgemoni.com/credit-union/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 '{
  "registeredName": {
    "name": "string"
  },
  "registrationNumber": "string",
  "registrarName": "string",
  "commonBondDescriptor": "string",
  "bondVerificationRequired": true,
  "shareUnitPrice": 0,
  "minimumShareUnits": 0,
  "maximumShareUnitsPerMember": 0,
  "maximumShareholdingBasisPoints": 0,
  "entranceFee": 0,
  "minimumPeriodicDeposit": 0,
  "depositFrequency": "string",
  "depositNoticePeriodDays": 0,
  "defaultLoanMultiplier": 0,
  "maximumLoanTermMonths": 0,
  "loanApprovalsRequired": 0,
  "selfGuaranteeBasisPoints": 0,
  "statutoryReserveBasisPoints": 0,
  "institutionalCapitalTargetBasisPoints": 0,
  "byeLawsDocumentReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
  "byeLawsVersion": "string"
}'

Responses

StatusWhen
200Credit union updated successfully

POST Activate a credit union

POST /credit-union/{reference}/activate

DRAFT to ACTIVE. Opens the five ledger pockets in the union's base currency: operating, deposit, share capital, reserve and suspense. A branch keeps no books and opens none.

Headers

NameNotes
AuthorizationBearer token
X-TenantYour tenant
X-Environmenttest or live

Path parameters

Name
reference

Example

Response: GenericResponseCreditUnionResponse

curl -X POST "https://api.bridgemoni.com/credit-union/b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e/activate" \
  -H "Authorization: Bearer $BRIDGEMONI_TOKEN" \
  -H "X-Tenant: $BRIDGEMONI_TENANT" \
  -H "X-Environment: $BRIDGEMONI_ENV"

Responses

StatusWhen
200Credit union activated successfully

POST Open a branch

POST /credit-union/{reference}/branch

A branch is an operating location of this society. It has no accounts, no member positions and no books; everything it takes in is its parent's.

Headers

NameNotes
AuthorizationBearer token
X-TenantYour tenant
X-Environmenttest or live
Content-Typeapplication/json

Path parameters

Name
reference

Example

Request body: OpenBranchRequest · Response: GenericResponseCreditUnionResponse

curl -X POST "https://api.bridgemoni.com/credit-union/b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e/branch" \
  -H "Authorization: Bearer $BRIDGEMONI_TOKEN" \
  -H "X-Tenant: $BRIDGEMONI_TENANT" \
  -H "X-Environment: $BRIDGEMONI_ENV" \
  -H "Content-Type: application/json" \
  -d '{
  "name": "Balogun East Office",
  "countryCode": "string",
  "managerUserReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
  "openedOn": "2026-09-01"
}'

Responses

StatusWhen
200Branch opened successfully

GET What is stopping this union being dissolved

GET /credit-union/{reference}/dissolution/blockers

Live affiliations and open branches, each named.

Headers

NameNotes
AuthorizationBearer token
X-TenantYour tenant
X-Environmenttest or live

Path parameters

Name
reference

Example

Response: GenericResponseDissolutionBlockerResponse

curl -X GET "https://api.bridgemoni.com/credit-union/b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e/dissolution/blockers" \
  -H "Authorization: Bearer $BRIDGEMONI_TOKEN" \
  -H "X-Tenant: $BRIDGEMONI_TENANT" \
  -H "X-Environment: $BRIDGEMONI_ENV"

Responses

StatusWhen
200Dissolution blockers retrieved successfully

POST Complete dissolution

POST /credit-union/{reference}/dissolution/complete

Refused while any blocker stands.

Headers

NameNotes
AuthorizationBearer token
X-TenantYour tenant
X-Environmenttest or live

Path parameters

Name
reference

Example

Response: GenericResponseCreditUnionResponse

curl -X POST "https://api.bridgemoni.com/credit-union/b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e/dissolution/complete" \
  -H "Authorization: Bearer $BRIDGEMONI_TOKEN" \
  -H "X-Tenant: $BRIDGEMONI_TENANT" \
  -H "X-Environment: $BRIDGEMONI_ENV"

Responses

StatusWhen
200Credit union dissolved successfully

POST Begin dissolution

POST /credit-union/{reference}/dissolve

Moves the union to DISSOLVING, not DISSOLVED. Winding up a union that has children is a process: every affiliate must be released or transferred first.

Headers

NameNotes
AuthorizationBearer token
X-TenantYour tenant
X-Environmenttest or live
Content-Typeapplication/json

Path parameters

Name
reference

Example

Request body: DissolveCreditUnionRequest · Response: GenericResponseCreditUnionResponse

curl -X POST "https://api.bridgemoni.com/credit-union/b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e/dissolve" \
  -H "Authorization: Bearer $BRIDGEMONI_TOKEN" \
  -H "X-Tenant: $BRIDGEMONI_TENANT" \
  -H "X-Environment: $BRIDGEMONI_ENV" \
  -H "Content-Type: application/json" \
  -d '{
  "resolutionDocumentReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
  "reason": "string"
}'

Responses

StatusWhen
200Dissolution started successfully

POST Suspend a credit union

POST /credit-union/{reference}/suspend

A suspended union keeps taking repayments and paying out deposits, and stops disbursing, taking new deposits and declaring.

Headers

NameNotes
AuthorizationBearer token
X-TenantYour tenant
X-Environmenttest or live
Content-Typeapplication/json

Path parameters

Name
reference

Example

Request body: SuspendCreditUnionRequest · Response: GenericResponseCreditUnionResponse

curl -X POST "https://api.bridgemoni.com/credit-union/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": "string"
}'

Responses

StatusWhen
200Credit union suspended successfully

GET Read the subtree

GET /credit-union/{reference}/tree

Walks the tree below this union with a depth bound, a visited set and a node budget. A node marked truncated is where the walk stopped, so a partial answer says so.

Headers

NameNotes
AuthorizationBearer token
X-TenantYour tenant
X-Environmenttest or live

Path parameters

Name
reference

Example

Response: GenericResponseCreditUnionTreeResponse

curl -X GET "https://api.bridgemoni.com/credit-union/b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e/tree" \
  -H "Authorization: Bearer $BRIDGEMONI_TOKEN" \
  -H "X-Tenant: $BRIDGEMONI_TENANT" \
  -H "X-Environment: $BRIDGEMONI_ENV"

Responses

StatusWhen
200Credit union tree retrieved successfully

POST Lift a suspension

POST /credit-union/{reference}/unsuspend

Headers

NameNotes
AuthorizationBearer token
X-TenantYour tenant
X-Environmenttest or live

Path parameters

Name
reference

Example

Response: GenericResponseCreditUnionResponse

curl -X POST "https://api.bridgemoni.com/credit-union/b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e/unsuspend" \
  -H "Authorization: Bearer $BRIDGEMONI_TOKEN" \
  -H "X-Tenant: $BRIDGEMONI_TENANT" \
  -H "X-Environment: $BRIDGEMONI_ENV"

Responses

StatusWhen
200Credit union reinstated successfully

GET List credit unions

GET /credit-unions

Headers

NameNotes
AuthorizationBearer token
X-TenantYour tenant
X-Environmenttest or live

Query parameters

NameDefault
statusOptional
tierOptional
parentOptional
page0
size25

Example

Response: GenericResponseCreditUnionPageResponse

curl -X GET "https://api.bridgemoni.com/credit-unions?page=value&size=25" \
  -H "Authorization: Bearer $BRIDGEMONI_TOKEN" \
  -H "X-Tenant: $BRIDGEMONI_TENANT" \
  -H "X-Environment: $BRIDGEMONI_ENV"

Responses

StatusWhen
200Credit unions retrieved successfully

Generated from the OpenAPI document. Branch on the HTTP status: there is no machine-readable error code on the wire. Errors