Plaid Instant Verification

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

  1. Create (or lookup) your Customer
    Use the Create a Customer endpoint and grab the returned user_id.

  2. 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
    
  3. Send the Link to Your Customer
    Email, SMS, or embed it behind a “Connect Bank Account” button.

  4. Listen for Verification
    Watch your webhook endpoint for a funding source event with status Verified.

  5. 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.