=== Seamless ACH ===
Description: Try Seamless ACH, the easiest way to send and receive bank transfers from clients or vendors. Instant bank verification. Get started today.
Author: SeamlessChex
Author URI: https://www.seamlesschex.com
Contributors: seamlesschex
Tags: ACH, payment, pay, woocommerce payment, seamlessach
Version: 1.0.0
Tested up to: 7.0
Requires at least: 5.0
Stable tag: 1.0.0
Requires PHP: 7.4
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Try Seamless ACH, the easiest way to send and receive bank transfers from clients or vendors. Instant bank verification. Get started today.

== Description ==

Enhance your WooCommerce store with **Seamless ACH** – the ultimate plugin for secure and streamlined Plaid-Verified ACH payments.

Seamless ACH integrates seamlessly with WooCommerce and leverages Plaid's user-friendly bank verification, enabling customers to pay easily using their online banking credentials.

= Key Features =

* <strong>Secure ACH Payments</strong>: Accept U.S. bank payments with Plaid's robust verification, ensuring every transaction is safe and secure.
* <strong>Plaid Integration</strong>: Built-in Plaid support adds an extra layer of security and trust by verifying customers' bank accounts.
* <strong>Streamlined Checkout</strong>: Simplify the checkout process and reduce cart abandonment. Customers log in to their bank accounts seamlessly through Plaid's secure interface.
* <strong>Automated Payment Management</strong>: Automate payment processing and subscription management, eliminating manual tracking.
* <strong>Recurring Payments & Subscriptions</strong>: Set up recurring payments to ensure steady, predictable revenue.
* <strong>Authorization-Only Capture</strong>: Need to charge customers later? Capture their bank details at checkout for future payments – ideal for free trials or deferred billing.
* <strong>Quick Refunds</strong>: Effortlessly process refunds to maintain customer satisfaction.

With Seamless ACH, you can improve user experience, boost checkout conversions, and streamline payment management. Start simplifying ACH payments today!

= Setup Instructions =

Setting up the Seamless ACH plugin is quick and easy:

<ol>
	<li><strong>Create a Seamless ACH Account:</strong><br />Don't have an <a href = "https://dashboard.seamlesschex.com/ach/" target="_blank">account</a>? Sign up <a href = "https://www.seamlesschex.com/sign-up-seamlessach" target="_blank">here</a>. It's free, fast, and no credit card is required.</li>

	<li><strong>Install the Plugin</strong><br />

	<ol>
		<li>Log in to your WordPress Admin Dashboard.</li>
		<li>Navigate to <strong>Plugins > Add New</strong>.</li>
	</ol>

	Choose one of the following installation methods:<br />

	<strong>Option 1 (Recommended): Install from the WordPress Plugin Directory</strong>
	<ol>
		<li>Enter <strong>Seamless ACH</strong> in the plugin search field.</li>
		<li>Locate the Seamless ACH plugin in the search results.</li>
		<li>Click <strong>Install Now</strong>.</li>
		<li>Once the installation is complete, click <strong>Activate</strong>.</li>
	</ol>

	<strong>Option 2: Manual Installation</strong>
	<ol>
		<li>Download the latest version — the <a href = "https://downloads.wordpress.org/plugin/seamless-ach.zip" target="_blank">seamless-ach.zip</a> file — from the official SeamlessChex WordPress plugin page.</li>
		<li>On the Add Plugins page, click <strong>Upload Plugin</strong>.</li>
		<li>Select the downloaded <code>seamless-ach.zip</code> file.</li>
		<li>Click <strong>Install Now</strong>.</li>
		<li>Once the installation is complete, click <strong>Activate</strong>.</li>
	</ol>
	</li>

	<li><strong>Configure the Plugin</strong><br />

	<ul>
		<li>After activation, navigate to the Seamless ACH plugin settings within your administrative panel.</li>
		<li>Enter your Seamless ACH account details, including API keys, which you can find in your Seamless ACH account under settings in the <a href = "https://dashboard.seamlesschex.com/ach/#/account/api" target="_blank">API tab</a>. Make sure you are <strong>using the correct API keys</strong> and have selected the appropriate mode (<strong>Sandbox</strong> or <strong>Live</strong>).
		</li>
		<li>Configure the plugin settings according to your preferences, such as <a href = "https://dashboard.seamlesschex.com/ach/#/account" target="_blank">webhook URL</a>, payment method name, payment frequency, capture auth and payment method description.</li>
	    <li>For Webhook option (<strong>easy integration</strong>), in Update Order Statuses, select Weebhook and then go to your <a href = "https://dashboard.seamlesschex.com/ach/#/account" target="_blank">Account Settings</a> in Seamless ACH dashboard -> <a href = "https://dashboard.seamlesschex.com/ach/#/account/api" target="_blank">API tab</a> -> Paste in the 'Webhook URL' field and click 'save'.</li>
	    <li>You can also turn auto-updates off and do it manually by clicking 'Update Seamless ACH Status' within the WooCommerce 'Orders' page.</li>
	    <li><strong>Default Order Pending Status:</strong><br />
	    	<strong>ACH In-Process:</strong><br />
	    	-This is a custom Seamless ACH status. When a payment is completed by the customer, it will be set to "ACH In-Process." After processing, it will change to either "Failed" or "Paid."<br />
	    	<strong>On-Hold:</strong><br />
	    	-By default, WooCommerce sets all payments to "On-Hold" after initiation. From this status, payments will move to either "Failed" or "Paid."
	    </li>
	</ul>
	</li>
	<li><strong>Secret Key</strong><br />

	<ul>
		<li><strong>Sandbox Mode:</strong><br />
		 - Starts with the prefix <strong>sk_test_</strong>.<br />
		 - Used for testing the API in a sandbox environment.<br />
		 - Allows performing test transactions, creating test data, and simulating various scenarios.<br />
		 - Must be stored securely as it provides access to the API, but only in a test environment.
		</li>
		<li><strong>Live Mode:</strong><br />
		 - Starts with the prefix <strong>sk_</strong>.<br />
		 - Used for performing real operations in a production environment.<br />
		 - Provides full access to the API for working with real data and transactions.<br />
		 - Must be handled with extreme caution, as its compromise can lead to data leaks or financial losses.
		</li>
		<li><strong>Key Differences:</strong><br />
			<ol>
			  <li><strong>Prefixes:</strong><br />
			  	- Sandbox: <strong>sk_test_</strong> (secret).<br />
			  	- Live: <strong>sk_</strong> (secret).
			  </li>
			  <li><strong>Purpose:</strong><br />
			  	- Sandbox keys are used for testing and development.<br />
			  	- Live keys are used for real operations.
			  </li>
			  <li><strong>Security:</strong><br />
			  	- Sandbox keys are used for testing and development.<br />
			  	- Sandbox keys are less critical as they only work with test data.
			  </li>
			  <li><strong>Access:</strong><br />
			  	- Secret keys must only be used on the server side and should never be exposed to the client.
			  </li>
			</ol>
		 
		</li>
	</ul>
	</li>

	<li><strong>Whitelist Seamless ACH IPs and Domains with your security solutions</strong><br />
	<ul>
		<li>Seamless ACH Domain: <a href = "https://api.seamlesschex.com/ach/" target="_blank">https://api.seamlesschex.com/ach/</a></li>
	    <li>Seamless ACH IPs: 54.91.177.147, 35.168.136.199, 52.86.225.5, 52.54.42.180</li>
	</ul>
	</li>

	<li><strong>Enable Seamless ACH as a Payment Method</strong><br />
	<ul>
		<li>Go to <strong>WooCommerce > Settings > Payments</strong>.</li>
	    <li>Enable <strong>Seamless ACH</strong> as a payment method.</li>
	</ul>
	</li>

	<li><strong>Test the Installation</strong><br />
	<ul>
		<li>Create a test transaction via <strong>Sandbox (test)</strong> to ensure the plugin is working correctly.</li>
	    <li>Check if the transaction appears in your Seamless ACH dashboard and that all notifications are working as expected.</li>
	</ul>
	</li>

	<li><strong>Go Live</strong><br />
	<ul>
		<li>Once you've confirmed everything is working correctly with the test transaction, you can start using Seamless ACH for live transactions.</li>
	</ul>
	</li>
</ol>

That's it! Seamless ACH will now appear as a payment option at checkout.

Your WooCommerce store is now ready to accept Seamless ACH ACH payments! All transactions and received payments can be viewed in your <a href = "https://dashboard.seamlesschex.com/ach" target="_blank">Seamless ACH Dashboard</a>.

= External Services =

The Seamless ACH plugin integrates with **Plaid**, a trusted leader in bank verification services and a long-standing partner of Seamless ACH.

**How It Works**:

* During checkout, customers interact with a secure Plaid iframe to log into their bank account, select their preferred account, and authorize the payment.
* Plaid handles all bank account verification and authentication. Seamless ACH **does not store any bank account details**.

For more information, please review <a href = "https://plaid.com/legal/#end-user-services-agreement-us" target="_blank">Plaid's End User Services Agreement</a> and <a href = "https://plaid.com/legal/#end-user-privacy-policy" target="_blank">Privacy Policy</a>.

This plugin also connects to the **Seamless ACH API** (provided by SeamlessChex, the same company that publishes this plugin), which processes the ACH bank transfers themselves: creating and authorizing transactions, capturing/refunding payments, and syncing payment status back to the WooCommerce order.

* The order amount and currency, the WooCommerce order ID, and the bank account token obtained from Plaid (public token / account ID) are sent to the Seamless ACH API when a customer places an order, and when a merchant refunds or cancels an order.
* Order status updates are retrieved from the Seamless ACH API either via a webhook call from Seamless ACH to the store, or via a periodic status check initiated by the store, depending on the "Update Order Statuses" setting.
* API documentation: <a href = "https://developers-ach.seamlesschex.com/" target="_blank">https://developers-ach.seamlesschex.com/</a>
* Terms of Service: <a href = "https://www.seamlesschex.com/terms-of-service" target="_blank">https://www.seamlesschex.com/terms-of-service</a>
* Privacy Policy: <a href = "https://www.seamlesschex.com/privacy-policy" target="_blank">https://www.seamlesschex.com/privacy-policy</a>

**Enhance your payment suite today with Seamless ACH and experience the simplicity of Plaid-verified ACH payments.**


== Installation ==

= Install the Plugin =

1. Log in to your WordPress Admin Dashboard.
2. Navigate to **Plugins > Add New**.

Choose one of the following installation methods:

**Option 1 (Recommended): Install from the WordPress Plugin Directory**

1. Enter **Seamless ACH** in the plugin search field.
2. Locate the Seamless ACH plugin in the search results.
3. Click **Install Now**.
4. Once the installation is complete, click **Activate**.

**Option 2: Manual Installation**

1. Download the latest version — the <a href = "https://downloads.wordpress.org/plugin/seamless-ach.zip" target="_blank">seamless-ach.zip</a> file — from the official SeamlessChex WordPress plugin page.
2. On the Add Plugins page, click **Upload Plugin**.
3. Select the downloaded `seamless-ach.zip` file.
4. Click **Install Now**.
5. Once the installation is complete, click **Activate**.


== Frequently Asked Questions ==

= Do I need a US bank account? =

Yes, a US business checking account is required for all Seamless ACH accounts.

= What documents are required? =

EIN Letter, Drivers License, Last month's bank statement, Voided Check.

= When will I get my funds? =

This is dependent on the <a href = "https://developers-ach.seamlesschex.com/" target="_blank">funding speed</a> enabled on your merchant account. With same-day ACH, you'll receive funds within 2 business days, and with standard ACH you'll receive funds within 4 business days.

= How can I process a refund? =

You can initiate a refund once the transaction is paid.
You can cancel a transaction as long as the payment has not yet been exported. The timing of when the payment is exported depends on the funding speed selected (standard or same-day). You can check the *Exported By* timelines <a href = "https://developers-ach.seamlesschex.com/" target="_blank">here</a>.

= How can I cancel a transaction? =

You can cancel a transaction as long as the payment has not yet been exported. The timing of when the payment is exported depends on the transaction type (debit/credit) and the funding speed selected (standard or same-day). You can check the *Exported By* timelines <a href = "https://developers-ach.seamlesschex.com/" target="_blank">here</a>. RTP credits cannot be cancelled.

== Screenshots ==

1. Installed Seamless ACH plugin
2. General settings
3. Activate additional payment methods with just a few clicks
4. New payment method on the checkout page
5. Seamless ACH API Secret Keys

== Changelog ==

= 1.0.0 =

*   Initial release of Seamless ACH for WooCommerce.
*   Plaid-verified ACH bank payments for WooCommerce checkout (classic and Blocks).
*   On activation, imports settings from a previously installed SeamlessChex ACH gateway and keeps existing orders working (status sync and refunds).
