> For the complete documentation index, see [llms.txt](https://ivorypay.gitbook.io/ivorypay-on-off-ramp-documentation/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://ivorypay.gitbook.io/ivorypay-on-off-ramp-documentation/api-reference-transactions/list.md).

# List Transactions

List all transactions for your business.

Returns all transactions (on-ramp, off-ramp) for your business with pagination and filtering.

## Endpoint

```
GET /v1/transactions
```

## Authentication

Accepts either a merchant API key or a business-user JWT.

| Header          | Value                             |
| --------------- | --------------------------------- |
| `Authorization` | `<api_key>` **or** `Bearer <jwt>` |

## Query parameters

| Parameter             | Type   | Required | Description                                                        |
| --------------------- | ------ | -------- | ------------------------------------------------------------------ |
| `startPeriodDatetime` | string | No       | Start of date range (ISO 8601)                                     |
| `endPeriodDatetime`   | string | No       | End of date range (ISO 8601)                                       |
| `page`                | number | No       | Page number (default: 1)                                           |
| `limit`               | number | No       | Items per page (default: 10, max: 100)                             |
| `q`                   | string | No       | Full-text search across reference, email, names, phone and refCode |

## Example request

{% tabs %}
{% tab title="cURL" %}

```bash
curl -X GET "https://ramp-api.ivorypay.io/api/v1/transactions?page=1&limit=20" \
  -H "Authorization: your_api_key"
```

{% endtab %}

{% tab title="Node.js" %}

```javascript
const params = new URLSearchParams({
  page: "1",
  limit: "20",
});

const response = await fetch(`https://ramp-api.ivorypay.io/api/v1/transactions?${params}`, {
  method: "GET",
  headers: {
    "Authorization": "your_api_key",
  },
});

const data = await response.json();
console.log(data);
```

{% endtab %}

{% tab title="Python" %}

```python
import requests

response = requests.get(
    "https://ramp-api.ivorypay.io/api/v1/transactions",
    headers={
        "Authorization": "your_api_key",
    },
    params={
        "page": 1,
        "limit": 20,
    },
)

print(response.json())
```

{% endtab %}

{% tab title="Go" %}

```go
package main

import (
	"fmt"
	"io"
	"net/http"
)

func main() {
	req, _ := http.NewRequest("GET", "https://ramp-api.ivorypay.io/api/v1/transactions?page=1&limit=20", nil)
	req.Header.Set("Authorization", "your_api_key")

	resp, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer resp.Body.Close()

	body, _ := io.ReadAll(resp.Body)
	fmt.Println(string(body))
}
```

{% endtab %}
{% endtabs %}

## Example response

```json
{
  "success": true,
  "message": "Query successful",
  "data": [
    {
      "id": "f1e2d3c4-b5a6-7890-fedc-ba0987654321",
      "reference": "550e8400-e29b-41d4-a716-446655440000",
      "status": "SUCCESS",
      "feature": "ON_RAMP",
      "token": "USDT",
      "fiatCurrency": "NGN",
      "fiatAmount": 50000,
      "cryptoAmount": 31.25,
      "network": "BSC_MAINNET",
      "createdAt": "2026-03-26T12:00:00.000Z"
    },
    {
      "id": "a9b8c7d6-e5f4-3210-9876-543210fedcba",
      "reference": "660e8400-e29b-41d4-a716-446655440001",
      "status": "PENDING",
      "feature": "OFF_RAMP",
      "token": "USDT",
      "fiatCurrency": "NGN",
      "fiatAmount": 100000,
      "cryptoAmount": 62.5,
      "network": "BSC_MAINNET",
      "createdAt": "2026-03-26T13:00:00.000Z"
    }
  ]
}
```

## Pagination

The endpoint accepts the `page` and `limit` query parameters (default `limit=10`, max `100`). However, the API currently does **not** emit a `meta` pagination wrapper in the response body — only the `data` array is returned. Use the length of `data` and your supplied `page`/`limit` to manage pagination on the client.

## Transaction features

| Feature    | Description   |
| ---------- | ------------- |
| `ON_RAMP`  | Fiat → Crypto |
| `OFF_RAMP` | Crypto → Fiat |
