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 Authorization 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 Paynote Sandbox Public Key for testing or Live Public Key in production - Replace
{USER_ID}with the ID from step 1 - Set
successUrl/cancelUrlto 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/cancelSandbox
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: 412px;height: 721px;">
</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
}
function onClose(data) {
console.log( 'Ifame closed', data )
// There should be your code here that will close the iframe.
}
window.addEventListener('message', event => {
if (event.data.event === 'callSuccessFunction') onSuccess(event.data);
if (event.data.event === 'callErrorFunction') onError(event.data);
if (event.data.event === 'callCloseFunction') onClose(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.
Do not initiate payments until you receive funding-source.verified.
See Funding Source Webhooks → for full payload details.