Private preview of the new site. Not live.

invoices.pay

Start paying an invoice (hosted page). Returns the processor checkout URL. Final payment on an Idaho job over the threshold needs the payer to acknowledge the signed subcontractor list. Always collects on the shop's current active payments account; refused with payments_not_set_up while none is active, and with payments_paused while Stripe restricts the account.

WhoHosted page only (a person does it in the browser)
RESTPOST /v1/invoices/pay
MCP toolNot an MCP tool
Writesno
AreaInvoices and payments (unlimited)

When to use it

Never call it. The customer pays on the hosted page.

What to tell the owner

Your customer pays from the link.

Input

FieldTypeRequired
tstringyes
subcontractor_ackstring (one of yes, no)no
tip_minorintegerno
tip_percentstringno

Example

POST https://doingwork.work/v1/invoices/pay
content-type: application/json
Idempotency-Key: 3f1c...

{
  "t": "..."
}

Output

JSON. The response shape isn't published yet; read the fields you need and ignore the rest. Errors are {code, message, status}.

Errors

CodeStatusWhat to do
human_only403This step happens on a hosted page the person opens themselves. Send them the link; don't try another route.
invalid_link400The link was used, expired, or replaced by a newer one. Get a new link.
invalid_input, invalid_token, rate_limitedCan happen on any call. See errors.