Skip to main content
API Reference
Cards
Inbound Mail Items

Inbound Mail Items represent pieces of physical mail delivered to a Lockbox Address. Increase automatically deposits checks mailed to a Lockbox Recipient into the recipient’s Account. Checks that are not matched to a Lockbox Recipient must be deposited or ignored using the Action an Inbound Mail Item endpoint.

Events
Your application can listen to webhooks about this resource. The events about Inbound Mail Items will have the categories "inbound_mail_item.created" or "inbound_mail_item.updated" .
The Inbound Mail Item object
{
  "checks": [
    {
      "amount": 1750,
      "back_file_id": "file_makxrc67oh9l6sg7w9yc",
      "check_deposit_id": "check_deposit_f06n9gpg7sxn8t19lfc1",
      "front_file_id": "file_makxrc67oh9l6sg7w9yc",
      "status": "deposited"
    },
    {
      "amount": 1750,
      "back_file_id": "file_makxrc67oh9l6sg7w9yc",
      "check_deposit_id": "check_deposit_f06n9gpg7sxn8t19lfc1",
      "front_file_id": "file_makxrc67oh9l6sg7w9yc",
      "status": "deposited"
    }
  ],
  "created_at": "2020-01-31T23:59:59Z",
  "file_id": "file_makxrc67oh9l6sg7w9yc",
  "id": "inbound_mail_item_q6rrg7mmqpplx80zceev",
  "lockbox_address_id": "lockbox_address_lw6sbzl9ol5dfd8hdml6",
  "lockbox_recipient_id": "lockbox_3xt21ok13q19advds4t5",
  "recipient_name": "Ian Crease",
  "rejection_reason": null,
  "status": "processed",
  "type": "inbound_mail_item"
}
Attributes
checks
array

The checks in the mail item.

created_at
string

The ISO 8601 time at which the Inbound Mail Item was created.

file_id
string

The identifier for the File containing the scanned contents of the mail item.

More about Files.
id
string

The Inbound Mail Item identifier.

lockbox_address_id
string

The identifier for the Lockbox Address that received this mail item.

More about Lockbox Addresses.
lockbox_recipient_id
string
Nullable

The identifier for the Lockbox Recipient that received this mail item. For mail items that could not be routed to a Lockbox Recipient, this will be null.

More about Lockbox Recipients.
recipient_name
string
Nullable

The recipient name as written on the mail item.

rejection_reason
enum
Nullable

If the mail item has been rejected, why it was rejected.

status
enum

If the mail item has been processed.

type
string

A constant representing the object’s type. For this resource it will always be inbound_mail_item.

List Inbound Mail Items
curl \
  --url "${INCREASE_URL}/inbound_mail_items" \
  -H "Authorization: Bearer ${INCREASE_API_KEY}"
import Increase from 'increase';

const client = new Increase({
  apiKey: process.env['INCREASE_API_KEY'], // This is the default and can be omitted
});

// Automatically fetches more pages as needed.
for await (const inboundMailItem of client.inboundMailItems.list()) {
  console.log(inboundMailItem.id);
}
import os
from increase import Increase

client = Increase(
    api_key=os.environ.get("INCREASE_API_KEY"),  # This is the default and can be omitted
)
page = client.inbound_mail_items.list()
page = page.data[0]
print(page.id)
require "increase"

increase = Increase::Client.new(
  api_key: ENV["INCREASE_API_KEY"] # This is the default and can be omitted
)

page = increase.inbound_mail_items.list

puts(page)
package main

import (
	"context"
	"fmt"
	"os"

	"github.com/Increase/increase-go"
	"github.com/Increase/increase-go/option"
)

func main() {
	client := increase.NewClient(
		option.WithAPIKey(os.Getenv("INCREASE_API_KEY")), // This is the default and can be omitted
	)
	page, err := client.InboundMailItems.List(context.TODO(), increase.InboundMailItemListParams{})
	if err != nil {
		panic(err.Error())
	}
	fmt.Printf("%+v\n", page)
}
package com.increase.api.example;

import com.increase.api.client.IncreaseClient;
import com.increase.api.client.okhttp.IncreaseOkHttpClient;
import com.increase.api.models.inboundmailitems.InboundMailItemListPage;
import com.increase.api.models.inboundmailitems.InboundMailItemListParams;

public final class Main {
    private Main() {}

    public static void main(String[] args) {
        IncreaseClient client = IncreaseOkHttpClient.fromEnv();

        InboundMailItemListPage page = client.inboundMailItems().list();
    }
}
package com.increase.api.example

import com.increase.api.client.IncreaseClient
import com.increase.api.client.okhttp.IncreaseOkHttpClient
import com.increase.api.models.inboundmailitems.InboundMailItemListPage
import com.increase.api.models.inboundmailitems.InboundMailItemListParams

fun main() {
    val client: IncreaseClient = IncreaseOkHttpClient.fromEnv()

    val page: InboundMailItemListPage = client.inboundMailItems().list()
}
<?php

require_once dirname(__DIR__) . '/vendor/autoload.php';

use Increase\Client;
use Increase\Core\Exceptions\APIException;

$client = new Client(apiKey: getenv('INCREASE_API_KEY'));

try {
  $page = $client->inboundMailItems->list(
    createdAt: [
      'after' => new \DateTimeImmutable('2019-12-27T18:11:19.117Z'),
      'before' => new \DateTimeImmutable('2019-12-27T18:11:19.117Z'),
      'onOrAfter' => new \DateTimeImmutable('2019-12-27T18:11:19.117Z'),
      'onOrBefore' => new \DateTimeImmutable('2019-12-27T18:11:19.117Z'),
    ],
    cursor: 'cursor',
    limit: 1,
    lockboxAddressID: 'lockbox_address_id',
    lockboxRecipientID: 'lockbox_recipient_id',
  );

  var_dump($page);
} catch (APIException $e) {
  echo $e->getMessage();
}
using System;
using Increase.Api;
using Increase.Api.Models.InboundMailItems;

IncreaseClient client = new();

InboundMailItemListParams parameters = new();

var page = await client.InboundMailItems.List(parameters);
await foreach (var item in page.Paginate())
{
    Console.WriteLine(item);
}
Returns a list response :
{
  "data": [
    { /* Inbound Mail Item object */ },
    { /* Inbound Mail Item object */ }
    /* ... */
  ],
  "next_cursor": "v57w5d",
}
Parameters
lockbox_recipient_id
string

Filter Inbound Mail Items to ones sent to the provided Lockbox Recipient.

More about Lockbox Recipients.
lockbox_address_id
string

Filter Inbound Mail Items to ones sent to the provided Lockbox Address.

More about Lockbox Addresses.
More
cursor
string
limit
integer
created_at.after
string
created_at.before
string
created_at.on_or_after
string
created_at.on_or_before
string
Retrieve an Inbound Mail Item
curl \
  --url "${INCREASE_URL}/inbound_mail_items/inbound_mail_item_q6rrg7mmqpplx80zceev" \
  -H "Authorization: Bearer ${INCREASE_API_KEY}"
import Increase from 'increase';

const client = new Increase({
  apiKey: process.env['INCREASE_API_KEY'], // This is the default and can be omitted
});

const inboundMailItem = await client.inboundMailItems.retrieve(
  'inbound_mail_item_q6rrg7mmqpplx80zceev',
);

console.log(inboundMailItem.id);
import os
from increase import Increase

client = Increase(
    api_key=os.environ.get("INCREASE_API_KEY"),  # This is the default and can be omitted
)
inbound_mail_item = client.inbound_mail_items.retrieve(
    "inbound_mail_item_q6rrg7mmqpplx80zceev",
)
print(inbound_mail_item.id)
require "increase"

increase = Increase::Client.new(
  api_key: ENV["INCREASE_API_KEY"] # This is the default and can be omitted
)

inbound_mail_item = increase.inbound_mail_items.retrieve("inbound_mail_item_q6rrg7mmqpplx80zceev")

puts(inbound_mail_item)
package main

import (
	"context"
	"fmt"
	"os"

	"github.com/Increase/increase-go"
	"github.com/Increase/increase-go/option"
)

func main() {
	client := increase.NewClient(
		option.WithAPIKey(os.Getenv("INCREASE_API_KEY")), // This is the default and can be omitted
	)
	inboundMailItem, err := client.InboundMailItems.Get(context.TODO(), "inbound_mail_item_q6rrg7mmqpplx80zceev")
	if err != nil {
		panic(err.Error())
	}
	fmt.Printf("%+v\n", inboundMailItem.ID)
}
package com.increase.api.example;

import com.increase.api.client.IncreaseClient;
import com.increase.api.client.okhttp.IncreaseOkHttpClient;
import com.increase.api.models.inboundmailitems.InboundMailItem;
import com.increase.api.models.inboundmailitems.InboundMailItemRetrieveParams;

public final class Main {
    private Main() {}

    public static void main(String[] args) {
        IncreaseClient client = IncreaseOkHttpClient.fromEnv();

        InboundMailItem inboundMailItem = client.inboundMailItems().retrieve("inbound_mail_item_q6rrg7mmqpplx80zceev");
    }
}
package com.increase.api.example

import com.increase.api.client.IncreaseClient
import com.increase.api.client.okhttp.IncreaseOkHttpClient
import com.increase.api.models.inboundmailitems.InboundMailItem
import com.increase.api.models.inboundmailitems.InboundMailItemRetrieveParams

fun main() {
    val client: IncreaseClient = IncreaseOkHttpClient.fromEnv()

    val inboundMailItem: InboundMailItem = client.inboundMailItems().retrieve("inbound_mail_item_q6rrg7mmqpplx80zceev")
}
<?php

require_once dirname(__DIR__) . '/vendor/autoload.php';

use Increase\Client;
use Increase\Core\Exceptions\APIException;

$client = new Client(apiKey: getenv('INCREASE_API_KEY'));

try {
  $inboundMailItem = $client->inboundMailItems->retrieve(
    'inbound_mail_item_q6rrg7mmqpplx80zceev'
  );

  var_dump($inboundMailItem);
} catch (APIException $e) {
  echo $e->getMessage();
}
using System;
using Increase.Api;
using Increase.Api.Models.InboundMailItems;

IncreaseClient client = new();

InboundMailItemRetrieveParams parameters = new()
{
    InboundMailItemID = "inbound_mail_item_q6rrg7mmqpplx80zceev"
};

var inboundMailItem = await client.InboundMailItems.Retrieve(parameters);

Console.WriteLine(inboundMailItem);
Parameters
inbound_mail_item_id
string
Required

The identifier of the Inbound Mail Item to retrieve.

More about Inbound Mail Items.
Action an Inbound Mail Item

Deposits or ignores each check contained in a pending Inbound Mail Item. Depositing a check creates a Check Deposit into the Account you specify.

curl -X "POST" \
  --url "${INCREASE_URL}/inbound_mail_items/inbound_mail_item_q6rrg7mmqpplx80zceev/action" \
  -H "Authorization: Bearer ${INCREASE_API_KEY}" \
  -H "Content-Type: application/json" \
  -d $'{
    "checks": [
      {
        "account_id": "account_in71c4amph0vgo2qllky",
        "action": "deposit"
      },
      {
        "action": "ignore"
      }
    ]
  }'
import Increase from 'increase';

const client = new Increase({
  apiKey: process.env['INCREASE_API_KEY'], // This is the default and can be omitted
});

const inboundMailItem = await client.inboundMailItems.action(
  'inbound_mail_item_q6rrg7mmqpplx80zceev',
  { checks: [{ action: 'deposit' }, { action: 'ignore' }] },
);

console.log(inboundMailItem.id);
import os
from increase import Increase

client = Increase(
    api_key=os.environ.get("INCREASE_API_KEY"),  # This is the default and can be omitted
)
inbound_mail_item = client.inbound_mail_items.action(
    inbound_mail_item_id="inbound_mail_item_q6rrg7mmqpplx80zceev",
    checks=[{
        "action": "deposit"
    }, {
        "action": "ignore"
    }],
)
print(inbound_mail_item.id)
require "increase"

increase = Increase::Client.new(
  api_key: ENV["INCREASE_API_KEY"] # This is the default and can be omitted
)

inbound_mail_item = increase.inbound_mail_items.action(
  "inbound_mail_item_q6rrg7mmqpplx80zceev",
  checks: [{action: :deposit}, {action: :ignore}]
)

puts(inbound_mail_item)
package main

import (
	"context"
	"fmt"
	"os"

	"github.com/Increase/increase-go"
	"github.com/Increase/increase-go/option"
)

func main() {
	client := increase.NewClient(
		option.WithAPIKey(os.Getenv("INCREASE_API_KEY")), // This is the default and can be omitted
	)
	inboundMailItem, err := client.InboundMailItems.Action(
		context.TODO(),
		"inbound_mail_item_q6rrg7mmqpplx80zceev",
		increase.InboundMailItemActionParams{
			Checks: increase.F([]increase.InboundMailItemActionParamsCheck{{
				Action: increase.F(increase.InboundMailItemActionParamsChecksActionDeposit),
			}, {
				Action: increase.F(increase.InboundMailItemActionParamsChecksActionIgnore),
			}}),
		},
	)
	if err != nil {
		panic(err.Error())
	}
	fmt.Printf("%+v\n", inboundMailItem.ID)
}
package com.increase.api.example;

import com.increase.api.client.IncreaseClient;
import com.increase.api.client.okhttp.IncreaseOkHttpClient;
import com.increase.api.models.inboundmailitems.InboundMailItem;
import com.increase.api.models.inboundmailitems.InboundMailItemActionParams;

public final class Main {
    private Main() {}

    public static void main(String[] args) {
        IncreaseClient client = IncreaseOkHttpClient.fromEnv();

        InboundMailItemActionParams params = InboundMailItemActionParams.builder()
            .inboundMailItemId("inbound_mail_item_q6rrg7mmqpplx80zceev")
            .addCheck(InboundMailItemActionParams.Check.builder()
                .action(InboundMailItemActionParams.Check.Action.DEPOSIT)
                .build())
            .addCheck(InboundMailItemActionParams.Check.builder()
                .action(InboundMailItemActionParams.Check.Action.IGNORE)
                .build())
            .build();
        InboundMailItem inboundMailItem = client.inboundMailItems().action(params);
    }
}
package com.increase.api.example

import com.increase.api.client.IncreaseClient
import com.increase.api.client.okhttp.IncreaseOkHttpClient
import com.increase.api.models.inboundmailitems.InboundMailItem
import com.increase.api.models.inboundmailitems.InboundMailItemActionParams

fun main() {
    val client: IncreaseClient = IncreaseOkHttpClient.fromEnv()

    val params: InboundMailItemActionParams = InboundMailItemActionParams.builder()
        .inboundMailItemId("inbound_mail_item_q6rrg7mmqpplx80zceev")
        .addCheck(InboundMailItemActionParams.Check.builder()
            .action(InboundMailItemActionParams.Check.Action.DEPOSIT)
            .build())
        .addCheck(InboundMailItemActionParams.Check.builder()
            .action(InboundMailItemActionParams.Check.Action.IGNORE)
            .build())
        .build()
    val inboundMailItem: InboundMailItem = client.inboundMailItems().action(params)
}
<?php

require_once dirname(__DIR__) . '/vendor/autoload.php';

use Increase\Client;
use Increase\Core\Exceptions\APIException;

$client = new Client(apiKey: getenv('INCREASE_API_KEY'));

try {
  $inboundMailItem = $client->inboundMailItems->action(
    'inbound_mail_item_q6rrg7mmqpplx80zceev',
    checks: [
      ['action' => 'deposit', 'accountID' => 'account_in71c4amph0vgo2qllky'],
      ['action' => 'ignore', 'accountID' => 'account_in71c4amph0vgo2qllky'],
    ],
  );

  var_dump($inboundMailItem);
} catch (APIException $e) {
  echo $e->getMessage();
}
using System;
using Increase.Api;
using InboundMailItems = Increase.Api.Models.InboundMailItems;

IncreaseClient client = new();

InboundMailItems::InboundMailItemActionParams parameters = new()
{
    InboundMailItemID = "inbound_mail_item_q6rrg7mmqpplx80zceev",
    Checks =
    [
        new()
        {
            Action = InboundMailItems::Action.Deposit,
            AccountID = "account_in71c4amph0vgo2qllky",
        },
        new()
        {
            Action = InboundMailItems::Action.Ignore,
            AccountID = "account_in71c4amph0vgo2qllky",
        },
    ],
};

var inboundMailItem = await client.InboundMailItems.Action(parameters);

Console.WriteLine(inboundMailItem);
Parameters
inbound_mail_item_id
string
Required

The identifier of the Inbound Mail Item to action.

More about Inbound Mail Items.
checks
array
Required

The actions to perform on the Inbound Mail Item.

Sandbox: Create an Inbound Mail Item

Simulates an Inbound Mail Item to one of your Lockbox Addresses or Lockbox Recipients, as if someone had mailed a physical check. Increase automatically deposits a check mailed to a Lockbox Recipient into the recipient’s Account. A check mailed to a Lockbox Address must be deposited or ignored with the Action an Inbound Mail Item endpoint.

curl -X "POST" \
  --url "${INCREASE_URL}/simulations/inbound_mail_items" \
  -H "Authorization: Bearer ${INCREASE_API_KEY}" \
  -H "Content-Type: application/json" \
  -d $'{
    "amount": 1000,
    "lockbox_recipient_id": "lockbox_3xt21ok13q19advds4t5"
  }'
import Increase from 'increase';

const client = new Increase({
  apiKey: process.env['INCREASE_API_KEY'], // This is the default and can be omitted
});

const inboundMailItem = await client.simulations.inboundMailItems.create({ amount: 1000 });

console.log(inboundMailItem.id);
import os
from increase import Increase

client = Increase(
    api_key=os.environ.get("INCREASE_API_KEY"),  # This is the default and can be omitted
)
inbound_mail_item = client.simulations.inbound_mail_items.create(
    amount=1000,
)
print(inbound_mail_item.id)
require "increase"

increase = Increase::Client.new(
  api_key: ENV["INCREASE_API_KEY"] # This is the default and can be omitted
)

inbound_mail_item = increase.simulations.inbound_mail_items.create(amount: 1000)

puts(inbound_mail_item)
package main

import (
	"context"
	"fmt"
	"os"

	"github.com/Increase/increase-go"
	"github.com/Increase/increase-go/option"
)

func main() {
	client := increase.NewClient(
		option.WithAPIKey(os.Getenv("INCREASE_API_KEY")), // This is the default and can be omitted
	)
	inboundMailItem, err := client.Simulations.InboundMailItems.New(context.TODO(), increase.SimulationInboundMailItemNewParams{
		Amount: increase.F(int64(1000)),
	})
	if err != nil {
		panic(err.Error())
	}
	fmt.Printf("%+v\n", inboundMailItem.ID)
}
package com.increase.api.example;

import com.increase.api.client.IncreaseClient;
import com.increase.api.client.okhttp.IncreaseOkHttpClient;
import com.increase.api.models.inboundmailitems.InboundMailItem;
import com.increase.api.models.simulations.inboundmailitems.InboundMailItemCreateParams;

public final class Main {
    private Main() {}

    public static void main(String[] args) {
        IncreaseClient client = IncreaseOkHttpClient.fromEnv();

        InboundMailItemCreateParams params = InboundMailItemCreateParams.builder()
            .amount(1000L)
            .build();
        InboundMailItem inboundMailItem = client.simulations().inboundMailItems().create(params);
    }
}
package com.increase.api.example

import com.increase.api.client.IncreaseClient
import com.increase.api.client.okhttp.IncreaseOkHttpClient
import com.increase.api.models.inboundmailitems.InboundMailItem
import com.increase.api.models.simulations.inboundmailitems.InboundMailItemCreateParams

fun main() {
    val client: IncreaseClient = IncreaseOkHttpClient.fromEnv()

    val params: InboundMailItemCreateParams = InboundMailItemCreateParams.builder()
        .amount(1000L)
        .build()
    val inboundMailItem: InboundMailItem = client.simulations().inboundMailItems().create(params)
}
<?php

require_once dirname(__DIR__) . '/vendor/autoload.php';

use Increase\Client;
use Increase\Core\Exceptions\APIException;

$client = new Client(apiKey: getenv('INCREASE_API_KEY'));

try {
  $inboundMailItem = $client->simulations->inboundMailItems->create(
    amount: 1000,
    contentsFileID: 'contents_file_id',
    lockboxAddressID: 'lockbox_address_id',
    lockboxRecipientID: 'lockbox_3xt21ok13q19advds4t5',
  );

  var_dump($inboundMailItem);
} catch (APIException $e) {
  echo $e->getMessage();
}
using System;
using Increase.Api;
using Increase.Api.Models.Simulations.InboundMailItems;

IncreaseClient client = new();

InboundMailItemCreateParams parameters = new() { Amount = 1000 };

var inboundMailItem = await client.Simulations.InboundMailItems.Create(parameters);

Console.WriteLine(inboundMailItem);
Parameters
amount
integer
Required

The amount of the check to be simulated, in cents.

contents_file_id
string

The file containing the PDF contents. If not present, a default check image file will be used.

More about Files.
lockbox_address_id
string

The identifier of the Lockbox Address to simulate inbound mail to. Exactly one lockbox identifier parameter must be provided.

More about Lockbox Addresses.
lockbox_recipient_id
string

The identifier of the Lockbox Recipient to simulate inbound mail to. Exactly one lockbox identifier parameter must be provided.

More about Lockbox Recipients.