# Create a new online transaction with both users This endpoint is an optimised call that allows a transaction to be created and joined in a single request. It requires the user identified by to have granted the scope to the client that is performing the request. Endpoint: POST /me/transactions/create_and_join Version: 0.1.0 Security: OAuth2 ## Request fields (application/json): - `charge` (integer, required) The value returned from a request to . Example: 78 - `charge_calculator_version` (integer, required) The value returned from a request to . Example: 5 - `charge_seller` (integer) The seller value returned from a request to . - `client_id` (string) - `creator_role` (string, required) Enum: "buyer", "seller" - `currency` (string, required) The currency that the is specified in. Example: "eur" - `description` (string, required) A description of the goods being sold. Example: "Soccer ticket" - `features` (array) contains flags that modify the transaction flow. Enum: "require_seller_acceptance", "use_hr_post", "use_shippo" - `join_user_id` (string, required) The user that will be joined to the new transaction when it is created. It cannot be the ID of the user making the request. Example: "feb33a87-3917-4538-9260-127c8a6b5232" - `postage_fee` (integer) The custom for the transaction. - `price` (integer, required) The price of the goods being sold, in the 's smallest unit. The value should correspond to the Trustap charge created with this price, otherwise this request will fail with a error. Example: 1234 ## Response 201 fields (application/json): - `amount_refunded` (integer) - `amount_released` (integer) - `buyer_id` (string) Example: "feb33a87-3917-4538-9260-127c8a6b5232" - `cancelled` (string) - `charge` (integer, required) Example: 78 - `charge_international_payment` (integer) - `charge_postage_buyer` (integer) - `charge_postage_client` (integer) - `charge_seller` (integer, required) - `claimed_by_buyer` (string) - `client_id` (string, required) Example: "trustap-app" - `complained` (string) - `complaint` (object) Example: {"description":"Item was fake"} - `complaint.description` (string, required) Example: "Item was fake" - `complaint_period_deadline` (string) - `complaint_period_ended` (string) - `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) Example: "2019-12-25T13:00:00Z" - `denied` (string) - `funds_released` (string) Example: "2019-12-26T14:00:00Z" - `id` (integer, required) Example: 1309 - `is_payment_in_progress` (boolean, required) If the transaction is paid via a delayed payment method, such as SEPA debit, this field will be until the payment has fully succeeded or failed. - `join_code` (string) - `joined` (string) Example: "2019-12-25T10:00:00Z" - `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_raised` (string) - `paid` (string) Example: "2019-12-25T11:00:00Z" - `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) Example: "ABC123456" - `posta_hr_tracking.barcode_generated` (string, required) Example: "2019-12-26T14:00:00Z" - `price` (integer, required) Example: 1234 - `quantity` (integer, required) Example: 1 - `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) Example: "ad5bb99f-85bf-47e1-be0d-15e7541c6ad7" - `shippo_transaction_id` (string) - `status` (string, required) Example: "funds_released" - `tracked` (string) Example: "2019-12-25T12:00:00Z" - `tracking` (object) Example: {"carrier":"ups","tracking_code":"***"} - `tracking.carrier` (string, required) Example: "ups" - `tracking.tracking_code` (string, required) Example: "***" - `tracking_details_deadline` (string) - `tracking_details_window_started` (string) ## Response 400 fields (application/json): - `code` (string, required) Example: "negative_price" - `error` (string, required) A contextual description of the error that occurred. When handling errors the field should be used to determine the type of error that occurred, as the text in the field may change unexpectedly. Example: "`price` cannot be negative"