Welcome to intelligent mail.

Lob's Print & Mail APIs deliver robust automation and scale for anything with a stamp.

We gave mail an upgrade.

Now you can program and control physical mail just like e-mail, from automatic triggers to lightning-fast delivery and everything in between. The result? A more timely, relevant, and personal customer experience that's fully automated and trackable. If it's mail, Lob does it better.


Achieve scale for complex, labor-intensive, expensive processes that no one likes doing. Just set it and forget it.

Print Delivery

Lob automatically routes print requests through our vast network of vetted printers, so mail gets to its destination faster than ever.

Dynamic control,
for every detail.

Forget rigid templates—our personalization makes your data truly variable, so you can iterate quickly, easily make changes, and do multivariate testing.

Powerful dashboard
and analytics.

Aggregate and piece-by-piece delivery tracking, complete mail history, and comprehensive logging—it's all right there.

Send the following through Lob:

Issue payments with secure, branded checks.

Does your business need to send refunds, rebates, or other payments to customers on a regular basis? Use Lob to automate the printing and delivery of accurate, secure, and branded checks so your operations and finance teams can focus on other things.

Custom Checks At Scale

With Lob, you can set up triggered delivery of customized checks that reinforce your brand. In addition to a logo and memo, include instructions, invoice information, and more to make payments as clear as possible.

State-of-the-Art Security

Lob has delivered over $70M in payments with secure checks. Each check is sent with a colored background, watermarks, micro-printed borders, thermal ink that disappears when rubbed, and Magnetic Ink Character Recognition (MICR) encoding to facilitate bank processing and reduce errors.

Trackable Check Delivery

There's no need to wonder if your checks have been printed or delivered. With Lob, you can track their progress through the mail and make sure each check makes it way to its intended recipient, at no additional cost.

Easy integration via REST API.

Include your check HTML along with a shipping address in one simple API call. Integration is dead simple with pre-built libraries and code examples in Node.js, Ruby, Python, PHP, Java, and Elixir.

Read Docs View Libraries
  • curl

  • Node

  • Ruby

  • Python

  • PHP

  • Java

  • Elixir

curl https://api.lob.com/v1/checks \
  -u test_0dc8d51e0acffcb1880e0f19c79b2f5b0cc: \
  -d "description=Demo Check" \
  -d "to=adr_d3489cd64c791ab5" \
  -d "from=adr_eae4448bb64c07f0" \
  -d "bank_account=bank_8cad8df5354d33f" \
  -d "amount=22.50" \
  -d "memo=rent" \
  --data-urlencode "check_bottom=<h1 style='padding-top:4in;'>Demo Check for {{name}}</h1>" \
  -d "merge_variables[name]=Harry"


  description: 'Demo Check',
  bank_account: 'bank_8cad8df5354d33f',
  to: 'adr_d3489cd64c791ab5',
  from: 'adr_eae4448bb64c07f0',
  amount: 22.50,
  memo: 'rent',
  check_bottom: '<h1 style="padding-top:4in;">Demo Check for {{name}}</h1>',
  merge_variables: {
    name: 'Harry'
}, function (err, res) {
  console.log(err, res);


  description: "Demo Check",
  bank_account: "bank_8cad8df5354d33f",
  to: "adr_d3489cd64c791ab5",
  from: "adr_eae4448bb64c07f0",
  amount: 22.50,
  memo: "rent",
  check_bottom: "<h1 style='padding-top:4in;'>Demo Check for {{name}}</h1>",
  merge_variables: {
    name: "Harry"


  description = 'Demo Check',
  to_address = 'adr_d3489cd64c791ab5',
  from_address = 'adr_eae4448bb64c07f0',
  bank_account = 'bank_8cad8df5354d33f',
  amount = 22.50,
  memo = 'rent',
  check_bottom = '<h1 style="padding-top:4in;">Demo Check for {{name}}</h1>',
  merge_variables = {
    'name': 'Harry'


  'description'           => 'Demo Check',
  'to'                    => 'adr_d3489cd64c791ab5',
  'from'                  => 'adr_eae4448bb64c07f0',
  'bank_account'          => 'bank_8cad8df5354d33f',
  'amount'                => 22.50,
  'memo'                  => 'rent',
  'check_bottom'          => '<h1 style="padding-top:4in;">Demo Check for {{name}}</h1>',
  'merge_variables[name]' => 'Harry'


final Map<String, String> mergeVariables = Maps.newHashMap();
mergeVariables.put("name", "Harry");

final CheckRequest checkRequest = CheckRequest.builder()
  .checkBottom("<h1 style='padding-top:4in;'>Demo Check for {{name}}</h1>")
final CheckResponse check = client.createCheck(checkRequest).get();


  description: "Demo Check",
  bank_account: "bank_8cad8df5354d33f",
  to: "adr_d3489cd64c791ab5",
  from: "adr_eae4448bb64c07f0",
  amount: 22.50,
  memo: "rent",
  check_bottom: "<h1 style='padding-top:4in;'>Demo Check for {{name}}</h1>",
  merge_variables: %{
    name: "Harry"


Case Study

How SeatGeek uses Lob

SeatGeek is the leading mobile-focused ticket marketplace that enables fans to buy and sell tickets for sports, concert, and theater events. Along with the rapid growth of their user base came rapid growth of their rebate program. New SeatGeek users have the option to redeem a rebate through either PayPal or a physical check. Before Lob, manually sending every single one of those checks was taxing the company.

Previously, SeatGeek was manually taking care of mailing checks for their rebate program. That meant manual data packaging, printing, signing, enveloping, stamping, and mailing everything on-premise. When the rebate program was just getting started, this was a tolerable burden. However, as their user base grew, the manual sending of checks took up an unreasonable amount of time for everyone in the team. They knew that this wouldn't be scalable.

The rebate program was already programmatically connected to the PayPal API to automate paying out to PayPal accounts. The accounting team began to look for a similar product that they could use for checks—which is when they found Lob. "From the get go, Lob was very easy not only to use, but also to set up. That was a big concern for us, as with any new service," recalls Marco Soto Decker, who works in the Accounting team at SeatGeek. However, after doing some test runs and working with the Lob team, they got up and running in no time.

“We really could not be more satisfied with the service and obviously the by-product of it, which is more time for our team to focus on enhancing our operations.”

Now that Lob is completely set up, a huge weight has been lifted from SeatGeek's accounting team. Once per week, the rebate checks are sent through Lob and automatically printed and mailed to customers. Plus, SeatGeek can even utilize Lob to send check payments that are outside of the rebate program, such as refunds.

Because of Lob, there's more time now for the accounting team to focus elsewhere instead of manually signing checks and licking envelopes. This has freed up almost 10 hours a week for the team members involved in the rebate process, and the service is now completely seamless. "We really could not be more satisfied with the service and obviously the by-product of it, which is more time for our team to focus on enhancing our operations," mentions Soto Decker.

As SeatGeek continues to scale, they are excited about continuing to leverage Lob and furthering the API integration they have already.


man-hours saved per year


days from API request to mailbox on average

Smarter mail starts with Lob.

It's dead-simple to get up and running, and our experts are here to help at every step.

Try It Now Talk to Sales