-
Notifications
You must be signed in to change notification settings - Fork 0
Returns & Replacements
The Returns functionality in the POS Portal API is used to manage product returns and replacements. This guide provides an overview of the returns-related resources, including Returns, Return Reasons, Return Items, and Call Tags, as well as important considerations when creating return and replacement orders.
NOTE: Returns are not required to be managed via the API and are independent of the ordering process. In fact, Portal Access is often the preferred method for most clients when submitting returns.
For a quick review of the workflow for submitting a return, please review the image below (click on the image to enlarge it):
Returns management involves creating returns or replacements, identifying the equipment being returned, selecting return reasons, determining how the RMA/Call Tag will be issued, and, when applicable, determining the configuration for a replacement device.
To initiate a return or replacement for an order or specific item, use the following endpoint. The {entity} parameter represents the type of entity being returned (e.g., order), and {id} is the identifier for that entity.
-
Create a Return
POST /v2/returns/{entity}/{id}
-
Get Return Details
After creating a return, use the following endpoint to retrieve its details, including the status and items associated with the return.
GET /v2/returns/{id}
The POS Portal API provides standardized return reasons that can be used when creating a return or replacement.
-
Get Return Reasons
Use the following endpoint to retrieve the available return reasons for the applicable return type.
GET /v2/returns/reasons/{type}
Before creating a return or replacement, you may need to identify the items that are eligible to be returned.
-
Get Return Items
Use the following endpoint to retrieve the items available for return for the specified entity.
GET /v2/returns/{entity}/{id}/items
The response provides information needed to identify the equipment or products being returned.
NOTE: If this request returns no items, please check with your POS Portal account manager, as some account configuration may be required for this request to return applicable data.
When creating a return, each entry in the returnItems array includes a type that determines whether the device is simply being returned or whether a replacement device should be shipped.
The two primary values are:
-
RETURN- The device is being returned and no replacement device is expected to be shipped. -
REPLACEMENT- The device is being returned and POS Portal should send a replacement device.
For a standard return, identify the deployed equipment being returned using the deployedEquipmentId and set the type to RETURN.
Example:
{
"returnItems": [
{
"type": "RETURN",
"productType": "SERIALIZED",
"deployedEquipmentId": 10847806,
"quantity": 1,
"problem": "Device no longer needed",
"reason": {
"id": 1
}
}
]
}Because no replacement device is being shipped, a modernConfiguration would generally not be required for this return item.
For a replacement, identify the deployed equipment being replaced using the deployedEquipmentId and set the type to REPLACEMENT.
POS Portal will attempt to replace the returned device using the same order item associated with the original deployed equipment. Because of this, it is generally not necessary to add the replacement device to the top-level items array.
Example:
{
"returnItems": [
{
"type": "REPLACEMENT",
"productType": "SERIALIZED",
"deployedEquipmentId": 10847806,
"quantity": 1,
"problem": "Bad battery",
"reason": {
"id": 1
},
"modernConfiguration": {
"configurations": [
{
"id": 100,
"options": [
{
"id": 200,
"attributes": [
{
"id": 300,
"value": "Example Value"
}
]
}
]
}
]
}
}
]
}The modernConfiguration within the returnItems entry represents the configuration that should be applied to the outgoing replacement device.
When replacing a serialized device, configuration requirements should be evaluated before submitting the return.
The configuration originally assigned to the deployed equipment may still be valid. However, configurations can change over time, so clients should not assume that the original configuration is always available for the replacement device.
Use the deployed equipment resource to retrieve information about the device being replaced:
GET /v2/deployedequipment/{id}This can be used to identify the Modern Device Configuration (MDC) associated with the original deployed device.
If the existing configuration is still valid for the replacement device, those configuration values can be submitted within the modernConfiguration object of the applicable returnItems entry.
If the original configuration is no longer available or a different configuration is required, retrieve the currently available configurations for the product:
GET /v2/products/{id}/configurationsSelect the appropriate configuration and include it within the modernConfiguration object for the REPLACEMENT return item.
Important: Configuration requirements are associated with the individual device being replaced. If a return contains multiple replacement devices, each
returnItemsentry can contain themodernConfigurationapplicable to that specific replacement.
The top-level items array within the Create Return request can be used when additional items need to be added to the return order.
It should not be assumed that an items entry is required simply because a replacement device is being shipped.
For example, a replacement may contain only a returnItems entry:
{
"returnItems": [
{
"type": "REPLACEMENT",
"deployedEquipmentId": 10847806,
"problem": "Bad battery",
"reason": {
"id": 1
},
"modernConfiguration": {
"configurations": [
{
"id": 100,
"options": [
{
"id": 200
}
]
}
]
}
}
]
}If additional products need to be shipped as part of the return, those products can be included separately within the top-level items array.
The issuedBy field on the Create Return request determines how the Call Tag/RMA is issued and how the return is expected to get back to POS Portal.
The available values are:
POSCLIENTELECTRONIC
Use POS when POS Portal is responsible for issuing the physical RMA/Call Tag.
In this scenario:
- POS Portal creates the Call Tag record.
- POS Portal sends the physical RMA materials needed for the merchant to return the device.
- The Call Tag remains open until the returned equipment is received and processed by POS Portal Operations.
Example:
"issuedBy": "POS"Use CLIENT when the client is responsible for coordinating and sending the equipment back to POS Portal.
In this scenario:
- POS Portal creates the Call Tag record.
- POS Portal does not send the RMA or return materials to the merchant.
- The client manages the return shipment.
- The Call Tag acts as the expected return record so POS Portal Operations can associate the equipment with the appropriate return when it is received.
- The status of the Call Tag can be viewed through available API resources or reporting.
Example:
"issuedBy": "CLIENT"An ELECTRONIC Call Tag behaves similarly to a client-issued Call Tag, with one key difference: POS Portal electronically sends the RMA to the merchant.
In this scenario:
- POS Portal creates the Call Tag record.
- POS Portal sends an email containing the RMA for the merchant to print and use when returning the equipment.
- The merchant uses the electronically provided RMA to send the device back to POS Portal.
- The Call Tag remains open until the returned equipment is received and processed.
Example:
"issuedBy": "ELECTRONIC"Important:
ELECTRONICcan only be used whenreturnItems.type = RETURN. It cannot be used for aREPLACEMENT.
For an electronically issued RMA, the return item should be submitted as a RETURN and issuedBy should be set to ELECTRONIC.
{
"issuedBy": "ELECTRONIC",
"returnItems": [
{
"type": "RETURN",
"productType": "SERIALIZED",
"deployedEquipmentId": 10847806,
"quantity": 1,
"problem": "Device no longer needed",
"reason": {
"id": 1
}
}
]
}At a high level:
-
POS= POS Portal issues the physical return materials. -
CLIENT= The client manages the return shipment; POS Portal creates the Call Tag record only. -
ELECTRONIC= POS Portal creates the Call Tag record and emails the RMA to the merchant for printing.
In some cases, an additional Call Tag may need to be issued for an existing return. An additional Call Tag creates a new RMA for equipment that is already expected to be returned to POS Portal.
For example, an additional Call Tag may be needed if the merchant has not returned the equipment within the expected timeframe or needs another RMA to complete the return.
Additional Call Tags can be issued as either:
-
CLIENT- The client is responsible for providing the new RMA and coordinating the return with the merchant. -
ELECTRONIC- POS Portal creates the new RMA and emails it to the merchant to print and use for the return.
Issuing an additional Call Tag does not create another return order or change the equipment expected back. It provides an additional RMA for the existing return.
Important: An
ELECTRONICadditional Call Tag can only be used for aRETURN, not aREPLACEMENT.
When integrating with the Returns API, keep the following behaviors in mind:
-
returnItems.type = RETURNindicates that the item is being returned without a replacement. -
returnItems.type = REPLACEMENTindicates that a replacement device should be shipped. - A replacement generally uses the same order item associated with the original deployed equipment.
- The top-level
itemsarray is not required simply because a replacement device is being shipped. - For a
REPLACEMENT,returnItems.modernConfigurationidentifies the configuration to apply to the outgoing replacement device. - Configurations should be evaluated when the replacement is created because the original device configuration may no longer be valid.
- Multiple devices can be returned or replaced within the same return request, with configuration information associated independently with each applicable
returnItemsentry. - The
issuedByfield determines how the Call Tag/RMA is issued. -
ELECTRONICcan only be used with aRETURN; it cannot be used for aREPLACEMENT. - Additional Call Tags can be used to issue a new RMA for equipment that is already expected to be returned.
For more detailed information on the Returns endpoint and its parameters, please refer to the POS Portal API Documentation.
-
Resources
