Link a customer’s bank account, verify it with micro-deposits, then start ACH transactions—all in one smooth flow.
Prerequisites
- Customer: you need their
user_id
in Paynote (via Create a Customer) - Webhooks: listener for funding-source events (e.g.
Pending
→Verified
) (docs.paynote.io)
Flow Overview
- Create Funding Source (Unverified)
- Send Micro-Deposits
- Verify Micro-Deposits
- (Optional) Hosted Verification Redirect
1. Create Funding Source (Unverified)
POST https://{env}-paynote.seamlesschex.com/v2/funding-source
Authorization: Bearer sk_{YOUR_KEY}
Content-Type: application/json
{
"user_id": "usr_abc123",
"routing_number": "021000021",
"account_number": "000123456789",
"account_type": "checking",
"nickname": "Main Checking"
}
- Returns
funding_source_id
with statusPending
(docs.paynote.io)
2. Send Micro-Deposits
POST https://{env}-paynote.seamlesschex.com/v2/funding-source/initiate/verification
Authorization: Bearer sk_{YOUR_KEY}
Content-Type: application/json
{
"funding_source_id": "fs_123abc"
}
- Sends two small deposits to the customer’s bank (arrive in 1–2 business days) (docs.paynote.io)
3. Verify Micro-Deposits
POST https://{env}-paynote.seamlesschex.com/v2/funding-source/verify
Authorization: Bearer sk_{YOUR_KEY}
Content-Type: application/json
{
"funding_source_id": "fs_123abc",
"amounts": [0.12, 0.15]
}
- Submit the exact deposit amounts → status updates to
Verified
(docs.paynote.io)
4. Hosted Verification Redirect (Optional)
Let customers enter amounts in a Paynote-hosted modal instead of your own UI:
https://paynote.seamlesschex.com/#/bank-account/{PUBLIC_KEY}/{USER_ID}/{FUNDING_SOURCE_ID}?successUrl={SUCCESS_URL}&cancelUrl={CANCEL_URL}
- Replace placeholders with your values
- Successful entry fires your webhook with status
Verified
(docs.paynote.io)
After Verification
Once your funding source is Verified
, you can immediately:
- Debit the account: Create a Direct Debit
- Credit the account: Create a Direct Credit
- Subscribe: Create a Subscription
Summary
- Link bank account → get
funding_source_id
- Send micro-deposits → wait for deposits
- Verify amounts → status becomes
Verified
- (Optional) Use hosted UI for deposit entry
This consolidated flow ensures only verified accounts get charged—and gives your customers a smooth ACH onboarding experience.