---
title: "Create Order Refund"
method: POST
path: "/orders/{orderId}/refunds"
tags: ["Refund"]
---

# Create Order Refund

`POST /orders/{orderId}/refunds`

Use this method to create a refund.

## Path parameters

- `orderId` string, required

## Request body

- union
  - OrderLevelRefundRequest
    - `type` string, required — The type of refund such as Order Level or Product Level refund.
    - `category` 'PRODUCT_LEVEL_PRODUCT' | 'PRODUCT_LEVEL_SHIPPING' | 'PRODUCT_LEVEL_FEE' | 'PRODUCT_LEVEL_DUTIES_AND_TARIFFS' | 'ORDER_LEVEL_PRODUCT' | 'ORDER_LEVEL_SHIPPING' | 'ORDER_LEVEL_FEE' | 'ORDER_LEVEL_FULL' | 'ORDER_LEVEL_TAX_EXEMPT' | 'ORDER_LEVEL_DUTIES_AND_TARIFFS', required — The refund category. (To adjust the scope of the refund.)
    - `reason` 'CUSTOMER_SATISFACTION_ISSUE' | 'DAMAGED_PRODUCT' | 'DELAYED_SHIPPING' | 'FEE_CHARGED_INCORRECTLY' | 'FEE_EXEMPT_CUSTOMER' | 'FRAUD' | 'MATCH_PROMOTIONAL_PRICE' | 'MISSING_ITEMS_FROM_ORDER' | 'NEVER_RECEIVED' | 'ORDER_PROCESSING_ERROR' | 'PHONE_ORDER_ERROR' | 'PRODUCT_SHOULD_NOT_HAVE_FEE' | 'PRODUCT_TRIALWARE' | 'TAX_EXEMPT' | 'UNABLE_TO_SHIP_TO_COUNTRY' | 'UNDELIVERABLE_ADDRESS' | 'VENDOR_APPROVED_REFUND', required — The reason for the refund.
    - `comments` string, required — Any comments added to this refund.
    - `refundAmount` RequestPrice, required
      - `value` number — The refund amount.
      - `currency` string — The refund currency.
    - `lineItems` RefundLineItemRequest[]
      - `lineItemId` string, required — Line item ID.
      - `refundAmount` RequestPrice, required
        - `value` number — The refund amount.
        - `currency` string — The refund currency.
  - ProductLevelRefundRequest
    - `type` string, required — Refund type - Product Level refund.
    - `category` 'PRODUCT_LEVEL_PRODUCT' | 'PRODUCT_LEVEL_SHIPPING' | 'PRODUCT_LEVEL_FEE' | 'PRODUCT_LEVEL_DUTIES_AND_TARIFFS', required — The refund category. (To adjust the scope of the refund.)
    - `reason` 'CUSTOMER_SATISFACTION_ISSUE' | 'DAMAGED_PRODUCT' | 'DELAYED_SHIPPING' | 'FEE_CHARGED_INCORRECTLY' | 'FEE_EXEMPT_CUSTOMER' | 'FRAUD' | 'MATCH_PROMOTIONAL_PRICE' | 'MISSING_ITEMS_FROM_ORDER' | 'NEVER_RECEIVED' | 'ORDER_PROCESSING_ERROR' | 'PHONE_ORDER_ERROR' | 'PRODUCT_SHOULD_NOT_HAVE_FEE' | 'PRODUCT_TRIALWARE' | 'TAX_EXEMPT' | 'UNABLE_TO_SHIP_TO_COUNTRY' | 'UNDELIVERABLE_ADDRESS' | 'VENDOR_APPROVED_REFUND', required — The reason for the refund.
    - `comments` string, required — Any comments added to this refund.
    - `lineItems` union, required
      - ProductLevelWithFeeRequest
        - `lineItemId` string — Line item ID.
        - `refundAmount` RequestPrice
          - `value` number — The refund amount.
          - `currency` string — The refund currency.
        - `lineItemFees` RefundLineItemFee
          - `feeType` string, required
          - `refundAmount` RequestPrice, required
            - `value` number — The refund amount.
            - `currency` string — The refund currency.
      - ProductLevelWithoutFeeRequest
        - `lineItemId` string — Line item ID.
        - `refundAmount` RequestPrice
          - `value` number — The refund amount.
          - `currency` string — The refund currency.

## Response `200`

Successful response.

- union
  - OrderLevelRefundResponse
    - `refunds` object[]
      - `id` string — The system-assigned refund ID for this order.
      - `status` string — The current status of the refund.
      - `reason` string — The reason for the refund.
      - `comments` string — Any comments added to this refund.
      - `type` string — The type of refund such as Order Level or Product Level refund.
      - `category` string — The refund category.
      - `generationDate` string — The date and time the refund was requested.
      - `generatedBy` string — The login ID of the person who issued the refund.
      - `origin` string — The requester who initiated the refund.
      - `policy` string — Lists the return policy for the products.
      - `currency` string — The refund currency.
      - `totalRefunded` object — The total amount that is refunded at this time.
      - `outstanding` object — The outstanding amount on the refund request.
      - `totalRequested` object — The total amount requested for the refund.
  - ProductLevelRefundResponse
    - `refunds` object[]
      - `id` string — The system-assigned refund ID for this order.
      - `status` string — The current status of the refund.
      - `reason` string — The reason for the refund.
      - `comments` string — Any comments added to this refund.
      - `type` string — The type of refund such as Order Level or Product Level refund.
      - `category` string — The refund category.
      - `generationDate` string — The date and time the refund was requested.
      - `generatedBy` string — The login ID of the person who issued the refund.
      - `origin` string — The requester who initiated the refund.
      - `policy` string — Lists the return policy for the products.
      - `currency` string — The refund currency.
      - `totalRefunded` object — The total amount that is refunded at this time.
      - `outstanding` object — The outstanding amount on the refund request.
      - `totalRequested` object — The total amount requested for the refund.
      - `lineItems` RefundLineItemResponse[]
        - `status` string — The current status of the line item.
        - `expectedQuantity` integer — The number of the product expected to be returned for the refund.
        - `returnedQuantity` integer — The actual number of the product returned for the refund.
        - `type` string — The type of product in the refund.
        - `notes` string — Any notes about the refund.
        - `date` string — The date of the refund.
        - `product` ProductReference
          - `companyId` string — The company’s ID.
          - `id` string — The product ID.
          - `externalId` string — The product ID from the client side.
        - `lineItemId` string — The ID of the line item.

## Other responses

- `400` — Bad Request
- `403` — Invalid token
- `404` — * Order not found * LineItem not found * Invalid refund
- `409` — * Invalid Refund Type * Invalid Refund Category * Invalid Refund Reason * Invalid Refund Amount

---

[API](https://skmtc.net/digitalriver/apis/commerce-api-suite-admin-apis.md) · [All operations](https://skmtc.net/digitalriver/apis/commerce-api-suite-admin-apis/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/digitalriver/commerce-api-suite-admin-apis/revisions/a6efafc1669c/schema)
