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

# Document Download Links: Signed, Time-Limited URLs

> From 08:30 GMT on Monday 23 November 2026, V1 document download links move to document.kyckr.com and carry an expiry time and a signature token. Links in the old format stop working on 23 December 2026.

## Overview

By **08:30 GMT on Monday 23 November 2026**, the links that the V1 API returns for downloading documents change to a new format:

* The host changes from `download.kyckr.com` to `document.kyckr.com`.
* Each link carries an `expires` parameter and a `token` parameter.
* Each link is valid for **30 days** from the time Kyckr issues it.

The new format applies to PDF documents and to structured JSON documents.

> [!WARNING]
>
> **Action required:** make sure that your integration can process the new URL before 08:30 GMT on Monday 23 November 2026. Links in the old `download.kyckr.com` format stop working on 23 December 2026.

## Link examples

### PDF document link

Before:

```text theme={null}
https://download.kyckr.com/file/1379863771-0
```

After:

```text theme={null}
https://document.kyckr.com/file/1293988000?expires=1796567069&token=-veXZxWYDvr5FYONYlhn5ElQRxTdWxfQYdGOu6kjj0c
```

### Structured JSON document link

Before:

```text theme={null}
https://download.kyckr.com/file/json/1874665464-0
```

After:

```text theme={null}
https://document.kyckr.com/file/json/1293988000?expires=1796567069&token=-veXZxWYDvr5FYONYlhn5ElQRxTdWxfQYdGOu6kjj0c
```

## The new query parameters

| Parameter | Description |
| - | - |
| `expires` | The time at which the link stops working, as a Unix timestamp in seconds (UTC). In the examples above, `1796567069` is 6 December 2026, 14:24:29 UTC: 30 days after the link was issued. |
| `token` | A signature that Kyckr generates for the link. Do not change or remove it. |

### Refused links

A download request returns HTTP `403 Forbidden`, not the document, when:

* the link is past its `expires` time
* the link was changed, for example a parameter was edited or removed
* the link is in the old `download.kyckr.com` format, from 23 December 2026

## What you need to do

1. **Use the link exactly as the API returns it.** Do not build download links yourself from a file ID. Do not change, decode, re-encode or remove the query string.
2. **Send no extra headers.** The download request needs no `Authorization` header, cookie or other credential. The signed link is enough.
3. **Download and store documents within 30 days.** A link stops working 30 days after it is issued, and Kyckr does not issue a new link for the same document. If you need a document after that time, download and store the file before the link expires.
4. **Allow the new host.** If your network restricts outbound traffic to a list of known hosts, add `document.kyckr.com` before 08:30 GMT on Monday 23 November 2026.
5. **Download documents from stored old-format links before 23 December 2026.** Links in the `download.kyckr.com` format stop working on that date and return `403`. Kyckr does not issue new links for them.

## Where the links appear

Download links are returned in the same fields as today. Only the format of the link value changes. No field is added, removed or renamed.

| Field | Returned by |
| - | - |
| `urlField` | Order status (`GET /core/filing/order-status/{days}`): link to the ordered document |
| `structuredDataUrlField` | Order status: link to the structured JSON version, where available |
| `retrievalLocationField` | Enhanced Profile (`GET /core/company/profile/{countryISO}/{companyCode}`) and UBO Verify: link to the PDF |
| `enhancedProfileField` | UBO Verify ownership tree nodes: link to the entity's enhanced profile |

### Example: order status response

A completed order returns both links in the new format:

```json theme={null}
{
    "productOrderIdField": 2573359,
    "orderReferenceField": "Example 1",
    "statusField": 3,
    "urlField": "https://document.kyckr.com/file/1293988000?expires=1796567069&token=-veXZxWYDvr5FYONYlhn5ElQRxTdWxfQYdGOu6kjj0c",
    "structuredDataUrlField": "https://document.kyckr.com/file/json/1293988000?expires=1796567069&token=-veXZxWYDvr5FYONYlhn5ElQRxTdWxfQYdGOu6kjj0c"
}
```

### Example: download request

Send a plain `GET` request to the link as returned. Do not add an `Authorization` header:

```bash theme={null}
curl --location 'https://document.kyckr.com/file/1293988000?expires=1796567069&token=-veXZxWYDvr5FYONYlhn5ElQRxTdWxfQYdGOu6kjj0c' \
--output document.pdf
```

## Additional resources

* [Order Documents guide](https://developer.kyckr.com/documentation/features/retrieve-a-document-v1.md)
* [Company V1 API Reference](https://developer.kyckr.com/company-v1/api-reference/overview.md)
* [Company V1 Changelog](https://developer.kyckr.com/company-v1/api-reference/changelog.md)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.