API v1.0  ยท  Last updated 2026-08-25

Welcome to Ignore Pay API

Ignore Pay is a simple, secure payment automation tool โ€” integrate once, accept payments from your customers everywhere, instantly.

Secure & Verified
Domain verification and intelligent amount checking.
Clean REST API
JSON in/out, simple to integrate in any stack.
Free Sandbox
Unrestricted domain testing on localhost & staging.

API Introduction

Ignore Pay Payment Gateway enables merchants to receive money from customers by temporarily redirecting them to our secure gateway. The gateway connects card systems, mobile financial services, and local wallets. After payment, the customer is returned to your site with full transaction details.

API Operation

Use HTTPS POST requests to the endpoints below. Your server must support cURL. Authentication uses only your API-KEY obtained from the Brands section of your dashboard.

Create Payment
POST https://pay.ignorepay.com/api/payment/create
Verify Payment
POST https://pay.ignorepay.com/api/payment/verify
Parameter Details
POST Create Payment โ€” Request Body
FieldDescription Required Example
cus_nameCustomer full nameYesJohn Doe
cus_emailCustomer email addressYesjohn@gmail.com
amountTotal amount payable.Yes10 / 10.50
success_urlRedirect URL after successful payment. (Must belong to registered domain in live mode; unrestricted in sandbox)Yesyourdomain.com/success
cancel_urlRedirect URL if payment is cancelled.Yesyourdomain.com/cancel
webhook_urlServer-to-server callback URL for payment notifications.Noyourdomain.com/webhook
metadataAny extra JSON-formatted data to attach to the transaction.No{"uid":"123"}
POST Verify Payment โ€” Request Body
FieldDescription Required Example
transaction_idTransaction ID received via query parameter on your success URL after payment completes.YesOVKPXW165414
Request Headers
Authentication: Only your API-KEY is needed. Obtain it from your merchant dashboard under Brands, or use the Universal Sandbox Key for local development.
HeaderValueRequired
Content-Type application/json Yes
API-KEY Your Brand Key from merchant dashboard, or sb_test_sandbox_api_key_ignorepay for Sandbox testing. Yes
โœ“ Success / Cancel URL โ€” Callback Query Parameters
yourdomain.com/success?transactionId=OVKPXW165414&transaction_id=OVKPXW165414&paymentMethod=bkash&amount=10.00&paymentAmount=10.00&paymentFee=0.00&status=COMPLETED&payment_status=completed&status_code=2
Note: Dual parameter keys (transactionId & transaction_id, status & payment_status, amount & paymentAmount) are sent for 100% plug-and-play compatibility with WHMCS, WordPress WooCommerce, and custom scripts.

Integration

Integrate Ignore Pay into any platform โ€” PHP, Laravel, Node.js, Python, or any HTTP-capable environment.

Create Payment โ€” Code Examples

POST to the create endpoint with your customer details, amount, and redirect URLs. Pass your API-KEY as a request header. On success you receive a payment_url โ€” redirect your customer there.

 <?php $curl = curl_init(); curl_setopt_array($curl, array( CURLOPT_URL => 'https://pay.ignorepay.com/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/payment-webhook","metadata":{"phone":"016****"},"amount":"10"}', CURLOPT_HTTPHEADER => array( 'Content-Type: application/json', 'API-KEY: YourBrandKeyHere' ), )); $response = curl_exec($curl); curl_close($curl); echo $response; ?> 
 <?php $client = new Client(); $headers = [ 'Content-Type' => 'application/json', 'API-KEY' => 'YourBrandKeyHere' ]; $body = '{ "success_url": "yourdomain.com/success", "cancel_url": "yourdomain.com/cancel", "webhook_url": "yourdomain.com/payment-webhook", "metadata": { "phone": "016****" }, "amount": "10" }'; $request = new Request('POST', 'https://pay.ignorepay.com/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/payment-webhook", "metadata": { "phone": "016****" }, "amount": "10" }); let config = { method: 'post', maxBodyLength: Infinity, url: 'https://pay.ignorepay.com/api/payment/create', headers: { 'Content-Type': 'application/json', 'API-KEY': 'YourBrandKeyHere' }, 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.ignorepay.com/api/payment/create" payload = json.dumps({ "success_url": "yourdomain.com/success", "cancel_url": "yourdomain.com/cancel", "webhook_url": "yourdomain.com/payment-webhook", "metadata": { "phone": "016****" }, "amount": "10" }) headers = { 'Content-Type': 'application/json', 'API-KEY': 'YourBrandKeyHere' } 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.ignorepay.com/api/payment/create" method := "POST" payload := strings.NewReader(`{"success_url":"yourdomain.com/success","cancel_url":"yourdomain.com/cancel","webhook_url":"yourdomain.com/payment-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("Content-Type", "application/json") req.Header.Add("API-KEY", "YourBrandKeyHere") 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)
transaction_id String Gateway transaction ID. Store this in your order table so webhook and late approval can update the same order later.
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=******&transaction_id=******&paymentMethod=***&payment_method=***&paymentAmount=**.**&amount=**.**&paymentFee=**.**&status=COMPLETED (or PENDING/FAILED)&payment_status=completed (or pending/failed)&status_code=2 (or 1/0)
Verify Payment โ€” Code Examples

After the customer returns to your success_url, use the transactionId query param to verify the transaction server-side.

<?php$curl = curl_init();curl_setopt_array($curl, array( CURLOPT_URL => 'https://pay.ignorepay.com/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( 'Content-Type: application/json', 'API-KEY: YourBrandKeyHere' ),));$response = curl_exec($curl);curl_close($curl);echo $response;?> 
<?php$client = new Client();$headers = [ 'Content-Type' => 'application/json', 'API-KEY' => 'YourBrandKeyHere'];$body = '{ "transaction_id": "ABCDEFH"}';$request = new Request('POST', 'https://pay.ignorepay.com/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.ignorepay.com/api/payment/verify', headers: { 'Content-Type': 'application/json', 'API-KEY': 'YourBrandKeyHere' }, data : data};axios.request(config).then((response) => { console.log(JSON.stringify(response.data));}).catch((error) => { console.log(error);}); 
import http.clientimport jsonconn = http.client.HTTPSConnection("local.pay.expensivepay.com")payload = json.dumps({ "transaction_id": "ABCDEFH"})headers = { 'Content-Type': 'application/json', 'API-KEY': 'YourBrandKeyHere'}conn.request("POST", "/api/payment/verify", payload, headers)res = conn.getresponse()data = res.read()print(data.decode("utf-8")) 
package mainimport ( "fmt" "strings" "net/http" "io/ioutil")func main() { url := "https://pay.ignorepay.com/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("Content-Type", "application/json") req.Header.Add("API-KEY", "YourBrandKeyHere") 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
{ "status": "COMPLETED", "payment_status": "completed", "status_code": 2, "transaction_id": "OVKPXW165414", "transactionId": "OVKPXW165414", "amount": "900.00", "payment_method": "bkash", "cus_name": "John Doe", "cus_email": "john@gmail.com", "metadata": { "phone": "015****" }, "mode": "live"} 

Response Details

Field Name Type Description
Success Response
status string COMPLETED or PENDING or ERROR / CANCELLED
payment_status string completed or pending or cancelled
status_code int 2 (COMPLETED), 1 (PENDING), 0 (CANCELLED / ERROR)
transaction_id string Transaction id Generated by Gateway (Consistent with Create & Webhook)
transactionId string Alias of transaction_id
amount string Amount payable
payment_method string Payment Method used (bkash, nagad, rocket, etc.)
cus_name string Customer Name
cus_email string Customer Email
metadata json / string Metadata passed during Payment creation
Error Response
status bool FALSE
message String Message associated with the error response
Pending Payments & Late Approval

Mobile banking SMS can arrive late. When that happens the payment may stay PENDING. Your website should save the order as pending first, then mark it paid later when the gateway approves the payment.

Status mapping for your website (Consistent in Live & Sandbox)
status (Primary)payment_statusstatus_codeYour website actionWhen it happens
COMPLETEDcompleted2Mark order as paid.Payment verified or approved (Live & Sandbox).
PENDINGpending1Keep local order pending.SMS not matched yet or submitted for admin review.
CANCELLED / FAILEDcancelled / failed0Mark failed or cancelled.Customer cancelled or payment rejected.

Always send webhook_url in the create payment request. When the payment completes, the gateway will call that webhook URL with transaction details.

๐Ÿงช Free Sandbox Test Environment
FREE FOR DEVELOPERS

Test your integration seamlessly on localhost, staging, or any development domain without domain restrictions or real money. Anyone can test immediately without registration or buying a subscription plan.

๐ŸŒ
No Domain Limit
Works on localhost, 127.0.0.1, any port, or any domain.
โšก & โณ
Success & Pending Simulator
Simulate Completed (2), Pending (1), or Cancelled (0) states with 1-click.
๐Ÿ”—
Webhook & Verify API
Receive PENDING / COMPLETED callbacks and test /api/payment/verify.
Universal Sandbox API Key
Ready to Use
sb_test_sandbox_api_key_ignorepay
๐Ÿš€ Try Sandbox Live Tester

Create a test payment immediately right from your browser.

cURL Example (Sandbox)
curl -X POST "https://pay.ignorepay.com/api/payment/create" \ -H "Content-Type: application/json" \ -H "API-KEY: sb_test_sandbox_api_key_ignorepay" \ -d '{ "amount": "500", "cus_name": "Test User", "cus_email": "test@example.com", "success_url": "http://localhost:3000/payment/success", "cancel_url": "http://localhost:3000/payment/cancel", "webhook_url": "http://localhost:3000/payment/webhook" }'

Plugins & Modules

๐Ÿ›๏ธ
WooCommerce Plugin

Official WordPress / WooCommerce payment gateway extension. Supports auto-confirm & pending webhook.

Download Plugin
๐Ÿ–ฅ๏ธ
WHMCS Payment Gateway

Automate web hosting billing with instant payment verification for WHMCS v8.x.

Download Module
๐Ÿ“Š
SMM Panel Module

Compatible with SmartPanel, RentalPanel, and PerfectPanel scripts.

Download Module
๐Ÿ“ฑ
Mobile App (APK)

Gateway Android sync application for SMS forwarder & automatic payment matching.

Download APK