Overview
InventPay supports two types of payment requests, each designed for different use cases. Understanding when to use each type will help you create the best payment experience for your customers.Payment Types
Fixed Currency Payment
A Fixed Currency Payment generates an immediate payment address for a specific cryptocurrency. The customer must pay using that exact cryptocurrency. When to use:- You want to accept only a specific cryptocurrency
- You need an immediate payment address
- You’re integrating with a system that only supports one crypto type
- You want to minimize customer confusion by showing only one payment option
- Immediate wallet address:
0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb - Fixed amount in crypto:
29.99 USDT - Customer must pay with USDT on BEP20 network
Create Fixed Payment
View the Create Payment API endpoint
Multi-Currency Invoice
A Multi-Currency Invoice lets customers choose which cryptocurrency they want to pay with. InventPay displays conversion rates for all supported cryptocurrencies. When to use:- You want to maximize payment flexibility
- Your customers use different cryptocurrencies
- You want to increase conversion rates by offering choices
- You’re running a consumer-facing application
- Invoice URL with currency selector
- Conversion rates for: BTC, ETH, LTC, USDT_ERC20, USDT_BEP20
- Customer selects their preferred cryptocurrency
- Unique address generated after selection
Create Invoice
View the Create Invoice API endpoint
Payment Lifecycle
Every payment goes through a series of states from creation to completion:Payment States
PENDING
PENDING
Initial State: Payment is waiting for funds to arrive
- Payment address has been generated
- Customer needs to send cryptocurrency
- No funds received yet, or insufficient funds
- Awaiting blockchain confirmations
- Display payment address to customer
- Show QR code for mobile wallets
- Monitor for incoming transactions
COMPLETED
COMPLETED
Final State: Payment successfully received and confirmed - Full payment
amount received - Required confirmations reached - Funds available in your
balance - Order can be fulfilled Actions: - Fulfill the order - Send
confirmation to customer - Update your database
EXPIRED
EXPIRED
Final State: Payment window closed without receiving payment - Expiration
time reached - No payment or partial payment received - Payment address no
longer monitored Actions: - Cancel the order - Create new payment if
customer still wants to pay - Notify customer of expiration
FAILED
FAILED
Final State: Payment encountered an error
- Technical error during processing
- Invalid transaction detected
- Blockchain issues
- Contact support if error persists
- Create new payment for customer
Unique Payment Addresses
Every payment request generates a unique wallet address for security and tracking purposes.Benefits
Enhanced Security
Each address is used only once, preventing address reuse attacks
Easy Tracking
Instantly match incoming payments to specific orders
Privacy
Customers’ payment activity remains private and isolated
Auto-Reconciliation
Automatic payment matching eliminates manual reconciliation
How It Works
- Customer initiates checkout → You create a payment request
- InventPay generates unique address → Specific to this transaction
- Customer sends crypto → To the unique address
- InventPay monitors blockchain → Tracks confirmations in real-time
- Payment confirmed → Funds swept to your master wallet
Payment Expiration
All payments have an expiration time to prevent indefinite address monitoring.Default Expiration
- Fixed Payments: 30 minutes
- Invoices: 60 minutes
Custom Expiration
You can set custom expiration times between 5 and 1440 minutes (24 hours):Why Payments Expire
- Resource Management: Monitoring addresses indefinitely is resource-intensive
- Price Protection: Cryptocurrency prices fluctuate; expiration ensures rate accuracy
- Abandoned Carts: Prevents cluttering your system with abandoned payments
- Customer Experience: Creates urgency and reduces confusion
Partial Payments
InventPay detects when a customer sends less than the required amount.Underpayment Detection
If a customer sends less than 95% of the required amount:- Payment status becomes
PENDINGwithunderpaidflag - Webhook notification sent:
payment.underpaid - Remaining amount calculated and displayed
- Customer can send additional payment to same address
Handling Underpayments
1
Notify Customer
Inform them of the remaining amount needed
2
Allow Additional Payment
Same address can receive top-up payment before expiration
3
Set Deadline
Communicate expiration time clearly
4
Handle Expiration
If expired with underpayment, decide whether to accept partial payment or
refund
If a payment expires while underpaid, contact support to discuss refund or
manual completion options.
Overpayments
If a customer sends more than required, the entire amount is credited to your account. Example:- Required:
0.001 BTC - Customer sends:
0.0012 BTC - Result: Full
0.0012 BTCcredited to your balance
Overpayments are kept by the merchant. Consider your refund policy for
significant overpayments.
Blockchain Confirmations
Different cryptocurrencies require different confirmation counts before payment completion.| Cryptocurrency | Required Confirmations | Average Time |
|---|---|---|
| Bitcoin (BTC) | 3 confirmations | ~30 minutes |
| Ethereum (ETH) | 12 confirmations | ~3 minutes |
| Litecoin (LTC) | 6 confirmations | ~15 minutes |
| USDT (ERC-20) | 12 confirmations | ~3 minutes |
| USDT (BEP-20) | 15 confirmations | ~45 seconds |
Best Practices
Choose the Right Payment Type
Choose the Right Payment Type
- Use Fixed Payments for B2B or when you need a specific crypto
- Use Invoices for consumer applications to maximize flexibility
Set Appropriate Expiration Times
Set Appropriate Expiration Times
- Quick checkouts: 15-30 minutes - Normal purchases: 30-60 minutes - High-value B2B: 2-4 hours
Handle Edge Cases
Handle Edge Cases
- Plan for underpayments - Have a refund policy for overpayments - Handle expired payments gracefully
Use Webhooks
Use Webhooks
- Never poll for status updates - Implement real-time webhook notifications - Verify webhook signatures
Display Clear Instructions
Display Clear Instructions
- Show exact amount to send
- Display correct network (ERC-20 vs BEP-20)
- Include expiration timer
- Provide QR code for mobile wallets
Testing Payments
InventPay provides a test mode for development and testing.Test Mode Features
- Separate test API keys
- No real cryptocurrency transactions
- Simulate payment confirmations
- Test webhook deliveries
Get Test API Key
Get your test API key from the dashboard
