> This is Payabli documentation. For a complete page index, fetch https://docs.payabli.com/llms.txt — append .md to any page URL for lightweight markdown. For section-level indexes, query parameters, and other AI-optimized access methods, see https://docs.payabli.com/ai-agents.md

# List billing profiles

GET https://api-sandbox.payabli.com/api/billing/configuration/org/{orgId}

Returns every billing profile that belongs to an organization. This is
the data behind the Profile Library table in the Payabli Portal.

Requires a token with the `billing_profile_read` permission; a token
without it gets `403 Forbidden`.


Reference: https://docs.payabli.com/developers/api-reference/billing/list-billing-profiles

## Servers

- `https://api-sandbox.payabli.com/api` (Sandbox, default)
- `https://api.payabli.com/api` (Production)

## Request

### Path parameters

- `orgId` (long, required) — The organization's numeric identifier.

### Query parameters

- `profileName` (string, optional) — Filter to profiles whose name contains this string.
- `feeType` (list of enum, optional) — Filter by fee type. Repeatable to match more than one. Send the enum value (`1` Flat, `2` ICP).
  - Allowed values: `1`, `2`
- `serviceVertical` (list of enum, optional) — Filter by billing vertical. Repeatable to match more than one. Send the enum value (`1` PayIn, `2` PayOut, `3` PayOps).
  - Allowed values: `1`, `2`, `3`
- `profileId` (long, optional) — Filter to a single profile by its identifier.
- `limitRecord` (long, optional, default: 20) — Page size. Defaults to `20`. Passing `0` returns no records — use a positive value to page through results.
- `fromRecord` (long, optional, default: 0) — Zero-based offset into the result set. Defaults to `0`.

## Response

### 200

A page of billing profiles.

- `summary` (object, required) — Pagination summary for the profile list.
  - `pageIdentifier` (string, required) — Opaque identifier for the returned page.
  - `pageSize` (integer, required) — Maximum number of records per page.
  - `totalPages` (integer, required) — Total number of pages available.
  - `totalRecords` (integer, required) — Total number of profiles matching the query.
- `records` (list of object, required) — The billing profiles on this page. Empty when the org has no profiles.
  - `id` (long, required) — Unique, server-generated profile identifier.
  - `versionId` (long, required) — Identifier of this specific version of the profile.
  - `versionNumber` (integer, required) — Sequential version counter. Starts at `1` and increments on every edit.
  - `business` (object, required) — An owning entity, as returned by the List profiles endpoint (`entityType` serialized as a name).
    - `entityType` (enum, required) — Entity type, serialized as a name by the List profiles endpoint.
      - Allowed values: `Organization`, `Paypoint`, `Customer`, `Template`, `Application`, `BankAccount`, `Address`
    - `entityId` (long, required) — Identifier of the entity.
  - `serviceVertical` (enum, required) — Billing vertical, serialized as a name by the List profiles endpoint.
    - Allowed values: `PayIn`, `PayOut`, `PayOps`
  - `name` (string, required) — Descriptive name for the profile.
  - `feeType` (enum, required) — Pricing model, serialized as a name by the List profiles endpoint.
    - Allowed values: `Flat`, `ICP`
  - `createdAt` (datetime, required) — When this version was created.
  - `updatedAt` (datetime, required) — When this version was last updated.
  - `entitiesAssigned` (object, required) — Counts of entities the profile is assigned to. Any non-zero count locks the profile from deletion in the Payabli Portal.
    - `organizations` (integer, required) — Number of organizations the profile is assigned to.
    - `paypoints` (integer, required) — Number of paypoints the profile is assigned to.
    - `templates` (integer, required) — Number of boarding templates the profile is assigned to.
    - `applications` (integer, required) — Number of boarding applications the profile is assigned to.
  - `parentId` (string, required) — Parent-entity reference formatted as `{entityType}:{entityId}` (for example, `1:2`).
  - `countOfEvents` (integer, required) — Number of billable events configured on the profile.

## Examples

### ListProfiles

**Response**

```json
{
  "summary": {
    "pageIdentifier": "E8955DBE2D534C80B9AF",
    "pageSize": 20,
    "totalPages": 1,
    "totalRecords": 2
  },
  "records": [
    {
      "id": 695,
      "versionId": 1322,
      "versionNumber": 1,
      "business": {
        "entityType": "Organization",
        "entityId": 123
      },
      "serviceVertical": "PayOut",
      "name": "PayOut Default Configuration",
      "feeType": "Flat",
      "createdAt": "2026-01-01T00:00:00Z",
      "updatedAt": "2026-01-01T00:00:00Z",
      "entitiesAssigned": {
        "organizations": 11,
        "paypoints": 2,
        "templates": 2,
        "applications": 357
      },
      "parentId": "1:123",
      "countOfEvents": 10
    },
    {
      "id": 1,
      "versionId": 4229,
      "versionNumber": 31,
      "business": {
        "entityType": "Organization",
        "entityId": 123
      },
      "serviceVertical": "PayIn",
      "name": "Default PayIn Profile",
      "feeType": "Flat",
      "createdAt": "2026-01-01T00:00:00Z",
      "updatedAt": "2026-01-01T00:00:00Z",
      "entitiesAssigned": {
        "organizations": 11,
        "paypoints": 2,
        "templates": 0,
        "applications": 13
      },
      "parentId": "1:123",
      "countOfEvents": 11
    }
  ]
}
```

**SDK Code**

```typescript ListProfiles
import { PayabliClient } from "@payabli/sdk-node";

async function main() {
    const client = new PayabliClient();
    await client.billing.listProfiles(123, {
        fromRecord: 0,
        limitRecord: 20,
    });
}
main();

```

```python ListProfiles
from payabli import payabli

client = payabli()

client.billing.list_profiles(
    org_id=123,
    from_record=0,
    limit_record=20,
)

```

```java ListProfiles
package com.example.usage;

import io.github.payabli.api.PayabliApiClient;
import io.github.payabli.api.resources.billing.requests.ListBillingProfilesRequest;

public class Example {
    public static void main(String[] args) {
        PayabliApiClient client = PayabliApiClient
            .builder()
            .build();

        client.billing().listProfiles(
            123L,
            ListBillingProfilesRequest
                .builder()
                .fromRecord(0L)
                .limitRecord(20L)
                .build()
        );
    }
}
```

```csharp ListProfiles
using PayabliApi;
using System.Threading.Tasks;

namespace Usage;

public class Example
{
    public async Task Do() {
        var client = new PayabliApiClient();

        await client.Billing.ListProfilesAsync(
            123L,
            new ListBillingProfilesRequest {
                FromRecord = 0L,
                LimitRecord = 20L
            }
        );
    }

}

```

```go ListProfiles
package example

import (
    context "context"

    payabli "github.com/payabli/sdk-go"
    client "github.com/payabli/sdk-go/client"
)

func do() {
    client := client.NewClient()
    request := &payabli.ListBillingProfilesRequest{
        FromRecord: payabli.Int64(
            int64(0),
        ),
        LimitRecord: payabli.Int64(
            int64(20),
        ),
    }
    client.Billing.ListProfiles(
        context.TODO(),
        int64(123),
        request,
    )
}

```

```php ListProfiles
<?php

namespace Example;

use Payabli\PayabliClient;
use Payabli\Billing\Requests\ListBillingProfilesRequest;

$client = new PayabliClient();
$client->billing->listProfiles(
    123,
    new ListBillingProfilesRequest([
        'fromRecord' => 0,
        'limitRecord' => 20,
    ]),
);

```

```ruby ListProfiles
require 'uri'
require 'net/http'

url = URI("https://api-sandbox.payabli.com/api/billing/configuration/org/123?fromRecord=0&limitRecord=20")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
```

```swift ListProfiles
import Foundation

let request = NSMutableURLRequest(url: NSURL(string: "https://api-sandbox.payabli.com/api/billing/configuration/org/123?fromRecord=0&limitRecord=20")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "GET"

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```

### FilterByVertical

**Response**

```json
{
  "summary": {
    "pageIdentifier": "A1B2C3D04E5F6A7B8C9D",
    "pageSize": 20,
    "totalPages": 1,
    "totalRecords": 1
  },
  "records": [
    {
      "id": 1,
      "versionId": 4229,
      "versionNumber": 31,
      "business": {
        "entityType": "Organization",
        "entityId": 123
      },
      "serviceVertical": "PayIn",
      "name": "Default PayIn Profile",
      "feeType": "Flat",
      "createdAt": "2026-01-01T00:00:00Z",
      "updatedAt": "2026-01-01T00:00:00Z",
      "entitiesAssigned": {
        "organizations": 11,
        "paypoints": 2,
        "templates": 0,
        "applications": 13
      },
      "parentId": "1:123",
      "countOfEvents": 11
    }
  ]
}
```

**SDK Code**

```typescript FilterByVertical
import { PayabliClient } from "@payabli/sdk-node";

async function main() {
    const client = new PayabliClient();
    await client.billing.listProfiles(123, {
        feeType: [
            1,
        ],
        fromRecord: 0,
        limitRecord: 20,
        serviceVertical: [
            1,
        ],
    });
}
main();

```

```python FilterByVertical
from payabli import payabli

client = payabli()

client.billing.list_profiles(
    org_id=123,
    fee_type=[
        1
    ],
    from_record=0,
    limit_record=20,
    service_vertical=[
        1
    ],
)

```

```java FilterByVertical
package com.example.usage;

import io.github.payabli.api.PayabliApiClient;
import io.github.payabli.api.resources.billing.requests.ListBillingProfilesRequest;
import java.util.Arrays;

public class Example {
    public static void main(String[] args) {
        PayabliApiClient client = PayabliApiClient
            .builder()
            .build();

        client.billing().listProfiles(
            123L,
            ListBillingProfilesRequest
                .builder()
                .feeType(
                    Arrays.asList(1)
                )
                .serviceVertical(
                    Arrays.asList(1)
                )
                .fromRecord(0L)
                .limitRecord(20L)
                .build()
        );
    }
}
```

```csharp FilterByVertical
using PayabliApi;
using System.Threading.Tasks;
using System.Collections.Generic;

namespace Usage;

public class Example
{
    public async Task Do() {
        var client = new PayabliApiClient();

        await client.Billing.ListProfilesAsync(
            123L,
            new ListBillingProfilesRequest {
                FeeType = new List<int>(){
                    1,
                }
                ,
                FromRecord = 0L,
                LimitRecord = 20L,
                ServiceVertical = new List<int>(){
                    1,
                }

            }
        );
    }

}

```

```go FilterByVertical
package example

import (
    context "context"

    payabli "github.com/payabli/sdk-go"
    client "github.com/payabli/sdk-go/client"
)

func do() {
    client := client.NewClient()
    request := &payabli.ListBillingProfilesRequest{
        FeeType: []*int{
            payabli.Int(
                1,
            ),
        },
        FromRecord: payabli.Int64(
            int64(0),
        ),
        LimitRecord: payabli.Int64(
            int64(20),
        ),
        ServiceVertical: []*int{
            payabli.Int(
                1,
            ),
        },
    }
    client.Billing.ListProfiles(
        context.TODO(),
        int64(123),
        request,
    )
}

```

```php FilterByVertical
<?php

namespace Example;

use Payabli\PayabliClient;
use Payabli\Billing\Requests\ListBillingProfilesRequest;

$client = new PayabliClient();
$client->billing->listProfiles(
    123,
    new ListBillingProfilesRequest([
        'feeType' => [
            1,
        ],
        'fromRecord' => 0,
        'limitRecord' => 20,
        'serviceVertical' => [
            1,
        ],
    ]),
);

```

```ruby FilterByVertical
require 'uri'
require 'net/http'

url = URI("https://api-sandbox.payabli.com/api/billing/configuration/org/123?feeType=%5B1%5D&fromRecord=0&limitRecord=20&serviceVertical=%5B1%5D")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
```

```swift FilterByVertical
import Foundation

let request = NSMutableURLRequest(url: NSURL(string: "https://api-sandbox.payabli.com/api/billing/configuration/org/123?feeType=%5B1%5D&fromRecord=0&limitRecord=20&serviceVertical=%5B1%5D")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "GET"

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```