# Submit a complaint for this face-to-face transaction

Offline access is allowed for this endpoint when the user has granted the p2p_tx:offline_complain scope to the client that is performing the request.

Endpoint: POST /api/v1/p2p/transactions/{transaction_id}/complain
Version: 0.1.0
Security: OAuth2, APIKey

## Header parameters:

  - `Trustap-User` (string)
    Required in client flows, where you make API calls on behalf of another Trustap user.

## Path parameters:

  - `transaction_id` (integer, required)

## Request fields (application/json):

  - `category` (string)
    Enum: "item_not_received", "item_not_as_described", "other"

  - `description` (string, required)
    Example: "Item was fake"

## Response 200 fields (application/json):

  - `allocate_extra_price_to_client` (boolean)

  - `allocate_postage_price_to` (string)
    Enum: "seller", "client", "service"

  - `amount_refunded` (integer)

  - `amount_released` (integer)

  - `buyer_handover_confirmed` (string)
    Example: "2019-12-25T16:00:00Z"

  - `buyer_id` (string)
    Example: "feb33a87-3917-4538-9260-127c8a6b5232"

  - `buyer_is_guest` (boolean)

  - `cancellation` (object)

  - `cancellation.reason` (string, required)

  - `cancelled` (string)

  - `charge_config` (integer)
    Example: 1

  - `claimed_by_buyer` (string)

  - `claimed_by_seller` (string)

  - `client_accrual_net` (integer)

  - `client_id` (string, required)
    Example: "trustap-app"

  - `complained` (string)

  - `complaint` (object)
    Example: {"category":"other","description":"Item was fake"}

  - `complaint.accepted` (string)

  - `complaint.category` (string, required)
    Enum: same as `category` (3 values)

  - `complaint.description` (string, required)
    Example: "Item was fake"

  - `complaint_period_deadline` (string)

  - `complaint_period_ended` (string)

  - `contains_shipping` (boolean)

  - `created` (string, required)
    Example: "2019-12-25T09:00:00Z"

  - `currency` (string, 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.
    Example: "eur"

  - `delivered` (string)

  - `deposit_accepted` (string)
    Example: "2019-12-25T12:00:00Z"

  - `deposit_paid` (string)
    Example: "2019-12-25T11:00:00Z"

  - `deposit_pricing` (object, required)
    Example: {"charge":78,"charge_buyer_client":0,"charge_buyer_service":78,"charge_seller":0,"charge_seller_client":0,"charge_seller_service":0,"extra_processing_charge":0,"postage_processing_charge":0,"price":1234,"price_extra":0}

  - `deposit_pricing.charge` (integer, required)
    The total charge of the transaction paid by the buyer.
This is the sum of charge_buyer_service + charge_buyer_client.
    Example: 78

  - `deposit_pricing.charge_buyer_client` (integer, required)
    Portion of the charge paid by the buyer that is collected as commission for the customer.

  - `deposit_pricing.charge_buyer_service` (integer, required)
    Portion of the charge that has been paid by the buyer that is collected as the Trustap fee.
    Example: 78

  - `deposit_pricing.charge_international_payment` (integer)
    This charge is added to the seller charge if the payment method used in a transaction is from a different economic region to the seller.

  - `deposit_pricing.charge_seller` (integer, required)
    Portion of the charge paid by the seller.
This is the sum of charge_seller_client + charge_seller_service + charge_international_payment.

  - `deposit_pricing.charge_seller_client` (integer, required)
    Portion of the charge deducted from the seller's payout that that is collected as commission for the platform.

  - `deposit_pricing.charge_seller_service` (integer, required)
    Portion of the charge paid by the seller that is collected as the Trustap fee.

  - `deposit_pricing.deposit_fee_multiplier` (object)

  - `deposit_pricing.deposit_fee_multiplier.fee_multiplier` (number, required)

  - `deposit_pricing.extra_processing_charge` (integer, required)
    Fee collected to cover the processing costs associated with price_extra.
This charge is configurable in the Trustap Dashboard and is paid by either the client or the seller.

  - `deposit_pricing.postage_bearer` (string)
    Indicates who is responsible for paying the postage price.
Only present if price_postage is provided.
    Enum: "buyer", "seller", "client"

  - `deposit_pricing.postage_processing_charge` (integer)
    Fee collected to cover the processing costs associated with price_postage.
This charge is configurable in the Trustap Dashboard and is paid by either the client or the seller.

  - `deposit_pricing.price` (integer, required)
    The base price of the item or service in the transaction.
    Example: 1234

  - `deposit_pricing.price_extra` (integer, required)
    This field adds an additional cost to the transaction.
Use it to charge a buyer for things like tax or fulfillment costs.
The price_extra field is separate from the price` field. This separation displays the additional cost apart from the base price on the Trustap payment page.
It also helps clients track the breakdown of charges.

  - `deposit_pricing.price_postage` (integer)
    This field adds an additional cost to the transaction.
Use it to charge a buyer for things like shipping costs.
The price_postage field is separate from the price` field. This separation displays the additional cost apart from the base price on the Trustap payment page.
It also helps clients track the breakdown of charges.

  - `deposit_refunded` (string)

  - `deposit_review` (object)

  - `deposit_review.approved` (boolean)

  - `deposit_review.finished` (string)

  - `deposit_review.outcome_reason` (string)

  - `deposit_review.started` (string)

  - `deposit_review_flagged` (string)

  - `description` (string, required)
    Example: "Soccer ticket"

  - `funds_released` (string)
    Example: "2019-12-25T17:00:00Z"

  - `id` (integer, required)
    Example: 1309

  - `image_url` (string)
    URL of the image displayed on the Trustap payment page to show the buyer
the item they are paying for.
Supports jpg, png, gif, bmp and svg files. Images displayed as a squares.
Non-square images are cropped

  - `is_deposit_payment_in_progress` (boolean, required)
    If the deposit is paid via a delayed payment method,
such as SEPA debit, this field will be true until the
payment has fully succeeded or failed.

  - `is_remainder_payment_in_progress` (boolean, required)
    If the remainder is paid via a delayed payment method,
such as SEPA debit, this field will be true until the
payment has fully succeeded or failed.

  - `join_code` (string)

  - `joined` (string)
    Example: "2019-12-25T10:00:00Z"

  - `listing_id` (string)
    If the transaction is created from a listing then this is
the ID of that listing; otherwise this property is omitted.

  - `listing_type` (string)
    Enum: "single_use", "multi_use"

  - `metadata` (object)
    Arbitrary key-value string pairs, which allows the addition of extra
information to transactions outside of the prescribed fields. For
example, when a transaction is used to power a product on an ecommerce
marketplace, the the product ID can be added to the transaction for
reference.

  - `order_issue` (object)
    Example: {"category":"other","description":"Item was not delivered"}

  - `order_issue.category` (string, required)
    Enum: "item_not_received", "other"

  - `order_issue.description` (string, required)
    Example: "Item was not delivered"

  - `order_issue_raised` (string)

  - `payout_id` (string)

  - `priced` (string)
    Example: "2019-12-25T13:00:00Z"

  - `pricing` (object)
    Example: {"charge":78,"charge_buyer_client":0,"charge_buyer_service":78,"charge_seller":0,"charge_seller_client":0,"charge_seller_service":0,"extra_processing_charge":0,"postage_processing_charge":0,"price":1234,"price_extra":0}

  - `quantity` (integer, required)
    Example: 1

  - `refunded` (string)

  - `refunds` (array)

  - `refunds.amount` (integer, required)

  - `refunds.id` (string, required)

  - `refunds.refunded` (string, required)

  - `rejected` (string)

  - `released_to_seller` (boolean)

  - `remainder_paid` (string)
    Example: "2019-12-25T14:00:00Z"

  - `remainder_review` (object)

  - `remainder_review_flagged` (string)

  - `remainder_skipped` (string)

  - `seller_handover_confirmed` (string)
    Example: "2019-12-25T15:00:00Z"

  - `seller_id` (string)
    Example: "ad5bb99f-85bf-47e1-be0d-15e7541c6ad7"

  - `seller_is_guest` (boolean)

  - `seller_phone_number` (string)

  - `skip_remainder` (boolean, required)
    If skip_remainder is true then this transaction will
move to the "confirm handover" step after the deposit has
been accepted.

  - `status` (string, required)
    Example: "funds_released"

  - `tracked` (string)

  - `tracking` (object)
    Example: {"carrier":"ups","tracking_code":"***"}

  - `tracking.carrier` (string, required)
    Example: "ups"

  - `tracking.tracking_code` (string, required)
    Example: "***"


## Response 400 fields

## Response 404 fields
