curl --request GET \
--url https://sandbox-payment-b2b.singapay.id/api/v1.0/cardless-withdrawals/transaction/{account_id} \
--header 'Authorization: Bearer <token>' \
--header 'X-PARTNER-ID: <api-key>'import requests
url = "https://sandbox-payment-b2b.singapay.id/api/v1.0/cardless-withdrawals/transaction/{account_id}"
headers = {
"Authorization": "Bearer <token>",
"X-PARTNER-ID": "<api-key>"
}
response = requests.get(url, headers=headers)
print(response.text)const options = {
method: 'GET',
headers: {Authorization: 'Bearer <token>', 'X-PARTNER-ID': '<api-key>'}
};
fetch('https://sandbox-payment-b2b.singapay.id/api/v1.0/cardless-withdrawals/transaction/{account_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://sandbox-payment-b2b.singapay.id/api/v1.0/cardless-withdrawals/transaction/{account_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 => [
"Authorization: Bearer <token>",
"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"
"net/http"
"io"
)
func main() {
url := "https://sandbox-payment-b2b.singapay.id/api/v1.0/cardless-withdrawals/transaction/{account_id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("X-PARTNER-ID", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://sandbox-payment-b2b.singapay.id/api/v1.0/cardless-withdrawals/transaction/{account_id}")
.header("Authorization", "Bearer <token>")
.header("X-PARTNER-ID", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://sandbox-payment-b2b.singapay.id/api/v1.0/cardless-withdrawals/transaction/{account_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
request["X-PARTNER-ID"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"status": 200,
"success": true,
"data": [
{
"transaction_id": "CW-20251024-0001",
"reference_number": "REF-20260610-001",
"status": "open",
"amount": 500000,
"fee": 1500,
"total_paid": 508000,
"balance_after": 992000,
"otp_expired_at": "2025-10-24T14:00:00+07:00",
"customer_id": "CUST-00123",
"customer_name": "Budi Santoso",
"location": null,
"processed_at": null,
"created_at": "2025-10-24T13:44:39+07:00",
"account": {
"id": "01K946KF851RK7FX075GJHBVKF",
"name": "John Doe",
"status": "active",
"account_number": "000000000123",
"account_type": "owned",
"kyb_status": "kyb_in_review",
"legal_name": "PT Asia Kreatif Studio",
"business_type": "company",
"brand_name": "Asia Kreatif",
"kyb_onboarding_url": "https://sandbox-payment-b2b.singapay.id/kyb/0b0e5ad5957a7c2de066c2cde97e91089b605aae9afeba3398ff871cd1e99d54",
"invite_members": [
"john@example.com"
]
}
}
],
"pagination": {
"count": 25,
"total": 42,
"perPage": 25,
"currentPage": 1,
"totalPages": 2,
"links": {
"self": "/api/v1.0/cardless-withdrawals/transaction/01K946KF851RK7FX075GJHBVKF?page=1",
"first": "/api/v1.0/cardless-withdrawals/transaction/01K946KF851RK7FX075GJHBVKF?page=1",
"prev": null,
"next": "/api/v1.0/cardless-withdrawals/transaction/01K946KF851RK7FX075GJHBVKF?page=2",
"last": "/api/v1.0/cardless-withdrawals/transaction/01K946KF851RK7FX075GJHBVKF?page=2"
}
}
}{
"status": 403,
"success": false,
"error": {
"code": 403,
"message": "Access denied."
}
}{
"status": 404,
"success": false,
"error": {
"code": 404,
"message": "Account not found."
}
}{
"status": 503,
"success": false,
"error": {
"code": 503,
"message": "Service temporarily unavailable."
}
}List
Returns a paginated list of cardless withdrawals for the account, limited to the last 12 months. Results are sorted newest-first, 25 records per page. Unlike the show endpoint, list records do not include the related account object.
curl --request GET \
--url https://sandbox-payment-b2b.singapay.id/api/v1.0/cardless-withdrawals/transaction/{account_id} \
--header 'Authorization: Bearer <token>' \
--header 'X-PARTNER-ID: <api-key>'import requests
url = "https://sandbox-payment-b2b.singapay.id/api/v1.0/cardless-withdrawals/transaction/{account_id}"
headers = {
"Authorization": "Bearer <token>",
"X-PARTNER-ID": "<api-key>"
}
response = requests.get(url, headers=headers)
print(response.text)const options = {
method: 'GET',
headers: {Authorization: 'Bearer <token>', 'X-PARTNER-ID': '<api-key>'}
};
fetch('https://sandbox-payment-b2b.singapay.id/api/v1.0/cardless-withdrawals/transaction/{account_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://sandbox-payment-b2b.singapay.id/api/v1.0/cardless-withdrawals/transaction/{account_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 => [
"Authorization: Bearer <token>",
"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"
"net/http"
"io"
)
func main() {
url := "https://sandbox-payment-b2b.singapay.id/api/v1.0/cardless-withdrawals/transaction/{account_id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("X-PARTNER-ID", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://sandbox-payment-b2b.singapay.id/api/v1.0/cardless-withdrawals/transaction/{account_id}")
.header("Authorization", "Bearer <token>")
.header("X-PARTNER-ID", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://sandbox-payment-b2b.singapay.id/api/v1.0/cardless-withdrawals/transaction/{account_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
request["X-PARTNER-ID"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"status": 200,
"success": true,
"data": [
{
"transaction_id": "CW-20251024-0001",
"reference_number": "REF-20260610-001",
"status": "open",
"amount": 500000,
"fee": 1500,
"total_paid": 508000,
"balance_after": 992000,
"otp_expired_at": "2025-10-24T14:00:00+07:00",
"customer_id": "CUST-00123",
"customer_name": "Budi Santoso",
"location": null,
"processed_at": null,
"created_at": "2025-10-24T13:44:39+07:00",
"account": {
"id": "01K946KF851RK7FX075GJHBVKF",
"name": "John Doe",
"status": "active",
"account_number": "000000000123",
"account_type": "owned",
"kyb_status": "kyb_in_review",
"legal_name": "PT Asia Kreatif Studio",
"business_type": "company",
"brand_name": "Asia Kreatif",
"kyb_onboarding_url": "https://sandbox-payment-b2b.singapay.id/kyb/0b0e5ad5957a7c2de066c2cde97e91089b605aae9afeba3398ff871cd1e99d54",
"invite_members": [
"john@example.com"
]
}
}
],
"pagination": {
"count": 25,
"total": 42,
"perPage": 25,
"currentPage": 1,
"totalPages": 2,
"links": {
"self": "/api/v1.0/cardless-withdrawals/transaction/01K946KF851RK7FX075GJHBVKF?page=1",
"first": "/api/v1.0/cardless-withdrawals/transaction/01K946KF851RK7FX075GJHBVKF?page=1",
"prev": null,
"next": "/api/v1.0/cardless-withdrawals/transaction/01K946KF851RK7FX075GJHBVKF?page=2",
"last": "/api/v1.0/cardless-withdrawals/transaction/01K946KF851RK7FX075GJHBVKF?page=2"
}
}
}{
"status": 403,
"success": false,
"error": {
"code": 403,
"message": "Access denied."
}
}{
"status": 404,
"success": false,
"error": {
"code": 404,
"message": "Account not found."
}
}{
"status": 503,
"success": false,
"error": {
"code": 503,
"message": "Service temporarily unavailable."
}
}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. Must belong to the authenticated merchant.
"01K946KF851RK7FX075GJHBVKF"
Response
Success. Returns a paginated array of cardless withdrawal records with pagination metadata.
Success response envelope for the cardless withdrawal list endpoint. Contains a paginated collection of withdrawal records.
HTTP status code echoed in the response body.
200
Indicates whether the request completed successfully.
true
Array of cardless withdrawal transaction records.
Show child attributes
Show child attributes
Pagination metadata including current page, per page count, and total records.
Show child attributes
Show child attributes
