Payouts
Get Payout Transaction Status
Look up the current status of a payout by supplying either the bluSwap transaction_id or your own order_id. Returns INITIATED, SUCCESS, or FAILED.
Get Payout Transaction Status
curl --request GET \
--url https://api.bluswap.co/api/v1/transactions/check_status_cust_by_order_id_or_transanction_id \
--header 'X-Real-IP: <x-real-ip>' \
--header 'x-api-key: <api-key>'import requests
url = "https://api.bluswap.co/api/v1/transactions/check_status_cust_by_order_id_or_transanction_id"
headers = {
"x-api-key": "<api-key>",
"X-Real-IP": "<x-real-ip>"
}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-api-key': '<api-key>', 'X-Real-IP': '<x-real-ip>'}};
fetch('https://api.bluswap.co/api/v1/transactions/check_status_cust_by_order_id_or_transanction_id', 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.bluswap.co/api/v1/transactions/check_status_cust_by_order_id_or_transanction_id",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-Real-IP: <x-real-ip>",
"x-api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.bluswap.co/api/v1/transactions/check_status_cust_by_order_id_or_transanction_id"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-key", "<api-key>")
req.Header.Add("X-Real-IP", "<x-real-ip>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.bluswap.co/api/v1/transactions/check_status_cust_by_order_id_or_transanction_id")
.header("x-api-key", "<api-key>")
.header("X-Real-IP", "<x-real-ip>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.bluswap.co/api/v1/transactions/check_status_cust_by_order_id_or_transanction_id")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'
request["X-Real-IP"] = '<x-real-ip>'
response = http.request(request)
puts response.read_bodyUse this endpoint to retrieve the current status of a payout transaction. You can query by either the
transaction_id returned by bluSwap at payout initiation, or your own internal order_id — at least one of the two must be provided.
Headers
string
required
Your secret API key.
string
required
Your whitelisted server IP address.
Request Parameters
UUID
The bluSwap transaction ID returned in the
bluswap_transaction_id field when you initiated the payout. Required if order_id is not provided.string
Your internal transaction ID passed as
order_id when you initiated the payout. Required if transaction_id is not provided.You must supply at least one of
transaction_id or order_id. If you provide both, bluSwap uses transaction_id as the primary lookup key.Sample Request
curl --get 'https://api.bluswap.co/api/v1/transactions/check_status_cust_by_order_id_or_transanction_id' \
--header 'x-api-key: <YOUR_API_KEY>' \
--header 'X-Real-IP: YOUR_WHITELISTED_IP' \
--data-urlencode 'transaction_id=YOUR_TRANSACTION_ID'
const response = await fetch('https://api.bluswap.co/api/v1/transactions/check_status_cust_by_order_id_or_transanction_id?transaction_id=YOUR_TRANSACTION_ID', {
method: 'GET',
headers: { 'x-api-key': '<YOUR_API_KEY>', 'X-Real-IP': '<YOUR_WHITELISTED_IP>' }
});
console.log(await response.json());
import requests
response = requests.get(
"https://api.bluswap.co/api/v1/transactions/check_status_cust_by_order_id_or_transanction_id",
headers={"x-api-key": "<YOUR_API_KEY>", "X-Real-IP": "<YOUR_WHITELISTED_IP>"},
params={"transaction_id": "YOUR_TRANSACTION_ID"},
)
print(response.json())
var request = java.net.http.HttpRequest.newBuilder(java.net.URI.create("https://api.bluswap.co/api/v1/transactions/check_status_cust_by_order_id_or_transanction_id?transaction_id=YOUR_TRANSACTION_ID")).headers("x-api-key", "<YOUR_API_KEY>", "X-Real-IP", "<YOUR_WHITELISTED_IP>").GET().build();
var response = java.net.http.HttpClient.newHttpClient().send(request, java.net.http.HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
package main
import "net/http"
func main() {
request, _ := http.NewRequest(http.MethodGet, "https://api.bluswap.co/api/v1/transactions/check_status_cust_by_order_id_or_transanction_id?transaction_id=YOUR_TRANSACTION_ID", nil)
request.Header.Set("x-api-key", "<YOUR_API_KEY>")
request.Header.Set("X-Real-IP", "<YOUR_WHITELISTED_IP>")
response, _ := http.DefaultClient.Do(request)
defer response.Body.Close()
}
<?php
$curl = curl_init('https://api.bluswap.co/api/v1/transactions/check_status_cust_by_order_id_or_transanction_id?transaction_id=YOUR_TRANSACTION_ID');
curl_setopt_array($curl, [CURLOPT_HTTPHEADER => ['x-api-key: <YOUR_API_KEY>', 'X-Real-IP: <YOUR_WHITELISTED_IP>'], CURLOPT_RETURNTRANSFER => true]);
echo curl_exec($curl);
curl_close($curl);
require "net/http"
uri = URI("https://api.bluswap.co/api/v1/transactions/check_status_cust_by_order_id_or_transanction_id?transaction_id=YOUR_TRANSACTION_ID")
request = Net::HTTP::Get.new(uri, {"x-api-key" => "<YOUR_API_KEY>", "X-Real-IP" => "<YOUR_WHITELISTED_IP>"})
puts Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(request).body }
Sample Response
{
"status": "Success",
"status_code": 200,
"message": "Transaction status Fetched Successfully",
"detail": null,
"data": {
"bluswap_transaction_id": "xxxxx",
"utr": null,
"amount": "100",
"mode": "IMPS",
"status": "SUCCESS",
"order_id": "xxxxx",
"beneficiary_account_number": "xxxxx",
"beneficiary_ifsc": "xxxxx",
"beneficiary_name": "xxxxx",
"name_at_bank": "xxxxxx",
"account_holder_name": "xxxxx",
"status_description": "Payment has been Credited",
"upi_id": "77XXXXXX43@ybl"
}
}
Transaction Status Values
| Status | Description |
|---|---|
INITIATED | Payout request has been created and is pending processing. |
SUCCESS | Payout completed successfully and funds have been credited to the beneficiary. |
FAILED | Transaction failed. Check status_description for more detail. |
For real-time updates without polling, configure a webhook callback URL. bluSwap will POST a payload to your URL when the transaction reaches a terminal state.
⌘I
Get Payout Transaction Status
curl --request GET \
--url https://api.bluswap.co/api/v1/transactions/check_status_cust_by_order_id_or_transanction_id \
--header 'X-Real-IP: <x-real-ip>' \
--header 'x-api-key: <api-key>'import requests
url = "https://api.bluswap.co/api/v1/transactions/check_status_cust_by_order_id_or_transanction_id"
headers = {
"x-api-key": "<api-key>",
"X-Real-IP": "<x-real-ip>"
}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-api-key': '<api-key>', 'X-Real-IP': '<x-real-ip>'}};
fetch('https://api.bluswap.co/api/v1/transactions/check_status_cust_by_order_id_or_transanction_id', 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.bluswap.co/api/v1/transactions/check_status_cust_by_order_id_or_transanction_id",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-Real-IP: <x-real-ip>",
"x-api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.bluswap.co/api/v1/transactions/check_status_cust_by_order_id_or_transanction_id"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-key", "<api-key>")
req.Header.Add("X-Real-IP", "<x-real-ip>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.bluswap.co/api/v1/transactions/check_status_cust_by_order_id_or_transanction_id")
.header("x-api-key", "<api-key>")
.header("X-Real-IP", "<x-real-ip>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.bluswap.co/api/v1/transactions/check_status_cust_by_order_id_or_transanction_id")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'
request["X-Real-IP"] = '<x-real-ip>'
response = http.request(request)
puts response.read_body