Check Deposits
Unit enables Check deposits using a standard Remote Deposit Capture (RDC) mechanism.
info
Unit uses a client side SDK (iOS, Android and mobile web) to allow you to take pictures of the check. The main benefit of the SDK is that it runs client side validations and provides the customer with immediate feedback on the image quality. Contact Unit to receive the Check Deposit SDKs.
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.
Create Check Deposit#
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 |
#
AttributesName | Type | Description |
---|---|---|
amount | integer | The check amount (in cents) to deposit. |
description | string | Optional. Description of the check deposit (maximum of 50 characters). |
tags | object | Optional. See Tags. |
idempotencyKey | string | Optional, but strongly recommended . See Idempotency. |
#
RelationshipsName | 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" } } } }}'
#
ResponseResponse is a JSON:API document.
#
201 CreatedField | 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 StatusWhen 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 sent but the deposit account was not credited yet. |
Sent | The check deposit was processed and approved. 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). |
#
Check Deposit Return ReasonsBelow is a list of some of the more common return reasons for check deposits.
Return Reason | |
---|---|
Not Sufficient 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 | |
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 ReasonsBelow 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 | Required Action |
---|---|
Altered / Fictitious | |
Suspected Counterfeit | |
Missing Endorsement | 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 | |
Check has already been submitted | This check cannot be accepted again |
Missing Signature | |
Beneficiary Name Mismatch | 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 | |
Amount mismatch | |
Blank check | |
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 |
#
Query ParametersName | 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 |
#
ResponseResponse is a JSON:API document.
#
200 OKField | 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 |
#
Query ParametersName | 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[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}"
#
ResponseResponse is a JSON:API document.
#
200 OKField | 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 |
#
AttributesName | Type | Description |
---|---|---|
tags | object | See Updating Tags. |
#
ResponseResponse is a JSON:API document.
#
200 OKField | 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#
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 |
note
Maximum image size is 20mb.
#
HeadersHeader | Value |
---|---|
Content-Type | Always image/jpeg . |
#
ResponseResponse is a JSON:API document.
#
200 OKField | 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#
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 |
note
Maximum image size is 20mb.
#
HeadersHeader | Value |
---|---|
Content-Type | Always image/jpeg . |
#
ResponseResponse is a JSON:API document.
#
200 OKField | 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'