API reference · Communities & institutions

Credit union servicing

POST Upload an employer's check-off file

POST /credit-union/{reference}/check-off

The ingestion is generic; the parser is not. Lines are matched on the member number alone - a name is never matched against money - and anything the file cannot resolve to one member and one loan stays unmatched for an operator. Nothing posts on upload.

Headers

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

Path parameters

Name
reference

Example

Request body: UploadCheckOffBatchRequest · Response: GenericResponseCheckOffBatchResponse

curl -X POST "https://api.bridgemoni.com/credit-union/b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e/check-off" \
  -H "Authorization: Bearer $BRIDGEMONI_TOKEN" \
  -H "X-Tenant: $BRIDGEMONI_TENANT" \
  -H "X-Environment: $BRIDGEMONI_ENV" \
  -H "Content-Type: application/json" \
  -d '{
  "employerName": "string",
  "employerReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
  "periodLabel": "string",
  "deductedOn": "2026-09-25",
  "lines": [
    {
      "memberNumber": "string",
      "employeeNumber": "string",
      "memberName": "string",
      "amount": 0
    }
  ],
  "idempotencyKey": "string"
}'

Responses

StatusWhen
200Check-off batch uploaded successfully

GET Read a check-off batch and its lines

GET /credit-union/{reference}/check-off/{batchReference}

Headers

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

Path parameters

Name
reference
batchReference

Example

Response: GenericResponseCheckOffBatchResponse

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

Responses

StatusWhen
200Check-off batch retrieved successfully

POST Release a check-off batch

POST /credit-union/{reference}/check-off/{batchReference}/release

Posts every matched line as a repayment. Release is a person's decision, taken after they have looked at the unmatched lines.

Headers

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

Path parameters

Name
reference
batchReference

Example

Response: GenericResponseCheckOffBatchResponse

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

Responses

StatusWhen
200Check-off batch released successfully

POST Escheat a long-dormant balance

POST /credit-union/{reference}/deposit-account/{accountReference}/escheat

Behind an operator gate and refused without a statutory basis and a destination. Where the money goes is jurisdictional - the state in most frameworks, the apex in a few - and the module is told rather than guessing. An escheatment nobody can trace is indistinguishable from a loss.

Headers

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

Path parameters

Name
reference
accountReference

Example

Request body: EscheatDepositAccountRequest · Response: GenericResponseDormancyRecordResponse

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

Responses

StatusWhen
200Balance escheated successfully

POST Reactivate a dormant deposit account

POST /credit-union/{reference}/deposit-account/{accountReference}/reactivate

Dormancy forfeits nothing: interest and rebates keep accruing while an account sleeps and the balance stays the member's. Waking it up is a member act.

Headers

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

Path parameters

Name
reference
accountReference

Example

Request body: ReactivateDepositAccountRequest · Response: GenericResponseDepositAccountResponse

curl -X POST "https://api.bridgemoni.com/credit-union/b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e/deposit-account/b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e/reactivate" \
  -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
200Deposit account reactivated successfully

GET Read the dormant-balance register

GET /credit-union/{reference}/dormancy-register

The separate accounting record of dormant balances the union is required to keep.

Headers

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

Path parameters

Name
reference

Query parameters

NameDefault
statusOptional

Example

Response: GenericResponseListDormancyRecordResponse

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

Responses

StatusWhen
200Dormancy register retrieved successfully

GET Read a guarantee call

GET /credit-union/{reference}/guarantee-call/{callReference}

Headers

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

Path parameters

Name
reference
callReference

Example

Response: GenericResponseGuaranteeCallResponse

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

Responses

StatusWhen
200Guarantee call retrieved successfully

POST Approve a guarantee recovery

POST /credit-union/{reference}/guarantee-call/{callReference}/approve

Whoever started the recovery may not approve it, and no officer may sign twice.

Headers

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

Path parameters

Name
reference
callReference

Example

Request body: CallGuaranteesRequest · Response: GenericResponseGuaranteeCallResponse

curl -X POST "https://api.bridgemoni.com/credit-union/b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e/guarantee-call/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 '{
  "amountSought": 0,
  "rationale": "string"
}'

Responses

StatusWhen
200Recovery approved successfully

POST Recover from the guarantors

POST /credit-union/{reference}/guarantee-call/{callReference}/recover

Recovers pro rata across every accepted guarantee, never sequentially from whoever is easiest to reach, and only once the notice period has elapsed.

Headers

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

Path parameters

Name
reference
callReference

Example

Response: GenericResponseGuaranteeCallResponse

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

Responses

StatusWhen
200Recovery completed successfully

POST Call a loan's guarantees

POST /credit-union/{reference}/loan/{loanReference}/call-guarantees

The module's most consequential operation. It needs the loan in the worst delinquency bucket, a notice served on every guarantor whose clear days must elapse, and approvals with the initiator excluded. This step serves the notice and starts the clock; nothing is taken yet.

Headers

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

Path parameters

Name
reference
loanReference

Example

Request body: CallGuaranteesRequest · Response: GenericResponseGuaranteeCallResponse

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

Responses

StatusWhen
200Guarantee call opened successfully

POST Restructure a loan

POST /credit-union/{reference}/loan/{loanReference}/restructure

Writes a new schedule version and keeps the superseded lines. The arrears are not forgiven by rescheduling - they are re-spread over the new schedule - and the borrower may not authorise their own restructure.

Headers

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

Path parameters

Name
reference
loanReference

Example

Request body: RestructureLoanRequest · Response: GenericResponseLoanResponse

curl -X POST "https://api.bridgemoni.com/credit-union/b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e/loan/b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e/restructure" \
  -H "Authorization: Bearer $BRIDGEMONI_TOKEN" \
  -H "X-Tenant: $BRIDGEMONI_TENANT" \
  -H "X-Environment: $BRIDGEMONI_ENV" \
  -H "Content-Type: application/json" \
  -d '{
  "reason": "HARDSHIP",
  "termMonths": 0,
  "firstInstalmentOn": "2026-09-25",
  "rationale": "string",
  "boardResolutionReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e"
}'

Responses

StatusWhen
200Loan restructured successfully

POST Write a loan off

POST /credit-union/{reference}/loan/{loanReference}/write-off

Moves no money, which is exactly why it carries the strongest authorisation in the module and an immutable board resolution. The debt survives the write-off: a later recovery still clears it.

Headers

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

Path parameters

Name
reference
loanReference

Example

Request body: WriteOffLoanRequest · Response: GenericResponseLoanResponse

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

Responses

StatusWhen
200Loan written off successfully

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