Skip to content

RMAs (4.0.0)

Introduction

When an RMA event occurs in the returns portal, Optoro will notify your webhook about the RMA and its details. These events can be at the time your customer has created an RMA or when the RMA has been shipped.

Optoro's system will make an HTTP POST request to the API endpoint at the configured URL. The API endpoint will need to return an HTTP 200-299 status for a webhook to be considered successful.

See the Webhook Message Behaviors for more details about aspects to consider regarding message delivery.

When it is used

  • Optoro posts an RMAs message to you when the shopper initiates a return.
  • Optoro posts an RMAs message to you when carrier tracking details are provided (when applicable).
  • Optoro posts an RMAs message to you when the carrier receives and scans the return.
  • Optoro posts an RMAs message when the shopper drops off the return at a drop-off location or when a pick-up partner picks up the return from the shopper.
  • Optoro posts an RMAs message when the item is received (and ready for refund) when you also use Optoro’s Returns Management solution.
  • Optoro posts an RMAs message to you after you update the order with refund details in the Refunds object of the Returns Portal Order API.

Changelog

Version 4

  • FEATURE: There is a new top-level field bonus_credit_amount_cents (applicable for instant store credit refunds).
  • BREAKING: The UNEVEN_GC item refund type value is renamed to INSTANT_STORE_CREDIT.
  • BREAKING: The EVEN_EXCHANGE item refund type value is renamed to INSTANT_EXCHANGE.
Download OpenAPI description
Languages
Servers
Mock server
https://developer.optoro.com/_mock/openapi/rmas/4/openapi

RMA Event

Request

Headers
X-Optiturn-Idstringrequired
Example: Modrno
X-Optiturn-Api-Versionstringrequired
Value3
Bodyapplication/jsonrequired

The RMA webhook provides details of the return as it progresses through the various lifecycle events.

On the right you will find example payloads listed that correspond to a specific type of the return. These are not inclusive of events that could happen on the RMA such as a warehouse receipt or tracking event.

rma_identifierstringrequired

Identifier of the RMA.

Example: "RMA123"
statusstringrequired

The status of the RMA.

Enum"PENDING_EXCHANGE""CREATED""REFUNDED""PARTIAL_REFUND""CANCELED"
created_atstringrequired

Creation date in ISO 8601 format, UTC.

Example: "2018-08-30T15:39:42.025Z"
updated_atstring

Last updated date in ISO 8601 format, UTC.

Example: "2018-08-30T15:39:42.025Z"
itemsArray of objects(rma_item)required

List of items that are being returned in the RMA.

items[].​order_line_item_identifierstringrequired

The item's identifier in the order.

Example: "1"
items[].​order_identifierstringrequired

Public facing identifier for the order.

Example: "O9876"
items[].​secondary_identifierstring

OMS or backend system identifier for the original order. Used when ecommerce and fulfillment platforms have unique identifiers.

Example: "STVMD0123"
items[].​exchange_order_identifierstring

The identifier of the exchange order. Used when the item being returned was chosen to be exchanged.

Example: ""
items[].​original_order_identifierstring

Only populated when returning an exchange item. Refers back to the order that was exchanged.

Example: ""
items[].​return_reasonstringrequired

The shopper chosen reason for returning the item.

Example: "Too Small"
items[].​is_exchangeboolean

Indicates whether the RMA item belongs to an exchange order

Example: false
items[].​skustringrequired

Unique product identifier of item.

Example: "Sku1234"
items[].​upcstringrequired

Unique product code of item.

Example: "00123456789012"
items[].​tracking_numberstring

Tracking number of the package the item is located in.

Example: "1Z938174729103"
items[].​package_tracking_statusstring

The status of the package that the RMA item is in. For Express Returns, ACCEPTED is when item has been accepted at a dropoff location. For Home Pickups, ACCEPTED is when the item has been picked up by a pickup provider. Upon carrier scan a package status can be moved to TRANSIT

Enumnull"PRE_TRANSIT""ACCEPTED""TRANSIT""DELIVERED""RETURNED""FAILURE"
items[].​receiving_statusstring

The item's receiving status. Only populated when using Optoro's Returns Management.

Enum"PENDING""RECEIVED""NOT_RECEIVED"
items[].​refund_financialsobjectrequired

RMA item financial information used for calculating the refund amount.

items[].​refund_financials.​estimated_refund_amount_centsintegerrequired

Total possible refund amount based on goods returned.

Example: 100
items[].​refund_financials.​optoro_refund_amount_centsintegerrequired

Amount Optoro will be paid based on instant exchange usage.

Example: 0
items[].​refund_financials.​shopper_refund_amount_centsintegerrequired

Estimated amount the shopper will be refunded based on instant exchange usage.

Example: 100
items[].​refund_typestringrequired

The refund type for the item.

Enum"REFUND""STANDARD_EXCHANGE""INSTANT_EXCHANGE""INSTANT_STORE_CREDIT"
return_methodstringrequired

Return method used to return the RMA.

Enum"mail-back""express-returns""customer-keep""home-pickup"
Example: "mail-back"
return_shipping_cost_centsintegerrequired

The return shipping cost.

Example: 100
bonus_credit_amount_centsintegerrequired

The bonus credit granted to the shopper.

Example: 500
gift_refund_onlybooleanrequired

If true, only issue a gift card and do not refund original purchase payment.

Example: true
giftee_emailstring

Email to send gift card when gift_refund_only is true

Example: "giftee@example.com"
warehouse_idstring

Warehouse that return goods will be shipped to when using dynamic package routing

Example: ""
receiving_completeboolean

This is for RM only.

Example: false
conceptstring

RMA portal identifier

Example: "concept_!"
vendorstring

Vendor name from third party tag. Only present if any of the products of the corresponding order has this type of tag.

Example: "modrno"
curl -i -X POST \
  https://developer.optoro.com/_mock/openapi/rmas/4/openapi/rmas \
  -H 'Content-Type: application/json' \
  -H 'X-Optiturn-Api-Version: 3' \
  -H 'X-Optiturn-Id: Modrno' \
  -d '{
    "rma_identifier": "rma1234",
    "status": "CREATED",
    "created_at": "2018-08-30T15:39:42.025Z",
    "updated_at": "2018-08-30T15:39:42.025Z",
    "items": [
      {
        "order_line_item_identifier": "1",
        "order_identifier": "o12345",
        "secondary_identifier": "soi12345",
        "exchange_order_identifier": "eoid23456",
        "original_order_identifier": "ooid3456",
        "return_reason": "Too Small",
        "is_exchange": true,
        "sku": "Sku1234",
        "upc": "UPC1234",
        "tracking_number": "1Z403818413131",
        "package_tracking_status": "PRE_TRANSIT",
        "receiving_status": "PENDING",
        "refund_financials": {
          "estimated_refund_amount_cents": 1000,
          "optoro_refund_amount_cents": 0,
          "shopper_refund_amount_cents": 1000
        },
        "refund_type": "REFUND"
      }
    ],
    "return_method": "mail-back",
    "return_shipping_cost_cents": 100,
    "bonus_credit_amount_cents": 0,
    "receiving_complete": false,
    "gift_refund_only": false,
    "giftee_email": "testemail@domain.com",
    "warehouse_id": "1",
    "vendor": "modrno",
    "concept": "concept"
  }'

Responses

Success