> This page is for version v2.0 (default).
> For other versions, use one of these documentation indexes:
> - v2.0 (default): https://docs.cable.tech/v-2-0/llms.txt
> - v1.0: https://docs.cable.tech/v-1-0/llms.txt

> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.cable.tech/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.cable.tech/_mcp/server.

# SFTP Data Integration

Cable's SFTP integration allows you to deliver data files directly to a dedicated, secure SFTP server. Once uploaded, Cable automatically processes your files and loads the data into your dedicated dataset for assurance checks.

This guide walks you through connecting to Cable's SFTP server, configuring SSH key authentication, preparing your data files, and optionally encrypting them with PGP.

> **Note**
>
> This guide assumes your Cable onboarding is complete and you have received your SFTP connection details from the Cable team. If you haven't started onboarding, reach out to [Synctera support](mailto:support@synctera.com) to get started.

# How It Works

You upload CSV data files to Cable's SFTP server using SSH key authentication. Cable processes the files automatically — validating, transforming, and loading the data into your dedicated dataset. Your data is stored in isolation on a **dedicated, secure directory**.

```mermaid
graph LR
    A[Your System:<br />Generate SSH key pair] --> B[Cable:<br />Public key configured<br />on your SFTP account]
    B --> C[Your System:<br />Connect via SFTP<br />Upload CSV files]
    C --> D[Cable:<br />Files validated,<br />transformed, and loaded]
    D --> E[Cable:<br />Data available in<br />your dedicated dataset]
```

# Prerequisites

Before you begin, make sure you have:

* **SFTP connection details** from the Cable team (hostname and username)
* An **SSH key pair** (see Step 1 below if you don't have one)
* Your data files in **CSV format**
* (Optional) A **PGP key pair** if you want to encrypt files before upload

# Step 1: Generate Your SSH Key Pair

Cable uses SSH public key authentication for SFTP connections.

## Generate a new key pair

If you don't already have an SSH key pair for this integration, generate one:

```bash
ssh-keygen -t ed25519 -C "yourorg-cable-sftp" -f ~/.ssh/cable_sftp
```

This creates two files:

* `~/.ssh/cable_sftp` — your **private key** (keep this secret, never share it)
* `~/.ssh/cable_sftp.pub` — your **public key** (share this with Synctera support)

> **Tip**
>
> We recommend Ed25519 keys for their security and performance. If your systems require RSA, use at least 4096 bits: `ssh-keygen -t rsa -b 4096 -C "yourorg-cable-sftp" -f ~/.ssh/cable_sftp`

## Share your public key with Synctera support

Send the contents of your **public key** file to [Synctera support](mailto:support@synctera.com):

```bash
cat ~/.ssh/cable_sftp.pub
```

The output looks like: `ssh-ed25519 AAAA... yourorg-cable-sftp`

> **Warning**
>
> Never share your private key. Only share the `.pub` file. If you suspect your private key has been compromised, generate a new key pair immediately and notify [Synctera support](mailto:support@synctera.com).

# Step 2: Connect to Cable's SFTP Server

## Connection details

The Cable team will provide:

| Setting            | Value                       |
| :----------------- | :-------------------------- |
| **Hostname**       | Provided during onboarding  |
| **Port**           | 22                          |
| **Username**       | Your assigned SFTP username |
| **Authentication** | SSH public key              |

## Test your connection

```bash
sftp -i ~/.ssh/cable_sftp -P 22 youruser@your-cable-hostname
```

A successful connection shows the `sftp>` prompt. Type `exit` to disconnect.

## Verify the server's host key

On your first connection, your SFTP client will prompt you to verify the server's host key fingerprint. Contact [Synctera support](mailto:support@synctera.com) to confirm the fingerprint matches before accepting. This protects against man-in-the-middle attacks.

> **Tip**
>
> After verifying the host key once, your client stores it in `~/.ssh/known_hosts`. Future connections will verify automatically. If the key changes unexpectedly, your client will warn you. Contact [Synctera support](mailto:support@synctera.com) before proceeding.

# Step 3: Prepare Your Data Files

## File format

Cable accepts **CSV files** with the following requirements:

* UTF-8 encoding
* Header row with column names
* One record per line
* Standard CSV escaping (quote fields containing commas or newlines)

## File naming

Use descriptive filenames that include the data type and date:

```
accounts_comprehensive_2025-06-15.csv
transactions_daily_2025-06-15.csv
```

> **Warning**
>
> **Zip files are not supported.** Upload CSV files individually. If you have multiple files, upload them one at a time or use your SFTP client's batch upload feature.

## Folder structure

Upload files directly to your SFTP root directory, or organise them into subdirectories. Contact [Synctera support](mailto:support@synctera.com) to confirm the expected folder structure during onboarding.

# Step 4: PGP Encryption (Optional)

If your security policy requires file-level encryption in addition to SSH transport encryption, you can PGP-encrypt your files before uploading. Cable will automatically detect and decrypt PGP-encrypted files.

## How to encrypt a file

1. Obtain Cable's PGP public key from [Synctera support](mailto:support@synctera.com)
2. Import the key into your PGP keyring
3. Encrypt your CSV files before uploading:

```bash
gpg --encrypt --recipient "Cable" --output accounts_2025-06-15.csv.pgp accounts_2025-06-15.csv
```

4. Upload the `.pgp` file via SFTP (Cable strips the `.pgp` extension after decryption)

> **Note**
>
> PGP encryption is optional. Cable's SFTP server uses SSH for transport encryption and your data is stored in isolation. PGP adds an additional layer of encryption for the file contents at rest.

# Step 5: Upload and Verify

## Upload files

Connect to the SFTP server and upload your files:

```bash
sftp -i ~/.ssh/cable_sftp youruser@your-cable-hostname
sftp> put accounts_comprehensive_2025-06-15.csv
sftp> put transactions_daily_2025-06-15.csv
sftp> exit
```

For batch uploads, you can use `mput` or script the upload:

```bash
sftp -i ~/.ssh/cable_sftp -b - youruser@your-cable-hostname <<EOF
put accounts_comprehensive_2025-06-15.csv
put transactions_daily_2025-06-15.csv
EOF
```

## Verify receipt

After uploading, contact [Synctera support](mailto:support@synctera.com) to confirm the files were received and processed successfully.

# Data Processing

After upload, Cable automatically:

1. **Validates** your files (format, encoding, structure)
2. **Parses** your CSV files using the header row to identify columns — no schema configuration is required on your end
3. **Loads** the data into your dedicated dataset, where it is available for automated assurance checks

The Cable team will confirm when data appears in your dataset and walk you through the available assurance checks.

If Cable cannot process a file (for example, due to encoding errors or missing headers), the Cable team will notify you with details about the issue so you can correct and re-upload.

# Automating File Delivery

Once your integration is tested and working, you can automate file delivery using any SFTP client or scheduled job:

* **Cron + sftp/scp**: Schedule uploads from a Linux/macOS server
* **Managed file transfer (MFT)**: Tools like GoAnywhere, Globalscape, or Axway
* **Verafin / other platforms**: Configure your platform's SFTP export to point at Cable's server

Ensure your automation uses the same SSH key and targets the correct hostname and username.

# Common Questions

## What happens if I upload the same file twice?

Cable deduplicates data during processing. Re-uploading a file will not create duplicate records in your dataset.

## What if an upload fails partway through?

Re-upload the file. Cable processes complete files only — partial uploads are ignored.

## Is there a file size limit?

There is no hard limit, but files over 1 GB may take longer to process. If you regularly produce very large files, talk to [Synctera support](mailto:support@synctera.com) about splitting them into smaller batches.

## Can I upload from multiple systems?

Yes. You can connect from any system that has your SSH private key. Use the same username and key pair for all connections.

## How do I correct data after uploading?

Upload a new file with the corrected data and notify [Synctera support](mailto:support@synctera.com).