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
Name | Type | Description |
---|
creditLimit | Integer (Cents) | Credit limit for application as evaluated per policy. |
Denied Decision Attributes
Name | Type | Description |
---|
decisionReason | string | Reason for denial per credit policy. Max 200 char. |
adverseActionReasons | Array of strings | Array 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.
Verb | POST |
Url | https://api.s.unit.sh/credit-decisions |
Required Scope | credit-decisions-write |
Data Type | manualReviewCreditApplicationDecision |
Timeout (Seconds) | 5 |
Attributes
Name | Type | Description |
---|
externalApplicationId | string | Identifier for client’s credit evaluation related to this decision. Max 200 char. |
submissionTimestamp | timestamp | Timestamp when the corresponding credit application was submitted. |
decisionTimestamp | timestamp | Timestamp when the credit decision was made. |
policyException | boolean | One of true or false . |
policyExceptionReason | string | Conditional 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
Example Request:
curl -X POST 'https:
-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
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.
Verb | POST |
Url | https://api.s.unit.sh/credit-decisions |
Required Scope | credit-decisions-write |
Data Type | deniedCreditApplicationDecision |
Timeout (Seconds) | 5 |
Attributes
Name | Type | Description |
---|
externalApplicationId | string | Identifier for client’s credit evaluation related to this decision. Max 200 char. |
submissionTimestamp | timestamp | Timestamp when the corresponding credit application was submitted. |
decisionTimestamp | timestamp | Timestamp when the credit decision was made. |
decisionReason | string | Reason for denial per credit policy. Max 200 char. |
adverseActionReasons | Array of strings | Array of strings representing Adverse action reasons (must have at least one). Max 200 char per reason. |
policyException | boolean | One of true or false . |
policyExceptionReason | string | Conditional 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
Example Request:
curl -X POST 'https:
-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.
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.
Verb | POST |
Url | https://api.s.unit.sh/credit-decisions |
Required Scope | credit-decisions-write |
Data Type | manualReviewCreditLimitDecision |
Timeout (Seconds) | 5 |
Attributes
Name | Type | Description |
---|
externalApplicationId | string | Identifier for client’s credit evaluation related to this decision. Max 200 char. |
submissionTimestamp | timestamp | Timestamp when the corresponding credit application was submitted. |
decisionTimestamp | timestamp | Timestamp when the credit decision was made. |
policyException | boolean | One of true or false . |
policyExceptionReason | string | Conditional 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
Example Request:
curl -X POST 'https:
-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.
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.
Verb | POST |
Url | https://api.s.unit.sh/credit-decisions |
Required Scope | credit-decisions-write |
Data Type | approvedCreditLimitDecision |
Timeout (Seconds) | 5 |
Attributes
Name | Type | Description |
---|
externalApplicationId | string | Identifier for client’s credit evaluation related to this decision. Max 200 char. |
submissionTimestamp | timestamp | Timestamp when the corresponding credit application was submitted. |
decisionTimestamp | timestamp | Timestamp when the credit decision was made. |
creditLimit | Integer (Cents) | Credit limit for application as evaluated per policy. |
policyException | boolean | One of true or false . |
policyExceptionReason | string | Conditional 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
Example Request:
curl -X POST 'https:
-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.
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.
Verb | POST |
Url | https://api.s.unit.sh/credit-decisions |
Required Scope | credit-decisions-write |
Data Type | deniedCreditLimitDecision |
Timeout (Seconds) | 5 |
Attributes
Name | Type | Description |
---|
externalApplicationId | string | Identifier for client’s credit evaluation related to this decision. Max 200 char. |
submissionTimestamp | timestamp | Timestamp when the corresponding credit application was submitted. |
decisionTimestamp | timestamp | Timestamp when the credit decision was made. |
policyException | boolean | One of true or false . |
policyExceptionReason | string | Conditional 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. |
decisionReason | string | Reason for denial per credit policy. Max 200 char. |
adverseActionReasons | Array of strings | Array of strings representing Adverse action reasons (must have at least one). Max 200 char per reason. |
idempotencyKey | string | Optional. See Idempotency. |
Relationships
Example Request:
curl -X POST 'https:
-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.
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.
Verb | GET |
Url | https://api.s.unit.sh/credit-decisions/{id} |
Required Scope | credit-decisions |
Timeout (Seconds) | 5 |
Response
Response is a JSON:API document.
200 OK
curl -X GET 'https:
-H "Authorization: Bearer ${TOKEN}"
List
List credit decision resources. Paging can be applied.
Verb | GET |
Url | https://api.s.unit.sh/credit-decisions |
Required Scope | credit-decisions |
Timeout (Seconds) | 5 |
Query Parameters
Name | Type | Default | Description |
---|
page[limit] | integer | 100 | Optional. Maximum number of resources that will be returned. Maximum is 1000 resources. See Pagination. |
page[offset] | integer | 0 | Optional. 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:
-H "Authorization: Bearer ${TOKEN}"
Response
Response is a JSON:API document.
200 OK
Field | Type | Description |
---|
data | Array of CreditDecisions | Array 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"
}
}
}
}
]
}