keccak256, and calls complete(uint256,bytes32,bytes) on the ERC-8183 contract. The contract releases the escrowed USDC directly to the provider’s SCA wallet in the same transaction that sets the job status to COMPLETED.
Endpoint
Request
Headers
Body Parameters
string
required
On-chain job ID. Must be in
SUBMITTED status before completion is accepted.string
required
Circle wallet UUID of the evaluator. Must resolve to the same on-chain address recorded as the job’s
evaluator when it was created — otherwise the request is rejected with HTTP 403.string
default:"deliverable-approved"
Optional human-readable reason for approval. Defaults to
"deliverable-approved". Hashed with keccak256 and stored on-chain as the completion proof.Response
boolean
true when the complete transaction confirmed on-chain and payment was released.string
The on-chain job ID passed in the request body.
string
Always
COMPLETED on success — the terminal step in the lifecycle.string
Transaction hash of the
complete call. Payment is released atomically in this transaction — the provider’s SCA wallet balance increases immediately. Verify on Arc Explorer.Examples
Success Response
Error Responses
Notes
The job lifecycle is OPEN → FUNDED → SUBMITTED → COMPLETE. Completion is only valid while the job is
SUBMITTED; the contract reverts if you attempt to complete a job that has not been submitted. If the evaluator rejects the deliverable instead, the job takes the dispute path (REJECTED) rather than COMPLETE.
