# money.openverbs.com Allocate

> money.openverbs.com Allocate is a paid API for AI agents from money.openverbs.com, paid per call via x402, $0.002/call, status unknown (last checked 2026-09-15).

Splits a monetary amount into N equal parts or weighted ratios using integer minor-unit arithmetic, guaranteeing the parts always sum to the exact original amount with no rounding drift.

## Facts

- Endpoint: POST https://money.openverbs.com/v1/allocate
- Price: $0.002/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-15
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/money-openverbs-com-allocate-0a3f360c
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_vXZRh0LCK_U32o26bnfrF

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability money-openverbs-com-allocate-0a3f360c -d '<json body>'
```

Example prompt: Split $127.45 evenly among 3 people using exact minor-unit math — I need the shares to add up to exactly $127.45 with no rounding drift, treating it as USD (2 decimal places).

## When to prefer this

Use this endpoint whenever you need to split a monetary amount into parts and require mathematically exact results — i.e. the shares must sum precisely to the original amount with no floating-point or rounding drift. It is preferable to naive division when dealing with financial calculations (invoices, bill splits, revenue shares, payment distributions) where even a one-cent discrepancy is unacceptable. Choose the 'ratios' parameter for weighted/proportional splits and 'parts' for equal splits.

## Known failure modes

- Missing required 'amount' field returns a validation error
- Providing both 'parts' and 'ratios' simultaneously may return an error or undefined behavior
- 'parts' value of 0 or negative is rejected (minimum 1)
- 'ratios' array with all-zero weights cannot be normalized and will error
- 'currency' code not in ISO 4217 may cause minor-unit derivation to fail
- Amount with more decimal places than minorUnits may be rejected or silently truncated
- Payment failure (x402) if USDC balance is insufficient for the $0.002 per-call fee

## How this service works

Split an amount into parts using integer minor-unit math so the shares always sum back to the exact original — no rounding drift. Pass parts for an even split, or ratios for a weighted one (e.g. [1,1,1] splits $100 into 33.34/33.33/33.33). The leftover minor units go to the largest fractional remainders.

## Output

An array of allocated share amounts expressed in the currency's minor units (or the specified minorUnits precision), guaranteed to sum exactly to the original amount. Leftover minor units from rounding are distributed to the shares with the largest fractional remainders (largest-remainder method).

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "$schema": "https://json-schema.org/draft/2020-12/schema",
 "required": [
  "input"
 ],
 "properties": {
  "input": {
   "type": "object",
   "required": [
    "type",
    "method",
    "bodyType",
    "body"
   ],
   "properties": {
    "body": {
     "type": "object",
     "required": [
      "amount"
     ],
     "properties": {
      "parts": {
       "type": "integer",
       "maximum": 100000,
       "minimum": 1,
       "description": "Number of equal parts (use instead of ratios)."
      },
      "amount": {
       "type": "number",
       "description": "The total to split."
      },
      "ratios": {
       "type": "array",
       "items": {
        "type": "number",
        "minimum": 0
       },
       "maxItems": 100000,
       "minItems": 1,
       "description": "Weights for a proportional split (use instead of parts)."
      },
      "currency": {
       "type": "string",
       "maxLength": 3,
       "minLength": 3,
       "description": "ISO 4217 code used to derive minor units. Optional."
      },
      "minorUnits": {
       "type": "integer",
       "maximum": 8,
       "minimum": 0,
       "description": "Explicit minor-unit digits. Overrides currency. Default 2."
      }
     },
     "additionalProperties": false
    },
    "type": {
     "type": "string",
     "const": "http"
    },
    "method": {
     "enum": [
      "POST"
     ],
     "type": "string"
    },
    "bodyType": {
     "enum": [
      "json",
      "form-data",
      "text"
     ],
     "type": "string"
    }
   },
   "additionalProperties": false
  }
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/money-openverbs-com-allocate-0a3f360c/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from money.openverbs.com](https://www.zero.xyz/host/money.openverbs.com/llms.txt)
