ACH Bank Transfer Payment
Applications take ACH bank transfer payments using the Square Web Payments SDK and the Payments API. This topic explains how to use the Payments API (CreatePayment endpoint) to accept ACH bank transfer payments.
The Square API platform manages the complexity of ACH payment processing. The Web Payments SDK uses Plaid for bank account verification. You do not need to have a Plaid account to process ACH payments. Square manages the entire bank account verification process and the ACH bank transfer.
Taking an ACH bank transfer payment is a two-step process:
Generate a payment token. When a buyer chooses ACH bank transfer as the payment method, the Web Payments SDK renders a Plaid UI to let the buyer provide bank account verification. After the bank account is verified, the SDK generates a payment token.
Charge the payment token. Your application makes a server-side
CreatePayment
call to charge the payment token. Thesource_id
field in the request holds the payment token.The following is an example
CreatePayment
request. It directs Square to charge $100 to the bank account identified by the payment token in thesource_id
field.Square processes the ACH payment and returns a Payment object in the response as shown:
Note the following response attributes:
The
source_type
isBANK_ACCOUNT
and thetransfer_type
isACH
.The payment
status
isPENDING
. When the transfer is complete, the status is updated toCOMPLETED
. If your application has subscribed to thepayment.updated
webhook event, it receives a notification when the transfer is complete.
Square provides an end-to-end sample application in GitHub. For more information, see the Web Payments SDK Quickstart sample project.
If you need more assistance, contact Developer Support or ask for help in the Developer Forums.