# Create a new online transaction

A request to this endpoint must be preceded by a call to
`/charge` with the price of the goods specified in `price`.

Endpoint: POST /api/v1/me/transactions
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.

## Request fields (application/json):

  - `charge` (integer, required)
    The `charge` value returned from a request to
`/charge`.

  - `charge_calculator_version` (integer, required)
    The `charge_calculator_version` value returned from a request to `/charge`.

  - `charge_config` (integer)
    The charge config for which the charge amount is computed.

  - `charge_seller` (integer)
    The seller `charge` value returned from a
request to `/charge`.

  - `client_id` (string)

  - `currency` (string, required)
    The currency that the `price` is specified in.

  - `description` (string, required)
    A description of the goods being sold.

  - `features` (array)
    `features` contains flags that modify the
transaction flow.

  - `payment_method` (string)
    The payment method to use for the transaction.

  - `price` (integer, required)
    The price of the goods being sold, in the
`currency`'s smallest unit.  The `charge` value
should correspond to the Trustap charge created
with this price, otherwise this request will
fail with a `400` error.

  - `role` (string, required)
    Enum: "buyer", "seller"

## Response 201 fields (application/json):

  - `amount_refunded` (integer)

  - `amount_released` (integer)

  - `buyer_id` (string)

  - `cancelled` (string)

  - `charge` (integer, required)

  - `charge_buyer_client` (integer, required)

  - `charge_international_payment` (integer)

  - `charge_postage_buyer` (integer)

  - `charge_postage_client` (integer)

  - `charge_seller` (integer, required)

  - `charge_seller_client` (integer, required)

  - `claimed_by_buyer` (string)

  - `client_id` (string, required)

  - `complained` (string)

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

  - `complaint.description` (string, required)

  - `complaint_period_deadline` (string)

  - `complaint_period_ended` (string)

  - `created` (string, required)

  - `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.

  - `delivered` (string)

  - `denied` (string)

  - `description` (string, required)

  - `funds_released` (string)

  - `id` (integer, required)

  - `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_payment_in_progress` (boolean, required)
    If the transaction 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)

  - `listing_creator_accepted` (string)

  - `listing_creator_rejected` (string)

  - `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"

  - `order_issue` (object)
    Example: {"description":"Delivery delayed"}

  - `order_issue.description` (string, required)

  - `order_issue_raised` (string)

  - `paid` (string)

  - `payment_accepted` (string)

  - `payment_refunded` (string)

  - `posta_hr_tracking` (object)
    Example: {"barcode":"ABC123456","barcode_generated":"2019-12-26T14:00:00Z"}

  - `posta_hr_tracking.barcode` (string, required)

  - `posta_hr_tracking.barcode_generated` (string, required)

  - `price` (integer, required)

  - `quantity` (integer, required)

  - `refunds` (array)

  - `refunds.amount` (integer, required)

  - `refunds.id` (string, required)

  - `refunds.refunded` (string, required)

  - `released_to_seller` (boolean)

  - `review` (object)

  - `review.approved` (boolean)

  - `review.finished` (string)

  - `review.outcome_reason` (string)

  - `review.started` (string)

  - `review_flagged` (string)

  - `seller_id` (string)

  - `shippo_transaction_id` (string)

  - `status` (string, required)

  - `tracked` (string)

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

  - `tracking.carrier` (string, required)

  - `tracking.tracking_code` (string, required)

  - `tracking_details_deadline` (string)

  - `tracking_details_window_started` (string)

## Response 400 fields (application/json):

  - `code` (string, required)

  - `error` (string, required)
    A contextual description of the error that occurred. When
handling errors the `code` field should be used to determine
the type of error that occurred, as the text in the `error`
field may change unexpectedly.

