curl --request POST \
--url https://imbawallet.com/api/partner/card_transactions \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"card_id": "00112233445566778899aabb",
"status": "declined",
"limit": 50
}
'import requests
url = "https://imbawallet.com/api/partner/card_transactions"
payload = {
"card_id": "00112233445566778899aabb",
"status": "declined",
"limit": 50
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({card_id: '00112233445566778899aabb', status: 'declined', limit: 50})
};
fetch('https://imbawallet.com/api/partner/card_transactions', 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://imbawallet.com/api/partner/card_transactions",
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([
'card_id' => '00112233445566778899aabb',
'status' => 'declined',
'limit' => 50
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"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://imbawallet.com/api/partner/card_transactions"
payload := strings.NewReader("{\n \"card_id\": \"00112233445566778899aabb\",\n \"status\": \"declined\",\n \"limit\": 50\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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://imbawallet.com/api/partner/card_transactions")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"card_id\": \"00112233445566778899aabb\",\n \"status\": \"declined\",\n \"limit\": 50\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://imbawallet.com/api/partner/card_transactions")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"card_id\": \"00112233445566778899aabb\",\n \"status\": \"declined\",\n \"limit\": 50\n}"
response = http.request(request)
puts response.read_body{
"card_id": "00112233445566778899aabb",
"items": [
{
"transaction_id": "tx-example-001",
"card_id": "00112233445566778899aabb",
"ext_id": "card-issue-20260710-003",
"status": "declined",
"auth_type": "purchase",
"decline_reason": "insufficient_funds",
"amount": "38.15",
"currency": "USD",
"merchant_amount": "16915",
"merchant_currency": "KZT",
"merchant_name": "EXAMPLE STORE",
"mcc": "4816",
"fee_amount": "0.25",
"fee_currency": "USD",
"occurred_at": "2026-04-24T12:00:00.000Z"
}
],
"next_cursor": null
}{
"error": "insufficient_balance",
"message": "<string>"
}{
"error": "insufficient_balance",
"message": "<string>"
}List card transactions and card-funded fees
Scope cards:read. Paged history for all tenant card programs, including
purchases, declined attempts, refunds, reversals, and card-funded fees.
History remains readable when new sales of a product are disabled.
Pages are newest first. Updates preserve the original pagination position.
Hex identifiers remain case-insensitive; other card ids are case-sensitive.
Another tenant’s card, a retail card, and an unknown card return the
same 404 not_found. limit is 1..100 (default 50). 0, a negative
value, a fraction, and a non-numeric value return 400 invalid_limit.
Values above 100 are capped at 100. A cursor from another card, zero,
or a negative cursor is 400 invalid_cursor. A body that is not JSON,
or is larger than 8 KiB, is 400 invalid_json. No PAN, CVV, issuer
name, or supplier name. Card numbers are stripped from merchant text,
decline reasons, and transaction ids, including when digits are
separated by spaces, dots, slashes, or dashes. Unsafe raw issuer ids
are never exposed: a program may omit such an authorization or use
an opaque public transaction id instead.
amount, merchant_amount, and fee_amount are exact signed
decimals. A missing amount is omitted, not zero, and its currency is
omitted with it.
entry_type=fee means a separate card-funded fee; company-funded costs
are excluded. Transaction fee_amount is an attribute, not another
settlement debit. original_transaction_id links an original event
when known. Transaction ids and cursors are opaque.
For programs reporting detailed types, auth_type distinguishes refunds,
reversals, maintenance fees, verification, and expenses. Approved means
completed, including completed refunds. Unknown types remain visible.
The source is persisted issuer events and supported synchronization;
paging does not fetch a full live issuer archive.
curl --request POST \
--url https://imbawallet.com/api/partner/card_transactions \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"card_id": "00112233445566778899aabb",
"status": "declined",
"limit": 50
}
'import requests
url = "https://imbawallet.com/api/partner/card_transactions"
payload = {
"card_id": "00112233445566778899aabb",
"status": "declined",
"limit": 50
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({card_id: '00112233445566778899aabb', status: 'declined', limit: 50})
};
fetch('https://imbawallet.com/api/partner/card_transactions', 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://imbawallet.com/api/partner/card_transactions",
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([
'card_id' => '00112233445566778899aabb',
'status' => 'declined',
'limit' => 50
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"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://imbawallet.com/api/partner/card_transactions"
payload := strings.NewReader("{\n \"card_id\": \"00112233445566778899aabb\",\n \"status\": \"declined\",\n \"limit\": 50\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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://imbawallet.com/api/partner/card_transactions")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"card_id\": \"00112233445566778899aabb\",\n \"status\": \"declined\",\n \"limit\": 50\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://imbawallet.com/api/partner/card_transactions")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"card_id\": \"00112233445566778899aabb\",\n \"status\": \"declined\",\n \"limit\": 50\n}"
response = http.request(request)
puts response.read_body{
"card_id": "00112233445566778899aabb",
"items": [
{
"transaction_id": "tx-example-001",
"card_id": "00112233445566778899aabb",
"ext_id": "card-issue-20260710-003",
"status": "declined",
"auth_type": "purchase",
"decline_reason": "insufficient_funds",
"amount": "38.15",
"currency": "USD",
"merchant_amount": "16915",
"merchant_currency": "KZT",
"merchant_name": "EXAMPLE STORE",
"mcc": "4816",
"fee_amount": "0.25",
"fee_currency": "USD",
"occurred_at": "2026-04-24T12:00:00.000Z"
}
],
"next_cursor": null
}{
"error": "insufficient_balance",
"message": "<string>"
}{
"error": "insufficient_balance",
"message": "<string>"
}Authorizations
Access token from POST /auth/v1/partner/token
Body
"00112233445566778899aabb"
RFC 3339 or unix seconds
"2026-04-01T00:00:00Z"
RFC 3339 or unix seconds
"2026-04-30T23:59:59Z"
Filter only. unknown can appear on items but is not a valid filter.
pending, approved, declined "declined"
Page size. Values above 100 are capped at 100. Zero, negative, fractional, and non-numeric values are 400 invalid_limit.
1 <= x <= 100Opaque cursor from the previous page