/api/v3/paymentsيتطلب Idempotency-Keyإنشاء دفعة
تتضمن استجابة 201 الحقلين payment_url وexpires_at. وجّه العميل إلى payment_url؛ وصفحة الدفع صالحة لمدة 24 ساعة. إذا أُعيد 409 / 9000039 فكرّر الطلب نفسه بالمفتاح Idempotency-Key نفسه.
جسم الطلب
| الحقل | النوع | مطلوب | الوصف |
|---|---|---|---|
amount | string | مطلوب | مبلغ موجب على هيئة سلسلة عشرية ثابتة المقياس بخانتين عشريتين (مثل "250.00") بعملة currency_code. ويجب أن يكون ضمن حدود الدفع الخاصة بحسابك (تُفحص بعملة USD بعد التحويل بالسعر الحالي؛ راجعوا حدودكم في صفحة API Key والتكامل في اللوحة)، وإلا يُرجع الطلب 422 9000005. |
currency_code | string | مطلوب | عملة المصدر.USDEURAEDTRY |
merchant_reference | string | null | اختياري | مرجع طلبك الخاص (بحد أقصى 64 حرفًا). فريد لكل حساب ولكل بيئة: فلا يمكن إعادة استخدام المرجع، حتى لدفعة انتهت صلاحيتها (409 9000007). اختياري.maxLength 64 |
webhook_url | string | null | اختياري | عنوان https:// الذي يستقبل الإشعارات الموقّعة (payment.paid وpayment.refunded, payment.failed). يجب أن يُحلّ اسم المضيف عبر DNS إلى عنوان عام (دون عنوان IP خاص أو محجوز ودون localhost)، وألا يزيد طول العنوان عن 500 حرف، وألا يتضمن اسم مستخدم أو كلمة مرور. اختياري: عند عدم إرساله يُستخدم عنوان webhook المحفوظ في اللوحة لبيئة مفتاح التوقيع لديك؛ وإذا لم يكن هناك عنوان محفوظ لا يُرسل أي إشعار.maxLength 500 |
merchant_name | string | null | اختياري | الاسم المعروض على شاشة الدفع. اختياري؛ وقيمته الافتراضية Hesap <account number> (رقم حسابك المكوّن من 6 خانات). القيمة التي تزيد عن 120 حرفًا تُقتطع ولا تُرفض. |
return_url | string · uri | null | اختياري | عنوان return_url اختياري (حتى 2048 حرفًا). يتطلب الإنتاج HTTPS؛ وتقبل sandbox أيضًا HTTP على localhost أو 127.0.0.1 أو [::1]. تُمنع معلومات المستخدم والأجزاء ومحارف التحكم والمسافات. تُحوّل أسماء النطاقات الدولية إلى ASCII. عنوان URL غير صالح: 422 / 9000038. عند انتهاء الدفع تعرض صفحة النتيجة زرًّا يأخذ العميل إلى هذا العنوان، مع إضافة code وstatus وmerchant_reference (إن أرسلته) إلى سلسلة الاستعلام؛ ولا توجد إعادة توجيه تلقائية. لا تغيّره عند إعادة المحاولة بالمفتاح Idempotency-Key نفسه.maxLength 2048 |
جسم الطلب · مثال
{
"amount": "10.00",
"currency_code": "USD",
"merchant_reference": "INV-104",
"merchant_name": "Test Shop",
"return_url": "https://shop.example.invalid/return?basket=104"
}يتضمن الحقل limits القيم currency_code وmin_amount وmax_amount (null: لا حد أعلى). المبالغ أدناه أمثلة وليست حدودك.
HTTP 422 / 9000005
{
"type": "https://www.cryptoavans.com/errors/9000005",
"title": "Invalid amount",
"status": 422,
"code": "9000005",
"correlation_id": "example",
"detail": "Amount outside the account limits.",
"limits": {
"currency_code": "USD",
"min_amount": "25.00",
"max_amount": null
}
}الاستجابة · 201
أُنشئت الدفعة. وعند إعادة الإرسال بالمفتاح Idempotency-Key نفسه يُرجع 200 بدلًا من ذلك.
Payment
| الحقل | النوع | الوصف |
|---|---|---|
code | string | رمز الدفعة المختصر (من 4 إلى 16 حرفًا صغيرًا). |
merchant_reference | string | null | مرجع طلبك، يُعاد كما أُرسل. |
status | string | حالة دورة حياة الدفعة: created إلى أن يدفع العميل ثم paid؛ وexpired عندما تنتهي صلاحية الرابط دون دفع.createdpaidexpired |
amount | string | المبلغ الإجمالي، على هيئة سلسلة عشرية ثابتة المقياس بخانتين عشريتين، بعملة currency_code. |
currency_code | string | عملة المصدر لهذه الدفعة؛ اقرأ القيمة المُعادة بدلًا من افتراض عملة المثال.USDEURAEDTRY |
environment | string | البيئة التي تنتمي إليها هذه الدفعة.sandboxlive |
payment_url | string | وجّه العميل إلى payment_url المُعاد كصفحة عادية (تنقّل على المستوى الأعلى)؛ ولا تنشئ العنوان أو تغيّره بنفسك. لا يمكن تضمين الصفحة في iframe. لا تُرسل بيانات البطاقة إلى هذه الواجهة. |
created_at | string · date-time | وقت الإنشاء (UTC، ISO-8601). |
expires_at | string · date-time | UTC. تظل صفحة الدفع صالحة 24 ساعة بعد إنشائها. أنشئ دفعة جديدة بعد انتهاء الصلاحية؛ لا توجد نقطة نهاية للتجديد. تحقق من الدفع عبر GET /api/v3/payments/{code} أو webhook موقّع؛ وعودة العميل إلى موقعك للمعلومات فقط. |
paid_at | string · date-time | null | وقت الدفع أو null. |
payment_url_kind | string | دائمًا platform (صفحة الدفع الخاصة بنا). يُحتفظ بالحقل من أجل التكاملات القائمة؛ ولم يعد provider_hosted يُعاد.platformprovider_hosted |
card | MerchantCardSummary | null | معلومات بطاقة المحاولة الناجحة؛ تكون null قبل الدفع أو عند عدم توفر المعلومات. |
failure | PaymentFailureSummary | null | آخر محاولة فاشلة إن لم تُدفع الدفعة، وإلا null. ليست نهائية: يمكن الدفع حتى expires_at. يعدّ attempt_count المحاولات الفاشلة بما فيها الإعادات. |
الاستجابة · مثال
{
"code": "a1b2c3d4",
"merchant_reference": "INV-104",
"status": "created",
"amount": "10.00",
"currency_code": "USD",
"environment": "live",
"payment_url": "https://pay.example.com/l/a1b2c3d4",
"payment_url_kind": "platform",
"created_at": "2026-10-05T12:00:00Z",
"expires_at": "2026-10-06T12:00:00Z",
"paid_at": null,
"card": null,
"failure": null
}استجابات أخرى
200إعادة الطلب بالمفتاح نفسه: تُعاد الدفعة الأصلية ولا تُنشأ دفعة ثانية.422يعيد المبلغ خارج حدود الحساب (9000005، بما فيه أقل من 0.01 بعد التحويل أو تجاوز السعة) limits بعملة الحساب الأساسية. تستخدم sandbox التحقق نفسه. قد لا تتضمن أخطاء التحقق الأخرى limits.