Transfer Status
curl --request POST \
--url https://api.payvessel.com/pms/api/external/request/wallet/transfer-status/ \
--header 'Content-Type: <content-type>' \
--header 'api-key: <api-key>' \
--header 'api-secret: <api-secret>' \
--data '
{
"reference": "PAYOUT_2026_0001",
"session_id": "SESSION_123456789"
}
'import requests
url = "https://api.payvessel.com/pms/api/external/request/wallet/transfer-status/"
payload = {
"reference": "PAYOUT_2026_0001",
"session_id": "SESSION_123456789"
}
headers = {
"api-key": "<api-key>",
"api-secret": "<api-secret>",
"Content-Type": "<content-type>"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'api-key': '<api-key>',
'api-secret': '<api-secret>',
'Content-Type': '<content-type>'
},
body: JSON.stringify({reference: 'PAYOUT_2026_0001', session_id: 'SESSION_123456789'})
};
fetch('https://api.payvessel.com/pms/api/external/request/wallet/transfer-status/', 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.payvessel.com/pms/api/external/request/wallet/transfer-status/",
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([
'reference' => 'PAYOUT_2026_0001',
'session_id' => 'SESSION_123456789'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: <content-type>",
"api-key: <api-key>",
"api-secret: <api-secret>"
],
]);
$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.payvessel.com/pms/api/external/request/wallet/transfer-status/"
payload := strings.NewReader("{\n \"reference\": \"PAYOUT_2026_0001\",\n \"session_id\": \"SESSION_123456789\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("api-key", "<api-key>")
req.Header.Add("api-secret", "<api-secret>")
req.Header.Add("Content-Type", "<content-type>")
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.payvessel.com/pms/api/external/request/wallet/transfer-status/")
.header("api-key", "<api-key>")
.header("api-secret", "<api-secret>")
.header("Content-Type", "<content-type>")
.body("{\n \"reference\": \"PAYOUT_2026_0001\",\n \"session_id\": \"SESSION_123456789\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.payvessel.com/pms/api/external/request/wallet/transfer-status/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["api-key"] = '<api-key>'
request["api-secret"] = '<api-secret>'
request["Content-Type"] = '<content-type>'
request.body = "{\n \"reference\": \"PAYOUT_2026_0001\",\n \"session_id\": \"SESSION_123456789\"\n}"
response = http.request(request)
puts response.read_body{
"status": true,
"message": "<string>",
"data": {}
}Transfer
Transfer Status
Check the status of a previously initiated transfer
POST
/
pms
/
api
/
external
/
request
/
wallet
/
transfer-status
/
Transfer Status
curl --request POST \
--url https://api.payvessel.com/pms/api/external/request/wallet/transfer-status/ \
--header 'Content-Type: <content-type>' \
--header 'api-key: <api-key>' \
--header 'api-secret: <api-secret>' \
--data '
{
"reference": "PAYOUT_2026_0001",
"session_id": "SESSION_123456789"
}
'import requests
url = "https://api.payvessel.com/pms/api/external/request/wallet/transfer-status/"
payload = {
"reference": "PAYOUT_2026_0001",
"session_id": "SESSION_123456789"
}
headers = {
"api-key": "<api-key>",
"api-secret": "<api-secret>",
"Content-Type": "<content-type>"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'api-key': '<api-key>',
'api-secret': '<api-secret>',
'Content-Type': '<content-type>'
},
body: JSON.stringify({reference: 'PAYOUT_2026_0001', session_id: 'SESSION_123456789'})
};
fetch('https://api.payvessel.com/pms/api/external/request/wallet/transfer-status/', 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.payvessel.com/pms/api/external/request/wallet/transfer-status/",
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([
'reference' => 'PAYOUT_2026_0001',
'session_id' => 'SESSION_123456789'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: <content-type>",
"api-key: <api-key>",
"api-secret: <api-secret>"
],
]);
$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.payvessel.com/pms/api/external/request/wallet/transfer-status/"
payload := strings.NewReader("{\n \"reference\": \"PAYOUT_2026_0001\",\n \"session_id\": \"SESSION_123456789\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("api-key", "<api-key>")
req.Header.Add("api-secret", "<api-secret>")
req.Header.Add("Content-Type", "<content-type>")
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.payvessel.com/pms/api/external/request/wallet/transfer-status/")
.header("api-key", "<api-key>")
.header("api-secret", "<api-secret>")
.header("Content-Type", "<content-type>")
.body("{\n \"reference\": \"PAYOUT_2026_0001\",\n \"session_id\": \"SESSION_123456789\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.payvessel.com/pms/api/external/request/wallet/transfer-status/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["api-key"] = '<api-key>'
request["api-secret"] = '<api-secret>'
request["Content-Type"] = '<content-type>'
request.body = "{\n \"reference\": \"PAYOUT_2026_0001\",\n \"session_id\": \"SESSION_123456789\"\n}"
response = http.request(request)
puts response.read_body{
"status": true,
"message": "<string>",
"data": {}
}Use this endpoint to check the final status of a transfer you created with either Initiate Transfer or Bulk Transfer.
The
Endpoint
POST/pms/api/external/request/wallet/transfer-status/
Request Body
string
Transfer reference you passed when initiating the transfer
string
Session ID returned in the initial transfer response
Example request
{
"reference": "PAYOUT_2026_0001",
"session_id": "SESSION_123456789"
}
Example cURL
curl -X POST "https://api.payvessel.com/pms/api/external/request/wallet/transfer-status/" \
-H "api-key: YOUR_API_KEY" \
-H "api-secret: YOUR_API_SECRET" \
-H "Content-Type: application/json" \
-d '{
"reference": "PAYOUT_2026_0001",
"session_id": "SESSION_123456789"
}'
Response
{
"status": true,
"message": "Transfer status retrieved",
"data": {
"reference": "PAYOUT_2026_0001",
"session_id": "SESSION_123456789",
"amount": "15000.00",
"status": "success",
"destination_account_number": "0123456789",
"destination_bank_code": "999991",
"destination_account_name": "John Doe",
"completed_at": "2026-03-11T13:04:35.988Z"
}
}
status field in data tells you whether the transfer is pending, success, or failed.
Use this endpoint together with Initiate Transfer, Bulk Transfer, and wallet transaction history for full payout reconciliation.Headers
Your Payvessel public API key
Your Payvessel secret
Request content type
Available options:
application/json Body
application/json
⌘I
