curl --request POST \
--url https://sandbox-payment-b2b.singapay.id/api/v2.0/disbursement/{account_id}/inquiry-status \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'X-PARTNER-ID: <api-key>' \
--data '
{
"reference_number": "1134567891011"
}
'import requests
url = "https://sandbox-payment-b2b.singapay.id/api/v2.0/disbursement/{account_id}/inquiry-status"
payload = { "reference_number": "1134567891011" }
headers = {
"Authorization": "Bearer <token>",
"X-PARTNER-ID": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
Authorization: 'Bearer <token>',
'X-PARTNER-ID': '<api-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({reference_number: '1134567891011'})
};
fetch('https://sandbox-payment-b2b.singapay.id/api/v2.0/disbursement/{account_id}/inquiry-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://sandbox-payment-b2b.singapay.id/api/v2.0/disbursement/{account_id}/inquiry-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_number' => '1134567891011'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json",
"X-PARTNER-ID: <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"
"strings"
"net/http"
"io"
)
func main() {
url := "https://sandbox-payment-b2b.singapay.id/api/v2.0/disbursement/{account_id}/inquiry-status"
payload := strings.NewReader("{\n \"reference_number\": \"1134567891011\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("X-PARTNER-ID", "<api-key>")
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://sandbox-payment-b2b.singapay.id/api/v2.0/disbursement/{account_id}/inquiry-status")
.header("Authorization", "Bearer <token>")
.header("X-PARTNER-ID", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"reference_number\": \"1134567891011\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://sandbox-payment-b2b.singapay.id/api/v2.0/disbursement/{account_id}/inquiry-status")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["X-PARTNER-ID"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"reference_number\": \"1134567891011\"\n}"
response = http.request(request)
puts response.read_body{
"response_code": "SP000",
"response_message": "Successfully",
"data": {
"transaction_id": "331222025121209092460774035",
"reference_number": "1134567891011",
"transaction_status": {
"code": "03",
"desc": "Pending"
},
"post_timestamp": "1765505364000",
"processed_timestamp": "",
"bank": {
"code": "002",
"name": "BRI",
"account_name": "Cengkal Marpaung",
"account_number": "1234567890000"
},
"gross_amount": {
"currency": "IDR",
"value": "51000.00"
},
"fee": {
"currency": "IDR",
"value": "1000.00"
},
"net_amount": {
"currency": "IDR",
"value": "50000.00"
},
"balance_after": {
"currency": "IDR",
"value": "1000000.00"
},
"notes": "sometimes"
}
}{
"response_code": "SP008",
"response_message": "Invalid Reference Number",
"data": {
"reference_number": "113456",
"message": "`reference_number` or `account_id` not found"
}
}{
"response_code": "SP018",
"response_message": "Validation error",
"data": {
"reference_number": "113456",
"message": "Validation error `reference_number`: `The reference number field is required.`"
}
}Inquiry Status
Retrieves the current status and details of a disbursement using your reference_number and the account in the path. For pending transactions, the service may refresh status from the banking partner before responding, See Response Code for the full SP000–SP020 reference.
curl --request POST \
--url https://sandbox-payment-b2b.singapay.id/api/v2.0/disbursement/{account_id}/inquiry-status \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'X-PARTNER-ID: <api-key>' \
--data '
{
"reference_number": "1134567891011"
}
'import requests
url = "https://sandbox-payment-b2b.singapay.id/api/v2.0/disbursement/{account_id}/inquiry-status"
payload = { "reference_number": "1134567891011" }
headers = {
"Authorization": "Bearer <token>",
"X-PARTNER-ID": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
Authorization: 'Bearer <token>',
'X-PARTNER-ID': '<api-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({reference_number: '1134567891011'})
};
fetch('https://sandbox-payment-b2b.singapay.id/api/v2.0/disbursement/{account_id}/inquiry-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://sandbox-payment-b2b.singapay.id/api/v2.0/disbursement/{account_id}/inquiry-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_number' => '1134567891011'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json",
"X-PARTNER-ID: <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"
"strings"
"net/http"
"io"
)
func main() {
url := "https://sandbox-payment-b2b.singapay.id/api/v2.0/disbursement/{account_id}/inquiry-status"
payload := strings.NewReader("{\n \"reference_number\": \"1134567891011\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("X-PARTNER-ID", "<api-key>")
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://sandbox-payment-b2b.singapay.id/api/v2.0/disbursement/{account_id}/inquiry-status")
.header("Authorization", "Bearer <token>")
.header("X-PARTNER-ID", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"reference_number\": \"1134567891011\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://sandbox-payment-b2b.singapay.id/api/v2.0/disbursement/{account_id}/inquiry-status")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["X-PARTNER-ID"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"reference_number\": \"1134567891011\"\n}"
response = http.request(request)
puts response.read_body{
"response_code": "SP000",
"response_message": "Successfully",
"data": {
"transaction_id": "331222025121209092460774035",
"reference_number": "1134567891011",
"transaction_status": {
"code": "03",
"desc": "Pending"
},
"post_timestamp": "1765505364000",
"processed_timestamp": "",
"bank": {
"code": "002",
"name": "BRI",
"account_name": "Cengkal Marpaung",
"account_number": "1234567890000"
},
"gross_amount": {
"currency": "IDR",
"value": "51000.00"
},
"fee": {
"currency": "IDR",
"value": "1000.00"
},
"net_amount": {
"currency": "IDR",
"value": "50000.00"
},
"balance_after": {
"currency": "IDR",
"value": "1000000.00"
},
"notes": "sometimes"
}
}{
"response_code": "SP008",
"response_message": "Invalid Reference Number",
"data": {
"reference_number": "113456",
"message": "`reference_number` or `account_id` not found"
}
}{
"response_code": "SP018",
"response_message": "Validation error",
"data": {
"reference_number": "113456",
"message": "Validation error `reference_number`: `The reference number field is required.`"
}
}Authorizations
JWT issued by POST /api/v1.1/access-token/b2b. Send Authorization: Bearer <token>.
Merchant API key (Credential.api_key). Required on every request.
Path Parameters
Unique identifier (ULID) of the merchant account that owns the disbursement. Must belong to the authenticated merchant.
Body
Request body for looking up a disbursement by merchant reference number.
Merchant reference supplied when the transfer was created. Lookup is scoped to the account in the path and the authenticated merchant.
64"1134567891011"
Response
SP000 Successfully. Merchant action: interpret data.transaction_status (03 Pending, 00 Success, 06 Failed).
Custom v2 envelope for disbursement inquiry status. Success uses SP000 (HTTP 200).
SingaPay custom business response code.
"SP000"
Human-readable label paired with response_code.
"Successfully"
data on successful disbursement v2 transfer or v2 inquiry status (HTTP 200, response_code SP000).
Show child attributes
Show child attributes
