QFind anything/
API Reference

Data Sources

Data sources bring incoming transactions into Payment Reconciler. Create connections for Stripe, EBICS, or SFTP; CSV is uploaded per file. Each connection syncs data into a specific tenant and environment.

What are data sources

Data sources are integrations that bring incoming transactions (payments received) into Payment Reconciler. For Stripe, EBICS, SFTP, and CSV, you create a connection scoped to a tenant and environment. CSV uploads reference that connection so sync logs and history align with other sources.

Incoming transactions created from a data source use field mappings to transform raw data into the standard schema (merchant, amount, date, reference, description).

Supported sources

SourceConnectionHow data entersNotes
StripePersistent (API key, webhook secret)Sync job or manual triggerFetches charges; field mappings transform to incoming transactions
CSVPersistent (name + config, typically {})POST /incoming-transactions/uploadRequires dataSourceConnectionId; field mappings map CSV columns
EBICSPersistent (bank credentials)Manual sync: POST /data-sources/ebics/syncBank statement import via CAMT.053
SFTPPersistent (SSH host, auth, remote path)Manual sync: POST /data-sources/sftp/syncCSV files only in v1; same default column mapping as CSV when no field mapping

Manual is not a data source—you create incoming transactions directly via API with full fields. See Incoming Transactions.

Stripe connections

Create a Stripe connection with:

  • apiKey — Stripe secret key (sk_live_... or sk_test_...)
  • webhookSecret — Optional; for verifying Stripe webhook signatures

Sync runs via:

  • ManualPOST /data-sources/stripe/sync with connectionId
  • Scheduled job — Configure stripeSyncSchedule in Job Scheduling; job syncs all enabled Stripe connections for the tenant/environment

Sync logs record each run (total fetched, created, errors). View via GET /data-sources/:id/sync-logs.

CSV uploads

Create a CSV connection via POST /data-sources with source: "csv", then upload via POST /incoming-transactions/upload with the connection ID (dataSourceConnectionId query parameter or form field) and a multipart file. Each upload creates a sync log linked to that connection (view via GET /data-sources/:id/sync-logs). Configure field mappings for source csv to map columns. Supports comma, semicolon, or tab delimiters. Max file size 10MB.

EBICS connections

EBICS connections store bank credentials and use the EBICS protocol to fetch bank statements (Camt.053). Supported banks include PostFinance (via bankId: postfinance). Each connection is created via a three-step flow:

  1. Start initPOST /data-sources/ebics/init/start with bank URL (e.g. PostFinance test: https://isotest.postfinance.ch/ebicsweb/ebicsweb), host ID (PFEBICS), customer/participant IDs, passphrase, IBAN, and bank parser ID
  2. Bank letter — Download the bank letter via GET /data-sources/ebics/init/:id/bank-letter, sign it, and send to your bank
  3. Complete init — After the bank activates your keys, call POST /data-sources/ebics/init/complete with the connectionId

Once initialized, sync runs via manual trigger: POST /data-sources/ebics/sync with connectionId. Field mappings for source ebics transform statement rows into incoming transactions. See Data Source Config for the full schema.

SFTP connections

Create an SFTP connection with POST /data-sources and source: "sftp". The config object must include host, username, remotePath (directory to scan), and auth (either password or privateKey with optional passphrase). Optional: port (default 22), filePattern (default *.csv), delimiter, encoding, hostKeyFingerprint (recommended for production host-key verification), moveToPath, deleteAfterSuccess.

Sync runs via manual trigger: POST /data-sources/sftp/sync with connectionId. The service lists matching .csv files, skips unchanged files using stored metadata under _sftpState, and creates incoming transactions with source: sftp and traceable rawData._sftp. Field mappings for source sftp apply when configured; otherwise the same default column mapping as CSV applies. CAMT/XML and other formats are not supported in v1.

Sync logs

Each Stripe sync creates a sync log with status (RUNNING, COMPLETED, FAILED, PARTIAL), totalFetched, newTransactionsCreated, and errorsCount. Use sync logs to monitor sync health and debug failures.

API Reference

For connection endpoints, parameters, and request/response samples, see Data Sources in the API Reference.