---
updatedAt: 2025-08-08T23:27:04.000Z
agentTools:
  projectIndex: https://docs.payarc.net/llms.txt
---

# Create ACH Charge

Creates ACH debit/credit movement.

<details>
  <summary>Include metadata to provide more context for your ACH transactions.</summary>

```json Request Body with Metadata
{
  "amount": 100,
  "routing_number": "{{routing_number}}",
  "account_number": "{{accouunt_number}}",
  "first_name": "Test",
  "last_name": "Test",
  "account_type": "Personal Checking",
  "sec_code": "WEB",
  "type": "debit",
  "metadata": "{\"reference_id\": \"1234567\"}"
}
```

</details>

<details>
  <summary>Click to view details about the account information parameters</summary>

### 1. Account Number (`account_number`)

* **Type:** `integer`
* **Description:** Account Number.
* **Required:** Required if `customer_id` is not present
* **Format:** Numeric
* **Min Length:** 3 digits
* **Max Length:** 17 digits
* **Example:** `123432876`

### 2. Routing Number (`routing_number`)

* **Type:** `integer`
* **Description:** Routing Number.
* **Required:** Required if `customer_id` is not present
* **Format:** Numeric
* **Min Length:** 9 digits
* **Max Length:** 9 digits
* **Example:** `123432876`

### 3. First Name (`first_name`)

* **Type:** `string`
* **Description:** First name of the account holder.
* **Required:** Required if `customer_id` is not present
* **Format:** Alphanumeric
* **Min Length:** 2 characters
* **Max Length:** 50 characters
* **Example:** `John`

### 4. Last Name (`last_name`)

* **Type:** `string`
* **Description:** Last name of the account holder.
* **Required:** Required if `customer_id` is not present
* **Format:** Alphanumeric
* **Min Length:** 2 characters
* **Max Length:** 50 characters
* **Example:** `Doe`

### 5. Account Type (`account_type`)

* **Type:** `string`
* **Description:** Account type. Must be one of the following: 'Personal Checking', 'Personal Savings', 'Business Checking', 'Business Savings'.
* **Required:** Yes
* **Format:** String
* **Example:** `Business Checking`

### 6. SEC Code (`sec_code`)

* **Type:** `string`
* **Description:** SEC code. Must be one of the following: 'ARC', 'BOC', 'CCD', 'POP', 'PPD', 'RCK', 'TEL', 'WEB'.
* **Required:** Optional
* **Format:** String
* **Example:** `WEB`

### 7. Type (`type`)

* **Type:** `string`
* **Description:** Type of flow. Must be one of the following: 'debit', 'credit'.
* **Required:** Yes
* **Format:** String
* **Example:** `debit`

### 8. Amount (`amount`)

* **Type:** `integer`
* **Description:** A positive integer in cents representing how much to charge.
* **Required:** Yes
* **Format:** Numeric (in cents)
* **Min Length:** 1 digit
* **Max Length:** 8 digits
* **Example:**
  * `9` would be `$0.09`
  * `99999999` would be `$999,999.99`
* **Note:** The minimum amount is $0.50 USD when testing in a test environment.

### 9. Currency (`currency`)

* **Type:** `string`
* **Description:** Three-letter ISO currency code, in lowercase.
* **Required:** Yes
* **Format:** Alphabetic
* **Allowed Values:**
  * `usd`

### 10. Receipt Email (`receipt_email`)

* **Type:** `string`
* **Description:** Recipient Email.
* **Required:** Optional
* **Format:** String
* **Example:** `someone@example.com`

### 11. Receipt Phone (`receipt_phone`)

* **Type:** `string`
* **Description:** The cardholder's phone number.
* **Required:** Optional
* **Format:** Numeric
* **Min Length:** 2 digits
* **Max Length:** 11 digits
* **Example:** `8772036624`

### 12. Address Line 1 (`address_line1`)

* **Type:** `string`
* **Description:** The customer's address for line 1.
* **Required:** Optional
* **Format:** Alphanumeric
* **Min Length:** 5 characters
* **Max Length:** 50 characters
* **Example:** `103 Mason Street`

### 13. ZIP (`zip`)

* **Type:** `string`
* **Description:** The customer's ZIP code.
* **Required:** Optional
* **Format:** Numeric and Hyphen
* **Max Length:** 10 digits
* **Example:**
  * `10469`
  * `10469-2345`
* **Note:** To group numbers, use a hyphen symbol. No other symbols or characters are allowed.

### 14. Customer ID (`customer_id`)

* **Type:** `string`
* **Description:** An ID against which a new ACH charge will be created.
* **Required:** Yes
* **Format:** Alphanumeric
* **Note:** Provide the `customer_id` that was created using the Create a Customer API.

### 15. Bank Account ID (`bank_account_id`)

* **Type:** `string`
* **Description:** An ID against which a new  ACH charge will be created.
* **Required:** Yes
* **Format:** Alphanumeric
* **Note:** Provide the `bank_account_id` that was created using the Create Bank Account API.

</details>

# OpenAPI definition

```json
{
  "openapi": "3.1.0",
  "info": {
    "title": "payarc-sandbox",
    "version": "1.2.0"
  },
  "servers": [
    {
      "url": "https://testapi.payarc.net"
    }
  ],
  "components": {
    "securitySchemes": {
      "sec0": {
        "type": "apiKey",
        "in": "header",
        "name": "Authorization",
        "x-default": "YourAPIBearerKey",
        "x-bearer-format": "bearer"
      }
    }
  },
  "security": [
    {
      "sec0": []
    }
  ],
  "paths": {
    "/v1/achcharges": {
      "post": {
        "summary": "Create ACH Charge",
        "description": "Creates ACH debit/credit movement.",
        "operationId": "create-ach-charge",
        "parameters": [
          {
            "name": "Accept",
            "in": "header",
            "description": "Indicates which content types, expressed as MIME types, the client is able to understand.",
            "required": true,
            "schema": {
              "type": "string",
              "default": "application/json"
            }
          },
          {
            "name": "Content-Type",
            "in": "header",
            "description": "Indicates the media type of the resource sent in the HTTP message body. <br /><br /><b>Possible Values:</b><br /> application/json<br />application/x-www-form-urlencoded",
            "required": true,
            "schema": {
              "type": "string",
              "default": "application/json"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Ensures that a request is processed only once, even if it is retried due to network timeouts or errors. When provided, the server uses the key to identify and return the result of a previous request with the same key, preventing duplicate operations (e.g., duplicate payments or record creation).",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "amount",
                  "sec_code",
                  "type"
                ],
                "properties": {
                  "amount": {
                    "type": "integer",
                    "description": "A positive integer in cents representing how much to charge.",
                    "format": "int32"
                  },
                  "sec_code": {
                    "type": "string",
                    "description": "Sec. code' Must be one of the following: 'CCD','PPD','TEL','WEB'",
                    "enum": [
                      "CCD",
                      "PPD",
                      "TEL",
                      "WEB"
                    ]
                  },
                  "type": {
                    "type": "string",
                    "description": "Type of flow. Must be one of the following: 'debit','credit'. 'debit' charges the customer and deposits funds in into your (the merchant). 'credit' charges you (the merchant) and deposits funds into your customers account",
                    "enum": [
                      "debit",
                      "credit"
                    ]
                  },
                  "account_number": {
                    "type": "string",
                    "description": "Account Number."
                  },
                  "routing_number": {
                    "type": "string",
                    "description": "Routing Number"
                  },
                  "first_name": {
                    "type": "string",
                    "description": "First name of account holder"
                  },
                  "last_name": {
                    "type": "string",
                    "description": "Last name of account holder"
                  },
                  "account_type": {
                    "type": "string",
                    "description": "Account type. Must be one of the following: 'Personal Checking','Personal Savings','Business Checking','Business Savings'",
                    "enum": [
                      "Personal Checking",
                      "Personal Savings",
                      "Business Checking",
                      "Business Savings"
                    ]
                  },
                  "currency": {
                    "type": "string",
                    "description": "Three-letter ISO currency code, in lowercase."
                  },
                  "receipt_email": {
                    "type": "string",
                    "description": "Recepient Email"
                  },
                  "receipt_phone": {
                    "type": "string",
                    "description": "The cardholder's phone number."
                  },
                  "address_line1": {
                    "type": "string",
                    "description": "The customer's address for line 1."
                  },
                  "zip": {
                    "type": "string",
                    "description": "The customer's ZIP code."
                  },
                  "customer_id": {
                    "type": "string",
                    "description": "An ID against which a new subscription will be created."
                  },
                  "bank_account_id": {
                    "type": "string",
                    "description": "Bank account ID of the ACH charge."
                  },
                  "company_name": {
                    "type": "string",
                    "description": "company_name is required when sending account type as Business Checking or Business Savings"
                  }
                }
              }
            },
            "application/x-www-form-urlencoded": {
              "schema": {
                "type": "object",
                "required": [
                  "amount",
                  "sec_code",
                  "type"
                ],
                "properties": {
                  "amount": {
                    "type": "integer",
                    "description": "A positive integer in cents representing how much to charge.",
                    "format": "int32"
                  },
                  "sec_code": {
                    "type": "string",
                    "description": "Sec. code' Must be one of the following: 'CCD','PPD','TEL','WEB'",
                    "enum": [
                      "CCD",
                      "PPD",
                      "TEL",
                      "WEB"
                    ]
                  },
                  "type": {
                    "type": "string",
                    "description": "Type of flow. Must be one of the following: 'debit','credit'. 'debit' charges the customer and deposits funds in into your (the merchant). 'credit' charges you (the merchant) and deposits funds into your customers account",
                    "enum": [
                      "debit",
                      "credit"
                    ]
                  },
                  "account_number": {
                    "type": "string",
                    "description": "Account Number."
                  },
                  "routing_number": {
                    "type": "string",
                    "description": "Routing Number"
                  },
                  "first_name": {
                    "type": "string",
                    "description": "First name of account holder"
                  },
                  "last_name": {
                    "type": "string",
                    "description": "Last name of account holder"
                  },
                  "account_type": {
                    "type": "string",
                    "description": "Account type. Must be one of the following: 'Personal Checking','Personal Savings','Business Checking','Business Savings'",
                    "enum": [
                      "Personal Checking",
                      "Personal Savings",
                      "Business Checking",
                      "Business Savings"
                    ]
                  },
                  "currency": {
                    "type": "string",
                    "description": "Three-letter ISO currency code, in lowercase."
                  },
                  "receipt_email": {
                    "type": "string",
                    "description": "Recepient Email"
                  },
                  "receipt_phone": {
                    "type": "string",
                    "description": "The cardholder's phone number."
                  },
                  "address_line1": {
                    "type": "string",
                    "description": "The customer's address for line 1."
                  },
                  "zip": {
                    "type": "string",
                    "description": "The customer's ZIP code."
                  },
                  "customer_id": {
                    "type": "string",
                    "description": "An ID against which a new subscription will be created."
                  },
                  "bank_account_id": {
                    "type": "string",
                    "description": "Bank account ID of the ACH charge."
                  },
                  "company_name": {
                    "type": "string",
                    "description": "company_name is required when sending account type as Business Checking or Business Savings"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "201",
            "content": {
              "application/json": {
                "examples": {
                  "Result": {
                    "value": "{\n  \"data\": {\n    \"object\": \"ACHCharge\",\n    \"id\": \"D9e7gdG8eedGE08a\",\n    \"amount\": 99,\n    \"created_by\": \"serviceuser0567051053675152@payarc.com\",\n    \"status\": \"validated\",\n    \"type\": \"debit\",\n    \"authorization_id\": 280023158,\n    \"validation_code\": 1,\n    \"successful\": true,\n    \"response_message\": \"Validated\",\n    \"created_at\": \"2024-09-16T13:18:04.000000Z\",\n    \"updated_at\": \"2024-09-16T13:18:05.000000Z\",\n    \"retried_achcharge_id\": null,\n    \"sec_code\": \"TEL\",\n    \"bank_account\": {\n      \"data\": {\n        \"object\": \"BankAccount\",\n        \"id\": \"j4ELaekDaElK3JdD\",\n        \"first_name\": \"Test\",\n        \"last_name\": \"Test\",\n        \"account_type\": \"Personal Checking\",\n        \"sec_code\": \"CCD\",\n        \"routing_number\": \"021000021\",\n        \"account_number\": \"***********2345\",\n        \"is_default\": 1\n      }\n    }\n  },\n  \"meta\": {\n    \"include\": [\n      \"customer\"\n    ],\n    \"custom\": []\n  }\n}"
                  }
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "properties": {
                        "object": {
                          "type": "string",
                          "example": "ACHCharge"
                        },
                        "id": {
                          "type": "string",
                          "example": "D9e7gdG8eedGE08a"
                        },
                        "amount": {
                          "type": "integer",
                          "example": 99,
                          "default": 0
                        },
                        "created_by": {
                          "type": "string",
                          "example": "serviceuser0567051053675152@payarc.com"
                        },
                        "status": {
                          "type": "string",
                          "example": "validated"
                        },
                        "type": {
                          "type": "string",
                          "example": "debit"
                        },
                        "authorization_id": {
                          "type": "integer",
                          "example": 280023158,
                          "default": 0
                        },
                        "validation_code": {
                          "type": "integer",
                          "example": 1,
                          "default": 0
                        },
                        "successful": {
                          "type": "boolean",
                          "example": true,
                          "default": true
                        },
                        "response_message": {
                          "type": "string",
                          "example": "Validated"
                        },
                        "created_at": {
                          "type": "string",
                          "example": "2024-09-16T13:18:04.000000Z"
                        },
                        "updated_at": {
                          "type": "string",
                          "example": "2024-09-16T13:18:05.000000Z"
                        },
                        "retried_achcharge_id": {},
                        "sec_code": {
                          "type": "string",
                          "example": "TEL"
                        },
                        "bank_account": {
                          "type": "object",
                          "properties": {
                            "data": {
                              "type": "object",
                              "properties": {
                                "object": {
                                  "type": "string",
                                  "example": "BankAccount"
                                },
                                "id": {
                                  "type": "string",
                                  "example": "j4ELaekDaElK3JdD"
                                },
                                "first_name": {
                                  "type": "string",
                                  "example": "Test"
                                },
                                "last_name": {
                                  "type": "string",
                                  "example": "Test"
                                },
                                "account_type": {
                                  "type": "string",
                                  "example": "Personal Checking"
                                },
                                "sec_code": {
                                  "type": "string",
                                  "example": "CCD"
                                },
                                "routing_number": {
                                  "type": "string",
                                  "example": "021000021"
                                },
                                "account_number": {
                                  "type": "string",
                                  "example": "***********2345"
                                },
                                "is_default": {
                                  "type": "integer",
                                  "example": 1,
                                  "default": 0
                                }
                              }
                            }
                          }
                        }
                      }
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "include": {
                          "type": "array",
                          "items": {
                            "type": "string",
                            "example": "customer"
                          }
                        },
                        "custom": {
                          "type": "array"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "422",
            "content": {
              "application/json": {
                "examples": {
                  "Result": {
                    "value": "{\n  \"message\": \"The given data was invalid.\",\n  \"errors\": {\n    \"routing_number\": [\n      \"The routing number field is required when none of customer id / bank account id are present.\"\n    ],\n    \"account_number\": [\n      \"The account number field is required when none of customer id / bank account id are present.\"\n    ],\n    \"amount\": [\n      \"The amount field is required.\"\n    ],\n    \"first_name\": [\n      \"The first name field is required when none of customer id / bank account id are present.\"\n    ],\n    \"last_name\": [\n      \"The last name field is required when none of customer id / bank account id are present.\"\n    ],\n    \"account_type\": [\n      \"The account type field is required when none of customer id / bank account id are present.\"\n    ],\n    \"sec_code\": [\n      \"The sec code field is required.\"\n    ],\n    \"type\": [\n      \"The type field is required.\"\n    ],\n    \"customer_id\": [\n      \"The customer id field is required when none of routing number / account number / bank account id are present.\"\n    ],\n    \"bank_account_id\": [\n      \"The bank account id field is required when none of routing number / account number / customer id are present.\"\n    ]\n  }\n}"
                  }
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string",
                      "example": "The given data was invalid."
                    },
                    "errors": {
                      "type": "object",
                      "properties": {
                        "routing_number": {
                          "type": "array",
                          "items": {
                            "type": "string",
                            "example": "The routing number field is required when none of customer id / bank account id are present."
                          }
                        },
                        "account_number": {
                          "type": "array",
                          "items": {
                            "type": "string",
                            "example": "The account number field is required when none of customer id / bank account id are present."
                          }
                        },
                        "amount": {
                          "type": "array",
                          "items": {
                            "type": "string",
                            "example": "The amount field is required."
                          }
                        },
                        "first_name": {
                          "type": "array",
                          "items": {
                            "type": "string",
                            "example": "The first name field is required when none of customer id / bank account id are present."
                          }
                        },
                        "last_name": {
                          "type": "array",
                          "items": {
                            "type": "string",
                            "example": "The last name field is required when none of customer id / bank account id are present."
                          }
                        },
                        "account_type": {
                          "type": "array",
                          "items": {
                            "type": "string",
                            "example": "The account type field is required when none of customer id / bank account id are present."
                          }
                        },
                        "sec_code": {
                          "type": "array",
                          "items": {
                            "type": "string",
                            "example": "The sec code field is required."
                          }
                        },
                        "type": {
                          "type": "array",
                          "items": {
                            "type": "string",
                            "example": "The type field is required."
                          }
                        },
                        "customer_id": {
                          "type": "array",
                          "items": {
                            "type": "string",
                            "example": "The customer id field is required when none of routing number / account number / bank account id are present."
                          }
                        },
                        "bank_account_id": {
                          "type": "array",
                          "items": {
                            "type": "string",
                            "example": "The bank account id field is required when none of routing number / account number / customer id are present."
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "deprecated": false
      }
    }
  },
  "x-readme": {
    "headers": [],
    "explorer-enabled": true,
    "proxy-enabled": true
  },
  "x-readme-fauxas": true
}
```