> 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

# API changes for September 8, 2026

## Add an endpoint to authorize and capture a payout in one call

We've added `POST /MoneyOut/payout`, which authorizes a payout and captures it in the same request and returns the capture result. Use it when you need the capture outcome synchronously, instead of calling [Authorize payout](/developers/api-reference/moneyout/authorize-a-transaction-for-payout) and then [Capture payout](/developers/api-reference/moneyout/capture-an-authorized-payout-transaction) separately.

A failed capture doesn't undo the authorization: it returns the capture error and leaves the payout authorized, so retry the capture with `GET /MoneyOut/capture/{referenceId}` rather than resubmitting. The endpoint ignores `autoCapture` in the request body, because it always captures inline.

See [Authorize and capture a payout](/developers/api-reference/moneyout/authorize-and-capture-a-payout) and the [Manage payouts guide](/guides/pay-out-developer-payouts-manage#authorize-and-capture-in-one-call).

## Wire and RTP balance error codes split

The balance check that runs at authorize time for wire and RTP payouts now returns two distinct error codes instead of one. Error `3729` (`Transaction amount exceeds available payout balance.`) still covers a requested amount greater than the available balance. The new error `3730` (`Payout balance information is unavailable for this paypoint.`) covers a paypoint without balance data, or balance data that can't be read. Before this change, that case also returned `3729`. Both codes return HTTP `400 Bad Request`.

See [Send instant payouts](/guides/pay-out-developer-instant-payouts#error-handling) and the [API response codes reference](/developers/api-reference/api-responses).

## Filter chargebacks and returns by amount

The chargebacks and returns query ([`GET /Query/chargebacks/{entry}`](/developers/api-reference/chargebacks/get-list-of-chargebacks-and-returned-transactions-for-an-entrypoint) and the `/org/{orgId}` variant) has two new amount filters. `amount` filters by the record's own amount (the top-level `netAmount` in the response), which differs from the existing `netAmount` filter (the original transaction's net) for partial disputes and reversals. `totalAmount` filters by the original transaction's gross, including service and pending fees (`transaction.totalAmount` in the response). Both accept the conditions `(gt, ge, lt, le, eq, ne)`, and you can sort by them with `sortBy=asc(amount)` or `desc(totalAmount)`.

We've also registered `replyBy` as an alias for the `replyDate` filter. The response exposes the reply deadline as `replyBy`, but only `replyDate` worked as a filter name, so a `replyBy` filter used to return zero records with a `200` instead of matching. See the [Filters and Conditions Reference](/guides/pay-ops-reporting-overview#filters-and-conditions-reference) for filter syntax.

## Filter payouts by `orderId`

The payouts query endpoints now accept an `orderId` filter, matching the filter already available on [`GET /Query/transactions/{entry}`](/developers/api-reference/query/get-list-of-transactions-for-an-entrypoint). Use it to look up a payout by the `orderId` you supplied on the original `MoneyOut` authorize request — for example, for an idempotency check after an `idempotencyKey` error.

`orderId` accepts the `eq` and `ne` conditions and matches case-insensitively. The payout query response also now includes `orderId`, which is `null` for payouts that don't have one.

This change affects the following endpoints:

* [Get list of payouts for paypoint](/developers/api-reference/query/get-list-of-payouts-for-entrypoint)
* [Get list of payouts for organization](/developers/api-reference/query/get-list-of-payouts-for-organization)

## Partial payouts for bills (managed payables)

You can now partially pay a bill through managed payables. On the [Authorize payout](/developers/api-reference/moneyout/authorize-a-transaction-for-payout) request, set `totalAmount` below the outstanding balance of the single bill you're paying. The partial amount lives on the payout, not on the bill. The bill moves to the new **Partially Paid** status (`75`) and stays selectable for further payment until it's fully paid.

Bill responses, queries, and reports now include `paidAmount` and `outstandingBalance` (outstanding = `netAmount` − `paidAmount`). You can filter for partially paid bills with `?status=75`, and you can subscribe to a new `BillPartiallyPaid` webhook that fires on each partial payout. Paying more than the outstanding balance returns error `3448`, a request with more than one bill returns `3451`, and paying a bill that's already fully paid returns `3411`.

Partial payouts are available on request for **managed payables only** — on-demand payout methods stay full-payment-only. Contact the Payabli team to turn on partial payouts for your account.

See [Manage bills](/guides/pay-out-developer-bills-manage) and the [API response codes reference](/developers/api-reference/api-responses).

## Documentation updates

As part of an ongoing effort to better align the documentation with the API, we've corrected a field name in the response reference. The API itself was already returning this data. This change affects the documentation only.

### `Summary.pageIdentifier` corrected to `pageidentifier`

The reference documented the `Summary` object's pagination-token field as `pageIdentifier`, but the API has always returned it as **`pageidentifier`**. We've corrected the schema and examples to match.

This affects the response reference for the following endpoints:

* [List transactions for an entrypoint](/developers/api-reference/query/get-list-of-transactions-for-an-entrypoint)
* [List transactions for an organization](/developers/api-reference/query/get-list-of-transactions-for-an-organization)
* [List chargebacks and returned transactions for an entrypoint](/developers/api-reference/chargebacks/get-list-of-chargebacks-and-returned-transactions-for-an-entrypoint)
* [List chargebacks and returned transactions for an organization](/developers/api-reference/chargebacks/get-list-of-chargebacks-and-returned-transactions-for-an-org)
* [List customers for an entrypoint](/developers/api-reference/customer/get-list-of-customers-for-an-entrypoint)
* [List customers for an organization](/developers/api-reference/customer/get-list-of-customers-for-an-organization)
* [List devices for a paypoint](/developers/api-reference/get-list-of-devices-for-a-paypoint)
* [List devices for an organization](/developers/api-reference/get-list-of-devices-for-an-organization)
* [List organizations](/developers/api-reference/organization/get-list-of-organizations-for-entrypoint)
* [List paypoints for an organization](/developers/api-reference/paypoint/get-list-of-paypoints-for-an-organization)
* [List payout subscriptions for an entrypoint](/developers/api-reference/payout-subscription/list-payout-subscriptions-for-entrypoint)
* [List payout subscriptions for an organization](/developers/api-reference/payout-subscription/list-payout-subscriptions-for-organization)
* [Get reports generated in the last 60 days for an entrypoint](/developers/api-reference/notification/get-list-of-reports-generated-in-last-60-days-for-entrypoint)
* [Get reports generated in the last 60 days for an organization](/developers/api-reference/notification/get-list-of-reports-generated-in-last-60-days-for-organization)
* [List notifications for an entrypoint](/developers/api-reference/notification/get-list-of-notifications-for-an-entrypoint)
* [List notifications for an organization](/developers/api-reference/notification/get-list-of-notifications-for-organization)
* [List vendors for an entrypoint](/developers/api-reference/vendor/get-list-of-vendors-for-entrypoint)
* [List vendors for an organization](/developers/api-reference/vendor/get-list-of-vendors-for-organization)
* [List subscriptions for an entrypoint](/developers/api-reference/subscription/get-list-of-subscriptions-for-an-entrypoint)
* [List subscriptions for an organization](/developers/api-reference/subscription/get-list-of-subscriptions-for-an-org)
* [List users for an organization](/developers/api-reference/user/get-list-of-users-for-an-org)
* [List users for a paypoint](/developers/api-reference/user/get-list-of-users-for-paypoint)
* [List applications for an organization](/developers/api-reference/boarding/get-list-of-applications-for-an-organization)
* [Get multi-product boarding applications for a paypoint](/developers/api-reference/boarding/get-multi-product-boarding-applications-by-paypoint)
* [List boarding links for an organization](/developers/api-reference/boarding/get-list-of-boarding-links-for-organization)
* [List invoices for an entrypoint](/developers/api-reference/invoice/get-list-of-invoices-for-an-entrypoint)
* [List invoices for an organization](/developers/api-reference/invoice/get-list-of-invoices-for-an-organization)
* [List items for an entrypoint](/developers/api-reference/lineitem/get-list-of-items-for-entrypoint)
* [List templates for an organization](/developers/api-reference/templates/get-list-of-boarding-templates-for-organization)

Server SDKs keep their existing `PageIdentifier` / `page_identifier` member name for this field, so there's no breaking change for SDK consumers. The casing mismatch made the field always deserialize to `null`. It now decodes correctly.