Check Payments
Accept payments from paper checks using Check21 or check conversion
Check payments enable you to accept traditional paper checks through digital channels. Payload supports two methods for check processing: Check21 for remote deposit with check images, and check conversion for recording in-person check payments. Both methods convert physical checks into electronic transactions while maintaining the audit trail and compliance requirements of traditional check processing.
US Only: Check payments are only supported for US-based payments in USD. For electronic bank account payments that don't involve physical checks, see Bank Account Payment Methods or Plaid.
Return Risk: Checks can be returned for insufficient funds, stopped payment, closed accounts, or other reasons. Unlike card payments, returns can occur weeks after initial deposit. Implement risk management strategies for high-value or suspicious checks.
Prerequisites
Before accepting check payments, understand how bank account payment methods work.
Check Payment Methods
Payload supports two distinct check payment methods depending on your use case.
Check21 - Remote Deposit Capture
Check21 enables customers to submit check payments remotely by uploading images of the front and back of their check. The images are processed using OCR (Optical Character Recognition) to extract routing number, account number, check number, and amount. This is ideal for remote payments where the customer physically possesses the check but cannot deposit it in person.
Use cases:
- Remote bill payment by mail
- Online check submission portals
- Mobile check deposit alternatives
Requirements:
- Clear images of check front and back
- Check must be payable to your business
- Physical possession of the check
- Images in JPG, PNG, or PDF format
Check Conversion - In-Person and Mail Payments
Check conversion allows you to record check payments received in-person at manned locations (retail, bill pay counters) or by mail by capturing the check details without uploading images. This is ideal when you receive physical checks at retail locations, lockbox locations, or through mail, and need to record the transaction in Payload for tracking and reconciliation purposes.
Use cases:
- Bill pay counter transactions
- Lockbox location payments
- Mail-received check recording
- Retail location check payments
Requirements:
- Check received in-person at manned location or by U.S. mail
- Check number for reference
- Provide advance written notice to customers that checks will be converted to electronic transactions
- Retain check images or copies for 2 years from settlement date
- Destroy physical checks within 14 days of settlement
- Provide opt-out procedures for customers who do not authorize conversion
- Include check serial number in transaction records
Limitations:
- Maximum payment amount: $25,000
- Not available for certified checks
Method Selection: Use Check21 when customers submit check images remotely online. Use check conversion when you receive physical checks in-person at retail/bill pay locations or by mail and need to track them in Payload. For payments above $25,000 or certified checks, use Check21 instead.
When to Use Check Payments
Check payments are ideal for specific business scenarios where electronic payments are not yet universal and they are still accepting checks. Using Payload you can unifiy capture of all forms of payment.
Common use cases
- Rent and Lease Payments: Property management accepting monthly rent
- Earnest Money Deposit: Good-faith deposit after a home purchase agreement is signed
- Insurance Premiums: Policy payments and claim disbursements
- Utility Bills: Water, electric, gas, and other service payments
- Professional Services: Legal, accounting, consulting invoices
Check21 Implementation
Accept Check21 remote deposit payments using Payment Form or direct API integration.
Check21 with Payment Form
Use Check21 with the Payment Form SDK to accept remote check deposits via image upload.
This example shows:
Backend:
- Create payment form intent with
type: 'payment_form' - Set
payment_form.source: 'check'to enable check image upload fields - Specify expected payment amount
- Return client token for form initialization
Frontend:
- HTML form with two file inputs for check front and back images
-
pl-inputattribute withname="check_front[file]"andname="check_back[file]" - Accept image formats: JPG, PNG, PDF
- Initialize form with client token from backend
- Handle
processedevent for successful check submission - Handle
errorevent for processing failures
Check21 with API
Submit check payments directly via API by providing base64-encoded check images.
This example shows API-based check processing:
- Encode Images: Convert check images to base64 data URIs
- Transaction Data: Set
type: 'payment'andsource: 'check' - Amount Validation: Optionally provide amount for OCR comparison
- Receiver Account: Specify
receiver.account_idfor processing account receiving funds - Check Images: Include check images in
check_imagesobject withfrontandbackproperties as base64 data URIs
Image Format:
Data URI format
front_image = "data:image/jpeg;base64,/9j/4AAQSkZJRg..."
back_image = "data:image/png;base64,iVBORw0KGgoAAAANS..."OCR Processing
When you submit check images, Payload's OCR engine extracts:
- Routing Number: Bank routing/ABA number from MICR line
- Account Number: Customer account number from MICR line
- Check Number: Check sequence number from MICR line
- Amount: Written and numeric amount (if provided, used for validation)
- Date: Check date for verification
- Payee: To whom the check is made out
Amount Validation: If you provide an amount in the transaction request, it's compared
against the OCR-extracted amount. If they don't match within a reasonable tolerance, the
transaction is flagged for review.
OCR Accuracy: OCR is highly accurate but not perfect. Review flagged transactions and implement manual review workflows for important payments. Monitor OCR confidence scores in transaction metadata.
Image Requirements
Check images must meet these requirements for successful OCR processing:
Format:
- Supported: JPG, PNG, PDF
- File size: Under 10MB per image
- Resolution: Minimum 300 DPI recommended
- Color or grayscale (color preferred)
Quality:
- Clear, in-focus images
- All four corners visible
- No glare or shadows
- Check must be flat (not folded)
- Text must be readable
Content:
- MICR line clearly visible on front
- Signature visible on front
- All endorsements visible on back
- Date and amount legible
Mobile Capture: For mobile applications, provide guidance to customers on taking quality check photos. Consider implementing image quality validation before upload to reduce processing failures.
Check Conversion
Record check payments received in-person or by mail without uploading images.
Check conversion is simpler than Check21:
- Set Source: Use
source: 'check'to indicate check payment - Bank Account Details: Manually enter routing number and account number from the check in
sender.method.bank_account - Account Holder: Include the account holder name from the check in
sender.method.account_holder - Check Number: Set
order_numberto the physical check number for tracking - Amount: Provide the check amount (maximum $25,000)
- No Images: Check images are not required or uploaded
- Manual Processing: You handle physical check deposit separately
Workflow:
- Provide advance written notice to customers that checks will be converted to electronic transactions
- Receive physical check from customer in-person at manned location or by U.S. mail
- Create check conversion transaction in Payload for tracking
- Retain check image or copy for 2 years
- Deposit physical check at your bank
- Destroy physical check within 14 days of settlement
- Reconcile when check clears
This approach tracks check payments in Payload alongside other payment types while you handle physical check deposit through normal banking channels. Use for checks received at point-of-sale, bill pay counters, lockbox locations, or by mail.
Check Conversion Limitations: Check conversion is limited to payments under $25,000 and does not support certified checks. For higher amounts or certified checks, use Check21 with image upload instead.
Compliance Requirements: Check conversion requires advance written notice to customers, retention of check copies for 2 years, destruction of physical checks within 14 days of settlement, and opt-out procedures for customers. Only use for checks received in-person at manned locations (retail, bill pay counters) or by U.S. mail. Cannot be used for online or phone payments.
Reconciliation: Link the order_number (check number) to your bank deposit records for
easy reconciliation. Use the transaction ID to track payment status in your system.
Troubleshooting
Common issues and solutions when processing check payments.
Poor Image Quality
Symptoms: OCR extraction fails or produces incorrect data.
Solutions:
- Provide guidance on taking quality photos
- Require minimum resolution and file size
- Reject blurry or partially visible checks
- Offer re-upload option with improved guidance
Amount Mismatch
Symptoms: OCR-extracted amount differs from provided amount.
Solutions:
- Review check image manually to verify correct amount
- Check for unclear handwriting or printing
- Verify numeric and written amounts match on check
- Flag for manual review if discrepancy is significant
- Update amount if OCR is clearly incorrect
Schema Reference
The following fields are available when creating check payment transactions. For complete API reference, see Transactions API Reference.
Check21 Transaction Configuration
typepayment, deposit, withdraw, refund, payoutsourceapi, keyed, swipe, emv, emv_quickchip, nfc, googlepay, applepay, checkamountreceiveraccountAccountaccount_id ID of Account^acct_[A-Za-z0-9]+$methodPaymentMethodmethod_id ID of PaymentMethod^pm_[A-Za-z0-9]+$check_imagesbackCheckBackfrontCheckFrontorder_numberdescriptionNext Steps
Enhance your check payment processing implementation
Handle Check Returns
Monitor and handle returned checks to manage insufficient funds, stopped payments, and closed accounts that can occur weeks after initial deposit.
Monitor Transaction Status
Track transaction status to monitor check clearing timelines and identify issues early in the processing cycle.
Automate with Webhooks
Subscribe to webhook notifications to receive real-time updates for check processing events, returns, and status changes.
Related articles
- Bank Account Payment Methods - Electronic bank account payments
- Payment Form - Multi-method payment forms
- Payment API - Process payments via API
- Bank Rejects - Handling returned and rejected payments
- Webhook Events - Automate payment workflows
- Transactions API Reference - Complete transaction API reference