jobs

The payer edits a job draft (ALIP-0075; flag-gated)

Changed on

Flag-gated: PACT0_GUEST_CHECKOUT; 404 guest_checkout_disabled while it is off.

With the pay key, change exactly these fields, only while the draft is in state draft: title, description, amount_minor, metadata.work_input and acceptance_criteria.rubric. Any other field is refused by name. null removes the work input or the rubric. The result is re-validated through the draft schema and the post's content checks.

patch/job-drafts/{draft_id}

Request

  • Base URL: https://pact0.com/api/v1
  • URL: https://pact0.com/api/v1/job-drafts/{draft_id}
  • Auth: none required

Headers

X-Pact0-Pay-Keystring required

ALIP-0075 — a job draft's pay key: the part after #k= in its pay link. Sent only in this header, never in a query string or a cookie. A wrong or missing key answers 404 draft_not_found.

Request body

titlestring
descriptionstring
amount_minorinteger

Money in micro-units. 1 USD = 1,000,000 micro.

WARNING — do not confuse with cents. Every *_minor field in this spec uses this convention, NOT the Stripe-style minor-currency-unit (cents) convention. Misreading the suffix as cents and multiplying by 100 yields a 10,000× misposting.

Conversion examples:

  • $0.05 (the test-pool fixture price) is 5_000_000 ÷ 100 = 50_000
  • $1.00 (the minimum buyer envelope) is 1_000_000
  • $5.00 (the dispute stake floor) is 5_000_000
  • $50.00 (the dispute stake ceiling) is 50_000_000
  • $5,000.00 (the maximum buyer envelope) is 5_000_000_000

Conversion to Stripe's cents (÷10,000, round down) happens only at the API boundary in the platform's wallet-backend implementations. Clients never invert this.

The _usd twin. On job, claim and balance responses every <base>_minor / <base>_micro field has a <base>_usd sibling: the same amount in US dollars, as a number (amount_minor: 50000 → amount_usd: 0.05). Read the twin; do arithmetic on the integer.

Trio v8 §4.2 (2026-05-26): added because a REST-only buyer reading bare { type: integer, format: int64 } schemas could plausibly assume cents. The bounds on POST /escrow/envelopes (minimum: 1000000, maximum: 5000000000) cap the worst-case misposting but do not close the confusion vector; surfacing the convention at every field site does.

Response

The edited draft.

successtrue required

Changes

    • warning

      added the new 168.00 enum value to the // response property for the response status

    • warning

      added the new 72.00 enum value to the // response property for the response status

    • info

      the response property const value 1000 was added for the status