> 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

# View billing profile

GET https://api-sandbox.payabli.com/api/billing/configuration/{serviceGroup}/{entityType}/{entityId}

Returns the billing profile currently assigned to an entity, including
its billable events and fee schedules. Use it to read the pricing terms
in effect for an organization, paypoint, template, or application.

Requires a token with the `billing_profile_read` permission and access
to the requested entity; otherwise the call gets `403 Forbidden`.

If the entity exists but has no profile assigned, the call returns
`404 Not Found`.


Reference: https://docs.payabli.com/developers/api-reference/billing/view-billing-profile

## Servers

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

## Request

### Path parameters

- `serviceGroup` (enum, required) — The billing vertical. Only `PayIn` and `PayOut` are accepted; any other value returns `400 Bad Request`.
  - Allowed values: `PayIn`, `PayOut`
- `entityType` (enum, required) — The owning entity type: `Organization`, `Paypoint`, `Template`, or `Application`.
  - Allowed values: `Organization`, `Paypoint`, `Template`, `Application`
- `entityId` (long, required) — The numeric identifier of the entity.

## Response

### 200

The billing profile assigned to the entity.

- `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 (profiles are append-only versioned, not mutated in place).
- `business` (object, required) — An owning or participating entity, as returned by the View profile endpoint (`entityType` serialized as an integer).
  - `entityType` (enum, required) — Entity type, serialized as an integer by the View profile endpoint: `1` Organization, `2` Paypoint, `3` Customer, `4` Template, `5` Application, `6` BankAccount, `7` Address.
    - Allowed values: `1`, `2`, `3`, `4`, `5`, `6`, `7`
  - `entityId` (long, required) — Identifier of the entity.
- `name` (string, required) — Descriptive name for the profile.
- `feeType` (enum, required) — Pricing model, serialized as an integer by the View profile endpoint: `1` Flat, `2` ICP (interchange-plus).
  - Allowed values: `1`, `2`
- `createdAt` (datetime, required) — When this version was created.
- `updatedAt` (datetime, required) — When this version was last updated.
- `parentId` (string, required) — Parent-entity reference used for inheritance and permission checks, formatted as `{entityType}:{entityId}` (for example, `1:2` is organization `2`). Org-level profiles reference their own organization; paypoint-level profiles reference their parent organization.
- `billableEvents` (list of object, required) — The chargeable events this profile covers.
  - `id` (long, required) — Event identifier.
  - `name` (string, required) — Internal label for the event, for example `payin-card-auth-all`.
  - `vertical` (enum, required) — Billing vertical the event belongs to, serialized as an integer: `1` PayIn, `2` PayOut, `3` PayOps.
    - Allowed values: `1`, `2`, `3`
  - `service` (enum, required) — Service the event applies to, serialized as an integer: `1` Card, `2` VCard, `3` Ach, `4` Cloud, `5` Cash, `6` Check, `7` Managed, `8` SDAch, `9` Wallet, `10` Wire, `11` Rtp, `12` Device.
    - Allowed values: `1`, `2`, `3`, `4`, `5`, `6`, `7`, `8`, `9`, `10`, `11`, `12`
  - `serviceType` (enum, required) — Service type, serialized as an integer: `0` None, `1` Credit, `2` Debit.
    - Allowed values: `0`, `1`, `2`
  - `eventType` (enum, required) — Triggering action, serialized as an integer: `1` Auth, `2` Refund, `3` Void, `4` Sale, `5` Chargeback, `6` Return, `7` Retrieval, `8` Capture, `9` Cancel, `10` Noc, `11` PaymentTokenization, `12` CardTokenUpdate, `13` CardReject, `14` RdcCapture, `15` SplitFunding, `16` Purchase.
    - Allowed values: `1`, `2`, `3`, `4`, `5`, `6`, `7`, `8`, `9`, `10`, `11`, `12`, `13`, `14`, `15`, `16`
  - `eventGroup` (enum, required) — Grouping the event applies to, serialized as an integer: `0` None, `1` Visa, `2` MasterCard, `3` Amex, `4` Discover, `5` Default, `6` Axium_DX8000, `7` Axium_DX6000.
    - Allowed values: `0`, `1`, `2`, `3`, `4`, `5`, `6`, `7`
  - `eventSource` (enum, required) — Origination channel, serialized as an integer: `0` None, `1` Ivr, `2` Vault, `3` Ttp.
    - Allowed values: `0`, `1`, `2`, `3`
  - `regionType` (enum, required) — Region the event applies to, serialized as an integer: `0` None, `1` Default, `2` Domestic, `3` International.
    - Allowed values: `0`, `1`, `2`, `3`
  - `feeSchedules` (list of object, required) — The fee schedule(s) that apply to this event.
    - `id` (long, required) — Fee schedule identifier.
    - `value` (double, required) — The flat-fee component of the fee, for example `0.30`.
    - `rate` (double, required) — The percentage-rate component of the fee, for example `2.9`.
    - `passthrough` (enum, required) — Whether the fee is passed through to the customer, and which type, serialized as an integer: `0` None, `1` Surcharge, `2` Convenience, `3` Service.
      - Allowed values: `0`, `1`, `2`, `3`
    - `payor` (object, required, nullable) — Entity responsible for paying this fee. `null` when not set.
      - `entityType` (enum, required) — Entity type, serialized as an integer by the View profile endpoint: `1` Organization, `2` Paypoint, `3` Customer, `4` Template, `5` Application, `6` BankAccount, `7` Address.
        - Allowed values: `1`, `2`, `3`, `4`, `5`, `6`, `7`
      - `entityId` (long, required) — Identifier of the entity.
    - `collector` (object, required, nullable) — Entity that collects this fee. `null` when not set.
      - `entityType` (enum, required) — Entity type, serialized as an integer by the View profile endpoint: `1` Organization, `2` Paypoint, `3` Customer, `4` Template, `5` Application, `6` BankAccount, `7` Address.
        - Allowed values: `1`, `2`, `3`, `4`, `5`, `6`, `7`
      - `entityId` (long, required) — Identifier of the entity.
    - `overflowPayor` (object, required, nullable) — Fallback payor used when the primary payor can't cover the fee. `null` when not set.
      - `entityType` (enum, required) — Entity type, serialized as an integer by the View profile endpoint: `1` Organization, `2` Paypoint, `3` Customer, `4` Template, `5` Application, `6` BankAccount, `7` Address.
        - Allowed values: `1`, `2`, `3`, `4`, `5`, `6`, `7`
      - `entityId` (long, required) — Identifier of the entity.
    - `overflowCollectionSchedule` (enum, required, nullable) — Collection cadence for the overflow payor. `null` when not set.
      - Allowed values: `1`, `2`
    - `minimumTotal` (double, required, nullable) — Floor on the combined fee (rate + flat value) for this schedule.
    - `maximumTotal` (double, required, nullable) — Ceiling on the combined fee (rate + flat value) for this schedule.
    - `effectiveDate` (datetime, required) — When this schedule starts applying. Drives ordering when an event has multiple schedules.
    - `expirationDate` (datetime, required, nullable) — When this schedule stops applying. `null` means no end date.
    - `createdAt` (datetime, required) — When this schedule was created.
    - `updatedAt` (datetime, required) — When this schedule was last updated.
    - `createdBy` (string, required) — Identifier of the schedule's creator. Surfaces in the Payabli Portal as "Configuration Owner" — informational, not a permission boundary.
    - `collectionSchedule` (enum, required) — How often the fee is collected, serialized as an integer: `1` Daily, `2` Monthly.
      - Allowed values: `1`, `2`
    - `billDate` (integer, required, nullable) — Day of the month a monthly bill is applied, when set. `null` otherwise.
    - `overrideFeeScheduleId` (long, required, nullable) — Identifier of another fee schedule this one overrides. `null` otherwise.
    - `feeType` (enum, required) — Pricing model, serialized as an integer by the View profile endpoint: `1` Flat, `2` ICP (interchange-plus).
      - Allowed values: `1`, `2`

## Examples

**Response**

```json
{
  "id": 1,
  "versionId": 4229,
  "versionNumber": 31,
  "business": {
    "entityType": 1,
    "entityId": 123
  },
  "name": "Default PayIn Profile",
  "feeType": 1,
  "createdAt": "2026-01-01T00:00:00Z",
  "updatedAt": "2026-01-01T00:00:00Z",
  "parentId": "1:123",
  "billableEvents": [
    {
      "id": 1,
      "name": "payin-card-sale-all",
      "vertical": 1,
      "service": 1,
      "serviceType": 0,
      "eventType": 4,
      "eventGroup": 5,
      "eventSource": 0,
      "regionType": 1,
      "feeSchedules": [
        {
          "id": 13419,
          "value": 0.3,
          "rate": 2.9,
          "passthrough": 0,
          "payor": {
            "entityType": 1,
            "entityId": 123
          },
          "collector": {
            "entityType": 1,
            "entityId": 123
          },
          "overflowPayor": null,
          "overflowCollectionSchedule": null,
          "minimumTotal": null,
          "maximumTotal": null,
          "effectiveDate": "2026-01-01T00:00:00Z",
          "expirationDate": null,
          "createdAt": "2026-01-01T00:00:00Z",
          "updatedAt": "2026-01-01T00:00:00Z",
          "createdBy": "395",
          "collectionSchedule": 2,
          "billDate": 1,
          "overrideFeeScheduleId": null,
          "feeType": 1
        }
      ]
    }
  ]
}
```

**SDK Code**

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

async function main() {
    const client = new PayabliClient();
    await client.billing.getProfile(123, "Organization", "PayIn");
}
main();

```

```python
from payabli import payabli

client = payabli()

client.billing.get_profile(
    entity_id=123,
    entity_type="Organization",
    service_group="PayIn",
)

```

```java
package com.example.usage;

import io.github.payabli.api.PayabliApiClient;
import io.github.payabli.api.resources.billing.types.GetProfileBillingRequestEntityType;
import io.github.payabli.api.resources.billing.types.GetProfileBillingRequestServiceGroup;

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

        client.billing().getProfile(GetProfileBillingRequestServiceGroup.PAY_IN, GetProfileBillingRequestEntityType.ORGANIZATION, 123L);
    }
}
```

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

namespace Usage;

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

        await client.Billing.GetProfileAsync(
            GetProfileBillingRequestServiceGroup.PayIn,
            GetProfileBillingRequestEntityType.Organization,
            123L
        );
    }

}

```

```go
package example

import (
    context "context"

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

func do() {
    client := client.NewClient()
    client.Billing.GetProfile(
        context.TODO(),
        payabli.GetProfileBillingRequestServiceGroupPayIn.Ptr(),
        payabli.GetProfileBillingRequestEntityTypeOrganization.Ptr(),
        int64(123),
    )
}

```

```php
<?php

namespace Example;

use Payabli\PayabliClient;
use Payabli\Billing\Types\GetProfileBillingRequestEntityType;
use Payabli\Billing\Types\GetProfileBillingRequestServiceGroup;

$client = new PayabliClient();
$client->billing->getProfile(
    123,
    GetProfileBillingRequestEntityType::Organization->value,
    GetProfileBillingRequestServiceGroup::PayIn->value,
);

```

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

url = URI("https://api-sandbox.payabli.com/api/billing/configuration/PayIn/Organization/123")

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
import Foundation

let request = NSMutableURLRequest(url: NSURL(string: "https://api-sandbox.payabli.com/api/billing/configuration/PayIn/Organization/123")! 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()
```