> ## Documentation Index
> Fetch the complete documentation index at: https://docs.manka.tz/llms.txt
> Use this file to discover all available pages before exploring further.

# Submit Combined Analysis

> Submit two or more statements for a single combined asynchronous analysis.

Submits two or more bank statement PDFs for a combined asynchronous analysis. Useful when a borrower has multiple accounts (e.g. M-Pesa + bank) and you want a single consolidated view.

<Warning>
  A `callback_url` is **required** for this endpoint — there is no polling fallback.
</Warning>

### Request body

<ParamField body="files" type="file[]" required>
  One or more bank statement PDFs. Repeat the `files` field once per file in the multipart form.
</ParamField>

<ParamField body="callback_url" type="string" required>
  URL that will receive the combined result. See [Callback payload](/api-reference/analysis/callback).
</ParamField>

<ParamField body="passwords" type="string">
  JSON-encoded array of passwords positionally matching `files`. Use an empty string for files that are not encrypted, e.g. `["", "secret", ""]`.
</ParamField>

### Response

Returns the initial acknowledgement from the analysis service. The combined result itself is delivered to `callback_url` when ready.

<ResponseExample>
  ```json 200 OK theme={null}
  {
    "status": "processing",
    "task_id": "8b1c4e2f-3a5d-4f9e-b6a7-d8c9e0f1a2b3"
  }
  ```
</ResponseExample>

### Error responses

| Status | Reason                                                                  |
| ------ | ----------------------------------------------------------------------- |
| `400`  | No files provided, `callback_url` missing, or unrecognisable PDF format |
| `401`  | Missing or invalid API token                                            |
| `402`  | Insufficient analysis credits                                           |
| `500`  | Internal error processing the combined analysis                         |

### Example

<CodeGroup>
  ```bash cURL theme={null}
  curl -X POST https://gateway.manka.tz/v1/api/analysis-combined \
    -H "Authorization: Bearer $MANKA_API_TOKEN" \
    -F "files=@equity.pdf" \
    -F "files=@mpesa.pdf" \
    -F 'passwords=["", "hunter2"]' \
    -F "callback_url=https://example.com/manka/webhook"
  ```

  ```python Python theme={null}
  import json, requests

  files = [
      ("files", open("equity.pdf", "rb")),
      ("files", open("mpesa.pdf",  "rb")),
  ]

  r = requests.post(
      "https://gateway.manka.tz/v1/api/analysis-combined",
      headers={"Authorization": f"Bearer {token}"},
      files=files,
      data={
          "callback_url": "https://example.com/manka/webhook",
          "passwords": json.dumps(["", "hunter2"]),
      },
  )
  ```
</CodeGroup>
