07 — PIPs · PIP-0015
Limits on an open request
A request whose amount is null may bound what the payer enters, per capability and inside the standing intent. A fixed amount meets the intent's limits at issue.
- Number
- PIP-0015
- Status
- implemented
- Type
- Core
- Author
- PATH
- Date
- 2026-10-08
- Source
- On the register
Why
A request with amount: null lets the payer choose: a tip, a donation, an open invoice (PIP-0010). This PIP lets it state the range it accepts, for example between 1 000 and 50 000 XOF, and makes that range binding on the wallet. The bounds take the shape of the per-capability limits of an address (PIP-0008), and a request issued against an address stays inside them.
The object
{
"type": "path.request",
"reference": "q81mzv4k2tx9",
"issuer": "member-a",
"payee": { "member": "member-a", "address": "path:4a91c2f7e8d3" },
"amount": null,
"accepts": [
{
"rail": "book",
"asset_type": "fiat",
"asset_code": "XOF",
"limits": {
"min_single": { "value": "1000", "asset_type": "fiat", "asset_code": "XOF" },
"max_single": { "value": "50000", "asset_type": "fiat", "asset_code": "XOF" }
},
"fees": []
}
],
"status": "created",
"settled_by": [],
"expires_at": "2026-10-10T10:00:00Z",
"grammar": 2
}Rules
| Field | Rule |
|---|---|
| `accepts[].limits` | Optional, and only when `amount` is `null`. `min_single`, `max_single`, each an Amount in the capability's asset, as in PIP-0008. Bounds are inclusive. |
| Against an address | The request's limits lie inside those of the entry in the standing intent named by `intent_version`. A bound the request leaves out is copied from the intent. A request tightens, never widens. |
| Fixed `amount` | `limits` is absent. The amount sent on each capability — `amount`, or the entry's `quote.amount` — lies within the intent's limits for that capability, or the request is not issued. |
Payment
- A wallet does not send, on an entry, an amount outside its
limits. - A payment instruction (PIP-0009) for an open request or an address carries the
limitsof the entry in force, andnullwhenamountis fixed. - An open request moves to
paidon its first settled receipt whosereceivedmeets themin_singleof the entry in the same asset. A receipt below it is listed insettled_byand leaves the requestcreated. Abovemax_singlefollows the rule for an excess in PIP-0010: the request moves topaid, refund is reserved.
What this is not
Display. Limits bound what may be paid, so they are terms, signed and enforced. How the amount is shown is PIP-0016.
Platform bounds. Bounds an operator applies on its own platform are outside the protocol. The operator publishes their intersection with its customer's bounds, here or in the standing intent.
Compatibility
Additive. Requests without limits read as before. The payment instruction gains limits, null unless an open amount has them. Requests issued before this PIP are served as signed.