# 

## Prerequisites

* A valid API key — see [Obtain API credentials](/docs/how-tos/setup/obtain-credentials)


## Option A: List transactions (summary)

Send `GET /v1/transactions` to retrieve a paginated list of transactions.

### Query parameters

| Parameter | Type | Description |
|  --- | --- | --- |
| `skip` | string | Number of records to skip (offset) |
| `take` | string | Number of records to return per page |
| `sort_column` | string | Column to sort by |
| `sort_order` | string | `asc` or `desc` |
| `search_text` | string | Free-text search across transaction fields |
| `term` | string | Filter term (for example, date range or status) |


### Example: List recent transactions

curl
```shell
curl -G \
  https://api.dev.paradisegateway.net/v1/transactions \
  -H "APIKEY: YOUR-API-KEY" \
  -d skip=0 \
  -d take=25 \
  -d sort_order=desc
```

Python
```python
import requests

resp = requests.get(
    "https://api.dev.paradisegateway.net/v1/transactions",
    headers={"APIKEY": "YOUR-API-KEY"},
    params={"skip": "0", "take": "25", "sort_order": "desc"},
)
data = resp.json()
print(f"Total: {data['count']}, Returned: {len(data['results'])}")
```

JavaScript
```javascript
const params = new URLSearchParams({ skip: "0", take: "25", sort_order: "desc" });
const resp = await fetch(
  `https://api.dev.paradisegateway.net/v1/transactions?${params}`,
  { headers: { "APIKEY": "YOUR-API-KEY" } }
);
const data = await resp.json();
console.log(`Total: ${data.count}, Returned: ${data.results.length}`);
```

C#
```csharp
using var client = new HttpClient();
client.DefaultRequestHeaders.Add("APIKEY", "YOUR-API-KEY");
var resp = await client.GetAsync(
    "https://api.dev.paradisegateway.net/v1/transactions?skip=0&take=25&sort_order=desc");
Console.WriteLine(await resp.Content.ReadAsStringAsync());
```

Java
```java
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
    .uri(URI.create(
        "https://api.dev.paradisegateway.net/v1/transactions?skip=0&take=25&sort_order=desc"))
    .header("APIKEY", "YOUR-API-KEY")
    .GET().build();
HttpResponse<String> resp = client.send(request,
    HttpResponse.BodyHandlers.ofString());
System.out.println(resp.body());
```

Go
```go
req, _ := http.NewRequest("GET",
    "https://api.dev.paradisegateway.net/v1/transactions?skip=0&take=25&sort_order=desc", nil)
req.Header.Set("APIKEY", "YOUR-API-KEY")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
```

PHP
```php
$ch = curl_init("https://api.dev.paradisegateway.net/v1/transactions?skip=0&take=25&sort_order=desc");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER => ["APIKEY: YOUR-API-KEY"],
]);
echo curl_exec($ch); curl_close($ch);
```

Ruby
```ruby
require "net/http"
uri = URI("https://api.dev.paradisegateway.net/v1/transactions?skip=0&take=25&sort_order=desc")
req = Net::HTTP::Get.new(uri, { "APIKEY" => "YOUR-API-KEY" })
resp = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }
puts resp.body
```

### Response

```json
{
  "count": 142,
  "results": [
    {
      "id": "TXN-01KFDKXMQ637EKEAY410MSQSXB",
      "type": "card_sale",
      "status": "approved",
      "amount": 4999,
      "currency": "usd",
      "created_at": "2026-03-24T14:30:00Z"
    }
  ],
  "correlation_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
}
```

Use `count` and `skip`/`take` to implement pagination. See [List transactions with filters](/docs/how-tos/manage-transactions/list-transactions) for advanced filtering examples.

## Option B: Retrieve a single transaction (full details)

Send `GET /v1/transactions/{id}` to get the complete record for one transaction.

curl
```shell
curl https://api.dev.paradisegateway.net/v1/transactions/TXN-01KFDKXMQ637EKEAY410MSQSXB \
  -H "APIKEY: YOUR-API-KEY"
```

Python
```python
txn_id = "TXN-01KFDKXMQ637EKEAY410MSQSXB"
resp = requests.get(
    f"https://api.dev.paradisegateway.net/v1/transactions/{txn_id}",
    headers={"APIKEY": "YOUR-API-KEY"},
)
print(resp.json())
```

JavaScript
```javascript
const txnId = "TXN-01KFDKXMQ637EKEAY410MSQSXB";
const resp = await fetch(
  `https://api.dev.paradisegateway.net/v1/transactions/${txnId}`,
  { headers: { "APIKEY": "YOUR-API-KEY" } }
);
console.log(await resp.json());
```

C#
```csharp
var txnId = "TXN-01KFDKXMQ637EKEAY410MSQSXB";
var resp = await client.GetAsync(
    $"https://api.dev.paradisegateway.net/v1/transactions/{txnId}");
Console.WriteLine(await resp.Content.ReadAsStringAsync());
```

Java
```java
String txnId = "TXN-01KFDKXMQ637EKEAY410MSQSXB";
HttpRequest request = HttpRequest.newBuilder()
    .uri(URI.create(
        "https://api.dev.paradisegateway.net/v1/transactions/" + txnId))
    .header("APIKEY", "YOUR-API-KEY")
    .GET().build();
HttpResponse<String> resp = client.send(request,
    HttpResponse.BodyHandlers.ofString());
System.out.println(resp.body());
```

Go
```go
txnId := "TXN-01KFDKXMQ637EKEAY410MSQSXB"
req, _ := http.NewRequest("GET",
    "https://api.dev.paradisegateway.net/v1/transactions/"+txnId, nil)
req.Header.Set("APIKEY", "YOUR-API-KEY")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
```

PHP
```php
$txnId = "TXN-01KFDKXMQ637EKEAY410MSQSXB";
$ch = curl_init("https://api.dev.paradisegateway.net/v1/transactions/$txnId");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER => ["APIKEY: YOUR-API-KEY"],
]);
echo curl_exec($ch); curl_close($ch);
```

Ruby
```ruby
txn_id = "TXN-01KFDKXMQ637EKEAY410MSQSXB"
uri = URI("https://api.dev.paradisegateway.net/v1/transactions/#{txn_id}")
req = Net::HTTP::Get.new(uri, { "APIKEY" => "YOUR-API-KEY" })
resp = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }
puts resp.body
```

### Response example from the API

The response includes the full transaction record: payment method details (masked), processor response, fraud signals, and related transaction IDs.

See [Retrieve transaction details](/docs/how-tos/manage-transactions/retrieve-transaction-details) for a detailed field-by-field guide.

## Common reporting patterns

| Goal | Approach |
|  --- | --- |
| Daily sales summary | `GET /v1/transactions?term=today&sort_order=desc` |
| Search by last four digits | `GET /v1/transactions?search_text=1111` |
| Page through large result sets | Increment `skip` by `take` on each request |
| Export all transactions | Loop with `skip`/`take` until `results` is empty |


## Next steps

* [List transactions with filters](/docs/how-tos/manage-transactions/list-transactions)
* [Retrieve transaction details](/docs/how-tos/manage-transactions/retrieve-transaction-details)
* [Generate batch settlement reports](/docs/how-tos/reports/batch-reporting)