get_finance_transfers
Calls GET /api/finance/transfers as the signed-in person · REST reference
Every internal transfer between PFF's two Stripe accounts, newest first, and what operations owes the pool (platform staff)
Each transfer with its direction, memo, how its cash settles and its outcome, plus owed — the cash operations still owes the pool, settled from the next gift's share. Reads only.
Arguments
| Argument | Type | Description | |
|---|---|---|---|
limitquery | integer |
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_finance_transfers",
"arguments": {}
}
}Result
On success (HTTP 200) the tool returns one text item holding the API's JSON, pretty-printed.
The transfers
{
"count": 1,
"data": [
{
"amount": 1,
"attempts": 1,
"cashSettlement": "STRIPE_TRANSFER",
"completedAt": 1,
"createdAt": 1,
"createdBy": "11111111-1111-4111-8111-111111111111",
"currency": "string",
"destinationAccount": "STRIPE_PLATFORM",
"direction": "OPERATIONS_TO_POOL",
"id": "11111111-1111-4111-8111-111111111111",
"lastError": "string",
"memo": "string",
"settledAmount": 1,
"sourceAccount": "STRIPE_PLATFORM"
}
],
"owed": {
"owed": 1,
"posted": 1,
"settled": 1
}
}Fields
| Field | Type | Description |
|---|---|---|
count | integer | |
data | array of object | |
data[].amount | integer | CENTS moved. |
data[].attempts | integer | Failed attempts recorded. |
data[].cashSettlement | "STRIPE_TRANSFER" | "WITHHOLDING" | How the cash settles. STRIPE_TRANSFER (the pool repaying operations): a Stripe transfer, SENT or FAILED. WITHHOLDING (operations covering the pool): the fund posted at once and the cash is kept on the platform out of later operations-share transfers until settled. |
data[].completedAt | integer | null | Epoch milliseconds the transfer was recorded SENT. |
data[].createdAt | integer | Epoch milliseconds. |
data[].createdBy | string (uuid) | null | The platform staff member who asked for it. |
data[].currency | string | |
data[].destinationAccount | "STRIPE_PLATFORM" | "STRIPE_OPERATIONS" | The Stripe balance the cash reached. |
data[].direction | "OPERATIONS_TO_POOL" | "POOL_TO_OPERATIONS" | Which way an internal transfer moves PFF's money, and the fund with it. OPERATIONS_TO_POOL: operations covers the voucher pool — cash from the operations connected account to the platform balance, OPERATING to VOUCHER_POOL. POOL_TO_OPERATIONS: the pool repays operations, the reverse of both. |
data[].id | string (uuid) | The INTERNAL_TRANSFER Transaction's id. |
data[].lastError | string | null | Stripe's refusal, when the transfer failed. |
data[].memo | string | Why the money moved, as the operator wrote it. |
data[].settledAmount | integer | WITHHOLDING only — CENTS of later operations shares kept on the platform against this transfer so far. |
data[].sourceAccount | "STRIPE_PLATFORM" | "STRIPE_OPERATIONS" | The Stripe balance the cash left. |
data[].status | "PENDING" | "COMPLETED" | "FAILED" | "REVERSED" | "CANCELLED" | "PROCESSING" | … (7 values) | PENDING until Stripe answers, COMPLETED once SENT, FAILED when Stripe refused. |
data[].stripeTransferId | string | null | The Stripe transfer (tr_…) that moved the cash; null until one is recorded. |
data[].transferState | "PENDING" | "SENT" | "FAILED" | "NOT_REQUIRED" | The Stripe transfer's outbox state; NOT_REQUIRED never applies here. |
owed | object | What operations owes the voucher pool in cash, derived from the ledger. CENTS. |
owed.owed | integer | posted − settled — what the next operations-share transfers still withhold. |
owed.posted | integer | Moved OPERATING → VOUCHER_POOL by withholding transfers. |
owed.settled | integer | Operations shares since kept on the platform against it. |
When it fails
A failed call returns isError: true with the API's message as text.
400The request was malformed or failed a guard.
403Authenticated, but the caller holds none of the required permissions.
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_finance_transfers",
"description": "GET /api/finance/transfers — Each transfer with its direction, memo, how its cash settles and its outcome, plus `owed` — the cash operations still owes the pool, settled from the next gift's share. Reads only.",
"inputSchema": {
"type": "object",
"properties": {
"limit": {
"type": "string"
}
}
},
"annotations": {
"readOnlyHint": true,
"openWorldHint": false
}
}