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
Plaid Instant Verification
Instantly add and verify a customer’s bank account as a Paynote funding source using Plaid’s secure login flow. Once verified, you can immediately initiate ACH debits, credits, or subscriptions.
Prerequisites
- Customer: you must already have a customer in Paynote
👉 Create a Customer - Plaid public key: your live or test key from Plaid
- Webhook listener: set up to receive funding-source events
👉 Funding Source Webhooks
Quick Start
-
Create (or lookup) your Customer
Use the Create a Customer endpoint and grab the returneduser_id
. -
Build the Plaid Link URL
https://paynote.seamlesschex.com/#/bank-account/{PUBLIC_KEY}/{USER_ID}?successUrl={SUCCESS_URL}&cancelUrl={CANCEL_URL}
- Replace
{PUBLIC_KEY}
with your Plaid key - Replace
{USER_ID}
with the ID from step 1 - Set
successUrl
/cancelUrl
to wherever you want customers sent
Production
https://paynote.seamlesschex.com/#/bank-account/pk_live_…/usr_abc123?successUrl=https://yourapp.com/success&cancelUrl=https://yourapp.com/cancel
Sandbox
https://paynote-sandbox.seamlesschex.com/#/bank-account/pk_test_…/usr_abc123?successUrl=https://yourapp.com/success&cancelUrl=https://yourapp.com/cancel
- Replace
-
Send the Link to Your Customer
Email, SMS, or embed it behind a “Connect Bank Account” button. -
Listen for Verification
Watch your webhook endpoint for a funding source event with statusVerified
. -
Start Transactions
Once verified you can call any of:
Embedding in an Iframe (Optional)
If you want an in-page modal:
<dialog id="bank_modal"
style="width:100%;height:100%;border:none;position:fixed;inset:0;
background:rgba(0,0,0,0.6);display:none;z-index:999;">
<iframe id="bank_iframe"
src="https://paynote.seamlesschex.com/#/bank-account/{PUBLIC_KEY}/{USER_ID}"
style="position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);
border:none;border-radius:8px;overflow:auto;
width:360px;height:630px;">
</iframe>
</dialog>
Then in your JS:
function onSuccess(data) {
console.log('Bank linked:', data);
// e.g. enable “Make a Payment” button
}
function onError(data) {
console.error('Link failed:', data);
// e.g. show an error message
}
window.addEventListener('message', event => {
if (event.data.event === 'callSuccessFunction') onSuccess(event.data);
if (event.data.event === 'callErrorFunction') onError(event.data);
});
Summary
- Step 1: Create customer → get
user_id
- Step 2: Build Plaid link URL
- Step 3: Send link or show in iframe
- Step 4: Wait for “Verified” webhook
- Step 5: Process ACH debits, credits, or subscriptions immediately
This flow eliminates manual verification and gets your customers up and running with ACH in minutes.