توثيق الواجهة البرمجية ودليل المطوّر

v1 · إصدار حيّ

البدء السريع

يتم البدء باستقبال المدفوعات المشفّرة على موقعك في ثلاث خطوات: أنشئ مفتاح واجهة برمجية، وسجّل عناوين محافظ التحصيل، ثم افتح فاتورتك الأولى. ولأن النظام غير احتجازي، تنتقل التحصيلات مباشرة إلى محفظة تسيطر عليها أنت.

  • لوحة التحكم ← مفاتيح API — سجّلوا الدخول وأنشئوا زوج المفاتيح (KeyId وSecret) من هناك. تُعرض قيمة Secret مرة واحدة فقط عند الإنشاء.
  • اللوحة ← الإعدادات أو POST /v1/static-addresses — يسجّل العنوان الثابت لتحصيل الرموز مثل USDT (عنوان واحد لكل شبكة وأصل).
  • اللوحة ← الإعدادات أو POST /v1/sweep-addresses — يسجّل المحفظة الرئيسية (عنوان التجميع) التي تُجمَّع فيها تحصيلات العملات الأصلية مثل TRX وBNB وGRAM.
  • POST /v1/webhooks — يسجّل عنوان URL الذي نُشعِر عليه نظامك فور اكتمال الدفع.
يُشفَّر مفتاحك السري على الخادم، ولا يُعرض إلا مرة واحدة لدواعٍ أمنية. وإن فقدته، أنشئ مفتاحاً جديداً من لوحة التحكم وألغِ القديم بنقرة واحدة.

توقيع الطلبات (HMAC)

تُوقَّع جميع طلبات HTTP بمعيار HMAC-SHA256. ويُحتسب التوقيع على جسم الطلب الخام (raw bytes)، فيبقى صالحاً حتى لو تغيّر ترتيب مفاتيح JSON.

قالب التوقيع المعياري
قالب
METHOD \n PATH \n TIMESTAMP \n NONCE \n SHA256(raw_body)
X-Api-Key
معرّف مفتاح الواجهة (pk_…)
X-Timestamp
طابعة زمنية Unix بالثواني (مع تسامح لساعة الخادم)
X-Nonce
سلسلة عشوائية فريدة (128 محرفاً كحد أقصى، تُستخدم مرة واحدة)
X-Signature
hex(hmac_sha256(secret, canonical))

يحمي الطلبَ مستويان: يجب أن تقع الطابعة الزمنية ضمن نطاق التسامح، وألا تُستخدم قيمة nonce إلا مرة واحدة. أما إعادة إرسال الطلب نفسه فتُرفض تلقائياً (HTTP 401).

X-Timestamp بالثواني بتوقيت Unix، ولا يتجاوز انحرافه عن وقت الخادم 300 ثانية. وX-Nonce فريد لكل طلب؛ ويُرفض أي nonce مستخدم لمدة 600 ثانية.

مثال على عميل يوقّع الطلبات بلغة Python
PYTHON
import hashlib, hmac, os, time, json, urllib.request
KEY_ID = os.environ["COINZEN_KEY_ID"]
SECRET = os.environ["COINZEN_SECRET"]
BASE = "https://coinzen.cerceyn.com"
def request(method: str, path: str, payload: dict | None = None) -> bytes:
body = json.dumps(payload).encode() if payload is not None else b""
ts = str(int(time.time()))
nonce = os.urandom(16).hex()
canonical = "\n".join(
[method.upper(), path, ts, nonce, hashlib.sha256(body).hexdigest()]
)
signature = hmac.new(SECRET.encode(), canonical.encode(), hashlib.sha256).hexdigest()
req = urllib.request.Request(
BASE + path,
data=body or None,
method=method.upper(),
headers={
"X-Api-Key": KEY_ID,
"X-Timestamp": ts,
"X-Nonce": nonce,
"X-Signature": signature,
"Content-Type": "application/json",
},
)
with urllib.request.urlopen(req) as resp:
return resp.read()

نطاقات الصلاحية

لا يستطيع المفتاح استدعاء سوى النقاط التي تغطيها نطاقاته؛ ويعيد النظام 403 عند نقص النطاق. تُختار النطاقات عند إنشاء المفتاح من اللوحة.

النطاقما يتيحه
invoices:readقراءة الفواتير والأرصدة والأسعار وسجلات رصيد العمولة.
invoices:writeإنشاء الفواتير وإلغاؤها، وربط الإيداعات، وتغيير إعدادات رصيد العمولة.
webhooks:readقراءة تسجيلات Webhook وسجل الإرسال.
webhooks:writeتسجيل Webhook وإيقافه، وإعادة إدراج الإرسال في الطابور.
addresses:writeإدارة العناوين الثابتة وعناوين التجميع. ويتطلب السرد هذا النطاق أيضًا.
لا يوجد نطاق باسم addresses:read. تفرض مسارات العناوين النطاق على مستوى الموجّه، لذا يتطلب السرد أيضًا addresses:write.

حدود المعدل

تُطبَّق الحدود لكل تاجر ضمن نافذة منزلقة مدتها دقيقة. وعند تجاوزها يعود 429 مع ترويسة Retry-After.

  • النقاط العامة — 120 طلب / دقيقة
  • إنشاء الفاتورة — 30 طلب / دقيقة

منع التكرار (Idempotency)

ترويسة Idempotency-Key إلزامية في POST /v1/invoices. وبدونها يُرفض الطلب برمز 422. أنشئ قيمة جديدة وفريدة لكل طلب.

الترويسة الإلزامية
Idempotency-Key: 7f3c1e9a4b8d42f0a1c6e5b3d9074a2e

إعادة إرسال المحتوى نفسه بالمفتاح نفسه لا تُنشئ فاتورة ثانية: يُعاد الرد الأول كما هو برمز حالته الأصلي. يمكنك إعادة المحاولة بأمان بعد انقطاع الاتصال.

استخدام المفتاح نفسه مع محتوى مختلف يُرفض برمز 409 idempotency_key_reused. تُحسب البصمة من أسلوب الطلب ومساره ومحتواه الخام — وتغيير ترتيب مفاتيح JSON يُعدّ محتوى مختلفًا.

دورة حياة الفاتورة

يبدأ إنشاء الفاتورة آلة حالات. فإن لم تُحدَّد الشبكة والأصل، تبدأ الفاتورة بحالة selecting. وحين يختار العميل الشبكة والعملة في صفحة الدفع، تنتقل إلى pending ويُخصَّص لها عنوان دفع.

  • selecting → pending, expired, cancelled
  • pending → confirming, partially_paid, expired, cancelled
  • confirming → paid, overpaid, failed
  • paid ⇄ overpaid — إذا أرسل العميل تحويلاً إضافياً على فاتورة مدفوعة، يُحدَّث المبلغ تلقائياً.

الحالات paid وoverpaid وexpired وcancelled وfailed نهائية. وعند حدوث إعادة تنظيم على السلسلة أو دفعة متأخرة، يحدّث النظام الحالة تلقائياً ويُبلغ نظامك عبر إشعار Webhook.

حين تكون amount_exact بقيمة true، على العميل تحويل المبلغ الصافي المحدَّد تماماً، كي تتم المطابقة فوراً ودون لبس.

الدفع برصيد

إن كنت تبيع رصيدًا، فالمبلغ الثابت نموذج غير مناسب: يجبر الدافع 5.188 إلى 5 فتبقى الفاتورة ناقصة. افتح الفاتورة بالخيار balance_payment: true فيُغلقها المبلغ الواصل — المبلغ المعروض اقتراح فقط، وصفحة الدفع تُبلّغ الدافع بذلك صراحةً.

احتسب الإضافة من received_amount في الويب هوك ومن received_fiat_amount المحسوب بالسعر المثبَّت، لا من fiat_amount. فإن طلبت الفاتورة 250 ليرة ووصل 5 USDT، فالمضاف هو قيمة هذه الـ5. وتُحتسب العمولة كذلك على المبلغ الواصل.

أصغر مبلغ يكفي لإغلاق الفاتورة إعدادٌ للمتجر، ويُثبَّت على الفاتورة لحظة إنشائها. وإن لم يضبط المتجر قيمةً خاصةً به سرى الإعداد العام (افتراضيًا 25% من المبلغ المتوقّع)؛ وكلاهما يُعدَّل من اللوحة. الدفعة دون الحدّ تبقى partially_paid. وتغيير الإعداد لاحقًا لا يمسّ الفواتير القائمة.

في تحصيل التوكن يكون العنوان مشتركًا، والذي يربط الدفعة بالفاتورة هو المبلغ. فإن كانت عدّة فواتير رصيد مفتوحة في الوقت نفسه على الشبكة/الأصل ذاته، تعذّر نسب دفعة مُقرَّبة؛ ولا نخمّن — تنزل الدفعة في الإيداعات غير المطابَقة ويُرسَل الويب هوك deposit.unmatched. تربطها أنت بالفاتورة الصحيحة من اللوحة. لا يُستخدم مع فاتورة تعبئة الرصيد.

إشعارات Webhook

يُرسَل كل تغيّر في حالة الدفع فوراً إلى نقطة Webhook المسجّلة لديك. ويُوقَّع كل إشعار بمعيار HMAC-SHA256، فتتحقّق بثقة من سلامة البيانات ومن أنها صادرة عن Coinzen.

تُمنح قيمة Webhook Secret المستخدمة في التحقق (whsec_…) مرة واحدة عند تسجيل نقطة Webhook: من صفحة Webhook في لوحة التحكم، أو في حقل secret ضمن استجابة POST /v1/webhooks. وهي ليست قيمة Secret الخاصة بمفتاح API؛ فتلك توقّع الطلبات التي ترسلونها أنتم فقط. وإذا سجّلتم العنوان نفسه من جديد مُنحتم Webhook Secret جديدة وعُطّلت النقطة القديمة.

X-Coinzen-Signature
t=<unix>,v1=<hex hmac_sha256(secret, "<t>.<raw_body>")>
X-Coinzen-Delivery
معرّف التسليم الفريد (UUID)
X-Coinzen-Event
اسم الحدث المُطلَق (مثل invoice.paid)
مثال على التحقّق من إشعار Webhook بلغة Python
PYTHON
import hashlib, hmac, time
def verify(raw_body: bytes, header: str, secret: str, tolerance: int = 300) -> bool:
"""X-Coinzen-Signature: t=<unix>,v1=<hex>"""
parts = dict(p.split("=", 1) for p in header.split(","))
t, v1 = parts["t"], parts["v1"]
if abs(time.time() - int(t)) > tolerance:
return False
expected = hmac.new(
secret.encode(), f"{t}.".encode() + raw_body, hashlib.sha256
).hexdigest()
return hmac.compare_digest(expected, v1)

الأحداث المدعومة

  • invoice.pending
  • invoice.confirming
  • invoice.partially_paid
  • invoice.paid
  • invoice.overpaid
  • invoice.expired
  • invoice.cancelled
  • payment.reverted
  • deposit.unmatched
  • credit.low
  • credit.exhausted

آلية إعادة المحاولة

تجري المحاولة الأولى فور اكتمال الدفع. فإن لم يستجب خادمك بـ 200 OK، تُعاد المحاولة تلقائياً على سبع مراحل بفواصل 30 · 120 · 600 · 3600 · 21600 · 86400 ثانية. وإن أخفقت المحاولات جميعها، ينتقل السجل إلى حالة dead_letter ويمكن إعادته إلى الطابور بنقرة واحدة من لوحة التحكم.

عقد الأخطاء

تعود جميع الأخطاء بالبنية نفسها. حقل code ثابت ومخصص للمطابقة البرمجية، أما message فموجّه للقراءة البشرية وقد يتغيّر.

بنية الخطأ
{
"error": {
"code": "conflict",
"subcode": "order_id_exists",
"message": "bu order_id zaten kullanılmış",
"details": { "order_id": "A-1042" }
}
}

يضيّق حقل subcode رمز الفئة: order_id_exists بدلًا من conflict المجرّد. اقرأ subcode أولًا ثم عد إلى code عند غيابه؛ فالعقد يتوسّع ولا يضيق.

عند فشل الطلب في التحقق من البنية (حقل ناقص، نوع خاطئ، قيمة خارج النطاق) تكون قيمة code هي validation_error، ويربط details مسار كل حقل بنوع الخطأ: {"body.url": "url_scheme"}. النوع مخصّص للمطابقة برمجيًا (مثل missing وgreater_than)، أما الشرح ففي message.

الرمزHTTPالمعنى
validation_error422هناك خلل فيما أدخلته. يرجى مراجعة الحقول.
unauthenticated401البريد الإلكتروني أو كلمة المرور غير صحيحة.
forbidden403لا تملك صلاحية تنفيذ هذه العملية.
not_found404لم يُعثر على السجل المطلوب.
conflict409هذا السجل موجود بالفعل.
insufficient_credit402رصيد العمولة لديك غير كافٍ. أضف رصيداً من لوحة التحكم.
rate_limited429عدد الطلبات كبير جداً. انتظر قليلاً ثم أعد المحاولة.
unsupported_asset400هذا الاقتران بين الشبكة والأصل غير مدعوم.
upstream_error502تتعذّر حالياً الاتصال بخدمة سلسلة الكتل. أعد المحاولة بعد قليل.
stale_rate503انتهت صلاحية عرض السعر. اطلب عرضاً جديداً.
amount_space_exhausted503لم يبقَ مبلغ مميّز لهذا العنوان. أعد المحاولة بعد قليل.
ثلاث استجابات تقع خارج هذه البنية: {"detail":"Not Found"} وتعود عندما لا يطابق أي مسار — أي أن المسار مكتوب خطأ؛ و{"detail":"Method Not Allowed"} وتعود عندما لا يدعم المسار طريقة HTTP المستخدمة؛ وخطأ الخادم غير المتوقع الذي يأتي برمز 500 ومحتوى ليس JSON.

العمولة والرصيد

لا تقتطع Coinzen عمولتها من دفعة العميل إطلاقاً. فمدفوعات USDT وغيرها تصل إلى عنوانك مباشرة، ومفاتيح تلك المحفظة بحوزتك وحدك. أما رسوم الخدمة فتُخصم من رصيد العمولة الذي تشحنه مسبقاً، فيبقى تحصيلك كاملاً.

  • السعر المعتاد 1%. وتحصل الحسابات الجديدة على 0.1% خلال أول 45 يوماً. ويمكنك الاطّلاع على سعرك الحالي في حقل fee_bps ضمن استجابة GET /v1/credit (بنقاط الأساس: 10 = 0.1%، 100 = 1%).
  • لا تُحتسب العمولة إلا على الفواتير المكتملة بنجاح (paid وoverpaid).
  • لا تُؤخذ أي عمولة على الفواتير الملغاة أو المنتهية أو الناقصة.
  • عند نفاد رصيدك، تستمر معالجة الفواتير المفتوحة كالمعتاد؛ ولا يتلقّى تنبيه الرصيد (HTTP 402) سوى طلبات إنشاء الفواتير الجديدة.

نموذج الخصم على خطوتين

حين تُدفع الفاتورة، يُفتح قيد العمولة فوراً بحالة pending كي لا تتباطأ متابعة السلسلة، ويُعالَج دون الاعتماد على أي خدمة خارجية. ثم يجري تحويل سعر الصرف في الخلفية ويُخصم المبلغ الصافي من رصيدك.

وإن سُحبت الدفعة بسبب إعادة تنظيم على السلسلة، يُلغى خصم العمولة فوراً؛ وإن كان قد خُصم، يُعاد إلى رصيدك بقيد reversal.

شحن الرصيد

يمنحك استدعاء POST /v1/credit/deposit-addresses عنوان شحن USDT دائماً خاصاً بك. ويُضاف ما ترسله إلى هذا العنوان إلى رصيدك فور تأكيده على السلسلة — دون موافقة يدوية ودون انتظار.

عنوان الشحن هو عنوان شحن عمولة متجرك؛ فلا تعطه لعملائك كعنوان تحصيل.

التعبئة التلقائية

عند تفعيل هذه الخاصية، لا تتوقّف مبيعات متجرك حتى لو بلغ رصيدك صفراً. إذ تُحوَّل حصيلة فاتورتك الصغيرة التالية إلى رصيدك، فتستمر الخدمة دون انقطاع.

  • لا تُؤخذ عمولة إضافية على الفاتورة المحوَّلة إلى الرصيد.
  • يسري حد أعلى حمايةً لك (25 دولاراً افتراضياً). أما الفواتير التي تتجاوز الحد فلا تُحوَّل، فلا تتعرّض طلباتك الكبيرة للمخاطرة.
  • يمكنك تفعيلها أو إيقافها وتحديد حدّك الأعلى في أي وقت عبر PUT /v1/credit/auto أو من لوحة التحكم.

تنبيهات الرصيد

حين ينزل رصيدك دون العتبة الحرجة يُطلَق حدث credit.low، وعند نفاده يُطلَق credit.exhausted، فتعلم بالأمر مسبقاً.

الشبكات والأصول المدعومة

يلخّص الجدول التالي سجلّ الشبكات الحيّة. وللحصول على القائمة اللحظية، استخدم نقطة GET /v1/networks.

الشبكةالأصلالخانات العشريةنموذج التحصيلعنوان العقد
TRONTRX6عنوان ديناميكي لكل فاتورةعملة أصلية
TRONUSDT6عنوان ثابت + مبلغ فريدTR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t
BSCBNB18عنوان ديناميكي لكل فاتورةعملة أصلية
BSCUSDT18عنوان ثابت + مبلغ فريد0x55d398326f99059fF775485246999027B3197955
BSCUSDC18عنوان ثابت + مبلغ فريد0x8AC76a51cc950d9822D68b83fE1Ad97B32Cd580d
TONGRAM9عنوان ديناميكي لكل فاتورةعملة أصلية
TONUSDT6عنوان ثابت + مبلغ فريدEQCxE6mUtQJKFnGfaROTKOt1lZbDiiX1kCixRv7Nw2Id_sDs
EthereumUSDT6عنوان ثابت + مبلغ فريد0xdAC17F958D2ee523a2206206994597C13D831ec7
EthereumUSDC6عنوان ثابت + مبلغ فريد0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48
SolanaSOL9عنوان ديناميكي لكل فاتورةعملة أصلية
SolanaUSDT6عنوان ثابت + مبلغ فريدEs9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB
SolanaUSDC6عنوان ثابت + مبلغ فريدEPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v

نقاط الواجهة البرمجية

الطريقةالمسارالوظيفةنطاق الصلاحية
GET/healthzفحص سلامة الخدمةpublic
GET/readyzحالة التبعيات والجاهزيةpublic
GET/v1/networksالشبكات والأصول المدعومةpublic
POST/v1/invoicesإنشاء فاتورة دفعinvoices:write
GET/v1/invoicesسرد الفواتير (مع ترقيم الصفحات)invoices:read
GET/v1/invoices/{invoice_id}جلب تفاصيل الفاتورةinvoices:read
POST/v1/invoices/{invoice_id}/cancelإلغاء الفاتورةinvoices:write
GET/v1/ratesالحصول على عرض سعر قابل للتثبيتinvoices:read
GET/v1/balancesأرصدة المحافظ بحسب الشبكة والأصلinvoices:read
GET/v1/deposits/unmatchedسرد التحويلات الواردة غير المطابَقةinvoices:read
POST/v1/deposits/{deposit_id}/attachربط تحويل وارد بفاتورة يدوياًinvoices:write
POST/v1/static-addressesتسجيل محفظة تحصيل ثابتةaddresses:write
GET/v1/static-addressesسرد العناوين الثابتة المسجّلةaddresses:write
DELETE/v1/static-addresses/{address_id}يحرّر العنوان الثابت. يُرفض الطلب ما دام هناك حجز مبلغ معلّق على العنوان.addresses:write
POST/v1/sweep-addressesتسجيل محفظة تجميع للعملات الأصليةaddresses:write
GET/v1/sweep-addressesيسرد عناوين التجميع المُعرّفة لديك.addresses:write
DELETE/v1/sweep-addresses/{address_id}يوقف تفعيل عنوان تجميع.addresses:write
GET/v1/creditرصيد العمولة الحاليinvoices:read
GET/v1/credit/entriesحركات الرصيد وسجلّ العملياتinvoices:read
GET/v1/credit/deposit-addressesيسرد عناوين شحن رصيد العمولة الخاصة بك.invoices:read
POST/v1/credit/deposit-addressesالحصول على عنوان شحن الرصيدinvoices:write
PUT/v1/credit/autoتحديث إعداد التعبئة التلقائيةinvoices:write
POST/v1/webhooksتسجيل نقطة Webhookwebhooks:write
GET/v1/webhooksيسرد نقاط Webhook المسجّلة لديك.webhooks:read
DELETE/v1/webhooks/{webhook_id}يوقف تفعيل نقطة Webhook. تبقى سجلات الإرسال السابقة ويتوقف الإرسال الجديد.webhooks:write
GET/v1/webhooks/deliveriesسجلّ الإشعارات والتسليمwebhooks:read
POST/v1/webhooks/deliveries/{delivery_id}/replayإعادة إرسال إشعار فاشلwebhooks:write
النسخة التي يقرأها الحاسوب من هذا الجدول متاحة على GET /openapi.json. ولا توجد واجهة تجربة تفاعلية: إذ يُحسب التوقيع لكل طلب على حدة، فالاستدعاءات من المتصفح لن تعيد سوى 401.

بنية الطلبات

في ما يلي بنية الطلبات للنقاط التي تستدعيها في اليوم الأول. أما البنية الكاملة لكل النقاط فتُنشر بصيغة يقرأها الحاسوب على GET /openapi.json — استوردها إلى Postman أو ولّد منها عميلًا.

POST /v1/static-addresses
الحقلالنوعإلزاميالقيدالوصف
networkstringنعمtron | bsc | ethereum | ton | solanaمعرّف الشبكة.
assetstringنعم2–16رمز الأصل. يحوّله الخادم إلى أحرف كبيرة.
addressstringنعم20–128عنوان محفظتك. يُتحقق من صيغته وفق الشبكة.
POST /v1/sweep-addresses
الحقلالنوعإلزاميالقيدالوصف
networkstringنعمtron | bsc | ethereum | ton | solanaمعرّف الشبكة.
addressstringنعم20–128عنوان محفظتك. يُتحقق من صيغته وفق الشبكة.
POST /v1/webhooks
الحقلالنوعإلزاميالقيدالوصف
urlstringنعم—عنوان HTTPS الذي تُرسل إليه الإشعارات.
eventsstring[]لا—الأحداث المشترك بها. اتركها فارغة للاشتراك في جميعها.
POST /v1/invoices
الحقلالنوعإلزاميالقيدالوصف
networkstringلاtron | bsc | ethereum | ton | solanaمعرّف الشبكة.
assetstringلا2–16رمز الأصل. يحوّله الخادم إلى أحرف كبيرة.
allowed_assetsstring[]لا≤ 32الأصول المعروضة على الدافع: USDT (على كل الشبكات) أو tron:USDT (شبكة واحدة).
amountdecimalلا> 0مبلغ العملة الرقمية مباشرةً. لا يُجمع مع fiat_amount.
fiat_amountdecimalلا> 0المبلغ بالعملة الورقية؛ ويُثبَّت السعر عند فتح الفاتورة.
fiat_currencystringلا3–8رمز العملة الورقية. إلزامي عند إعطاء fiat_amount.
order_idstringلا≤ 128مرجع طلبك الخاص. يجب أن يكون فريدًا داخل حساب التاجر.
expires_inintegerلا60–86400مدة صلاحية الفاتورة بالثواني.
callback_urlstringلا—عنوان الإشعار لهذه الفاتورة فقط؛ ويحلّ محل نقطتك المسجّلة.
return_urlstringلا—العنوان الذي يُوجَّه إليه الدافع بعد اكتمال الدفع.
localestringلا—لغة صفحة الدفع. وعند غيابها تُعتمد لغة متصفح الدافع.
balance_paymentbooleanلا—الدفع برصيد. القيمة الافتراضية false. عند تفعيله تكتمل الفاتورة حتى لو أرسل الدافع أقل أو أكثر من المعروض، ويبلّغ الويب هوك بالمبلغ الواصل. يأتي الحدّ الأدنى من إعدادات المتجر. لا يُستخدم مع فاتورة تعبئة الرصيد.
metadataobjectلا—كائن حر. يعود كما هو في الاستجابات وإشعارات Webhook.
PUT /v1/credit/auto
الحقلالنوعإلزاميالقيدالوصف
enabledbooleanنعم—هل الشحن التلقائي لرصيد العمولة مفعّل.
max_amountdecimalلا> 0الحد الأعلى لعملية شحن تلقائي واحدة.

معاملات الاستعلام

GET /v1/rates
الحقلالنوعإلزاميالقيدالوصف
fromstringنعم2–16رمز الأصل المصدر، مثل USDT.
tostringنعم3–8العملة الورقية الهدف، مثل TRY.
GET /v1/invoices
الحقلالنوعإلزاميالقيدالوصف
statusstringلا—حالة الفاتورة — الثوابت الواردة في قسم دورة الحياة أعلاه.
networkstringلاtron | bsc | ethereum | ton | solanaمعرّف الشبكة.
created_afterdatetimeلا—المُنشأة بعد هذا التاريخ.
created_beforedatetimeلا—المُنشأة قبل هذا التاريخ.
limitintegerلا1–200أقصى عدد من السجلات المُعادة.
cursordatetimeلا—مؤشّر الترقيم: السجلات الأقدم من هذا التاريخ. أعد إرسال next_cursor من الاستجابة.
GET /v1/webhooks/deliveries
الحقلالنوعإلزاميالقيدالوصف
invoice_iduuidلا—يُرشِّح النتائج إلى فاتورة واحدة.
statusstringلا—حالة الإرسال: pending أو succeeded أو dead_letter.
limitintegerلا1–200أقصى عدد من السجلات المُعادة.
GET /v1/credit/entries
الحقلالنوعإلزاميالقيدالوصف
kindstringلا—نوع القيد: topup أو fee أو reversal أو adjustment.
statusstringلا—حالة القيد: pending أو applied أو void.
invoice_iduuidلا—يُرشِّح النتائج إلى فاتورة واحدة.
limitintegerلا1–200أقصى عدد من السجلات المُعادة.
cursordatetimeلا—مؤشّر الترقيم: السجلات الأقدم من هذا التاريخ. أعد إرسال next_cursor من الاستجابة.
GET /v1/deposits/unmatched
الحقلالنوعإلزاميالقيدالوصف
include_resolvedbooleanلا—تضمين الإيداعات التي جرى ربطها بالفعل.
limitintegerلا1–500أقصى عدد من السجلات المُعادة.
GET /v1/static-addresses
الحقلالنوعإلزاميالقيدالوصف
include_inactivebooleanلا—تضمين العناوين التي جرى تحريرها.
توثيق الواجهة البرمجية ودليل المطوّر · Coinzen