Skip to main content

Credit Decisions

A Bank-sponsored lending program requires daily reporting of all credit decisions, for all submitted credit applications. This includes credit applications that are submitted but denied at KYB.

Credit Decisions can be made for different entities, like Application or Credit Account, each of those requiring a different relationship in the request.

A credit decision can be either Approved, Denied or ManualReview. After creating a ManualReview decision and finishing the manual review process, a second decision of Approved or Denied needs to be created. Each decision requires different attributes for the request:

Approved Decision Attributes

NameTypeDescription
creditLimitInteger (Cents)Credit limit for application as evaluated per policy.

Denied Decision Attributes

NameTypeDescription
decisionReasonstringReason for denial per credit policy. Max 200 char.
adverseActionReasonsArray of stringsArray of strings representing Adverse action reasons (must have at least one). Max 200 char per reason.

For each type of decision there is also a different request, as can be seen below.

Create Manual Review Credit Application Decision

Create a manual review credit decision for a credit application request (before a customer exists).

Credit decision creation requests support Idempotency, ensuring that performing multiple identical requests will have the same result as a single request.

VerbPOST
Urlhttps://api.s.unit.sh/credit-decisions
Required Scopecredit-decisions-write
Data TypemanualReviewCreditApplicationDecision
Timeout (Seconds)5

Attributes

NameTypeDescription
externalApplicationIdstringIdentifier for client’s credit evaluation related to this decision. Max 200 char.
submissionTimestamptimestampTimestamp when the corresponding credit application was submitted.
decisionTimestamptimestampTimestamp when the credit decision was made.
policyExceptionbooleanOne of true or false.
policyExceptionReasonstringConditional if policyException is true. Brief description of reason for policy

exception. Max 200 char. additionalUnderwritingData | json | Object containing key-value pairs of underwriting data per credit policy. idempotencyKey | string | Optional. See Idempotency.

Relationships

NameTypeDescription
creditApplicationJSON:API RelationshipThe Credit Application for which this credit decision applies to.
Example Request:
curl -X POST 'https://api.s.unit.sh/credit-decisions'
-H 'Content-Type: application/vnd.api+json'
-H 'Authorization: Bearer ${TOKEN}'
--data-raw '{
"data": {
"type": "manualReviewCreditApplicationDecision",
"attributes": {
"externalApplicationId": "A1234",
"submissionTimestamp": "2023-09-19T09:10:09.206Z",
"decisionTimestamp": "2023-09-19T09:10:09.206Z",
"policyException": false,
"additionalUnderwritingData": {
"someKey1": "someValue1",
"someKey2": "someValue2",
"someKey3": "someValue3"
},
"idempotencyKey": "3q1a3sbe-se12-4603-8ed0-820923389fb1"
},
"relationships": {
"creditApplication": {
"data": {
"type": "creditApplication",
"id": "12"
}
}
}
}
}'

Response

Response is a JSON:API document.

201 Created

FieldTypeDescription
dataManualReviewCreditApplicationDecisionThe returned resource

after the operation was completed.

Example Response:
{
"data": {
"type": "manualReviewCreditApplicationDecision",
"id": "1",
"attributes": {
"createdAt": "2023-07-04T15:21:11.688Z",
"externalApplicationId": "A1234",
"evaluationType": "CreditApplication",
"submissionTimestamp": "2023-09-19T09:10:09.206Z",
"decisionTimestamp": "2023-09-19T09:10:09.206Z",
"decision": "ManualReview",
"policyException": true,
"policyExceptionReason": "Executive approval",
"additionalUnderwritingData": {
"someKey1": "someValue1",
"someKey2": "someValue2",
"someKey3": "someValue3"
}
},
"relationships": {
"application": {
"data": {
"type": "application",
"id": "10005"
}
},
"bank": {
"data": {
"type": "bank",
"id": "10"
}
},
"creditApplication": {
"data": {
"type": "creditApplication",
"id": "12"
}
}
}
}
}

Create Denied Credit Application Decision

Create a denied credit decision for a credit application request (before a customer exists).

Credit decision creation requests support Idempotency, ensuring that performing multiple identical requests will have the same result as a single request.

VerbPOST
Urlhttps://api.s.unit.sh/credit-decisions
Required Scopecredit-decisions-write
Data TypedeniedCreditApplicationDecision
Timeout (Seconds)5

Attributes

NameTypeDescription
externalApplicationIdstringIdentifier for client’s credit evaluation related to this decision. Max 200 char.
submissionTimestamptimestampTimestamp when the corresponding credit application was submitted.
decisionTimestamptimestampTimestamp when the credit decision was made.
decisionReasonstringReason for denial per credit policy. Max 200 char.
adverseActionReasonsArray of stringsArray of strings representing Adverse action reasons (must have at least one). Max 200 char per reason.
policyExceptionbooleanOne of true or false.
policyExceptionReasonstringConditional if policyException is true. Brief description of reason for policy exception. Max 200 char.
additionalUnderwritingDatajsonObject containing key-value pairs of underwriting data per credit policy.
idempotencyKeystringOptional. See Idempotency.

Relationships

NameTypeDescription
creditApplicationJSON:API RelationshipThe Credit Application for which this credit decision applies to.
Example Request:
curl -X POST 'https://api.s.unit.sh/credit-decisions'
-H 'Content-Type: application/vnd.api+json'
-H 'Authorization: Bearer ${TOKEN}'
--data-raw '{
"data": {
"type": "deniedCreditApplicationDecision",
"attributes": {
"externalApplicationId": "A1234",
"submissionTimestamp": "2023-09-19T09:10:09.206Z",
"decisionTimestamp": "2023-09-19T09:10:09.206Z",
"policyException": false,
"additionalUnderwritingData": {
"someKey1": "someValue1",
"someKey2": "someValue2",
"someKey3": "someValue3"
},
"decisionReason": "this is a decline reason",
"adverseActionReasons": [
"adverse action reason 1",
"adverse action reason 2"
],
"idempotencyKey": "3q1a3sbe-se12-4603-8ed0-820923389fb1"
},
"relationships": {
"creditApplication": {
"data": {
"type": "creditApplication",
"id": "12"
}
}
}
}
}'

Response

Response is a JSON:API document.

201 Created

FieldTypeDescription
dataDeniedCreditApplicationDecisionThe returned resource after the operation was completed.
Example Response:
{
"data": {
"type": "deniedCreditApplicationDecision",
"id": "1",
"attributes": {
"createdAt": "2023-07-04T15:21:11.688Z",
"externalApplicationId": "A1234",
"evaluationType": "CreditApplication",
"submissionTimestamp": "2023-09-19T09:10:09.206Z",
"decisionTimestamp": "2023-09-19T09:10:09.206Z",
"decision": "Denied",
"policyException": true,
"policyExceptionReason": "Executive approval",
"additionalUnderwritingData": {
"someKey1": "someValue1",
"someKey2": "someValue2",
"someKey3": "someValue3"
},
"decisionReason": "this is a decline reason",
"adverseActionReasons": [
"adverse action reason 1",
"adverse action reason 2"
]
},
"relationships": {
"application": {
"data": {
"type": "application",
"id": "10005"
}
},
"bank": {
"data": {
"type": "bank",
"id": "10"
}
},
"creditApplication": {
"data": {
"type": "creditApplication",
"id": "12"
}
}
}
}
}

Create Manual Review Credit Limit Decision

Create a manual review credit decision for an existing customer.

Credit decision creation requests support Idempotency, ensuring that performing multiple identical requests will have the same result as a single request.

VerbPOST
Urlhttps://api.s.unit.sh/credit-decisions
Required Scopecredit-decisions-write
Data TypemanualReviewCreditLimitDecision
Timeout (Seconds)5

Attributes

NameTypeDescription
externalApplicationIdstringIdentifier for client’s credit evaluation related to this decision. Max 200 char.
submissionTimestamptimestampTimestamp when the corresponding credit application was submitted.
decisionTimestamptimestampTimestamp when the credit decision was made.
policyExceptionbooleanOne of true or false.
policyExceptionReasonstringConditional if policyException is true. Brief description of reason for policy exception. Max 200 char.
additionalUnderwritingDatajsonObject containing key-value pairs of underwriting data per credit policy.
idempotencyKeystringOptional. See Idempotency.

Relationships

NameTypeDescription
creditApplicationJSON:API RelationshipThe Credit Application for which this credit decision applies to.
Example Request:
curl -X POST 'https://api.s.unit.sh/credit-decisions'
-H 'Content-Type: application/vnd.api+json'
-H 'Authorization: Bearer ${TOKEN}'
--data-raw '{
"data": {
"type": "manualReviewCreditLimitDecision",
"attributes": {
"externalApplicationId": "A1234",
"submissionTimestamp": "2023-09-19T09:10:09.206Z",
"decisionTimestamp": "2023-09-19T09:10:09.206Z",
"policyException": true,
"policyExceptionReason": "Executive approval",
"additionalUnderwritingData": {
"someKey1": "someValue1",
"someKey2": "someValue2",
"someKey3": "someValue3"
},
"idempotencyKey": "3q1a3sbe-se12-4603-8ed0-820923389fb1"
},
"relationships": {
"creditApplication": {
"data": {
"type": "creditApplication",
"id": "12"
}
}
}
}
}'

Response

Response is a JSON:API document.

201 Created

FieldTypeDescription
dataManualReviewCreditLimitDecisionThe returned resource after the operation was completed.
Example Response:
{
"data": {
"type": "manualReviewCreditLimitDecision",
"id": "1",
"attributes": {
"createdAt": "2023-07-04T15:21:11.688Z",
"externalApplicationId": "A1234",
"evaluationType": "CreditLimit",
"submissionTimestamp": "2023-09-19T09:10:09.206Z",
"decisionTimestamp": "2023-09-19T09:10:09.206Z",
"decision": "ManualReview",
"policyException": true,
"policyExceptionReason": "Executive approval",
"additionalUnderwritingData": {
"someKey1": "someValue1",
"someKey2": "someValue2",
"someKey3": "someValue3"
}
},
"relationships": {
"customer": {
"data": {
"type": "customer",
"id": "10000"
}
},
"creditApplication": {
"data": {
"type": "creditApplication",
"id": "12"
}
}
}
}
}

Create Approved Credit Limit Decision

Create an approved credit decision for a credit application.

Credit decision creation requests support Idempotency, ensuring that performing multiple identical requests will have the same result as a single request.

VerbPOST
Urlhttps://api.s.unit.sh/credit-decisions
Required Scopecredit-decisions-write
Data TypeapprovedCreditLimitDecision
Timeout (Seconds)5

Attributes

NameTypeDescription
externalApplicationIdstringIdentifier for client’s credit evaluation related to this decision. Max 200 char.
submissionTimestamptimestampTimestamp when the corresponding credit application was submitted.
decisionTimestamptimestampTimestamp when the credit decision was made.
creditLimitInteger (Cents)Credit limit for application as evaluated per policy.
policyExceptionbooleanOne of true or false.
policyExceptionReasonstringConditional if policyException is true. Brief description of reason for policy exception. Max 200 char.
additionalUnderwritingDatajsonObject containing key-value pairs of underwriting data per credit policy.
idempotencyKeystringOptional. See Idempotency.

Relationships

NameTypeDescription
creditApplicationJSON:API RelationshipThe Credit Application for which this credit decision applies to.
Example Request:
curl -X POST 'https://api.s.unit.sh/credit-decisions'
-H 'Content-Type: application/vnd.api+json'
-H 'Authorization: Bearer ${TOKEN}'
--data-raw '{
"data": {
"type": "approvedCreditLimitDecision",
"attributes": {
"externalApplicationId": "A1234",
"submissionTimestamp": "2023-09-19T09:10:09.206Z",
"decisionTimestamp": "2023-09-19T09:10:09.206Z",
"policyException": true,
"policyExceptionReason": "Executive approval",
"additionalUnderwritingData": {
"someKey1": "someValue1",
"someKey2": "someValue2",
"someKey3": "someValue3"
},
"creditLimit": 1000000,
"idempotencyKey": "3q1a3sbe-se12-4603-8ed0-820923389fb1"
},
"relationships": {
"creditApplication": {
"data": {
"type": "creditApplication",
"id": "12"
}
}
}
}
}'

Response

Response is a JSON:API document.

201 Created

FieldTypeDescription
dataApprovedCreditLimitDecisionThe returned resource after the operation was completed.
Example Response:
{
"data": {
"type": "approvedCreditLimitDecision",
"id": "1",
"attributes": {
"createdAt": "2023-07-04T15:21:11.688Z",
"externalApplicationId": "A1234",
"evaluationType": "CreditLimit",
"submissionTimestamp": "2023-09-19T09:10:09.206Z",
"decisionTimestamp": "2023-09-19T09:10:09.206Z",
"decision": "Approved",
"policyException": true,
"policyExceptionReason": "Executive approval",
"additionalUnderwritingData": {
"someKey1": "someValue1",
"someKey2": "someValue2",
"someKey3": "someValue3"
},
"creditLimit": 1000000
},
"relationships": {
"customer": {
"data": {
"type": "customer",
"id": "10000"
}
},
"creditApplication": {
"data": {
"type": "creditApplication",
"id": "12"
}
}
}
}
}

Create Denied Credit Limit Decision

Create a denied credit decision for an existing customer.

Credit decision creation requests support Idempotency, ensuring that performing multiple identical requests will have the same result as a single request.

VerbPOST
Urlhttps://api.s.unit.sh/credit-decisions
Required Scopecredit-decisions-write
Data TypedeniedCreditLimitDecision
Timeout (Seconds)5

Attributes

NameTypeDescription
externalApplicationIdstringIdentifier for client’s credit evaluation related to this decision. Max 200 char.
submissionTimestamptimestampTimestamp when the corresponding credit application was submitted.
decisionTimestamptimestampTimestamp when the credit decision was made.
policyExceptionbooleanOne of true or false.
policyExceptionReasonstringConditional if policyException is true. Brief description of reason for policy exception. Max 200 char.
additionalUnderwritingDatajsonObject containing key-value pairs of underwriting data per credit policy.
decisionReasonstringReason for denial per credit policy. Max 200 char.
adverseActionReasonsArray of stringsArray of strings representing Adverse action reasons (must have at least one). Max 200 char per reason.
idempotencyKeystringOptional. See Idempotency.

Relationships

NameTypeDescription
creditApplicationJSON:API RelationshipThe Credit Application for which this credit decision applies to.
Example Request:
curl -X POST 'https://api.s.unit.sh/credit-decisions'
-H 'Content-Type: application/vnd.api+json'
-H 'Authorization: Bearer ${TOKEN}'
--data-raw '{
"data": {
"type": "deniedCreditLimitDecision",
"attributes": {
"externalApplicationId": "A1234",
"submissionTimestamp": "2023-09-19T09:10:09.206Z",
"decisionTimestamp": "2023-09-19T09:10:09.206Z",
"policyException": true,
"policyExceptionReason": "Executive approval",
"additionalUnderwritingData": {
"someKey1": "someValue1",
"someKey2": "someValue2",
"someKey3": "someValue3"
},
"decisionReason": "this is a decline reason",
"adverseActionReasons": [
"adverse action reason 1",
"adverse action reason 2"
],
"idempotencyKey": "3q1a3sbe-se12-4603-8ed0-820923389fb1"
},
"relationships": {
"creditApplication": {
"data": {
"type": "creditApplication",
"id": "12"
}
}
}
}
}'

Response

Response is a JSON:API document.

201 Created

FieldTypeDescription
dataDeniedCreditLimitDecisionThe returned resource after the operation was completed.
Example Response:
{
"data": {
"type": "deniedCreditLimitDecision",
"id": "1",
"attributes": {
"createdAt": "2023-07-04T15:21:11.688Z",
"externalApplicationId": "A1234",
"evaluationType": "CreditLimit",
"submissionTimestamp": "2023-09-19T09:10:09.206Z",
"decisionTimestamp": "2023-09-19T09:10:09.206Z",
"decision": "Denied",
"policyException": true,
"policyExceptionReason": "Executive approval",
"additionalUnderwritingData": {
"someKey1": "someValue1",
"someKey2": "someValue2",
"someKey3": "someValue3"
},
"decisionReason": "this is a decline reason",
"adverseActionReasons": [
"adverse action reason 1",
"adverse action reason 2"
]
},
"relationships": {
"customer": {
"data": {
"type": "customer",
"id": "10000"
}
},
"creditApplication": {
"data": {
"type": "creditApplication",
"id": "12"
}
}
}
}
}

Get by Id

Get a credit decision resource by id.

VerbGET
Urlhttps://api.s.unit.sh/credit-decisions/{id}
Required Scopecredit-decisions
Timeout (Seconds)5

Response

Response is a JSON:API document.

200 OK

FieldTypeDescription
dataCreditDecisionA credit decision resource.
curl -X GET 'https://api.s.unit.sh/credit-decisions/1' \
-H "Authorization: Bearer ${TOKEN}"

List

List credit decision resources. Paging can be applied.

VerbGET
Urlhttps://api.s.unit.sh/credit-decisions
Required Scopecredit-decisions
Timeout (Seconds)5

Query Parameters

NameTypeDefaultDescription
page[limit]integer100Optional. Maximum number of resources that will be returned. Maximum is 1000 resources. See Pagination.
page[offset]integer0Optional. Number of resources to skip. See Pagination.
filter[orgId]string(empty)Optional. Filters the results by the specified org id.
filter[customerId]string(empty)Optional. Filters the results by the specified customer id.
filter[accountId]string(empty)Optional. Filters the results by the specified account id.
filter[applicationId]string(empty)Optional. Filters the results by the specified application id.
filter[bankId]string(empty)Optional. Filters the results by the specified bank id.
filter[decision]string(empty)Optional. Filters the results by the specified decision (one of Approved or Denied).
filter[evaluationType]string(empty)Optional. Filters the results by the specified evaluation type (one of CreditLimit or CreditApplication).
curl -X GET 'https://api.s.unit.sh/credit-decisions?page[limit]=20&page[offset]=10' \
-H "Authorization: Bearer ${TOKEN}"

Response

Response is a JSON:API document.

200 OK

FieldTypeDescription
dataArray of CreditDecisionsArray of credit-decisions resources.
Example Response:
{
"data": [
{
"type": "deniedCreditLimitDecision",
"id": "1",
"attributes": {
"createdAt": "2023-07-04T15:21:11.688Z",
"externalApplicationId": "A1234",
"evaluationType": "CreditLimit",
"submissionTimestamp": "2023-09-19T09:10:09.206Z",
"decisionTimestamp": "2023-09-19T09:10:09.206Z",
"decision": "Denied",
"policyException": true,
"policyExceptionReason": "Executive approval",
"additionalUnderwritingData": {
"someKey1": "someValue1",
"someKey2": "someValue2",
"someKey3": "someValue3"
},
"decisionReason": "this is a decline reason",
"adverseActionReasons": [
"adverse action reason 1",
"adverse action reason 2"
]
},
"relationships": {
"customer": {
"data": {
"type": "customer",
"id": "10000"
}
},
"account": {
"data": {
"type": "account",
"id": "10005"
}
}
}
},
{
"type": "deniedCreditApplicationDecision",
"id": "1",
"attributes": {
"createdAt": "2023-07-04T15:21:11.688Z",
"externalApplicationId": "A1234",
"evaluationType": "CreditApplication",
"submissionTimestamp": "2023-09-19T09:10:09.206Z",
"decisionTimestamp": "2023-09-19T09:10:09.206Z",
"decision": "Denied",
"policyException": true,
"policyExceptionReason": "Executive approval",
"additionalUnderwritingData": {
"someKey1": "someValue1",
"someKey2": "someValue2",
"someKey3": "someValue3"
},
"decisionReason": "this is a decline reason",
"adverseActionReasons": [
"adverse action reason 1",
"adverse action reason 2"
]
},
"relationships": {
"application": {
"data": {
"type": "application",
"id": "10005"
}
}
}
}
]
}