Repair & Claims Services
Purpose:
End-to-end claims processing and repair service coordination with logistics management and customer communication automation.
Description:
The repair and claims system manages the complete service lifecycle from initial claim submission through repair completion and device return. It coordinates with repair facilities, manages logistics, tracks service progress, and maintains customer communication throughout the process. The system integrates with inventory management, payment processing, and customer service platforms.
Claims Processing:
- Automated damage assessment using AI image analysis
- Repair cost estimation and approval workflows
- Service provider network management
- Parts inventory and procurement coordination
- Quality assurance and warranty management
Logistics Coordination:
- Automated shipping label generation
- Carrier integration and tracking
- Repair facility coordination and scheduling
- Customer communication and status updates
- Return processing and verification
Business Value:
Reduces claims processing time, improves customer satisfaction through transparency, optimizes repair costs, maintains service quality standards, and provides comprehensive analytics for service optimization.
GET /v4.1/catalog/repairs/events/?limit=50
Purpose:
This endpoint retrieves real-time event notifications from the rental/repair management system. It acts as an event stream that partners can poll to stay synchronized with repair order status changes, estimate decisions, and shipping activities.
Endpoint Explanation:
This endpoint provides complete repair order visibility by aggregating data from multiple systems including customer service, repair facilities, logistics providers, and inventory management. The system tracks repair progress through various stages, maintains cost estimates and approvals, coordinates with service providers, and provides real-time status updates. Comprehensive data includes device information, damage assessment, repair procedures, parts requirements, and estimated completion times while maintaining audit trails for warranty and insurance purposes.
Events: OrderRepairReleased – new order repair has released for Repair Service EstimateDecisionPublished - in the cost estimate related to the repair, a decision was made to accept it LabelEmitted – shipment package label has been emitted
Request (query string)
Property | Type | Description |
---|---|---|
limit | int | Optional. Number of messages downloaded at a time. Default is 50. Max is 500 |
Response (body)
Property | Type | Description |
---|---|---|
events | Array of EventDto | Array of events |
id | string | A unique identifier for an event. Ensures idempotency. |
type | string | Values: OrderRepairReleased, EstimateDecisionPublished, LabelEmitted |
source | string | Eg. bolttech/pt/claims/repair |
specversion | string | The version of the CloudEvents specification which the event uses. Will be set to "1.0" |
time | datetime | Timestamp of when the occurrence happened. |
datacontenttype | string | Content type of data value (eg. application/json) |
data | object | Domain specific event data |
orderId | string | Mandatory. Identifier of repair order |
estimateId | string | Mandatory for EstimateDecisionPublished action. Identifier of estimate |
- Response Payload Schema (JSON)
- Response Payload Examle (JSON)
{
"type": "object",
"properties": {
"events": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Unique identifier for an event. Ensures idempotency."
},
"type": {
"type": "string",
"description": "A unique identifier for an event type"
},
"source": {
"type": "string",
"description": "Ex: bottech.api/claims/repair"
},
"specversion": {
"type": "string",
"description": "The version of the CloudEvents specification which the event uses. Will be set to '1.0'"
},
"time": {
"type": "string",
"format": "date-time",
"description": "Timestamp of when the event happened"
},
"datacontenttype": {
"type": "string",
"description": "Content type of data value (eg. application/json)"
},
"data": {
"type": "object",
"description": "Domain specific event data",
"properties": {
"orderId": {
"type": "string",
"description": "Mandatory identifier of repair order"
},
"estimateId": {
"type": "string",
"description": "Mandatory for EstimateDecisionPublished action. Identifier of estimate"
}
}
}
}
}
}
}
}
{
"events": [
{
"id": "evt_12345678-abcd-1234-efgh-123456789012",
"type": "string",
"source": "bottech.api/claims/repair",
"specversion": "1.0",
"time": "2023-11-15T10:30:00Z",
"datacontenttype": "application/json",
"data": {
"orderId": "ORD-2023-001234",
"estimateId": "EST-2023-005678"
}
},
{
"id": "evt_87654321-dcba-4321-hgfe-210987654321",
"type": "string",
"source": "bottech.api/claims/repair",
"specversion": "1.0",
"time": "2023-11-16T14:15:30Z",
"datacontenttype": "application/json",
"data": {
"orderId": "ORD-2023-001235",
"estimateId": "EST-2023-005679"
}
}
]
}
GET /v4.1/catalog/repairs/{orderId}
Purpose:
Retrieves comprehensive repair order details including status, timeline, cost estimates, and service provider coordination information.
Endpoint Explanation:
This endpoint provides complete repair order visibility by aggregating data from multiple systems including customer service, repair facilities, logistics providers, and inventory management. The system tracks repair progress through various stages, maintains cost estimates and approvals, coordinates with service providers, and provides real-time status updates. Comprehensive data includes device information, damage assessment, repair procedures, parts requirements, and estimated completion times while maintaining audit trails for warranty and insurance purposes.
Property | Type | Description |
---|---|---|
productOptionName | string | Product option name for insurance or repair services |
claimNumber | string | Claim number |
claimedDevices | Array of object | |
claimedDevices Properties | ||
deviceType | string | Device type |
deviceState | string | Device state code |
manufacturer | string | Device manufacturer |
model | string | Device model |
serialNumber | string | Device IMEI or Serial Number |
additionalSN | string | Device other identifier |
devicePurchaseDate | string (ISO 8601) | Device purchase date |
repair | object | |
prealertReceiveDate | string (ISO 8601) | Date of received prealert in Repair Facility |
deviceReceiveDate | string (ISO 8601) | Date of device receiving in Repair Facility |
repairStatus | string | Repair status from dictionary |
repairSubstatus | string | Repair substatus from dictionary |
repairEndDate | string (ISO 8601) | Date of repair finish |
repairCompletionDate | string (ISO 8601) | Date of completion |
deviceSendDate | string (ISO 8601) | Date of shipment |
tatFromPrealert | int | TAT for repair time |
refurbishedParts | boolean | Were refurbished parts used in the repair? |
eta | string (ISO 8601) | Estimated Time of Arrival |
etr | string (ISO 8601) | Estimated Time of Repair |
accessories | string | Accessories to be made during the repair |
damageDescription | string | Damage description |
risk | string | Risk |
berLimitForExtendedWarranty | number | BER limit for extended warranty |
berLimitForMechanicalDamage | number | BER limit for mechanical damage |
warrantyRepair | boolean | Warranty repair |
mechanicalDamageRepair | boolean | Mechanical damage repair |
liquidDamageRepair | boolean | Liquid damage repair |
dataBackup | boolean | Data backup |
dataRestore | boolean | Data restore |
deviceConfiguration | boolean | Device configuration |
estimates | array | |
estimateId | string | Unique number of quotation assigned by Repair Facility |
estimateStatus | string | Estimate status. Available value: ACCEPTED - quotation accepted, TOVERIFY - quotation waiting for manual |
estimateKind | string | Quotation kind (REPAIR, NEWDEVICE, SWAP) |
estimateStatusDescription | string | Description of status when quotation is rejected (dictionary) or authorization code when quotation is accepted |
estimatePriceCurrency | string | Currency ie. "PLN" |
extraPaymentAmount | decimal | Gross amount of the repair surcharge |
issueDate | string (ISO 8601) | Estimate issue date |
decisionDate | string (ISO 8601) | Estimate decision date |
parts | array | List of parts to repair device |
partCode | string | Code of part |
partName | string | Name of part |
risk | string | Risk type of required from dictionary ie (US, ZAL, ANG, APG, OTHER) |
partCategoryCode | string | Category code of part from dictionary ie. "LCD", "LCD MANDATORY", "COVER", "SWAP" itd. |
partPriceExcludingTax | decimal | Net cost of the part |
partPriceIncludingTax | decimal | Gross cost of the part |
partPriceTax | decimal | Tax cost of the part |
partDiscount | decimal | Discount cost of the part |
partRefurbing | boolean | Used refurbished parts |
partComment | string | Comments of part, e.g description of damages |
partStatus | string | Status of quotation line. Available value: ACCEPTED, REJECTED |
partStatusDescription | string | Description status of quotation line. |
services | array | List of service to repair device |
serviceCode | string | Code of the service |
serviceName | string | Name of the service |
serviceCategory | string | Category type of the service from dictionary ie. "LABOUR", "EXPERTISE" itd. |
servicePriceExcludingTax | decimal | Net cost of the service |
servicePriceIncludingTax | decimal | Gross cost of the service |
servicePriceTax | decimal | Tax cost of the service |
serviceDiscount | decimal | Discount cost of the service |
serviceComment | string | Comments of service |
serviceStatus | string | Status of quotation line. Available value: ACCEPTED, REJECTED |
serviceStatusDescription | string | Description status of quotation line. |
loanDevice | boolean | Loan device |
pickup | object | |
methodName | string | Courier delivering package to Repair Facility |
contact | object | |
companyName | string | Pickup address - company name |
firstName | string | Pickup address - customer name |
lastName | string | Pickup address - customer surname |
phoneNumber | string | Pickup address - Phone number |
string | Pickup address - Email | |
taxNumber | string | Pickup address - Tax number |
address | object | |
country | string | Pickup address - country |
region | string | Pickup address - district |
city | string | Pickup address - city |
postCode | string | Pickup address - post code |
suburb | string | |
street | string | Pickup address - street |
buildingNumber | string | Pickup address - building number |
apartmentNumber | string | Pickup address - apartment number |
notes | string | Pickup address - Notes for delivery |
waybillNumber | string | Pickup waybill number |
courierStatus | string | Pickup parcel status from dictionary |
firstAttemptDate | string (ISO 8601) | Pickup date |
return | object | |
methodName | string | Courier delivering package from Repair Facility |
contact | object | |
companyName | string | Return address - company name |
firstName | string | Return address - customer name |
lastName | string | Return address - customer surname |
phoneNumber | string | Return address - Phone number |
string | Return address - Email | |
taxNumber | string | Return address - Tax number |
address | object | |
country | string | Return address - country |
region | string | Return address - district |
city | string | Return address - city |
postCode | string | Return address - post code |
suburb | string | |
street | string | Return address - street |
buildingNumber | string | Return address - building number |
apartmentNumber | string | Return address - apartment number |
notes | string | Return address - Notes for delivery |
returnDirection | string | The direction in which the device should be returned. |
codAmount | decimal | Amount of COD |
waybillNumber | string | Return waybill number |
courierStatus | string | Return parcel status from dictionary |
firstAttemptDate | string (ISO 8601) | First return date. If the Customer did not pickup the shipment the first time, a different date than in firstAttemptDate |
collectionDate | string (ISO 8601) |
- Response Payload Schema (JSON)
- Response Payload Examle (JSON)
{
"orderId": "RO-2024-001234",
"estimateId": "EST-2024-567890",
"property": "Device Repair Services",
"productOptionName": "Premium Mobile Insurance",
"claimNumber": "CLM-2024-789012",
"repair": {
"repairReceiveDate": "2024-01-15T14:22:00Z",
"deviceReceiveDate": "2024-01-15T09:15:00Z",
"repairStatus": "IN_PROGRESS",
"repairSubstatus": "AWAITING_PARTS",
"repairInitDate": "2024-01-16T08:00:00Z",
"repairCompletionDate": "2024-01-20T16:30:00Z",
"repairSentDate": "2024-01-21T10:00:00Z",
"tatFromPrealert": 6,
"refurbishedParts": false,
"eta": "2024-01-22T12:00:00Z",
"etr": "2024-01-21T15:00:00Z",
"accessories": "Original charging cable, case",
"damageDescription": "Cracked screen, water damage to speakers",
"risk": "MEDIUM",
"berLimitForExtendedWarranty": 500,
"berLimitForMechanicalDamage": 300,
"warrantyRepair": false,
"screenDamageRepair": true,
"liquidDamageRepair": true,
"backglassRepair": false,
"dataRestore": true,
"deviceConfiguration": "Factory Reset Required",
"estimates": [
{
"estimateId": "EST-2024-567890",
"estimateStatus": "ACCEPTED",
"estimateType": "REPAIR",
"estimateStatusDescription": "Quote approved by customer",
"estimatePriceCurrency": "USD",
"extraPaymentAmount": 75.5,
"issueDate": "2024-01-16T12:30:00Z",
"decisionDate": "2024-01-17T09:45:00Z",
"parts": [
{
"partCode": "APL-IP14P-SCR-001",
"partName": "iPhone 14 Pro OLED Display Assembly",
"risk": "LOW",
"partCategoryCode": "SCREEN",
"partPriceExcludingTax": 245.0,
"partPriceIncludingTax": 294.0,
"partPriceTax": 49.0,
"partDiscount": 20.0,
"partRefurbished": false,
"partComment": "Original Apple part with 12-month warranty",
"partStatus": "ORDERED",
"partStatusDescription": "Part ordered from supplier, expected delivery 2 days"
},
{
"partCode": "APL-IP14P-SPK-002",
"partName": "iPhone 14 Pro Speaker Assembly",
"risk": "LOW",
"partCategoryCode": "AUDIO",
"partPriceExcludingTax": 35.0,
"partPriceIncludingTax": 42.0,
"partPriceTax": 7.0,
"partDiscount": 0.0,
"partRefurbished": false,
"partComment": "OEM replacement speaker",
"partStatus": "IN_STOCK",
"partStatusDescription": "Available in inventory"
}
],
"services": [
{
"serviceCode": "REP-SCR-001",
"serviceName": "Screen Replacement Service",
"serviceCategory": "REPAIR",
"servicePriceExcludingTax": 80.0,
"servicePriceIncludingTax": 96.0,
"servicePriceTax": 16.0,
"serviceDiscount": 10.0,
"serviceComment": "Professional screen replacement with calibration",
"serviceStatus": "SCHEDULED",
"serviceStatusDescription": "Scheduled for completion once parts arrive"
},
{
"serviceCode": "REP-LIQ-001",
"serviceName": "Liquid Damage Assessment & Repair",
"serviceCategory": "DIAGNOSTIC",
"servicePriceExcludingTax": 45.0,
"servicePriceIncludingTax": 54.0,
"servicePriceTax": 9.0,
"serviceDiscount": 0.0,
"serviceComment": "Complete liquid damage inspection and component cleaning",
"serviceStatus": "COMPLETED",
"serviceStatusDescription": "Liquid damage assessment completed, minimal corrosion found"
}
]
}
]
},
"claimedDevices": [
{
"deviceType": "Smartphone",
"deviceState": "DAMAGED",
"manufacturer": "Apple",
"model": "iPhone 14 Pro",
"serialNumber": "G6QT8X9MQ05F",
"additionalSN": "IMEI: 357804081234567",
"devicePurchaseDate": "2023-09-15T10:30:00Z",
}
],
"loanDevice": true,
"pickup": {
"pickupNumber": "PU-2024-001234",
"courierStatus": "COMPLETED",
"address": {
"country": "United States",
"state": "California",
"city": "Los Angeles",
"postCode": "90210",
"suburb": "Beverly Hills",
"street": "Rodeo Drive",
"buildingNumber": "456",
"apartmentNumber": "Apt 7B",
"notes": "Ring buzzer twice, building entrance on side street"
},
"firstAttemptDate": "2024-01-15T10:30:00Z",
"contact": {
"companyName": "",
"firstName": "John",
"lastName": "Smith",
"phoneNumber": "+1-555-0987",
"email": "[email protected]",
"taxNumber": "",
}
},
"return": {
"returnName": "Device Return Shipment",
"address": {
"country": "United States",
"state": "California",
"city": "Los Angeles",
"postCode": "90210",
"suburb": "Beverly Hills",
"street": "Rodeo Drive",
"buildingNumber": "456",
"apartmentNumber": "Apt 7B",
"notes": "Same address as pickup - preferred delivery between 2-6 PM"
},
"contact": {
"companyName": "",
"firstName": "John",
"lastName": "Smith",
"phoneNumber": "+1-555-0987",
"email": "[email protected]",
"taxNumber": ""
},
"returnDirection": "Customer delivery after repair completion",
"codAmount": 0.0,
"trackingNumber": "1Z999AA1234567890",
"courierStatus": "SCHEDULED",
"firstAttemptDate": "2024-01-22T14:00:00Z",
"collectionDate": "2024-01-22T14:00:00Z"
}
}
{
"orderId": "RO-2024-001234",
"estimateId": "EST-2024-567890",
"property": "Device Repair Services",
"productOptionName": "Premium Mobile Insurance",
"claimNumber": "CLM-2024-789012",
"repair": {
"repairReceiveDate": "2024-01-15T14:22:00Z",
"deviceReceiveDate": "2024-01-15T09:15:00Z",
"repairStatus": "IN_PROGRESS",
"repairSubstatus": "AWAITING_PARTS",
"repairInitDate": "2024-01-16T08:00:00Z",
"repairCompletionDate": "2024-01-20T16:30:00Z",
"repairSentDate": "2024-01-21T10:00:00Z",
"tatFromPrealert": 6,
"refurbishedParts": false,
"eta": "2024-01-22T12:00:00Z",
"etr": "2024-01-21T15:00:00Z",
"accessories": "Original charging cable, case",
"damageDescription": "Cracked screen, water damage to speakers",
"risk": "MEDIUM",
"berLimitForExtendedWarranty": 500,
"berLimitForMechanicalDamage": 300,
"warrantyRepair": false,
"screenDamageRepair": true,
"liquidDamageRepair": true,
"backglassRepair": false,
"dataRestore": true,
"deviceConfiguration": "Factory Reset Required",
"estimates": [
{
"estimateId": "EST-2024-567890",
"estimateStatus": "ACCEPTED",
"estimateType": "REPAIR",
"estimateStatusDescription": "Quote approved by customer",
"estimatePriceCurrency": "USD",
"extraPaymentAmount": 75.5,
"issueDate": "2024-01-16T12:30:00Z",
"decisionDate": "2024-01-17T09:45:00Z",
"parts": [
{
"partCode": "APL-IP14P-SCR-001",
"partName": "iPhone 14 Pro OLED Display Assembly",
"risk": "LOW",
"partCategoryCode": "SCREEN",
"partPriceExcludingTax": 245.0,
"partPriceIncludingTax": 294.0,
"partPriceTax": 49.0,
"partDiscount": 20.0,
"partRefurbished": false,
"partComment": "Original Apple part with 12-month warranty",
"partStatus": "ORDERED",
"partStatusDescription": "Part ordered from supplier, expected delivery 2 days"
},
{
"partCode": "APL-IP14P-SPK-002",
"partName": "iPhone 14 Pro Speaker Assembly",
"risk": "LOW",
"partCategoryCode": "AUDIO",
"partPriceExcludingTax": 35.0,
"partPriceIncludingTax": 42.0,
"partPriceTax": 7.0,
"partDiscount": 0.0,
"partRefurbished": false,
"partComment": "OEM replacement speaker",
"partStatus": "IN_STOCK",
"partStatusDescription": "Available in inventory"
}
],
"services": [
{
"serviceCode": "REP-SCR-001",
"serviceName": "Screen Replacement Service",
"serviceCategory": "REPAIR",
"servicePriceExcludingTax": 80.0,
"servicePriceIncludingTax": 96.0,
"servicePriceTax": 16.0,
"serviceDiscount": 10.0,
"serviceComment": "Professional screen replacement with calibration",
"serviceStatus": "SCHEDULED",
"serviceStatusDescription": "Scheduled for completion once parts arrive"
},
{
"serviceCode": "REP-LIQ-001",
"serviceName": "Liquid Damage Assessment & Repair",
"serviceCategory": "DIAGNOSTIC",
"servicePriceExcludingTax": 45.0,
"servicePriceIncludingTax": 54.0,
"servicePriceTax": 9.0,
"serviceDiscount": 0.0,
"serviceComment": "Complete liquid damage inspection and component cleaning",
"serviceStatus": "COMPLETED",
"serviceStatusDescription": "Liquid damage assessment completed, minimal corrosion found"
}
]
}
]
},
"claimedDevices": [
{
"deviceType": "Smartphone",
"deviceState": "DAMAGED",
"manufacturer": "Apple",
"model": "iPhone 14 Pro",
"serialNumber": "G6QT8X9MQ05F",
"additionalSN": "IMEI: 357804081234567",
"devicePurchaseDate": "2023-09-15T10:30:00Z",
}
],
"loanDevice": true,
"pickup": {
"pickupNumber": "PU-2024-001234",
"courierStatus": "COMPLETED",
"firstAttemptDate": "2024-01-15T10:30:00Z",
"address": {
"country": "United States",
"state": "California",
"city": "Los Angeles",
"postCode": "90210",
"suburb": "Beverly Hills",
"street": "Rodeo Drive",
"buildingNumber": "456",
"apartmentNumber": "Apt 7B",
"notes": "Ring buzzer twice, building entrance on side street"
},
"contact": {
"companyName": "",
"firstName": "John",
"lastName": "Smith",
"phoneNumber": "+1-555-0987",
"email": "[email protected]",
"taxNumber": "",
}
},
"return": {
"returnName": "Device Return Shipment",
"address": {
"country": "United States",
"state": "California",
"city": "Los Angeles",
"postCode": "90210",
"suburb": "Beverly Hills",
"street": "Rodeo Drive",
"buildingNumber": "456",
"apartmentNumber": "Apt 7B",
"notes": "Same address as pickup - preferred delivery between 2-6 PM"
},
"contact": {
"companyName": "",
"firstName": "John",
"lastName": "Smith",
"phoneNumber": "+1-555-0987",
"email": "[email protected]",
"taxNumber": "",
},
"returnDirection": "Customer delivery after repair completion",
"codAmount": 0.0,
"trackingNumber": "1Z999AA1234567890",
"courierStatus": "SCHEDULED",
"firstAttemptDate": "2024-01-22T14:00:00Z",
"collectionDate": "2024-01-22T14:00:00Z"
}
}
PUT /v4.1/catalog/repairs/{orderId}
Purpose:
Updates repair order information including status changes, cost adjustments, and completion details with comprehensive workflow coordination.
Endpoint Explanation:
The endpoint allows you to send repair-related data from the repair facility. Possible actions to perform:
-
update repair status and related data
-
providing a cost estimate for approval
-
providing information about logistics
-
providing information about payments
Notes: This table documents a repair management API that handles different types of repair-related actions through a single endpoint. Here's what it covers: Core Structure
Action-Based System: The API uses an action parameter to determine what type of operation to perform (RepairStatus, Estimate, Payment, Logistic, Files) Conditional Requirements: Many fields are only required when specific actions are triggered according to the next table.
Field | Type | Required | Description |
---|---|---|---|
claimNumber | string | Yes | Claim number |
action | enum[] | Yes | Available value: RepairStatus, Estimate, Payment, Logistic, Files |
repair | object | Yes | Required in action: RepairStatus, Estimate, Files |
devices | array | Yes | Information about device. Received data is required. |
repairType | string | Yes | Available values: RECEIVED, NEW |
deviceType | string | Yes | Device type |
deviceState | string | Yes | Device state code |
manufacturer | string | Yes | Device manufacturer |
model | string | Yes | Device model |
serialNumber | string | Yes | Device IMEI or Serial Number |
additionalSN | string | No | Device other identifier |
prealertReceiveDate | string (ISO 8601) | Yes | Date of received prealert in Repair Facility |
deviceReceiveDate | string (ISO 8601) | Yes | Date of device receiving in Repair Facility |
repairStatus | string | Yes | Repair status from dictionary |
repairSubstatus | string | Yes | Repair substatus from dictionary |
repairEndDate | string (ISO 8601) | Yes | Date of repair finish |
repairCompletionDate | string (ISO 8601) | Yes | Date of completion |
deviceSendDate | string (ISO 8601) | Yes | Date of shipment |
refurbishedParts | boolean | No | Were refurbished parts used in the repair? |
eta | string (ISO 8601) | Yes | Estimated Time of Arrival |
etr | string (ISO 8601) | Yes | Estimated Time of Repair |
estimates | array | Conditional | Required in action: Estimate |
estimateId | string | Yes | Unique number of quotation assigned by Repair Facility |
estimateKind | string | Yes | Quotation kind (REPAIR, NEWDEVICE, SWAP). Default = REPAIR |
estimatePriceCurrency | string | Yes | Currency ie. "PLN" |
parts | array | Yes | Required in action: Estimate |
partCode | string | Yes | Code of part |
partName | string | Yes | Name of part |
risk | string | Yes | Risk type of required from dictionary ie (US, ZAL, ANG, APG, OTHER) |
partCategoryCode | string | Yes | Category code of part from dictionary ie. "LCD", "LCD MANDATORY", "COVER", "SWAP" itd. |
partPriceExcludingTax | decimal | Yes | Net cost of the part |
partPriceIncludingTax | decimal | Yes | Gross cost of the part |
partPriceTax | decimal | Yes | Tax cost of the part |
partDiscount | decimal | No | Discount cost of the part |
partRefurbing | boolean | No | Used refurbished parts. Default = False |
partComment | string | No | Comments of part, e.g description of damages |
services | array | Yes | Required in action: Estimate |
serviceCode | string | Yes | Code of the service |
serviceName | string | Yes | Name of the service |
serviceCategory | string | Yes | Category type of the service from dictionary ie. "LABOUR", "EXPERTISE" itd. |
servicePriceExcludingTax | decimal | Yes | Net cost of the service |
servicePriceIncludingTax | decimal | Yes | Gross cost of the service |
servicePriceTax | decimal | Yes | Tax cost of the service |
serviceDiscount | decimal | No | Discount cost of the service |
serviceComment | string | No | Comments of service |
files | array | Conditional | Required in action: Files |
name | string | Yes | File name |
data | string[base64] | Yes | File data |
payment | array | Conditional | Required in action: Payment |
grossAmount | decimal | Yes | Gross amount |
invoiceNumber | string | No | Invoice number |
additionalInfo | string | No | Additional info, comment |
pickup | object | Conditional | Required in action: Logistic |
waybillNumber | string | Yes | Pickup waybill number |
courierStatus | string | Yes | Pickup parcel status from dictionary |
firstAttemptDate | string (ISO 8601) | Yes | Pickup date |
return | object | Conditional | Required in action: Logistic |
waybillNumber | string | Yes | Return waybill number |
courierStatus | string | Yes | Return parcel status from dictionary |
firstAttemptDate | string (ISO 8601) | Yes | First return date |
collectionDate | string (ISO 8601) | No | Final return date |
Update repair status and related data
- Request (cURL)
- Request Payload (JSON)
curl -X PUT https://api.rc.saas.bolttech.asia/v4.1/catalog/repairs/{orderId}
-H "Authorization: Bearer <token>"
-H "Content-Type: application/json"
-d '{
"claimNumber": "CLM250912-5005",
"actions": ["RepairStatus"],
"repair": {
"prealertReceiveDate": "2025-09-12T09:00:00Z",
"deviceReceiptDate": "2025-09-12T09:00:00Z",
"repairStatus": "RepairFinished",
"repairSubstatus": "SentToCustomer",
"repairEndDate": "2025-09-12T09:00:00Z",
"repairCompletionDate": null,
"deviceSendDate": null,
"refurbishedParts": null,
"eta": null,
"etr": null,
"quotationStatus": "Accepted",
"devices": [
{
"deviceType": "Smartphone",
"deviceState": "New",
"manufacturer": "Motorola",
"model": "Moto E7 Plus",
"serialNumber": "982445809792269",
"additionalSerialNumber": null,
"devicePurchaseDate": "2025-09-12T09:00:00Z",
"repairType": "RECEIVED"
}
],
"estimates": [],
"payments": []
}
}'
{
"claimNumber": "CLM250912-5005",
"actions": ["RepairStatus"],
"repair": {
"prealertReceiveDate": "2025-09-12T09:00:00Z",
"deviceReceiptDate": "2025-09-12T09:00:00Z",
"repairStatus": "RepairFinished",
"repairSubstatus": "SentToCustomer",
"repairEndDate": "2025-09-12T09:00:00Z",
"repairCompletionDate": null,
"deviceSendDate": null,
"refurbishedParts": null,
"eta": null,
"etr": null,
"quotationStatus": "Accepted",
"devices": [
{
"deviceType": "Smartphone",
"deviceState": "New",
"manufacturer": "Motorola",
"model": "Moto E7 Plus",
"serialNumber": "982445809792269",
"additionalSerialNumber": null,
"devicePurchaseDate": "2025-09-12T09:00:00Z",
"repairType": "RECEIVED"
}
],
"estimates": [],
"payments": []
}
}
- Response Payload (JSON)
{
"claimId": "CLM-2024-567890",
"success": true,
}
Providing a cost estimate for approval Submitting a cost estimate triggers an approval process on the Claims System side, which may approve the estimate automatically or require manual processing (which takes more time). The Repair Facility learns about the decision regarding the estimate via the EstimateDecisionPublished event. After receiving this event, it can check the decision again by retrieving the Repair Order.
- Request (cURL)
- Request Payload (JSON)
curl -X PUT https://api.rc.saas.bolttech.asia/v4.1/catalog/repairs/{orderId}
-H "Authorization: Bearer <token>"
-H "Content-Type: application/json"
-d '{
"claimNumber": "CLM250903-5001",
"actions": ["Estimate"],
"repair": {
"prealertReceiveDate": "2025-09-03T09:00:00Z",
"deviceReceiptDate": "2025-08-29T09:00:00Z",
"repairStatus": "Repairing",
"repairSubstatus": "Repairing",
"repairEndDate": null,
"repairCompletionDate": null,
"deviceSendDate": null,
"refurbishedParts": null,
"eta": null,
"etr": null,
"quotationStatus": "Accepted",
"devices": [
{
"deviceType": "Smartphone",
"deviceState": "New",
"manufacturer": "Motorola",
"model": "Moto E7 Plus",
"serialNumber": "868650458297846",
"additionalSerialNumber": null,
"devicePurchaseDate": "2025-07-31T22:00:00Z",
"repairType": "RECEIVED"
}
],
"estimates": [
{
"estimateId": "EST-004",
"estimateKind": "Repair",
"estimatePriceCurrency": "PLN",
"parts": [
{
"partCode": "PRT-001",
"partName": "Screen",
"risk": "US",
"partCategoryCode": "LCD",
"partPriceExcludingTax": 200.00,
"partPriceIncludingTax": 240.00,
"partPriceTax": 40.00,
"partDiscount": 0,
"partRefurbished": false,
"partComment": "Brand new replacement screen"
}
],
"services": [
{
"serviceCode": "SRV-001",
"serviceName": "LABOUR",
"serviceCategory": "LABOUR",
"servicePriceExcludingTax": 80.00,
"servicePriceIncludingTax": 96.00,
"servicePriceTax": 16.00,
"serviceDiscount": 0,
"serviceComment": "Labour fee for screen replacement"
}
]
}
],
"payments": []
}
}'
{
"claimNumber": "CLM250903-5001",
"actions": ["Estimate"],
"repair": {
"prealertReceiveDate": "2025-09-03T09:00:00Z",
"deviceReceiptDate": "2025-08-29T09:00:00Z",
"repairStatus": "Repairing",
"repairSubstatus": "Repairing",
"repairEndDate": null,
"repairCompletionDate": null,
"deviceSendDate": null,
"refurbishedParts": null,
"eta": null,
"etr": null,
"quotationStatus": "Accepted",
"devices": [
{
"deviceType": "Smartphone",
"deviceState": "New",
"manufacturer": "Motorola",
"model": "Moto E7 Plus",
"serialNumber": "868650458297846",
"additionalSerialNumber": null,
"devicePurchaseDate": "2025-07-31T22:00:00Z",
"repairType": "RECEIVED"
}
],
"estimates": [
{
"estimateId": "EST-004",
"estimateKind": "Repair",
"estimatePriceCurrency": "PLN",
"parts": [
{
"partCode": "PRT-001",
"partName": "Screen",
"risk": "US",
"partCategoryCode": "LCD",
"partPriceExcludingTax": 200.00,
"partPriceIncludingTax": 240.00,
"partPriceTax": 40.00,
"partDiscount": 0,
"partRefurbished": false,
"partComment": "Brand new replacement screen"
}
],
"services": [
{
"serviceCode": "SRV-001",
"serviceName": "LABOUR",
"serviceCategory": "LABOUR",
"servicePriceExcludingTax": 80.00,
"servicePriceIncludingTax": 96.00,
"servicePriceTax": 16.00,
"serviceDiscount": 0,
"serviceComment": "Labour fee for screen replacement"
}
]
}
],
"payments": []
}
}
- Response Payload (JSON)
{
"claimId": "CLM-2024-567890",
"success": true,
}
Providing information about logistics The API enables the Repair Facility to provide information on logistics when it is responsible for organizing the collection of the device from the customer and delivering the repaired device to them (depending on business arrangements). The Repair Facility decides to order a courier:
-
in the direction of the repair point (pickup), orders the shipment when it receives a new repair request (OrderRepairReleased event)
-
in the direction of the customer (return), orders the shipment when the repair is completed.
The entire process of picking up and returning the device to the customer is described in the pickup and return fields.
- Request (cURL)
- Request Payload (JSON)
curl -X PUT https://api.rc.saas.bolttech.asia/v4.1/catalog/repairs/{orderId}
-H "Authorization: Bearer <token>"
-H "Content-Type: application/json"
-d '{
"claimNumber": "CLM250904-5014",
"actions": ["Logistic"],
"repair": {
"prealertReceiveDate": "2025-09-03T09:00:00Z",
"deviceReceiptDate": "2025-08-29T09:00:00Z",
"repairStatus": "Repairing",
"repairSubstatus": "Repairing",
"repairEndDate": null,
"repairCompletionDate": null,
"deviceSendDate": null,
"refurbishedParts": null,
"eta": null,
"etr": null,
"quotationStatus": "Accepted",
"devices": [
{
"deviceType": "Smartphone",
"deviceState": "New",
"manufacturer": "Motorola",
"model": "Moto E7 Plus",
"serialNumber": "868650458297846",
"additionalSerialNumber": null,
"devicePurchaseDate": "2025-07-31T22:00:00Z",
"repairType": "RECEIVED"
}
],
"estimates": [],
"payments": [],
"pickup": {
"waybillNumber": "0000014660689T",
"courierStatus": "InProgress",
"firstAttemptDate": "2025-09-04T14:00:00Z"
}
}
}'
{
"claimNumber": "CLM250904-5014",
"actions": ["Logistic"],
"repair": {
"prealertReceiveDate": "2025-09-03T09:00:00Z",
"deviceReceiptDate": "2025-08-29T09:00:00Z",
"repairStatus": "Repairing",
"repairSubstatus": "Repairing",
"repairEndDate": null,
"repairCompletionDate": null,
"deviceSendDate": null,
"refurbishedParts": null,
"eta": null,
"etr": null,
"quotationStatus": "Accepted",
"devices": [
{
"deviceType": "Smartphone",
"deviceState": "New",
"manufacturer": "Motorola",
"model": "Moto E7 Plus",
"serialNumber": "868650458297846",
"additionalSerialNumber": null,
"devicePurchaseDate": "2025-07-31T22:00:00Z",
"repairType": "RECEIVED"
}
],
"estimates": [],
"payments": [],
"pickup": {
"waybillNumber": "0000014660689T",
"courierStatus": "InProgress",
"firstAttemptDate": "2025-09-04T14:00:00Z"
}
}
}
- Response Payload (JSON)
{
"claimId": "CLM-2024-567890",
"success": true,
}
Providing information about payments
- Request (cURL)
- Request Payload (JSON)
curl -X PUT https://api.rc.saas.bolttech.asia/v4.1/catalog/repairs/{orderId}
-H "Authorization: Bearer <token>"
-H "Content-Type: application/json"
-d '{
"claimNumber": "CLM250904-5014",
"actions": ["Payment"],
"repair": {
"prealertReceiveDate": "2025-09-03T09:00:00Z",
"deviceReceiptDate": "2025-08-29T09:00:00Z",
"repairStatus": "Repairing",
"repairSubstatus": "Repairing",
"repairEndDate": null,
"repairCompletionDate": null,
"deviceSendDate": null,
"refurbishedParts": null,
"eta": null,
"etr": null,
"quotationStatus": "Accepted",
"devices": [
{
"deviceType": "Smartphone",
"deviceState": "New",
"manufacturer": "Motorola",
"model": "Moto E7 Plus",
"serialNumber": "868650458297846",
"additionalSerialNumber": null,
"devicePurchaseDate": "2025-07-31T22:00:00Z",
"repairType": "RECEIVED"
}
],
"estimates": [],
"payments": [
{
"grossAmount": 336.00,
"invoiceNumber": "INV-2025-007",
"invoiceIssueDate": "2025-09-04T00:00:00Z",
"additionalInfo": "Paid via credit card"
}
]
}
}'
{
"claimNumber": "CLM250904-5014",
"actions": ["Payment"],
"repair": {
"prealertReceiveDate": "2025-09-03T09:00:00Z",
"deviceReceiptDate": "2025-08-29T09:00:00Z",
"repairStatus": "Repairing",
"repairSubstatus": "Repairing",
"repairEndDate": null,
"repairCompletionDate": null,
"deviceSendDate": null,
"refurbishedParts": null,
"eta": null,
"etr": null,
"quotationStatus": "Accepted",
"devices": [
{
"deviceType": "Smartphone",
"deviceState": "New",
"manufacturer": "Motorola",
"model": "Moto E7 Plus",
"serialNumber": "868650458297846",
"additionalSerialNumber": null,
"devicePurchaseDate": "2025-07-31T22:00:00Z",
"repairType": "RECEIVED"
}
],
"estimates": [],
"payments": [
{
"grossAmount": 336.00,
"invoiceNumber": "INV-2025-007",
"invoiceIssueDate": "2025-09-04T00:00:00Z",
"additionalInfo": "Paid via credit card"
}
]
}
}
- Response Payload (JSON)
{
"claimId": "CLM-2024-567890",
"success": true,
}
POST /v4.1/catalog/repairs/{orderId}/files
Endpoint Explanation:
Upload multiples files relative to a repair. Max 10Mb
- Request (cURL)
- Request Payload (JSON)
curl -X PUT https://api.rc.saas.bolttech.asia/v4.1/catalog/repairs/{orderId}
-H "Authorization: Bearer <token>"
-H "Content-Type: application/json"
-d '{files": [
{
"filename": "repair_photo_before.jpg",
"contentType": "image/jpeg",
"content": "/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj/2wBDAQcHBwoIChMKChMoGhYaKCgoKCgoKCgoKCgoKCgo...",
"size": 2456832,
"description": "Device condition before repair",
"category": "inspection"
},
{
"filename": "repair_photo_after.jpg",
"contentType": "image/jpeg",
"content": "iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNkYPhfDwAChwGA60e6kgAAAABJRU5ErkJggg==",
"size": 1987654,
"description": "Device condition after repair",
"category": "inspection"
},'
"files": [
{
"filename": "repair_photo_before.jpg",
"contentType": "image/jpeg",
"content": "/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj/2wBDAQcHBwoIChMKChMoGhYaKCgoKCgoKCgoKCgoKCgo...",
"size": 2456832,
"description": "Device condition before repair",
"category": "inspection"
},
{
"filename": "repair_photo_after.jpg",
"contentType": "image/jpeg",
"content": "iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNkYPhfDwAChwGA60e6kgAAAABJRU5ErkJggg==",
"size": 1987654,
"description": "Device condition after repair",
"category": "inspection"
},
]
- Response Payload (JSON)
{
"success": true,
"orderId": "CLM250904-5014",
}
GET /v4.1/catalog/repairs/{orderId}/label
Purpose:
Generates shipping labels for repair logistics with comprehensive tracking and carrier integration capabilities.
Endpoint Explanation:
This endpoint creates shipping labels for repair order logistics by integrating with multiple carriers, generating proper documentation, and providing tracking capabilities. The system handles various shipping scenarios including device pickup, repair facility delivery, and customer return shipments while maintaining cost optimization, delivery tracking, and customer communication. Generated labels include all necessary shipping information, insurance details, and tracking mechanisms for complete logistics coordination.
- Response
{
"success": true,
"base64String": "ciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJwYXlsb2Fk ","type":"pdf"
}
Dictionaries
Repair Status and Substatus Dictionary
RepairStatus | RepairSubstatus | Description |
---|---|---|
Ordered | PrealertReceived | Order received |
RepairCancelled | RepairCancelled | Repair is cancelled by DC (before the device delivered to Repair Facility) |
DeliveredToRepairFacility | Parcel with device already delivered to repair facility | |
WrongIMEI | Delivered device IMEI doesn't match with IMEI from the order | |
WrongAdditionalSN | Delivered device Additional SN doesn't match with Additional SN from the order | |
LackOfDeviceInParcel | Parcel doesn't contain device | |
SubmittedToCostEstimator | Device expertise is in progress | |
Repairing | WaitingForUnlocking | Device is locked (FMI etc) and it's needed to be unlocked by Customer |
WaitingForParts | Parts temporary unavailable, waiting for supply | |
UnavailablePart | Permanently unavailable part | |
DeadOnArrival | Device not repairable | |
QuestionToRepairFacility | Question to repair facility from DC submitted | |
AnswerToRepairFacility | Answer from repair facility to DC submitted | |
WaitingForAcceptance | Waiting for acceptance of quotation | |
Repairing | Repairing in progress | |
RepairDeclined | Repair rejected by DC | |
RepairRejected | SentToCustomer | Repair rejected device is sent to customer |
SentToDC | Repair rejected device is sent to DC | |
Repaired | Device is repaired on behalf of manufacturer warranty | |
Warranty | SentToCustomer | Device is repaired on behalf of manufacturer warranty and sent to Customer |
NewDevice | Device is replaced on behalf of manufacturer warranty | |
SentToDC | Device is repaired on behalf of manufacturer warranty and sent to DC | |
Repaired | Device is repaired | |
RepairFinished | SentToCustomer | Device is repaired and sent to customer |
SentToDC | Device is repaired and sent to DC | |
NewDevice | Device is replaced | |
NewDevice | SentToCustomer | Device is replaced and sent do Customer |
SentToDC | Device is replaced and sent to DC |
Dictionary for Risk
Risk | Description |
---|---|
US | Damage |
ZAL | Flooding |
ANG | Repair under warranty |
APG | Repair after warranty |
ASS | Assistance |
AK | Accessory |
OTHER | Other |
Dictionary for Parts
partCategoryCode | Category description |
---|---|
LCD | Screen (LCD) |
LCDMANDATORY | Parts required for LCD replacement |
COVER | Cover |
BUTTONS | Buttons |
CAMERA | Camera |
CAMERAFRONT | Front Camera |
CAMERABACK | Back Camera |
PCB | Mainboard |
PCBMANDATORY | Required for mainboard replacement |
MANDATORY | Parts required for assembly (battery, charging socket, back cover) |
BATTERY | Battery |
SWAP | New device offer |
APPLESWAP | New Apple device offer |
OTHER | Other |
SIMREADER | SIM reader |
USB | USB socket |
SPEAKER | Speaker |
MIC | Microphone |
ACC | Accessories |
CONNECTOR | Connector |
VIBRA | Vibrations |
ANTENNA | Antenna |
FINGERPRINT | Fingerprint |
RECEIVER | Receiver |
SENSOR | Sensor |
SUBBOARD | Subboard |
APPLEREARSYSTEM | Back cover from Apple |
Dictionary for Services
serviceCategory | Category description |
---|---|
LABOUR | Labour |
EXPERTISE | Expertise |
ADDITIONAL | Additional services |
LOGISTIC | Logistics |
SOFTWAREUPDATE | Software update |
NFF | No fault found |
Dictionary for estimateStatusDescription attribute (only view in GET Claim Repair Order)
Value | Description |
---|---|
ClientsRejectionDecision | Customer's decision - rejection |
NoProtection | No protection |
ComplaintAccepted | Assumption of warranty liability |
ClientsResignation | Customer's resignation |
ReplacementNoParts | Replacement - spare parts shortage |
ForwardedToClaimHandler | Referred to claims handler |
ReturnedToRepairFacility | Cost estimate returned to repairer |
Complaint | Decision - complaint |
RepairFacilityExplanation | Repairer's explanation |
PaymentReceived | Payment received |
NewVersion | New version |
ComplaintUnfounded | Complaint is unfounded |
DamageOutOfScope | Damage out of scope |
LimitExceeded | Limit exceeded |
ChangingRepairFacility | Change Repair Facility |
Benefit payment | Withdrawal |
ComplaintUnfoundedNoFault | Complaint is unfounded - no fault |
ComplaintUnfoundedNewDamage | Complaint is unfounded - new damage |
Shipment status
Status | Description |
---|---|
Ordered | Order to pick up the device was sent to Courier company (from Customer or from Repair Facility) |
UnrealizedOrder | Order Cancelled by DC, Repair Facility, Courier Company |
ShipmentUnrealised | Pick up not successful |
InProgress | Courier picked up the device and is on the way (to Customer or Repair Facility) |
ShipmentUndelivered | Courier picked up the device but Customer was not present |
Delivered | Delivered to Customer or Repair Facility |