Credit scores
An explainable score from scorecards you write, with shadow runs first. About credit scoring Live
- GET
/credit-scoring/score/{subjectReference}Read a subject's score - GET
/credit-scoring/subject/{subjectReference}/access-logSee who has read this subject's file - GET
/credit-scoring/subject/{subjectReference}/explainExplain a score
GET Read a subject's score
GET /credit-scoring/score/{subjectReference}
Three outcomes worth distinguishing before you write a client. A **score** carries a value and reason codes. **NO_SCORE** is an answer - a settled fact about the person, never a low score, and never worth retrying. A **503** means this module cannot answer right now: the batch has not run or is behind its cadence. Retry that one, and do not treat it as information about the subject. Every response carries the as-of date of the evidence and the timestamp of the last successful run, so staleness can be read rather than guessed.
Headers
| Name | Notes |
|---|---|
Authorization | Bearer token |
X-Tenant | Your tenant |
X-Environment | test or live |
Path parameters
| Name |
|---|
subjectReference |
Example
Response: CreditScoreResponse
curl -X GET "https://api.bridgemoni.com/credit-scoring/score/b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e" \
-H "Authorization: Bearer $BRIDGEMONI_TOKEN" \
-H "X-Tenant: $BRIDGEMONI_TENANT" \
-H "X-Environment: $BRIDGEMONI_ENV" {
"data": {
"subjectReference": "text",
"band": "NO_SCORE",
"value": 1,
"noScoreReason": "SUBJECT_SUPPRESSED",
"scope": "OWN_TENANT",
"contributingTenants": 1,
"scorecardVersion": 1,
"asOf": "2027-03-14",
"lastSuccessfulRunAt": "2027-03-14T14:30:01",
"computedAt": "2027-03-14T14:30:01",
"expiresAt": "2027-03-14T14:30:01",
"pendingRecompute": true,
"reasonCodes": [
{
"code": "text",
"direction": "POSITIVE",
"rank": 1
}
]
},
"description": "Read a subject's score"
} Responses
| Status | When |
|---|---|
200 | A score, or a documented NO_SCORE |
404 | This tenant holds no link to that subject. Deliberately identical to the answer for a subject that does not exist |
503 | Scoring is unavailable, or the subject is mid-merge. Retry |
GET See who has read this subject's file
GET /credit-scoring/subject/{subjectReference}/access-log
Every read, including refused ones - a tenant repeatedly asking about somebody it is refused is a pattern the subject is entitled to see, and a log of successes only would show a clean file for a person being probed daily. Reads the **union** of the drained log and the pending outbox, so a disclosure is visible from the instant it happens rather than from whenever filing catches up. Each entry names the consent it relied on - including one since withdrawn.
Headers
| Name | Notes |
|---|---|
Authorization | Bearer token |
X-Tenant | Your tenant |
X-Environment | test or live |
Path parameters
| Name |
|---|
subjectReference |
Example
Response: List<CreditAccessLogEntryResponse>
curl -X GET "https://api.bridgemoni.com/credit-scoring/subject/b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e/access-log" \
-H "Authorization: Bearer $BRIDGEMONI_TOKEN" \
-H "X-Tenant: $BRIDGEMONI_TENANT" \
-H "X-Environment: $BRIDGEMONI_ENV" {
"data": [
{
"reference": "text",
"tenantId": "text",
"purpose": "LENDING",
"outcome": "DISCLOSED_CROSS_TENANT",
"consentReference": "text",
"batchSize": 1,
"readAt": "2027-03-14T14:30:01"
}
],
"description": "See who has read this subject's file"
} Responses
| Status | When |
|---|---|
200 | Every read, newest first |
404 | No link to that subject |
GET Explain a score
GET /credit-scoring/subject/{subjectReference}/explain
The score plus every feature that fed it, with its value and what it contributed - recomputed from the scorecard version RECORDED on the score, not the one active today. Explaining an old score with a new model would be an honest explanation of a different number. A capped contribution is marked, because somebody told their deposits were worth 40 points when the raw bin said 90 is owed the reason the other 50 went missing. A truncated one is marked too, and contributed nothing.
Headers
| Name | Notes |
|---|---|
Authorization | Bearer token |
X-Tenant | Your tenant |
X-Environment | test or live |
Path parameters
| Name |
|---|
subjectReference |
Example
Response: CreditScoreExplanationResponse
curl -X GET "https://api.bridgemoni.com/credit-scoring/subject/b3f1c2d4-5e6a-4b7c-8d9e-0f1a2b3c4d5e/explain" \
-H "Authorization: Bearer $BRIDGEMONI_TOKEN" \
-H "X-Tenant: $BRIDGEMONI_TENANT" \
-H "X-Environment: $BRIDGEMONI_ENV" {
"data": {
"score": {
"subjectReference": "text",
"band": "NO_SCORE",
"value": 1,
"noScoreReason": "SUBJECT_SUPPRESSED",
"scope": "OWN_TENANT",
"contributingTenants": 1,
"scorecardVersion": 1,
"asOf": "2027-03-14",
"lastSuccessfulRunAt": "2027-03-14T14:30:01",
"computedAt": "2027-03-14T14:30:01",
"expiresAt": "2027-03-14T14:30:01",
"pendingRecompute": true,
"reasonCodes": [
{
"...": "nested"
}
]
},
"contributions": [
{
"key": "text",
"family": "text",
"value": 250000.0,
"points": 1,
"capped": true,
"truncated": true
}
],
"key": "text",
"family": "text",
"value": 250000.0,
"points": 1,
"capped": true,
"truncated": true
},
"description": "Explain a score"
} Responses
| Status | When |
|---|---|
200 | The score and its contributions |
404 | No link to that subject |
503 | Scoring is unavailable. Retry |
Generated from the OpenAPI document. Branch on the HTTP status: there is no machine-readable error code on the wire. Errors