---
title: "Merge submission PDFs, template PDFs, or custom files"
method: POST
path: "/combined_submissions"
tags: ["Combine PDFs"]
---

# Merge submission PDFs, template PDFs, or custom files

`POST /combined_submissions`

Combines multiple PDFs from various sources into a single PDF file. Supports merging
submission PDFs, template PDFs, custom files, other merged PDFs,
and PDFs from URLs. Merges the PDFs in the order provided.

## Request body

- object
  - `delete_custom_files` boolean
  - `expires_in` integer
  - `metadata` object
  - `password` string
  - `source_pdfs` object[], required
    - `id` string
    - `template_version` string
    - `type` 'submission' | 'combined_submission' | 'template' | 'custom_file' | 'url', required
    - `url` string, uri
  - `test` boolean

## Response `201`

combined submission created

- object
  - `status` 'success' | 'error', required
  - `combined_submission` CombinedSubmission, required
    - `id` string, nullable, required
    - `state` 'pending' | 'processed' | 'error', required
    - `expired` boolean, required
    - `expires_in` integer, nullable, required
    - `expires_at` string, nullable, required
    - `processed_at` string, nullable, required
    - `error_message` string, nullable, required
    - `submission_ids` string[], required
    - `source_pdfs` object[], required
      - `id` string
      - `type` 'combined_submission' | 'custom_file' | 'submission' | 'template' | 'url', required
      - `template_version` string
      - `url` string, uri
    - `metadata` object, required
    - `password` string, nullable, required
    - `pdf_hash` string, nullable, required
    - `download_url` string, nullable, required
    - `actions` CombinedSubmissionAction[], required
      - `id` string, nullable, required
      - `integration_id` string, nullable, required
      - `state` 'pending' | 'processed' | 'failed' | 'error', required
      - `action_type` 'webhook' | 'slack_webhook' | 'email' | 'aws_s3_upload', nullable, required
      - `action_category` 'notification' | 'file_upload', required
      - `result_data` object, required
      - `error_message` string, nullable, required
  - `errors` string[]

## Other responses

- `400` — invalid JSON
- `401` — authentication failed
- `422` — invalid request

---

[API](https://skmtc.dev/docspring/apis/docspring-api.md) · [All operations](https://skmtc.dev/docspring/apis/docspring-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/docspring/docspring-api/revisions/5726657b9432/schema)
