---
title: "Create Cheque"
method: POST
path: "/print-mail/v1/cheques"
tags: ["Cheques"]
---

# Create Cheque

`POST /print-mail/v1/cheques`

Create a cheque.

This endpoint allows you to create a new cheque with the specified details.

If you would like to create a digitalOnly cheque, the digitalOnly object with the watermark
will need to be passed in. Feature is available on request, e-mail support@postgrid.com for access.
Digital-only cheques are not sent out — they are created with a `cancelled` status and a
cancellation reason of `digital_only`.

Example request body:

```json
{
  "from": "contact_123",
  "bankAccount": "bank_123",
  "amount": 1000,
  "currencyCode": "USD",
  "number": 123456,
  "size": "us_letter",
  "digitalOnly": {
    "watermark": "VOID"
  }
}
```

## Headers

- `idempotency-key` string

## Request body

- ChequeCreate
  - `mergeVariables` object — These will be merged with the variables in the template or HTML you create this order with. The keys in this object should match the variable names in the template _exactly_ as they are case-sensitive. Note that these _do not_ apply to PDFs uploaded with the order.
  - `description` string — An optional string describing this resource. Will be visible in the API and the dashboard.
  - `metadata` object — See the section on Metadata.
  - `sendDate` string, date-time — This order will transition from `ready` to `printing` on the day after this date. You can use this parameter to schedule orders for a future date.
  - `mailingClass` 'first_class' | 'standard_class' | 'express' | 'certified' | 'certified_return_receipt' | 'registered' | 'usps_first_class' | 'usps_standard_class' | 'usps_eddm' | 'usps_express_2_day' | 'usps_express_3_day' | 'usps_first_class_certified' | 'usps_first_class_certified_return_receipt' | 'usps_first_class_registered' | 'usps_express_3_day_signature_confirmation' | 'usps_express_3_day_certified' | 'usps_express_3_day_certified_return_receipt' | 'ca_post_lettermail' | 'ca_post_personalized' | 'ca_post_neighbourhood_mail' | 'ups_express_overnight' | 'ups_express_2_day' | 'ups_express_3_day' | 'royal_mail_first_class' | 'royal_mail_second_class' | 'au_post_second_class'
  - `to` union, required — The recipient of this order. You can either supply the contact information inline here or provide a contact ID. PostGrid will automatically deduplicate contacts regardless of whether you provide the information inline here or call the contact creation endpoint.
    - union
      - ContactCreateWithFirstName
        - `addressLine1` string, required — The first line of the contact's address.
        - `addressLine2` string — Second line of the contact's address, if applicable.
        - `city` string — The city of the contact's address.
        - `provinceOrState` string — Province or state of the contact's address.
        - `postalOrZip` string — The postal or ZIP code of the contact's address.
        - `countryCode` string, required — The ISO 3611-1 country code of the contact's address.
        - `companyName` string — Company name of the contact.
        - `lastName` string — Last name of the contact.
        - `email` string — Email of the contact.
        - `phoneNumber` string — Phone number of the contact.
        - `jobTitle` string — Job title of the contact.
        - `skipVerification` boolean — If `true`, PostGrid will skip running this contact's address through our address verification system.
        - `forceVerifiedStatus` boolean — If `true`, PostGrid will force this contact to have an `addressStatus` of `verified` even if our address verification system says otherwise.
        - `secret` boolean — If `true`, the contact's details are hidden from the dashboard and API responses apart from the final print. The contact ID can then be used as a token for sending mail without giving access to the underlying data.
        - `description` string — An optional string describing this resource. Will be visible in the API and the dashboard.
        - `metadata` object — See the section on Metadata.
        - `firstName` string, required
      - ContactCreateWithCompanyName
        - `addressLine1` string, required — The first line of the contact's address.
        - `addressLine2` string — Second line of the contact's address, if applicable.
        - `city` string — The city of the contact's address.
        - `provinceOrState` string — Province or state of the contact's address.
        - `postalOrZip` string — The postal or ZIP code of the contact's address.
        - `countryCode` string, required — The ISO 3611-1 country code of the contact's address.
        - `firstName` string — First name of the contact.
        - `lastName` string — Last name of the contact.
        - `email` string — Email of the contact.
        - `phoneNumber` string — Phone number of the contact.
        - `jobTitle` string — Job title of the contact.
        - `skipVerification` boolean — If `true`, PostGrid will skip running this contact's address through our address verification system.
        - `forceVerifiedStatus` boolean — If `true`, PostGrid will force this contact to have an `addressStatus` of `verified` even if our address verification system says otherwise.
        - `secret` boolean — If `true`, the contact's details are hidden from the dashboard and API responses apart from the final print. The contact ID can then be used as a token for sending mail without giving access to the underlying data.
        - `description` string — An optional string describing this resource. Will be visible in the API and the dashboard.
        - `metadata` object — See the section on Metadata.
        - `companyName` string, required
    - string
  - `bankAccount` string, required — The bank account (ID) associated with the cheque.
  - `amount` integer, required — The amount of the cheque in cents.
  - `memo` string — The memo of the cheque.
  - `message` string — The message of the cheque.
  - `logo` string, uri — An optional logo URL for the cheque. This will be placed next to the recipient address at the top left corner of the cheque. This needs to be a public link to an image file (e.g. a PNG or JPEG file).
  - `letterHTML` string — The raw HTML content for a letter attached to the cheque, if any. You can supply _either_ this, `letterTemplate`, or `letterPDF`, but not more than one.
  - `letterTemplate` string — A Template ID for the letter attached to the cheque, if any.
  - `returnEnvelope` string — The return envelope (ID) sent out with the cheque, if any. Note that you must first order return envelopes using the Return Envelopes API.
  - `number` integer — The number of the cheque. If you don't provide this, it will automatically be set to an incrementing number starting from 1 across your entire account, ensuring that every cheque has a unique number.
  - `envelope` union — The envelope of the cheque. If a custom envelope ID is not specified, defaults to `standard`.
    - 'standard'
    - string
  - `digitalOnly` DigitalOnly
    - `watermark` string, required — Text to be displayed as a watermark on the digital cheque.
    - `payee` object — The payee of the digital cheque. Supplying `payee.name` lets you create a digital-only cheque without a `to` contact — when it is provided, the top-level `to` field may be omitted.
      - `name` string, required — The name of the payee.
  - `from` union, required — The contact information of the sender. You can pass contact information inline here just like you can for the `to`.
    - union
      - ContactCreateWithFirstName
        - `addressLine1` string, required — The first line of the contact's address.
        - `addressLine2` string — Second line of the contact's address, if applicable.
        - `city` string — The city of the contact's address.
        - `provinceOrState` string — Province or state of the contact's address.
        - `postalOrZip` string — The postal or ZIP code of the contact's address.
        - `countryCode` string, required — The ISO 3611-1 country code of the contact's address.
        - `companyName` string — Company name of the contact.
        - `lastName` string — Last name of the contact.
        - `email` string — Email of the contact.
        - `phoneNumber` string — Phone number of the contact.
        - `jobTitle` string — Job title of the contact.
        - `skipVerification` boolean — If `true`, PostGrid will skip running this contact's address through our address verification system.
        - `forceVerifiedStatus` boolean — If `true`, PostGrid will force this contact to have an `addressStatus` of `verified` even if our address verification system says otherwise.
        - `secret` boolean — If `true`, the contact's details are hidden from the dashboard and API responses apart from the final print. The contact ID can then be used as a token for sending mail without giving access to the underlying data.
        - `description` string — An optional string describing this resource. Will be visible in the API and the dashboard.
        - `metadata` object — See the section on Metadata.
        - `firstName` string, required
      - ContactCreateWithCompanyName
        - `addressLine1` string, required — The first line of the contact's address.
        - `addressLine2` string — Second line of the contact's address, if applicable.
        - `city` string — The city of the contact's address.
        - `provinceOrState` string — Province or state of the contact's address.
        - `postalOrZip` string — The postal or ZIP code of the contact's address.
        - `countryCode` string, required — The ISO 3611-1 country code of the contact's address.
        - `firstName` string — First name of the contact.
        - `lastName` string — Last name of the contact.
        - `email` string — Email of the contact.
        - `phoneNumber` string — Phone number of the contact.
        - `jobTitle` string — Job title of the contact.
        - `skipVerification` boolean — If `true`, PostGrid will skip running this contact's address through our address verification system.
        - `forceVerifiedStatus` boolean — If `true`, PostGrid will force this contact to have an `addressStatus` of `verified` even if our address verification system says otherwise.
        - `secret` boolean — If `true`, the contact's details are hidden from the dashboard and API responses apart from the final print. The contact ID can then be used as a token for sending mail without giving access to the underlying data.
        - `description` string — An optional string describing this resource. Will be visible in the API and the dashboard.
        - `metadata` object — See the section on Metadata.
        - `companyName` string, required
    - string
  - `redirectTo` union — Providing this inserts a blank page at the start of the cheque with the recipient you provide here. This leaves the cheque that follows intact, which means you can use this to intercept at cheque at the redirected address and then mail it forward to the final recipient yourself. One use case for this is signing cheques at your office before mailing them out yourself.
    - union
      - ContactCreateWithFirstName
        - `addressLine1` string, required — The first line of the contact's address.
        - `addressLine2` string — Second line of the contact's address, if applicable.
        - `city` string — The city of the contact's address.
        - `provinceOrState` string — Province or state of the contact's address.
        - `postalOrZip` string — The postal or ZIP code of the contact's address.
        - `countryCode` string, required — The ISO 3611-1 country code of the contact's address.
        - `companyName` string — Company name of the contact.
        - `lastName` string — Last name of the contact.
        - `email` string — Email of the contact.
        - `phoneNumber` string — Phone number of the contact.
        - `jobTitle` string — Job title of the contact.
        - `skipVerification` boolean — If `true`, PostGrid will skip running this contact's address through our address verification system.
        - `forceVerifiedStatus` boolean — If `true`, PostGrid will force this contact to have an `addressStatus` of `verified` even if our address verification system says otherwise.
        - `secret` boolean — If `true`, the contact's details are hidden from the dashboard and API responses apart from the final print. The contact ID can then be used as a token for sending mail without giving access to the underlying data.
        - `description` string — An optional string describing this resource. Will be visible in the API and the dashboard.
        - `metadata` object — See the section on Metadata.
        - `firstName` string, required
      - ContactCreateWithCompanyName
        - `addressLine1` string, required — The first line of the contact's address.
        - `addressLine2` string — Second line of the contact's address, if applicable.
        - `city` string — The city of the contact's address.
        - `provinceOrState` string — Province or state of the contact's address.
        - `postalOrZip` string — The postal or ZIP code of the contact's address.
        - `countryCode` string, required — The ISO 3611-1 country code of the contact's address.
        - `firstName` string — First name of the contact.
        - `lastName` string — Last name of the contact.
        - `email` string — Email of the contact.
        - `phoneNumber` string — Phone number of the contact.
        - `jobTitle` string — Job title of the contact.
        - `skipVerification` boolean — If `true`, PostGrid will skip running this contact's address through our address verification system.
        - `forceVerifiedStatus` boolean — If `true`, PostGrid will force this contact to have an `addressStatus` of `verified` even if our address verification system says otherwise.
        - `secret` boolean — If `true`, the contact's details are hidden from the dashboard and API responses apart from the final print. The contact ID can then be used as a token for sending mail without giving access to the underlying data.
        - `description` string — An optional string describing this resource. Will be visible in the API and the dashboard.
        - `metadata` object — See the section on Metadata.
        - `companyName` string, required
    - string
  - `size` 'us_letter' | 'us_legal' — Enum representing the supported cheque sizes.
  - `currencyCode` union — The currency code of the cheque. This will be set to the default currency of the bank account (`USD` for US bank accounts and `CAD` for Canadian bank accounts) if not provided. You can set this value to `USD` if you want to draw USD from a Canadian bank account or vice versa.
    - 'USD'
    - 'CAD'
  - `letterPDF` union — A URL pointing to a PDF for the letter attached to the cheque, or the PDF file itself when uploaded via a multipart form request. You can supply _either_ this, `letterHTML`, or `letterTemplate`, but not more than one.
    - string, uri
    - string, binary — Represents a raw file upload. Sending the actual file requires a `multipart/form-data` request; in `application/json` request bodies, supply a URL instead.
  - `letterSettings` ChequeAttachedLetterSettings — Settings for a letter attached to a cheque.
    - `placement` 'before_cheque' | 'after_cheque' — Enum representing where a letter attached to a cheque is placed relative to the cheque page.

## Response `201`

the created Cheque.

- Cheque
  - `status` 'ready' | 'printing' | 'processed_for_delivery' | 'completed' | 'cancelled', required
  - `mergeVariables` object — These will be merged with the variables in the template or HTML you create this order with. The keys in this object should match the variable names in the template _exactly_ as they are case-sensitive. Note that these _do not_ apply to PDFs uploaded with the order.
  - `trackingNumber` string — The tracking number of this order. Populated after an express/certified order has been processed for delivery.
  - `imbStatus` 'entered_mail_stream' | 'out_for_delivery' | 'returned_to_sender'
  - `imbZIPCode` string — The most recent ZIP code of the USPS facility that the order has been processed through. Only populated when an `imbStatus` is present.
  - `imbDate` string, date-time — The last date that the IMB status was updated. See `imbStatus` for more details.
  - `cancellation` Cancellation
    - `reason` 'user_initiated' | 'invalid_content' | 'invalid_order_mailing_class', required
    - `cancelledByUser` string — The user ID who cancelled the order.
    - `note` string — An optional note provided by the user who cancelled the order.
  - `url` string, uri — PostGrid renders a PDF preview for all orders. This should be inspected to ensure that the order is correct before it is sent out because it shows what will be printed and mailed to the recipient. Once the PDF preview is generated, this field will be returned by all `GET` endpoints which produce this order. This URL is a signed link to the PDF preview. It will expire after a short period of time. If you need to access this URL after it has expired, you can regenerate it by calling the `GET` endpoint again.
  - `id` string, required — A unique ID prefixed with cheque_
  - `description` string — An optional string describing this resource. Will be visible in the API and the dashboard.
  - `metadata` object — See the section on Metadata.
  - `live` boolean, required — `true` if this is a live mode resource else `false`.
  - `createdAt` string, date-time, required — The UTC time at which this resource was created.
  - `updatedAt` string, date-time, required — The UTC time at which this resource was last updated.
  - `sendDate` string, date-time, required — This order will transition from `ready` to `printing` on the day after this date. For example, if this is a date on Tuesday, the order will transition to `printing` on Wednesday at midnight eastern time.
  - `mailingClass` 'first_class' | 'standard_class' | 'express' | 'certified' | 'certified_return_receipt' | 'registered' | 'usps_first_class' | 'usps_standard_class' | 'usps_eddm' | 'usps_express_2_day' | 'usps_express_3_day' | 'usps_first_class_certified' | 'usps_first_class_certified_return_receipt' | 'usps_first_class_registered' | 'usps_express_3_day_signature_confirmation' | 'usps_express_3_day_certified' | 'usps_express_3_day_certified_return_receipt' | 'ca_post_lettermail' | 'ca_post_personalized' | 'ca_post_neighbourhood_mail' | 'ups_express_overnight' | 'ups_express_2_day' | 'ups_express_3_day' | 'royal_mail_first_class' | 'royal_mail_second_class' | 'au_post_second_class', required
  - `to` Contact, required
    - `id` string, required — A unique ID prefixed with contact_
    - `description` string — An optional string describing this resource. Will be visible in the API and the dashboard.
    - `metadata` object — See the section on Metadata.
    - `live` boolean, required — `true` if this is a live mode resource else `false`.
    - `createdAt` string, date-time, required — The UTC time at which this resource was created.
    - `updatedAt` string, date-time, required — The UTC time at which this resource was last updated.
  - `object` 'cheque', required — Always `cheque`.
  - `bankAccount` string, required — The bank account (ID) associated with the cheque.
  - `amount` integer, required — The amount of the cheque in cents.
  - `memo` string — The memo of the cheque.
  - `message` string — The message of the cheque.
  - `logo` string, uri — An optional logo URL for the cheque. This will be placed next to the recipient address at the top left corner of the cheque. This needs to be a public link to an image file (e.g. a PNG or JPEG file).
  - `letterHTML` string — The raw HTML content for a letter attached to the cheque, if any. You can supply _either_ this, `letterTemplate`, or `letterPDF`, but not more than one.
  - `letterTemplate` string — A Template ID for the letter attached to the cheque, if any.
  - `returnEnvelope` string — The return envelope (ID) sent out with the cheque, if any. Note that you must first order return envelopes using the Return Envelopes API.
  - `number` integer — The number of the cheque. If you don't provide this, it will automatically be set to an incrementing number starting from 1 across your entire account, ensuring that every cheque has a unique number.
  - `envelope` union — The envelope of the cheque. If a custom envelope ID is not specified, defaults to `standard`.
    - 'standard'
    - string
  - `digitalOnly` DigitalOnly
    - `watermark` string, required — Text to be displayed as a watermark on the digital cheque.
    - `payee` object — The payee of the digital cheque. Supplying `payee.name` lets you create a digital-only cheque without a `to` contact — when it is provided, the top-level `to` field may be omitted.
      - `name` string, required — The name of the payee.
  - `from` Contact, required
    - `id` string, required — A unique ID prefixed with contact_
    - `description` string — An optional string describing this resource. Will be visible in the API and the dashboard.
    - `metadata` object — See the section on Metadata.
    - `live` boolean, required — `true` if this is a live mode resource else `false`.
    - `createdAt` string, date-time, required — The UTC time at which this resource was created.
    - `updatedAt` string, date-time, required — The UTC time at which this resource was last updated.
  - `size` 'us_letter' | 'us_legal', required — Enum representing the supported cheque sizes.
  - `currencyCode` union, required — The currency code of the cheque. This can be `USD` even if drawing from a Canadian bank account and vice versa. Defaults to the currency of the bank account country if not otherwise specified.
    - 'USD'
    - 'CAD'
  - `depositReadyPDFURL` string, uri — A link to the deposit-ready PDF for a digital-only cheque, returned if requested and available.
  - `letterUploadedPDF` string, uri — A signed URL pointing to the original PDF of the letter attached to the cheque, if any.

## Other responses

- `400` — the created Cheque.
- `401` — the created Cheque.
- `404` — the created Cheque.
- `422` — the created Cheque.
- `429` — the created Cheque.
- `500` — the created Cheque.

---

[API](https://skmtc.net/postgrid/apis/postgrid-address-verification-api.md) · [All operations](https://skmtc.net/postgrid/apis/postgrid-address-verification-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/postgrid/postgrid-address-verification-api/revisions/537d2bbc624a/schema)
