v2.0 Developer API

Gateway Integration Guide

যেকোনো ওয়েবসাইট, সফটওয়্যার বা মোবাইল অ্যাপ্লিকেশনে আমাদের বিকাশ ও নগদ পেমেন্ট গেটওয়ে যুক্ত করার সম্পূর্ণ টেকনিক্যাল ডকুমেন্টেশন।

⚡ সহজ ও দ্রুত ইন্টিগ্রেশন (Quick Integration Specs)

যেকোনো সিস্টেমে ইন্টিগ্রেশন করার সম্পূর্ণ টেকনিক্যাল স্পেসিফিকেশন এক ক্লিকে কপি করুন।

🚀 ১. চেকআউট এন্ডপয়েন্ট (Endpoints)

গ্রাহককে পেমেন্ট পেজে পাঠাতে নিচের যেকোনো একটি URL-এ প্রয়োজনীয় প্যারামিটার সহ রিডাইরেক্ট করুন:

GET / POST https://pay.autopaybd.click/bkash_checkout.php
GET / POST https://pay.autopaybd.click/nagad_checkout.php

📋 ২. রিকোয়েস্ট প্যারামিটারসমূহ

চেকআউট পেজে ইউজারকে পাঠানোর সময় নিচের প্যারামিটারগুলো পাস করতে হবে:

প্যারামিটার টাইপ প্রয়োজনীয়তা বিবরণ
brand_key String Required মার্চেন্টের ইউনিক ব্র্যান্ড কি (যেমন: YOUR_BRAND_KEY)
amount Float / Int Required টাকার পরিমাণ (যেমন: 500.00)
payer_email String Required পেমেন্টকারী কাস্টমারের ইমেইল অ্যাড্রেস
callback_url URL Required সার্ভার-টু-সার্ভার Webhook নোটিফিকেশন রিসিভ করার URL
return_url URL Required পেমেন্ট সফল হলে কাস্টমারকে ফেরত পাঠানোর URL

💻 ৩. পেমেন্ট ইনিশিয়েট কোড (PHP Integration)

আপনার সাইটের চেকআউট ফাইলে কাস্টমারকে গেটওয়েতে পাঠাতে নিচের কোডটি ব্যবহার করুন:

PHP (payment_process.php)
<?php
$brand_key    = "YOUR_BRAND_KEY";
$callback_url = "https://yourwebsite.com/callback.php";
$return_url   = "https://yourwebsite.com/dashboard.php";

$amount       = 500.00;
$payer_email  = "[email protected]";
$method       = "bKash";

$gateway_domain = "https://pay.autopaybd.click";
$endpoint       = ($method === 'Nagad') ? "nagad_checkout.php" : "bkash_checkout.php";

$payment_url = $gateway_domain . "/" . $endpoint . "?" . http_build_query([
    'brand_key'    => $brand_key,
    'amount'       => $amount,
    'payer_email'  => $payer_email,
    'callback_url' => $callback_url,
    'return_url'   => $return_url
]);

header("Location: " . $payment_url);
exit();
?>

⚡ ৪. কলব্যাক হ্যান্ডলার (Webhook / Callback Handler)

পেমেন্ট সফল হলে গেটওয়ে cURL POST রিকোয়েস্টের মাধ্যমে আপনার callback_url-এ নিচের ডাটা পাঠাবে:

POST প্যারামিটার বিবরণ
status পেমেন্ট সফল হলে রিটার্ন আসবে success
trx_id বিকাশ বা নগদ থেকে আসা আসল লেনদেন আইডি (যেমন: 760UPPEM)
amount কাস্টমার কর্তৃক প্রেরিত সফল টাকার পরিমাণ
payer_email যে কাস্টমার টাকা পরিশোধ করেছে তার ইমেইল
brand_key রিকোয়েস্ট ভেরিফিকেশনের জন্য মার্চেন্ট Brand Key
PHP (callback.php)
<?php
date_default_timezone_set('Asia/Dhaka');
require_once 'config.php';

if ($_SERVER['REQUEST_METHOD'] !== 'POST') {
    http_response_code(405);
    exit("Method Not Allowed");
}

$brand_key      = trim($_POST['brand_key'] ?? '');
$status         = trim($_POST['status'] ?? '');
$trx_id         = strtoupper(trim($_POST['trx_id'] ?? ''));
$amount         = floatval($_POST['amount'] ?? 0);
$payer_email    = trim($_POST['payer_email'] ?? '');
$merchant_email = trim($_POST['merchant_email'] ?? '');

$MY_BRAND_KEY = "YOUR_BRAND_KEY";

if ($brand_key !== $MY_BRAND_KEY || $status !== 'success' || empty($trx_id) || empty($payer_email) || $amount <= 0) {
    http_response_code(400);
    exit("Invalid Request Data");
}

try {
    $pdo->beginTransaction();

    $stmtCheck = $pdo->prepare("SELECT id FROM `transactions` WHERE `trx_id` = :trx LIMIT 1");
    $stmtCheck->execute(['trx' => $trx_id]);
    if ($stmtCheck->fetch()) {
        $pdo->rollBack();
        exit("ALREADY_PROCESSED");
    }

    $stmtUpdate = $pdo->prepare("UPDATE `users` SET `balance` = `balance` + :amt WHERE `email` = :email");
    $stmtUpdate->execute([
        'amt'   => $amount,
        'email' => $payer_email
    ]);

    $stmtInsert = $pdo->prepare("INSERT INTO `transactions` (`user_email`, `trx_id`, `amount`, `type`, `status`, `created_at`) 
                                 VALUES (:email, :trx, :amt, 'Add Money', 'success', NOW())");
    $stmtInsert->execute([
        'email'  => $payer_email,
        'trx'    => $trx_id,
        'amt'    => $amount
    ]);

    $pdo->commit();
    http_response_code(200);
    echo "SUCCESS";

} catch (PDOException $e) {
    if ($pdo->inTransaction()) {
        $pdo->rollBack();
    }
    http_response_code(500);
    echo "Database Error";
}
?>

🔄 ৫. রিটার্ন পেজে হ্যান্ডলিং (Return URL)

পেমেন্ট সফল হলে গেটওয়ে কাস্টমারকে আপনার return_url-এ ফেরত পাঠাবে: https://yourwebsite.com/dashboard.php?trx_id=760UPPEM&status=success

PHP (dashboard.php or success.php)
<?php
if (isset($_GET['status']) && $_GET['status'] === 'success') {
    $trx_id = htmlspecialchars($_GET['trx_id'] ?? '');
    echo "<div style='background:#dcfce7; color:#15803d; padding:12px; border-radius:8px; margin-bottom:15px;'>
            Payment Successful! Transaction ID: <strong>" . $trx_id . "</strong>
          </div>";
}
?>