Complete integration guide, REST API reference, and ready-to-use SDKs to accept and automate bKash, Nagad, Rocket, and card payments seamlessly with ZyronPay.
Acquire your API-KEY, SECRET-KEY, and BRAND-KEY from your merchant portal.
POST customer and amount details to create an automated checkout link.
Listen to webhooks or query the verify endpoint to complete orders in real time.
Generate dynamic checkout links and redirect customers to complete payments securely through ZyronPay.
This endpoint receives transaction details (customer name, email, amount, return URLs) and responds with a unique payment_url. Redirect the customer to this URL to complete payment via bKash, Nagad, Rocket, or Bank Transfer.
| Field Name | Required | Type | Description |
|---|---|---|---|
cus_name | Required | string | Full name of the customer |
cus_email | Required | string | Customer email address for invoice and transaction records |
amount | Required | number | Payable amount in BDT (e.g. 100, 550.00) |
success_url | Required | url | URL where customer is redirected after successful payment |
cancel_url | Required | url | URL where customer is redirected if payment is cancelled |
meta_data | Optional | json | Custom tracking information or order payload |
| Header | Type | Value Description |
|---|---|---|
Content-Type | string | application/json |
API-KEY | string | Public App Key from API Credentials in Merchant Portal |
SECRET-KEY | string | Private Secret Key from API Credentials |
BRAND-KEY | string | Verified Brand Key identifier |
<?php$curl = curl_init();curl_setopt_array($curl, array( CURLOPT_URL => 'https://pay.zyronpay.top/api/payment/create', CURLOPT_RETURNTRANSFER => true, CURLOPT_CUSTOMREQUEST => 'POST', CURLOPT_POSTFIELDS => json_encode(array( "cus_name" => "John Doe", "cus_email" => "john@example.com", "amount" => "100", "success_url" => "https://yourdomain.com/success", "cancel_url" => "https://yourdomain.com/cancel", "meta_data" => json_encode(array("order_id" => "1024")) )), CURLOPT_HTTPHEADER => array( 'Content-Type: application/json', 'API-KEY: YOUR_API_KEY', 'SECRET-KEY: YOUR_SECRET_KEY', 'BRAND-KEY: YOUR_BRAND_KEY' ),));$response = curl_exec($curl);curl_close($curl);echo $response;?> const axios = require('axios');axios.post('https://pay.zyronpay.top/api/payment/create', { cus_name: "John Doe", cus_email: "john@example.com", amount: "100", success_url: "https://yourdomain.com/success", cancel_url: "https://yourdomain.com/cancel", meta_data: JSON.stringify({ order_id: "1024" })}, { headers: { 'Content-Type': 'application/json', 'API-KEY': 'YOUR_API_KEY', 'SECRET-KEY': 'YOUR_SECRET_KEY', 'BRAND-KEY': 'YOUR_BRAND_KEY' }}).then(res => console.log(res.data)).catch(err => console.error(err)); import requests, jsonurl = "https://pay.zyronpay.top/api/payment/create"payload = { "cus_name": "John Doe", "cus_email": "john@example.com", "amount": "100", "success_url": "https://yourdomain.com/success", "cancel_url": "https://yourdomain.com/cancel", "meta_data": json.dumps({"order_id": "1024"})}headers = { "Content-Type": "application/json", "API-KEY": "YOUR_API_KEY", "SECRET-KEY": "YOUR_SECRET_KEY", "BRAND-KEY": "YOUR_BRAND_KEY"}response = requests.post(url, json=payload, headers=headers)print(response.json()) package mainimport ( "fmt" "net/http" "io/ioutil" "strings")func main() { url := "https://pay.zyronpay.top/api/payment/create" payload := strings.NewReader(`{"cus_name":"John Doe","cus_email":"john@example.com","amount":"100","success_url":"https://yourdomain.com/success","cancel_url":"https://yourdomain.com/cancel"}`) req, _ := http.NewRequest("POST", url, payload) req.Header.Add("Content-Type", "application/json") req.Header.Add("API-KEY", "YOUR_API_KEY") req.Header.Add("SECRET-KEY", "YOUR_SECRET_KEY") req.Header.Add("BRAND-KEY", "YOUR_BRAND_KEY") res, _ := http.DefaultClient.Do(req) defer res.Body.Close() body, _ := ioutil.ReadAll(res.Body) fmt.Println(string(body))} { "status": true, "message": "Payment URL generated successfully", "payment_url": "https://pay.zyronpay.top/checkout/session/pay_78291048"} Log in to your ZyronPay merchant dashboard, navigate to Settings > API Credentials, and copy your API-KEY, SECRET-KEY, and BRAND-KEY.
Yes, in production environments your success_url and webhook endpoints must use valid SSL certificates (HTTPS) to maintain bank-grade confidentiality.
Our system reconciles MFS transaction messages in real-time, verifying matching amounts and TrxIDs with sub-second latency.