This project is an open-source general-purpose escrow agent designed to facilitate secure transactions between buyers and sellers. The escrow agent ensures that funds are only released when the buyer confirms that the agreed-upon services or goods have been delivered. The platform is built to support multiple payment gateways with a flexible, plug-and-play architecture, making it easy for contributors to add their preferred gateways.
-
Escrow Software
Manages the escrow process between buyers and sellers.
Holds and releases funds based on buyer confirmation. -
Payment Gateway Integration
Supports multiple payment gateways with a plug-and-play architecture.
Contributors can add additional payment gateways as needed. -
Conflict Resolution Support
Basic documentation and reporting to manage conflicts.
Stores requirement specifications, agreements, and related documents for conflict escalation.
Conflict resolution can be outsourced to a specialized operational department (outside the scope of this project).
-
Escrow Flow
- Buyer agrees to purchase.
- Escrow Agent holds funds.
- Seller delivers goods/services.
- Buyer confirms receipt, and Escrow Agent releases funds.
-
Conflict Management
- Collection of requirement specifications from the buyer.
- Seller's agreement on the specifications.
- Storage of agreement documents in S3 buckets.
- In case of conflict, the service holds all relevant documents for escalation.
-
Extensibility
- The platform is designed for flexibility, allowing the integration of various payment gateways.
- Goal: Build a comprehensive solution that contributors can extend, particularly for specific gateways.
docker compose up --build -d
curl -X POST http://localhost:8080/signup \
-H "Content-Type: application/json" \
-d '{
"username": "testuser",
"password": "testpassword"
}'
curl -X POST http://localhost:8080/login \
-H "Content-Type: application/json" \
-d '{
"username": "testuser",
"password": "testpassword"
}'
curl -X POST http://localhost:8080/api/escrow \
-H "Content-Type: application/json" \
-H "Authorization: Bearer your-jwt-token" \
-d '{
"buyer_id": "buyer123",
"seller_id": "seller456",
"amount": 500.0,
"description": "Payment for services"
}'