---
title: "Submit a complaint for this transaction"
method: POST
path: "/v2/transactions/{transaction_id}/submit_complaint"
tags: ["Transaction Issues"]
---

# Submit a complaint for this transaction

`POST /v2/transactions/{transaction_id}/submit_complaint`

A complaint is submitted for problems with transactions after the order
has been shipped or handover has been confirmed. Before that an order
issue should be submitted instead.

## Path parameters

- `transaction_id` string, required

## Headers

- `Trustap-User` string

## Request body

- object
  - `category` 'item_not_received' | 'item_not_as_described' | 'other'
  - `description` string, required

## Response `200`

OK

- V2TransactionsTransaction
  - `buyer` V2TransactionsUser
    - `id` string, required
    - `is_guest` boolean, required
  - `cancellation` object
    - `description` string, required
  - `client_id` string, required
  - `complaint` object
    - `accepted` string, date-time
    - `category` 'item_not_received' | 'item_not_as_described' | 'other', required
    - `description` string, required
  - `contains_shipping` boolean
  - `deadlines` object, required — This property contains all possible actions that have associated deadlines for completion. Actions with `null` do not have deadlines currently pending.
    - `complaints` string, date-time, nullable
  - `description` string, required
  - `events` V2TransactionsEvents, required
    - `by_key` object, required — These fields indicate the time that the first instance of the given event occurred. Where events can repeat (such as `refunded`), duplicate instances can be retrieved from the `by_time` sibling property.
      - `buyer_handover_confirmed` string, date-time
      - `cancelled` string, date-time
      - `claimed_by_buyer` string, date-time
      - `claimed_by_seller` string, date-time
      - `complaint_period_ended` string, date-time
      - `complaint_submitted` string, date-time
      - `created` string, date-time, required
      - `delivered` string, date-time
      - `funds_released` string, date-time
      - `joined` string, date-time
      - `order_issue_submitted` string, date-time
      - `paid` string, date-time
      - `payment_accepted` string, date-time
      - `refunded` string, date-time
      - `rejected` string, date-time
      - `review_flagged` string, date-time
      - `seller_handover_confirmed` string, date-time
      - `tracked` string, date-time
    - `by_time` object[], required
      - `at` string, date-time, required
      - `by` string — This contains the ID of the user that triggered this event. It is not present for events that are triggered by the platform, such as by automated systems.
      - `code` string, required
  - `funds_release` object
    - `payout_id` string
    - `refunds` object[], required
      - `amount` integer, required
      - `id` string, required
    - `released_to_seller` boolean, required
  - `id` string, type_id, required
  - `join_code` string
  - `metadata` object — Arbitrary key-value string pairs for adding extra information to transactions.
  - `order_issue` object
    - `category` 'item_not_received' | 'other', required
    - `description` string, required
  - `payment_link` string — URL to the actions page where the buyer can pay the deposit.
  - `pricing` V2TransactionsPricing, required
    - `amount` integer, required
    - `amount_extra` integer, required — Represents an additional charge to be paid by the buyer added to the transaction total. Use this field to include costs like processing fees or local taxes. Must be an integer provided in the smallest unit of the currency (for example, 500 for $5.00 USD). Defaults to 0 if not provided.
    - `amount_postage` integer — Represents an additional charge to be paid by the buyer, seller or client. Use this field to include costs like shipping surcharges. Must be an integer provided in the smallest unit of the currency (for example, 500 for $5.00 USD).
    - `currency` string, currency, required — The currency of the transaction. Note that, at present, the buyer must pay using the transaction's currency and the seller will be paid in the transaction's currency. Conversion to this currency will happen automatically during payment if the buyer pays with a different currency.
    - `fees` object, required
      - `buyer` integer, required
      - `buyer_client` integer, required
      - `international_payment` integer
      - `seller` integer, required
      - `seller_client` integer, required
    - `postage_bearer` 'buyer' | 'seller' | 'client' — Indicates who is responsible for paying the postage amount. Only present if `amount_postage` is provided.
  - `review` object
    - `approved` boolean, required
    - `outcome_reason` string, required
  - `seller` V2TransactionsUser
    - `id` string, required
    - `is_guest` boolean, required
  - `status` 'created' | 'joined' | 'rejected' | 'cancelled' | 'paid' | 'review_flagged' | 'payment_accepted' | 'complaint_submitted' | 'complaint_period_ended' | 'refunded' | 'buyer_handover_confirmed' | 'seller_handover_confirmed' | 'tracked' | 'delivered' | 'funds_released' | 'claimed_by_buyer' | 'claimed_by_seller', required
  - `tracking` V2TransactionsTracking
    - `carrier` string, required
    - `tracking_code` string, required

## Other responses

- `400` — Bad Request

---

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