- [WHMCS Payment gateway module for Stripe ACH by RoudiApp](#whmcs-payment-gateway-module-for-stripe-ach-by-roudiapp) - [Features](#features) - [Installation Instruction](#installation-instruction) - [Configuration](#configuration) - [Webhook Setup [this is a must]](#webhook-setup-this-is-a-must) - [Testing ACH Module](#testing-ach-module) - [Stripe ACH Payment Workflow](#stripe-ach-payment-workflow) - [Update user bank account](#update-user-bank-account) - [Troubleshooting](#troubleshooting) # WHMCS Payment gateway module for Stripe ACH by RoudiApp This is a native WHMCS Payment Gateway Module for Stripe ACH using stripe.js and PHP by RoudiApp.com. Latest Stripe PHP API is also used to finalise the charge process. Please make sure that you are using the latest version of WHMCS and Stripe API [Read below for setup]. # Features * Supports ACH payments with Individual and Company bank account. * Suitable for one time payments only [This will be enhanced to support recurring payment in feature]. * 100% PCI compliance. * Supports Full and Partial refund * Supports Webhook to automatically update invoice with pending charges and refunds [To receive refund updates via webhook, you must have WHMCS 7.2 and above. Please contact us for more information.]. * Supports Account Verification. * Supports future payments authorisation upon first verification. # Installation Instruction * **Please make sure that you have full backup from your existing installation and that a record is stored locally.** * Unzip your package and find the stripeXXX and callback folders (XXX represents the Stripe PHP API version). * Upload stripe6340 folder to ROOT/modules/gateways/ (ROOT represents your WHMCS installation folder). * Upload roudiappstripeach.php file to ROOT/modules/gateways * From callback folder find roudiappstripeach.php and roudiappstripeach_webhook.php files and upload to ROOT/modules/gateways/callback folder. * Install and configure your RoudiApp Stripe Checkout module from Admin menu > Setup > Payments > Payment Gateways * Find RoudiApp Stripe ACH module to install. # Configuration * Transaction Fee % and Transaction Fee Fix boxes are for calculating the transaction fee and will not add any surcharge. * This module is a Linked gateway module, WHMCS recommends following setup for smooth payment flow: [This will forward the user directly to invoice page to finalize payment] - From Setup > General Settings > Ordering Tab >  Auto Redirect on Checkout > select automatically send user to invoice page. [this is the second option] # Webhook Setup [this is a must] * Login to Stripe to create webhook and retrieve your Webhook Signing Secret key. * To create Webhook, from Stripe admin panel find API at the bottom of left hand side menu. * Click on Webhooks tab, then click on Add endpoint. * Provide the value for URL to be called as: https://domain.com/whmcs/modules/gateways/callback/roudiappstripeach_webhook.php * where "domain.com/whmcs" provides URL address to where whmcs is installed. * Make sure you are using the latest webhook version, labeled as latest. * For filter event, select the second option "Select types to send" and scroll down to find and check "charge.succeeded" and "charge.refund.updated" options. * Finalise this stage by clicking on add endpoint button. * Once added, you can retrieve the Webhook Signing Secret key by clicking on the webhook. and then click to reveal the key under Signing secret section. The key starts with "whsec_".You can find more information about webhooks from here: https://stripe.com/docs/webhooks#signatures * Authorization Text, a default text is provided for you to print on ACH form. This is for authorization purposes and to comply with ACH standards and regulations. # Testing ACH Module * You can mimic successful and failed ACH charges using the following bank account and routing numbers: - Routing number: 110000000 - Account number: 000123456789 (success), 000111111116 (failure upon use) * To mimic successful and failed bank account verifications, use these meaningful amounts: - [32, 45] (success) - [any other number combinations] (failure) # Stripe ACH Payment Workflow With Stripe, you can accept ACH payments in nearly the same way as you accept credit card payments, merely providing a verified bank account for a charge request. However, accepting bank accounts requires a slightly different initial workflow than accepting credit cards: * 1. Bank accounts must first be verified. - User provides Name, Routing number, account number and account type to complete the verification step. * 2. Bank accounts must be authorized for your use by the customer. - User bank account will be debited with two nominal charges. - Once the two charges appear on user bank statement, user then need to re-visit the invoice page to enter the two charges. - If this is successful, the user can start using their verified and authorized bank account to pay future invoices. - This is a one time process and only need to be repeated if one need to updated their bank account details with you. Once both steps have been taken for a bank account, it can mostly be used just like any other payment method. The two key differences between using bank accounts and credit cards are: * ACH payments take up to 5 business days to receive acknowledgment of their success or failure. Because of this, ACH payments take up to 7 business days to be reflected in your available Stripe balance. * You can only accept funds in USD and only from U.S. bank accounts. In addition, your account must have a U.S./USD bank account to accept ACH payments. # Update user bank account * Please note that client profile must have no prior credit card or gateway token. * To clean a client profile or reset their bank account details, follow these steps: - From whmcs admin, find the client you want to work on. - Under Client Informations block, click on credit card information link. - A window will popup, click on the Clear Details button. - Inform your customer that they can now proceed with setting up a new bank account details.) # Troubleshooting * To avoid any frustration, should you encounter any issue please take contact us first. We usually provide a very speedy reply. * We will need a user account with access to an invoice to investigate any issue. * You will also need to set the gateway to test mode in order for us to test your setup. * If you are seeing a blank page, please check the following link for MORE information: https://mostripe.com/whmcs/stripe-ach/faq.php