거래 취소
Cancels an open trade (one that has not yet been accepted or cancelled). Note that only the player who created the trade can cancel it via this API call, to prevent griefing of the trade system (cancelling trades in order to prevent other players from accepting them, for trades that can be claimed by more than one player).
Error codes
This operation may return the following PlayFab errors:
| Error | Code |
|---|---|
| ProductDisabledForTitle | 1609 |
| TradeAlreadyFilled | 1163 |
| TradeCancelled | 1162 |
| TradeDoesNotExist | 1161 |
| TradeStatusNotValidForCancelling | 1159 |
| TradeWaitForStatusTimeout | 1164 |
POST
/
Client
/
CancelTrade
Cancel Trade
curl --request POST \
--url https://{titleId}.playfabapi.com/Client/CancelTrade \
--header 'Content-Type: application/json' \
--header 'X-Authorization: <api-key>' \
--data '
{
"TradeId": "D819CEC225EA9948C351"
}
'import requests
url = "https://{titleId}.playfabapi.com/Client/CancelTrade"
payload = { "TradeId": "D819CEC225EA9948C351" }
headers = {
"X-Authorization": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-Authorization': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({TradeId: 'D819CEC225EA9948C351'})
};
fetch('https://{titleId}.playfabapi.com/Client/CancelTrade', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://{titleId}.playfabapi.com/Client/CancelTrade",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'TradeId' => 'D819CEC225EA9948C351'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-Authorization: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://{titleId}.playfabapi.com/Client/CancelTrade"
payload := strings.NewReader("{\n \"TradeId\": \"D819CEC225EA9948C351\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-Authorization", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://{titleId}.playfabapi.com/Client/CancelTrade")
.header("X-Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"TradeId\": \"D819CEC225EA9948C351\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://{titleId}.playfabapi.com/Client/CancelTrade")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-Authorization"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"TradeId\": \"D819CEC225EA9948C351\"\n}"
response = http.request(request)
puts response.read_body{
"code": 200,
"status": "OK",
"data": {
"Trade": {
"Status": "Cancelled",
"TradeId": "D819CEC225EA9948C351",
"OfferingPlayerId": "CD803BF233CE76CC",
"OfferedInventoryInstanceIds": [
"1359447",
"635691"
],
"RequestedCatalogItemIds": [
"rare_hat_7"
],
"OpenedAt": "2015-04-07T09:04:28+00:00",
"CancelledAt": "2015-04-07T09:18:24+00:00"
}
}
}{
"code": 123,
"errorCode": 123,
"status": "<string>",
"error": "<string>",
"errorMessage": "<string>",
"errorDetails": {}
}인증
This API requires a client session ticket, available from any Client Login function.
본문
application/json
Trade identifier.
응답
The Http status code. If X-ReportErrorAsSuccess header is set to true, this will report the actual http error code.
The Http status code as a string.
Show child attributes
Show child attributes
예시:
{
"Trade": {
"Status": "Cancelled",
"TradeId": "D819CEC225EA9948C351",
"OfferingPlayerId": "CD803BF233CE76CC",
"OfferedInventoryInstanceIds": ["1359447", "635691"],
"RequestedCatalogItemIds": ["rare_hat_7"],
"OpenedAt": "2015-04-07T09:04:28+00:00",
"CancelledAt": "2015-04-07T09:18:24+00:00"
}
}
마지막 수정일 2026년 10월 6일
이 페이지가 도움이 되었나요?
⌘I
Cancel Trade
curl --request POST \
--url https://{titleId}.playfabapi.com/Client/CancelTrade \
--header 'Content-Type: application/json' \
--header 'X-Authorization: <api-key>' \
--data '
{
"TradeId": "D819CEC225EA9948C351"
}
'import requests
url = "https://{titleId}.playfabapi.com/Client/CancelTrade"
payload = { "TradeId": "D819CEC225EA9948C351" }
headers = {
"X-Authorization": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-Authorization': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({TradeId: 'D819CEC225EA9948C351'})
};
fetch('https://{titleId}.playfabapi.com/Client/CancelTrade', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://{titleId}.playfabapi.com/Client/CancelTrade",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'TradeId' => 'D819CEC225EA9948C351'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-Authorization: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://{titleId}.playfabapi.com/Client/CancelTrade"
payload := strings.NewReader("{\n \"TradeId\": \"D819CEC225EA9948C351\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-Authorization", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://{titleId}.playfabapi.com/Client/CancelTrade")
.header("X-Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"TradeId\": \"D819CEC225EA9948C351\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://{titleId}.playfabapi.com/Client/CancelTrade")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-Authorization"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"TradeId\": \"D819CEC225EA9948C351\"\n}"
response = http.request(request)
puts response.read_body{
"code": 200,
"status": "OK",
"data": {
"Trade": {
"Status": "Cancelled",
"TradeId": "D819CEC225EA9948C351",
"OfferingPlayerId": "CD803BF233CE76CC",
"OfferedInventoryInstanceIds": [
"1359447",
"635691"
],
"RequestedCatalogItemIds": [
"rare_hat_7"
],
"OpenedAt": "2015-04-07T09:04:28+00:00",
"CancelledAt": "2015-04-07T09:18:24+00:00"
}
}
}{
"code": 123,
"errorCode": 123,
"status": "<string>",
"error": "<string>",
"errorMessage": "<string>",
"errorDetails": {}
}