---
title: "Create Letter Create Letter"
method: POST
path: "/print-mail/v1/letters"
tags: ["Letters"]
---

# Create Letter Create Letter

`POST /print-mail/v1/letters`

Create a letter. Note that you can supply one of the following:
- HTML content for the letter
- A template ID for the letter
- A URL for a PDF for the letter Create a letter via a multipart/form-data request. Accepts the same
fields as the JSON create body (nested objects are bracket-encoded form
fields, e.g. `to[firstName]`); use this content type to upload the PDF
file directly.

## Headers

- `idempotency-key` string

## Request body

- union
  - LetterCreateWithHTML
    - `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
    - `perforatedPage` 1 — If specified, indicates which letter page is perforated. Currently, only the first page can be perforated.
    - `returnEnvelope` string — The return envelope (ID) sent out with the letter, if any.
    - `attachedPDF` AttachedPDF — Model representing an attached PDF.
      - `file` union, required — The file (multipart form upload) or URL pointing to a PDF for the attached PDF.
        - 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.
      - `placement` 'before_template' | 'after_template', required — Enum representing the placement of the attached PDF.
    - `plasticCard` PlasticCard — Model representing a plastic card.
      - `size` 'standard', required — Enum representing the size of the plastic card.
      - `singleSided` PlasticCardSingleSided — Model representing a single-sided plastic card.
        - `html` string — The HTML content for the single-sided plastic card. Can specify one of this, `template`, or `pdf`.
        - `template` string — The template ID for the single-sided plastic card.
        - `pdf` union — A URL pointing to a PDF file for the single-sided plastic card or the PDF file itself.
          - 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.
      - `doubleSided` PlasticCardDoubleSided — Model representing a double-sided plastic card.
        - `frontHTML` string — The HTML content for the front side of the double-sided plastic card.
        - `backHTML` string — The HTML content for the back side of the double-sided plastic card.
        - `frontTemplate` string — The template ID for the front side of the double-sided plastic card.
        - `backTemplate` string — The template ID for the back side of the double-sided plastic card.
        - `pdf` union — A URL pointing to a PDF file for the double-sided plastic card or the file itself.
          - 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.
    - `paper` union
      - 'standard' | 'premium_paper_letter_standard_white_70lb' | 'premium_paper_letter_standard_white_80lb' — Built-in paper IDs for letter products. Actual availability depends on your organization settings.
      - string — Premium paper identifier. `standard` is always accepted. Organizations may also have additional custom `premium_paper_*` IDs beyond the built-in values documented here.
    - `doubleSided` boolean — Indicates if the letter is double-sided.
    - `color` boolean — Indicates if the letter is in color.
    - `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
    - `size` 'us_letter' | 'a4' — Enum representing the supported letter sizes.
    - `addressPlacement` 'top_first_page' | 'insert_blank_page' — Enum representing the placement of the address on the letter.
    - `envelope` string — The envelope (ID) for the letter. You can either specify a custom envelope ID or use the default `standard` envelope.
    - `html` string, required — The HTML content for the letter. You can supply _either_ this or `template` but not both.
  - LetterCreateWithTemplate
    - `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
    - `perforatedPage` 1 — If specified, indicates which letter page is perforated. Currently, only the first page can be perforated.
    - `returnEnvelope` string — The return envelope (ID) sent out with the letter, if any.
    - `attachedPDF` AttachedPDF — Model representing an attached PDF.
      - `file` union, required — The file (multipart form upload) or URL pointing to a PDF for the attached PDF.
        - 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.
      - `placement` 'before_template' | 'after_template', required — Enum representing the placement of the attached PDF.
    - `plasticCard` PlasticCard — Model representing a plastic card.
      - `size` 'standard', required — Enum representing the size of the plastic card.
      - `singleSided` PlasticCardSingleSided — Model representing a single-sided plastic card.
        - `html` string — The HTML content for the single-sided plastic card. Can specify one of this, `template`, or `pdf`.
        - `template` string — The template ID for the single-sided plastic card.
        - `pdf` union — A URL pointing to a PDF file for the single-sided plastic card or the PDF file itself.
          - 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.
      - `doubleSided` PlasticCardDoubleSided — Model representing a double-sided plastic card.
        - `frontHTML` string — The HTML content for the front side of the double-sided plastic card.
        - `backHTML` string — The HTML content for the back side of the double-sided plastic card.
        - `frontTemplate` string — The template ID for the front side of the double-sided plastic card.
        - `backTemplate` string — The template ID for the back side of the double-sided plastic card.
        - `pdf` union — A URL pointing to a PDF file for the double-sided plastic card or the file itself.
          - 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.
    - `paper` union
      - 'standard' | 'premium_paper_letter_standard_white_70lb' | 'premium_paper_letter_standard_white_80lb' — Built-in paper IDs for letter products. Actual availability depends on your organization settings.
      - string — Premium paper identifier. `standard` is always accepted. Organizations may also have additional custom `premium_paper_*` IDs beyond the built-in values documented here.
    - `doubleSided` boolean — Indicates if the letter is double-sided.
    - `color` boolean — Indicates if the letter is in color.
    - `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
    - `size` 'us_letter' | 'a4' — Enum representing the supported letter sizes.
    - `addressPlacement` 'top_first_page' | 'insert_blank_page' — Enum representing the placement of the address on the letter.
    - `envelope` string — The envelope (ID) for the letter. You can either specify a custom envelope ID or use the default `standard` envelope.
    - `template` string, required — The template ID for the letter. You can supply _either_ this or `html` but not both.
  - LetterCreateWithPDF
    - `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
    - `perforatedPage` 1 — If specified, indicates which letter page is perforated. Currently, only the first page can be perforated.
    - `returnEnvelope` string — The return envelope (ID) sent out with the letter, if any.
    - `attachedPDF` AttachedPDF — Model representing an attached PDF.
      - `file` union, required — The file (multipart form upload) or URL pointing to a PDF for the attached PDF.
        - 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.
      - `placement` 'before_template' | 'after_template', required — Enum representing the placement of the attached PDF.
    - `plasticCard` PlasticCard — Model representing a plastic card.
      - `size` 'standard', required — Enum representing the size of the plastic card.
      - `singleSided` PlasticCardSingleSided — Model representing a single-sided plastic card.
        - `html` string — The HTML content for the single-sided plastic card. Can specify one of this, `template`, or `pdf`.
        - `template` string — The template ID for the single-sided plastic card.
        - `pdf` union — A URL pointing to a PDF file for the single-sided plastic card or the PDF file itself.
          - 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.
      - `doubleSided` PlasticCardDoubleSided — Model representing a double-sided plastic card.
        - `frontHTML` string — The HTML content for the front side of the double-sided plastic card.
        - `backHTML` string — The HTML content for the back side of the double-sided plastic card.
        - `frontTemplate` string — The template ID for the front side of the double-sided plastic card.
        - `backTemplate` string — The template ID for the back side of the double-sided plastic card.
        - `pdf` union — A URL pointing to a PDF file for the double-sided plastic card or the file itself.
          - 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.
    - `paper` union
      - 'standard' | 'premium_paper_letter_standard_white_70lb' | 'premium_paper_letter_standard_white_80lb' — Built-in paper IDs for letter products. Actual availability depends on your organization settings.
      - string — Premium paper identifier. `standard` is always accepted. Organizations may also have additional custom `premium_paper_*` IDs beyond the built-in values documented here.
    - `doubleSided` boolean — Indicates if the letter is double-sided.
    - `color` boolean — Indicates if the letter is in color.
    - `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
    - `size` 'us_letter' | 'a4' — Enum representing the supported letter sizes.
    - `addressPlacement` 'top_first_page' | 'insert_blank_page' — Enum representing the placement of the address on the letter.
    - `envelope` string — The envelope (ID) for the letter. You can either specify a custom envelope ID or use the default `standard` envelope.
    - `pdf` union, required — A URL pointing to a PDF file for the letter or the PDF file itself.
      - 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.

## Response `201`

the created Letter.

- union
  - Letter
    - `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 letter_
    - `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` 'letter', required — Always `letter`.
    - `perforatedPage` 1 — If specified, indicates which letter page is perforated. Currently, only the first page can be perforated.
    - `returnEnvelope` string — The return envelope (ID) sent out with the letter, if any.
    - `attachedPDF` AttachedPDF — Model representing an attached PDF.
      - `file` union, required — The file (multipart form upload) or URL pointing to a PDF for the attached PDF.
        - 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.
      - `placement` 'before_template' | 'after_template', required — Enum representing the placement of the attached PDF.
    - `plasticCard` PlasticCard — Model representing a plastic card.
      - `size` 'standard', required — Enum representing the size of the plastic card.
      - `singleSided` PlasticCardSingleSided — Model representing a single-sided plastic card.
        - `html` string — The HTML content for the single-sided plastic card. Can specify one of this, `template`, or `pdf`.
        - `template` string — The template ID for the single-sided plastic card.
        - `pdf` union — A URL pointing to a PDF file for the single-sided plastic card or the PDF file itself.
          - 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.
      - `doubleSided` PlasticCardDoubleSided — Model representing a double-sided plastic card.
        - `frontHTML` string — The HTML content for the front side of the double-sided plastic card.
        - `backHTML` string — The HTML content for the back side of the double-sided plastic card.
        - `frontTemplate` string — The template ID for the front side of the double-sided plastic card.
        - `backTemplate` string — The template ID for the back side of the double-sided plastic card.
        - `pdf` union — A URL pointing to a PDF file for the double-sided plastic card or the file itself.
          - 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.
    - `pdfWorkflowRun` string — The ID of the PDF workflow run that created the letter, if any.
    - `paper` union
      - 'standard' | 'premium_paper_letter_standard_white_70lb' | 'premium_paper_letter_standard_white_80lb' — Built-in paper IDs for letter products. Actual availability depends on your organization settings.
      - string — Premium paper identifier. `standard` is always accepted. Organizations may also have additional custom `premium_paper_*` IDs beyond the built-in values documented here.
    - `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.
    - `doubleSided` boolean, required — Indicates if the letter is double-sided.
    - `color` boolean, required — Indicates if the letter is in color.
    - `size` 'us_letter' | 'a4', required — Enum representing the supported letter sizes.
    - `addressPlacement` 'top_first_page' | 'insert_blank_page', required — Enum representing the placement of the address on the letter.
    - `envelope` string, required — The envelope (ID) for the letter or the default `standard` envelope.
    - `html` string — The HTML content for the letter. You can supply _either_ this or `template` but not both.
    - `template` string — The template ID used for the letter. You can supply _either_ this or `html` but not both.
    - `uploadedPDF` string, uri — If a PDF was uploaded for the letter, this will contain the signed link to the uploaded PDF.
  - Letter
    - `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 letter_
    - `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` 'letter', required — Always `letter`.
    - `perforatedPage` 1 — If specified, indicates which letter page is perforated. Currently, only the first page can be perforated.
    - `returnEnvelope` string — The return envelope (ID) sent out with the letter, if any.
    - `attachedPDF` AttachedPDF — Model representing an attached PDF.
      - `file` union, required — The file (multipart form upload) or URL pointing to a PDF for the attached PDF.
        - 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.
      - `placement` 'before_template' | 'after_template', required — Enum representing the placement of the attached PDF.
    - `plasticCard` PlasticCard — Model representing a plastic card.
      - `size` 'standard', required — Enum representing the size of the plastic card.
      - `singleSided` PlasticCardSingleSided — Model representing a single-sided plastic card.
        - `html` string — The HTML content for the single-sided plastic card. Can specify one of this, `template`, or `pdf`.
        - `template` string — The template ID for the single-sided plastic card.
        - `pdf` union — A URL pointing to a PDF file for the single-sided plastic card or the PDF file itself.
          - 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.
      - `doubleSided` PlasticCardDoubleSided — Model representing a double-sided plastic card.
        - `frontHTML` string — The HTML content for the front side of the double-sided plastic card.
        - `backHTML` string — The HTML content for the back side of the double-sided plastic card.
        - `frontTemplate` string — The template ID for the front side of the double-sided plastic card.
        - `backTemplate` string — The template ID for the back side of the double-sided plastic card.
        - `pdf` union — A URL pointing to a PDF file for the double-sided plastic card or the file itself.
          - 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.
    - `pdfWorkflowRun` string — The ID of the PDF workflow run that created the letter, if any.
    - `paper` union
      - 'standard' | 'premium_paper_letter_standard_white_70lb' | 'premium_paper_letter_standard_white_80lb' — Built-in paper IDs for letter products. Actual availability depends on your organization settings.
      - string — Premium paper identifier. `standard` is always accepted. Organizations may also have additional custom `premium_paper_*` IDs beyond the built-in values documented here.
    - `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.
    - `doubleSided` boolean, required — Indicates if the letter is double-sided.
    - `color` boolean, required — Indicates if the letter is in color.
    - `size` 'us_letter' | 'a4', required — Enum representing the supported letter sizes.
    - `addressPlacement` 'top_first_page' | 'insert_blank_page', required — Enum representing the placement of the address on the letter.
    - `envelope` string, required — The envelope (ID) for the letter or the default `standard` envelope.
    - `html` string — The HTML content for the letter. You can supply _either_ this or `template` but not both.
    - `template` string — The template ID used for the letter. You can supply _either_ this or `html` but not both.
    - `uploadedPDF` string, uri — If a PDF was uploaded for the letter, this will contain the signed link to the uploaded PDF.

## Other responses

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

---

[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)
