The Payment System allows clients to pay developers after completing projects. It supports multiple payment methods and provides a complete payment tracking system.
- Stripe (Credit Card): Automated payment processing
- PayPal: PayPal wallet payments
- Bank Transfer: Manual bank transfer with instructions
- Cryptocurrency: Crypto payments with wallet addresses
- Pending: Payment initiated but not completed
- Processing: Payment is being processed
- Completed: Payment successfully completed
- Failed: Payment failed
- Refunded: Payment was refunded
- id (Primary Key)
- project_id (Foreign Key to projects)
- client_id (Foreign Key to users)
- developer_id (Foreign Key to users)
- amount (Decimal)
- payment_method (Enum: stripe, paypal, bank_transfer, crypto)
- transaction_id (String)
- status (Enum: pending, processing, completed, failed, refunded)
- payment_details (JSON)
- paid_at (Timestamp)
- created_at, updated_atGET /projects/{project}/payments/create- Create payment formPOST /projects/{project}/payments- Process paymentGET /my-payments- View payments made by client
GET /received-payments- View payments received by developerPATCH /payments/{payment}/complete- Mark payment as completed
GET /payments- View all payments (role-based)GET /payments/{payment}- View specific payment details
- Complete a Project: Mark project as completed in hires page
- Make Payment: Click "Make Payment" button for completed projects
- Choose Method: Select payment method (Stripe, PayPal, Bank Transfer, Crypto)
- Process Payment: Complete the payment process
- Track Payments: View payment history in "My Payments"
- Receive Payments: View incoming payments in "Received Payments"
- Manual Completion: Mark bank transfer/crypto payments as completed
- Track Earnings: View total earnings and payment history
- Payment is processed immediately
- Status automatically updated to "completed"
- Transaction ID generated
- Payment instructions provided
- Status remains "pending" until manually marked complete
- Developer can mark as completed when payment received
- Authorization checks for all payment operations
- Only project owners can make payments
- Only developers can mark their payments as completed
- Payment details stored securely
- Project Completion: Triggers payment requirement
- Review System: Can be completed after payment
- Dashboard: Payment statistics and quick access
- Hires Page: Payment buttons for completed projects
- Real payment gateway integration (Stripe API)
- Payment dispute resolution
- Automated payment reminders
- Payment analytics and reporting
- Multi-currency support
- Escrow system for large payments