Credit union tariff
- GET
/credit-union/{reference}/tariffRead the active tariff - POST
/credit-union/{reference}/tariffOpen a draft tariff version - POST
/credit-union/{reference}/tariff/adopt-templateAdopt a parent's tariff template - GET
/credit-union/{reference}/tariff/versionsList every version of the tariff - POST
/credit-union/{reference}/tariff/{scheduleReference}/itemAdd an item to a draft tariff - DELETE
/credit-union/{reference}/tariff/{scheduleReference}/item/{itemReference}Remove an item from a draft tariff - POST
/credit-union/{reference}/tariff/{scheduleReference}/publishPublish a draft tariff
GET Read the active tariff
GET /credit-union/{reference}/tariff
The single, versioned, disclosable answer to what this union charges. Readable by every member, because a charge a member cannot read is a charge they discover.
Headers
| Name | Notes |
|---|---|
Authorization | Bearer token |
X-Tenant | Your tenant |
X-Environment | test or live |
Path parameters
| Name |
|---|
reference |
Example
Response: GenericResponseFeeScheduleResponse
curl -X GET "https://api.bridgemoni.com/credit-union/b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e/tariff" \
-H "Authorization: Bearer $BRIDGEMONI_TOKEN" \
-H "X-Tenant: $BRIDGEMONI_TENANT" \
-H "X-Environment: $BRIDGEMONI_ENV" {
"data": {
"reference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"unionReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"scheduleVersion": 0,
"status": "DRAFT",
"effectiveFrom": "2026-09-25",
"effectiveTo": "2026-09-25",
"publishedAt": "2026-09-25T10:00:00Z",
"noticePeriodDays": 0,
"approvedByUserReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"adoptedFromTemplateReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"template": true,
"items": [
{
"reference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"feeCode": "string",
"name": "string",
"description": "string",
"chargeEvent": "MEMBERSHIP_ENTRANCE",
"calculation": "FLAT",
"amount": 0,
"basisPoints": 0,
"basisOf": "PRINCIPAL",
"minimumAmount": 0,
"maximumAmount": 0,
"lifetimeCapBasisPoints": 0,
"currencyCode": "string",
"frequency": "ONE_OFF",
"timing": "DEDUCT_AT_EVENT",
"taxable": true,
"waivable": true,
"exemptClassCodes": [
"LIFE"
],
"arrearsPolicy": "NONE",
"glAccountCode": "string",
"disclosureText": "string"
}
]
},
"description": "Tariff retrieved successfully"
} Responses
| Status | When |
|---|---|
200 | Tariff retrieved successfully |
POST Open a draft tariff version
POST /credit-union/{reference}/tariff
Copies the active tariff into a new DRAFT to be edited. Returns the open draft if one already exists, so a second call does not strand the first.
Headers
| Name | Notes |
|---|---|
Authorization | Bearer token |
X-Tenant | Your tenant |
X-Environment | test or live |
Path parameters
| Name |
|---|
reference |
Example
Response: GenericResponseFeeScheduleResponse
curl -X POST "https://api.bridgemoni.com/credit-union/b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e/tariff" \
-H "Authorization: Bearer $BRIDGEMONI_TOKEN" \
-H "X-Tenant: $BRIDGEMONI_TENANT" \
-H "X-Environment: $BRIDGEMONI_ENV" {
"data": {
"reference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"unionReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"scheduleVersion": 0,
"status": "DRAFT",
"effectiveFrom": "2026-09-25",
"effectiveTo": "2026-09-25",
"publishedAt": "2026-09-25T10:00:00Z",
"noticePeriodDays": 0,
"approvedByUserReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"adoptedFromTemplateReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"template": true,
"items": [
{
"reference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"feeCode": "string",
"name": "string",
"description": "string",
"chargeEvent": "MEMBERSHIP_ENTRANCE",
"calculation": "FLAT",
"amount": 0,
"basisPoints": 0,
"basisOf": "PRINCIPAL",
"minimumAmount": 0,
"maximumAmount": 0,
"lifetimeCapBasisPoints": 0,
"currencyCode": "string",
"frequency": "ONE_OFF",
"timing": "DEDUCT_AT_EVENT",
"taxable": true,
"waivable": true,
"exemptClassCodes": [
"LIFE"
],
"arrearsPolicy": "NONE",
"glAccountCode": "string",
"disclosureText": "string"
}
]
},
"description": "Draft tariff opened successfully"
} Responses
| Status | When |
|---|---|
200 | Draft tariff opened successfully |
POST Adopt a parent's tariff template
POST /credit-union/{reference}/tariff/adopt-template
A parent publishes a template; it never edits a child's tariff. The template is copied in as this union's own DRAFT and takes effect only when this union publishes it, so a federation can standardise its movement's fees without a parent silently raising a charge in forty societies.
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: AdoptTariffTemplateRequest · Response: GenericResponseFeeScheduleResponse
curl -X POST "https://api.bridgemoni.com/credit-union/b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e/tariff/adopt-template" \
-H "Authorization: Bearer $BRIDGEMONI_TOKEN" \
-H "X-Tenant: $BRIDGEMONI_TENANT" \
-H "X-Environment: $BRIDGEMONI_ENV" \
-H "Content-Type: application/json" \
-d '{
"templateReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e"
}' {
"templateReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e"
} {
"data": {
"reference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"unionReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"scheduleVersion": 0,
"status": "DRAFT",
"effectiveFrom": "2026-09-25",
"effectiveTo": "2026-09-25",
"publishedAt": "2026-09-25T10:00:00Z",
"noticePeriodDays": 0,
"approvedByUserReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"adoptedFromTemplateReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"template": true,
"items": [
{
"reference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"feeCode": "string",
"name": "string",
"description": "string",
"chargeEvent": "MEMBERSHIP_ENTRANCE",
"calculation": "FLAT",
"amount": 0,
"basisPoints": 0,
"basisOf": "PRINCIPAL",
"minimumAmount": 0,
"maximumAmount": 0,
"lifetimeCapBasisPoints": 0,
"currencyCode": "string",
"frequency": "ONE_OFF",
"timing": "DEDUCT_AT_EVENT",
"taxable": true,
"waivable": true,
"exemptClassCodes": [
"LIFE"
],
"arrearsPolicy": "NONE",
"glAccountCode": "string",
"disclosureText": "string"
}
]
},
"description": "Tariff template adopted successfully"
} Responses
| Status | When |
|---|---|
200 | Tariff template adopted successfully |
GET List every version of the tariff
GET /credit-union/{reference}/tariff/versions
Repricing never rewrites a live contract: an instrument keeps the amounts frozen onto it at origination, and only future events price at the new version.
Headers
| Name | Notes |
|---|---|
Authorization | Bearer token |
X-Tenant | Your tenant |
X-Environment | test or live |
Path parameters
| Name |
|---|
reference |
Example
Response: GenericResponseListFeeScheduleResponse
curl -X GET "https://api.bridgemoni.com/credit-union/b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e/tariff/versions" \
-H "Authorization: Bearer $BRIDGEMONI_TOKEN" \
-H "X-Tenant: $BRIDGEMONI_TENANT" \
-H "X-Environment: $BRIDGEMONI_ENV" {
"data": [
{
"reference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"unionReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"scheduleVersion": 0,
"status": "DRAFT",
"effectiveFrom": "2026-09-25",
"effectiveTo": "2026-09-25",
"publishedAt": "2026-09-25T10:00:00Z",
"noticePeriodDays": 0,
"approvedByUserReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"adoptedFromTemplateReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"template": true,
"items": [
{
"reference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"feeCode": "string",
"name": "string",
"description": "string",
"chargeEvent": "MEMBERSHIP_ENTRANCE",
"calculation": "FLAT",
"amount": 0,
"basisPoints": 0,
"basisOf": "PRINCIPAL",
"minimumAmount": 0,
"maximumAmount": 0,
"lifetimeCapBasisPoints": 0,
"currencyCode": "string",
"frequency": "ONE_OFF",
"timing": "DEDUCT_AT_EVENT",
"taxable": true,
"waivable": true,
"exemptClassCodes": [
"LIFE"
],
"arrearsPolicy": "NONE",
"glAccountCode": "string",
"disclosureText": "string"
}
]
}
],
"description": "Tariff versions retrieved successfully"
} Responses
| Status | When |
|---|---|
200 | Tariff versions retrieved successfully |
POST Add an item to a draft tariff
POST /credit-union/{reference}/tariff/{scheduleReference}/item
A FLAT item needs an amount and a PERCENTAGE item needs a basis; an item that is silently free is discovered in the income statement a quarter later.
Headers
| Name | Notes |
|---|---|
Authorization | Bearer token |
X-Tenant | Your tenant |
X-Environment | test or live |
Content-Type | application/json |
Path parameters
| Name |
|---|
reference |
scheduleReference |
Example
Request body: CreateFeeItemRequest · Response: GenericResponseFeeScheduleResponse
curl -X POST "https://api.bridgemoni.com/credit-union/b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e/tariff/b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e/item" \
-H "Authorization: Bearer $BRIDGEMONI_TOKEN" \
-H "X-Tenant: $BRIDGEMONI_TENANT" \
-H "X-Environment: $BRIDGEMONI_ENV" \
-H "Content-Type: application/json" \
-d '{
"feeCode": "ENTRANCE",
"name": "string",
"description": "string",
"chargeEvent": "MEMBERSHIP_ENTRANCE",
"calculation": "FLAT",
"amount": 0,
"basisPoints": 0,
"basisOf": "PRINCIPAL",
"minimumAmount": 0,
"maximumAmount": 0,
"lifetimeCapBasisPoints": 0,
"frequency": "ONE_OFF",
"timing": "DEDUCT_AT_EVENT",
"taxable": true,
"waivable": true,
"exemptClassCodes": [
"LIFE"
],
"arrearsPolicy": "NONE",
"glAccountCode": "4100",
"disclosureText": "string"
}' {
"feeCode": "ENTRANCE",
"name": "string",
"description": "string",
"chargeEvent": "MEMBERSHIP_ENTRANCE",
"calculation": "FLAT",
"amount": 0,
"basisPoints": 0,
"basisOf": "PRINCIPAL",
"minimumAmount": 0,
"maximumAmount": 0,
"lifetimeCapBasisPoints": 0,
"frequency": "ONE_OFF",
"timing": "DEDUCT_AT_EVENT",
"taxable": true,
"waivable": true,
"exemptClassCodes": [
"LIFE"
],
"arrearsPolicy": "NONE",
"glAccountCode": "4100",
"disclosureText": "string"
} {
"data": {
"reference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"unionReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"scheduleVersion": 0,
"status": "DRAFT",
"effectiveFrom": "2026-09-25",
"effectiveTo": "2026-09-25",
"publishedAt": "2026-09-25T10:00:00Z",
"noticePeriodDays": 0,
"approvedByUserReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"adoptedFromTemplateReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"template": true,
"items": [
{
"reference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"feeCode": "string",
"name": "string",
"description": "string",
"chargeEvent": "MEMBERSHIP_ENTRANCE",
"calculation": "FLAT",
"amount": 0,
"basisPoints": 0,
"basisOf": "PRINCIPAL",
"minimumAmount": 0,
"maximumAmount": 0,
"lifetimeCapBasisPoints": 0,
"currencyCode": "string",
"frequency": "ONE_OFF",
"timing": "DEDUCT_AT_EVENT",
"taxable": true,
"waivable": true,
"exemptClassCodes": [
"LIFE"
],
"arrearsPolicy": "NONE",
"glAccountCode": "string",
"disclosureText": "string"
}
]
},
"description": "Fee item added successfully"
} Responses
| Status | When |
|---|---|
200 | Fee item added successfully |
DELETE Remove an item from a draft tariff
DELETE /credit-union/{reference}/tariff/{scheduleReference}/item/{itemReference}
Only a draft can be edited; a published version is superseded, never changed.
Headers
| Name | Notes |
|---|---|
Authorization | Bearer token |
X-Tenant | Your tenant |
X-Environment | test or live |
Path parameters
| Name |
|---|
reference |
scheduleReference |
itemReference |
Example
Response: GenericResponseFeeScheduleResponse
curl -X DELETE "https://api.bridgemoni.com/credit-union/b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e/tariff/b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e/item/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",
"unionReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"scheduleVersion": 0,
"status": "DRAFT",
"effectiveFrom": "2026-09-25",
"effectiveTo": "2026-09-25",
"publishedAt": "2026-09-25T10:00:00Z",
"noticePeriodDays": 0,
"approvedByUserReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"adoptedFromTemplateReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"template": true,
"items": [
{
"reference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"feeCode": "string",
"name": "string",
"description": "string",
"chargeEvent": "MEMBERSHIP_ENTRANCE",
"calculation": "FLAT",
"amount": 0,
"basisPoints": 0,
"basisOf": "PRINCIPAL",
"minimumAmount": 0,
"maximumAmount": 0,
"lifetimeCapBasisPoints": 0,
"currencyCode": "string",
"frequency": "ONE_OFF",
"timing": "DEDUCT_AT_EVENT",
"taxable": true,
"waivable": true,
"exemptClassCodes": [
"LIFE"
],
"arrearsPolicy": "NONE",
"glAccountCode": "string",
"disclosureText": "string"
}
]
},
"description": "Fee item removed successfully"
} Responses
| Status | When |
|---|---|
200 | Fee item removed successfully |
POST Publish a draft tariff
POST /credit-union/{reference}/tariff/{scheduleReference}/publish
Retires the current version and brings this one into force. The effective date cannot fall inside the notice period: a member is entitled to know before a charge changes, and a date inside the period is refused rather than quietly moved.
Headers
| Name | Notes |
|---|---|
Authorization | Bearer token |
X-Tenant | Your tenant |
X-Environment | test or live |
Content-Type | application/json |
Path parameters
| Name |
|---|
reference |
scheduleReference |
Example
Request body: PublishFeeScheduleRequest · Response: GenericResponseFeeScheduleResponse
curl -X POST "https://api.bridgemoni.com/credit-union/b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e/tariff/b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e/publish" \
-H "Authorization: Bearer $BRIDGEMONI_TOKEN" \
-H "X-Tenant: $BRIDGEMONI_TENANT" \
-H "X-Environment: $BRIDGEMONI_ENV" \
-H "Content-Type: application/json" \
-d '{
"effectiveFrom": "2026-09-25",
"noticePeriodDays": 0
}' {
"effectiveFrom": "2026-09-25",
"noticePeriodDays": 0
} {
"data": {
"reference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"unionReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"scheduleVersion": 0,
"status": "DRAFT",
"effectiveFrom": "2026-09-25",
"effectiveTo": "2026-09-25",
"publishedAt": "2026-09-25T10:00:00Z",
"noticePeriodDays": 0,
"approvedByUserReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"adoptedFromTemplateReference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"template": true,
"items": [
{
"reference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"feeCode": "string",
"name": "string",
"description": "string",
"chargeEvent": "MEMBERSHIP_ENTRANCE",
"calculation": "FLAT",
"amount": 0,
"basisPoints": 0,
"basisOf": "PRINCIPAL",
"minimumAmount": 0,
"maximumAmount": 0,
"lifetimeCapBasisPoints": 0,
"currencyCode": "string",
"frequency": "ONE_OFF",
"timing": "DEDUCT_AT_EVENT",
"taxable": true,
"waivable": true,
"exemptClassCodes": [
"LIFE"
],
"arrearsPolicy": "NONE",
"glAccountCode": "string",
"disclosureText": "string"
}
]
},
"description": "Tariff published successfully"
} Responses
| Status | When |
|---|---|
200 | Tariff published successfully |
Generated from the OpenAPI document. Branch on the HTTP status: there is no machine-readable error code on the wire. Errors