---
title: "List payment links"
description: "Returns a paginated list of all payment links created under your tenant."
protocol: rest
method: GET
endpoint: "/v1/payment-links"
baseUrl: "https://api.gravv.xyz"
group: "Payment Links"
auth:
  label: "Api-Key"
  name: "Api-Key"
  in: header
---

# List payment links

<Endpoint method="GET" path="/v1/payment-links" />

Returns a paginated list of all payment links created under your tenant.

Use the `page` and `per_page` query parameters to navigate through results. Optionally filter by `status`.

## Query Parameters

<ParamField name="page" query="page" type="integer" default="1">
  Page number for paginated results.
</ParamField>

<ParamField name="per_page" query="per_page" type="integer" default="20">
  Number of items to return per page.
</ParamField>

<ParamField name="status" query="status" type="string">
  Filter payment links by status.

  Possible values: `active`, `paused`
</ParamField>

## Responses

| Status | Description |
| --- | --- |
| `200` | Payment links retrieved successfully. |
| `400` | Invalid request parameters. |

### 200 response

<ResponseField name="data" type="object" required>

  <Expandable title="properties">
    <ResponseField name="items" type="object[]" required>
      List of payment links for the current page.

      <Expandable title="properties">
        <ResponseField name="id" type="string" required>
          Unique identifier for the payment link.
        </ResponseField>

        <ResponseField name="created_at" type="string" required>
          Timestamp when the payment link was created (UTC).
        </ResponseField>

        <ResponseField name="updated_at" type="string" required>
          Timestamp when the payment link was last updated (UTC).
        </ResponseField>

        <ResponseField name="customer_id" type="string" required>
          ID of the customer associated with this payment link.
        </ResponseField>

        <ResponseField name="tenant_id" type="string" required>
          ID of the tenant that owns this payment link.
        </ResponseField>

        <ResponseField name="payer_name" type="string" required>
          Name of the person making the payment.
        </ResponseField>

        <ResponseField name="payer_email" type="string,null">
          Email address of the person making the payment.
        </ResponseField>

        <ResponseField name="payee_name" type="string" required>
          Name of the person or business receiving the payment.
        </ResponseField>

        <ResponseField name="settlement_account_id" type="string" required>
          ID of the account where settled funds will be deposited after a successful payment.
        </ResponseField>

        <ResponseField name="supported_networks" type="string[]" required>
          List of blockchain networks the payer can use to complete the payment.

          Possible values: `stellar`, `ethereum`, `polygon`, `avalanche`, `solana`
        </ResponseField>

        <ResponseField name="wallet_addresses" type="object" required>
          A map of blockchain network names to their corresponding wallet addresses for receiving crypto payments.
        </ResponseField>

        <ResponseField name="link_url" type="string,null">
          Shareable URL the payer visits to complete the payment.
        </ResponseField>

        <ResponseField name="status" type="string" required>
          Current status of the payment link.

          Possible values: `active`, `paused`
        </ResponseField>

      </Expandable>
    </ResponseField>

    <ResponseField name="page" type="integer" required>
      Current page number.
    </ResponseField>

    <ResponseField name="items_per_page" type="integer" required>
      Maximum number of items returned per page.
    </ResponseField>

    <ResponseField name="total_items" type="integer" required>
      Total number of payment links across all pages.
    </ResponseField>

    <ResponseField name="total_pages" type="integer" required>
      Total number of pages available.
    </ResponseField>

    <ResponseField name="has_next_page" type="boolean">
      Whether a subsequent page of results exists.
    </ResponseField>

    <ResponseField name="has_previous_page" type="boolean">
      Whether a preceding page of results exists.
    </ResponseField>

  </Expandable>
</ResponseField>

<ResponseField name="error" type="any" required>
  Error information if the request failed.
</ResponseField>

<ResponseExample>

```json title="Response"
{
  "data": {
    "items": [
      {
        "id": "b905cc64-0f90-4de0-a77c-b183de86b248",
        "created_at": "2026-05-07T15:39:02.639185Z",
        "updated_at": "2026-05-07T15:39:02.639186Z",
        "customer_id": "5e713759-3416-44f5-b797-efd0299aefc1",
        "tenant_id": "dfa96ede-fc13-43cf-8328-8b910d1cd1d2",
        "payer_name": "payer2",
        "payer_email": "payer@example.com",
        "payee_name": "Rose",
        "settlement_account_id": "b3e3c9fd-77ed-4d14-9c45-68db60d17d3a",
        "supported_networks": [
          "stellar",
          "ethereum"
        ],
        "wallet_addresses": {
          "ethereum": "0x119827bef8a3030cd401478fa7b33ac94d3c2572",
          "stellar": "GD2WTFAKQJA4BRQRNY3RWGWOFMK52WXZWV3CPCHZV2SJP2QGNBIL6TXQ"
        },
        "link_url": "https://stables.gravv.xyz/b905cc64-0f90-4de0-a77c-b183de86b248",
        "status": "active"
      },
      {
        "id": "b442d0e8-addf-406b-a488-a46e2d10be7c",
        "created_at": "2026-05-07T14:53:38.674714Z",
        "updated_at": "2026-05-07T14:53:38.674715Z",
        "customer_id": "5e713759-3416-44f5-b797-efd0299aefc1",
        "tenant_id": "dfa96ede-fc13-43cf-8328-8b910d1cd1d2",
        "payer_name": "John",
        "payer_email": "john@mail.com",
        "payee_name": "Rose",
        "settlement_account_id": "872a53c4-9640-4b7a-800d-6875c9af9791",
        "supported_networks": [
          "polygon"
        ],
        "wallet_addresses": {
          "polygon": "0x8d42fcb7087b627766dc02895da85207313923e8"
        },
        "link_url": "https://stables.gravv.xyz/b442d0e8-addf-406b-a488-a46e2d10be7c",
        "status": "active"
      }
    ],
    "items_per_page": 20,
    "page": 1,
    "total_items": 2,
    "total_pages": 1
  },
  "error": null
}
```

</ResponseExample>

### 400 response

<ResponseField name="data" type="null" required>
</ResponseField>

<ResponseField name="error" type="string" required>
  Human-readable error message.
</ResponseField>

<ResponseExample>

```json title="Response"
{
  "data": null,
  "error": "Invalid request parameters"
}
```

</ResponseExample>

## Authorization

- **ApiKeyAuth**
