Welcome To Unique Seba Pay Docs Last updated: 2024-06-06

Unique Seba Pay is a simple and secure payment automation tool designed to use personal accounts as a payment gateway. This documentation provides a complete overview of how Unique Seba Pay works and how you can integrate its API into your website.

API Introduction

Unique Seba Pay Payment Gateway enables merchants to receive money from their customers by temporarily redirecting them to the payment gateway. After payment is completed, the customer can be returned to the merchant website and the merchant can verify the transaction using the available API.

API Operation

REST APIs are supported for payment creation and payment verification. During development, use your testing credentials where available, then use your live credentials for production processing.

Live API Endpoint — Create Payment https://pay.unique-seba.xyz/api/payment/create
Payment Verify API https://pay.unique-seba.xyz/api/payment/verify

Parameter Details

Variables required to initialize payment

Field Name Description Required Example Values
cus_name Customer full name. Yes John Doe
cus_email Customer email address. Yes john@gmail.com
amount Total amount payable. Avoid unnecessary trailing zeros for natural numbers. Yes 10 / 10.50 / 10.6
success_url URL where the customer will be returned after successful payment. Yes https://yourdomain.com/success.php
cancel_url URL where the customer will be returned if the payment is cancelled. Yes https://yourdomain.com/cancel.php
meta_data Optional JSON formatted data. No JSON formatted

Variables required for payment verification

Field Name Description Required Example Values
transaction_id Transaction ID received from the success URL. Yes OVKPXW165414

Headers Details

Header Name Value
Content-Type application/json
API-KEY App key from API credentials
SECRET-KEY Secret key from API credentials
BRAND-KEY Brand key from Brands

Integration

Integrate the payment gateway into PHP, Laravel, WordPress, WooCommerce and other supported platforms.

Sample Request


      <?php

      $curl = curl_init();

      curl_setopt_array($curl, array(
        CURLOPT_URL => 'https://pay.unique-seba.xyz/api/payment/create',
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_ENCODING => '',
        CURLOPT_MAXREDIRS => 10,
        CURLOPT_TIMEOUT => 0,
        CURLOPT_FOLLOWLOCATION => true,
        CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
        CURLOPT_CUSTOMREQUEST => 'POST',
        CURLOPT_POSTFIELDS =>'{"success_url":"yourdomain.com/success","cancel_url":"yourdomain.com/cancel","webhook_url":"yourdomain.com/webhook","metadata":{"phone":"016****"},"amount":"10"}',
        CURLOPT_HTTPHEADER => array(
          'API-KEY: gnXi7etgWNhFyFGZFrOMYyrmnF4A1eGU5SC2QRmUvILOlNc2Ef',
          'Content-Type: application/json'
        ),
      ));

      $response = curl_exec($curl);

      curl_close($curl);
      echo $response;

      ?>
      

      <?php
      $client = new Client();
      $headers = [
        'API-KEY' => 'gnXi7etgWNhFyFGZFrOMYyrmnF4A1eGU5SC2QRmUvILOlNc2Ef',
        'Content-Type' => 'application/json'
      ];
      $body = '{
        "success_url": "yourdomain.com/success",
        "cancel_url": "yourdomain.com/cancel",
        "webhook_url": "yourdomain.com/webhook",
        "metadata": {
          "phone": "016****"
        },
        "amount": "10"
      }';
      $request = new Request('POST', 'https://pay.unique-seba.xyz/api/payment/create', $headers, $body);
      $res = $client->sendAsync($request)->wait();
      echo $res->getBody();
      ?>
      

      const axios = require('axios');
      let data = JSON.stringify({
        "success_url": "yourdomain.com/success",
        "cancel_url": "yourdomain.com/cancel",
        "webhook_url": "yourdomain.com/webhook",
        "metadata": {
          "phone": "016****"
        },
        "amount": "10"
      });

      let config = {
        method: 'post',
        maxBodyLength: Infinity,
        url: 'https://pay.unique-seba.xyz/api/payment/create',
        headers: { 
          'API-KEY': 'gnXi7etgWNhFyFGZFrOMYyrmnF4A1eGU5SC2QRmUvILOlNc2Ef', 
          'Content-Type': 'application/json'
        },
        data : data
      };

      axios.request(config)
      .then((response) => {
        console.log(JSON.stringify(response.data));
      })
      .catch((error) => {
        console.log(error);
      });


      

      import requests
      import json

      url = "https://pay.unique-seba.xyz/api/payment/create"

      payload = json.dumps({
        "success_url": "yourdomain.com/success",
        "cancel_url": "yourdomain.com/cancel",
        "webhook_url": "yourdomain.com/webhook",
        "metadata": {
          "phone": "016****"
        },
        "amount": "10"
      })
      headers = {
        'API-KEY': 'gnXi7etgWNhFyFGZFrOMYyrmnF4A1eGU5SC2QRmUvILOlNc2Ef',
        'Content-Type': 'application/json'
      }

      response = requests.request("POST", url, headers=headers, data=payload)

      print(response.text)


        

      package main

      import (
        "fmt"
        "strings"
        "net/http"
        "io/ioutil"
      )

      func main() {

        url := "https://pay.unique-seba.xyz/api/payment/create"
        method := "POST"

        payload := strings.NewReader(`{"success_url":"yourdomain.com/success","cancel_url":"yourdomain.com/cancel","webhook_url":"yourdomain.com/webhook","metadata":{"phone":"01521412457"},"amount":"10"}`)

        client := &http.Client {
        }
        req, err := http.NewRequest(method, url, payload)

        if err != nil {
          fmt.Println(err)
          return
        }
        req.Header.Add("API-KEY", "gnXi7etgWNhFyFGZFrOMYyrmnF4A1eGU5SC2QRmUvILOlNc2Ef")
        req.Header.Add("Content-Type", "application/json")

        res, err := client.Do(req)
        if err != nil {
          fmt.Println(err)
          return
        }
        defer res.Body.Close()

        body, err := ioutil.ReadAll(res.Body)
        if err != nil {
          fmt.Println(err)
          return
        }
        fmt.Println(string(body))
      }
        

Response Details

Field Name Type Description
Success Response
status bool TRUE
message String Message for Status
payment_url String Payment Link (where customers will complete their payment)
Error Response
status bool FALSE
message String Message associated with the error response
Completing Payment Page task you will be redirected to success or cancel page based on transaction status with the following Query Parameters: yourdomain.com/(success/cancel)?transactionId=******&paymentMethod=***&paymentAmount=**.**&paymentFee=**.**&status=pending or success or failed

Verify Request


      <?php


      $curl = curl_init();

      curl_setopt_array($curl, array(
        CURLOPT_URL => 'https://pay.unique-seba.xyz/api/payment/verify',
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_ENCODING => '',
        CURLOPT_MAXREDIRS => 10,
        CURLOPT_TIMEOUT => 0,
        CURLOPT_FOLLOWLOCATION => true,
        CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
        CURLOPT_CUSTOMREQUEST => 'POST',
        CURLOPT_POSTFIELDS =>'{"transaction_id":"ABCDEFH"}',
        CURLOPT_HTTPHEADER => array(
          'API-KEY: gnXi7etgWNhFyFGZFrOMYyrmnF4A1eGU5SC2QRmUvILOlNc2Ef',
          'Content-Type: application/json'
        ),
      ));

      $response = curl_exec($curl);

      curl_close($curl);
      echo $response;


      ?>
      

      <?php
      $client = new Client();
      $headers = [
        'API-KEY' => 'gnXi7etgWNhFyFGZFrOMYyrmnF4A1eGU5SC2QRmUvILOlNc2Ef',
        'Content-Type' => 'application/json'
      ];
      $body = '{
        "transaction_id": "ABCDEFH"
      }';
      $request = new Request('POST', 'https://pay.unique-seba.xyz/api/payment/verify', $headers, $body);
      $res = $client->sendAsync($request)->wait();
      echo $res->getBody();

      ?>
      

      const axios = require('axios');
      let data = JSON.stringify({
        "transaction_id": "ABCDEFH"
      });

      let config = {
        method: 'post',
        maxBodyLength: Infinity,
        url: 'https://pay.unique-seba.xyz/api/payment/verify',
        headers: { 
          'API-KEY': 'gnXi7etgWNhFyFGZFrOMYyrmnF4A1eGU5SC2QRmUvILOlNc2Ef', 
          'Content-Type': 'application/json'
        },
        data : data
      };

      axios.request(config)
      .then((response) => {
        console.log(JSON.stringify(response.data));
      })
      .catch((error) => {
        console.log(error);
      });



      

      import http.client
      import json

      conn = http.client.HTTPSConnection("local.pay.expensivepay.com")
      payload = json.dumps({
        "transaction_id": "ABCDEFH"
      })
      headers = {
        'API-KEY': 'gnXi7etgWNhFyFGZFrOMYyrmnF4A1eGU5SC2QRmUvILOlNc2Ef',
        'Content-Type': 'application/json'
      }
      conn.request("POST", "/api/payment/verify", payload, headers)
      res = conn.getresponse()
      data = res.read()
      print(data.decode("utf-8"))

        

      package main

      import (
        "fmt"
        "strings"
        "net/http"
        "io/ioutil"
      )

      func main() {

        url := "https://pay.unique-seba.xyz/api/payment/verify"
        method := "POST"

        payload := strings.NewReader(`{"transaction_id":"ABCDEFH"}`)

        client := &http.Client {
        }
        req, err := http.NewRequest(method, url, payload)

        if err != nil {
          fmt.Println(err)
          return
        }
        req.Header.Add("API-KEY", "gnXi7etgWNhFyFGZFrOMYyrmnF4A1eGU5SC2QRmUvILOlNc2Ef")
        req.Header.Add("Content-Type", "application/json")

        res, err := client.Do(req)
        if err != nil {
          fmt.Println(err)
          return
        }
        defer res.Body.Close()

        body, err := ioutil.ReadAll(res.Body)
        if err != nil {
          fmt.Println(err)
          return
        }
        fmt.Println(string(body))
      }
        
Sample Response

      {
          "cus_name": "John Doe",
          "cus_email": "john@gmail.com",
          "amount": "900.000",
          "transaction_id": "OVKPXW165414",
          "metadata": {
            "phone": "015****",
          },
          "payment_method": "bkash",
          "status": "COMPLETED"
      }
      

Response Details

Field Name Type Description
Success Response
status string COMPLETED or PENDING or ERROR
cus_name String Customer Name
cus_email String Customer Email
amount String Amount
transaction_id String Transaction id Generated by System
metadata json Metadata used for Payment creation
Error Response
status bool FALSE
message String Message associated with the error response

WordPress Module

WordPress / WooCommerce

Integrate the payment gateway into your WordPress website or WooCommerce store.

WHMCS Module

WHMCS Payment Module

Integrate the payment gateway into your WHMCS billing environment.

SMM Panel Module

SMM Panel Integration

Add payment functionality to your SMM panel using the provided module.

Mobile App

Unique Pay Android App

Use the mobile application to manage and verify transactions using your authorized API credentials.

Setup Video: View Video