---
title: "Save echeck token"
method: POST
path: "/pay/v3/saveECheck"
tags: ["Ecommerce"]
---

# Save echeck token

`POST /pay/v3/saveECheck`

Allows you to securely save bank account information without a browser [using the API](https://docs.nexiopay.com/docs/saving-an-echeck-token-with-the-api) or [using your own form](https://docs.nexiopay.com/docs/creating-a-save-echeck-page-with-your-own-form).

You may save a new e-check by including the `card` object or add existing TokenEx echeck token for use in Nexio by including the `token` object. Echeck tokens can be used to process through any MID on your account. They are not restricted to a specific merchant account or currency.

<!-- theme: info -->
> 📘 Note 
> 
> Processing options must be sent in the request for a [one-time-use token](https://docs.nexiopay.com/reference/createonetimeusetoken). For more information, see [What data is saved with tokens?](https://docs.nexiopay.com/docs/what-data-is-saved-with-tokens) in Guides.

<!-- theme: warning -->
> ⚠️ Try It
> 
> To use the Try It feature for this endpoint, you can use the credentials for your [Sandbox API user](https://docs.nexiopay.com/docs/sandbox-environments).<br/><br/>You can also use the following test account. Copy the value and paste it into the appropriate space in the Try It section to the right.
> username: `docs@nexiopay.com`
> password: `JZdzoXpdDeH6VA`<br/><br/>Include at least a one-time-use token, `bank.accountHolderName`, `bank.accountHolderName`, and either the `bank.encryptedBankAccountNumber` or the `tokenex.token` parameter.

<div style="display:none;">

## Request parameters
- bank
- bank.accountHolderName
- bank.routingNumber
- bank.encryptedBankAccountNumber
- token
- data
- data.customer
- data.customer.billToAddressOne
- data.customer.billToAddressTwo
- data.customer.billToCity
- data.customer.billToCountry
- data.customer.billToPhone
- data.customer.billToPostal
- data.customer.billToState
- data.customer.companyName
- data.customer.createdAtDate
- data.customer.email
- data.customer.firstName
- data.customer.invoice
- data.customer.lastName
- data.customer.orderNumber
- data.customer.phone
- data.customer.shipToAddressOne
- data.customer.shipToAddressTwo
- data.customer.shipToCity
- data.customer.shipToCountry
- data.customer.shipToPhone
- data.customer.shipToPostal
- data.customer.shipToState
- data.customFields
- data.customFields.exampleKey
- tokenex
- tokenex.token
- tokenex.lastFour

## Response parameters
- token
- token.token
- tokenx.lastFour
- data
- data.customer
- data.customer.billToAddressOne
- data.customer.billToAddressTwo
- data.customer.billToCity
- data.customer.billToCountry
- data.customer.billToPhone
- data.customer.billToPostal
- data.customer.billToState
- data.customer.companyName
- data.customer.email
- data.customer.firstName
- data.customer.lastName
- data.customer.phone
- data.customer.shipToAddressOne
- data.customer.shipToAddressTwo
- data.customer.shipToCity
- data.customer.shipToCountry
- data.customer.shipToPhone
- data.customer.shipToPostal
- data.customer.shipToState
- bank
- bank.accountHolderName
- bank.routingNumber
- merchantId

</div>

## Request body

- object
  - `token` Token, required — unresolved $ref
  - `bank` object, required — Bank account information
    - `accountHolderName` string, required — The account holder's name. Use the value for whichever name is on the account. Therefore. if the account is under a business name, use that value. This value is saved in the echeck token. If needed, you can specify the company name for the `data.customer.companyName` parameter. Or, if you use a business name here, and want to associate a specific person for the account, use the `data.customer.firstName` and `data.customer.lastName` parameters.
    - `routingNumber` RoutingNumber, required — unresolved $ref
    - `encryptedBankAccountNumber` string — The encrypted bank account number. This value is used to create a TokenEx echeck token. <b>Conditionally Required</b> if `tokenex.token` is not included.
  - `tokenex` object — The TokenEx echeck token. (Use this option if you have pre-existing TokenEx tokens you would like to start using through Nexio). <b class='required'>Conditionally Required</b> if the `bank.encryptedBankAccountNumber` is not included. Echeck tokens can be used to process through any MID on your account. They are not restricted to a specific merchant account or currency.
    - `token` string — A previously saved TokenEx e-check token. (Use this option if you have pre-existing TokenEx tokens you would like to start using through Nexio). <b class='required'>Conditionally Required</b> if `bank.encryptedBankAccountNumber` is not included.
    - `lastFour` LastFour — unresolved $ref
  - `data` object — Additional optional data
    - `currency` string — The [three-character ISO code](https://en.wikipedia.org/wiki/ISO_4217) for any currency supported by your merchant account. If you specify a currency that your account does not support, you will get an error response. If you do not include this parameter, the system uses the default of `USD`, but if your merchant account does not support USD, you will get an error response. Please note that the currency is not stored with the card/echeck token. Card and echeck tokens can be used to process through any MID on your account. They are not restricted to a specific merchant account or currency.
    - `customer` object — Customer information to be used in checking fraud or sent to the processing gateway, when applicable
      - `orderNumber` string — The order number. You can send this in the request, but the system does not save it to the saved card token. Instead, you should include it in the request to [Create one-time-use token](https://docs.nexiopay.com/reference/createonetimeusetoken) or when running the transaction (see [Run card transaction](https://docs.nexiopay.com/reference/runcardtransaction) or [Run card transaction with iframe](https://docs.nexiopay.com/reference/runcardtransactioniframe)).
      - `invoice` Invoice — unresolved $ref
      - `firstName` FirstName — unresolved $ref
      - `lastName` LastName — unresolved $ref
      - `birthDate` BirthDate — unresolved $ref
      - `email` Email — unresolved $ref
      - `phone` Phone — unresolved $ref
      - `companyName` CompanyName — unresolved $ref
      - `billToAddressOne` BillToAddressOne — unresolved $ref
      - `billToAddressTwo` BillToAddressTwo — unresolved $ref
      - `billToCity` BillToCity — unresolved $ref
      - `billToState` BillToState — unresolved $ref
      - `billToPostal` BillToPostal — unresolved $ref
      - `billToCountry` BillToCountry — unresolved $ref
      - `billToPhone` BillToPhone — unresolved $ref
      - `shipToAddressOne` ShipToAddressOne — unresolved $ref
      - `shipToAddressTwo` ShipToAddressTwo — unresolved $ref
      - `shipToCity` ShipToCity — unresolved $ref
      - `shipToState` ShipToState — unresolved $ref
      - `shipToPostal` ShipToPostal — unresolved $ref
      - `shipToCountry` ShipToCountry — unresolved $ref
      - `shipToPhone` ShipToPhone — unresolved $ref
      - `createdAtDate` CreatedAtDate — unresolved $ref
    - `customFields` CustomFields — unresolved $ref
  - `merchantId` MerchantId — unresolved $ref

## Response `200`

Success

- object
  - `token` object — E-check token information
    - `token` string — The echeck token.
    - `lastFour` string — The last four digits of the account number.
  - `bank` object — Bank information
    - `accountHolderName` string — The account holder's name. This value is cached in the one-time-use token.
    - `routingNumber` RoutingNumber — unresolved $ref
  - `data` object — Additional data, if provided in the request
    - `customer` object — Customer information returned when checking fraud or from the processing gateway, when applicable.
      - `firstName` FirstName — unresolved $ref
      - `lastName` LastName — unresolved $ref
      - `birthDate` string — The customer's date of birth. The format returned matches the format used in the request that [created the echeck token](https://docs.nexiopay.com/reference/saveechecktoken).
      - `email` Email — unresolved $ref
      - `phone` Phone — unresolved $ref
      - `companyName` CompanyName — unresolved $ref
      - `billToAddressOne` BillToAddressOne — unresolved $ref
      - `billToAddressTwo` BillToAddressTwo — unresolved $ref
      - `billToCity` BillToCity — unresolved $ref
      - `billToState` BillToState — unresolved $ref
      - `billToPostal` BillToPostal — unresolved $ref
      - `billToCountry` BillToCountry — unresolved $ref
      - `billToPhone` BillToPhone — unresolved $ref
      - `shipToAddressOne` ShipToAddressOne — unresolved $ref
      - `shipToAddressTwo` ShipToAddressTwo — unresolved $ref
      - `shipToCity` ShipToCity — unresolved $ref
      - `shipToState` ShipToState — unresolved $ref
      - `shipToPostal` ShipToPostal — unresolved $ref
      - `shipToCountry` ShipToCountry — unresolved $ref
      - `shipToPhone` ShipToPhone — unresolved $ref
  - `merchantId` string — The merchant account under which the echeck token is saved.

## Other responses

- `401` — Unauthorized. For help with this error and other error codes, see [Common errors](https://docs.nexiopay.com/docs/common-errors) in the Guides area.

---

[API](https://skmtc.dev/nexiopay/apis/payments-api-reference.md) · [All operations](https://skmtc.dev/nexiopay/apis/payments-api-reference/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/nexiopay/payments-api-reference/revisions/b414b73979e5/schema)
