آلية العمل

من مفتاح API إلى سجلات متطابقة في خمس خطوات.

WalletD هو REST API أمام دفتر أستاذ رسمي. هذا هو المسار الذي تسلكه دفعة واحدة، من إدماج مستخدم إلى حركة يستطيع مدقّقوك إعادة حسابها.

آلية العمل

شكل التكامل

  1. 1. اعكس مستخدمك

    أنشئ مستخدم محفظة بمعرّفك الخارجي الخاص. يفتح WalletD حسابات حسب الغرض (نقد، نقاط) أول مرة يُستخدم فيها كلٌّ منها، فلا شيء يحتاج للتوفير سلفًا.

  2. 2. موّل المحفظة

    ابدأ عملية شحن عبر Stripe. يُضاف الرصيد فقط عندما تؤكّد البوابة عبر خطاف ويب موقّع أو استعلام مطابقة، لا عبر رد اتصال من العميل أبدًا.

  3. 3. حرّك الأموال

    أرسِل بين الأقران، أو خذ دفعة بحجز، أو قسّم بيعًا في السوق. كل استدعاء يحمل مفتاح تكافؤ ويقيّد أطرافًا متوازنة في دفتر الأستاذ ضمن معاملة واحدة.

  4. 4. المكافآت والتسوية تتبع

    الاسترداد النقدي والنقاط تُمنح عند لحظة الالتقاط؛ والرسوم والعمولة تُقسَّم؛ والصرفيات تنتج كشف تسوية. كل ذلك يُقيَّد في السجلات نفسها.

  5. 5. اقرأ وتحقّق

    اقرأ الأرصدة والتاريخ عبر الـ API، واستقبل خطافات ويب موقّعة لكل حدث، ودع المُحقِّق المدمج يعيد فحص ثوابت دفتر الأستاذ وفق جدول زمني.

موّل محفظة، ثم أرسِل أموالًا

موّل محفظة، ثم أرسِل أموالًا

الطلب نفسه بست لغات. المبالغ بوحدات صغرى صحيحة؛ ودفتر الأستاذ يتولّى الباقي.

# Fund a wallet, then send money. Balances only move on the ledger.
curl -sS -X POST "$WALLETD_API/v1/users" \
  -H "Authorization: Bearer $WALLETD_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: usr-42-create" \
  -d '{"external_id":"user-42","kind":"consumer","display_name":"Ada Lovelace","handle":"ada"}'

curl -sS -X POST "$WALLETD_API/v1/transfers" \
  -H "Authorization: Bearer $WALLETD_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: xfer-ada-grace-001" \
  -d '{"from":"user-42","to":"@grace","amount":2500,"currency":"USD"}'
client := walletd.New(os.Getenv("WALLETD_API"), os.Getenv("WALLETD_API_KEY"))

var transfer walletd.Transfer
err := client.Do(ctx, http.MethodPost, "/v1/transfers", map[string]any{
    "from":     "user-42",
    "to":       "@grace",
    "amount":   2500, // minor units, $25.00, never a float
    "currency": "USD",
}, &transfer, "xfer-ada-grace-001") // idempotency key
if err != nil {
    return fmt.Errorf("transfer: %w", err)
}
client = WalletD()  # reads WALLETD_API / WALLETD_API_KEY

transfer = client.request(
    "POST",
    "/v1/transfers",
    {
        "from": "user-42",
        "to": "@grace",
        "amount": 2500,      # minor units, $25.00
        "currency": "USD",
    },
    idempotency_key="xfer-ada-grace-001",
)
print(transfer["status"])  # "settled"
const res = await fetch(`${API}/v1/transfers`, {
  method: "POST",
  headers: {
    Authorization: `Bearer ${API_KEY}`,
    "Content-Type": "application/json",
    "Idempotency-Key": "xfer-ada-grace-001",
  },
  body: JSON.stringify({
    from: "user-42",
    to: "@grace",
    amount: 2500, // minor units, $25.00
    currency: "USD",
  }),
});
const transfer = await res.json();
$transfer = $walletd->request('POST', '/v1/transfers', [
    'from'     => 'user-42',
    'to'       => '@grace',
    'amount'   => 2500,      // minor units, $25.00
    'currency' => 'USD',
], idempotencyKey: 'xfer-ada-grace-001');

echo $transfer['status']; // "settled"
var body = Map.of(
    "from", "user-42",
    "to", "@grace",
    "amount", 2500,      // minor units, $25.00
    "currency", "USD");

Transfer transfer = client.post(
    "/v1/transfers", body, "xfer-ada-grace-001", Transfer.class);

مبادئ تصمد في كل خطوة

متكافئ افتراضيًا

كل استدعاء محرِّك للأموال يأخذ مفتاح تكافؤ. إعادة المحاولات آمنة؛ ويعيد دفتر الأستاذ النتيجة المخزّنة بايتًا ببايت.

متوازن ضمن معاملة واحدة

الرسوم والحجوزات والحدود والاستردادات العكسية تُطبَّق داخل القيد نفسه، فلا تكون السجلات خاطئة ولو للحظة.

مؤكَّد، لا مفترَض

الأموال تتحرك على تأكيد موثّق من البوابة وتُسوّى في دفتر الأستاذ، لا على رد متفائل من العميل.

مُتحقَّق منه باستمرار

مُحقِّق مجدوَل يعيد حساب الحفظ والأرصدة والحدود الدنيا، ويُخفق بوضوح لحظة انحراف أي شيء.

وصول مبكر

كن شريك تصميم.

نعمل مع عدد محدود من الفرق التي تبني منتجات محافظ وأموال على WalletD. إن كنت منهم، فلنتحدّث. ستحصل على وصول مباشر إلى من بنوا المنصة.