Skip to content

Integrations Rail

External connectors, sync jobs, and data feeds.

The Integrations Rail provides endpoints for managing external system integrations, data synchronization, and export feeds.

/api/v1/integrations
GET /api/v1/integrations/connectors

List available integration connectors.

Response:

{
"data": [
{
"connectorId": "stripe",
"name": "Stripe",
"category": "PAYMENTS",
"status": "AVAILABLE",
"features": ["payments", "subscriptions", "invoices"]
},
{
"connectorId": "quickbooks",
"name": "QuickBooks",
"category": "ACCOUNTING",
"status": "AVAILABLE",
"features": ["invoices", "expenses", "reports"]
}
]
}
POST /api/v1/integrations/connections

Create an integration connection.

Request Body:

{
"connectorId": "stripe",
"name": "Production Stripe",
"credentials": {
"apiKey": "${IOF_CONNECTOR_API_KEY}",
"webhookSecret": "${IOF_CONNECTOR_WEBHOOK_SECRET}"
},
"config": {
"syncInterval": "15m",
"autoSync": true
}
}

Response:

{
"data": {
"connectionId": "conn_abc123",
"connectorId": "stripe",
"name": "Production Stripe",
"status": "ACTIVE",
"lastSyncAt": null,
"createdAt": "2025-01-15T10:00:00Z"
}
}
GET /api/v1/integrations/connections

List active connections.

GET /api/v1/integrations/connections/:connectionId

Get connection details.

PATCH /api/v1/integrations/connections/:connectionId

Update connection settings.

POST /api/v1/integrations/connections/:connectionId/test

Test connection health.

Response:

{
"data": {
"success": true,
"latency": 120,
"version": "2023-10-16",
"permissions": ["read", "write"]
}
}
POST /api/v1/integrations/connections/:connectionId/sync

Trigger data synchronization.

Request Body:

{
"entities": ["customers", "invoices"],
"mode": "INCREMENTAL",
"dateRange": {
"from": "2025-01-01",
"to": "2025-01-15"
}
}
GET /api/v1/integrations/connections/:connectionId/sync/:syncId

Get sync job status.

Response:

{
"data": {
"syncId": "sync_xyz",
"status": "COMPLETED",
"startedAt": "2025-01-15T10:00:00Z",
"completedAt": "2025-01-15T10:05:00Z",
"stats": {
"customers": { "created": 50, "updated": 120, "errors": 2 },
"invoices": { "created": 200, "updated": 0, "errors": 0 }
}
}
}
POST /api/v1/integrations/exports

Create a data export.

Request Body:

{
"name": "Monthly Contract Export",
"format": "CSV",
"entities": ["contracts"],
"filter": {
"status": "ACTIVE",
"createdAt": { "gte": "2025-01-01" }
},
"schedule": {
"frequency": "MONTHLY",
"day": 1,
"time": "02:00"
},
"destination": {
"type": "S3",
"bucket": "exports-bucket",
"path": "/contracts/"
}
}
GET /api/v1/integrations/exports

List configured exports.

POST /api/v1/integrations/exports/:exportId/run

Manually trigger an export.

CategoryExamples
PAYMENTSStripe, PayPal
ACCOUNTINGQuickBooks, Xero
CRMSalesforce, HubSpot
BANKINGPlaid, Tink
COMPLIANCEComplyAdvantage
STORAGES3, Azure Blob
ModeDescription
FULLFull data sync
INCREMENTALOnly changes since last sync
SNAPSHOTPoint-in-time snapshot
FormatDescription
CSVComma-separated values
JSONJSON format
PARQUETApache Parquet
XMLXML format
EventDescription
integration.connectedConnection established
integration.sync.startedSync started
integration.sync.completedSync completed
integration.sync.failedSync failed
integration.export.completedExport completed