Create a spending pool
Create a spending pool on a customer. Agents assigned to it (with spendingPoolId on POST /agents or PATCH /agents/{agentId}) are held to its limits and allowed payment types together, in addition to each agent’s own policy. Available where the platform enables spending pools.
Every agent payment checks the pool: sends (including Lightning), bank payouts and card authorizations. A payment the pool refuses is rejected with AGENT_POLICY_DENIED and details.policyDenialReason POOL_LIMIT_EXCEEDED or POOL_PAYMENT_TYPE_NOT_ALLOWED; a card authorization is declined. Payments in flight hold their amount against the pool until they complete or fail, so concurrent payments cannot together exceed it. RECURRING limits reset on UTC calendar boundaries.
Send an Idempotency-Key header to make retries safe: a request carrying a key already used returns the pool the first request created, with a 200 instead of a 201. The request is compared with the pool as it is now, so reusing a key with a different name, currency, limit type, period, limit amount, per-transaction limit, approval threshold, daily limit, monthly limit, allowed payment types or requiresAdminApproval, after the pool was changed, or for a pool that was archived is rejected with 409. Without a key a retry cannot be recognised, so each request creates its own pool. Keys are scoped to the customer, so the same key on another customer creates a separate pool.
Authorizations
API token authentication using format <api token id>:<api client secret>
Headers
A unique identifier for the request. A retry with the same key returns the pool the first request created rather than creating a second one.
255"550e8400-e29b-41d4-a716-446655440000"
Body
Request body for POST /spending-pools. period is required with limitType: RECURRING and rejected with TOTAL.
The customer whose agents will spend under the pool.
"Customer:019542f5-b3e7-1d02-0000-000000000001"
1 - 255"Marketing"
How a spending pool's limitAmount applies.
RECURRING, TOTAL "RECURRING"
x >= 1500000
A kind of agent payment a spending pool may allow.
CARDS, CRYPTO_SENDS, BANK_PAYOUTS ISO 4217 currency code of the pool's amounts. Defaults to USD.
"USD"
The UTC calendar period a RECURRING pool's limit resets on: a calendar month, or a week starting Monday 00:00 UTC.
MONTH, WEEK "MONTH"
x >= 150000
A payment by one of the pool's agents above this amount waits for approval. Absent means the agents' own policies alone decide.
x >= 025000
x >= 1100000
x >= 1400000
false
Response
The Idempotency-Key was already used for this request: the pool the first request created
A spending limit shared by the agents assigned to it, on their customer's balance. A pool holds no money and no money moves between pools: it only limits what its agents may spend, in addition to each agent's own policy. Limits of different pools may add up to more than the balance. Each agent belongs to at most one pool.
System-generated unique identifier for the pool.
"SpendingPool:019542f5-b3e7-1d02-0000-000000000007"
The customer whose agents spend under the pool.
"Customer:019542f5-b3e7-1d02-0000-000000000001"
Human-readable name for the pool.
"Marketing"
ISO 4217 currency code all of the pool's amounts are in. Only agents whose policy is in the same currency may be assigned to it. Immutable.
"USD"
How a spending pool's limitAmount applies.
RECURRING, TOTAL "RECURRING"
The most the pool's agents may spend together: per period for a RECURRING pool, in total for a TOTAL one.
x >= 1500000
The kinds of payment the pool's agents may make. Any other is refused with policyDenialReason POOL_PAYMENT_TYPE_NOT_ALLOWED.
A kind of agent payment a spending pool may allow.
CARDS, CRYPTO_SENDS, BANK_PAYOUTS Whether the platform requires an administrator to approve the pool's agents' payments that need approval. Grid stores it for the platform and does not act on it.
false
Whether the pool was archived. An archived pool takes no agents and cannot be changed.
false
What the pool's agents have spent, counting payments still in flight, as of the request. Amounts are in the smallest unit of the pool's currency.
Creation timestamp.
"2026-11-02T17:32:28Z"
Last update timestamp.
"2026-11-02T17:32:28Z"
The period a RECURRING pool resets on. Absent for TOTAL.
MONTH, WEEK "MONTH"
The most a single payment may be. Absent for no cap.
x >= 150000
A payment by one of the pool's agents above this amount waits for approval, even when the agent's own policy would execute it at once. In the pool's currency. Absent means the agents' own policies alone decide. Card authorizations are never held for approval.
x >= 025000
The most the pool's agents may spend together per UTC day. Absent for no cap.
x >= 1100000
The most the pool's agents may spend together per UTC calendar month. Absent for no cap.
x >= 1400000