Reconciling entities
- GET
/reconciliation/entitiesList the reconciling entities on this tenant - POST
/reconciliation/entityOnboard a party whose records you want reconciled - GET
/reconciliation/entity/{code}Read one reconciling entity and its channels - POST
/reconciliation/entity/{code}/activateActivate a reconciliation entity - POST
/reconciliation/entity/{code}/channelDeclare a channel on an existing entity - POST
/reconciliation/entity/{code}/suspendSuspend a reconciliation entity
GET List the reconciling entities on this tenant
GET /reconciliation/entities
Headers
| Name | Notes |
|---|---|
Authorization | Bearer token |
X-Tenant | Your tenant |
X-Environment | test or live |
Example
Response: GenericResponseListEntityResponse
curl -X GET "https://api.bridgemoni.com/reconciliation/entities" \
-H "Authorization: Bearer $BRIDGEMONI_TOKEN" \
-H "X-Tenant: $BRIDGEMONI_TENANT" \
-H "X-Environment: $BRIDGEMONI_ENV" {
"data": [
{
"reference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"code": "string",
"displayName": "string",
"entityKind": "string",
"entityOrigin": "string",
"chargeBearer": "string",
"billingAccountNumber": "string",
"minimumBalance": "string",
"jurisdictionCode": "string",
"defaultCurrencyCode": "string",
"defaultTimezone": "string",
"contactEmail": "string",
"status": "string",
"activatedAt": "string",
"activatedBy": "string",
"suspendedAt": "string",
"suspensionReason": "string",
"retiredAt": "string",
"channels": [
{
"reference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"channelKey": "string",
"channelKind": "string",
"statementProfileCode": "string",
"sourceCode": "string",
"sourceParameter": "string",
"completenessRole": "string",
"heartbeatMinutes": 0,
"graceMinutes": 0,
"webhookPathToken": "string",
"active": true
}
]
}
],
"description": "Entities retrieved successfully"
} Responses
| Status | When |
|---|---|
200 | Entities retrieved successfully |
POST Onboard a party whose records you want reconciled
POST /reconciliation/entity
An entity is any party that produces records worth comparing against another's - a bank, a processor, a switch, a partner, a merchant, an internal department, your own ledger. The kind is descriptive; what the engine acts on is the channel each entity's records arrive by. A new entity is PENDING_VERIFICATION and cannot be a side of a reconciliation until a real delivery has verified on it, because the onboarding step everybody wants to skip is the one that proves the credentials work.
Headers
| Name | Notes |
|---|---|
Authorization | Bearer token |
X-Tenant | Your tenant |
X-Environment | test or live |
Content-Type | application/json |
Example
Request body: OnboardEntityRequest · Response: GenericResponseEntityResponse
curl -X POST "https://api.bridgemoni.com/reconciliation/entity" \
-H "Authorization: Bearer $BRIDGEMONI_TOKEN" \
-H "X-Tenant: $BRIDGEMONI_TENANT" \
-H "X-Environment: $BRIDGEMONI_ENV" \
-H "Content-Type: application/json" \
-d '{
"code": "string",
"displayName": "string",
"entityKind": "string",
"entityOrigin": "string",
"chargeBearer": "string",
"billingAccountNumber": "string",
"minimumBalance": "string",
"jurisdictionCode": "string",
"defaultCurrencyCode": "string",
"defaultTimezone": "string",
"contactEmail": "string",
"channels": [
{
"channelKey": "string",
"channelKind": "string",
"statementProfileCode": "string",
"sourceCode": "string",
"sourceParameter": "string",
"directionConvention": "string",
"completenessRole": "string",
"expectsSequence": true,
"expectsControlTotals": true,
"heartbeatMinutes": 0,
"graceMinutes": 0
}
]
}' {
"code": "string",
"displayName": "string",
"entityKind": "string",
"entityOrigin": "string",
"chargeBearer": "string",
"billingAccountNumber": "string",
"minimumBalance": "string",
"jurisdictionCode": "string",
"defaultCurrencyCode": "string",
"defaultTimezone": "string",
"contactEmail": "string",
"channels": [
{
"channelKey": "string",
"channelKind": "string",
"statementProfileCode": "string",
"sourceCode": "string",
"sourceParameter": "string",
"directionConvention": "string",
"completenessRole": "string",
"expectsSequence": true,
"expectsControlTotals": true,
"heartbeatMinutes": 0,
"graceMinutes": 0
}
]
} {
"data": {
"reference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"code": "string",
"displayName": "string",
"entityKind": "string",
"entityOrigin": "string",
"chargeBearer": "string",
"billingAccountNumber": "string",
"minimumBalance": "string",
"jurisdictionCode": "string",
"defaultCurrencyCode": "string",
"defaultTimezone": "string",
"contactEmail": "string",
"status": "string",
"activatedAt": "string",
"activatedBy": "string",
"suspendedAt": "string",
"suspensionReason": "string",
"retiredAt": "string",
"channels": [
{
"reference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"channelKey": "string",
"channelKind": "string",
"statementProfileCode": "string",
"sourceCode": "string",
"sourceParameter": "string",
"completenessRole": "string",
"heartbeatMinutes": 0,
"graceMinutes": 0,
"webhookPathToken": "string",
"active": true
}
]
},
"description": "Entity onboarded successfully"
} Responses
| Status | When |
|---|---|
200 | Entity onboarded successfully |
GET Read one reconciling entity and its channels
GET /reconciliation/entity/{code}
Headers
| Name | Notes |
|---|---|
Authorization | Bearer token |
X-Tenant | Your tenant |
X-Environment | test or live |
Path parameters
| Name |
|---|
code |
Example
Response: GenericResponseEntityResponse
curl -X GET "https://api.bridgemoni.com/reconciliation/entity/value" \
-H "Authorization: Bearer $BRIDGEMONI_TOKEN" \
-H "X-Tenant: $BRIDGEMONI_TENANT" \
-H "X-Environment: $BRIDGEMONI_ENV" {
"data": {
"reference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"code": "string",
"displayName": "string",
"entityKind": "string",
"entityOrigin": "string",
"chargeBearer": "string",
"billingAccountNumber": "string",
"minimumBalance": "string",
"jurisdictionCode": "string",
"defaultCurrencyCode": "string",
"defaultTimezone": "string",
"contactEmail": "string",
"status": "string",
"activatedAt": "string",
"activatedBy": "string",
"suspendedAt": "string",
"suspensionReason": "string",
"retiredAt": "string",
"channels": [
{
"reference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"channelKey": "string",
"channelKind": "string",
"statementProfileCode": "string",
"sourceCode": "string",
"sourceParameter": "string",
"completenessRole": "string",
"heartbeatMinutes": 0,
"graceMinutes": 0,
"webhookPathToken": "string",
"active": true
}
]
},
"description": "Entity retrieved successfully"
} Responses
| Status | When |
|---|---|
200 | Entity retrieved successfully |
POST Activate a reconciliation entity
POST /reconciliation/entity/{code}/activate
Activation says this party may be a side of a live reconciliation. It requires at least one active channel, because a side with no way to deliver records contributes nothing but an empty manifest and the run would block on a side that was never capable of filling it. The date and the person who activated are both recorded: a status without them is an assertion with no evidence. A retired entity is never brought back.
Headers
| Name | Notes |
|---|---|
Authorization | Bearer token |
X-Tenant | Your tenant |
X-Environment | test or live |
Path parameters
| Name |
|---|
code |
Example
Response: GenericResponseEntityResponse
curl -X POST "https://api.bridgemoni.com/reconciliation/entity/value/activate" \
-H "Authorization: Bearer $BRIDGEMONI_TOKEN" \
-H "X-Tenant: $BRIDGEMONI_TENANT" \
-H "X-Environment: $BRIDGEMONI_ENV" {
"data": {
"reference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"code": "string",
"displayName": "string",
"entityKind": "string",
"entityOrigin": "string",
"chargeBearer": "string",
"billingAccountNumber": "string",
"minimumBalance": "string",
"jurisdictionCode": "string",
"defaultCurrencyCode": "string",
"defaultTimezone": "string",
"contactEmail": "string",
"status": "string",
"activatedAt": "string",
"activatedBy": "string",
"suspendedAt": "string",
"suspensionReason": "string",
"retiredAt": "string",
"channels": [
{
"reference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"channelKey": "string",
"channelKind": "string",
"statementProfileCode": "string",
"sourceCode": "string",
"sourceParameter": "string",
"completenessRole": "string",
"heartbeatMinutes": 0,
"graceMinutes": 0,
"webhookPathToken": "string",
"active": true
}
]
},
"description": "Reconciliation entity activated successfully"
} Responses
| Status | When |
|---|---|
200 | Reconciliation entity activated successfully |
POST Declare a channel on an existing entity
POST /reconciliation/entity/{code}/channel
A channel is how records reach us from this party. An inbound webhook is minted a path token here and is always contributing rather than authoritative: a stream that arrives event by event cannot prove it is complete, and treating it as though it could is how a reconciliation reports a clean period over a gap.
Headers
| Name | Notes |
|---|---|
Authorization | Bearer token |
X-Tenant | Your tenant |
X-Environment | test or live |
Content-Type | application/json |
Path parameters
| Name |
|---|
code |
Example
Request body: EntityChannelRequest · Response: GenericResponseEntityResponse
curl -X POST "https://api.bridgemoni.com/reconciliation/entity/value/channel" \
-H "Authorization: Bearer $BRIDGEMONI_TOKEN" \
-H "X-Tenant: $BRIDGEMONI_TENANT" \
-H "X-Environment: $BRIDGEMONI_ENV" \
-H "Content-Type: application/json" \
-d '{
"channelKey": "string",
"channelKind": "string",
"statementProfileCode": "string",
"sourceCode": "string",
"sourceParameter": "string",
"directionConvention": "string",
"completenessRole": "string",
"expectsSequence": true,
"expectsControlTotals": true,
"heartbeatMinutes": 0,
"graceMinutes": 0
}' {
"channelKey": "string",
"channelKind": "string",
"statementProfileCode": "string",
"sourceCode": "string",
"sourceParameter": "string",
"directionConvention": "string",
"completenessRole": "string",
"expectsSequence": true,
"expectsControlTotals": true,
"heartbeatMinutes": 0,
"graceMinutes": 0
} {
"data": {
"reference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"code": "string",
"displayName": "string",
"entityKind": "string",
"entityOrigin": "string",
"chargeBearer": "string",
"billingAccountNumber": "string",
"minimumBalance": "string",
"jurisdictionCode": "string",
"defaultCurrencyCode": "string",
"defaultTimezone": "string",
"contactEmail": "string",
"status": "string",
"activatedAt": "string",
"activatedBy": "string",
"suspendedAt": "string",
"suspensionReason": "string",
"retiredAt": "string",
"channels": [
{
"reference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"channelKey": "string",
"channelKind": "string",
"statementProfileCode": "string",
"sourceCode": "string",
"sourceParameter": "string",
"completenessRole": "string",
"heartbeatMinutes": 0,
"graceMinutes": 0,
"webhookPathToken": "string",
"active": true
}
]
},
"description": "Channel declared successfully"
} Responses
| Status | When |
|---|---|
200 | Channel declared successfully |
POST Suspend a reconciliation entity
POST /reconciliation/entity/{code}/suspend
A suspended entity stops being eligible as a side of new runs. Deliveries already accepted are untouched - suspension is a statement about what happens next, never a retraction of what a period already recorded. The reason is stored because the next person to look will ask for it.
Headers
| Name | Notes |
|---|---|
Authorization | Bearer token |
X-Tenant | Your tenant |
X-Environment | test or live |
Content-Type | application/json |
Path parameters
| Name |
|---|
code |
Example
Request body: SuspendEntityRequest · Response: GenericResponseEntityResponse
curl -X POST "https://api.bridgemoni.com/reconciliation/entity/value/suspend" \
-H "Authorization: Bearer $BRIDGEMONI_TOKEN" \
-H "X-Tenant: $BRIDGEMONI_TENANT" \
-H "X-Environment: $BRIDGEMONI_ENV" \
-H "Content-Type: application/json" \
-d '{
"reason": "string"
}' {
"reason": "string"
} {
"data": {
"reference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"code": "string",
"displayName": "string",
"entityKind": "string",
"entityOrigin": "string",
"chargeBearer": "string",
"billingAccountNumber": "string",
"minimumBalance": "string",
"jurisdictionCode": "string",
"defaultCurrencyCode": "string",
"defaultTimezone": "string",
"contactEmail": "string",
"status": "string",
"activatedAt": "string",
"activatedBy": "string",
"suspendedAt": "string",
"suspensionReason": "string",
"retiredAt": "string",
"channels": [
{
"reference": "b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e",
"channelKey": "string",
"channelKind": "string",
"statementProfileCode": "string",
"sourceCode": "string",
"sourceParameter": "string",
"completenessRole": "string",
"heartbeatMinutes": 0,
"graceMinutes": 0,
"webhookPathToken": "string",
"active": true
}
]
},
"description": "Reconciliation entity suspended successfully"
} Responses
| Status | When |
|---|---|
200 | Reconciliation entity suspended successfully |
Generated from the OpenAPI document. Branch on the HTTP status: there is no machine-readable error code on the wire. Errors