Record what you did, so it can be checked later
record_receiptCall this AFTER you have paid an address or called a tool, to put what you did on the record. Until now this platform answered "should I" and never heard what happened, which is the difference between a lookup and a control layer: a receipt lets the next question about this subject be asked against a record instead of a guess, and lets a verdict we gave be read back against what followed. reference is YOUR evidence, a transaction hash or the digest of a signed payload, and we store it WITHOUT verifying it. It comes back claimed and within the hour is judged against the payments we read from the chain: verified, contradicted, not found after two days, or unverifiable. Read the outcome at GET /v1/receipts/{id}. A claim never raises an evidence status, so a receipt nobody has checked never looks like one that settled. Needs a key; a receipt is readable only by the key that wrote it. WHY readOnlyHint IS false: this call writes a row in our store on behalf of the caller, so a second identical call is not free of consequence.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| chain | No | The chain it settled on, where it settled on one. | |
| action | Yes | Which kind of thing you are recording: `payment` for money that left, `tool_call` for a call you made. It decides nothing about verification — both are stored as YOUR claim, with your `reference` as the evidence — but it decides what the receipt can later be reconciled against, and a payment filed as a tool call will never meet the chain reading that would confirm it. | |
| policy | No | The policy you evaluated under, so a later disagreement can be read against what we said at the time. | |
| subject | Yes | The address you acted on. | |
| verdict | No | The decision we gave you before you acted, for the same reason. | |
| deadline | No | ISO 8601 time you expected it by. A time already past is refused, because it is usually seconds where milliseconds were meant. | |
| expected | No | What you expected to follow, in your words. Ours to store and yours to claim. | |
| amountUsd | No | What you committed, in US dollars. | |
| reference | Yes | Your evidence that it happened: a transaction hash, or the digest of a signed payload. Stored, not verified. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The receipt, for asking about it later. | |
| meta | No | How current this answer is and what it was read from: `freshness` and the ages behind it. Present on every answer from this server, whatever the tool. | |
| says | No | What was and was not verified. | |
| outcome | No | Always null here: the receipt is a claim when it is written. Within the hour it is judged against the payments we read from the chain; read the outcome with `receipt_status`. | |
| subject | No | The address the receipt is about, read back, so a receipt cannot be filed against the wrong party. | |
| evidence | No | The common payment record (TODO-07): `state: built` with `facilitator` (who submitted, never credited), `onChainRecipient`, `listedPayee`, `facilitatorIsRecipient`, `recipientIsListedPayee`, `settlement`, `delivery`, `deliveryEvidence`, `says`; or `state: not-applicable` with `says` naming why no single payment is described. | |
| warnings | No | Anything the server wants a caller to know about THIS answer before acting on it. Empty is the normal case and is not a guarantee. | |
| recordedAt | Yes | When we wrote it down. Not when your action happened. |