التوثيق / مرجع الواجهة
تصنيف هوية أو حدث
يصنّف هوية (عنوان IP أو بريد أو نطاق بريد أو جوال أو BIN بطاقة أو معرّف عميل أو معرّف جهاز أو نص) احتيالاً أو سليمة، أو يحدد هل كان حدث في لوحتك تنبيهاً صائباً أم خاطئاً.
نظرة عامة#
feedback/event طريقة POST بمحتوى JSON. أرسل إمّا type وvalue، وإمّا event_id لحدث من لوحتك أو من Webhooks، ومعهما label: fraud أو legit. وتُحفظ الحقول الاختيارية reason وsource وoccurred_at مع التصنيف.
متى تستدعيها#
- يؤكد الدعم أن بريداً أو جوالاً أو جهازاً أو حساب عميل يعود لمحتال، أو يبرّئ واحداً اشتُبه به خطأً.
- كان تنبيه وصلك صائباً (
fraud) أو خاطئاً (legit): أرسلevent_idالخاص به. وفي تنبيه الدفع يُطبَّق التصنيف أيضاً على المعاملة نفسها بصفةfraud_confirmedأوlegit_confirmed.
كيف تعمل#
يحفظ Gurdx بصمة مشفّرة بمفتاح للهوية وقيمة مقنّعة، ولا يحفظ القيمة الأصلية أبداً. تصنيف fraud يرفع خطورة تلك الهوية في الفحوص اللاحقة: المدفوعات التي تعيد استخدامها تُطلق القاعدة GX2001 (العميل نفسه) أو GX2002 (جهاز أو بطاقة أو IP مشترك)، وفحوص IP تعدّها عالية الخطورة، وفحوص البريد والجوال تعلّمها غير صالحة مع ذكر السبب. وتصنيف legit يعادل الدليل السابق على الاحتيال. ويتناقص الدليل إلى النصف كل 90 يوماً. يُحفظ تصنيف واحد لكل هوية: إعادة إرساله تُرجع unchanged، وإرسال التصنيف الآخر يحدّثه.
إن فعّلت حظر الاحتيال المؤكد تلقائياً من صفحة التعلّم، تُضاف تصنيفات fraud أيضاً إلى قائمة سوداء باسم «احتيال مؤكَّد».
ملاحظات#
- مجانية: لا تُحتسب من حصتك ومتاحة في كل الباقات.
- وضع الاختبار يتحقق ويرد بنتيجة نموذجية دون حفظ شيء.
event_idغير الموجود أو القيمة غير الصالحة أو غياب التصنيف يُرجع الخطأ 131 (invalid_feedback) مع HTTP 200.
الطلب#
https://gurdx.cretip.com/api/feedback/event
- صادِق بمعامل key أو بترويسة Authorization: Bearer.
- مجانية — لا تُحتسب من حصتك.
- متاحة في: تجربة مجانية القياسية المميّزة الدفع حسب الاستخدام
المعاملات#
| الاسم | النوع | الوصف |
|---|---|---|
type
اختياري
جسم |
string |
What you are labelling: ip, email, email_domain, phone, card_bin, customer_id, device_id or text. Required unless you send event_id.
|
value
اختياري
جسم |
string |
The IP, email, phone number, BIN, id or text. Required with type.
|
event_id
اختياري
جسم |
integer |
Instead of type + value: the id of a dashboard event (sent as event_id in webhooks). fraud marks it a true positive, legit a false positive.
|
label
مطلوب
جسم |
string |
fraud or legit.
|
reason
اختياري
جسم |
string |
Free text kept with the label. |
source
اختياري
جسم |
string |
Who decided, e.g. support, risk_team, chargeback_portal.
|
occurred_at
اختياري
جسم |
string|integer |
When it was decided: ISO-8601 date or UNIX timestamp. Defaults to now. |
تقبل كل خدمة أيضاً format, lang, mode, userID. راجع الخيارات.
أمثلة برمجية#
curl -X POST "https://gurdx.cretip.com/api/feedback/event" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"type": "email",
"value": "buyer@example.com",
"label": "fraud",
"reason": "stolen card confirmed by issuer",
"source": "risk_team"
}'
<?php
$payload = [
'type' => 'email',
'value' => 'buyer@example.com',
'label' => 'fraud',
'reason' => 'stolen card confirmed by issuer',
'source' => 'risk_team',
];
$ch = curl_init('https://gurdx.cretip.com/api/feedback/event');
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Authorization: Bearer YOUR_API_KEY', 'Content-Type: application/json'],
CURLOPT_POSTFIELDS => json_encode($payload),
]);
$result = json_decode(curl_exec($ch), true);
if ($result['status'] !== 'success') {
error_log($result['code'].': '.$result['description']);
}
const res = await fetch('https://gurdx.cretip.com/api/feedback/event', {
method: 'POST',
headers: {
Authorization: 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json',
},
body: JSON.stringify({
"type": "email",
"value": "buyer@example.com",
"label": "fraud",
"reason": "stolen card confirmed by issuer",
"source": "risk_team"
}),
});
const result = await res.json();
if (result.status !== 'success') {
console.error(result.code, result.description);
}
import requests
res = requests.post(
"https://gurdx.cretip.com/api/feedback/event",
headers={"Authorization": "Bearer YOUR_API_KEY"},
json={
"type": "email",
"value": "buyer@example.com",
"label": "fraud",
"reason": "stolen card confirmed by issuer",
"source": "risk_team",
},
)
result = res.json()
if result["status"] != "success":
print(result["code"], result["description"])
الاستجابة#
نجاح#
{
"data": {
"type": "email",
"value": "b***@example.com",
"label": "fraud",
"status": "created"
},
"status": "success",
"executionTime": 3
}خطأ#
تُسلَّم الأخطاء بحالة HTTP 200 — افحص دائماً حقل status.
{
"status": "error",
"code": 101,
"type": "invalid_key",
"description": "The API Key is missing or invalid."
}حقول الاستجابة#
| الاسم | النوع | الوصف |
|---|---|---|
data.type |
string |
The identity type (absent for event_id).
|
data.value |
string |
The identity, masked: Gurdx stores only a keyed hash of it. |
data.event_id |
integer |
The event labelled (only for event_id).
|
data.label |
string |
fraud or legit.
|
data.status |
string |
created, updated or unchanged.
|
وجدت خطأ؟ أخبرنا عبر صفحة التواصل. تواصل معنا