API reference · Communities & institutions

Credit union inbound rails and suspense

POST Accept an inbound credit

POST /credit-union/{reference}/inbound-credit

Idempotent on the provider's reference, replay-windowed, and tolerant of a reversal that arrives before its credit. What does not resolve goes to suspense, never to the closest member number.

Headers

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

Path parameters

Name
reference

Query parameters

NameDefault
signatureVerifiedtrue
providerSentAtOptional

Example

Request body: InboundCreditRequest · Response: GenericResponseInboundCreditResponse

curl -X POST "https://api.bridgemoni.com/credit-union/b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e/inbound-credit?signatureVerified=True" \
  -H "Authorization: Bearer $BRIDGEMONI_TOKEN" \
  -H "X-Tenant: $BRIDGEMONI_TENANT" \
  -H "X-Environment: $BRIDGEMONI_ENV" \
  -H "Content-Type: application/json" \
  -d '{
  "railCode": "MOBILE_MONEY",
  "providerReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
  "payerIdentifier": "string",
  "payerName": "Ada Okafor",
  "rawReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
  "amount": 0,
  "currencyCode": "string",
  "receivedAt": "2026-09-25T10:00:00Z",
  "valueDate": "2026-09-25",
  "reversalOfProviderReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e"
}'

Responses

StatusWhen
200Inbound credit accepted successfully

POST Resolve money sitting in suspense

POST /credit-union/{reference}/inbound-credit/{creditReference}/resolution

An operator act with a reason, recorded. Returning the money to the payer is a first-class outcome and is often the right one.

Headers

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

Path parameters

Name
reference
creditReference

Example

Request body: ResolveSuspenseRequest · Response: GenericResponseInboundCreditResponse

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

Responses

StatusWhen
200Suspense resolved successfully

GET Read the inbound credit register

GET /credit-union/{reference}/inbound-credits

Headers

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

Path parameters

Name
reference

Query parameters

NameDefault
statusOptional
page0
size50

Example

Response: GenericResponseListInboundCreditResponse

curl -X GET "https://api.bridgemoni.com/credit-union/b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e/inbound-credits?page=value&size=50" \
  -H "Authorization: Bearer $BRIDGEMONI_TOKEN" \
  -H "X-Tenant: $BRIDGEMONI_TENANT" \
  -H "X-Environment: $BRIDGEMONI_ENV"

Responses

StatusWhen
200Inbound credits retrieved successfully

POST Bind a rail to this union

POST /credit-union/{reference}/rail-binding

Settlement must reach the society that owns the member. Where money genuinely lands centrally it is an inter-society payable, and the parent's deposit pocket is never touched.

Headers

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

Path parameters

Name
reference

Example

Request body: IntegrationBindingRequest · Response: GenericResponseIntegrationBindingResponse

curl -X POST "https://api.bridgemoni.com/credit-union/b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e/rail-binding" \
  -H "Authorization: Bearer $BRIDGEMONI_TOKEN" \
  -H "X-Tenant: $BRIDGEMONI_TENANT" \
  -H "X-Environment: $BRIDGEMONI_ENV" \
  -H "Content-Type: application/json" \
  -d '{
  "railCode": "MOBILE_MONEY",
  "ownerUnionReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
  "settlementUnionReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
  "settlementRoute": "DIRECT_TO_OWNING_SOCIETY",
  "providerSubIdentifier": "string",
  "credentialReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
  "effectiveFrom": "2026-09-25",
  "replayWindowMinutes": 0
}'

Responses

StatusWhen
200Rail bound successfully

POST Publish a binding template for affiliates

POST /credit-union/{reference}/rail-binding/template

A parent publishes and a child adopts, so a society is never opted into a rail by someone else. Credentials are referenced, never copied into the child's row.

Headers

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

Path parameters

Name
reference

Example

Request body: IntegrationBindingRequest · Response: GenericResponseIntegrationBindingResponse

curl -X POST "https://api.bridgemoni.com/credit-union/b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e/rail-binding/template" \
  -H "Authorization: Bearer $BRIDGEMONI_TOKEN" \
  -H "X-Tenant: $BRIDGEMONI_TENANT" \
  -H "X-Environment: $BRIDGEMONI_ENV" \
  -H "Content-Type: application/json" \
  -d '{
  "railCode": "MOBILE_MONEY",
  "ownerUnionReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
  "settlementUnionReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
  "settlementRoute": "DIRECT_TO_OWNING_SOCIETY",
  "providerSubIdentifier": "string",
  "credentialReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
  "effectiveFrom": "2026-09-25",
  "replayWindowMinutes": 0
}'

Responses

StatusWhen
200Binding template published successfully

DELETE Revoke a binding

DELETE /credit-union/{reference}/rail-binding/{bindingReference}

Revocation is not retroactive: money in flight settles under the old binding.

Headers

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

Path parameters

Name
reference
bindingReference

Query parameters

NameDefault
reasonOptional

Example

Response: GenericResponseIntegrationBindingResponse

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

Responses

StatusWhen
200Binding revoked successfully

POST Adopt a parent's binding template

POST /credit-union/{reference}/rail-binding/{templateReference}/adoption

Headers

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

Path parameters

Name
reference
templateReference

Query parameters

NameDefault
providerSubIdentifierOptional

Example

Response: GenericResponseIntegrationBindingResponse

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

Responses

StatusWhen
200Binding adopted successfully

GET List this union's rail bindings

GET /credit-union/{reference}/rail-bindings

Headers

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

Path parameters

Name
reference

Example

Response: GenericResponseListIntegrationBindingResponse

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

Responses

StatusWhen
200Rail bindings retrieved successfully

PUT Set how inbound references parse

PUT /credit-union/{reference}/reference-rule

The reference is a routing key with a grammar this union owns. Leaving the default product unset is the safer choice: a deposit landing in share capital when the member meant savings changes their borrowing capacity.

Headers

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

Path parameters

Name
reference

Example

Request body: InboundReferenceRuleRequest · Response: GenericResponseInboundReferenceRuleResponse

curl -X PUT "https://api.bridgemoni.com/credit-union/b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e/reference-rule" \
  -H "Authorization: Bearer $BRIDGEMONI_TOKEN" \
  -H "X-Tenant: $BRIDGEMONI_TENANT" \
  -H "X-Environment: $BRIDGEMONI_ENV" \
  -H "Content-Type: application/json" \
  -d '{
  "railCode": "MOBILE_MONEY",
  "segmentOrder": "BUCKET_THEN_MEMBER",
  "bucketLength": 0,
  "bucketProductCodes": {},
  "defaultDepositProductCode": "string",
  "caseSensitive": true,
  "checkDigit": true,
  "memberSegmentLength": 0
}'

Responses

StatusWhen
200Reference rule set successfully

POST Dry-run a batch of references

POST /credit-union/{reference}/reference-rule/dry-run

Nothing is posted and nothing is written. It answers what each reference would resolve to before a rail is switched on.

Headers

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

Path parameters

Name
reference

Example

Request body: ResolveReferenceRequest · Response: GenericResponseListReferenceResolutionResponse

curl -X POST "https://api.bridgemoni.com/credit-union/b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e/reference-rule/dry-run" \
  -H "Authorization: Bearer $BRIDGEMONI_TOKEN" \
  -H "X-Tenant: $BRIDGEMONI_TENANT" \
  -H "X-Environment: $BRIDGEMONI_ENV" \
  -H "Content-Type: application/json" \
  -d '{
  "references": [
    "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e"
  ],
  "railCode": "MOBILE_MONEY"
}'

Responses

StatusWhen
200References resolved successfully

GET List this union's reference rules

GET /credit-union/{reference}/reference-rules

Headers

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

Path parameters

Name
reference

Example

Response: GenericResponseListInboundReferenceRuleResponse

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

Responses

StatusWhen
200Reference rules retrieved successfully

GET Read the suspense ageing

GET /credit-union/{reference}/report/suspense

Money in suspense is not the union's: it is excluded from liquidity, from the deposit control total and from every ratio. A balance past the window is an operational failure rather than a balance.

Headers

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

Path parameters

Name
reference

Query parameters

NameDefault
asOfOptional

Example

Response: GenericResponseSuspenseAgeingResponse

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

Responses

StatusWhen
200Suspense ageing retrieved successfully

GET Read the webhook receipt log

GET /credit-union/{reference}/webhook-receipts

Duplicates and replays outside the window are recorded rather than silently dropped.

Headers

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

Path parameters

Name
reference

Example

Response: GenericResponseListWebhookReceiptResponse

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

Responses

StatusWhen
200Webhook receipts retrieved successfully

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