Skip to content

Request Check Deposit

POST
/pieces/{piece_id}/check-deposit-requests

Requests a deposit of the checks in a piece to one of the inbox’s bank accounts. A deposit needs human action, so the response describes the new request, not a completed deposit: the mailroom extracts the checks and ships them to the bank, and the request’s status follows those steps.

Get the bank account ID from Get Check Deposit Bank Accounts. Use post_operation_action to shred the rest of the piece once the checks are out. Without it, the piece is kept.

Returns 409 if another operation is in progress for the piece or its checks have already been requested for deposit, and 400 if the account is not active.

Send your API key in the x-api-key header. See Authentication.

piece_id
required
string
object
check_deposit_bank_account_id
required

The bank account to deposit to, from Get Check Deposit Bank Accounts.

integer
500
expedited

Ship the checks to the bank overnight instead of by standard mail, for a fee; see Virtual Mail detailed pricing. Overnight deposits typically reach the bank in 1 business day; allow one more for requests made after 5 PM.

Skip it when the bank account’s financial_institution.expedited is true: those banks get overnight delivery for free on every deposit. When the bank has no street address a courier can deliver to, the checks go by the fastest postal service instead.

boolean
post_operation_action
One of:
object
type
required

store keeps the piece, shred shreds it.

string
Allowed values: store shred
Examples
{
"check_deposit_bank_account_id": 500
}

Success

object
id
integer
created_at
string format: date-time
updated_at
string format: date-time
operation_action
string
check-deposit
operation_status
string
tags
Array<string>
check_deposit_bank_account_id
integer | null
status

Opened while the request is in progress, then Shipped once the checks are on their way to the bank. Cancelled and Error end a request without a deposit.

string
Shipped
expedited

Whether overnight delivery to the bank was requested. See expedited in Request Check Deposit.

boolean
bank_account
object
id
integer
created_at
string format: date-time
updated_at
string format: date-time
inbox_id
integer | null
routing_number
string
121000248
check_processing_system_type
integer
account_number
string
********4510
account_display_name
string
Business Checking
account_type
string
checking
financial_institution
object
id
integer
name
string
First National Bank
routing_number
string
has_shipping_address
boolean
shipping_banking_institution_id
integer | null
expedited

When true, every deposit to this bank ships overnight at no extra cost, so there’s no need to request expedited.

boolean
shipping_addresses
Array<object>
object
id
integer
123456
created_at
string format: date-time
updated_at
string format: date-time
addressee
string
Molly Smith
address_line_1
string
1004 S Mt Olive St
address_line_2
string
locality
string
PHOENIX
region_abbreviation
string
AZ
region
string
Arizona
country_abbreviation
string
US
country
string
United States
postal_code
string
72761
phone
string
tags
Array<string>
[
"domestic"
]
delivery_confidence_percent
number | null
inbox_id
integer | null
company
string | null
is_authorized
boolean | null
requires_hs_tariff_codes
boolean | null
requires_itn
boolean | null
rdc
boolean
rdcVerified
boolean
contact_name
string
contact_business
string
contact_address
string
contact_phone
string
rdc
boolean
resubmittable
boolean
checks
Array<object>
object
id
integer
amount_in_cents
integer
150000
check_number
string
008451
piece_id
integer
media
Array<object>
object
id
string
1_1_2_0_0
url
string
content_type
string
image/jpg
tags
Array<string>
[
"color",
"large",
"enclosure",
"front"
]
url_valid_until
string format: date-time
file_size_in_bytes
integer
shipment
One of:
object
id
integer | null
carrier
string
USPS
carrier_service
string
Priority
tracking_number
string
external_id
string | null
shipped_at
string format: date-time
expected_delivery_at
string format: date-time
delivered_at
string format: date-time
inbox_id
integer | null
post_operation_action
One of:
object
type
required

store keeps the piece, shred shreds it.

string
Allowed values: store shred
piece_id
integer
deposit_slips
Array<object>
object
id
string
1_1_2_0_0
url
string
content_type
string
image/jpg
tags
Array<string>
[
"color",
"large",
"enclosure",
"front"
]
url_valid_until
string format: date-time
file_size_in_bytes
integer
requested_at
string format: date-time
extracted_at
string format: date-time
check_processing_system_type
integer
validate_only
boolean
scan_page_number
integer
piece
One of:
object
id
integer
14460059
created_at
string format: date-time
updated_at
string format: date-time
inbox_id
integer
97599
barcode
string
0000000101 0016615290
license_plate
integer
433808312186
recipient
object
id
integer
122028
name
string
Bruce Wayne
inbox_id
integer | null
97599
type
string
mailbox_folder_id
integer
0
tags
Array<string>
[
"unscanned",
"read",
"inbox",
"stored"
]
attributes
Array<string>
[
"unscanned",
"read",
"inbox",
"stored"
]
sender
One of:
object
name
string
address
string
received_at
string format: date-time
date_arrived_in_mailbox
string format: date-time
weight_in_ounces
number
0.16
facility_name
string
page_count_estimate
integer
2
page_count_actual
integer | null
height_in_inches
number
3.9
depth_in_inches
number
0.1
length_in_inches
number
8.88
carrier
object
name
string
Unknown
class
string
Unknown
media
Array
object
id
string
1_1_2_0_0
url
string
content_type
string
image/jpg
tags
Array<string>
[
"color",
"large",
"enclosure",
"front"
]
url_valid_until
string format: date-time
file_size_in_bytes
integer
piece_id
integer | null
14460059
scan_id
integer | null
page_count
integer | null
1
sequence_number
integer | null
ocr_data
string
envelope_ocr_data
string
piece_type
string
mail
piece_sub_type
string
letter
insights
Array<object>
object
type
string
confidence
number
user_defined_tags
Array<object>
object
id
integer
3001
created_at
string format: date-time
updated_at
string format: date-time
label
string
Urgent
parent_tag_id
integer | null
piece_counts
integer | null
12
matched_by
Array<string>
operation_action
string | null
end_user_operation_status
string | null
storage_fee_amount_in_cents
integer
can_delete_scan_only
boolean
available_actions
Array<string>
name
string
detected_checks_count
integer | null
recipient_type
string
date_arrived_at
string format: date-time
deposit_slip_ids
Array<integer>
Example
{
"id": 100001,
"created_at": "2020-05-10T09:41:00Z",
"updated_at": "2020-05-10T09:41:00Z",
"operation_action": "check-deposit",
"operation_status": "pending",
"status": "Opened",
"check_deposit_bank_account_id": 500,
"piece_id": 100002,
"inbox_id": 100003,
"expedited": true,
"post_operation_action": {
"type": "shred"
},
"checks": [],
"piece": {
"id": 100002
}
}

The request could not be processed, for example an international shipment without customs information.

Error envelope returned with 4xx and 5xx responses.

object
error
object
code

Usually the HTTP status code. It can differ; a request to an unknown path returns HTTP 400 with code 500.

integer
401
message

Human-readable description of the error.

string
type

The kind of error, for example Authorization or REST.

string
REST
fields

Returned only with 422 responses. It may give more details about what failed validation, as lists of messages keyed by the name of the input.

object
key
additional properties
Array<string>

The x-api-key header is missing or the key is not valid, or the caller can’t access an ID in the request. IDs that don’t exist return the same response as IDs the caller can’t access.

Error envelope returned with 4xx and 5xx responses.

object
error
object
code

Usually the HTTP status code. It can differ; a request to an unknown path returns HTTP 400 with code 500.

integer
401
message

Human-readable description of the error.

string
type

The kind of error, for example Authorization or REST.

string
REST
fields

Returned only with 422 responses. It may give more details about what failed validation, as lists of messages keyed by the name of the input.

object
key
additional properties
Array<string>
Examples
{
"error": {
"code": 401,
"message": "The request does not include a valid access token. Please provide a valid access token.",
"type": "Authorization"
}
}

Actions are blocked for a piece in the request. When an account’s mail actions are blocked, for example because the account wasn’t reverified or an identity document expired, pieces received after that can’t be changed. These pieces have actions-blocked-no-reverification or actions-blocked-document-expired in their attributes.

Error envelope returned with 4xx and 5xx responses.

object
error
object
code

Usually the HTTP status code. It can differ; a request to an unknown path returns HTTP 400 with code 500.

integer
401
message

Human-readable description of the error.

string
type

The kind of error, for example Authorization or REST.

string
REST
fields

Returned only with 422 responses. It may give more details about what failed validation, as lists of messages keyed by the name of the input.

object
key
additional properties
Array<string>
Examples
{
"error": {
"code": 403,
"message": "piece: Mail actions for piece with ID 123456 has been blocked.",
"type": "REST"
}
}

The request conflicts with the current state of the resource.

Error envelope returned with 4xx and 5xx responses.

object
error
object
code

Usually the HTTP status code. It can differ; a request to an unknown path returns HTTP 400 with code 500.

integer
401
message

Human-readable description of the error.

string
type

The kind of error, for example Authorization or REST.

string
REST
fields

Returned only with 422 responses. It may give more details about what failed validation, as lists of messages keyed by the name of the input.

object
key
additional properties
Array<string>

The request body failed validation. The message names the invalid field.

Error envelope returned with 4xx and 5xx responses.

object
error
object
code

Usually the HTTP status code. It can differ; a request to an unknown path returns HTTP 400 with code 500.

integer
401
message

Human-readable description of the error.

string
type

The kind of error, for example Authorization or REST.

string
REST
fields

Returned only with 422 responses. It may give more details about what failed validation, as lists of messages keyed by the name of the input.

object
key
additional properties
Array<string>
Example
{
"error": {
"code": 422,
"message": "label: must have a value",
"type": "REST",
"fields": {}
}
}