---
title: "Verify payment and trigger processing for a no-upload derivative job"
method: POST
path: "/api/v1/jobs/{id}/process"
tags: ["Jobs"]
---

# Verify payment and trigger processing for a no-upload derivative job

`POST /api/v1/jobs/{id}/process`

## Request

- Base URL: `https://api.weftly.ai`
- URL: `https://api.weftly.ai/api/v1/jobs/{id}/process`
- Auth: one of:
  - API key in header `Authorization`
  - API key in header `Authorization`

For no-upload derivative jobs (`extract_clip`, `extract_vertical_clip`, `edit_from_transcript`) only. Verifies the MPP payment and triggers processing in a single call — there is no upload step because these jobs cut from the parent job's already-stored source (referenced by `source_job_id` at job creation).

Send Authorization: Payment <MPP credential> on the same call (after the initial 402 + WWW-Authenticate handshake) — the middleware verifies the credential, marks the job paid, and starts processing. After 200, poll GET /api/v1/jobs/{id} for status="completed".

Returns 400 if called for an upload-based job_type (use /complete-upload instead).

## Path parameters

- `id` string, uuid, required

## Response `200`

Processing started

- ProcessResponse
  - `job_id` string, uuid, required
  - `status` 'processing', required

## Other responses

- `400`: Job is an upload-based type (use /complete-upload), or required params are missing
- `402`: Payment required
- `403`: Unauthorized
- `404`: Job not found

---

[API](https://skmtc.dev/weftly/apis/weftly-api.md) · [All operations](https://skmtc.dev/weftly/apis/weftly-api/llms.txt) · [OpenAPI document](https://skmtc.dev/weftly/apis/weftly-api/revisions/159cec179228?raw)
