لغو برداشت
POST
/v1/transactions/cancelبرداشتی را لغو میکند که همین کلید ساخته و هنوز امضا نشده است. لغو دوباره همان نتیجه را بی تغییر برمیگرداند. این مسیر وقتی سازمان متوقف یا معلق است هم کار میکند.
درخواست
curl -X POST 'https://api.romu.ir/v1/transactions/cancel' \ -H "X-Custody-Key-Id: $KEY_ID" \ -H "X-Custody-Timestamp: $TIMESTAMP" \ -H "X-Custody-Nonce: $NONCE" \ -H "X-Custody-Signature: $SIGNATURE" \ -H "Content-Type: application/json" \ -d '{ "transaction_id": "0192f1a2-5e4f-7a10-b2c3-d4e5f6a7b8c9", "reason": "کاربر درخواست را پس گرفت" }'import { romu } from "./romu.ts";
const res = await romu.post("/v1/transactions/cancel", { json: { "transaction_id": "0192f1a2-5e4f-7a10-b2c3-d4e5f6a7b8c9", "reason": "کاربر درخواست را پس گرفت" },});console.log(res.status, res.body);status, body, err := client.Do("POST", "/v1/transactions/cancel", "", []byte(`{"transaction_id":"0192f1a2-5e4f-7a10-b2c3-d4e5f6a7b8c9","reason":"کاربر درخواست را پس گرفت"}`), "")import romu
status, body = romu.post( "/v1/transactions/cancel", json={ "transaction_id": "0192f1a2-5e4f-7a10-b2c3-d4e5f6a7b8c9", "reason": "کاربر درخواست را پس گرفت" },)print(status, body)امضای درخواست را کتابخانه انجام میدهد؛ جزئیات: صفحهی امضا
بدنه
transaction_idUUIDلازمreasonstringلازمدلیل لغو، 1 تا 500 نویسه.
فیلد ناشناخته در بدنه 400 میگیرد.
پاسخ
200status برابر cancelled. رویداد transaction.updated هم فرستاده میشود.
فیلدها با id
transactionobjectلازمtransaction.idUUIDلازمtransaction.wallet_idUUIDلازمtransaction.idempotency_keystringtransaction.typestringفقطخواندنی.
internal جابهجایی از کنسول است. sweep فقط با ?id= دیده میشود.withdrawalinternalsweeptransaction.originstringفقطخواندنی.
system فقط برای sweep است.apiconsolesystemtransaction.networkstringلازمTRONBSCtransaction.assetstringلازمکد دارایی، مثل
TRON_USDT.transaction.amountstringلازمرشتهی اعشاری در واحد خود دارایی، مثل
100.5.transaction.amount_rawstringهمان مبلغ در کوچکترین واحد، برای تطبیق دقیق.
transaction.amount_usdstring | nullارزش مبلغ به دلار آمریکا وقتی قانونها آن را سنجیدند، رشتهی اعشاری مثل
301.5. پیش از آن، یا وقتی دارایی نرخ نداشت، null.transaction.usd_ratestring | nullنرخ دلاری هر واحد دارایی که
amount_usd با آن حساب شد، مثل 1.005. هر وقت amount_usd نباشد، null.transaction.usd_rate_atRFC 3339 | nullزمانی که آن نرخ خوانده شد. هر وقت
amount_usd نباشد، null.transaction.from_addressstring | nullآدرس سازمان که تراکنش از آن فرستاده میشود: آدرس اصلی کیف پول یا یکی از آدرسهای جمعآوری. اگر شناخته نباشد،
null.transaction.from_labelstring | nullبرچسب همان آدرس، همان که الان دارد. بی برچسب،
null.transaction.to_addressstringtransaction.external_refstringtransaction.statusstringلازمpendingcheckingconfirmedfailedcancelledtransaction.stagestring | nullکجای کار است. فقط در
pending و checking، وگرنه null.requestedwaiting_approvalwaiting_phonesigningsigning_retrysignedbroadcastconfirmingtransaction.reasonstring | nullچرا شکست خورد. فقط در
failed، وگرنه null.rejectedexpiredsigning_failedbroadcast_failedreorgedtransaction.tx_hashstringهش زنجیره، پس از ارسال.
transaction.expires_atRFC 3339transaction.created_atRFC 3339transaction.superseded_bystringجانشین تراکنش، فقط وقتی هست که جانشین ساخته شده باشد.
transaction.policyobject | nullتصمیم قانونها. وقتی تصمیمی ثبت نشده باشد
null است.transaction.policy.decisionstringauto_approveneeds_approvalrejecttransaction.policy.matched_ruleobject | nulltransaction.policy.matched_rule.rule_idstringtransaction.policy.matched_rule.namestringخطاها
400
invalid request یا malformed request body: بدنه، پارامتر یا فیلد نادرست است، یا فیلد ناشناخته دارد.401
unauthenticated: هر شکست احراز هویت همین پاسخ را دارد.403
permission denied: کلید دسترسی این مسیر را ندارد.404
not found: مسیر یا شیء پیدا نشد. خواندن کیف پولی بیرون از فهرست کلید هم همین است.409
failed precondition: این کار در وضعیت فعلی ممکن نیست.429
too many requests: بیش از سقف نرخ. پس از Retry-After ثانیه دوباره بفرستید.503
try again later: سرویس موقتاً در دسترس نیست.بدنهی خطا همیشه {"error":"..."} است. راهنمای خطاها میگوید برای هر کد چه باید کرد.