Check Deposits
Unit enables Check deposits using a standard Remote Deposit Capture (RDC) mechanism.
Unit uses the Check Deposits component ( Web, iOS, Android and React Native ) to allow you to create check deposits, and to capture and upload its images. The main benefit of the component is that it runs client-side validations and provides the customer with immediate feedback on the image quality.
Once a check deposit is created, and the check's images are uploaded, Unit will validate the images, process the check and credit the customer's deposit account if successful.
Check Deposit lifecycle may vary per bank partner. For more information and guidance, please contact Unit.
Dynamic Clearing Period (Check Deposits)
Dynamic Clearing Period enables you to set the amount of days it will take a check deposit to clear and funds to become available in the deposit account. When this feature is enabled, the value that is passed as clearingDaysOverride
, will replace the default amount of clearing days as it is defined in the deposit product.
In order to enable the Dynamic Clearing Period feature, new definitions of maximum clearing days and minimum clearing days will need to be added to the deposit product so the clearingDaysOverride
attribute will support values between the minimum clearing days and the maximum clearing days .
If a clearing days override is not specified when the check deposit is created, the clearing period will be set to the default clearing period set in the deposit product.
The clearing period can be changed after the check deposit resource has been created, as long as it is still in Pending
or PendingReview
status.
The dynamic clearing period functionality is disabled by default. If you would like to enable it, please contact Unit.
Create Check Deposit
Deprecated
The Create Check Deposit endpoint has been deprecated and replaced with the White Label UI Check Deposits component. Existing implementations will continue to be be supported but we recommend to switch to the White Label UI Check Deposit component for better performance.
Creates a check deposit for an Account
.
Verb | POST |
Url | https://api.s.unit.sh/check-deposits |
Required Scope | check-deposits-write |
Data Type | checkDeposit |
Timeout (Seconds) | 5 |
Attributes
Name | Type | Description |
---|---|---|
amount | integer | The check amount (in cents) to deposit. |
description | string | Description of the check deposit (maximum of 50 characters). |
clearingDaysOverride | number | Optional. See Dynamic Clearing Period. |
tags | object | Optional. See Tags. |
idempotencyKey | string | Optional, but strongly recommended . See Idempotency. |
Relationships
Name | Type | Description |
---|---|---|
account | JSON:API Relationship | The account receiving the check deposit. |
curl -X POST 'https://api.s.unit.sh/check-deposits'
-H 'Content-Type: application/vnd.api+json'
-H 'Authorization: Bearer ${TOKEN}'
--data-raw '{
"data": {
"type": "checkDeposit",
"attributes": {
"amount": 20000,
"description": "Check deposit"
},
"relationships": {
"account": {
"data": {
"type": "depositAccount",
"id": "10001"
}
}
}
}
}'
Response
Response is a JSON:API document.
201 Created
Field | Type | Description |
---|---|---|
data | CheckDeposit | The requested resource after the operation was completed. |
{
"data": {
"type": "checkDeposit",
"id": "1112",
"attributes": {
"createdAt": "2021-05-27T09:29:30.828Z",
"amount": 20000,
"description": "Check deposit",
"status": "AwaitingImages"
},
"relationships": {
"account": {
"data": {
"type": "account",
"id": "10001"
}
},
"customer": {
"data": {
"type": "customer",
"id": "10000"
}
}
}
}
}
Check Deposit Status
When you create a check deposit it will be created with an AwaitingImages
status.
You may track its progress using the status
attribute or listening to relevant webhooks.
The possible status
values are:
Status | Description |
---|---|
AwaitingImages | The check deposit was created. Waiting for the front-side and back-side images to be uploaded. |
AwaitingFrontImage | The back-side image of the check was received. Waiting for the front-side image to be uploaded. |
AwaitingBackImage | The front-side image of the check was received. Waiting for the back-side image to be uploaded. |
Pending | The check deposit was created on the Unit ledger but was not yet processed. Check deposits with Pending status may be canceled by the originator. |
PendingReview | The check deposit is pending review by Unit. |
Rejected | The check deposit was rejected (see reason for more details). Some rejections are immediate but some can take up to a couple of days. |
Clearing | The check deposit was processed and the funds have been received by Unit, but the deposit account was not credited yet. The check deposit will stay clearing for a period of time as defined on the deposit product, for fraud risk mitigation reasons. It’s recommended that the physical check is kept securely until the end of the statement cycle. |
Sent | The check deposit was processed and the deposit account was credited. This is the final state for successful check deposits. |
Canceled | The check deposit was canceled. |
Returned | The check deposit was processed but the receiving bank was not able to complete the transfer (see reason for more details). |
AwaitingCustomerConfirmation | The check deposit requires the customer's attention: either retaking the images or confirmation check deposit amount. If no action is captured within a 10 minutes window, the check deposit will automatically be Rejected . This status is not part of all check deposit's lifecycles and mainly depends on a bank partner. |
Customer Confirmation Reasons
Status Reason | Required Action |
---|---|
Check amount could not be confirmed. Please review and re-enter amount. | Update check amount |
Review and confirm your signature endorsement is on back of check. | Upload back side image |
Review and confirm payer signature is on front of check. | Upload front side image |
Review and confirm that “For Mobile Deposit Only” is under signature endorsement on back of check. | Upload back side image |
Check Deposit Return Reasons
Below is a list of some of the more common return reasons for check deposits.
Return Reason | Description |
---|---|
Not Sufficient Funds | Check owner account does not have enough funds. |
Uncollected Funds Hold | The funds are on hold at the paying bank. |
Stop Payment | The owner of the check requested their bank not honor the check. |
Closed Account | Check owner account is closed. |
Frozen Account | Check owner account is Frozen. |
Unable to Locate Account | The issuing bank was not able to locate the bank account. |
Refer to Maker | There has been an issue with paying the check. Please refer to check owner. |
Duplicate Presentment | The check has already been deposited in the past. |
Check Deposit Reject Reasons
Below is a list of some of the more common rejection reasons for check deposits. This list is regularly updated as Unit continues to add more fraud prevention measures.
Reject Reason | Description | Required Action |
---|---|---|
Altered / Fictitious | Check appears to have been altered or forged. | |
Suspected Counterfeit | ||
Missing Endorsement | Endorsement area is blank. | Sign back of the check |
Cannot read check | Retake photo of check. Ensure proper focus, good lighting and that all four corners are visible. If the issue persists | |
Date Issue | A check is either undated, post-dated or stale-dated. | Replace with a check with a valid date (date cannot be a future date, older than 6 months or outside of a "void by" date specified on the check. |
Check has already been submitted | This check cannot be accepted again | |
Missing Signature | Unsigned by maker. | |
Beneficiary Name Mismatch | Beneficiary name does not match the customer name. | Make sure the name on the check matches the one on the account. |
Check processing failed | Please try again. | |
No check uploaded | ||
Cannot read Account data on bottom of check | Retake photo of check. Ensure proper focus, good lighting and that all four corners are visible | |
Unable to read account information due to interference from signature or other markings. | ||
Incomplete Check | Any of the required check elements are not visible, or if the customer did not upload both the front and back of the check. | |
Amount Mismatch | The legal amount (written out) does not the match numeric amount or the amount entered by the customer when the check deposit was submitted. | |
Blank Check | ||
Duplicate Check | Check may have been deposited before. | Please try a different check. |
Partial Endorsement | Check is missing either endorsement signature or restrictive endorsement. | |
Session Expired | The allowed time frame for confirmation has passed. See Customer Confirmation | Please try again. |
Other |
Get by Id
Get a check deposit by id.
Verb | GET |
Url | https://api.s.unit.sh/check-deposits/{id} |
Required Scope | check-deposits |
Timeout (Seconds) | 5 |
Query Parameters
Name | Type | Default | Description |
---|---|---|---|
include | string | (empty) | Optional. A comma-separated list of related resources to include in the response. Related resources include: customer , account , transaction . See Getting Related Resources |
Response
Response is a JSON:API document.
200 OK
Field | Type | Description |
---|---|---|
data | Check Deposit | CheckDeposit resource. |
included | Array of DepositAccount or Customer or Transaction | Array of resources requested by the include query parameter. |
curl -X GET 'https://api.s.unit.sh/check-deposits/100' \
-H "Authorization: Bearer ${TOKEN}"
List
List check deposit resources. Filtering, paging and sorting can be applied.
Verb | GET |
Url | https://api.s.unit.sh/check-deposits |
Required Scope | check-deposits |
Timeout (Seconds) | 120 |
Query Parameters
Name | Type | Default | Description |
---|---|---|---|
page[limit] | integer | 100 | Maximum number of resources that will be returned. Maximum is 1000 resources. See Pagination. |
page[offset] | integer | 0 | Number of resources to skip. See Pagination. |
filter[accountId] | string | (empty) | Optional. Filters the results by the specified account id. |
filter[customerId] | string | (empty) | Optional. Filters the results by the specified customer id. |
filter[status] | Check Deposit Status | (empty) | Optional. Filter by Check Deposit Status. Usage Example: filter[status][0]=PendingReview&filter[status][1]=AwaitingImages |
filter[tags] | Tags (JSON) | (empty) | Optional. Filter check deposits by Tags. |
sort | string | sort=-createdAt | Optional. Leave empty or provide sort=createdAt for ascending order. Provide sort=-createdAt (leading minus sign) for descending order. |
include | string | (empty) | Optional. A comma-separated list of related resources to include in the response. Related resources include: customer , account , transaction . See Getting Related Resources |
curl -X GET 'https://api.s.unit.sh/check-deposits?page[limit]=20&page[offset]=10' \
-H "Authorization: Bearer ${TOKEN}"
Response
Response is a JSON:API document.
200 OK
Field | Type | Description |
---|---|---|
data | Array of Check Deposit | Array of check deposit resources. |
included | Array of DepositAccount or Customer or Transaction | Array of resources requested by the include query parameter. |
{
"data": [
{
"type": "checkDeposit",
"id": "112",
"attributes": {
"createdAt": "2021-05-27T09:29:30.828Z",
"amount": 20000,
"description": "Check deposit",
"status": "AwaitingImages"
},
"relationships": {
"account": {
"data": {
"type": "account",
"id": "10001"
}
},
"customer": {
"data": {
"type": "customer",
"id": "10000"
}
}
}
},
{
"type": "checkDeposit",
"id": "233",
"attributes": {
"createdAt": "2021-05-27T10:49:23.287Z",
"amount": 10000,
"description": "Another check deposit",
"status": "AwaitingImages"
},
"relationships": {
"account": {
"data": {
"type": "account",
"id": "10001"
}
},
"customer": {
"data": {
"type": "customer",
"id": "10000"
}
}
}
}
]
}
Update
Update a check deposit.
Verb | PATCH |
Url | https://api.s.unit.sh/check-deposits/:id |
Required Scope | check-deposits-write |
Timeout (Seconds) | 5 |
Attributes
Name | Type | Description |
---|---|---|
clearingDaysOverride | number | Optional. See Dynamic Clearing Period. |
tags | object | See Updating Tags. |
Response
Response is a JSON:API document.
200 OK
Field | Type | Description |
---|---|---|
data | CheckDeposit | The updated CheckDeposit resource. |
curl -X PATCH 'https://api.s.unit.sh/check-deposits/:id'
-H 'Content-Type: application/vnd.api+json'
-H 'Authorization: Bearer ${TOKEN}'
--data-raw '{
"data": {
"type": "checkDeposit",
"attributes": {
"tags": {
"by": "Richard Hendricks",
"id": "23033b64-38f8-4dbc-91a1-313ff0156d02"
}
}
}
}'
Upload Front-Side Image
Deprecated
The Upload Front-Side Image endpoint has been deprecated and replaced with the White Label UI Check Deposits component. Existing implementations will continue to be be supported but we recommend to switch to the White Label UI Check Deposit component for better performance.
Uploads a check front-side image file. Currently only jpeg
file type is supported.
Verb | PUT |
Url | https://api.s.unit.sh/check-deposits/{checkDepositId}/front |
Required Scope | check-deposits-write |
Timeout (Seconds) | 5 |
Maximum image size is 1.5mb.
Headers
Index | Value |
---|---|
Content-Type | Always image/jpeg . |
Response
Response is a JSON:API document.
200 OK
Field | Type | Description |
---|---|---|
data | CheckDeposit | The updated CheckDeposit resource. |
curl --request PUT 'https://api.s.unit.sh/check-deposits/46/front' \
--header 'Content-Type: image/jpeg' \
--data-binary 'front.jpg'
Upload Back-Side Image
Deprecated
The Upload Back-Side Image endpoint has been deprecated and replaced with the White Label UI Check Deposits component. Existing implementations will continue to be be supported but we recommend to switch to the White Label UI Check Deposit component for better performance.
Uploads a check back-side image file. Currently only jpeg
file type is supported.
Verb | PUT |
Url | https://api.s.unit.sh/check-deposits/{checkDepositId}/back |
Required Scope | check-deposits-write |
Timeout (Seconds) | 5 |
Maximum image size is 1.5mb.
Headers
Index | Value |
---|---|
Content-Type | Always image/jpeg . |
Response
Response is a JSON:API document.
200 OK
Field | Type | Description |
---|---|---|
data | CheckDeposit | The updated CheckDeposit resource. |
curl --request PUT 'https://api.s.unit.sh/check-deposits/46/back' \
--header 'Content-Type: image/jpeg' \
--data-binary 'back.jpg'
Get front image by Id
Get a check deposit front image by check deposit id.
Verb | GET |
Url | https://api.s.unit.sh/check-deposits/{id}/front |
Required Scope | check-deposits |
Timeout (Seconds) | 5 |
Query Parameters
Name | Type | Default | Description |
---|
Response
Response is a IMAGE:JPEG file.
200 OK / 302 Found
Client should support following redirects
curl -X GET 'https://api.s.unit.sh/check-deposits/100/front' \
-H "Authorization: Bearer ${TOKEN}"
Get back image by Id
Get a check deposit back image by check deposit id.
Verb | GET |
Url | https://api.s.unit.sh/check-deposits/{id}/back |
Required Scope | check-deposits |
Timeout (Seconds) | 5 |
Query Parameters
Name | Type | Default | Description |
---|
Response
Response is a IMAGE:JPEG file.
200 OK / 302 Found
Client should support following redirects
curl -X GET 'https://api.s.unit.sh/check-deposits/100/back' \
-H "Authorization: Bearer ${TOKEN}"
Confirm details
Confirms a check deposit details when it's in AwaitingCustomerConfirmation
status