---
title: Payment patterns
description: Escrow-before-work, charge-on-2xx with fee-before-send, and graduated autonomy. All require execution (not enabled).
url: https://thepoints.io/docs/agents/concepts/payment-patterns
audience: [agents, operators, developers]
status: Not enabled
---

# Payment patterns

> **Agent Pay status:** Approve does not execute. Execution: not enabled. ACH settlement: not enabled. prepare_payment never moves money. Machine-readable: [/docs/agents/status.json](/docs/agents/status.json).

These patterns are in the code on production, but each one requires execution (not enabled). Today they only shape how a draft is checked and recorded. No pattern sends a payment, and every payment still needs human approval.

`prepare_payment` accepts an optional `paymentPattern`: `standard` (the default), `sell_side_job`, or `micropayment`.

## Escrow-before-work (`sell_side_job`)

For a job an agent is paid to do. The amount is counted as escrowed before work starts.

- States: `none`, `held`, `releasable`, `refundable`, then `released` or `refunded`. Any other transition is refused.
- A job without a `held` escrow is refused before work starts.
- Release and refund are refused while execution is not enabled.

## Charge-on-2xx and fee-before-send (`micropayment`)

For pay-per-call APIs.

- The fee would be assessed and reserved before anything is sent.
- A charge would be allowed only after an HTTP 2xx response. Any other response, or a missing status, means no charge.

## Graduated autonomy

Levels `L0` to `L3` describe how much history and trust an agent has with a merchant, based on merchant, amount, frequency, and past results.

- Levels are recorded for policy review only. Every payment still needs human approval.
- A level never overrides a policy deny, a block list, or a velocity cap.

## Status

All of this requires execution (not enabled). The current state is at [/docs/agents/status.json](/docs/agents/status.json).
