The Deposit Underwriting API scoring endpoint may be called with values which can trigger mock responses.
By manipulation of the request field values, mock response scoring values may also be controlled.
Mocks are driven by the API request itself. In order for mocks to work, the profile.email field needs to be set to mock@responses.com.
The last 3 digits of profile.alternatePhoneNumber will be used as the API response score as well as the corresponding webhook response.
To test a transaction going to manual review, set the last 3 digits of profile.alternatePhoneNumber to 001. Then set the last 3 digits of profile.mobilePhoneNumber to the score you would like to get as the emulated manual review response score. In this scenario, the API response score will be 1 and the webhook response will be the last 3 digits of profile.mobilePhoneNumber.
To test checkMakerName null value, set checkDetails.checkImages.frontImageJpg to null-check-maker-name.
To test for idempotency, set profile.firstName to Idempotent string. This will trigger the idempotency header to be true.
To test for "In-Flight" response, set profile.firstName to InFlight string. This will trigger the HTTP 409 Status Response.
clientId field should be your assigned API request client id. If not, webhooks responses will not be sent
{
"clientId": "9f6ca047-7f0a-40a4-9685-6894f228d588", <======= Your assigned API request client id
"transactionId": "ef17e5bf-97e6-4a7a-bfb0-24faa09fe3ee",
"customerId": "4dc95598-bb5b-4eea-97e7-08bc94c6bcf4",
"depositChannel": "mobile",
"depositAccounts": [
{
"accountNumberLast4Digits": "7777",
"depositAccountType": "DDA",
"accountAddress": {
"addressType": "Personal",
"addressLine1": "123 Sesame St",
"addressLine2": "Line 2 - optional",
"city": "Denver",
"stateCode": "CO",
"zipCode": "12345",
"isStandardized": false
},
"depositAccountAttributes": {
"tenureInDays": 370,
"totalTransactionCountPerMonth": 5,
"averageMonthlyDepositAmountInCents": 65840,
"currentBalanceInCents": 59695,
"isDirectDepositEnabled": false,
"checksSubmittedCountLast2Years": 25,
"checksAcceptedCountLast2Years": 20,
"averageChecksAcceptedAmountInCentsLast2Years": 250000,
"checksReturnedCountLast2Years": 5,
"averageCheckReturnAmountInCentsLast2Years": 65840,
"customAttributes": [
{
"attributeName": "tenureInMonths",
"attributeValue": "5"
}
]
}
}
],
"profile": {
"firstName": "Jim", <======= Set to "Idempotent" string to return idempotency header true. Set to "InFlight" to get the HTTP 409 status response
"middleName": "Allen",
"lastName": "LaDue",
"email": "mock@responses.com", <======= This email drives the mocks
"ssn": "555555555",
"dob": "05-05-1985",
"mobilePhoneNumber": "6158675309", <====== The last 3 digits as the manual review score IF 'alternatePhoneNumber' last 3 digits are set to 001
"alternatePhoneNumber": "9999999899", <====== The last 3 digits will be used for the score
"profileAddress": {
"addressType": "PERSONAL",
"addressLine1": "123 Sesame St",
"addressLine2": null,
"city": "Denver",
"stateCode": "CO",
"zipCode": "12345",
"isStandardized": false
},
"profileRelationshipAttributes": {
"tenureInDays": 345,
"totalActiveAccounts": 5,
"totalClosedAccountsCount": 10,
"totalTransactionCountPerMonthAllAccounts": 5,
"averageMonthlyDepositAmountInCentsAllAccounts": 65840,
"currentBalanceInCentsAllAccounts": 59695,
"isDirectDepositEnabled": true,
"totalChecksSubmittedCountLast2Years": 8,
"totalChecksAcceptedCountLast2Years": 7,
"averageTotalChecksAcceptedAmountInCentsLast2Years": 512670,
"totalChecksReturnedCountLast2Years": 1,
"averageTotalCheckReturnAmountInCentsLast2Years": 50087,
"customAttributes": [
{
"attributeName": "hasGoldAccountStatus",
"attributeValue": "false"
}
]
}
},
"deviceInfo": {
"fingerPrinting": {
"iovation": {
"blackBoxValue": "BLACK_BOX_VALUE_GOES_HERE"
}
}
},
"geoLocation": {
"latitude": "89.998998",
"longitude": "179.21212121"
},
"checkDetails": {
"endorsementCheckRequired": true,
"accountNumber": "11223333",
"checkNumber": "1234",
"aba": "123456789",
"micr": "MICR",
"ocrAmountInCents": 50000,
"checkAmountInCents": 50000,
"checkDate": "01-10-2020",
"checkImages": {
"frontImageJpg": "base64EncodedJPG|URL",
"backImageJpg": "base64EncodedJPG|URL",
"frontImageTiff": "base64EncodedJPG|URL",
"backImageTiff": "base64EncodedJPG|URL"
},
"checkMaker": {
"makerName": "Chuck Jones",
"makerAddress": {
"addressLine1": "123 Sesame St",
"addressLine2": "Optional",
"city": "Denver",
"stateCode": "CO",
"zipCode": "12345"
}
}
},
"correlationData": [
{
"attributeName": "correlationId1",
"attributeValue": "12345"
}
]
}
{
"clientData": {
"clientId": "<ECHOED FROM REQUEST>",
"transactionId": "<ECHOED FROM REQUEST>",
"customerId": "<ECHOED FROM REQUEST>"
},
"ingoCustomerId": "<NEW GUID>"
"ingoTransactionId": "<NEW GUID>"
"checkType": "Government", <======= This will always be "Government" for a mock response. Unless `null-check-maker-name` value is set in the request, then it will have a null value. for a mock response
"checkMakerName": "Regions", <======= This will always be "Regions" for a mock response
"ingoCheckAmountInCents": 500, <======= hardcoded at 500
"transactionRiskScore": 899, <======= last 3 digits of the Profile.AlternatePhoneNumber in the REQUEST
"transactionRiskEngineScore": 899, <======= last 3 digits of the Profile.AlternatePhoneNumber in the REQUEST
"requestId": "<NEW GUID>"
}