Version
GET

List your transaction fees

/v1/me/transaction-fees in the Transaction Fees API.

curl "https://api.subscriby.net/v1/me/transaction-fees?month=2026-10&channel=metered" \  -H "Authorization: Bearer $SUBSCRIBY_TOKEN"

Pages the ledger, the most recently incurred first. month keeps one calendar month (YYYY-MM, UTC) and wins over from and to, which bound the window by instant; project_id keeps one project's lines; channel is connect_at_source or metered; kind is payment_fee, access_code_fee, trial_usage, outage_emails or processing_recovery. Sort with sort_by (occurred_at by default, or fee_amount, units, kind, channel, created_at) and sort_direction.

Each row names what the fee was for and, for a payment's fee, the project, the member, the purchase and the payment it was priced from with the gross amount, the currency and the rate applied. fee_amount is in fee_currency, your billing currency; units are the cents the meter counted, zero on a fee taken at source. A line of a different kind (a trial's waived fees, a recovery's emails, an invoice's processing recovery) carries its meter_identifier and no payment.

GET
/v1/me/transaction-fees

Requires ability

The token must hold this ability, or the call is refused with 403.

Runs the same action from an agent, behind the same ability.

Authorization

bearerToken
AuthorizationBearer <token>

A personal access token minted on the dashboard under Settings, then Tokens, sent as Authorization: Bearer sbt_live_…. The token carries the abilities each endpoint lists under Requires ability and is frozen to one team.

In: header

Query Parameters

month?string

Keep only the lines of one calendar month, as YYYY-MM in UTC, such as 2026-10; wins over from and to.

from?string

Keep only lines incurred at or after this instant, ISO 8601.

Formatdate-time
to?string

Keep only lines incurred before this instant, ISO 8601.

Formatdate-time
project_id?string

Keep only the lines earned on this project.

Formatuuid
channel?PlatformFeeChannel

Keep only lines collected one way: connect_at_source (deducted from the member's payment by Stripe Connect) or metered (billed on your own Subscriby invoice).

Value in

  • "connect_at_source"
  • "metered"
kind?PlatformFeeKind

Keep only lines of one kind: payment_fee, access_code_fee, trial_usage, outage_emails or processing_recovery.

Value in

  • "payment_fee"
  • "access_code_fee"
  • "trial_usage"
  • "outage_emails"
  • "processing_recovery"
page?integer

The 1-based page to return. A page past the last answers an empty data array with meta.total still filled, so a loop can stop without guessing.

Range1 <= value
Default1
per_page?integer

Rows per page, 1 to 100. A higher value clamps to the cap silently. Defaults to 25.

Range1 <= value <= 100
Default25
sort_by?string

The column to order by. Defaults to created_at; a column the endpoint does not offer falls back to the default rather than failing.

Default"created_at"
sort_direction?string

asc or desc. Defaults to desc.

Default"desc"

Value in

  • "asc"
  • "desc"
limit?integer

Legacy alias of per_page, kept for clients that predate it. per_page wins when both are sent.

Range1 <= value <= 100

Responses

200OK

The page.

401Unauthorized

The request carries no bearer token, or one that is revoked, malformed, or minted for another environment (an sbt_test_ token on production).

403Forbidden

The token is valid but does not carry the ability this endpoint requires; error.context.required_ability names the one to grant. An endpoint that also checks who owns a row or which tier the account is on answers FORBIDDEN, TEAM_TIER_REQUIRED or CONNECTOR_TIER_REQUIRED with the same status, and says so in its own description.

422Validation failed

The payload broke a rule, and error.fields maps each offending key to its messages. A refusal from the domain, such as a plan that cannot go on sale or a member who cannot be removed, uses the same code with error.message saying why and no fields. On this endpoint: VALIDATION_FAILED: when month is not YYYY-MM, a bound is not a date, project_id is not an id, or channel or kind is not one of the words above.

429Too many requests

The token has spent its 300 requests a minute or 10,000 an hour; Retry-After says when the next one is accepted.

How is this guide?

Last updated on