curl --request GET \
--url https://app.base44.com/api/apps/{app_id}/payments/analytics/recent-transactions \
--header 'Authorization: Bearer <token>'import requests
url = "https://app.base44.com/api/apps/{app_id}/payments/analytics/recent-transactions"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://app.base44.com/api/apps/{app_id}/payments/analytics/recent-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://app.base44.com/api/apps/{app_id}/payments/analytics/recent-transactions",
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>"
],
]);
$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://app.base44.com/api/apps/{app_id}/payments/analytics/recent-transactions"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://app.base44.com/api/apps/{app_id}/payments/analytics/recent-transactions")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.base44.com/api/apps/{app_id}/payments/analytics/recent-transactions")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"transactions": [
{
"action": "payment",
"amount": 2500,
"currency": "usd",
"customer_email": "jane@example.com",
"customer_id": "cus_T7mK2p9Q4r6S8v",
"customer_name": "Jane Doe",
"is_live": true,
"status": "succeeded",
"timestamp": "2026-08-25 10:00:00",
"transaction_id": "pi_T7mK2p9Q4r6S8v"
}
]
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}Get recent payment transactions
Returns the app’s most recent payments, refunds, and disputes, newest first.
Without a provider filter, this list spans every connected provider but only attempts customer enrichment against Stripe, so Wix customers may come back without a name or email. Filtering to one provider needs the extra access provider describes.
Send start_date and end_date together to set a window. With neither, or only one of the two, period selects the last 7, 30, or 90 whole UTC days including today.
Returns a single batch of up to limit records, with no cursor to retrieve the rest.
Results come from an analytics store and can lag behind the payment provider.
Requires read access to the app.
curl --request GET \
--url https://app.base44.com/api/apps/{app_id}/payments/analytics/recent-transactions \
--header 'Authorization: Bearer <token>'import requests
url = "https://app.base44.com/api/apps/{app_id}/payments/analytics/recent-transactions"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://app.base44.com/api/apps/{app_id}/payments/analytics/recent-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://app.base44.com/api/apps/{app_id}/payments/analytics/recent-transactions",
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>"
],
]);
$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://app.base44.com/api/apps/{app_id}/payments/analytics/recent-transactions"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://app.base44.com/api/apps/{app_id}/payments/analytics/recent-transactions")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.base44.com/api/apps/{app_id}/payments/analytics/recent-transactions")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"transactions": [
{
"action": "payment",
"amount": 2500,
"currency": "usd",
"customer_email": "jane@example.com",
"customer_id": "cus_T7mK2p9Q4r6S8v",
"customer_name": "Jane Doe",
"is_live": true,
"status": "succeeded",
"timestamp": "2026-08-25 10:00:00",
"transaction_id": "pi_T7mK2p9Q4r6S8v"
}
]
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}Authorizations
Personal access token, sent as Authorization: Bearer <token>. Each operation lists the permission it needs: read_only or full_access. A full-access token can call every operation. A read-only token can call only the operations that list read_only; anything else returns 403 read_only_credential_route_not_allowed.
Path Parameters
ID of the Base44 app.
Query Parameters
Start of the window as an ISO 8601 timestamp. Send with end_date. Defaults to the period window.
End of the window as an ISO 8601 timestamp. Send with start_date. Defaults to now when using period.
Fallback window. Either 7d, 30d, or 90d. Defaults to 30d. Used unless both dates are supplied.
7d, 30d, 90d Maximum transactions to return, from 1 through 10. Defaults to 7.
1 <= x <= 10Comma-separated currency codes, for example usd,eur. Defaults to no currency filter. Use one currency when comparing amounts.
Response
Successful Response
Response with recent transactions list.
Recent payments, refunds, and disputes, newest first. Empty when none match.
Show child attributes
Show child attributes
[ { "action": "payment", "amount": 2500, "currency": "usd", "customer_email": "jane@example.com", "customer_id": "cus_T7mK2p9Q4r6S8v", "customer_name": "Jane Doe", "is_live": true, "status": "succeeded", "timestamp": "2026-08-25 10:00:00", "transaction_id": "pi_T7mK2p9Q4r6S8v" } ]
Was this page helpful?