Verification API
cURL
curl -X POST "https://api.shernova.com/v1/verifications" \
-H "Authorization: Bearer sk_live_YOUR_SECRET_KEY" \
-H "Content-Type: application/json" \
-d '{"phone_number":"+201012345678","client_request_id":"signup-001"}'مفاتيح test
sk_test_ + مكالمة فائتة إلى gateway_phone_number من نفس الهاتف (بوابات حقيقية، يستهلك رصيداً).
Receipt
POST /v1/receipts/verify على الخادم — إعادة الاستخدام → 409.
Flutter SDK
تدفق تسجيل
await Shernova.init(shernovaConfig);
final session = await verifyPhone(
context: context,
phoneNumber: _phone.text.trim(),
clientRequestId: 'signup-${DateTime.now().millisecondsSinceEpoch}',
);مثال Backend (Node.js)
javascript
const res = await fetch('https://api.shernova.com/v1/verifications', {
method: 'POST',
headers: {
Authorization: `Bearer ${process.env.SHERNOVA_SECRET_KEY}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({ phone_number: '+201012345678' }),
});
const session = await res.json();
console.log('اتصل:', session.gateway_phone_number);مثال Webhook Handler
تحقق من التوقيع على الجسم الخام. في Express استخدم express.raw على مسار Webhook قبل أي محلل JSON. راجع Webhooks.
راجع sdks/flutter/example/ أو pub.dev packages.
Webhooks
تحقق من التوقيع على الجسم الخام. راجع Webhooks.
الفوترة والرصيد
curl
curl "https://api.shernova.com/v1/apps/YOUR_APP_ID/billing" \
-H "Authorization: Bearer YOUR_DASHBOARD_JWT" \
-H "X-Shernova-Organization-Id: YOUR_ORG_ID"