---
title: "Send ACH transaction to be processed."
method: POST
path: "/transactions/process/ach"
tags: ["Transactions"]
---

# Send ACH transaction to be processed.

`POST /transactions/process/ach`

## Request

- Base URL: `https://tb.paymentfusion.com`
- URL: `https://tb.paymentfusion.com/transactions/process/ach`
- Auth: none declared. Required headers: `Authorization`, `Accept`, `Content-Type`

Called by the Independent Software Vendor. Sends a transaction directly to the gateway for processing. This can be used with check data.

## Headers

- `Authorization` string, api_id:api_token, required
- `Accept` string, required
- `Content-Type` string, required

## Request body `application/x-www-form-urlencoded`

- object
  - `merchant_id` string, required: The merchant identifier that will be used to connect to the gateway. Size range - `1..16`
  - `amount` string, required: The amount in USD up to 6 decimals that will be charged, must be a number greater than 0 and its last 4 digits must be 0. (e.g. "1", "1.00", "1.01", "1.2", "1.230000").
  - `invoice` string: Number of the invoice. If this field is not sent then the invoice will be given a unique identifier. Size range - `1..10`
  - `software` string: ISV software identifier.
  - `ip_address` string: IP address of the client requesting the transaction.
  - `clerk` string: Sales Clerk. Optional value indicating the clerk/person processing transaction, for reporting purposes.
  - `billing_street` string: Billing street address for credit cards.
  - `billing_city` string: Billing city for credit cards.
  - `billing_state` string: Billing state for credit cards.
  - `billing_zip` string: Billing zip code for credit cards.
  - `comments` string: Transaction comments.
  - `description` string: Transaction description.
  - `command` string: The operation that will be performed. "sale" makes the transaction right away while "independent_return" makes a refund of the transaction. “save” returns a token for the check data (Payment Fusion Gateway only). Allowed values - `"sale"`,`"independent_return"`,`"save"`.
  - `force_duplicate` boolean: Specifies if this transaction can bypass duplicate error. Applies to payment_fusion gateway only. Allowed values - `true`,`false`
  - `allow_partial_auth` boolean: Sets the flag for allowing partial payment
  - `zip_code` string: 5 digit ZIP code. Optional value indicating the cardholder's zip code.
  - `name_on_check` string, required: The check name on check. Please provide one of `'name_on_check' and 'acount_number' and 'routing_number'` or `'ach_token'` or `'micr'`.
  - `routing_number` string, required: The check routing number. Please provide one of `'name_on_check' and 'acount_number' and 'routing_number'` or `'ach_token'` or `'micr'`.
  - `account_number` string, required: The check account number. Please provide one of `'name_on_check' and 'acount_number' and 'routing_number'` or `'ach_token'` or `'micr'`.
  - `check_number` string: Check number.
  - `ach_token` string, required: The check token. Please provide one of `'name_on_check' and 'acount_number' and 'routing_number'` or `'ach_token'` or `'micr'`.
  - `micr` string, required: The check MICR. Please provide one of `'name_on_check' and 'acount_number' and 'routing_number'` or `'ach_token'` or `'micr'`.
  - `drivers_license` string: Check owner's driver's license number.
  - `state` string: Check owner's two-character state code.
  - `ssn` string: Check owner's social security number.
  - `check_type` string: Optional parameter that identifies the type of check used in the transaction.
  - `check_account_type` string: Optional parameter that identifies the type of account used as a source of funds.
  - `email_address` string: Check owner's email address.
  - `phone_number` string: Check owner's phone number.
  - `street_1` string: Check owner's address street(1).
  - `street_2` string: Check owner's address street(2).
  - `street_3` string: Check owner's address street(3).
  - `city` string: Check owner's address city.
  - `state_or_province_code` string: Check owner's address state or province code.
  - `postal_code` string: Check owner's address postal code.
  - `country_code` string: Check owner's address country code.
  - `street_address` string: Optional value indicating the cardholder's street address.
  - `remote_id` string: Used for keeping track of a 3rd party identifier alongside the transaction object. This is typically used by the ISV to assign its own identifier to the transaction for easy matching in case any network issues appear. This is not validated for uniqueness. Size range - `0..256`.
  - `client_id` string: Used to track the workstation associated with the transaction.
  - `sec_code` string: Optional value indicating the processor SEC Code. Allowed values - `"WEB"`, `"PPD"`, `"CCD"`, `"TEL"`, `"ARC"`
  - `callback_url_1` string: One of the three URLs where Transaction Broker will POST to when a HPP request is completed. This eliminates the need for polling for the request's status. Only HTTPS URLs are allowed. The callback will retry if the host is unresponsive. The response received from the callback url must have the response code 2xx. Basic auth credentials may be added in to url ie. 'https://username:password@address.com' or as an url param 'https://address.com?token=secret'. Size range - `0..2000`.
  - `callback_url_2` string: One of the three URLs where Transaction Broker will POST to when a HPP request is completed. This eliminates the need for polling for the request's status. Only HTTPS URLs are allowed. The callback will retry if the host is unresponsive. The response received from the callback url must have the response code 2xx. Basic auth credentials may be added in to url ie. 'https://username:password@address.com' or as an url param 'https://address.com?token=secret'. Size range - `0..2000`.
  - `callback_url_3` string: One of the three URLs where Transaction Broker will POST to when a HPP request is completed. This eliminates the need for polling for the request's status. Only HTTPS URLs are allowed. The callback will retry if the host is unresponsive. The response received from the callback url must have the response code 2xx. Basic auth credentials may be added in to url ie. 'https://username:password@address.com' or as an url param 'https://address.com?token=secret'. Size range - `0..2000`.

## Response `200`

Success

- object
  - `amount` string: Passthrough of original transaction request amount
  - `auth_amount` string: The authorized amount in case of a partial authorized transaction
  - `gateway_auth_code` string: The authorization code received from the gateway
  - `card_type` string: The type of the card that was submitted. Allowed values - `"Discover"`, `"DISCOVER"`, `"UnionPay"`, `"AmEx"`, `"AMERICAN EXPRESS"`, `"AMEX"`, `"American express"`, `"Master"`, `"MASTERCARD"`, `"Mastercard"`, `"MASTERCARD/Mastercard"`, `"JCB"`, `"Jcb"`, `"Visa"`, `"VISA"`,`"Visa Traditional"`, `"Visa Classic"`, `"Visa Health"`, `"Visa Prefered"`, `"Mastercard/Eurocard"`, `"DINERS"`, `"CareCredit"`, `"Unknown Code"`, `"OTHER"`, `"null"`, `"N/A"` The values are subject to change.
  - `created_at` string: The time the transaction was created.
  - `gateway_identifier` 'usaepay' | 'payment_fusion': Identifier of the gateway.
  - `gateway_response` GatewayResponse: The response comming from the gateway.
  - `gateway_reference_number` string: Transaction reference number from gateway.
  - `gateway_response_message` string: The message returned from the gateway
  - `gateway_result_code` string: Result code (or error code) as returned by the gateway
  - `gateway_result_text` string: The result text as returned by the gateway.
  - `merchant_id` string: The merchant identifier that will be used to connect to the gateway. Size range - `1..16`
  - `mid` string: The merchant ID
  - `remote_id` string: Used for keeping track of a 3rd party identifier alongside the transaction object. This is typically used by the ISV to assign its own identifier to the transaction for easy matching in case any network issues appear. This is not validated for uniqueness. Size range - `0..256`.
  - `tid` string: The terminal ID
  - `token` string: The check token used when processing the transaction.
  - `tip_amount` string: The tip amount in USD that was added to this transaction. Default value - `0`
  - `transaction_status` string: Confirmation from the payment gateway regarding the CC credentials and payment finalization. Allowed values - `"approved"`, `"awaiting_amount"`, `"awaiting_confirmation"`, `"canceled"`, `"declined"`, `"emv_needing_reversal"`, `"error"`, `"in progress"`, `"internal error"`, `"timeout"`, `"verification"`, `"Success"`, `"Failure"`
  - `ach_token` string: The check token used when processing the transaction.
  - `v` string: The API version that was used to handle the request.

## Other responses

- `4XX`: Possible errors - 1, 5, 6, 11, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 59, 63, 67, 70, 72, 73, 74, 75, 76, 77, 78, 79, 80, 82, 84, 85, 103, 105, 106, 107, 108, 112, 118, 147, 163, 189, 198, 202, 206, 231, 232, 240, 250, 251, 257, 259, 291
- `5XX`: Possible errors - 8, 261

---

[API](https://skmtc.dev/bankofamerica/apis/transaction-broker-api.md) - [All operations](https://skmtc.dev/bankofamerica/apis/transaction-broker-api/llms.txt) - [OpenAPI document](https://skmtc.dev/bankofamerica/apis/transaction-broker-api/revisions/6097bc689e41?raw)
