Lob.com Checks API

Checks allow you to send payments via physical checks. The API provides endpoints for creating checks, retrieving individual checks, canceling checks, and retrieving a list of checks. back to top

OpenAPI Specification

lobcom-checks-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Lob Accounts Checks API
  version: 1.22.0
  description: 'The Lob API is organized around REST. Our API is designed to have predictable, resource-oriented URLs and uses HTTP response codes to indicate any API errors. <p>

    '
  license:
    name: MIT
    url: https://mit-license.org/
  contact:
    name: Lob Developer Experience
    url: https://support.lob.com/
    email: lob-openapi@lob.com
  termsOfService: https://www.lob.com/legal
servers:
- url: https://api.lob.com/v1
  description: production
security:
- basicAuth: []
tags:
- name: Checks
  description: 'Checks allow you to send payments via physical checks. The API provides endpoints

    for creating checks, retrieving individual checks, canceling checks, and retrieving a list of checks.

    <div class="back-to-top" ><a href="#" onclick="toTopLink()">back to top</a></div>

    '
paths:
  /checks:
    get:
      operationId: checks_list
      summary: List
      description: Returns a list of your checks. The checks are returned sorted by creation date, with the most recently created checks appearing first.
      tags:
      - Checks
      parameters:
      - $ref: '#/components/parameters/limit'
      - $ref: '#/components/parameters/before_after'
      - $ref: '#/components/parameters/include'
      - $ref: '#/components/parameters/date_created'
      - $ref: '#/components/parameters/metadata'
      - $ref: '#/components/parameters/scheduled'
      - $ref: '#/components/parameters/send_date'
      - $ref: '#/components/parameters/mail_type'
      - $ref: '#/components/parameters/sort_by'
      - $ref: '#/components/parameters/status'
      responses:
        '200':
          $ref: '#/components/responses/all_checks'
        default:
          $ref: '#/components/responses/mailpiece_error'
      x-codeSamples:
      - lang: Shell
        source: "curl -X GET \"https://api.lob.com/v1/checks?limit=2\" \\\n  -u test_0dc8d51e0acffcb1880e0f19c79b2f5b0cc:\n"
        label: CURL
      - lang: typescript
        source: "try {\n  const checks = await new ChecksApi(config).list(2);\n} catch (err: any) {\n  console.error(err);\n}\n"
        label: TYPESCRIPT
      - lang: Javascript
        source: "Lob.checks.list({limit: 2}, function (err, res) {\n  console.log(err, res);\n});\n"
        label: NODE
      - lang: Ruby
        source: "checksApi = ChecksApi.new(config)\n\nbegin\n  checks = checksApi.list({ limit: 2 })\nrescue => err\n  p err.message\nend\n"
        label: RUBY
      - lang: Python
        source: "with ApiClient(configuration) as api_client:\n  api = ChecksApi(api_client)\n\ntry:\n  checks = api.list(limit=2)\nexcept ApiException as e:\n  print(e)\n"
        label: PYTHON
      - lang: PHP
        source: "$apiInstance = new OpenAPI\\Client\\Api\\ChecksApi($config, new GuzzleHttp\\Client());\n\ntry {\n    $result = $apiInstance->list(\n      2, // limit\n    );\n} catch (Exception $e) {\n    echo $e->getMessage(), PHP_EOL;\n}\n"
      - lang: Java
        source: "ChecksApi apiInstance = new ChecksApi(config);\n\ntry {\n  CheckList response = apiInstance.list(\n    2, // limit\n    null, // before\n    null, // after\n    null, // include\n    null, // dateCreated\n    null, // metadata\n    null, // scheduled\n    null, // sendDate\n    null, // mailType\n    null // sortBy\n  );\n} catch (ApiException e) {\n  e.printStackTrace();\n}\n"
        label: JAVA
      - lang: Elixir
        source: 'Lob.Check.list(%{limit: 2})

          '
        label: ELIXIR
      - lang: CSharp
        source: "ChecksApi api = new ChecksApi(config);\n\nList<string> includeList = new List<string>();\nincludeList.Add(\"total_count\");\nDictionary<String, String> metadata = new Dictionary<String, String>();\nmetadata.Add(\"name\", \"Harry\");\nDictionary<String, DateTime> dateCreated = new Dictionary<String, DateTime>();\nDateTime dateCreatedDate = DateTime.Today.AddMonths(-1);\ndateCreated.Add(\"lt\", dateCreatedDate);\nDictionary<String, String> sendDate = new Dictionary<String, String>();\nsendDate.Add(\"lt\", DateTime.Now.ToString(\"yyyy-MM-ddTHH\\\\:mm\\\\:ss.fffffffzzz\"));\nSortBy3 sortBy = new SortBy3(SortBy3.DateCreatedEnum.Asc);\n\ntry {\n  CheckList response = api.list(\n    2, // limit\n    null, // before\n    null, // after\n    includeList, // include\n    dateCreated, // dateCreated\n    metadata, // metadata\n    true, // scheduled\n    sendDate, // sendDate\n    MailType.FirstClass, // mailType\n    sortBy // sortBy\n  );\n} catch (ApiException e) {\n  Console.WriteLine(e.ToString());\n}\n"
        label: CSHARP
      - lang: Go
        source: "var context = context.Background()\ncontext = context.WithValue(suite.ctx, lob.ContextBasicAuth, lob.BasicAuth{UserName: os.Getenv(\"<YOUR_API_KEY>\")})\n\nvar apiClient = *lob.NewAPIClient(configuration)\nCheckList = apiClient.ChecksApi.List(context).Execute()\nif err != nil {\n    return err\n}\n"
        label: GO
    post:
      operationId: check_create
      summary: Create
      description: Creates a new check with the provided properties.
      tags:
      - Checks
      parameters:
      - $ref: '#/components/parameters/idem-header'
      - $ref: '#/components/parameters/idem-query'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/check_editable'
            example:
              description: Demo Check
              to:
                description: Harry - Office
                name: Harry Zhang
                company: Lob
                email: harry@lob.com
                phone: '5555555555'
                address_line1: 210 King St
                address_line2: '# 6100'
                address_city: San Francisco
                address_state: CA
                address_zip: '94107'
                address_country: US
              from:
                name: Leore Avidar
                address_line1: 210 King St
                address_line2: '# 6100'
                address_city: San Francisco
                address_state: CA
                address_zip: 94107-1741
              bank_account: bank_8cad8df5354d33f
              amount: 22.5
              memo: rent
              logo: https://s3-us-west-2.amazonaws.com/public.lob.com/assets/check_logo.png
              check_bottom: tmpl_23668b406d5afef
              merge_variables:
                name: Harry
              metadata:
                memo: rafting trip
              attachment: ./cool.pdf
              send_date: '2017-11-01T00:00:00.000Z'
              use_type: operational
              mail_type: usps_first_class
              check_number: 10001
              print_speed: core
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/check_editable'
            example:
              description: Demo Check
              to:
                description: Harry - Office
                name: Harry Zhang
                company: Lob
                email: harry@lob.com
                phone: '5555555555'
                address_line1: 210 King St
                address_line2: '# 6100'
                address_city: San Francisco
                address_state: CA
                address_zip: '94107'
                address_country: US
              from:
                name: Leore Avidar
                address_line1: 210 King St
                address_line2: '# 6100'
                address_city: San Francisco
                address_state: CA
                address_zip: 94107-1741
              bank_account: bank_8cad8df5354d33f
              amount: 22.5
              memo: rent
              logo: https://s3-us-west-2.amazonaws.com/public.lob.com/assets/check_logo.png
              check_bottom: tmpl_23668b406d5afef
              merge_variables:
                name: Harry
              metadata:
                memo: rafting trip
              attachment: ./cool.pdf
              send_date: '2017-11-01T00:00:00.000Z'
              mail_type: usps_first_class
              check_number: 10001
              print_speed: core
            encoding:
              to:
                style: deepObject
                explode: true
              from:
                style: deepObject
                explode: true
              merge_variables:
                style: deepObject
                explode: true
              metadata:
                style: deepObject
                explode: true
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/check_editable'
            example:
              description: Demo Check
              to:
                description: Harry - Office
                name: Harry Zhang
                company: Lob
                email: harry@lob.com
                phone: '5555555555'
                address_line1: 210 King St
                address_line2: '# 6100'
                address_city: San Francisco
                address_state: CA
                address_zip: '94107'
                address_country: US
              from:
                name: Leore Avidar
                address_line1: 210 King St
                address_line2: '# 6100'
                address_city: San Francisco
                address_state: CA
                address_zip: 94107-1741
              bank_account: bank_8cad8df5354d33f
              amount: 22.5
              memo: rent
              logo: https://s3-us-west-2.amazonaws.com/public.lob.com/assets/check_logo.png
              check_bottom: tmpl_23668b406d5afef
              merge_variables:
                name: Harry
              metadata:
                memo: rafting trip
              attachment: ./cool.pdf
              send_date: '2017-11-01T00:00:00.000Z'
              use_type: operational
              mail_type: usps_first_class
              check_number: 10001
              print_speed: core
            encoding:
              logo:
                contentType: image/png, image/jpeg
      responses:
        '200':
          $ref: '#/components/responses/post_check'
        default:
          $ref: '#/components/responses/mailpiece_error'
      x-codeSamples:
      - lang: Shell
        source: "curl https://api.lob.com/v1/checks \\\n  -u test_0dc8d51e0acffcb1880e0f19c79b2f5b0cc: \\\n  -d 'description=Demo Check' \\\n  -d 'to[name]=Harry Zhang' \\\n  -d 'to[address_line1]=210 King St' \\\n  -d 'to[address_line2]=# 6100' \\\n  -d 'to[address_city]=San Francisco' \\\n  -d 'to[address_state]=CA' \\\n  -d 'to[address_zip]=94107' \\\n  -d 'from=adr_210a8d4b0b76d77b' \\\n  -d 'bank_account=bank_8cad8df5354d33f' \\\n  -d 'amount=22.50' \\\n  -d 'use_type=operational' \\\n  -d 'memo=rent' \\\n  --data-urlencode 'logo=https://s3-us-west-2.amazonaws.com/public.lob.com/assets/check_logo.png' \\\n  --data-urlencode 'check_bottom=<h1 style=\"padding-top:4in;\">Demo Check for {{name}}</h1>' \\\n  -d 'merge_variables[name]=Harry' \\\n  -d 'print_speed=core'\n"
        label: CURL
      - lang: Typescript
        source: "const checkCreate = new CheckEditable({\nto: new AddressEditable({\n  name: 'Harry Zhang',\n  address_line1: '210 King St',\n  address_line2: '# 6100',\n  address_city: 'San Francisco',\n  address_state: 'CA',\n  address_zip: '94107',\n}),\nfrom: 'adr_xxxx',\nbank_account: 'bank_xxxx',\namount: 100,\nuse_type: 'operational',\nprint_speed: 'core'\n});\n\ntry {\n  const myCheck = await new ChecksApi(config).create(checkCreate);\n} catch (err: any) {\n  console.error(err);\n}\n"
        label: TYPESCRIPT
      - lang: Javascript
        source: "Lob.checks.create({\n  description: 'Demo Check',\n  bank_account: 'bank_8cad8df5354d33f',\n  to: {\n    name: 'Harry Zhang',\n    address_line1: '210 King St',\n    address_line2: '# 6100',\n    address_city: 'San Francisco',\n    address_state: 'CA',\n    address_zip: '94107'\n  },\n  from: 'adr_210a8d4b0b76d77b',\n  amount: 22.50,\n  use_type: 'operational', \n  memo: 'rent',\n  logo: 'https://s3-us-west-2.amazonaws.com/public.lob.com/assets/check_logo.png',\n  check_bottom: '<h1 style=\"padding-top:4in;\">Demo Check for {{name}}</h1>',\n  merge_variables: {\n    name: 'Harry'\n  },\n  print_speed: 'core'\n}, function (err, res) {\n  console.log(err, res);\n});\n"
        label: NODE
      - lang: Ruby
        source: "checkCreate = CheckEditable.new({\n  description: \"Demo Check\",\n  bank_account: \"bank_8cad8df5354d33f\",\n  amount: 22.5,\n  memo: \"rent\",\n  logo: \"https://s3-us-west-2.amazonaws.com/public.lob.com/assets/check_logo.png\",\n  check_bottom: \"<h1 style='padding-top:4in;'>Demo Check for {{name}}</h1>\",\n  from: \"adr_210a8d4b0b76d77b\",\n  to: AddressDomestic.new({\n    name: \"Harry Zhang\",\n    address_line1: \"210 King St\",\n    address_line2: \"# 6100\",\n    address_city: \"San Francisco\",\n    address_state: \"CA\",\n    address_zip: \"94107\",\n  }),\n  merge_variables: {\n    name: \"Harry\"\n  },\n  use_type: \"operational\",\n  print_speed: \"core\"\n});\n\ncheckApi = ChecksApi.new(config)\n\nbegin\n  createdCheck = checkApi.create(checkCreate)\nrescue => err\n  p err.message\nend\n"
        label: RUBY
      - lang: Python
        source: "check_editable = CheckEditable(\n  description = \"Demo Check\",\n  bank_account = \"bank_8cad8df5354d33f\",\n  amount = 22.5,\n  memo = \"rent\",\n  logo = \"https://s3-us-west-2.amazonaws.com/public.lob.com/assets/check_logo.png\",\n  check_bottom = \"<h1 style='padding-top:4in;'>Demo Check for {{name}}</h1>\",\n  _from = \"adr_210a8d4b0b76d77b\",\n  to = AddressDomestic(\n    name = \"Harry Zhang\",\n    address_line1 = \"210 King St\",\n    address_line2 = \"# 6100\",\n    address_city = \"San Francisco\",\n    address_state = \"CA\",\n    address_zip = \"94107\",\n  ),\n  merge_variables = MergeVariables(\n    name = \"Harry\",\n  ),\n  use_type = \"operational\",\n  print_speed = \"core\"\n)\n\nwith ApiClient(configuration) as api_client:\n  api = ChecksApi(api_client)\n\ntry:\n  created_check = api.create(check_editable)\nexcept ApiException as e:\n  print(e)\n"
        label: PYTHON
      - lang: PHP
        source: "$to = new OpenAPI\\Client\\Model\\AddressEditable(\n  array(\n    \"name\"     => \"Harry Zhang\",\n    \"address_line1\"     => \"210 King St\",\n    \"address_line2\"     => \"# 6100\",\n    \"address_city\"     => \"San Francisco\",\n    \"address_state\"     => \"CA\",\n    \"address_zip\"     => \"94107\",\n  )\n);\n\n$merge_variables = new stdClass;\n$merge_variables->name = \"Harry\";\n\n$use_type = \"operational\";\n\n$apiInstance = new OpenAPI\\Client\\Api\\ChecksApi($config, new GuzzleHttp\\Client());\n$check_editable = new OpenAPI\\Client\\Model\\CheckEditable(\n  array(\n    \"description\"     => \"Demo Check\",\n    \"bank_account\"     => \"bank_8cad8df5354d33f\",\n    \"amount\"     => \"22.5\",\n    \"memo\"     => \"rent\",\n    \"logo\"     => \"https://s3-us-west-2.amazonaws.com/public.lob.com/assets/check_logo.png\",\n    \"check_bottom\"     => \"<h1 style='padding-top:4in;'>Demo Check for {{name}}</h1>\",\n    \"from\"     => \"adr_210a8d4b0b76d77b\",\n    \"to\"     => $to,\n    \"merge_variables\"     => $merge_variables,\n    \"use_type\" => $use_type,\n    \"print_speed\" => \"core\"\n  )\n);\n\ntry {\n    $result = $apiInstance->create($check_editable);\n} catch (Exception $e) {\n    echo $e->getMessage(), PHP_EOL;\n}\n"
      - lang: Java
        source: "Map<String, String> merge_variables = new HashMap<String, String>();\nmerge_variables.put(\"name\", \"Harry\");\n\nChecksApi apiInstance = new ChecksApi(config);\n\nAddressEditable to = new AddressEditable();\nto.setName(\"Harry Zhang\");\nto.setAddressLine1(\"210 King St\");\nto.setAddressLine2(\"# 6100\");\nto.setAddressCity(\"San Francisco\");\nto.setAddressState(\"CA\");\nto.setAddressZip(\"94107\");\n\ntry {\n  CheckEditable checkEditable = new CheckEditable();\n  checkEditable.setDescription(\"Demo Check\");\n  checkEditable.setBankAccount(\"bank_8cad8df5354d33f\");\n  checkEditable.setAmount(22.5f);\n  checkEditable.setMemo(\"rent\");\n  checkEditable.setLogo(\"https://s3-us-west-2.amazonaws.com/public.lob.com/assets/check_logo.png\");\n  checkEditable.setCheckBottom(\"<h1 style='padding-top:4in;'>Demo Check for {{name}}</h1>\");\n  checkEditable.setFrom(\"adr_210a8d4b0b76d77b\");\n  checkEditable.setTo(to);\n  checkEditable.setMergeVariables(merge_variables);\n  checkEditable.setUseType(\"operational\");\n  checkEditable.setPrintSpeed(\"core\");\n\n  Check result = apiInstance.create(checkEditable, null);\n} catch (ApiException e) {\n  e.printStackTrace();\n}\n"
        label: JAVA
      - lang: Elixir
        source: "Lob.Check.create(%{\n  description: 'Demo Check',\n  bank_account: 'bank_8cad8df5354d33f',\n  to: %{\n    name: 'Harry Zhang',\n    address_line1: '210 King St',\n    address_line2: '# 6100',\n    address_city: 'San Francisco',\n    address_state: 'CA',\n    address_zip: '94107'\n  },\n  from: 'adr_210a8d4b0b76d77b',\n  amount: 22.50,\n  memo: 'rent',\n  logo: 'https://s3-us-west-2.amazonaws.com/public.lob.com/assets/check_logo.png',\n  check_bottom: '<h1 style=\"padding-top:4in;\">Demo Check for {{name}}</h1>',\n  merge_variables: %{\n    name: 'Harry'\n  },\n  use_type: 'operational',\n  print_speed: 'core'\n})\n"
        label: ELIXIR
      - lang: CSharp
        source: "Dictionary<string, string> mergeVariables = new Dictionary<string, string>();\nmergeVariables.Add(\"name\", \"Harry\");\n\nChecksApi api = new ChecksApi(config);\n\nAddressEditable to = new AddressEditable(\n  \"210 King St\",  // addressLine1\n  \"# 6100\",  // addressLine2\n  \"San Francisco\",  // addressCity\n  \"CA\",  // addressState\n  \"94107\",  // addressZip\n  default(CountryExtended),  // addressCounty\n  \"\",  // description\n  \"Harry Zhang\" // name\n);\n\nCheckEditable checkEditable = new CheckEditable(\n  \"adr_249af768103d2810\",  // from\n  to.ToJson(),  // to\n  \"bank_8cad8df5354d33f\",  // bank_account\n  22.5f,  // amount\n  \"https://s3-us-west-2.amazonaws.com/public.lob.com/assets/check_logo.png\",  // logo\n  \"<h1 style='padding-top:4in;'>Demo Check for {{name}}</h1>\",  // checkBottom\n  default(string),  // attachment\n  \"Demo Check\",  // description\n  default(Dictionary<string, string>),  // metadata\n  mergeVariables,  // mergeVariables\n  default(DateTime),  // sendDate\n  CheckEditable.MailTypeEnum.UspsFirstClass,  // mailType\n  \"rent\", // memo\n  \"operational\", // use_type\n  \"core\" // print_speed\n);\n\ntry {\n  Check result = api.create(checkEditable, null);\n} catch (ApiException e) {\n  Console.WriteLine(e.ToString());\n}\n"
        label: CSHARP
      - lang: Go
        source: "var context = context.Background()\ncontext = context.WithValue(suite.ctx, lob.ContextBasicAuth, lob.BasicAuth{UserName: os.Getenv(\"<YOUR_API_KEY>\")})\n\nvar apiClient = *lob.NewAPIClient(configuration)\n\nvar to = *lob.NewAddressEditable()\nto.SetAddressLine1(\"210 King St\")\nto.SetAddressLine2(\"# 6100\")\nto.SetAddressCity(\"San Francisco\")\nto.SetAddressState(\"CA\")\nto.SetAddressZip(\"94107\")\nto.SetAddressCountry(lob.COUNTRYEXTENDED_US)\nto.SetDescription(\"\")\nto.SetName(\"Harry Zhang\")\n\nvar checkCreate = *lob.NewCheckEditable()\ncheckCreate.SetDescription(\"Demo Check\")\ncheckCreate.SetBankAccount(\"bank_8cad8df5354d33f\")\ncheckCreate.SetAmount(22.5)\ncheckCreate.SetMemo(\"rent\")\ncheckCreate.SetLogo(\"https://s3-us-west-2.amazonaws.com/public.lob.com/assets/check_logo.png\")\ncheckCreate.SetCheckBottom(\"<h1 style='padding-top:4in;'>Demo Check for {{name}}</h1>\")\ncheckCreate.SetFrom(\"adr_210a8d4b0b76d77b\")\ncheckCreate.SetTo(to)\ncheckCreate.SetPrintSpeed(\"core\")\n\n\ncreatedcheck, _, err := apiClient.ChecksApi.Create(context).CheckEditable(checkCreate).Execute()\n\nif err != nil {\n    return err\n}\n"
        label: GO
  /checks/{chk_id}:
    parameters:
    - in: path
      name: chk_id
      description: id of the check
      required: true
      schema:
        $ref: '#/components/schemas/chk_id'
    get:
      operationId: check_retrieve
      summary: Retrieve
      description: Retrieves the details of an existing check. You need only supply the unique check identifier that was returned upon check creation.
      tags:
      - Checks
      responses:
        '200':
          description: Returns a check object
          content:
            $ref: '#/components/mediaTypes/check'
        default:
          $ref: '#/components/responses/mailpiece_error'
      x-codeSamples:
      - lang: Shell
        source: "curl https://api.lob.com/v1/checks/chk_534f10783683daa0 \\\n  -u test_0dc8d51e0acffcb1880e0f19c79b2f5b0cc:\n"
        label: CURL
      - lang: Typescript
        source: "try {\n  const check = await new ChecksApi(config).get('chk_xxxx');\n} catch (err: any) {\n  console.error(err);\n}\n"
        label: TYPESCRIPT
      - lang: Javascript
        source: "Lob.checks.retrieve('chk_534f10783683daa0', function (err, res) {\n  console.log(err, res);\n});\n"
        label: NODE
      - lang: Ruby
        source: "checkApi = ChecksApi.new(config)\n\nbegin\n  retrievedCheck = checkApi.get(\"chk_534f10783683daa0\")\nrescue => err\n  p err.message\nend\n"
        label: RUBY
      - lang: Python
        source: "with ApiClient(configuration) as api_client:\n  api = ChecksApi(api_client)\n\ntry:\n  check = api.get(\"chk_534f10783683daa0\")\nexcept ApiException as e:\n  print(e)\n"
        label: PYTHON
      - lang: PHP
        source: "$apiInstance = new OpenAPI\\Client\\Api\\ChecksApi($config, new GuzzleHttp\\Client());\n\ntry {\n    $result = $apiInstance->get(\"chk_534f10783683daa0\");\n} catch (Exception $e) {\n    echo $e->getMessage(), PHP_EOL;\n}\n"
      - lang: Java
        source: "ChecksApi apiInstance = new ChecksApi(config);\n\ntry {\n  Check response = apiInstance.get(\"chk_534f10783683daa0\");\n} catch (ApiException e) {\n  e.printStackTrace();\n}\n"
        label: JAVA
      - lang: Elixir
        source: 'Lob.Check.find("chk_534f10783683daa0")

          '
        label: ELIXIR
      - lang: CSharp
        source: "ChecksApi api = new ChecksApi(config);\n\ntry {\n  Check response = api.get(\"chk_534f10783683daa0\");\n} catch (ApiException e) {\n  Console.WriteLine(e.ToString());\n}\n"
        label: CSHARP
      - lang: Go
        source: "var context = context.Background()\ncontext = context.WithValue(suite.ctx, lob.ContextBasicAuth, lob.BasicAuth{UserName: os.Getenv(\"<YOUR_API_KEY>\")})\n\nvar apiClient = *lob.NewAPIClient(configuration)\n\nfetchedCheck, _, err := apiClient.ChecksApi.Get(context,\"chk_534f10783683daa0\").Execute()\n\nif err != nil {\n    return err\n}\n"
        label: GO
    delete:
      operationId: check_cancel
      summary: Cancel
      description: Completely removes a check from production. This can only be done if the check has a `send_date` and the `send_date` has not yet passed. If the check is successfully canceled, you will not be charged for it. Read more on [cancellation windows](#section/Cancellation-Windows) and [scheduling](#section/Scheduled-Mailings). Scheduling and cancellation is a premium feature. Upgrade to the appropriate <a href="https://dashboard.lob.com/#/settings/editions" target="_blank">Print & Mail Edition</a> to gain access.
      tags:
      - Checks
      responses:
        '200':
          $ref: '#/components/responses/check_canceled'
        default:
          $ref: '#/components/responses/mailpiece_error'
      x-codeSamples:
      - lang: Shell
        source: "curl -X DELETE https://api.lob.com/v1/checks/chk_534f10783683daa0 \\\n  -u test_0dc8d51e0acffcb1880e0f19c79b2f5b0cc:\n"
        label: CURL
      - lang: Typescript
        source: "try {\n  const deleteCheck = await new ChecksApi(config).cancel('chk_xxxx');\n} catch (err: any) {\n  console.error(err);\n}\n"
        label: TYPESCRIPT
      - lang: Javascript
        source: "Lob.checks.cancel('chk_534f10783683daa0', function (err, res) {\n  console.log(err, res);\n});\n"
        label: NODE
      - lang: Ruby
        source: "checkApi = ChecksApi.new(config)\n\nbegin\n  deletedCheck = checkApi.cancel(\"chk_534f10783683daa0\")\nrescue => err\n  p err.message\nend\n"
        label: RUBY
      - lang: Python
        source: "with ApiClient(configuration) as api_client:\n  api = ChecksApi(api_client)\n\ntry:\n  deleted_resource = api.cancel(\"chk_534f10783683daa0\")\nexcept ApiException as e:\n  print(e)\n"
        label: PYTHON
      - lang: PHP
        source: "$apiInstance = new OpenAPI\\Client\\Api\\ChecksApi($config, new GuzzleHttp\\Client());\n\ntry {\n    $result = $apiInstance->cancel(\"chk_534f10783683daa0\");\n} catch (Exception $e) {\n    echo $e->getMessage(), PHP_EOL;\n}\n"
      - lang: Java
        source: "ChecksApi apiInstance = new ChecksApi(config);\n\ntry {\n    CheckDeletion response = apiInstance.cancel(\"chk_534f10783683daa0\");\n} catch (ApiException e) {\n    e.printStackTrace();\n}\n"
        label: JAVA
      - lang: Elixir
        source: 'Lob.Check.destroy("chk_534f10783683daa0")

          '
        label: ELIXIR
      - lang: CSharp
        source: "ChecksApi api = new ChecksApi(config);\n\ntry {\n  CheckDeletion response = api.cancel(\"chk_534f10783683daa0\");\n} catch (ApiException e) {\n  Console.WriteLine(e.ToString());\n}\n"
        label: CSHARP
      - lang: Go
        source: "var context = context.Background()\ncontext = context.WithValue(suite.ctx, lob.ContextBasicAuth, lob.BasicAuth{UserName: os.Getenv(\"<YOUR_API_KEY>\")})\n\nvar apiClient = *lob.NewAPIClient(configuration)\n\ndeletedCheck, _, err := apiClient.ChecksApi.Cancel(context, \"chk_534f10783683daa0\").Execute()\n\nif err != nil {\n    return err\n}\n"
        label: GO
components:
  schemas:
    bank_account_base:
      type: object
      required:
      - routing_number
      - account_number
      - account_type
      - signatory
      properties:
        description:
          $ref: '#/components/schemas/resource_description'
        routing_number:
          description: Must be a <a href="https://www.frbservices.org/index.html" target="_blank">valid US routing number</a>.
          type: string
          minLength: 9
          maxLength: 9
        account_number:
          type: string
          maxLength: 17
        account_type:
          type: string
          enum:
          - company
          - individual
          description: The type of entity that holds the account.
        signatory:
          description: The signatory associated with your account. This name will be printed on checks created with this bank account. If you prefer to use a custom signature image on your checks instead, please create your bank account from the <a href="https://dashboard.lob.com/#/login" target="_blank">Dashboard</a>.
          type: string
          maxLength: 30
        check_template:
          type: string
          enum:
          - common
          - jpm
          description: The check template used for printing. The defualt value is `common`. If you bank with JP Morgan Chase and wish to use Positive Pay use the `jpm` template. `jpm` requires additional information to be provided.
        fractional_routing_number:
          type: string
          description: The fractional routing number for your home bank account. Required for the `jpm` check template only. Please contact a bank representative if you do not know the fractional routing number associated with your home bank institution.
        city:
          type: string
          description: The city associated with your home bank account. Required for the `jpm` check template only. Please contact a bank representative if you do not know the city associated with your home bank institution.
        state:
          type: string
          description: The state associated with your home bank account. Required for the `jpm` check template only. Please contact a bank representative if you do not know the state associated with your home bank institution.
        zipcode:
          type: string
          description: The zipcode associated with your home bank account. Required for the `jpm` check template only. Please contact a bank representative if you do not know the zipcode associated with your home bank institution.
        metadata:
          $ref: '#/components/schemas/metadata'
    address_fields_us:
      type: object
      required:
      - address_line1
      - address_city
      - address_state
      - address_zip
      properties:
        address_line1:
          type: string
          description: The primary number, street name, and directional information.
          maxLength: 64
        address_line2:
          type: string
          description: An optional field containing any information which can't fit into line 1.
          maxLength: 64
          nullable: true
        address_city:
          type: string
          maxLength: 200
        address_state:
          type: string
          description: 2 letter state short-name code
          pattern: ^[a-zA-Z]{2}$
        address_zip:
          type: string
          description: 'Must follow the ZIP format of `12345` or ZIP+4 format of `12345-1234`.

            '
          pattern: ^\d{5}(-\d{4})?$
    remote_file_url:
      type: string
      description: 'The location of a remote file. Remote URLs have a 5 MB file size limit and must be downloaded within 40 seconds.

        '
      pattern: ^https://[-a-zA-Z0-9@:%._+~#=/]{1,256}.(html?|pdf|png|jpg)$
    status:
      type: string
      enum:
      - processed
      - rendered
      - failed
      description: 'A string describing the PDF render status:

        * `processed` - the rendering process is currently in progress.

        * `rendered` - a PDF has been successfully rendered of the mailpiece.

        * `failed` - one or more issues has caused the rendering process to fail.

        '
    editable_no_mailtype:
      type: object
      properties:
        description:
          $ref: '#/components/schemas/resource_description'
        metadata:
          $ref: '#/components/schemas/metadata'
        merge_variables:
          $ref: '#/components/schemas/merge_variables'
        send_date:
          $ref: '#/components/schemas/send_date'
    failure_reason_error:
      type: object
      description: Failure error details
      properties:
        url:
          type: string
          description: Failed URL of asset
          nullable: true
        host:
          type: string
          description: URL host
          nullable: true
        path:
          type: string
          description: URL path
          nullable: true
        protocol:
          type: string
          description: Network protocol
          nullable: true
        remediation:
          type: string
          description: Instructions on how to resolve the error
          nullable: true
        error_type:
          type: string
          description: HTTP response status code message or service defined error
          nullable: true
        status_code:
          type: number
          description: HTTP response status codes if the error is asset related
          nullable: true
    send_date:
      type: string
      description: A timestamp in ISO 8601 format which specifies a date after the current time and up to 180 days in the future to send the letter off for production. Setting a send date overrides the default [cancellation window](#section/Cancellation-Windows) applied to the mailpiece. Until the `send_date` has passed, the mailpiece can be canceled. If a date in the format `2017-11-01` is passed, it will evaluate to midnight UTC of that date (`2017-11-01T00:00:00.000Z`). If a datetime is passed, that exact time will be used. A `send_date` passed with no time zone will default to UTC, while a `send_date` passed with a time zone will be converted to UTC.
      anyOf:
      - format: date-time
      - format: date
    object:
      type: string
      description: Value is resource type.
    date_created:
      type: string
      format: date-time
      description: A timestamp in ISO 8601 format of the date the resource was created.
    check_base:
      allOf:
      - $ref: '#/components/schemas/editable_no_mailtype'
      - type: object
        properties:
          mail_type:
            description: Checks must be sent `usps_first_class`
            type: string
            enum:
            - usps_first_class
            default: usps_first_class
          memo:
            description: Text to include on the memo line of the check.
            type: string
            maxLen

# --- truncated at 32 KB (97 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/lobcom/refs/heads/main/openapi/lobcom-checks-api-openapi.yml