موقعیت وثیقه و گواهی عمومی
دسترسی لاز م: DebtPositionScope
موقعیت وثیقه با وام یک تفاوت مهم دارد: سازمان شما موقعیت را بدون آنکه کاربر حسابی نزد شما داشته باشد میسازد و لینکی میگیرد که هر کس بازش کند، میتواند وثیقه بگذارد و وضعیت لحظهای را ببیند.
برای درک مفهومی، کاربردها و تصاویر صفحهای که گیرنده لینک میبیند، نگاه کنید به گواهی وثیقه.
دو نیمه این محصول
| نیمه | مخاطب | احراز هویت |
|---|---|---|
مسیرهای /debt-positions/… | سرور شما | توکن سازمان |
مسیرهای /public/debt-positions/… | مرورگر گیرنده لینک | بدون احراز هویت |
شناسه موقعیت خودش مجوز دسترسی است. هر کس uuid را داشته باشد میتواند صفحه عمومی را باز کند. پس با آن مانند یک راز رفتار کنید: از کانال امن به گیرنده برسانیدش، در لاگ ننویسیدش، و نگذارید در پارامتر نشانی صفحات دیگر یا در ارجاعدهنده نشت کند.
ساخت موقعیت
curl -sS -X POST "https://hd.zarban.io/debt-positions" \
-H "Authorization: Bearer $ZARBAN_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"accountId": 1234,
"debt": "1000"
}'
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"debt": "1000",
"expiresAt": "2026-09-02T12:00:00Z",
"createdAt": "2026-08-03T12:00:00Z"
}
id هم شناسه موقعیت است و هم لینک قابل اشتراک.
پس از expiresAt، هر کس لینک عمومی را باز کند پاسخ 410 Gone میگیرد. اگر لینک را با رایانامه یا پیامک میفرستید، زمان انقضا را در همان پیام بنویسید و در سمت خودتان هم پیش از انقضا یادآوری بگذارید تا گیرنده بداند لینک تا کی پاسخ میدهد.
صفحه عمومی
گیرنده لینک، بدون هیچ حسابی، اینها را میبیند و انجام میدهد:
# طرحهای وثیقه پیشنهادی برای این موقعیت
curl -sS "https://hd.zarban.io/public/debt-positions/550e8400-e29b-41d4-a716-446655440000/open"
هر طرح یکی از ارزهایی است که بهعنوان وثیقه میپذیریم، با نسبت وام به ارزش خودش. گیرنده یکی را انتخاب میکند و موقعیت باز میشود؛ در پاسخ، حسابی مخصوص همین موقعیت و آدرس واریز آن برمیگردد.
سپس وضعیت را میخواند:
curl -sS "https://hd.zarban.io/public/debt-positions/550e8400-e29b-41d4-a716-446655440000/state"
پاسخ شامل وضعیت کاربرپسند موقعیت است و — تا وقتی منتظر وثیقه است — اینکه چقدر واریز شده، چقدر باقیمانده و آدرس واریز کدام است.
جریان رویداد زنده
curl -sS -N "https://hd.zarban.io/public/debt-positions/550e8400-e29b-41d4-a716-446655440000/state/stream"
این مسیر همان بدنه state را با هر تغییر، بهصورت SSE میفرستد.
الگوی درست در رابط کاربری: برای نمایش اولیه از state استفاده کنید، سپس به state/stream وصل شوید. اگر جریان قطع شد یا در دسترس نبود، به فراخوانی دورهای state برگردید. جریان جایگزین نمایش اولیه نیست، مکمل آن است.
وضعیتها
status واژگان کوچک و پایداری است که رابط کاربری شما میتواند رویش شاخه بزند؛ ماشین حالت داخلی هیچوقت بیرون نمیآید:
| وضعیت | یعنی چه |
|---|---|
DebtPositionStatusOpen | ساخته شده، هنوز طرحی انتخاب نشده |
DebtPositionStatusWaitingForDeposit | منتظر واریز وثیقه |
DebtPositionStatusInProgress | در حال اجرا روی زنجیره |
DebtPositionStatusActive | فعال |
DebtPositionStatusUpdating | در حال تغییر وثیقه یا بدهی |
DebtPositionStatusRefunding / Refunded | در حال بازگرداندن / بازگردانده شد |
DebtPositionStatusFailed | ناموفق |
DebtPositionStatusLiquidated | نقد شد |
DebtPositionStatusExpired | لینک منقضی شد |
DebtPositionStatusUnknown | نامشخص |
شاخه default را در کد خود فراموش نکنید.
د اشبورد سازمانی همین وضعیتها را با متن فارسی آمادهی status.title نشان میدهد — همان متنی که خود API برمیگرداند، پس رابط کاربری شما هم میتواند بدون نگاشت جداگانه از آن استفاده کند:

تغییر وثیقه و بدهی
چهار عملیات، همه با همان ساختار بدنه:
curl -sS -X POST "https://hd.zarban.io/debt-positions/550e8400-e29b-41d4-a716-446655440000/collateral/increase" \
-H "Authorization: Bearer $ZARBAN_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"accountId": 1234,
"amount": "100"
}'
| مسیر | اثر |
|---|---|
| collateral/increase | افزودن وثیقه — موقعیت را امنتر میکند |
| collateral/decrease | برداشت وثیقه — موقعیت را پرخطرتر میکند |
| debt/increase | ایجاد بدهی ریالی بیشتر |
| debt/decrease | بازپرداخت بدهی |
در debt/decrease میتوانید بهجای amount، فیلد repayAll را true بگذارید تا کل بدهی باقیمانده تسویه شود.
پاسخ هر عملیات، kind و amount و مقادیر پس از عملیات را برمیگرداند — همان چیزی که باید به کاربر نشان دهید.
پیگیری
curl -sS "https://hd.zarban.io/debt-positions?accountId=1234" \
-H "Authorization: Bearer $ZARBAN_TOKEN"
curl -sS "https://hd.zarban.io/debt-positions/550e8400-e29b-41d4-a716-446655440000" \
-H "Authorization: Bearer $ZARBAN_TOKEN"
رویدادها
پنج رویداد وبهوک به این محصول مربوط است: WebhookDebtPositionCreated، Activated، Adjusted، Failed و Liquidated.
WebhookDebtPositionLiquidated خبر میدهد که وثیقه یک حساب نقد شده است. برای این رویداد در سرویس خود مسیر مشخصی بگذارید — دستکم به کاربر اطلاع دهید و وضعیت داخلی را بهروز کنید — چون پس از آن، مقادیر وثیقه و بدهی همان موقعیت عوض شدهاند.
جزئیات در وبهوکها.