# Seamless ACH API Documentation > Discover Seamless ACH API documentation for seamless and secure Plaid Verified ACH payments. Learn how to integrate Plaid for instant bank account verification, customer risk analysis, and streamlined payment processing with comprehensive API and SDK guides. Append .md to any documentation page URL to get its markdown version. ## Guides - [Seamless ACH API — Quick-Start](https://developers-ach.seamlesschex.com/docs/getting-started.md): Seamless ACH makes it easy to move money with just three simple steps: create a customer, connect their bank account, and send or receive a payment. You can process ACH debits, credits, recurring payments, or just save bank info for later. Use our drop-in Checkout.js tool for a fast, all-in-one setup—or use our REST API for full control over the experience. You’ll get real-time updates via webhooks and a sandbox environment to test everything before going live. - [Checkout.js Documentation](https://developers-ach.seamlesschex.com/docs/overview.md): Securely collect, verify, and debit customer bank accounts now or later — all through a simple Seamless ACH-hosted or embedded checkout. - [On-Demand Payments](https://developers-ach.seamlesschex.com/docs/checkout-sdk-1.md): Use this guide to let users add and authorize bank accounts for future payments - [Direct Debits / Credits / Subscriptions](https://developers-ach.seamlesschex.com/docs/ach-on-demand-payments.md) - [Online Gaming Integration Guide](https://developers-ach.seamlesschex.com/docs/online-gaming-guide.md): This guide outlines how to integrate Seamless ACH into your online gaming platform. Whether you’re onboarding new players, managing wallet funding, or handling payouts, Seamless ACH provides flexible, scalable solutions. - [Telemedicine Integration Guide](https://developers-ach.seamlesschex.com/docs/telemedicine-guide.md): In the telemedicine industry, creating a seamless checkout process, managing subscriptions for recurring services, and securely storing customers' bank details are paramount. Follow these steps to integrate Seamless ACH's Checkout.js into your telemedicine platform and streamline your payment processes. - [Insurance Integration Guide](https://developers-ach.seamlesschex.com/docs/insurance-guide.md): In the Insurance industry, creating a seamless checkout process, managing subscriptions for recurring services, and securely storing customers' bank details are paramount. Follow these steps to integrate Seamless ACH's Checkout.js into your insurance platform and streamline your payment processes. - [eCommerce Health Products Integration Guide](https://developers-ach.seamlesschex.com/docs/nutraceuticals-integration-guide.md): In the nutraceutical industry, efficiency in transaction handling, particularly in issuing refunds, is paramount. Follow these steps to seamlessly manage transactions and refunds within your nutra business. - [Installation Guide Seamless ACH x WooCommerce](https://developers-ach.seamlesschex.com/docs/installation-guide.md): Make sure you have administrative access to your website where you plan to install the Seamless ACH plugin. Verify that your WordPress version is up to date and WooCommerce is installed. - [Seamless ACH Email Notifications](https://developers-ach.seamlesschex.com/docs/email-notifications-seamlessach-status-integration-with-woocommerce.md): WooCommerce has a variety of built-in emails to help communicate your store’s operations. Seamless ACH integrates its ACH order statuses with WooCommerce email notifications, allowing you to keep your customers informed throughout the payment process. You can configure these email settings directly in your site admin panel: WooCommerce > Settings > Emails - [Sync Seamless ACH Order Statuses with WooCommerce via Webhooks](https://developers-ach.seamlesschex.com/docs/how-to-sync-order-statuses-between-seamlessach-and-your-woocommerce-store-using-webhooks.md): Keep your WooCommerce orders up-to-date with Seamless ACH using webhooks. Follow this streamlined setup and troubleshooting guide: - [ACH Processing Times](https://developers-ach.seamlesschex.com/docs/ach-processing-times.md): This guide helps you understand how long different payment types take to process when using Seamless ACH. Timelines below are based on Eastern Time (ET) - [ACH Return Codes](https://developers-ach.seamlesschex.com/docs/ach-returns.md): ACH return codes are issued by banks when a payment fails or cannot be processed. Each code indicates the reason for the failure—such as insufficient funds, invalid account details, or authorization issues. These return codes are essential for managing risk, handling disputes, and automating workflows (like retries or declines) based on the specific reason a payment failed. Below is the full list of ACH return codes supported by the NACHA network: - [Duplicate Transactions – FAQ](https://developers-ach.seamlesschex.com/docs/duplicate-transaction-logic-in-seamlessach.md) - [R01 (NSF) Returns](https://developers-ach.seamlesschex.com/docs/can-i-still-get-r01-returns-if-i-use-plaid-balance-checks.md) ## API Reference - [Create a Customer](https://developers-ach.seamlesschex.com/reference/create-a-customer.md): In Seamless ACH, a Customer represents an individual or business you wish to engage with, and their profile is created and managed via the Seamless ACH API. To start, create a customer profile for each new user or business you intend to transact with. After the customer is created and a funding source is linked, you can easily issue invoices, set up subscriptions, or initiate payments. On success, you'll receive a 201 response with a JSON body echoing the provided data, plus a unique user_id, status, and created_at timestamp—this user_id is your key for linking funding sources, issuing invoices, subscriptions, or initiating payments. - [Update a Customer](https://developers-ach.seamlesschex.com/reference/update-a-customer.md): You can update a customer's name in Seamless ACH using the POST https://{env}.seamlesschex.com/ach/v2/user/{user_id}/update endpoint. This endpoint is specifically designed to change either the firstName and lastName (for individuals) or the businessName (for businesses). You’ll need to include your Bearer API key for authentication and pass only the new name values you wish to update. Other customer fields—like email, phone, or address—cannot be modified through this endpoint. On success, you’ll receive a confirmation response indicating the customer’s name has been updated. - [Get Customer Account Details](https://developers-ach.seamlesschex.com/reference/get-a-customers-details.md): You can **retrieve a customer’s profile** using the `GET https://{env}.seamlesschex.com/ach/v2/user/{user_id}` endpoint. Just include your Bearer API key in the `Authorization` header and replace `{user_id}` with the ID returned when the customer was created. On success, you'll receive a 200 response containing a JSON object with all available customer details—such as the `user_id`, names (individual or business), `email`, `phone`, `status`, `created_at`, and if provided, `address`, `externalId`, `notes`, and `metadata`. This allows your application to stay up-to-date with the customer’s latest data at any time. - [Get Multiple Customer's Account Details](https://developers-ach.seamlesschex.com/reference/get-multiple-customers-details.md): The `GET /v2/user` endpoint lets you retrieve a list of customers you've created in Seamless ACH. You can use optional query parameters like `limit`, `starting_after`, or `ending_before` to control how many records are returned and paginate through results. This is useful for displaying customer lists, syncing your database, or reviewing customer details in bulk. The response includes an array of customer objects—each with fields like `user_id`, name, email, phone, and status—along with a flag indicating if more results are available. Just include your Bearer API key in the request to get started. - [Get Customer Funding Source Details](https://developers-ach.seamlesschex.com/reference/get-customers-funding-sources.md): Retrieve the complete list of funding sources and bank account details associated with a customer. - [Add a Bank Account to a Customer’s Profile](https://developers-ach.seamlesschex.com/reference/add-a-bank-account-to-a-customer.md): Seamless ACH supports five methods to onboard a customer’s bank account for ACH transactions. Choose the approach that best fits your integration, risk model, and user experience needs. - [Plaid Authorization (Bank Account Verification)](https://developers-ach.seamlesschex.com/reference/add-via-plaid-authorization.md): This endpoint allows you to instantly link a customer's bank account using **Plaid**. It's the fastest and most secure way to verify a bank account and enable ACH payments - [Verified 3rd-Party Funding Source](https://developers-ach.seamlesschex.com/reference/create-3rd-party-funding-source.md): Manually add a verified bank account (from your own verification service) to a customer’s profile. Since you’re supplying an already-verified routing and account number, the funding source is considered Verified immediately—ready for ACH debits, credits, and subscriptions. Note: Your account must be enabled for this method—contact [email protected] to get set up. - [Plaid Processor Token](https://developers-ach.seamlesschex.com/reference/add-funding-source-via-processor-token.md): Already using Plaid? Generate a processor token with your existing integration and hand it to Seamless ACH to instantly create a verified bank funding source — no micro-deposits required. - [Unverified Funding Source (Bank Routing & Account Number)](https://developers-ach.seamlesschex.com/reference/add-unverified-funding-source.md): You can add an unverified bank account to a customer using only the routing and account number. However, this bank account can only be used for credits and direct deposits. - [Micro-Deposits](https://developers-ach.seamlesschex.com/reference/create-funding-source.md): Link a customer’s bank account, verify it with micro-deposits, then start ACH transactions—all in one smooth flow. - [Create Funding Source](https://developers-ach.seamlesschex.com/reference/create-funding-source-1.md): The \"Create Unverified Funding Source\" endpoint allows merchants to manually add a customer's bank account using their routing and account numbers. This endpoint should only be used when sending credits (transferring funds from the merchant's bank to the customer's bank). Since the bank account will not be verified, it can only be used for credits (outbound transfers). If you need to debit the customer's account, use [Plaid Authorization](https://developers-ach.seamlesschex.com/reference/add-via-plaid-authorization) instead. To add a funding source to a customer, you will need to follow the steps below: 1. Create a Customer 2. Add a Funding Source — This step links a bank account to your Customer's profile. While it's authorized for direct credits, debit capability requires Plaid verification. Follow the next steps. 3. For accounts that require debit capability, use [Plaid Authorization](https://developers-ach.seamlesschex.com/reference/add-via-plaid-authorization) to add and verify the bank account — micro-deposit initiation is deprecated as of June 8, 2026. 4. Listen for funding source webhooks 5. Start creating direct credits / subscriptions - [Send Micro-Deposits](https://developers-ach.seamlesschex.com/reference/send-micro-deposits.md): Initiate verification funding source - [Verify Micro-Deposits](https://developers-ach.seamlesschex.com/reference/verify-micro-deposits.md): You must provide a source_id and amounts - [Get Micro Deposits (redirect)](https://developers-ach.seamlesschex.com/reference/get-micro-deposits-redirect.md) - [Update Funding Source](https://developers-ach.seamlesschex.com/reference/update-funding-source.md) - [Delete a Funding Source](https://developers-ach.seamlesschex.com/reference/delete-funding-source.md): This endpoint allows you to securely remove a funding source from a customer’s account. - [Transfer Funds To Balance Account](https://developers-ach.seamlesschex.com/reference/transfer-funds-to-balance-account.md): This endpoint allows you to transfer funds from a linked Bank Account to your Seamless ACH Balance Account. - [Transfer Funds From Balance to Bank Account](https://developers-ach.seamlesschex.com/reference/transfer-funds-from-balance-account.md): This endpoint allows you to transfer funds from your Seamless ACH Balance Account to a linked Bank Account. - [Promote Funding Source To Primary](https://developers-ach.seamlesschex.com/reference/promote-funding-source-to-primary.md) - [Get Funding Source Details](https://developers-ach.seamlesschex.com/reference/get-funding-source-details.md): The **GET /funding-sources/{source\\_id}** endpoint allows you to retrieve detailed information about a specific funding source by passing the `source_id` as a path parameter. This ID represents a bank account or funding method linked to a user. When successfully called, the response returns a JSON object containing key details about the funding source: the `source_id`, the associated `user_id`, whether it is marked as the primary funding source (`is_primary`), its current `status` (e.g., \"verified\"), the bank’s routing number (`routing`), the name of the bank (`bank`), the last four digits of the account number (`lbacc`), the account `type` (e.g., \"checking\"), and the `created_at` date indicating when the funding source was added. This endpoint is commonly used to confirm the status or bank details of a customer’s connected account. - [Get Seamless ACH Balance](https://developers-ach.seamlesschex.com/reference/retrieve-balance.md): Retrieve the current balance of yours or a customers Seamless ACH Balance account. - [On-Demand Payments](https://developers-ach.seamlesschex.com/reference/on-demand-payments.md) - [Create a Direct Debit](https://developers-ach.seamlesschex.com/reference/create-ach-direct-debit.md): The ACH Direct Debit endpoint provides a secure and efficient way for businesses to debit customers bank account funds directly from customers' bank accounts. To use this feature, Seamless ACH's \"On Demand Payments\" must be enabled to store customer bank details for future direct debits. - [Create a Direct Credit](https://developers-ach.seamlesschex.com/reference/create-ach-direct-credit.md): Direct ACH Credit: This method allows you to send payments directly to your customer's bank account. First, create the customer profile and add a funding source. Then, you can proceed with the direct credit transaction. - [Create a Subscription](https://developers-ach.seamlesschex.com/reference/create-subscription.md): This endpoint enables you to automatically bill a customer through a subscription. You can set the start date, billing cycle, and other parameters. Alternatively you can send out an recurring invoice every month using this endpoint

Note: The customer must have an authorized funding source in the system. You can create a customer and add a verified funding source using the create customer endpoint. - [Invoices](https://developers-ach.seamlesschex.com/reference/invoices.md) - [Send Invoice](https://developers-ach.seamlesschex.com/reference/send-invoice.md): When you create an invoice, Seamless ACH will send an email to your customer with a link to a hosted payment page. The customer is then required to confirm their payment details and manually complete the payment. This method is ideal if you want to give customers the opportunity to review their charges before making payment. - [Get Invoice Details](https://developers-ach.seamlesschex.com/reference/retrieve-single-invoice.md): Get a specified invoice and invoice details. - [Get Multiple Invoice Details](https://developers-ach.seamlesschex.com/reference/retrieve-multiple-invoices.md): The Get Invoices endpoint retrieves a list of invoices and their associated details within a specified time frame. This allows businesses to efficiently access and review invoice data for a given period. - [Void Invoice](https://developers-ach.seamlesschex.com/reference/void-invoice.md): The Void Invoice endpoint allows businesses to delete or cancel a specified invoice. This action ensures that the invoice is no longer live or processed. - [Payment Links](https://developers-ach.seamlesschex.com/reference/payment-links.md) - [Create Payment Link](https://developers-ach.seamlesschex.com/reference/create-payment-link.md): Create a billing link - [Enable Payment Link](https://developers-ach.seamlesschex.com/reference/enable-payment-link.md) - [Get a Payment Link](https://developers-ach.seamlesschex.com/reference/get-payment-link.md): Get billing link - [Get Multiple Payment Links](https://developers-ach.seamlesschex.com/reference/get-multiple-links.md): This endpoint allows you to retrieve many billing links. - [Delete Payment Link](https://developers-ach.seamlesschex.com/reference/delete-payment-link.md) - [Send Payments](https://developers-ach.seamlesschex.com/reference/send-payments.md) - [Send a Payment](https://developers-ach.seamlesschex.com/reference/create-ach-direct-credit-copy.md): Send a Payment to a customer. - [Retrieve Single Payment](https://developers-ach.seamlesschex.com/reference/retrieve-single-payment.md): Get the specified invoice for a user - [Retrieve Multiple Payments](https://developers-ach.seamlesschex.com/reference/retrieve-multiple-payments.md): Return the sent/received checks for a user - [Send Mass Payout](https://developers-ach.seamlesschex.com/reference/sending-mass-payouts.md): Create mass payouts from file. - [Void Payment](https://developers-ach.seamlesschex.com/reference/void-payment.md): Void a payment for a user - [Refund Payments](https://developers-ach.seamlesschex.com/reference/refund-payments.md) - [Create a Refund](https://developers-ach.seamlesschex.com/reference/create-a-refund.md) - [Recurring Payments](https://developers-ach.seamlesschex.com/reference/recurring-payments.md) - [Send a Recurring Payment](https://developers-ach.seamlesschex.com/reference/send-recurring-payment.md): Send a recurring payment to a customer based on customer parameters. - [Create Recurring Invoice](https://developers-ach.seamlesschex.com/reference/create-recurring-invoice.md): Generate a recurring invoice that is sent to your customer. - [Get Single Recurring Payment](https://developers-ach.seamlesschex.com/reference/retrieve-single-recurring-payment.md): Retrieve the specified invoice for a user - [Get Multiple Recurring Payments](https://developers-ach.seamlesschex.com/reference/retrieve-multiple-recurring-payments.md): Retrieve a list of recurring payments you have set up. Recurring payments are transactions initiated from your merchant bank account to a customer on a regular basis. - [Void Recurring Payment](https://developers-ach.seamlesschex.com/reference/void-subscription.md): Cancel the specified recurring payment for a user - [Retrieve Single Notification Link](https://developers-ach.seamlesschex.com/reference/retrieve-single-notification-link.md) - [Retrieve Multiple Notification Links](https://developers-ach.seamlesschex.com/reference/retrieve-multiple-notification-links.md): Return checks links for a user - [Resend Notification Link](https://developers-ach.seamlesschex.com/reference/resend-notification-link.md): Resend link for a user - [Void Notification Link](https://developers-ach.seamlesschex.com/reference/void-notification-link.md): Void link for a user - [Get Account Information](https://developers-ach.seamlesschex.com/reference/get-account-information.md): Retrieve your merchant account information using the following endpoint. The response will include your user_id. Use your user_id to add a bank account to your account and more. - [Add Signature to Account](https://developers-ach.seamlesschex.com/reference/add-signature-to-account.md): Add business signature to your Merchant Account. - [Overview](https://developers-ach.seamlesschex.com/reference/webhooks.md): Seamless ACH webhooks let your application receive real-time updates about key events—like payments being created, processed, or refunded. These updates are delivered via HTTP POST to a URL you configure. - [Set Webhook URL](https://developers-ach.seamlesschex.com/reference/setup-webhook-url.md): Use this endpoint to register or update the webhook URL where you want Seamless ACH to send real-time event notifications. Webhooks allow your system to automatically receive updates on payment statuses, customer activity, funding source verification, and more. - [Webhook Endpoint](https://developers-ach.seamlesschex.com/reference/setting-up-a-webhook-url.md) - [Payment Webhooks](https://developers-ach.seamlesschex.com/reference/payment-webhooks.md): Seamless ACH sends webhook events when a transaction status changes. Use these events to track transaction progress, handle failures, or trigger refunds and customer updates in real time. - [Customer Webhooks](https://developers-ach.seamlesschex.com/reference/customer-webhooks.md): Seamless ACH sends webhook events when customer profiles are created or updated. These events let your application stay in sync with changes to customer records in real time. - [Funding Source Webhooks](https://developers-ach.seamlesschex.com/reference/funding-sources-webhooks.md): Seamless ACH sends real-time webhook notifications when a customer's bank account (funding source) is added, updated, verified, or removed. These events help your system stay up to date with key changes to funding sources. - [Partner Webhooks](https://developers-ach.seamlesschex.com/reference/partner-webhooks.md): Seamless ACH sends partner webhook events to notify your system of key updates during the merchant onboarding and lifecycle process. These events help you track application progress, approval status, and account changes in real time. - [Bank Account Re-Sync Webhook](https://developers-ach.seamlesschex.com/reference/bank-account-resync-webhook.md): If the link between Seamless ACH and Plaid is interrupted, it's necessary to re-establish the bank account connection, a step required for both customers and merchants.\n\nUsers will be alerted through a blue notification bar at the top of their screen, guiding them to reconnect their bank account.\n\nTo assist in this process, we've introduced a webhook event that triggers when a customer's bank account needs reconnection. This event generates a unique, customer-specific link. By clicking on this link, customers are directed to authenticate with Plaid again, ensuring a seamless reconnection process. ## Pages - [Payments](https://developers-ach.seamlesschex.com/page/test.md)