API reference · Communities & institutions

Credit union migration

POST Stage a legacy book

POST /credit-union/{reference}/migration/batch

Rows land in a staging set, never in live tables. Nothing is created until every row validates, the totals tie to the society's own assertion, and the board has signed the dry run's diff.

Headers

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

Path parameters

Name
reference

Example

Request body: StageMigrationRequest · Response: GenericResponseMigrationBatchResponse

curl -X POST "https://api.bridgemoni.com/credit-union/b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e/migration/batch" \
  -H "Authorization: Bearer $BRIDGEMONI_TOKEN" \
  -H "X-Tenant: $BRIDGEMONI_TENANT" \
  -H "X-Environment: $BRIDGEMONI_ENV" \
  -H "Content-Type: application/json" \
  -d '{
  "sourceSystem": "string",
  "assertedShareCapital": 0,
  "assertedDeposits": 0,
  "assertedLoanPortfolio": 0,
  "accumulatorBasis": "SUPPLIED_BY_SOURCE",
  "openingBalanceDate": "2026-09-25",
  "note": "string",
  "records": [
    {
      "recordType": "MEMBER",
      "sourceIdentifier": "string",
      "parentSourceIdentifier": "string",
      "values": {}
    }
  ]
}'

Responses

StatusWhen
200Migration batch staged successfully

GET List this union's migration batches

GET /credit-union/{reference}/migration/batches

Headers

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

Path parameters

Name
reference

Example

Response: GenericResponseListMigrationBatchResponse

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

Responses

StatusWhen
200Migration batches retrieved successfully

POST Abandon a migration batch

POST /credit-union/{reference}/migration/{batchReference}/abandonment

An attempt that will not be applied is closed rather than left open.

Headers

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

Path parameters

Name
reference
batchReference

Query parameters

NameDefault
reasonOptional

Example

Response: GenericResponseMigrationBatchResponse

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

Responses

StatusWhen
200Migration batch abandoned successfully

POST Apply a signed, reconciled migration

POST /credit-union/{reference}/migration/{batchReference}/apply

Refused unless the reconciliation ties, the diff still matches what was signed, and every row validated. Historic schedules land as given and are marked as such.

Headers

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

Path parameters

Name
reference
batchReference

Example

Response: GenericResponseMigrationBatchResponse

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

Responses

StatusWhen
200Migration applied successfully

POST Produce the diff the board signs

POST /credit-union/{reference}/migration/{batchReference}/dry-run

What the live run would create, what it would open the books with, and what it would refuse. The hash is checked again at the live run.

Headers

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

Path parameters

Name
reference
batchReference

Example

Response: GenericResponseMigrationDiffResponse

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

Responses

StatusWhen
200Migration dry run produced successfully

POST Reconcile the staged rows to the society's own totals

POST /credit-union/{reference}/migration/{batchReference}/reconciliation

Line by line, and not overridable. A society whose book does not tie has a problem the migration did not create and must not inherit.

Headers

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

Path parameters

Name
reference
batchReference

Example

Response: GenericResponseMigrationBatchResponse

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

Responses

StatusWhen
200Migration batch reconciled successfully

GET List a batch's staged rows with their validation outcome

GET /credit-union/{reference}/migration/{batchReference}/records

The source identifier is kept for the life of the record, so a discrepancy found years later is traceable to the row it came in on.

Headers

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

Path parameters

Name
reference
batchReference

Example

Response: GenericResponseListMigrationRecordResponse

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

Responses

StatusWhen
200Migration records retrieved successfully

POST Record the board's signature on a dry-run diff

POST /credit-union/{reference}/migration/{batchReference}/sign-off

A migration is applied after a signed dry-run diff, not before.

Headers

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

Path parameters

Name
reference
batchReference

Example

Request body: SignOffMigrationRequest · Response: GenericResponseMigrationBatchResponse

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

Responses

StatusWhen
200Migration dry run signed successfully

POST Validate every staged row

POST /credit-union/{reference}/migration/{batchReference}/validate

Every member resolvable, every class and product in the catalogue, every schedule arithmetically consistent, every guarantor a member of this same society.

Headers

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

Path parameters

Name
reference
batchReference

Example

Response: GenericResponseMigrationBatchResponse

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

Responses

StatusWhen
200Migration batch validated successfully

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