06 disputes
Disputes allow buyers and merchants to resolve payment conflicts. Funds remain in escrow until the dispute is resolved.
Buyer Protection
Every Stablix payment is protected. Buyers can open disputes using email verification - no wallet connection required. This is perfect for users who paid from centralized exchanges (Coinbase, Binance, etc.).
How to Open a Dispute
Option 1: Direct Link (Recommended)
Visit the dispute page for your specific invoice:
https://stablix.xyz/dispute/:invoiceIdYou'll need:
The invoice ID from your payment receipt
Access to the email associated with the invoice
Option 2: Through Merchant
If the merchant has integrated disputes, use their dispute flow.
Note: Disputes can only be opened while funds are still in escrow (during the buffer period). Once funds are released to the merchant, disputes are no longer available.
Dispute Lifecycle
Dispute Timeline
Merchant Response
3 days
Merchant has 3 days to respond with counter-evidence
Admin Review
Up to 14 days
Stablix team reviews all evidence and makes a decision
Resolution
Immediate
Decision executed on blockchain, funds distributed
Email Verification Flow
Buyers verify their identity using a magic code sent to their email. This allows users who paid from CEX wallets to open disputes without connecting a wallet.
Step 1: Request Verification Code
The buyer enters the email address associated with the invoice. A 6-digit verification code is sent to that email.
POST /dispute/buyer/request-code
Request Body:
Response:
Security:
Code expires in 10 minutes
Email must match the invoice customer email
Rate limited to 3 requests per hour per IP
Rate limited to 5 requests per hour per email
Errors:
400- Invalid email format401- Email doesn't match invoice404- Invoice not found429- Too many requests (rate limit exceeded)
Step 2: Open Dispute with Code
After receiving the verification code, the buyer submits their dispute along with the code for verification.
POST /dispute/buyer/open-with-code
Request (JSON):
Request (multipart/form-data with file):
Parameters:
invoice_id
string
Yes
The invoice to dispute
code
string
Yes
6-digit verification code from email
reason
string
Yes
Dispute reason (see reason codes below)
description
string
Yes
Detailed explanation (min 20 characters)
evidence
file
No
Supporting file (JPG/PNG/PDF, max 5MB)
Reason Codes:
not_received
Item/Service Not Received
not_as_described
Item/Service Not as Described
duplicate_payment
Duplicate Payment
unauthorized
Unauthorized Transaction
quality_issues
Quality Issues
other
Other
Response:
Success Response Details:
dispute_id- Unique dispute identifiertx_hash- Blockchain transaction hash (proof of dispute opening)deadlines- Important dates for the dispute processstatus- Current dispute status (pending_merchant)
Blockchain Integration:
The dispute is automatically recorded on the blockchain
The platform wallet signs the transaction (no wallet connection needed)
Transaction typically takes 5-10 seconds
Provides transparent, immutable proof of the dispute
Errors:
400- Invalid code or missing required fields401- Code expired or invalid (codes expire in 10 minutes)404- Invoice not found409- Dispute already exists or buffer period expired500- Blockchain transaction failed
API Key Routes (Merchant)
Merchants can manage disputes programmatically using their API key.
Authentication
Include your API key in the request header:
List Disputes
Get a paginated list of disputes for your account.
GET /disputes
Query Parameters:
status
string
-
Filter by status (optional)
page
number
1
Page number
limit
number
20
Results per page (max 100)
Example Request:
Response:
Get Dispute Details
Get detailed information about a specific dispute, including all evidence.
GET /disputes/:disputeId
Example Request:
Response:
Evidence Types:
text- Text description or notesfile- Uploaded file (image or PDF)link- External URL
Submit Evidence (Merchant)
Submit evidence to support your case against a dispute.
POST /disputes/:disputeId/evidence
Request (multipart/form-data):
type
string
Yes
Evidence type: text, file, or link
content
string
Yes
Text content, file name, or URL
file
file
No
File upload (required if type is file)
Example Request:
Response:
Status Transitions:
When merchant submits first evidence:
pending_merchant→pending_buyerWhen buyer submits response:
pending_buyer→under_review
File Requirements:
Formats: JPG, PNG, WEBP, PDF
Max size: 10MB per file
Stored securely in S3 with signed URLs
Errors:
400- Invalid file type or missing required fields404- Dispute not found409- Dispute already resolved413- File too large
Resolution Outcomes
When a dispute is resolved by the Stablix admin team:
Buyer Wins
Buyer receives: Full amount minus dispute fee
Merchant receives: Nothing
Fee: 1% of transaction amount
Merchant Wins
Buyer receives: Nothing
Merchant receives: Full amount minus dispute fee
Fee: 1% of transaction amount
Split Decision
Funds split according to admin decision
Both parties receive proportional amounts minus fees
Admin can specify exact percentage split
Example Split:
Dispute Fees
Buyer Wins
1% of transaction
Merchant's payout (0%)
Merchant Wins
1% of transaction
Buyer's refund (0%)
Split Decision
1% of transaction
Split between both parties
The fee is automatically deducted when the dispute is resolved on the blockchain.
Dispute Webhooks
Receive real-time notifications when dispute status changes.
Events
dispute.opened
New dispute opened
dispute.evidence_submitted
Evidence added by either party
dispute.resolved
Dispute resolved by admin
Webhook Payload
Example: dispute.opened
Example: dispute.resolved
Best Practices
For Merchants
✅ Respond Quickly - You have 3 days to respond to disputes ✅ Provide Clear Evidence - Shipping confirmations, delivery proofs, communication logs ✅ Keep Records - Store all transaction-related documentation ✅ Set Appropriate Buffer Periods - Longer buffers for physical goods ✅ Send Tracking Information - Update customers on delivery status ✅ Clear Product Descriptions - Accurate listings reduce disputes ✅ Responsive Support - Quick responses prevent escalation
Buffer Period Recommendations:
Digital Products
24-48 hours
US Shipping
7-10 days
International
14-21 days
Custom/Made-to-Order
21-30 days
For Buyers
✅ Act Quickly - Disputes must be opened before the buffer period expires ✅ Provide Detailed Description - Explain exactly what happened (minimum 20 characters) ✅ Include Evidence - Screenshots, emails, order confirmations ✅ Check Your Email - You'll receive updates at each stage ✅ Save Transaction Details - Keep invoice IDs and transaction hashes ✅ Contact Merchant First - Many issues can be resolved directly
Preventing Disputes
For Merchants
Longer Buffer Periods
Gives time for delivery confirmation
Proactive Communication
Keeps buyers informed of order status
Clear Refund Policy
Sets expectations upfront
Quality Control
Reduces "not as described" claims
Fast Shipping
Reduces delivery-related disputes
Responsive Support
Resolves issues before escalation
FAQ
Q: How do buyers open disputes without a wallet? A: Buyers use email verification. They enter the email associated with the invoice, receive a 6-digit code, and use that code to open the dispute. No wallet connection required.
Q: What if I paid from Coinbase/Binance? A: Perfect! The email verification system is designed specifically for CEX users who can't sign with their wallets.
Q: How long do I have to open a dispute?
A: You must open a dispute while funds are still in escrow (before the buffer period ends). Check the dispute_deadline in your invoice details.
Q: What happens if the merchant doesn't respond? A: If a merchant doesn't respond within 3 days, the dispute moves to admin review. Lack of response may weigh in favor of the buyer.
Q: Can I upload multiple files? A: Currently, you can upload one file when opening the dispute.
Q: How long does resolution take? A: Admin review typically takes up to 14 days from when all evidence is submitted. You'll receive email updates throughout the process.
Q: What if I lost the verification code? A: You can request a new code, but you're rate-limited to 3 requests per hour to prevent spam.
Q: Can I dispute a subscription charge? A: Yes. Subscription charges also go through escrow and can be disputed during the buffer period.
Q: What makes a strong dispute case? A: Detailed description, supporting evidence (screenshots, emails), clear timeline of events, and attempts to contact the merchant first.
Error Codes
400
Invalid code format
Code must be 6 digits
401
Email doesn't match invoice
Use the email from the invoice
401
Code expired
Request a new code (expires in 10 minutes)
404
Invoice not found
Check the invoice ID
409
Dispute already exists
Only one dispute per invoice
409
Buffer period expired
Disputes can't be opened after funds release
429
Rate limit exceeded
Wait before requesting another code
500
Blockchain transaction failed
Try again or contact support
Support
Need help with a dispute?
📧 Email: [email protected] 📚 Docs: https://docs.stablix.xyz/disputes
Last updated