get_payout_accounts_by_orgid_clawbacks
Calls GET /api/payout-accounts/{orgId}/clawbacks as the signed-in person · REST reference
A service provider's payout clawbacks, and the payouts it may report
What the clinic's clawback panel reads: its clawbacks as the clinic may read them, newest first — every one it filed, one Pawsitive Future filed only from its approval on, a memo only where the clinic wrote it, and no reviewer, decider or fee terms; the PAID vouchers it was paid for with part of the payout left to claim and no clawback in flight, which it may report a problem with; and whether this caller may file one (mayRequestClawback, computed by the server — the form posts to POST /api/finance/clawbacks). Needs hospital.clawbacks.request or hospital.reports.view in this organization, or platform staff; the organization must be a SERVICE_PROVIDER (403 otherwise). Each clawback carries when the clinic was sent its written notice and what it still owes; payoutsPaused, pausedSince and owedCents say whether an approved clawback pauses the clinic's payouts. Money is integer CENTS; times are epoch milliseconds.
Arguments
| Argument | Type | Description | |
|---|---|---|---|
orgIdpath | string (uuid) | required |
Example call
A client sends this over the MCP session; Claude and other agents build it for you. The values are placeholders — the shape is real.
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "get_payout_accounts_by_orgid_clawbacks",
"arguments": {
"orgId": "11111111-1111-4111-8111-111111111111"
}
}
}Result
On success (HTTP 200) the tool returns one text item holding the API's JSON, pretty-printed.
The organization's clawbacks and the vouchers it may report.
{
"eligibleVouchers": [
{
"code": "string",
"creditedAmount": 1,
"currency": "string",
"id": "11111111-1111-4111-8111-111111111111",
"paidAt": 1,
"remainingAmount": 1
}
],
"mayRequestClawback": true,
"orgId": "11111111-1111-4111-8111-111111111111",
"owedCents": 1,
"pauseReason": "COLLECTING",
"pausedSince": 1,
"payoutsPaused": true,
"requests": [
{
"amount": 1,
"currency": "string",
"decidedAt": 1,
"filedBy": "SERVICE_PROVIDER",
"id": "11111111-1111-4111-8111-111111111111",
"memo": "string",
"noticeSentAt": 1,
"owedCents": 1,
"reasonCode": "PFF_DISCRETIONARY",
"repayment": {},
"requestedAt": 1,
"status": "REQUESTED",
"voucherCode": "string",
"voucherId": "11111111-1111-4111-8111-111111111111"
}
]
}Fields
| Field | Type | Description |
|---|---|---|
eligibleVouchers | array of object | |
eligibleVouchers[].code | string | |
eligibleVouchers[].creditedAmount | integer | CENTS its payout paid. |
eligibleVouchers[].currency | string | |
eligibleVouchers[].id | string (uuid) | |
eligibleVouchers[].paidAt | integer | null | Epoch milliseconds. |
eligibleVouchers[].remainingAmount | integer | CENTS still claimable — creditedAmount less every clawback of it that was not denied — and the most a clawback may ask back. |
mayRequestClawback | boolean | Whether this caller may file a clawback for this organization. |
orgId | string (uuid) | |
owedCents | integer | CENTS the organization's clawbacks being collected are still owed. |
pauseReason | "COLLECTING" | "UNTIL_RESUMED" | null | Why the payouts are held. COLLECTING: a clawback is being collected — credits are set off against it and payouts resume once it is recovered. UNTIL_RESUMED: only clawbacks closed without all of their amount hold them — nothing is set off, and payouts resume when Pawsitive Future resumes them. Null when nothing holds them. Computed by the server. |
pausedSince | integer | null | Epoch milliseconds the oldest clawback pausing the payouts was approved; null when not paused. |
payoutsPaused | boolean | Whether a payout clawback pauses the organization's payouts: one approved and being collected, or one closed without all of its cash until Pawsitive Future resumes them. While paused, credits it earns are set off against the clawback and nothing is paid to its bank. Computed by the server. |
requests | array of object | |
requests[].amount | integer | CENTS asked back. |
requests[].currency | string | |
requests[].decidedAt | integer | null | Epoch milliseconds Pawsitive Future approved or denied it; null while it awaits a decision. |
requests[].filedBy | "SERVICE_PROVIDER" | "PAWSITIVE_FUTURE" | Who filed a clawback — the service provider that was paid, or Pawsitive Future staff. |
requests[].id | string (uuid) | |
requests[].memo | string | null | What the service provider wrote when it filed; null for a clawback Pawsitive Future filed. |
requests[].noticeSentAt | integer | null | Epoch milliseconds the clinic was sent the written notice of an approved clawback; null before one was sent. |
requests[].owedCents | integer | CENTS still owed while it is being collected; 0 otherwise. |
requests[].reasonCode | "PFF_DISCRETIONARY" | "PROCEDURE_NOT_COMPLETED" | "BENEFICIARY_DISPUTE" | "DUPLICATE_OR_ERRONEOUS_PAYOUT" | "DONATION_REVERSED" | "OTHER" | Why a clawback was filed. A service provider files PROCEDURE_NOT_COMPLETED, BENEFICIARY_DISPUTE or OTHER about a payout it received; the rest are Pawsitive Future's findings. OTHER needs a memo of at least 20 characters. |
requests[].repayment | object | What the clinic may repay of one clawback from its Payout tab now. Repayable once the clawback is being collected (EXECUTING) and its payout transfer is reversed or needs none: what is owed, less offsets in flight, bank debits recorded or started at Stripe, and portal payments still settling. 0 otherwise. |
requests[].repayment.processing | object | null | The clinic's portal payments still settling (a bank payment takes days); null when none. |
requests[].repayment.processingFee | object | null | The processor's rates the clinic pays on top, the fee shown as its own line before it pays; null when it pays none (Pawsitive Future absorbs it, or the Terms allowing it are not yet in effect). |
requests[].repayment.repayableCents | integer | CENTS the clinic may repay now, fee excluded. |
requests[].requestedAt | integer | Epoch milliseconds. |
requests[].status | "REQUESTED" | "APPROVED" | "DENIED" | "EXECUTING" | "RECOVERED" | "PARTIALLY_RECOVERED" | … (7 values) | A payout clawback's lifecycle, kept apart from its ledger transaction's status. Filing and deciding reach REQUESTED, APPROVED and DENIED; the rest follow execution. RECOVERED is "cash confirmed": Pawsitive Future has confirmed the full amount is back in hand, never merely a booked reversal. |
requests[].voucherCode | string | |
requests[].voucherId | string (uuid) |
When it fails
A failed call returns isError: true with the API's message as text.
403The caller holds neither feature in this organization, directly or as platform staff, or the organization is not a service provider.
What the model is shown
This is the tool exactly as the server lists it in tools/list. The description starts with the REST call it makes.
{
"name": "get_payout_accounts_by_orgid_clawbacks",
"description": "GET /api/payout-accounts/{orgId}/clawbacks — What the clinic's clawback panel reads: its clawbacks as the clinic may read them, newest first — every one it filed, one Pawsitive Future filed only from its approval on, a memo only where the clinic wrote it, and no reviewer, decider or fee terms; the PAID vouchers it was paid for with part of the payout left to claim and no clawback in flight, which it may report a problem with; and whether this caller may file one (`mayRequestClawback`, computed by the server — the form posts to POST /api/finance/clawbacks). Needs `hospital.clawbacks.request` or `hospital.reports.view` in this organization, or platform staff; the organization must be a SERVICE_PROVIDER (403 otherwise). Each clawback carries when the clinic was sent its written notice and what it still owes; `payoutsPaused`, `pausedSince` and `owedCents` say whether an approved clawback pauses the clinic's payouts. Money is integer CENTS; times are epoch milliseconds.",
"inputSchema": {
"type": "object",
"properties": {
"orgId": {
"type": "string"
}
},
"required": [
"orgId"
]
},
"annotations": {
"readOnlyHint": true,
"openWorldHint": false
}
}