Upgrade Module
Run a trade-in program with device evaluation, offer management, and processing workflow.
Base URL: https://app.proign.com/[tenant]/upgrade/api
Overview
The Upgrade module manages trade-in programs:
- Customer trade-in submissions
- Photo documentation
- Offer generation and acceptance
- Shipping kit fulfillment
- Inspection and final valuation
- Customer profiles and accounts
Key Features
Condition Assessment
Structured device evaluation:
- Photo Documentation - Multi-angle photos of trade-in items
- Condition Grading - Standardized grading scale
- Quote Generation - Automatic offers based on condition
- Credit Issuance - Store credit or refund processing
Trade-in Process
- Submit - Customer provides device details and photos
- Offer - Admin creates offer based on condition
- Accept - Customer accepts or declines the offer
- Ship - Shipping kit sent to customer
- Receive - Device arrives at facility
- Inspect - Technician evaluates condition
- Complete - Final offer confirmed, credit issued
API Endpoints
Authentication
POST /api/[tenant]/auth/register # Customer registration
POST /api/[tenant]/auth/login # Customer login
POST /api/[tenant]/auth/logout # Logout
GET /api/[tenant]/auth/me # Get current user
Submissions
GET /api/[tenant]/submissions # List submissions
POST /api/[tenant]/submissions # Create submission
GET /api/[tenant]/submissions/[id] # Get submission details
PUT /api/[tenant]/submissions/[id] # Update submission
POST /api/[tenant]/submissions/[id] # Submit for review
Submission Actions
POST /api/[tenant]/submissions/[id]/inspect # Start/complete inspection
POST /api/[tenant]/submissions/[id]/receive # Mark as received
POST /api/[tenant]/submissions/[id]/ship # Ship kit or return label
Offers
POST /api/[tenant]/offers # Create offer (admin)
POST /api/[tenant]/offers/[id] # Accept/decline offer (customer)
Photos
POST /api/[tenant]/photos # Upload photo
GET /api/[tenant]/photos/[id] # Get photo
Profile
GET /api/[tenant]/profile # Get customer profile
PUT /api/[tenant]/profile # Update profile
Admin Endpoints
# Valuations (Trade-in Values)
GET /api/[tenant]/admin/valuations # List valuations
POST /api/[tenant]/admin/valuations # Create valuation
GET /api/[tenant]/admin/valuations/[id] # Get valuation
PUT /api/[tenant]/admin/valuations/[id] # Update valuation
DELETE /api/[tenant]/admin/valuations/[id] # Delete valuation
# Customers & Stats
GET /api/[tenant]/admin/customers # List all customers
GET /api/[tenant]/admin/stats # Dashboard statistics
Request Examples
Create Submission
POST /api/[tenant]/submissions
Content-Type: application/json
{
"product_id": "prod_123",
"serial_number": "SN-12345678",
"condition": "good",
"description": "Minor scratches on grip",
"photos": ["photo_abc", "photo_def"]
}Create Offer
POST /api/[tenant]/offers
Content-Type: application/json
{
"submission_id": "sub_123",
"amount": 350.00,
"notes": "Based on good condition assessment",
"expires_at": "2024-02-01T00:00:00Z"
}Submission Status Flow
Each trade-in moves through these statuses:
| Status | Description | Actor |
|---|---|---|
draft | Customer started but hasn't submitted | Customer |
submitted | Under admin review, pending offer | Customer |
offered | Offer sent, waiting for acceptance | Admin |
accepted | Customer accepted, shipping kit sent | Customer |
shipped | Item in transit to facility | System |
received | Item arrived, awaiting inspection | Admin |
inspected | Inspection complete, final valuation confirmed | Admin |
completed | Credit issued, process finished | System |
declined | Customer declined offer or item rejected | Customer/Admin |
Device Evaluation
Condition-based pricing:
| Condition | Value Modifier |
|---|---|
| Excellent | 100% of base value |
| Good | 80% of base value |
| Fair | 60% of base value |
| Poor | 40% of base value |
Configuration
- Valuations - Set base values per product in admin
- Condition Modifiers - Percentage adjustments by condition
- Photo Requirements - Required angles and documentation
- Shipping Integration - Configure shipping kit fulfillment