Payment Types
Rise B2B supports two main payment types:Individual Payments
Single payments to one recipient
Batch Payments
Multiple payments to multiple recipients in one transaction
Payment Flow
The Rise payment process follows a secure 3-step flow:1
Create Payment
Create payment and get typed data using POST /v2/payments
2
Sign with Wallet
Sign the typed data using your Web3 wallet
3
Execute Payment
Submit the signed data using PUT /v2/payments to execute on-chain
Payment Security
On-Chain Verification
All payments are verified and executed on the blockchain
Typed Data Signing
EIP-712 signatures prevent tampering and replay attacks
HTTPS Required
All API communications use encrypted HTTPS
Contract Validation
Verify contract addresses and chain IDs
API Endpoints
1. Create Payment
POST${this.baseUrl}/v2/payments
Creates a payment and returns EIP-712 typed data for signing.
2. Execute Payment
PUT${this.baseUrl}/v2/payments
Executes the payment using signed typed data.
3. Query Payments
GET${this.baseUrl}/v2/payments
Query payments for a team with optional filtering.
API Integration Example
Payment Data Structure
Payment Request
Query Parameters
Parameter | Type | Required | Description |
---|---|---|---|
team_nanoid | string | Yes | Team identifier |
state | string | No | Payment state filter (all , intent , scheduled , complete ) |
query_type | string | Yes | Query type (payable , receivable ) |
start_date | string | No | Start date for filtering (YYYY-MM-DD) |
end_date | string | No | End date for filtering (YYYY-MM-DD) |
recipient | string | No | Filter by specific recipient |
Payment Timing
Rise supports two payment timing options:Option | Description | Use Case |
---|---|---|
pay_now: true | Payment executes immediately | Instant payroll, urgent payments |
pay_now: false | Payment intent (scheduled) | Future payroll, scheduled payments |
Payment States
Payments go through several states during processing:State | Description | Next Actions |
---|---|---|
intent | Payment intent created | Sign and execute |
scheduled | Payment scheduled for future | Wait for execution time |
complete | Payment completed on blockchain | Payment successful |
removed | Payment cancelled or failed | Review and retry if needed |
Error Handling
Common payment errors and solutions:Error | Description | Solution |
---|---|---|
INSUFFICIENT_BALANCE | Not enough funds in entity balance | Add funds to the entity balance |
INVALID_SIGNATURE | Signature verification failed | Ensure correct wallet is signing |
EXPIRED_TYPED_DATA | Typed data has expired | Request fresh typed data |
INVALID_RECIPIENT | Recipient address is invalid | Verify recipient nanoid exists |
TEAM_ROLE_SETTINGS_NOT_FOUND | User not properly configured in team | Check team role settings |
Best Practices
Always review payment details before signing to prevent unauthorized transactions.
- Verify Recipients: Double-check recipient addresses and amounts
- Monitor Balances: Ensure sufficient funds before creating payments
- Track Status: Monitor payment status through the query endpoint
- Handle Errors: Implement proper error handling for failed payments
- Security: Use HTTPS and verify contract addresses
- Rate Limiting: Implement appropriate rate limiting for payment queries
- Wallet Security: Keep private keys secure and never expose them in client-side code
Related Resources
Payment Integration Guide
Complete payment integration examples
Web3 Integration
Wallet integration and signing
Entity Balance
Managing entity balances
Teams
Team payment permissions
Payment Precision: All payment amounts are specified in cents to maintain precision. Convert to decimal format only when displaying to users.