Simulate Payment
curl --request POST \
--url https://api.example.com/pg/subscriptions/{subscription_id}/simulate_payment/ \
--header 'Content-Type: application/json' \
--data '
{
"payment_status": "<string>",
"payment_id": "<string>"
}
'import requests
url = "https://api.example.com/pg/subscriptions/{subscription_id}/simulate_payment/"
payload = {
"payment_status": "<string>",
"payment_id": "<string>"
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({payment_status: '<string>', payment_id: '<string>'})
};
fetch('https://api.example.com/pg/subscriptions/{subscription_id}/simulate_payment/', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.example.com/pg/subscriptions/{subscription_id}/simulate_payment/",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'payment_status' => '<string>',
'payment_id' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.example.com/pg/subscriptions/{subscription_id}/simulate_payment/"
payload := strings.NewReader("{\n \"payment_status\": \"<string>\",\n \"payment_id\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.example.com/pg/subscriptions/{subscription_id}/simulate_payment/")
.header("Content-Type", "application/json")
.body("{\n \"payment_status\": \"<string>\",\n \"payment_id\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/pg/subscriptions/{subscription_id}/simulate_payment/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"payment_status\": \"<string>\",\n \"payment_id\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"message": "Payment simulation triggered successfully",
"data": {
"payment_id": "pay_abc123",
"payment_status": "SUCCESS"
}
}
{
"success": false,
"error": {
"code": "PAYMENT_GATEWAY_VALIDATION_ERROR",
"message": "Invalid payment_status",
"details": {
"payment_status": "Must be one of: SUCCESS, FAILED"
}
}
}
{
"success": false,
"error": {
"code": "PAYMENT_GATEWAY_ERROR",
"message": "This endpoint is not available in production",
"details": {
"error": "This endpoint is not available in production"
}
}
}
{
"success": false,
"error": {
"code": "PAYMENT_GATEWAY_API_ERROR",
"message": "Payment gateway API error",
"details": {
"error": "..."
}
}
}
Subscriptions
Simulate Payment
Simulate a subscription payment success or failure via the payment gateway sandbox.
POST
/
pg
/
subscriptions
/
{subscription_id}
/
simulate_payment
/
Simulate Payment
curl --request POST \
--url https://api.example.com/pg/subscriptions/{subscription_id}/simulate_payment/ \
--header 'Content-Type: application/json' \
--data '
{
"payment_status": "<string>",
"payment_id": "<string>"
}
'import requests
url = "https://api.example.com/pg/subscriptions/{subscription_id}/simulate_payment/"
payload = {
"payment_status": "<string>",
"payment_id": "<string>"
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({payment_status: '<string>', payment_id: '<string>'})
};
fetch('https://api.example.com/pg/subscriptions/{subscription_id}/simulate_payment/', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.example.com/pg/subscriptions/{subscription_id}/simulate_payment/",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'payment_status' => '<string>',
'payment_id' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.example.com/pg/subscriptions/{subscription_id}/simulate_payment/"
payload := strings.NewReader("{\n \"payment_status\": \"<string>\",\n \"payment_id\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.example.com/pg/subscriptions/{subscription_id}/simulate_payment/")
.header("Content-Type", "application/json")
.body("{\n \"payment_status\": \"<string>\",\n \"payment_id\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/pg/subscriptions/{subscription_id}/simulate_payment/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"payment_status\": \"<string>\",\n \"payment_id\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"message": "Payment simulation triggered successfully",
"data": {
"payment_id": "pay_abc123",
"payment_status": "SUCCESS"
}
}
{
"success": false,
"error": {
"code": "PAYMENT_GATEWAY_VALIDATION_ERROR",
"message": "Invalid payment_status",
"details": {
"payment_status": "Must be one of: SUCCESS, FAILED"
}
}
}
{
"success": false,
"error": {
"code": "PAYMENT_GATEWAY_ERROR",
"message": "This endpoint is not available in production",
"details": {
"error": "This endpoint is not available in production"
}
}
}
{
"success": false,
"error": {
"code": "PAYMENT_GATEWAY_API_ERROR",
"message": "Payment gateway API error",
"details": {
"error": "..."
}
}
}
Simulate a subscription payment success or failure via the payment gateway’s sandbox/UAT environment.
This endpoint is not available in production.
Path Parameters
string
required
The unique identifier (uid) of the subscription.
Request Body
string
required
The desired payment outcome to simulate. Must be one of:
SUCCESSFAILED
string
Optional payment ID to simulate against a specific payment. If omitted, the gateway determines the target payment.
{
"success": true,
"message": "Payment simulation triggered successfully",
"data": {
"payment_id": "pay_abc123",
"payment_status": "SUCCESS"
}
}
{
"success": false,
"error": {
"code": "PAYMENT_GATEWAY_VALIDATION_ERROR",
"message": "Invalid payment_status",
"details": {
"payment_status": "Must be one of: SUCCESS, FAILED"
}
}
}
{
"success": false,
"error": {
"code": "PAYMENT_GATEWAY_ERROR",
"message": "This endpoint is not available in production",
"details": {
"error": "This endpoint is not available in production"
}
}
}
{
"success": false,
"error": {
"code": "PAYMENT_GATEWAY_API_ERROR",
"message": "Payment gateway API error",
"details": {
"error": "..."
}
}
}
⌘I