---
title: "Create Bank Account"
method: POST
path: "/print-mail/v1/bank_accounts"
tags: ["Bank Accounts"]
---

# Create Bank Account

`POST /print-mail/v1/bank_accounts`

## Request

- Base URL: `https://api.postgrid.com`
- URL: `https://api.postgrid.com/print-mail/v1/bank_accounts`
- Auth: API key in header `X-API-Key`

Create a bank account. A US bank account is created by setting `bankCountryCode` to `US` and providing `accountNumber` and `routingNumber`. A canadian bank account can be created by specifying `bankCountryCode` as `CA` and setting `accountNumber`, `routeNumber`, and `transitNumber` accordingly.

You must specify _either_ `signatureImage` or `signatureText`. The image can be supplied as either a URL or a multipart file upload.

Note that the reasonable character limit for `signatureText` is 6 capital letters or 20 lowercase letters — anything exceeding that will likely overflow onto a new line.

## Request body

- union
  - BankAccountCreateSignatureText
    - `bankName` string, required: The name of the bank.
    - `bankPrimaryLine` string: The primary address line of the bank.
    - `bankSecondaryLine` string: The secondary address line of the bank.
    - `bankCountryCode` 'CA' | 'US', required: Countries typically have different bank account formats and standards. These are the countries which PostGrid's bank accounts API supports.
    - `accountNumber` string, required: The account number of the bank account.
    - `routingNumber` string: The routing number of the bank account (for US).
    - `transitNumber` string: The transit number of the bank account (for CA).
    - `routeNumber` string: The route number of the bank account (for CA).
    - `caDesignationNumber` string: The designation number of the bank account (for CA).
    - `description` string: An optional string describing this resource. Will be visible in the API and the dashboard.
    - `metadata` object: See the section on Metadata.
    - `signatureText` string, required: The signature text of the bank account.
  - BankAccountCreateSignatureImageURL
    - `bankName` string, required: The name of the bank.
    - `bankPrimaryLine` string: The primary address line of the bank.
    - `bankSecondaryLine` string: The secondary address line of the bank.
    - `bankCountryCode` 'CA' | 'US', required: Countries typically have different bank account formats and standards. These are the countries which PostGrid's bank accounts API supports.
    - `accountNumber` string, required: The account number of the bank account.
    - `routingNumber` string: The routing number of the bank account (for US).
    - `transitNumber` string: The transit number of the bank account (for CA).
    - `routeNumber` string: The route number of the bank account (for CA).
    - `caDesignationNumber` string: The designation number of the bank account (for CA).
    - `description` string: An optional string describing this resource. Will be visible in the API and the dashboard.
    - `metadata` object: See the section on Metadata.
    - `signatureImage` string, uri, required: Link to signature image which PostGrid will download and apply to cheques created with this bank account.
  - BankAccountCreateSignatureImageFile
    - `bankName` string, required: The name of the bank.
    - `bankPrimaryLine` string: The primary address line of the bank.
    - `bankSecondaryLine` string: The secondary address line of the bank.
    - `bankCountryCode` 'CA' | 'US', required: Countries typically have different bank account formats and standards. These are the countries which PostGrid's bank accounts API supports.
    - `accountNumber` string, required: The account number of the bank account.
    - `routingNumber` string: The routing number of the bank account (for US).
    - `transitNumber` string: The transit number of the bank account (for CA).
    - `routeNumber` string: The route number of the bank account (for CA).
    - `caDesignationNumber` string: The designation number of the bank account (for CA).
    - `description` string: An optional string describing this resource. Will be visible in the API and the dashboard.
    - `metadata` object: See the section on Metadata.
    - `signatureImage` string, byte, required: A PNG or JPEG file which PostGrid will apply to checks created with this bank account.

## Response `201`

The request has succeeded and a new resource has been created as a result.

- BankAccount
  - `object` 'bank_account', required: Always `bank_account`.
  - `bankName` string, required: The name of the bank.
  - `bankPrimaryLine` string: The primary address line of the bank.
  - `bankSecondaryLine` string: The secondary address line of the bank.
  - `bankCountryCode` 'CA' | 'US', required: Countries typically have different bank account formats and standards. These are the countries which PostGrid's bank accounts API supports.
  - `accountNumber` string, required: The account number of the bank account.
  - `routingNumber` string: The routing number of the bank account (for US).
  - `transitNumber` string: The transit number of the bank account (for CA).
  - `routeNumber` string: The route number of the bank account (for CA).
  - `caDesignationNumber` string: The designation number of the bank account (for CA).
  - `id` string, required: A unique ID prefixed with bank_account_
  - `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.
  - `signatureText` string: The signature text PostGrid uses to generate a signature for cheques created using this bank account. This is omitted if `signatureImage` is present.
  - `signatureImage` string, uri: A signed link to the signature image uploaded when this bank account was created. This is omitted if `signatureText` is present.

## Other responses

- `400`: The server could not understand the request due to invalid syntax.
- `401`: Access is unauthorized.
- `404`: The server cannot find the requested resource.
- `422`: Client error
- `429`: Client error
- `500`: Server error

## Changes

- **2026-05-14** `c8fedcbd705e`: 4 warning, 2 info
  - added the new `internal_server_error` enum value to the `error/type` response property for the response status `500`
  - added the new `not_found_error` enum value to the `error/type` response property for the response status `404`
  - added the new `rate_limit_exceeded_error` enum value to the `error/type` response property for the response status `429`
  - added the new `validation_error` enum value to the `error/type` response property for the response status `400`
  - …2 more

[Operation history](https://skmtc.dev/postgrid/apis/postgrid-address-verification-api/changes/print-mail/v1/bank_accounts/post.md)

---

[API](https://skmtc.dev/postgrid/apis/postgrid-address-verification-api.md) - [All operations](https://skmtc.dev/postgrid/apis/postgrid-address-verification-api/llms.txt) - [OpenAPI document](https://skmtc.dev/postgrid/apis/postgrid-address-verification-api/revisions/537d2bbc624a?raw)
