Developer API & Webhook Reference
Directly integrate autonomous Easypaisa, JazzCash, and Bank payment reconciliation into custom Laravel, Node.js, Python, or PHP web checkouts.
https://tezverify.com/api/v1
X-Api-Key: tz_live_...
Registers a customer checkout payment intent. Submit customer TID (Transaction ID) and amount. TezVerify matches against live inbound banking feeds and dispatches your webhook instantly.
📤 Request Payload (JSON)
application/json{ "gateway": "easypaisa", // "easypaisa" | "jazzcash" | "bank" "transaction_reference": "10293847561", // Customer TID "amount": 1500.00, // PKR Expected amount "sender_source": "03001234567", // optional sender mobile "callback_url": "https://my-store.com/webhook", // optional "client_metadata": { "order_id": "ORD-9941" } // optional }
📥 200 OK Response (JSON)
200 SUCCESS{ "success": true, "message": "Payment submission registered successfully.", "data": { "uuid": "7c4731f8-9fa4-4d87-8df1-4a11b6973e21", "status": "pending", "gateway": "easypaisa", "transaction_reference": "10293847561", "amount_expected": 1500.00, "created_at": "2026-09-14T06:00:00Z" } }
⚡ Client Implementation Snippet
cURLcurl -X POST https://tezverify.com/api/v1/payments/verify \ -H "X-Api-Key: YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "gateway": "easypaisa", "transaction_reference": "10293847561", "amount": 1500.00, "sender_source": "03001234567", "client_metadata": { "order_id": "ORD-9941" } }'
Poll verification status for a transaction UUID (recommended polling interval: every 3 seconds for 60 seconds).
curl -X GET https://tezverify.com/api/v1/payments/status/7c4731f8-9fa4-4d87-8df1-4a11b6973e21 \ -H "X-Api-Key: YOUR_API_KEY"
Push inbound SMS notifications directly to TezVerify from Android SMS forwarders (e.g. SMS Forwarder, Tasker, IFTTT).
curl -X POST https://tezverify.com/api/v1/sms/ingest \ -H "X-Api-Key: YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "sender": "3737", "body": "You have received Rs. 1,500.00 from ALI KHAN. Trans ID 10293847561. Balance Rs. 25,000.00", "received_at": "2026-09-14T06:00:00Z" }'
Monitors database, cache, and processing health status. Used by UptimeRobot, Pingdom, and uptime monitors.
curl -X GET https://tezverify.com/api/v1/system/health
🔒 Verifying Inbound Webhook Signatures (HMAC-SHA256)
Every webhook event from TezVerify contains an X-TezVerify-Signature header. Verify it using your Webhook Signing Secret to prevent spoofing.
// PHP Webhook Signature Verification Example $payload = file_get_contents('php://input'); $signature = $_SERVER['HTTP_X_TEZVERIFY_SIGNATURE'] ?? ''; $secret = 'YOUR_WEBHOOK_SECRET'; $calculated = hash_hmac('sha256', $payload, $secret); if (hash_equals($calculated, $signature)) { // Signature verified! Mark order as Paid in your database $event = json_decode($payload, true); $orderId = $event['data']['client_metadata']['order_id']; http_response_code(200); echo json_encode(['status' => 'received']); } else { http_response_code(403); echo json_encode(['error' => 'Invalid signature']); }