---
title: "POST /transactions/return"
method: POST
path: "/transactions/return"
---

# POST /transactions/return

`POST /transactions/return`

## Request body

- ReturnPointsRequestBody
  - `member_id` string, required — Unique Identifier (Member ID) for the member object in the client’s system which was used while creating a member in Zinrelo.
  - `transaction_attributes` string, json — <p style="color: #252525;">In order to return points for "made_a_purchase" activity, the mandatory field is <strong style="color: #252525;">order_id</strong>. With this, you can also pass <strong style="color: #252525;">returned_product_id and returned_product_quantity</strong> together or just <strong style="color: #252525;">returned_amount.</strong> </p> <p style="color: #252525;"><strong>Note:</strong> If you just pass "order_id," the amount will be fully returned.</p> <p><strong> We are also accepting product quantities in decimal values.</p></strong> <p>For example:</p> <p><code class="c-mrkdwn__code" data-stringify-type="code">{</code></p> <p><code class="c-mrkdwn__code" data-stringify-type="code">"tags" : ["ProductReturn"],</code><br /><code class="c-mrkdwn__code" data-stringify-type="code">"reason" : "Order partially returned",</code><code class="c-mrkdwn__code" data-stringify-type="code"></code><br /><code class="c-mrkdwn__code" data-stringify-type="code">"order_id" : "56789", </code><br /><code class="c-mrkdwn__code" data-stringify-type="code">"returned_amount" : "200" </code><br /><code class="c-mrkdwn__code" data-stringify-type="code">}</code></p> <p><code class="c-mrkdwn__code" data-stringify-type="code">or</code></p> <p><code class="c-mrkdwn__code" data-stringify-type="code">{</code><br /><code class="c-mrkdwn__code" data-stringify-type="code">"order_id" : "56789", </code><br /><code class="c-mrkdwn__code" data-stringify-type="code">"returned_product_id" : "1235BCDI", </code><br /><code class="c-mrkdwn__code" data-stringify-type="code">"returned_product_quantity" : 2</code><br /><code class="c-mrkdwn__code" data-stringify-type="code">}</code></p>

## Response `200`

200

- ReturnPointsDataObject
  - `data` ReturnPointsResponseObject
    - `status` string — The return status is approved, pending, or rejected.
    - `transaction_attributes` ReturnPointsTransactionAttributesObject
      - `returned_product_id` string — The unique ID of the returned product.
      - `tags` string[] — The tags associated with the transaction.
      - `order_id` string — The unique ID associated with the order.
      - `reason` string — The reason behind the return transaction.
      - `returned_amount` integer — The total amount returned.
      - `returned_product_quantity` string — The total number of products returned.
    - `last_modified_date` string — The recent date on which the returned transaction was updated.
    - `additional_data` ReturnPointsAdditionalDataObject
      - `returned_orders_revenue` integer — The amount of the returned order.
      - `product_id` string — The unique identifier linked to the product that was returned in a transaction.
      - `quantity` integer — The quantity of the returned product.
    - `approver_details` ReturnPointsApproverDetailsObject
      - `approver_name` string — The person or source who approves the transaction.
      - `approver_id` string — The unique ID associated with the approver.
    - `approved_date` string — The date on which the returned transaction was approved.
    - `member_id` string — The unique identifier of the member defined by an Admin.
    - `created_date` string — The date on which returned transaction was created.
    - `transaction_type` string — This field specifies the transaction type. In the case of the return API, it will always be designated as "deduct."
    - `id` string — The internal ID generated by Zinrelo.
    - `deduct_info` ReturnPointsDeductInfoObject
      - `points` integer — The points that are to be deducted.
      - `points_status` string — The point status could be either deducted, pending_deducted or rejected.
      - `unable_to_deduct` integer — "Unable to deduct" occurs when the return amount surpasses the initially awarded points; for instance, if we aim to deduct 1000 points for a return, yet the user has already redeemed those points, resulting in 300 points that cannot be deducted.
  - `success` boolean

## Other responses

- `400` — 400

---

[API](https://skmtc.net/trueloyal/apis/admin-apis.md) · [All operations](https://skmtc.net/trueloyal/apis/admin-apis/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/trueloyal/admin-apis/versions/c12d3d379897/schema)
