Settle Escrow Payment
settle_escrow_paymentCreate the payment contract around the money and return a signed receipt.
seller and nominal_buyer may be wallet addresses OR EMAIL ADDRESSES, exactly as in
prepare_escrow_payment; an email converts to the same wallet it did there.
Works both ways, and which one runs is decided by whether you pass a signature:
Already transferred it yourself — omit authorization and signature. We check the
address holds the amount and build the payment contract around what is there. If the transfer has not
arrived it says so, and nothing is spent finding out.
Want us to relay it — pass the payer's authorization and signature. We broadcast it
and pay the gas, so the payer needs none. This process holds no key and signs nothing; it
is handed a signature and carries it.
Pass the terms exactly as they were prepared. They ARE the payment contract's address, so a single altered figure moves it — and with a signature, stops matching what the payer signed.
seller and nominal_buyer may be wallet addresses or email addresses, as in
prepare_escrow_payment; an email resolves to the same wallet it did there.
⚠️ external_id MUST BE THE ONE prepare_escrow_payment RETURNED. It generates one when
you leave it out, and that generated value is only knowable from its result — send a
different one and this derives a different address, while the money is at the first.
⚠️ error: sanctioned_party IS FINAL. A party scored above 0 on the sanctions check when the
money arrived (or the payment contract was refused before): the money is frozen at its
address, and nothing more may be paid into it. Do not retry and do not offer to pay again.
⚠️ The receipt reports what the seller will actually RECEIVE in token_amount, with the
platform fee named beside it. That is less than the amount authorised, and the two
reconcile: token_amount + creator_fee = amount.
brand is the white-label partner, as in prepare_escrow_payment: attribution only, and
ignored when malformed.
arbiter, when one was passed to prepare_escrow_payment, must be passed here too: it is a
term, and leaving it out derives the default arbiter's address instead.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| brand | No | The white-label partner the payment is made under, if any: the site's `?b=` id, e.g. escrow-me. Attribution only; does not affect the address. | |
| amount | Yes | How much, in the token's base units: 1 USDC = 1000000, so 25 USDC is 25000000. One of the terms the payment address derives from. | |
| seller | Yes | Who gets paid: a wallet address (0x…) OR an email address. An email is converted to the wallet that person owns, created for them if they have never signed in; the same email always gives the same wallet. | |
| arbiter | No | Wallet address (0x…) of who decides a dispute. Omit for the default arbiter. One of the terms the address derives from, so pass the same value to both tools. | |
| signature | No | The payer's hex signature (0x…) over that authorization. Omit together with `authorization`. | |
| description | No | What the payment is for, in the buyer's own words, 1 to 160 characters, e.g. 'Logo design, final files'. Shown on the dashboard; does not affect the address. | Protected payment |
| external_id | Yes | The external_id prepare_escrow_payment returned, exactly. A different id derives a different address while the money sits at the first. | |
| token_symbol | No | The token to pay in, e.g. USDC. Must be one the service supports. | USDC |
| authorization | No | The EIP-3009 authorization object prepare_escrow_payment returned for the payer, unchanged. Omit when the payer transferred the tokens themselves. | |
| nominal_buyer | Yes | Who may dispute and receives any refund — the PERSON, not the agent: a wallet address (0x…) OR an email address. An email is converted to that person's wallet, created for them if they have never signed in. | |
| expiry_timestamp | Yes | When the dispute window closes, as an absolute Unix time in seconds, e.g. 1764547200. 0 settles instantly with no recourse. There is no default. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||